Hero Carousel
Installation
yarn add @chewy/kib-carousels-stylesImport
@use '~@chewy/kib-carousels-styles/src/kib-hero-carousel/styles' as kib-hero-carousel;Mixins
root-container
@mixin root-container() { ... }@mixin root-container() { position: relative; max-width: settings.$max-width; margin: 0 auto; }
container
@mixin container() { ... }@mixin container() { position: relative; display: block; margin-left: auto; margin-right: auto; width: 100%; min-height: settings.$min-height; overflow: hidden; }
slides-container
@mixin slides-container() { ... }@mixin slides-container() { display: flex; overflow: hidden; list-style: none; }
Description
Hero carousel slides container
Parameters
None.
slide
@mixin slide() { ... }@mixin slide() { margin: 0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; backface-visibility: hidden; > :last-child { margin-bottom: 0; } }
Description
Hero carousel slide element
Parameters
None.
slide-hide
@mixin slide-hide() { ... }@mixin slide-hide() { display: none; }
Description
Hero carousel slide hidden
Parameters
None.
nav
@mixin nav() { ... }@mixin nav() { padding-left: spacing.get('s1'); padding-right: spacing.get('s1'); position: absolute; left: 50%; bottom: 0; z-index: 2; transform: translateX(-50%); display: flex; background-color: settings.$nav-background; border-top-left-radius: settings.$nav-border-radius; border-top-right-radius: settings.$nav-border-radius; }
Description
Hero carousel navigation container
Parameters
None.
Requires
- [function]
get - [variable]
nav-background - [variable]
nav-border-radius
nav-button
@mixin nav-button() { ... }@mixin nav-button() { padding: 0; position: relative; width: settings.$pagination-button-size; height: settings.$pagination-button-size; appearance: none; background-color: transparent; border: 0; color: settings.$pagination-button-text-color; cursor: pointer; &:focus { position: relative; &:focus-visible { outline: none; } &::after { $distance: settings.$emphasis-size * -2; position: absolute; top: $distance; left: $distance; right: $distance; bottom: $distance; border: settings.$emphasis-size solid settings.$emphasis-outer-color; box-shadow: inset 0 0 0 settings.$emphasis-size settings.$emphasis-inner-color; content: ''; } } }
Description
Hero carousel navigation button
Parameters
None.
Requires
- [variable]
pagination-button-size - [variable]
pagination-button-text-color - [variable]
emphasis-size - [variable]
emphasis-outer-color - [variable]
emphasis-inner-color
Used by
- [mixin]
pause - [mixin]
pagination-button
pause
@mixin pause() { ... }@mixin pause() { @include nav-button; }
pagination
@mixin pagination() { ... }@mixin pagination() { padding: 0; display: flex; align-items: center; }
Description
Hero carousel pagination container
Parameters
None.
pagination-button
@mixin pagination-button() { ... }@mixin pagination-button() { @include nav-button; padding-left: spacing.get('s1'); padding-right: spacing.get('s1'); // Pagination dot element &::before { position: relative; display: block; width: settings.$pagination-dot-size; height: settings.$pagination-dot-size; background-color: settings.$pagination-dot-background-color; border: settings.$pagination-dot-border-width solid settings.$pagination-dot-border-color; border-radius: 50%; content: ''; transition: border-color 200ms; } }
Description
Hero carousel button dot
Parameters
None.
Requires
- [mixin]
nav-button - [function]
get - [variable]
pagination-dot-size - [variable]
pagination-dot-background-color - [variable]
pagination-dot-border-width - [variable]
pagination-dot-border-color
pagination-button-active
@mixin pagination-button-active() { ... }@mixin pagination-button-active() { &::before { background-color: settings.$pagination-dot-active-background-color; @media (forced-colors: active) { background-color: Highlight; } } }
Description
Hero carousel button dot active
Parameters
None.
Requires
- [variable]
pagination-dot-active-background-color
control-icon
@mixin control-icon() { ... }@mixin control-icon() { @include common.chip-icon-styles('transparent'); pointer-events: none; }
Description
Hero arrow control icons
Parameters
None.
slide-vue-transition
@mixin slide-vue-transition() { ... }@mixin slide-vue-transition() { transition: transform settings.$slide-transition-duration settings.$slide-transition-timing; @media screen and (prefers-reduced-motion: reduce) { transition: none; } }
Description
Custom slide vue transition for <transition /> component
Parameters
None.
Requires
- [variable]
slide-transition-duration - [variable]
slide-transition-timing
slide-vue-transition-translation
@mixin slide-vue-transition-translation($reverse) { ... }@mixin slide-vue-transition-translation($reverse) { @if $reverse { transform: translateX(-100%); } @else { transform: translateX(100%); } }
Description
Custom slide vue transition translation directions
Parameters
| parameter Name | parameter Description | parameter Type | parameter Default value |
|---|---|---|---|
$reverse | Direction of transition | Boolean | — none |
slide-react-transition
@mixin slide-react-transition() { ... }@mixin slide-react-transition() { animation: settings.$slide-transition-timing; @if $leave { @if $reverse { animation-name: kib-hero-carousel-leave-left; } @else { animation-name: kib-hero-carousel-leave-right; } animation-duration: settings.$slide-transition-duration * 2; } @else { @if $reverse { animation-name: kib-hero-carousel-left; } @else { animation-name: kib-hero-carousel-right; } animation-duration: settings.$slide-transition-duration * 1; } }
Description
Custom slide React transition
Parameters
None.
Requires
- [variable]
slide-transition-timing - [variable]
slide-transition-duration
Variables
max-width
$max-width: unit.rem(1440px) !default;Description
Hero control maximum width
Type
Number
min-height
$min-height: unit.rem(296px) !default;Description
Component minimum height
Type
Number
Used by
- [mixin]
container - [mixin]
root-container - [mixin]
card-root - [mixin]
root-container
emphasis-size
$emphasis-size: unit.rem(2px) !default;emphasis-outer-color
$emphasis-outer-color: color.get('action', 'cta', 'primary', 'primary') !default;emphasis-inner-color
$emphasis-inner-color: color.get('action', 'cta', 'alternate', 'primary') !default;Type
Color
Used by
- [mixin]
nav-button
nav-background
$nav-background: color.get('static', 'gray1', '900a50') !default;nav-border-radius
$nav-border-radius: kib-core.dimensions-get('small') !default;pagination-button-text-color
$pagination-button-text-color: color.get('ui-bg', 'primary') !default;pagination-button-size
$pagination-button-size: kib-core.dimensions-get('default') !default;pagination-dot-background-color
$pagination-dot-background-color: transparent !default;pagination-dot-border-color
$pagination-dot-border-color: $pagination-button-text-color !default;pagination-dot-border-width
$pagination-dot-border-width: unit.rem(1px) !default;pagination-dot-active-background-color
$pagination-dot-active-background-color: $pagination-dot-border-color !default;pagination-dot-size
$pagination-dot-size: kib-core.dimensions-get('small') !default;control-size
$control-size: unit.rem(36px) !default;Type
Number
control-offset
$control-offset: spacing.get('s6') !default;Type
Number
slide-transition-duration
$slide-transition-duration: 600ms !default;Description
Hero slide transition duration
Type
Number
Used by
- [mixin]
slide-vue-transition - [mixin]
slide-react-transition
slide-transition-timing
$slide-transition-timing: ease-in-out !default;Description
Hero slide transition timing function
Type
String
Used by
- [mixin]
slide-vue-transition - [mixin]
slide-react-transition