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

panel-large

@mixin panel-large() { ... }@mixin panel-large() { 
  max-width: settings.$max-width-large;
 }
Description

Large panel

Parameters

None.

Requires

panel-xlarge

@mixin panel-xlarge() { ... }@mixin panel-xlarge() { 
  max-width: settings.$max-width-xlarge;
 }
Description

XLarge panel

Parameters

None.

Requires

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

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

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

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;
  }
 }
Description

Sheet title

Parameters

None.

Requires

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

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

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

control-back

@mixin control-back() { ... }@mixin control-back() { 
  position: relative;
  margin-right: spacing.get('s4');
 }
Description

'Back' control

Parameters

None.

Requires

control-icon-back

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

Styles for 'Back' control icon

Parameters

None.

Requires

content

@mixin content() { ... }@mixin content() { 
  padding: spacing.get('s4');
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
 }
Description

Sheet content container

Parameters

None.

Requires

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);
 }
Description

Sheet steps wrapper styles

Parameters

None.

Requires

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;
  }
 }
Description

Sheet step content

Parameters

None.

Requires

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

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;
Description

Corner radius when on bottom mode

Type

Number

Used by

bottom-stepped-offset

$bottom-stepped-offset: unit.rem(64px) !default;
Description

Top spacing between viewport and panel opened from bottom

Type

Number

Used by

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;
Description

Sheet panel max width in large size

Type

Number

Used by

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;
Description

Header 'back' control icon size

Type

Number

Used by

title-success-icon-size

$title-success-icon-size: unit.rem(20px) !default;
Description

Title icon size while in a success state

Type

Number

Used by

title-success-text-color

$title-success-text-color: kib-core.theme-get('next', 'success') !default;
Description

Title text color while in a success state

Type

Color

Used by

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