Choices
Installation
yarn add @chewy/kib-choices-styles
Import
@use '~@chewy/kib-choices-styles/src/styles' as kib-choices;
Mixins
choice-root
@mixin choice-root() { ... }
@mixin choice-root() { margin-bottom: spacing.get('s4'); }
choice-field
@mixin choice-field() { ... }
@mixin choice-field() { position: relative; display: flex; align-items: center; }
Description
Field wrapper of choice control and label
Parameters
None.
choice-control-native
@mixin choice-control-native($width, $height) { ... }
@mixin choice-control-native($width, $height) { position: absolute; margin: 0; width: $width; height: $height; appearance: none; cursor: pointer; opacity: 0; &:disabled { pointer-events: none; } }
choice-control-custom
@mixin choice-control-custom($block, $width, $height) { ... }
@mixin choice-control-custom($block, $width, $height) { position: relative; display: block; width: $width; height: $height; border: settings.$border-width solid settings.$border-color; border-radius: 50%; flex-shrink: 0; pointer-events: none; &::after { $distance: settings.$border-width * -3; position: absolute; top: $distance; left: $distance; right: $distance; bottom: $distance; border: settings.$border-width solid settings.$outline-color; border-radius: 50%; content: ''; opacity: 0; transform: scale(0.75); transition-property: opacity, transform; transition-duration: 0.2s; } #{$block}__native:focus ~ & { border-color: settings.$border-color-focus; &::after { opacity: 1; transform: scale(1); } } #{$block}__native:checked ~ & { border-color: settings.$border-color-checked; } #{$block}__native:disabled ~ & { opacity: 0.5; pointer-events: none; } #{$block}__native:disabled:not(:checked) ~ & { background-color: settings.$disabled-background-color; } }
Description
Common custom input control styles with various states
Parameters
parameter Name | parameter Description | parameter Type | parameter Default value |
---|---|---|---|
$block | root class of parent block element | String | — none |
$width | input control width | Number | — none |
$height | input control height | Number | — none |
Requires
- [variable]
width
- [variable]
height
- [variable]
border-width
- [variable]
border-color
- [variable]
outline-color
- [variable]
border-color-focus
- [variable]
border-color-checked
- [variable]
disabled-background-color
choice-label
@mixin choice-label() { ... }
@mixin choice-label() { @include typography.style-as('paragraph-1'); margin-left: settings.$label-spacing; color: settings.$label-text-color; cursor: pointer; #{$block}__native:disabled ~ & { color: settings.$label-text-color-disabled; pointer-events: none; } }
Description
Base styles for choice labels
Parameters
None.
Requires
- [variable]
label-spacing
- [variable]
label-text-color
- [variable]
label-text-color-disabled
choice-append-container
@mixin choice-append-container($width) { ... }
@mixin choice-append-container($width) { margin-top: spacing.get('s2'); padding-left: calc(#{$width} + #{settings.$label-spacing}); }
Description
Container that holds appended content below choice label
Parameters
parameter Name | parameter Description | parameter Type | parameter Default value |
---|---|---|---|
$width | input control width | Number | — none |
Requires
- [function]
get
- [variable]
width
- [variable]
label-spacing
Variables
brand
$brand: color.get('action', 'selection-control', 'on', 'primary') !default;
Description
Brand color applied to the components
Type
Color
Used by
- [mixin]
checkbox-control-fill
- [mixin]
radio-control-fill
- [mixin]
stars-wrapper
Author
CDS
brand-emphasis
$brand-emphasis: color.get('action', 'selection-control', 'on', '02') !default;
Description
Brand color applied to some components' various emphasis states
Type
Color
Author
CDS
border-color
$border-color: color.get('action', 'selection-control', 'off', 'primary') !default;
Description
Unchecked default border color
Type
Color
Author
CDS
border-color-focus
$border-color-focus: $brand !default;
Description
Border color when focused
Type
Color
Used by
- [mixin]
choice-control-custom
- [mixin]
menu-group-link
Author
CDS
border-color-checked
$border-color-checked: $brand !default;
Description
Border color when checked
Type
Color
Used by
- [mixin]
choice-control-custom
- [mixin]
checkbox-control-custom
Author
CDS
border-width
$border-width: unit.rem(1px) !default;
Description
Border width
Type
Number
Author
CDS
disabled-background-color
$disabled-background-color: color.get('ui-bg', '02') !default;
outline-color
$outline-color: $brand !default;
Description
Color of outline when focused
Type
Color
Used by
- [mixin]
choice-control-custom
- [mixin]
icon
Author
CDS
size
$size: unit.rem(20px) !default;
Description
Control size for width and height
Type
Number
Used by
- [mixin]
button-padding
- [mixin]
generate-styles
- [mixin]
icon-container
- [mixin]
icon-size
- [mixin]
icon-circle
- [mixin]
generate-all-show-hide
- [mixin]
show-on-size
- [mixin]
hide-on-size
- [function]
get-spacing
- [mixin]
generate-spacing
- [function]
get-columns
- [function]
get-gutters
- [function]
get-column-width
- [function]
has-min-breakpoint
- [function]
has-max-breakpoint
- [mixin]
generate-container-spacing
- [mixin]
generate-item-spacing
- [mixin]
generate-item-span-width
- [mixin]
generate-item-spans
- [mixin]
generate-breakpoint-item-spans
- [mixin]
generate-all-item-spans
- [mixin]
generate-item-offset-margin
- [mixin]
generate-item-offsets
- [mixin]
generate-breakpoint-item-offsets
- [mixin]
generate-all-item-offsets
- [mixin]
generate-item-ordering
- [mixin]
generate-breakpoint-item-ordering
- [mixin]
generate-all-item-ordering
- [mixin]
item-span
- [mixin]
item-offset
- [function]
get-next-breakpoint-size
- [function]
get-breakpoint-min
- [function]
get-breakpoint-max
- [mixin]
query
- [mixin]
generator-landscape-extended
- [mixin]
favorite
- [mixin]
star-svg-icon
- [mixin]
text-skeleton
- [mixin]
line
- [mixin]
container
- [function]
get-type-size
Author
CDS
width
$width: $size !default;
Description
Custom width if different from $size
Type
Number
Used by
- [mixin]
choice-control-native
- [mixin]
choice-control-custom
- [mixin]
choice-append-container
- [mixin]
item-span-width
- [mixin]
item-offset-margin
- [mixin]
append-container-indent
- [mixin]
aspect-ratio
- [mixin]
shape
- [mixin]
root-container
- [mixin]
content-arrow
Author
CDS
height
$height: $size !default;
Description
Custom height if different from $size
Type
Number
Author
CDS
label-align
$label-align: flex-start !default;
Description
Flexbox property to set vertical alignment between choice control and label
Type
String
Author
CDS
label-spacing
$label-spacing: spacing.get('s2') !default;
Description
Spacing between choice control and label
Type
Number
Used by
- [mixin]
choice-label
- [mixin]
choice-append-container
- [mixin]
label
- [mixin]
label
- [mixin]
append-container-indent
Author
CDS
label-text-color
$label-text-color: inherit !default;
Description
Label text color
Type
Color
Used by
- [mixin]
choice-label
- [mixin]
field-control
- [mixin]
field-label
Author
CDS
label-text-color-disabled
$label-text-color-disabled: color.get('text', 'tertiary') !default;