Installation

  yarn add @chewy/kib-carousels-styles

Import

  @use '~@chewy/kib-carousels-styles/src/kib-carousel/styles' as kib-carousel;
@mixin root-container() { ... }@mixin root-container() { 
  @include kib-button-new.root;

  @include media.query('max-sm') {
    margin-left: unit.negative(settings.$max-small);
    margin-right: unit.negative(settings.$max-small);
  }
 }
Description

Carousel root element styles

Parameters

None.

Requires
@mixin wrapper() { ... }@mixin wrapper() { 
  position: relative;
 }
Description

Carousel content wrapper

Parameters

None.

@mixin content() { ... }@mixin content() { 
  @include kib-scroller.container;
  @include kib-scroller.hide-scrollbar;

  margin-top: 0;
  margin-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  display: flex;
  display: grid;
  gap: settings.$gap;
  grid-auto-flow: column;
  scroll-snap-type: none;
  justify-content: flex-start;

  &:focus {
    outline: 0;
  }

  @include media.query('max-sm') {
    gap: settings.$gap-small;
    padding-left: settings.$max-small;
    padding-right: settings.$max-small;
    scroll-padding: settings.$max-small;

    // This is a spacer to have a gap applied at the end of the carousel.
    &::after {
      content: '';
      width: unit.rem(1px);
    }
  }
 }
Description

Carousel content scrollable area

Parameters

None.

Requires
@mixin scroll-snap() { ... }@mixin scroll-snap() { 
  scroll-snap-type: x proximity;
 }
Description

Carousel scroll snapping when overflow is detected

Parameters

None.

@mixin control() { ... }@mixin control() { 
  @include kib-button-new.generate-styles;

  & + & {
    margin-left: 0;
  }

  padding: 0;
  position: absolute;
  top: 50%;
  margin-top: math.div(settings.$control-size, -2);
  width: settings.$control-size;
  height: settings.$control-size;

  @include media.query('max-sm') {
    &:not(:focus-within) {
      @include kib-core.visually-hidden;
    }
  }
 }
Description

Carousel arrow buttons to scroll content

Parameters

None.

Requires
@mixin control-next() { ... }@mixin control-next() { 
  right: settings.$control-offset;

  @include media.query('min-md') {
    right: settings.$control-offset-large;
  }
 }
Description

"Next" arrow control

Parameters

None.

Requires
@mixin control-prev() { ... }@mixin control-prev() { 
  left: settings.$control-offset;

  @include media.query('min-md') {
    left: settings.$control-offset-large;
  }
 }
Description

"Previous" arrow control

Parameters

None.

Requires
@mixin control-icon() { ... }@mixin control-icon() { 
  width: settings.$control-icon-size;
  height: settings.$control-icon-size;
 }
Description

Control inner icon styles

Parameters

None.

Requires
@mixin item() { ... }@mixin item() { 
  margin-bottom: 0;
  scroll-snap-align: start;
 }
Description

Carousel item container

Parameters

None.

@mixin view-all() { ... }@mixin view-all() { 
  align-self: center;
 }
Description

Carousel "view all" item styles

Parameters

None.

@mixin view-all-link() { ... }@mixin view-all-link() { 
  @include typography.style-as('paragraph-2');

  padding-left: spacing.get('s4');
  padding-right: spacing.get('s4');
  display: block;
  color: settings.$view-all-link-text-color;
  text-align: center;
  text-decoration: none;
 }
Description

Carousel "view all" link styles

Parameters

None.

Requires
@mixin view-all-button() { ... }@mixin view-all-button() { 
  @include kib-button-new.generate-styles('action', 'tertiary', 'large', true);

  margin: spacing.get('s2');
 }
Description

Carousel "view all" button styles

Parameters

None.

Requires
@mixin view-all-icon() { ... }@mixin view-all-icon() { 
  display: block;
  width: settings.$view-all-icon-size;
  height: settings.$view-all-icon-size;
 }
Description

Carousel "view all" icon svg

Parameters

None.

Requires
$gap: spacing.get('s4') !default;
Description

Default spacing between items

Type

Number

Used by
$gap-small: spacing.get('s2') !default;
Description

Small spacing between items

Type

Number

Used by
$max-small: spacing.get('s4') !default;
Description

Small container spacing

Type

Number

Used by
$control-size: kib-button-new.$default-height !default;
Description

Size of arrow control buttons

Type

Number

Used by
$control-icon-size: kib-core.dimensions-get('large') !default;
Description

Size of arrow icons

Type

Number

Used by
$control-offset: spacing.get('s2') !default;
Description

Default offset from carousel sides for controls (small screens)

Type

Number

Used by
$control-offset-large: calc(#{spacing.get('s2')} * -1) !default;
Description

Offset from carousel sides for controls on large screens

Type

Number

Used by
$view-all-control-size: unit.rem(56px) !default;
Description

"View All" control size

Type

Number

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

"View All" link text color

Type

Color

Used by
$view-all-icon-size: $control-icon-size !default;
Description

"View All" arrow icon size

Type

Number

Used by