wix-style-react
Version:
362 lines (284 loc) • 7.63 kB
CSS
:import {
-st-from: 'wix-ui-core/dist/src/components/button-next/button-next.st.css';
-st-default: ButtonNext;
}
:import {
-st-from: 'wix-ui-core/dist/src/hocs/Focusable/Focusable.st.css';
-st-default: Focusable;
}
:import {
-st-from: '../Foundation/stylable/colors.st.css';
-st-named: D55, D80, B40, F00, D10, D20, D30, D60, D10-30, D80-70, R10, R20, R30, G10, G20, G30,
THEME-COLOR-10, THEME-COLOR-20, THEME-COLOR-30, THEME-COLOR-40, THEME-COLOR-50;
}
:import {
-st-from: '../Foundation/stylable/easing.st.css';
-st-named: ease-9;
}
/* root */
.root {
-st-extends: ButtonNext;
-st-states: selected, disabled, skin(enum(standard, dark, inverted, destructive, success)),
labelPlacement(enum(tooltip, end, bottom)), shape(enum(square, round));
padding: 0;
box-sizing: border-box;
text-align: center;
border: none;
outline: none;
background-color: transparent;
color: value(D10);
}
.root::content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.root:hover:not(:disabled),
.root:hover:not(:disabled) .label {
color: value(THEME-COLOR-10);
}
.root:active:not(:disabled),
.root:selected:not(:disabled),
.root:active:not(:disabled) .label,
.root:selected:not(:disabled) .label {
color: value(THEME-COLOR-20);
}
.root:selected:not(:disabled) .icon {
background-color: value(THEME-COLOR-40);
}
.root:selected:hover:not(:disabled),
.root:selected:hover:not(:disabled) .label {
color: value(THEME-COLOR-20);
}
.root:selected:hover:not(:disabled) .icon {
background-color: value(THEME-COLOR-50);
}
.root:disabled,
.root:disabled .label {
color: value(D55);
cursor: default;
}
.root:disabled .icon {
background-color: value(D80);
}
.root:disabled:selected .icon {
color: value(D80-70);
background-color: value(D10-30);
}
.root:labelPlacement(end),
.root:labelPlacement(bottom) {
display: block;
max-width: 100%;
}
/* skin Dark */
.root:skin(dark):hover:not(:disabled),
.root:skin(dark):hover:not(:disabled) .label {
color: value(D30);
}
.root:skin(dark):active:not(:disabled),
.root:skin(dark):selected:not(:disabled),
.root:skin(dark):active:not(:disabled) .label,
.root:skin(dark):selected:not(:disabled) .label {
color: value(D80);
}
.root:skin(dark):labelPlacement(bottom):active:not(:disabled) .label,
.root:skin(dark):labelPlacement(bottom):selected:not(:disabled) .label {
color: value(D10);
}
.root:skin(dark):active:not(:disabled) .icon,
.root:skin(dark):selected:not(:disabled) .icon {
background-color: value(D10);
}
.root:skin(dark):active:not(:disabled),
.root:skin(dark):selected:hover:not(:disabled),
.root:skin(dark):active:not(:disabled) .label,
.root:skin(dark):selected:hover:not(:disabled) .label {
color: value(D80);
}
.root:skin(dark):labelPlacement(bottom):active:not(:disabled) .label,
.root:skin(dark):labelPlacement(bottom):selected:hover:not(:disabled) .label {
color: value(D10);
}
.root:skin(dark):active:not(:disabled) .icon,
.root:skin(dark):selected:hover:not(:disabled) .icon {
background-color: value(D20);
}
.root:skin(dark):disabled,
.root:skin(dark):disabled .label {
color: value(D55);
}
.root:skin(dark):disabled .icon {
background-color: value(D80);
}
/* skin Inverted */
.root:skin(inverted):selected:hover:not(:disabled),
.root:skin(inverted):selected:not(:disabled) {
color: value(D80);
}
.root:skin(inverted):selected:not(:disabled) .icon {
background-color: value(THEME-COLOR-10);
}
.root:skin(inverted):selected:hover:not(:disabled) .icon {
background-color: value(THEME-COLOR-20);
}
/* skin Destructive */
.root:skin(destructive):selected:not(:disabled),
.root:skin(destructive):selected:hover:not(:disabled) {
color: value(D80);
}
.root:skin(destructive):hover:not(:disabled),
.root:skin(destructive):hover:not(:disabled) .label,
.root:skin(destructive):selected:not(:disabled) .label {
color: value(R10);
}
.root:skin(destructive):shape(square):labelPlacement(end):selected:not(:disabled) .label {
color: value(D80);
}
.root:skin(destructive):selected:not(:disabled) .icon {
background-color: value(R10);
}
.root:skin(destructive):selected:hover:not(:disabled) .icon {
background-color: value(R20);
}
.root:skin(destructive):selected:not(:disabled) .icon:border {
border: solid 1px value(R10);
}
.root:skin(destructive):selected:hover:not(:disabled) .icon:border {
border: solid 1px value(R20);
}
.root:skin(destructive):hover:not(:disabled) .icon:border {
border: solid 1px value(R30);
}
/* skin Success */
.root:skin(success):selected:not(:disabled),
.root:skin(success):selected:hover:not(:disabled) {
color: value(D80);
}
.root:skin(success):hover:not(:disabled),
.root:skin(success):hover:not(:disabled) .label,
.root:skin(success):selected:not(:disabled) .label {
color: value(G10);
}
.root:skin(success):shape(square):labelPlacement(end):selected:not(:disabled) .label {
color: value(D80);
}
.root:skin(success):selected:not(:disabled) .icon {
background-color: value(G10);
}
.root:skin(success):selected:hover:not(:disabled) .icon {
background-color: value(G20);
}
.root:skin(success):selected:not(:disabled) .icon:border {
border: solid 1px value(G10);
}
.root:skin(success):selected:hover:not(:disabled) .icon:border {
border: solid 1px value(G20);
}
.root:skin(success):hover:not(:disabled) .icon:border {
border: solid 1px value(G30);
}
/* icon */
.icon {
-st-extends: Focusable;
-st-states: border, size(enum(tiny, small, medium, large));
display: flex;
align-items: center;
outline: none;
background-color: value(D80);
transition: all 100ms value(ease-9);
}
.icon:focus-visible {
box-shadow: 0 0 0 3px value(F00);
}
.icon:size(tiny) {
border-radius: 4px;
padding: 3px;
}
.icon:size(small) {
border-radius: 4px;
padding: 6px;
}
.icon:size(medium) {
border-radius: 6px;
padding: 6px;
}
.icon:size(large) {
border-radius: 6px;
padding: 9px;
}
.icon:size(tiny):border {
padding: 2px;
}
.icon:size(small):border {
padding: 5px;
}
.icon:size(medium):border {
padding: 5px;
}
.icon:size(large):border {
padding: 8px;
}
/* shape Round */
.root:shape(round) .icon {
border-radius: 100%;
}
.root:labelPlacement(end) .icon,
.root:labelPlacement(bottom) .icon {
max-width: 100%;
}
/* label */
.label {
-st-states: placement(enum(tooltip, end, bottom)),
size(enum(tiny, small, medium, large));
transition: all 100ms value(ease-9);
}
.label:placement(end):size(tiny) {
padding: 0 3px;
}
.label:placement(end):size(small),
.label:placement(end):size(medium) {
padding: 0 6px;
}
.label:placement(end):size(large) {
padding: 0 9px;
}
.label:placement(bottom) {
margin-top: 9px;
}
.root:skin(inverted):shape(square):labelPlacement(end):active:not(:disabled) .label,
.root:skin(inverted):shape(square):labelPlacement(end):selected:not(:disabled) .label {
color: value(D80);
}
.labelContainer {
display: flex;
flex-direction: row;
align-items: center;
}
.tooltip {
max-width: 100%;
}
/* Border */
.icon:border {
border: solid 1px value(D60);
}
.root:hover .icon:border {
border: solid 1px value(THEME-COLOR-40);
}
.root:active .icon:border,
.root:selected .icon:border,
.root:selected:hover .icon:border {
border: solid 1px value(THEME-COLOR-30);
}
.root:disabled .icon:border {
border: solid 1px value(D10-30);
}
.root:selected:skin(inverted) .icon:border {
border: solid 1px value(THEME-COLOR-10);
}
.root:selected:skin(inverted):hover .icon:border {
border: solid 1px value(THEME-COLOR-20);
}
.root:disabled:selected .icon:border {
border: solid 1px transparent;
}