Choices Range
Installation
yarn add @chewy/kib-choices-styles
Import
@use '~@chewy/kib-choices-styles/src/kib-range/styles' as kib-range;
Functions
range-track-get-fill
@function range-track-get-fill($lowerFill, $upperFill) { ... }
@function range-track-get-fill($lowerFill, $upperFill) { // stylelint-disable-next-line scss/operator-no-newline-after @return linear-gradient($lowerFill, $lowerFill) list.slash( 0, calc( 0.5 * #{settings.$range-thumb-size} + var(--ratio) * (100% - #{settings.$range-thumb-size}) ) ) 100% no-repeat $upperFill; }
Description
Calculate the fill color of the track
Parameters
parameter Name | parameter Description | parameter Type | parameter Default value |
---|---|---|---|
$lowerFill | The color of the lower fill | Color | — none |
$upperFill | The color of the upper fill | Color | — none |
Requires
- [variable]
range-thumb-size
Used by
- [mixin]
range-track
Author
CDS
Mixins
range-field
@mixin range-field() { ... }
@mixin range-field() { display: flex; flex-direction: column-reverse; }
Description
Styles for field
Parameters
None.
Author
CDS
range-control-native
@mixin range-control-native() { ... }
@mixin range-control-native() { appearance: none; background: transparent; width: 100%; margin: 0; padding: 0; // TRACK &::-webkit-slider-runnable-track { @include range-track(1); } &:disabled::-webkit-slider-runnable-track { @include range-track-fill-disabled; } // FIREFOX &::-moz-range-track { @include range-track; } &::-moz-range-progress { @include range-track-fill; } &:disabled::-moz-range-progress { @include range-track-fill-disabled; } // IE &::-ms-track { background: transparent; border-color: transparent; border-width: settings.$range-thumb-size 0; color: transparent; height: settings.$range-track-height; } &::-ms-fill-lower { @include range-track-ms-fill(1); } &::-ms-fill-upper { @include range-track-ms-fill; } // THUMB &::-webkit-slider-thumb { @include range-thumb; } &:disabled::-webkit-slider-thumb { @include range-thumb-disabled; } // FIREFOX &::-moz-range-thumb { @include range-thumb; @include range-thumb-moz; } &:disabled::-moz-range-thumb { @include range-thumb-disabled; @include range-thumb-moz; } // IE &::-ms-thumb { @include range-thumb; @include range-thumb-ie; } &:disabled::-ms-thumb { @include range-thumb-disabled; } // FOCUS STATE &::-moz-focus-outer { border: none; } &:focus { outline: none; &::-webkit-slider-thumb { @include range-thumb-focused; } // FIREFOX &::-moz-range-thumb { @include range-thumb-focused; } // IE &::-ms-thumb { @include range-thumb-focused; } } // ACTIVE STATE &:active:not(:disabled) { &::-webkit-slider-thumb { @include range-thumb; } // FIREFOX &::-moz-range-thumb { @include range-thumb; @include range-thumb-moz; } // IE &::-ms-thumb { @include range-thumb; @include range-thumb-ie; } } }
Description
Styles for native control
Parameters
None.
Requires
- [mixin]
range-track
- [mixin]
range-track-fill-disabled
- [mixin]
range-track-fill
- [mixin]
range-thumb
- [mixin]
range-thumb-disabled
- [mixin]
range-thumb-moz
- [mixin]
range-thumb-ie
- [mixin]
range-thumb-focused
- [variable]
range-thumb-size
- [variable]
range-track-height
Author
CDS
range-track
@mixin range-track($fill) { ... }
@mixin range-track($fill) { --range: calc(var(--max) - var(--min)); --ratio: calc((var(--val) - var(--min)) / var(--range)); height: settings.$range-track-height; background: settings.$range-track-unfilled-color; border-radius: settings.$range-track-radius; @if $fill == 1 { background: functions.range-track-get-fill( settings.$range-track-filled-color, settings.$range-track-unfilled-color ); } &:hover { cursor: pointer; } }
Description
Generate styles for range's track
Parameters
parameter Name | parameter Description | parameter Type | parameter Default value |
---|---|---|---|
$fill | — none | Number | — none |
Requires
- [function]
range-track-get-fill
- [variable]
range-track-height
- [variable]
range-track-unfilled-color
- [variable]
range-track-radius
- [variable]
range-track-filled-color
Used by
- [mixin]
range-control-native
Author
CDS
range-track-fill
@mixin range-track-fill() { ... }
@mixin range-track-fill() { background: settings.$range-track-filled-color; border-radius: settings.$range-track-radius; height: settings.$range-track-height; }
Description
Generate styles for range's fill
Parameters
None.
Requires
- [variable]
range-track-filled-color
- [variable]
range-track-radius
- [variable]
range-track-height
Used by
- [mixin]
range-control-native
Author
CDS
range-track-fill-disabled
@mixin range-track-fill-disabled() { ... }
@mixin range-track-fill-disabled() { &:hover { cursor: default; } }
Description
Generate styles for range's fill when disabled
Parameters
None.
Used by
- [mixin]
range-control-native
Author
CDS
range-thumb
@mixin range-thumb() { ... }
@mixin range-thumb() { border: settings.$range-thumb-border-size solid settings.$range-thumb-border-color; width: settings.$range-thumb-size; height: settings.$range-thumb-size; border-radius: 50%; background: settings.$range-thumb-color; transition: 0.2s border-color ease-out, 0.2s box-shadow ease-out; position: relative; bottom: math.div(settings.$range-thumb-size, 2.5); appearance: none; &:hover { @include range-thumb-focused; box-shadow: settings.$range-thumb-elevation; cursor: pointer; } &:active { background: settings.$range-thumb-border-color; bottom: math.div(settings.$range-thumb-size, 2.5); box-shadow: none; } }
Description
Generate styles for range's thumb
Parameters
None.
Requires
- [mixin]
range-thumb-focused
- [variable]
range-thumb-border-size
- [variable]
range-thumb-border-color
- [variable]
range-thumb-size
- [variable]
range-thumb-color
- [variable]
range-thumb-elevation
Used by
- [mixin]
range-control-native
- [mixin]
range-thumb-disabled
Author
CDS
range-thumb-ie
@mixin range-thumb-ie() { ... }
@mixin range-thumb-ie() { width: math.div(settings.$range-thumb-size, 1.5); height: math.div(settings.$range-thumb-size, 1.5); }
Description
Range thumb IE styles
Parameters
None.
Requires
- [variable]
range-thumb-size
Used by
- [mixin]
range-control-native
Author
CDS
range-thumb-moz
@mixin range-thumb-moz() { ... }
@mixin range-thumb-moz() { width: math.div(settings.$range-thumb-size, 1.3); height: math.div(settings.$range-thumb-size, 1.3); }
Description
Range thumb Firefox styles
Parameters
None.
Requires
- [variable]
range-thumb-size
Used by
- [mixin]
range-control-native
Author
CDS
range-thumb-focused
@mixin range-thumb-focused() { ... }
@mixin range-thumb-focused() { outline: none; box-shadow: settings.$range-thumb-focused-border; }
Description
Generate styles for range's thumb when focused
Parameters
None.
Requires
- [variable]
range-thumb-focused-border
Used by
- [mixin]
range-control-native
- [mixin]
range-thumb
Author
CDS
range-thumb-disabled
@mixin range-thumb-disabled() { ... }
@mixin range-thumb-disabled() { @include range-thumb; &:hover { box-shadow: none; cursor: default; } &:active { background: settings.$range-thumb-color; } }
Description
Generate styles for range's thumb when disabled
Parameters
None.
Requires
- [mixin]
range-thumb
- [variable]
range-thumb-color
Used by
- [mixin]
range-control-native
Author
CDS
range-slider
@mixin range-slider() { ... }
@mixin range-slider() { $native: #{$block}__native; display: flex; flex: { wrap: wrap; direction: row; } justify-content: space-between; #{$native} { padding-top: 0; padding-bottom: 0; margin: settings.$range-spacing 0 calc(#{settings.$range-spacing} * 2); order: -1; } &--horizontal { flex-wrap: nowrap; align-items: center; #{$native} { margin: 0; height: auto; order: 0; } #{$block}__mark-label { &:first-child, &:last-child { max-width: settings.$range-label-width; } &:first-child { margin-right: settings.$range-spacing; } &:last-child { margin-left: settings.$range-spacing; } } } &--disabled { opacity: settings.$range-disabled-opacity; } }
Description
Styles for range slider
Parameters
None.
Requires
- [variable]
range-spacing
- [variable]
range-label-width
- [variable]
range-disabled-opacity
Author
CDS
range-marks
@mixin range-marks() { ... }
@mixin range-marks() { display: flex; justify-content: space-between; margin-top: settings.$range-spacing; }
range-mark-label
@mixin range-mark-label() { ... }
@mixin range-mark-label() { color: settings.$range-marker-label-color; font-weight: settings.$range-marker-label-weight; }
Description
Styles for mark (min/max) label
Parameters
None.
Requires
- [variable]
range-marker-label-color
- [variable]
range-marker-label-weight
Author
CDS
range-label
@mixin range-label() { ... }
@mixin range-label() { margin-left: 0; margin-right: 0; margin-bottom: spacing.get('s1'); }
Variables
range-track-height
$range-track-height: kib-core-dimensions-get(tiny) !default;
Description
Track height.
Type
Number
Used by
- [mixin]
range-control-native
- [mixin]
range-track
- [mixin]
range-track-fill
Author
CDS
range-track-radius
$range-track-radius: kib-core-dimensions-get(default) !default;
Description
Range's track border radius.
Type
Number
Used by
- [mixin]
range-track
- [mixin]
range-track-fill
Author
CDS
range-track-filled-color
$range-track-filled-color: settings.$brand !default;
range-track-unfilled-color
$range-track-unfilled-color: color.get('action', 'switch', 'background', 'on', '03') !default;
range-thumb-size
$range-thumb-size: kib-core-dimensions-get(default) * 1.75 !default;
Description
Thumb size.
Type
Number
Used by
- [function]
range-track-get-fill
- [mixin]
range-control-native
- [mixin]
range-thumb
- [mixin]
range-thumb-ie
- [mixin]
range-thumb-moz
Author
CDS
range-thumb-border-size
$range-thumb-border-size: kib-core-dimensions-get(tiny) * 0.5 !default;
range-thumb-border-color
$range-thumb-border-color: settings.$brand !default;
range-thumb-color
$range-thumb-color: color.get('action', 'switch', 'foreground') !default;
range-thumb-elevation
$range-thumb-elevation: 0 unit.rem(1px 1px) rgba(0, 0, 0, 0.14),
0 unit.rem(2px 1px -1px) rgba(0, 0, 0, 0.12), 0 unit.rem(1px 3px) rga(0, 0, 0, 0.2) !default;
range-thumb-focused-border
$range-thumb-focused-border: 0 0 0 unit.rem(2px) $range-thumb-color,
0 0 0 unit.rem(3px) $range-thumb-border-color !default;
range-marker-label-color
$range-marker-label-color: color.get('text', 'primary') !default;
range-marker-label-weight
$range-marker-label-weight: $kib-type-weights-medium !default;
range-disabled-opacity
$range-disabled-opacity: 0.5 !default;
range-spacing
$range-spacing: spacing.get('s3') !default;
range-label-width
$range-label-width: unit.rem(38px) !default;