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
Used by

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.

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
Used by

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
Used by

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
Used by

card-interactive-focus-cancel

@mixin card-interactive-focus-cancel() { ... }@mixin card-interactive-focus-cancel() { 
  &::before {
    opacity: 0;
  }
 }
Description

Hides outline on focus state

Parameters

None.

Used by

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
Used by

card-interactive-disabled

@mixin card-interactive-disabled() { ... }@mixin card-interactive-disabled() { 
  opacity: 0.5;
  pointer-events: none;
 }
Description

Disabled state styles for interactive card

Parameters

None.

Used by

Variables

background-color

$background-color: color.get('ui-bg', 'primary') !default;
Description

Card background color

Type

Color

Used by

active-background-color

$active-background-color: color.get('ui-bg', '04') !default;
Description

Card background color when pressed

Type

Color

border-color

$border-color: color.get('ui-bg', '04') !default;
Description

Card border color

Type

Color

Used by

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

outline-border-color

$outline-border-color: color.get('link', 'focus', 'primary') !default;
Description

Focus outline color

Type

Color

outline-border-width

$outline-border-width: $border-width !default;
Description

Focus outline width

Type

Number

outline-radius

$outline-radius: $border-radius + ($outline-border-width * 2) !default;
Description

Focus outline radius

Type

Number

text-color

$text-color: color.get('text', 'primary') !default;
Description

Card text color

Type

Color

Used by

transition-duration

$transition-duration: 200ms !default;
Description

Transitions duration

Type

Number