Card
Installation
yarn add @chewy/kib-foundations
Import
@use '~@chewy/kib-foundations/src/card';
Mixins
card
@mixin card() { ... }
@mixin card() { @include typography.style-as('paragraph-1'); display: block; width: 100%; background-color: settings.$background-color; border: settings.$border-width solid settings.$border-color; border-radius: settings.$border-radius; color: settings.$text-color; text-align: left; }
Description
Root card container
Parameters
None.
Requires
- [variable]
background-color
- [variable]
border-width
- [variable]
border-color
- [variable]
border-radius
- [variable]
text-color
Used by
- [mixin]
card-interactive
card-interactive
@mixin card-interactive() { ... }
@mixin card-interactive() { @include card; @include card-interactive-default; &:hover { @include card-interactive-hover; } &:focus { @include card-interactive-focus; } &:active { @include card-interactive-active; } &:disabled { @include card-interactive-disabled; } // Hides outline when hovering over component while focused &:hover:focus { @include card-interactive-focus-cancel; } }
Description
Interactive card container styles, mainly used when root element is a button or anchor
Parameters
None.
Requires
- [mixin]
card
- [mixin]
card-interactive-default
- [mixin]
card-interactive-hover
- [mixin]
card-interactive-focus
- [mixin]
card-interactive-active
- [mixin]
card-interactive-disabled
- [mixin]
card-interactive-focus-cancel
card-interactive-default
@mixin card-interactive-default() { ... }
@mixin card-interactive-default() { position: relative; z-index: 1; overflow: visible; appearance: none; cursor: pointer; text-decoration: none; transition: background-color settings.$transition-duration; &::before { $distance: settings.$border-width * -3; position: absolute; top: $distance; left: $distance; right: $distance; bottom: $distance; border: settings.$outline-border-width solid settings.$outline-border-color; border-radius: settings.$outline-radius; content: ''; opacity: 0; pointer-events: none; transition: opacity settings.$transition-duration; } @media (prefers-reduced-motion: reduce) { &, &::before { transition: none; } } }
Description
Default state styles for interactive card
Parameters
None.
Requires
- [variable]
transition-duration
- [variable]
border-width
- [variable]
outline-border-width
- [variable]
outline-border-color
- [variable]
outline-radius
Used by
- [mixin]
card-interactive
card-interactive-hover
@mixin card-interactive-hover() { ... }
@mixin card-interactive-hover() { @include elevation.elevation; color: settings.$text-color; text-decoration: none; }
Description
Hover state for interactive card
Parameters
None.
Requires
- [variable]
text-color
Used by
- [mixin]
card-interactive
card-interactive-focus
@mixin card-interactive-focus() { ... }
@mixin card-interactive-focus() { color: settings.$text-color; outline: 0; text-decoration: none; &::before { opacity: 1; } }
Description
Focus state styles for interactive card
Parameters
None.
Requires
- [variable]
text-color
Used by
- [mixin]
card-interactive
card-interactive-focus-cancel
@mixin card-interactive-focus-cancel() { ... }
@mixin card-interactive-focus-cancel() { &::before { opacity: 0; } }
card-interactive-active
@mixin card-interactive-active() { ... }
@mixin card-interactive-active() { background-color: settings.$active-background-color; }
Description
Active state styles for interactive card (when pressed)
Parameters
None.
Requires
- [variable]
active-background-color
Used by
- [mixin]
card-interactive
card-interactive-disabled
@mixin card-interactive-disabled() { ... }
@mixin card-interactive-disabled() { opacity: 0.5; pointer-events: none; }
Variables
background-color
$background-color: color.get('ui-bg', 'primary') !default;
Description
Card background color
Type
Color
Used by
- [mixin]
card
- [mixin]
controls
- [mixin]
switch-control-custom
- [mixin]
menu-group-link
- [mixin]
container
- [mixin]
divider-cover
- [mixin]
scrolling-shadow
- [mixin]
flag
- [mixin]
sponsor
- [mixin]
panel
- [mixin]
root-container
- [mixin]
container
- [mixin]
tooltip
- [mixin]
content-arrow
active-background-color
$active-background-color: color.get('ui-bg', '04') !default;
border-color
$border-color: color.get('ui-bg', '04') !default;
Description
Card border color
Type
Color
Used by
- [mixin]
card
- [mixin]
choice-control-custom
- [mixin]
field-outline
- [mixin]
field-label
- [mixin]
menu-group-link
- [mixin]
sponsor
- [mixin]
container
- [mixin]
cell-base
- [mixin]
tooltip
- [mixin]
content-arrow
border-radius
$border-radius: kib-core.dimensions-get('small') !default;
Description
Card corner radius
Type
Number
border-width
$border-width: unit.rem(2px) !default;
Description
Card border width
Type
Number
Used by
- [mixin]
card
- [mixin]
card-interactive-default
- [mixin]
choice-control-custom
- [mixin]
checkbox-control-custom
- [mixin]
checkbox-control-fill
- [mixin]
switch-control-custom
- [mixin]
switch-control-fill
- [mixin]
field-textarea-outline
- [mixin]
menu-group-link
- [mixin]
container
- [mixin]
cell-base
- [mixin]
tooltip
- [mixin]
content-arrow
outline-border-color
$outline-border-color: color.get('link', 'focus', 'primary') !default;
outline-border-width
$outline-border-width: $border-width !default;
outline-radius
$outline-radius: $border-radius + ($outline-border-width * 2) !default;
text-color
$text-color: color.get('text', 'primary') !default;
Description
Card text color
Type
Color
Used by
- [mixin]
card
- [mixin]
card-interactive-hover
- [mixin]
card-interactive-focus
- [mixin]
field-control
- [mixin]
menu-group-link
- [mixin]
flag
- [mixin]
root-container
- [mixin]
sponsor
- [mixin]
panel
- [mixin]
root-container
- [mixin]
container
- [mixin]
tooltip
transition-duration
$transition-duration: 200ms !default;
Description
Transitions duration
Type
Number
Used by
- [mixin]
card-interactive-default
- [mixin]
title
- [mixin]
step-transition-common