Sheet
Installation
yarn add @chewy/kib-overlays-styles
Import
@use '~@chewy/kib-overlays-styles/src/kib-sheet/styles' as kib-sheet;
Mixins
panel
@mixin panel() { ... }
@mixin panel() { @include kib-foundations.elevation('high'); @include typography.style-as('paragraph-1'); position: fixed; top: 0; right: 0; bottom: 0; z-index: settings.$z-index; width: 100%; max-width: settings.$max-width; display: flex; flex-direction: column; background-color: settings.$background-color; color: settings.$text-color; @include media.query('max-sm') { max-width: none; } }
Description
Sheet panel
Parameters
None.
Requires
- [variable]
z-index
- [variable]
max-width
- [variable]
background-color
- [variable]
text-color
panel-large
@mixin panel-large() { ... }
@mixin panel-large() { max-width: settings.$max-width-large; }
panel-xlarge
@mixin panel-xlarge() { ... }
@mixin panel-xlarge() { max-width: settings.$max-width-xlarge; }
panel-bottom
@mixin panel-bottom() { ... }
@mixin panel-bottom() { @include media.query('max-sm') { top: auto; max-height: calc(100% - #{settings.$bottom-stepped-offset}); border-top-left-radius: settings.$radius-bottom; border-top-right-radius: settings.$radius-bottom; } }
Description
Sheet panel on bottom mode
Parameters
None.
Requires
- [variable]
bottom-stepped-offset
- [variable]
radius-bottom
panel-bottom-stepped
@mixin panel-bottom-stepped() { ... }
@mixin panel-bottom-stepped() { @include media.query('max-sm') { top: settings.$bottom-stepped-offset; } }
Description
Sheet panel on bottom mode with steps
Parameters
None.
Requires
- [variable]
bottom-stepped-offset
header
@mixin header() { ... }
@mixin header() { padding: spacing.get('s3', 's4'); display: flex; align-items: center; justify-content: flex-start; border-bottom: kib-divider.$divider-size-xs solid kib-divider.$divider-color-default; }
Description
Header wrapper
Parameters
None.
Requires
- [function]
get
- [variable]
divider-size-xs
- [variable]
divider-color-default
title
@mixin title() { ... }
@mixin title() { padding: 0; margin: 0; @include typography.style-as('section-2'); margin-right: auto; transition: transform settings.$transition-duration; /** * Title will receive focus on step change. * It's considered acceptable to hide focus outline for this use case only. */ &:focus { outline: 0; } }
title-success
@mixin title-success() { ... }
@mixin title-success() { display: flex; align-items: center; justify-content: flex-start; color: settings.$title-success-text-color; }
Description
Sheet title when in a success state
Parameters
None.
Requires
- [variable]
title-success-text-color
title-with-back
@mixin title-with-back() { ... }
@mixin title-with-back() { position: relative; left: (settings.$control-size + kib-core.dimensions-get('small')) * -1; transform: translateX(kib-foundations.rem(44px)); }
Description
Sheet title when back button is visible
Parameters
None.
Requires
- [function]
rem
- [variable]
control-size
title-icon
@mixin title-icon() { ... }
@mixin title-icon() { margin-right: spacing.get('s2'); width: settings.$title-success-icon-size; height: settings.$title-success-icon-size; }
Description
Sheet title icon when in success state
Parameters
None.
Requires
- [function]
get
- [variable]
title-success-icon-size
control-back
@mixin control-back() { ... }
@mixin control-back() { position: relative; margin-right: spacing.get('s4'); }
control-icon-back
@mixin control-icon-back() { ... }
@mixin control-icon-back() { width: settings.$control-icon-back-size; height: settings.$control-icon-back-size; }
content
@mixin content() { ... }
@mixin content() { padding: spacing.get('s4'); display: flex; flex-direction: column; flex: 1; overflow-y: auto; overflow-x: hidden; }
content-stepped
@mixin content-stepped() { ... }
@mixin content-stepped() { flex-direction: row; overflow: hidden; }
Description
Stepped sheet content modifier
Parameters
None.
steps-wrapper
@mixin steps-wrapper() { ... }
@mixin steps-wrapper() { position: relative; display: flex; flex-grow: 1; width: 100%; margin: calc(#{spacing.get('s4')} * -1); }
step
@mixin step() { ... }
@mixin step() { display: flex; flex-direction: column; width: 100%; }
Description
Sheet step container
Parameters
None.
step-content
@mixin step-content() { ... }
@mixin step-content() { @include kib-modal.scrolling-shadow; padding: spacing.get('s4', 's4') 0; overflow-y: auto; @include media.query('max-sm') { margin-bottom: auto; } }
step-transition-common
@mixin step-transition-common() { ... }
@mixin step-transition-common() { position: absolute; top: 0; left: 0; width: 100%; height: 100%; transition: { duration: settings.$transition-duration; property: opacity, transform; timing-function: ease-in-out; } @media screen and (prefers-reduced-motion: reduce) { transition: none; } }
Description
Styles custom classes for forward/back step animation
Parameters
None.
Requires
- [variable]
transition-duration
step-transition-forward
@mixin step-transition-forward() { ... }
@mixin step-transition-forward() { opacity: 0; transform: translateX(100%); }
Description
Transition styles for forward step animation
Parameters
None.
step-transition-backward
@mixin step-transition-backward() { ... }
@mixin step-transition-backward() { opacity: 0; transform: translateX(-100%); }
Description
Transition styles for backward step animation
Parameters
None.
step-transition-react-visible
@mixin step-transition-react-visible() { ... }
@mixin step-transition-react-visible() { opacity: 1; transform: translateX(0); }
Description
React-specific styles for -active
transition classes
Parameters
None.
Variables
background-color
$background-color: color.get('ui-bg', 'primary') !default;
Description
Background color
Type
Color
text-color
$text-color: color.get('text', 'primary') !default;
Description
Text color
Type
Color
radius-bottom
$radius-bottom: kib-core.dimensions-get('small') !default;
bottom-stepped-offset
$bottom-stepped-offset: unit.rem(64px) !default;
Description
Top spacing between viewport and panel opened from bottom
Type
Number
Used by
- [mixin]
panel-bottom
- [mixin]
panel-bottom-stepped
max-width
$max-width: unit.rem(400px) !default;
Description
Sheet panel default max width
Type
Number
max-width-large
$max-width-large: unit.rem(611px) !default;
Description
Sheet panel max width in large size
Type
Number
max-width-xlarge
$max-width-xlarge: unit.rem(1080px) !default;
control-size
$control-size: unit.rem(36px) !default;
Description
Header control size
Type
Number
control-icon-size
$control-icon-size: unit.rem(12px) !default;
Description
Header control icon size
Type
Number
control-icon-back-size
$control-icon-back-size: unit.rem(20px) !default;
title-success-icon-size
$title-success-icon-size: unit.rem(20px) !default;
title-success-text-color
$title-success-text-color: kib-core.theme-get('next', 'success') !default;
transition-duration
$transition-duration: 300ms !default;
Description
Duration of open/close transition
Type
Number
z-index
$z-index: 5001 !default;
Description
Stacking z-index
Type
Number