UNPKG

web-expressive

Version:

A standard-first frontend toolkit based on Material Expressive design language intent.

2 lines (1 loc) 15.9 kB
@layer design-system.components{.toggle-btn{--_fill:0;--_motion:border-radius var(--sys-motion-spring-fast-spatial-duration) var(--sys-motion-spring-fast-spatial), background var(--sys-motion-spring-fast-effects-duration) var(--sys-motion-spring-fast-effects);--_radius-full:calc((var(--_block-size) - var(--_inner-padding) * 2) / 2);--_btn-radius:var(--_radius-full);--_shadow:none;--_bg:var(--sys-color-surface-container);--_border:none;--_corner:var(--_btn-radius);--_cursor:pointer;--_on-bg:var(--sys-color-on-surface-variant);--_state:none;--_outline-width:0px;place-items:center;inline-size:fit-content;display:inline-grid;&:has(.input:hover){--_bg:var(--sys-color-surface-container);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-surface-variant);--_state:oklch(from var(--sys-color-on-surface-variant) l c h / 8%)}&:has(.input:focus-visible){--_bg:var(--sys-color-surface-container);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-surface-variant);--_state:oklch(from var(--sys-color-on-surface-variant) l c h / 10%);--_outline-width:3px}&:has(.input:active){--_bg:var(--sys-color-surface-container);--_border:none;--_corner:var(--_btn-radius-expand);--_on-bg:var(--sys-color-on-surface-variant);--_state:oklch(from var(--sys-color-on-surface-variant) l c h / 10%)}&:has(.input:disabled){--_bg:oklch(from var(--sys-color-on-surface) l c h / 10%);--_border:none;--_corner:var(--_btn-radius);--_cursor:not-allowed;--_on-bg:oklch(from var(--sys-color-on-surface) l c h / 38%);--_state:none}&:has(.input:checked){--_bg:var(--sys-color-primary);--_border:none;--_corner:var(--_btn-radius);--_fill:1;--_on-bg:var(--sys-color-on-primary);--_state:none;&:has(.input:hover){--_bg:var(--sys-color-primary);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-primary);--_state:oklch(from var(--sys-color-on-primary) l c h / 8%)}&:has(.input:focus-visible){--_bg:var(--sys-color-primary);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-primary);--_state:oklch(from var(--sys-color-on-primary) l c h / 10%)}&:has(.input:active){--_bg:var(--sys-color-primary);--_border:none;--_corner:var(--_btn-radius-expand);--_on-bg:var(--sys-color-on-primary);--_state:oklch(from var(--sys-color-on-primary) l c h / 10%)}&:has(.input:disabled){--_bg:oklch(from var(--sys-color-on-surface) l c h / 10%);--_border:none;--_corner:var(--_btn-radius);--_cursor:not-allowed;--_on-bg:oklch(from var(--sys-color-on-surface) l c h / 38%);--_state:none}}&.tonal{--_bg:var(--sys-color-secondary-container);--_border:none;--_corner:var(--_btn-radius);--_cursor:pointer;--_on-bg:var(--sys-color-on-secondary-container);--_state:none;&:has(.input:hover){--_bg:var(--sys-color-secondary-container);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-secondary-container);--_state:oklch(from var(--sys-color-on-secondary-container) l c h / 8%)}&:has(.input:focus-visible){--_bg:var(--sys-color-secondary-container);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-secondary-container);--_state:oklch(from var(--sys-color-on-secondary-container) l c h / 10%)}&:has(.input:active){--_bg:var(--sys-color-secondary-container);--_border:none;--_corner:var(--_btn-radius-expand);--_on-bg:var(--sys-color-on-secondary-container);--_state:oklch(from var(--sys-color-on-secondary-container) l c h / 10%)}&:has(.input:disabled){--_bg:oklch(from var(--sys-color-on-surface) l c h / 10%);--_border:none;--_corner:var(--_btn-radius);--_cursor:not-allowed;--_on-bg:oklch(from var(--sys-color-on-surface) l c h / 38%);--_state:none}&:has(.input:checked){--_bg:var(--sys-color-secondary);--_border:none;--_btn-radius:var(--sys-shape-corner-medium);--_corner:var(--_btn-radius);--_fill:1;--_on-bg:var(--sys-color-on-secondary);--_state:none;&:has(.input:hover){--_bg:var(--sys-color-secondary);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-secondary);--_state:oklch(from var(--sys-color-on-secondary) l c h / 8%)}&:has(.input:focus-visible){--_bg:var(--sys-color-secondary);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-secondary);--_state:oklch(from var(--sys-color-on-secondary) l c h / 10%)}&:has(.input:active){--_bg:var(--sys-color-secondary);--_border:none;--_corner:var(--_btn-radius-expand);--_on-bg:var(--sys-color-on-secondary);--_state:oklch(from var(--sys-color-on-secondary) l c h / 10%)}&:has(.input:disabled){--_bg:oklch(from var(--sys-color-on-surface) l c h / 10%);--_border:none;--_corner:var(--_btn-radius);--_cursor:not-allowed;--_on-bg:oklch(from var(--sys-color-on-surface) l c h / 38%);--_state:none}}}&.outline{--_bg:transparent;--_border:1px solid var(--sys-color-outline-variant);--_corner:var(--_btn-radius);--_cursor:pointer;--_on-bg:var(--sys-color-on-surface-variant);--_state:none;&:has(.input:hover){--_bg:transparent;--_border:1px solid var(--sys-color-outline-variant);--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-surface-variant);--_state:oklch(from var(--sys-color-on-surface-variant) l c h / 8%)}&:has(.input:focus-visible){--_bg:transparent;--_border:1px solid var(--sys-color-outline-variant);--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-surface-variant);--_state:oklch(from var(--sys-color-on-surface-variant) l c h / 10%)}&:has(.input:active){--_bg:transparent;--_border:1px solid var(--sys-color-outline-variant);--_corner:var(--_btn-radius-expand);--_on-bg:var(--sys-color-on-surface-variant);--_state:oklch(from var(--sys-color-on-surface-variant) l c h / 10%)}&:has(.input:disabled){--_bg:oklch(from var(--sys-color-on-surface) l c h / 10%);--_border:1px solid var(--sys-color-outline-variant);--_corner:var(--_btn-radius);--_cursor:not-allowed;--_on-bg:oklch(from var(--sys-color-on-surface) l c h / 38%);--_state:none}&:has(.input:checked){--_bg:var(--sys-color-inverse-surface);--_border:none;--_btn-radius:var(--sys-shape-corner-medium);--_corner:var(--_btn-radius);--_fill:1;--_on-bg:var(--sys-color-inverse-on-surface);--_state:none;&:has(.input:hover){--_bg:var(--sys-color-inverse-surface);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-inverse-on-surface);--_state:oklch(from var(--sys-color-inverse-on-surface) l c h / 8%)}&:has(.input:focus-visible){--_bg:var(--sys-color-inverse-surface);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-inverse-on-surface);--_state:oklch(from var(--sys-color-inverse-on-surface) l c h / 10%)}&:has(.input:active){--_bg:var(--sys-color-inverse-surface);--_border:none;--_corner:var(--_btn-radius-expand);--_on-bg:var(--sys-color-inverse-on-surface);--_state:oklch(from var(--sys-color-inverse-on-surface) l c h / 10%)}&:has(.input:disabled){--_bg:oklch(from var(--sys-color-on-surface) l c h / 10%);--_border:none;--_corner:var(--_btn-radius);--_cursor:not-allowed;--_on-bg:oklch(from var(--sys-color-on-surface) l c h / 38%);--_state:none}}}&.elevated{--_bg:var(--sys-color-surface-container-low);--_border:none;--_corner:var(--_btn-radius);--_cursor:pointer;--_on-bg:var(--sys-color-primary);--_shadow:var(--sys-elevation-level1);--_state:none;&:has(.input:hover){--_bg:var(--sys-color-surface-container-low);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-primary);--_state:oklch(from var(--sys-color-on-secondary-container) l c h / 8%)}&:has(.input:focus-visible){--_bg:var(--sys-color-surface-container-low);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-primary);--_state:oklch(from var(--sys-color-on-secondary-container) l c h / 10%)}&:has(.input:active){--_bg:var(--sys-color-surface-container-low);--_border:none;--_corner:var(--_btn-radius-expand);--_on-bg:var(--sys-color-primary);--_state:oklch(from var(--sys-color-on-secondary-container) l c h / 10%)}&:has(.input:disabled){--_bg:oklch(from var(--sys-color-on-surface) l c h / 10%);--_border:none;--_corner:var(--_btn-radius);--_cursor:not-allowed;--_on-bg:oklch(from var(--sys-color-on-surface) l c h / 38%);--_state:none}&:has(.input:checked){--_bg:var(--sys-color-primary);--_border:none;--_btn-radius:var(--sys-shape-corner-medium);--_corner:var(--_btn-radius);--_fill:1;--_on-bg:var(--sys-color-on-primary);--_shadow:var(--sys-elevation-level1);--_state:none;&:has(.input:hover){--_bg:var(--sys-color-primary);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-primary);--_state:oklch(from var(--sys-color-on-secondary) l c h / 8%)}&:has(.input:focus-visible){--_bg:var(--sys-color-primary);--_border:none;--_corner:var(--_btn-radius);--_on-bg:var(--sys-color-on-primary);--_state:oklch(from var(--sys-color-on-secondary) l c h / 10%)}&:has(.input:active){--_bg:var(--sys-color-primary);--_border:none;--_corner:var(--_btn-radius-expand);--_on-bg:var(--sys-color-on-primary);--_state:oklch(from var(--sys-color-on-secondary) l c h / 10%)}&:has(.input:disabled){--_bg:oklch(from var(--sys-color-on-surface) l c h / 10%);--_border:none;--_corner:var(--_btn-radius);--_cursor:not-allowed;--_on-bg:oklch(from var(--sys-color-on-surface) l c h / 38%);--_state:none}}}& .input{appearance:none;background:0 0;border:none;outline:none;grid-area:1/1;block-size:100%;inline-size:100%}& .label{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;justify-content:center;align-items:center;gap:var(--_gap);cursor:var(--_cursor);isolation:isolate;padding-inline:var(--_padding-inline);inline-size:fit-content;block-size:var(--_block-size);color:var(--_on-bg);font:var(--_font);user-select:none;white-space:nowrap;background:0 0;border:none;outline:none;grid-area:1/1;text-decoration:none;display:inline-flex;position:relative;& .icon{font-size:var(--_icon-font-size);line-height:1;font-family:var(--ref-typeface-symbols);font-variation-settings:"FILL" var(--_fill,0), "wght" 400, "GRAD" 0, "opsz" 24;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";white-space:nowrap;grid-area:1/1;display:inline-block}&:before{z-index:-1;transition:var(--_motion);inset:var(--_inner-padding) 0px;outline:var(--_outline-width) solid var(--sys-color-secondary);outline-offset:2px;box-shadow:var(--_shadow);border:var(--_border);border-radius:var(--_corner);background:var(--_bg);content:"";position:absolute;@media (prefers-reduced-motion:no-preference){transition:var(--_motion), outline-width var(--sys-motion-spring-fast-spatial-duration) var(--sys-motion-spring-pop-focus)}}&:after{z-index:-1;transition:var(--_motion);inset:var(--_inner-padding) 0px;border-radius:var(--_corner);background:var(--_state);content:"";position:absolute}}}.toggle-btn{--_block-size:3rem;--_btn-radius-expand:var(--sys-shape-corner-small);--_font:var(--sys-typescale-label-large);--_gap:.5rem;--_icon-font-size:1.25rem;--_inner-padding:.25rem;--_padding-block:.625rem;--_padding-inline:1rem;&:not(.round){@container style(--shape:square){--_btn-radius:var(--sys-shape-corner-medium)}}&.square{--_btn-radius:var(--sys-shape-corner-medium)}&:has(.input:checked){--_btn-radius:var(--sys-shape-corner-medium);&:not(.round){@container style(--shape:square){--_btn-radius:var(--_radius-full)}}&.square{--_btn-radius:var(--_radius-full)}}}.toggle-btn:not(.sm){&.xs{--_block-size:3rem;--_btn-radius-expand:var(--sys-shape-corner-small);--_font:var(--sys-typescale-label-large);--_gap:.25rem;--_icon-font-size:1.25rem;--_inner-padding:.5rem;--_padding-block:.375rem;--_padding-inline:.75rem;&:not(.round){@container style(--shape:square){--_btn-radius:var(--sys-shape-corner-medium)}}&.square{--_btn-radius:var(--sys-shape-corner-medium)}&:has(.input:checked){--_btn-radius:var(--sys-shape-corner-medium);&:not(.round){@container style(--shape:square){--_btn-radius:var(--_radius-full)}}&.square{--_btn-radius:var(--_radius-full)}}}&.md{--_block-size:3.5rem;--_btn-radius-expand:var(--sys-shape-corner-medium);--_font:var(--sys-typescale-title-medium);--_gap:.5rem;--_icon-font-size:1.5rem;--_inner-padding:0px;--_padding-block:1rem;--_padding-inline:1.5rem;&:not(.round){@container style(--shape:square){--_btn-radius:var(--sys-shape-corner-large)}}&.square{--_btn-radius:var(--sys-shape-corner-large)}&:has(.input:checked){--_btn-radius:var(--sys-shape-corner-large);&:not(.round){@container style(--shape:square){--_btn-radius:var(--_radius-full)}}&.square{--_btn-radius:var(--_radius-full)}}}&.lg{--_block-size:6rem;--_btn-radius-expand:var(--sys-shape-corner-large);--_font:var(--sys-typescale-headline-small);--_gap:.75rem;--_icon-font-size:2rem;--_inner-padding:0px;--_padding-block:2rem;--_padding-inline:3rem;&:not(.round){@container style(--shape:square){--_btn-radius:var(--sys-shape-corner-extra-large)}}&.square{--_btn-radius:var(--sys-shape-corner-extra-large)}&:has(.input:checked){--_btn-radius:var(--sys-shape-corner-extra-large);&:not(.round){@container style(--shape:square){--_btn-radius:var(--_radius-full)}}&.square{--_btn-radius:var(--_radius-full)}}}&.xl{--_block-size:8.5rem;--_btn-radius-expand:var(--sys-shape-corner-large);--_font:var(--sys-typescale-headline-large);--_gap:1rem;--_icon-font-size:2.5rem;--_inner-padding:0px;--_padding-block:3rem;--_padding-inline:4rem;&:not(.round){@container style(--shape:square){--_btn-radius:var(--sys-shape-corner-extra-large)}}&.square{--_btn-radius:var(--sys-shape-corner-extra-large)}&:has(.input:checked){--_btn-radius:var(--sys-shape-corner-extra-large);&:not(.round){@container style(--shape:square){--_btn-radius:var(--_radius-full)}}&.square{--_btn-radius:var(--_radius-full)}}}}.toggle-btn:not(.sm){@container style(--size:xs){--_block-size:3rem;--_btn-radius-expand:var(--sys-shape-corner-small);--_font:var(--sys-typescale-label-large);--_gap:.25rem;--_icon-font-size:1.25rem;--_inner-padding:.5rem;--_padding-block:.375rem;--_padding-inline:.75rem;&:not(.round){@container style(--shape:square){--_btn-radius:var(--sys-shape-corner-medium)}}&.square{--_btn-radius:var(--sys-shape-corner-medium)}&:has(.input:checked){--_btn-radius:var(--sys-shape-corner-medium);&:not(.round){@container style(--shape:square){--_btn-radius:var(--_radius-full)}}&.square{--_btn-radius:var(--_radius-full)}}}@container style(--size:md){--_block-size:3.5rem;--_btn-radius-expand:var(--sys-shape-corner-medium);--_font:var(--sys-typescale-title-medium);--_gap:.5rem;--_icon-font-size:1.5rem;--_inner-padding:0px;--_padding-block:1rem;--_padding-inline:1.5rem;&:not(.round){@container style(--shape:square){--_btn-radius:var(--sys-shape-corner-large)}}&.square{--_btn-radius:var(--sys-shape-corner-large)}&:has(.input:checked){--_btn-radius:var(--sys-shape-corner-large);&:not(.round){@container style(--shape:square){--_btn-radius:var(--_radius-full)}}&.square{--_btn-radius:var(--_radius-full)}}}@container style(--size:lg){--_block-size:6rem;--_btn-radius-expand:var(--sys-shape-corner-large);--_font:var(--sys-typescale-headline-small);--_gap:.75rem;--_icon-font-size:2rem;--_inner-padding:0px;--_padding-block:2rem;--_padding-inline:3rem;&:not(.round){@container style(--shape:square){--_btn-radius:var(--sys-shape-corner-extra-large)}}&.square{--_btn-radius:var(--sys-shape-corner-extra-large)}&:has(.input:checked){--_btn-radius:var(--sys-shape-corner-extra-large);&:not(.round){@container style(--shape:square){--_btn-radius:var(--_radius-full)}}&.square{--_btn-radius:var(--_radius-full)}}}@container style(--size:xl){--_block-size:8.5rem;--_btn-radius-expand:var(--sys-shape-corner-large);--_font:var(--sys-typescale-headline-large);--_gap:1rem;--_icon-font-size:2.5rem;--_inner-padding:0px;--_padding-block:3rem;--_padding-inline:4rem;&:not(.round){@container style(--shape:square){--_btn-radius:var(--sys-shape-corner-extra-large)}}&.square{--_btn-radius:var(--sys-shape-corner-extra-large)}&:has(.input:checked){--_btn-radius:var(--sys-shape-corner-extra-large);&:not(.round){@container style(--shape:square){--_btn-radius:var(--_radius-full)}}&.square{--_btn-radius:var(--_radius-full)}}}}}