UNPKG

wix-style-react

Version:
585 lines (460 loc) • 11.5 kB
@st-global-custom-property --wsr-button-border-radius; :import { -st-from: 'wix-ui-core/dist/src/components/button-next/button-next.st.css'; -st-default: ButtonNext; } :import { -st-from: '../Foundation/stylable/easing.st.css'; -st-named: ease-9, speed-fast-1; } :import { -st-from: '../Foundation/stylable/colors.st.css'; -st-named: B10, F00, B20, R10, R20, P10, P20, G10, G20, D80, B50, D40, D10, D20, B40, F00, D10-20, D20-48, D20-54, D20-60, D80-30, D80-70, D10-30, THEME-TEXT-COLOR-PRIMARY-LIGHT, THEME-COLOR-10, THEME-COLOR-20; } :import { -st-from: '../Foundation/stylable/typography.st.css'; -st-named: text-tiny-normal, text-small-normal, text-medium-normal, text-tiny-bold; } .root { -st-extends: ButtonNext; -st-states: skin(string), size(string), priority(string), fluid, ellipsis; justify-content: center; box-sizing: border-box; text-align: center; border: 1px solid; -st-mixin: text-medium-normal; outline: none; transition-duration: value(speed-fast-1); transition-timing-function: value(ease-9); transition-property: background-color, color, border-color; height: 36px; min-width: 84px; border-radius: var(--wsr-button-border-radius, 18px); padding: 0 23px; background-color: value(THEME-COLOR-10); border-color: value(THEME-COLOR-10); color: value(THEME-TEXT-COLOR-PRIMARY-LIGHT); /* render as anchor overrides */ text-decoration: none; user-select: none; white-space: nowrap; } .root::content { display: flex; align-items: center; } .root:hover { background-color: value(THEME-COLOR-20); border-color: value(THEME-COLOR-20); color: value(THEME-TEXT-COLOR-PRIMARY-LIGHT); } .root:active { background-color: value(THEME-COLOR-10); border-color: value(THEME-COLOR-10); color: value(THEME-TEXT-COLOR-PRIMARY-LIGHT); } .root:disabled { color: value(THEME-TEXT-COLOR-PRIMARY-LIGHT); background-color: value(D10-30); border-color: transparent; } .root:focus-visible { box-shadow: 0 0 0 3px value(F00); z-index: 1000; } /* Skin: standard - secondary */ .root:skin(standard):priority(secondary) { background-color: transparent; border-color: value(THEME-COLOR-10); color: value(THEME-COLOR-10); } .root:skin(standard):priority(secondary):hover { color: value(D80); border-color: transparent; background-color: value(THEME-COLOR-20); } .root:skin(standard):priority(secondary):active { background-color: value(THEME-COLOR-10); border-color: value(THEME-COLOR-10); color: value(D80); } .root:skin(standard):priority(secondary):disabled { color: value(D10-30); background-color: transparent; border-color: value(D10-30); } /* Skin: inverted */ .root:skin(inverted) { border-color: value(D80); background-color: value(D80); color: value(B10); } .root:skin(inverted):hover { color: value(D80); border-color: transparent; background-color: value(B20); } .root:skin(inverted):active { background-color: value(B10); border-color: value(B10); color: value(D80); } .root:skin(inverted):disabled { color: value(D10-30); background-color: transparent; border-color: value(D10-30); } /* skin: light */ .root:skin(light) { border-color: value(D80); background-color: value(D80); color: value(B20); } .root:skin(light):hover { background-color: value(B50); color: value(B10); border-color: value(B50); } .root:skin(light):active { background-color: value(B40); color: value(B10); } .root:skin(light):disabled { color: value(D80); background-color: value(D80-30); border-color: transparent; } /* skin: light - secondary */ .root:skin(light):priority(secondary) { border: solid 1px value(D80); background: transparent; color: value(D80); } .root:skin(light):priority(secondary):hover { background-color: value(B50); color: value(B10); border-color: value(B50); } .root:skin(light):priority(secondary):active { background-color: value(B40); border: solid 1px value(B40); color: value(B10); } .root:skin(light):priority(secondary):disabled { color: value(D80-70); background-color:transparent; border-color: value(D80-70); } /* skin: destructive */ .root:skin(destructive) { background-color: value(R10); border-color: value(R10); color: value(D80); } .root:skin(destructive):hover { background-color: value(R20); border-color: value(R20); color: value(D80); } .root:skin(destructive):active { background-color: value(R10); border-color: value(R10); color: value(D80); } .root:skin(destructive):disabled { color: value(D80); background-color: value(D10-30); border-color: transparent; } /* skin: destructive - secondary */ .root:skin(destructive):priority(secondary) { border: solid 1px value(R10); background: transparent; color: value(R10); } .root:skin(destructive):priority(secondary):hover { background-color: value(R20); border-color: value(R20); color: value(D80); } .root:skin(destructive):priority(secondary):active { background-color: value(R10); border-color: value(R10); color: value(D80); } .root:skin(destructive):priority(secondary):disabled { color: value(D10-30); background-color: transparent; border-color: value(D10-30); } /* skin: premium */ .root:skin(premium) { background-color: value(P10); border-color: value(P10); color: value(D80); } .root:skin(premium):hover { background-color: value(P20); border-color: value(P20); color: value(D80); } .root:skin(premium):active { background-color: value(P10); border-color: value(P10); color: value(D80); } .root:skin(premium):disabled { color:value(D80); background-color: value(D10-30); border-color: transparent; } /* skin: premium - secondary */ .root:skin(premium):priority(secondary) { border: solid 1px value(P10); background: transparent; color: value(P10); } .root:skin(premium):priority(secondary):hover { background-color: value(P20); border-color: value(P20); color: value(D80); } .root:skin(premium):priority(secondary):active{ background-color: value(P10); border-color: value(P10); color: value(D80); } .root:skin(premium):priority(secondary):disabled { color: value(D10-30); background-color: transparent; border-color: value(D10-30); } /* skin: premium-light - primary */ .root:skin(premium-light) { background-color: value(P10); border-color: value(P10); color: value(D80); } .root:skin(premium-light):hover { background-color: value(P20); border-color: value(P20); color: value(D80); } .root:skin(premium-light):active { background-color: value(P10); border-color: value(P10); color: value(D80); } .root:skin(premium-light):disabled { color:value(D80); background-color: value(D80-30); border-color: transparent; } /* skin: premium-light - secondary */ .root:skin(premium-light):priority(secondary) { background-color: transparent; border-color: value(D80); color: value(D80); } .root:skin(premium-light):priority(secondary):hover { background-color: value(D80); border-color: value(D80); color: value(P10); } .root:skin(premium-light):priority(secondary):active { background-color: value(D80); border-color: value(D80); color: value(P10); } .root:skin(premium-light):priority(secondary):disabled { color: value(D80-70); background-color:transparent; border-color: value(D80-70); } /* skin: dark */ .root:skin(dark) { background-color: value(D10); border: solid 1px value(D10); color: value(D80); } .root:skin(dark):hover { color: value(D80); background-color: value(D20); border-color: value(D20); } .root:skin(dark):active { background-color: value(D10); border-color: value(D10); color: value(D80); } .root:skin(dark):disabled { color: value(D80); background-color: value(D10-30); border-color: transparent; } /* skin: dark - secondary */ .root:skin(dark):priority(secondary) { background-color: transparent; border: solid 1px value(D40); color: value(D10); } .root:skin(dark):priority(secondary):hover { color: value(D80); background-color: value(D20); border-color: value(D20); } .root:skin(dark):priority(secondary):active { background-color: value(D10); border-color: value(D10); color: value(D80); } .root:skin(dark):priority(secondary):disabled { color: value(D10-30); background-color: transparent; border-color: value(D10-30); } /* skin: transparent */ .root:skin(transparent) { border-color: transparent; background-color: value(D20-48); color: value(D80); } .root:skin(transparent):hover { border-color: transparent; background-color: value(D20-54); color: value(D80); } .root:skin(transparent):active { border-color: transparent; background-color: value(D20-60); color: value(D80); } .root:skin(transparent):disabled { background-color: value(D10-20); border-color: transparent; color: value(D80-70); } /* skin: transparent - secondary */ .root:skin(transparent):priority(secondary) { border-color: transparent; background-color: transparent; color: value(D80); } .root:skin(transparent):priority(secondary):hover { border-color: transparent; background-color: value(D20-54); color: value(D80); } .root:skin(transparent):priority(secondary):active { border-color: transparent; background-color: value(D20-60); color: value(D80); } .root:skin(transparent):priority(secondary):disabled { background-color: transparent; border-color: transparent; color: value(D80-70); } /* sizes */ .root:size(large) { height: 42px; min-width: 102px; -st-mixin: text-medium-normal; border-radius: var(--wsr-button-border-radius, 21px); padding: 0 29px; } .root:size(small) { height: 30px; min-width: 72px; -st-mixin:text-small-normal; border-radius: var(--wsr-button-border-radius, 15px); padding: 0 17px; } .root:size(tiny) { height: 24px; min-width: 60px; -st-mixin: text-tiny-normal; line-height: 16px; border-radius: var(--wsr-button-border-radius, 18px); padding: 0 11px; } .root:size(tiny)[data-madefor="true"] { -st-mixin: text-tiny-bold; } /* Full width mode */ .root:fluid { width: 100%; } /* Ellipsis */ .root:ellipsis { max-width: 100%; } /* Suffix and prefix */ .root:size(tiny)::suffix { margin: 0 -6px 0 3px; width: 18px; height: 18px; } .root:size(tiny)::prefix { margin: 0 3px 0 -6px; width: 18px; height: 18px; } .root:size(small)::suffix { margin: 0 -6px 0 6px; width: 18px; height: 18px; } .root:size(small)::prefix { margin: 0 6px 0 -6px; width: 18px; height: 18px; } .root::suffix { margin: 0 -12px 0 6px; width: 24px; height: 24px; } .root::prefix { margin: 0 6px 0 -12px; width: 24px; height: 24px; } .root:size(large)::suffix { margin: 0 -12px 0 12px; width: 24px; height: 24px; } .root:size(large)::prefix { margin: 0 12px 0 -12px; width: 24px; height: 24px; } /* rtl */ :global([dir='rtl']) .root:size(large)::suffix { margin: 0 12px 0 -12px; } :global([dir='rtl']) .root:size(large)::prefix { margin: 0 -12px 0 12px; } :global([dir='rtl']) .root:size(small)::suffix { margin: 0 6px 0 -6px; } :global([dir='rtl']) .root:size(small)::prefix { margin: 0 -6px 0 6px; } :global([dir='rtl']) .root::suffix { margin: 0 12px 0 -12px; } :global([dir='rtl']) .root::prefix { margin: 0 -12px 0 12px; } :global([dir='rtl']) .root:size(tiny)::suffix { margin: 0 0 0 -6px; } :global([dir='rtl']) .root:size(tiny)::prefix { margin: 0 -6px 0 0; }