wix-style-react
Version:
wix-style-react
426 lines (353 loc) • 10.6 kB
CSS
@st-import [
--wds-slider-track-size,
--wds-slider-track-size-transparent,
--wds-slider-track-border-border-radius,
--wds-slider-slider-knob-size,
--wds-slider-slider-knob-size-transparent,
--wds-slider-slider-mark-size,
--wds-color-fill-standard-secondary,
--wds-color-fill-standard-primary,
--wds-color-text-standard-primary,
--wds-color-border-transparent-primary,
--wds-color-fill-standard-tertiary,
--wds-color-black-700,
--wds-color-black-500,
] from '@wix/design-system-tokens/all.st.css';
:import {
-st-from: '../Foundation/stylable/colors.st.css';
-st-named: D10-10, D10-20, D10, D50, THEME-COLOR-10, THEME-COLOR-40, F00, B00, D80;
}
:import {
-st-from: "../Foundation/stylable/shadows.st.css";
-st-named: shadow30;
}
:import {
-st-from: '../Foundation/stylable/typography.st.css';
-st-named: text-small-normal;
}
:import {
-st-from: "../common/Focusable/Focusable.st.css";
-st-default: Focusable;
}
:import {
-st-from: "../Text/Text.st.css";
-st-default: Text;
}
:import {
-st-from: "../Tooltip/Tooltip.st.css";
-st-default: Tooltip;
}
:vars {
sliderPadding: 4px;
sliderRailHeight: var(--wds-slider-track-size, 4px);
sliderMarginTop: 9px;
sliderMarginBottom: 6px;
sliderMarkLine: var(--wds-slider-slider-mark-size, 6px);
sliderMarkTextMarginTop: 12px;
sliderMarkTextSize: 18px;
sliderThumbSize: var(--wds-slider-slider-knob-size, 12px);
clickableAreaSize: 24px;
gradientPadding: 4px;
gradientRailHeight: var(--wds-slider-track-size-transparent, 8px);
gradientMarginTop: 9px;
gradientMarginBottom: 8px;
gradientMarkLine: var(--wds-slider-slider-mark-size, 6px);
gradientMarkTextMarginTop: 12px;
gradientMarkTextSize: 18px;
gradientThumbSize: var(--wds-slider-slider-knob-size-transparent, 16px);
}
@custom-selector :--slider :global(.wsr-slider);
@custom-selector :--slider-disabled :global(.wsr-slider-disabled);
@custom-selector :--slider-with-marks :global(.wsr-slider-with-marks);
@custom-selector :--slider-rail :global(.wsr-slider-rail);
@custom-selector :--slider-track :global(.wsr-slider-track);
@custom-selector :--slider-mark :global(.wsr-slider-mark);
@custom-selector :--slider-mark-text :global(.wsr-slider-mark-text);
@custom-selector :--slider-mark-text-active :global(.wsr-slider-mark-text-active);
@custom-selector :--slider-step :global(.wsr-slider-step);
@custom-selector :--slider-vertical :global(.wsr-slider.wsr-slider-vertical);
.root {
height: 100%;
-st-states: hasGradient, horizontal;
}
.root:horizontal {
width: 100%;
}
.root :--slider {
position: relative;
height: calc(value(sliderRailHeight) + 2 * value(sliderPadding));
width: 100%;
touch-action: none;
box-sizing: border-box;
margin: value(sliderMarginTop) 0 value(sliderMarginBottom) 0;
}
.root:hasGradient :--slider {
height: calc(value(gradientRailHeight) + 2 * value(gradientPadding));
width: 100%;
margin: value(gradientMarginTop) 0 value(gradientMarginBottom) 0;
}
.root :--slider-vertical {
width: calc(value(sliderRailHeight) + 2 * value(sliderPadding));
height: 100%;
margin: 0 value(sliderMarginTop) 0 value(sliderMarginBottom);
}
.root:hasGradient :--slider-vertical {
width: calc(value(gradientRailHeight) + 2 * value(gradientPadding));
height: 100%;
margin: 0 value(gradientMarginTop) 0 value(gradientMarginBottom);
}
.root :--slider:not(:--slider-disabled) {
cursor: pointer;
}
.root :--slider-disabled {
cursor: not-allowed;
}
/* extending clickable area */
.root :--slider::before {
content: '';
position: absolute;
top: -12px;
bottom: -12px;
left: 0;
right: 0;
}
.root:hasGradient :--slider::before {
content: '';
position: absolute;
top: -10px;
bottom: -10px;
left: 0;
right: 0;
}
.root :--slider-vertical::before {
content: '';
position: absolute;
left: -12px;
right: -12px;
top: 0;
bottom: 0;
}
.root:hasGradient :--slider-vertical::before {
content: '';
position: absolute;
left: -10px;
right: -10px;
top: 0;
bottom: 0;
}
/* end of extending clickable area */
.root :--slider-with-marks {
height: calc(value(sliderRailHeight) + 2 * value(sliderPadding) + value(sliderMarginBottom) + value(sliderMarkLine) + value(sliderMarkTextMarginTop) + value(sliderMarkTextSize));
margin-bottom: 0;
}
.root:hasGradient :--slider-with-marks {
height: calc(value(gradientRailHeight) + 2 * value(gradientPadding) + value(gradientMarginBottom) + value(gradientMarkLine) + value(gradientMarkTextMarginTop) + value(gradientMarkTextSize));
margin-bottom: 0;
}
.root :--slider-rail {
position: absolute;
width: 100%;
background-color: var(--wds-color-fill-standard-secondary, value(THEME-COLOR-40));
height: value(sliderRailHeight);
border-radius: var(--wds-slider-track-border-border-radius, 10px);
margin: value(sliderPadding) 0;
}
/* extending clickable area*/
.root :--slider-with-marks::before {
content: '';
position: absolute;
top: -12px;
bottom: 0;
left: 0;
right: 0;
}
.root:hasGradient :--slider-rail {
width: 100%;
height: value(gradientRailHeight);
margin: value(gradientPadding) 0;
}
.root :--slider-vertical :--slider-rail {
position: absolute;
height: 100%;
width: value(sliderRailHeight);
margin: 0 value(sliderPadding);
}
.root:hasGradient :--slider-vertical :--slider-rail {
width: value(gradientRailHeight);
height: 100%;
box-shadow: inset 0 0 0 1px var(--wds-color-border-transparent-primary, value(D10-20));
margin: 0 value(gradientPadding);
}
.root :--slider-track {
position: absolute;
left: 0;
background-color: var(--wds-color-fill-standard-primary, value(THEME-COLOR-10));
height: value(sliderRailHeight);
border-radius: var(--wds-slider-track-border-border-radius, 10px);
margin: value(sliderPadding) 0;
}
.root:hasGradient :--slider-track {
display: none;
}
.root :--slider-vertical :--slider-track {
position: absolute;
top: 0;
background-color: var(--wds-color-fill-standard-primary, value(THEME-COLOR-10));
width: value(sliderRailHeight);
border-radius: var(--wds-slider-track-border-border-radius, 10px);
height: 100%;
margin: 0 value(sliderPadding);
}
.root:hasGradient :--slider-vertical :--slider-track {
display: none;
}
.root :--slider-mark {
position: absolute;
top: calc(value(sliderRailHeight) + value(sliderMarkLine) + value(sliderPadding) + value(sliderMarginBottom));
left: 0;
width: 100%;
}
.root:hasGradient :--slider-mark {
top: calc(value(gradientRailHeight) + value(gradientMarkLine) + value(gradientPadding) + value(gradientMarginBottom));
width: 100%;
}
.root :--slider-vertical :--slider-mark {
position: absolute;
top: 0;
left: calc(value(sliderRailHeight) + value(sliderMarkLine) + value(sliderPadding) + value(sliderMarginBottom));
height: 100%;
}
.root:hasGradient :--slider-vertical :--slider-mark {
left: calc(value(gradientRailHeight) + value(gradientMarkLine) + value(gradientPadding) + value(gradientMarginBottom));
height: 100%;
}
.root :--slider-mark-text {
position: absolute;
display: inline-block;
vertical-align: middle;
text-align: center;
color: var(--wds-color-text-standard-primary, value(D10));
}
.root :--slider-mark-text-active {
color: var(--wds-color-text-standard-primary, value(D10));
}
.root :--slider-step {
position: absolute;
width: 100%;
height: value(sliderRailHeight);
background: transparent;
margin: value(sliderPadding) 0;
}
.root:hasGradient :--slider-step {
width: 100%;
height: value(gradientRailHeight);
margin: value(gradientPadding) 0;
}
.root :--slider-vertical :--slider-step {
height: 100%;
width: value(sliderRailHeight);
}
.root:hasGradient :--slider-vertical :--slider-step {
height: 100%;
width: value(gradientRailHeight);
}
.root :--slider-disabled :--slider-rail {
background-color: var(--wds-color-black-700, value(D10-10));
}
.root :--slider-disabled :--slider-track {
background-color: var(--wds-color-black-500, value(D50));
}
.root :--slider-vertical:--slider-disabled :--slider-track {
background-color: var(--wds-color-black-500, value(D50));
}
.root:hasGradient :--slider-vertical:--slider-disabled :--slider-track {
background-color: var(--wds-color-black-500, value(D50));
}
.sliderHandle {
-st-states: disabled;
position: absolute;
box-sizing: border-box;
touch-action: pan-x;
outline: none;
}
.sliderHandle:disabled .sliderThumb {
background-color: var(--wds-color-black-500, value(D50));
}
.sliderHandle:not(:disabled) .sliderThumb:hovered {
transform: scale(1.5);
}
.sliderHandle:not(:disabled) .sliderThumb:hasGradient:hovered {
transform: scale(1.375);
}
.sliderThumb {
-st-states: hovered, hasGradient;
margin: auto;
width: value(sliderThumbSize);
height: value(sliderThumbSize);
border-radius: 50%;
background-color: var(--wds-color-fill-standard-primary, value(THEME-COLOR-10));
}
.sliderThumb:hasGradient {
box-shadow: inset 0 0 0 2px var(--wds-color-fill-standard-tertiary, value(D80));
width: value(gradientThumbSize);
height: value(gradientThumbSize);
}
.sliderHandleWrapper {
-st-extends: Focusable;
}
.sliderHandleWrapper:focus-visible .sliderHandle:not(:disabled) .sliderThumb:not(:hovered) {
box-shadow: 0 0 0 3px value(F00);
z-index: 2;
}
.sliderHandleWrapper:focus-visible .sliderHandle:not(:disabled) .sliderThumb:not(:hovered):hasGradient {
box-shadow: inset 0 0 0 2px value(D80), 0 0 0 3px value(F00);
}
.sliderHandleWrapper:focus .sliderHandle:not(:disabled) .sliderThumb {
box-shadow: 0 0 0 3px transparent;
/* rc-slider focus overwrite */
border: 0 solid transparent;
z-index: 2;
/* removing native browser focus */
outline: none;
}
.sliderHandleWrapper:focus .sliderHandle:not(:disabled) .sliderThumb:hasGradient {
box-shadow: inset 0 0 0 2px value(D80);
}
.markLine {
position: relative;
margin: auto;
width: 1px;
height: value(sliderMarkLine);
background-color: value(D50);
}
:--slider-vertical .markLine {
position: relative;
margin: auto;
height: 1px;
width: value(sliderMarkLine);
background-color: value(D50);
}
.markValue {
position: relative;
margin-top: value(sliderMarkTextMarginTop);
}
:--slider-vertical .markValue {
position: relative;
margin-top: 0;
margin-left: value(sliderMarkTextMarginTop);
}
.mark {
-st-states: direction(enum(vertical, horizontal));
}
.mark:direction(vertical) {
display: flex;
flex-direction: row;
align-items: center;
}
.markLabel {
-st-extends: Text;
}
.sliderHandleTooltip {
-st-extends: Tooltip;
}
/* st-namespace-reference="../../../src/Slider/Slider.st.css" */