UNPKG

@trimble-oss/moduswebcomponents

Version:

Modus Web Components is a modern, accessible UI library built with Stencil JS that provides reusable web components following Trimble's Modus design system. This updated version focuses on improved flexibility, enhanced theming options, comprehensive cust

251 lines (244 loc) 12.2 kB
/** * This component uses Tailwind CSS and DaisyUI. * Only add styles here that should not be applied by Tailwind, Daisy, or the theme. */ modus-wc-switch.modus-wc-switch-host { --rounded-badge: 32px; align-items: center; display: flex; } modus-wc-switch.modus-wc-switch-host .modus-wc-input-label { font-weight: var(--modus-wc-font-weight-normal); padding-inline-start: var(--modus-wc-spacing-md); } modus-wc-switch .modus-wc-toggle { border-radius: var(--rounded-badge); } modus-wc-switch .modus-wc-toggle:focus { border-color: var(--modus-wc-color-base-200); } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle { background-color: var(--modus-wc-color-white); border: none; color: var(--modus-wc-color-gray-4); outline-color: var(--modus-wc-color-highlight-blue); --fallback-b1: var(--modus-wc-color-gray-4); } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs { --handleoffset: var(--modus-wc-spacing-sm); height: var(--modus-wc-spacing-lg); width: var(--modus-wc-spacing-xl); } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs ~ modus-wc-input-label .modus-wc-input-label, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs ~ modus-wc-input-label .modus-wc-input-label { font-size: var(--modus-wc-font-size-sm); line-height: var(--modus-wc-font-size-2xl); } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-sm, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-sm { --handleoffset: 1rem; height: 1rem; width: 2rem; } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-md, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-md { --handleoffset: 1.25rem; height: 1.25rem; width: 2.5rem; } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-lg, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-lg { --handleoffset: 1.5rem; height: 1.5rem; width: 3rem; } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle:checked, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle:checked { --fallback-b1: var(--modus-wc-color-blue-light); color: var(--modus-wc-color-blue-light); } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:not(:checked), [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:not(:checked) { background-color: var(--modus-wc-color-white); outline: 2px solid var(--modus-wc-color-blue-light); outline-offset: -2px; } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:checked, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:checked { background-color: var(--modus-wc-color-white); --fallback-b1: var(--modus-wc-color-trimble-blue); } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle:not(:disabled):focus-visible, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):focus-visible { outline: 2px solid var(--modus-wc-color-highlight-blue); outline-offset: 2px; } [data-theme=modus-classic-light] modus-wc-switch .modus-wc-toggle:disabled, [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle:disabled { background-color: var(--modus-wc-color-white); } [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle:checked { --fallback-b1: var(--modus-wc-color-highlight-blue); color: var(--modus-wc-color-highlight-blue); } [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:not(:checked) { background-color: var(--modus-wc-color-white); outline: 2px solid var(--modus-wc-color-highlight-blue); outline-offset: -2px; } [data-theme=modus-classic-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:checked { background-color: var(--modus-wc-color-white); --fallback-b1: var(--modus-wc-color-blue-light); } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle { background-color: var(--modus-wc-color-white); border: none; color: var(--modus-wc-color-gray-4); outline-color: var(--modus-wc-color-highlight-blue); --fallback-b1: var(--modus-wc-color-gray-4); } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs { --handleoffset: var(--modus-wc-spacing-sm); height: var(--modus-wc-spacing-lg); width: var(--modus-wc-spacing-xl); } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs ~ modus-wc-input-label .modus-wc-input-label, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs ~ modus-wc-input-label .modus-wc-input-label { font-size: var(--modus-wc-font-size-sm); line-height: var(--modus-wc-font-size-2xl); } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-sm, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-sm { --handleoffset: 1rem; height: 1rem; width: 2rem; } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-md, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-md { --handleoffset: 1.25rem; height: 1.25rem; width: 2.5rem; } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-lg, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-lg { --handleoffset: 1.5rem; height: 1.5rem; width: 3rem; } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle:checked, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle:checked { --fallback-b1: var(--modus-wc-color-blue-light); color: var(--modus-wc-color-blue-light); } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:not(:checked), [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:not(:checked) { background-color: var(--modus-wc-color-white); outline: 2px solid var(--modus-wc-color-blue-light); outline-offset: -2px; } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:checked, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:checked { background-color: var(--modus-wc-color-white); --fallback-b1: var(--modus-wc-color-trimble-blue); } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle:not(:disabled):focus-visible, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):focus-visible { outline: 2px solid var(--modus-wc-color-highlight-blue); outline-offset: 2px; } [data-theme=connect-light] modus-wc-switch .modus-wc-toggle:disabled, [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle:disabled { background-color: var(--modus-wc-color-white); } [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle:checked { --fallback-b1: var(--modus-wc-color-highlight-blue); color: var(--modus-wc-color-highlight-blue); } [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:not(:checked) { background-color: var(--modus-wc-color-white); outline: 2px solid var(--modus-wc-color-highlight-blue); outline-offset: -2px; } [data-theme=connect-dark] modus-wc-switch .modus-wc-toggle:not(:disabled):hover:checked { background-color: var(--modus-wc-color-white); --fallback-b1: var(--modus-wc-color-blue-light); } [data-theme=modus-modern-light] modus-wc-switch modus-wc-input-label .modus-wc-input-label, [data-theme=modus-modern-dark] modus-wc-switch modus-wc-input-label .modus-wc-input-label { color: var(--modus-wc-color-gray-10); padding-inline-start: var(--modus-wc-spacing-sm); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle { --fallback-b1: var(--modus-wc-color-gray-0); border: none; box-shadow: var(--handleoffsetcalculator) 0 0 var(--modus-wc-border-width-md) var(--fallback-b1) inset, 0 0 0 var(--modus-wc-border-width-md) var(--fallback-b1) inset; color: var(--modus-wc-color-white); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle:indeterminate, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle:indeterminate { box-shadow: calc(var(--handleoffset) / 2) 0 0 var(--modus-wc-border-width-md) var(--fallback-b1) inset, calc(var(--handleoffset) / -2) 0 0 var(--modus-wc-border-width-md) var(--fallback-b1) inset, 0 0 0 var(--modus-wc-border-width-md) var(--fallback-b1) inset; } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle:checked, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle:checked { --fallback-b1: var(--modus-wc-color-primary); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle:focus-visible, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle:focus-visible { outline: var(--modus-wc-border-width-sm) solid var(--modus-wc-color-primary); outline-offset: var(--modus-wc-border-width-sm); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs { --handleoffset: var(--modus-wc-spacing-sm); height: var(--modus-wc-spacing-lg); width: var(--modus-wc-spacing-xl); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs ~ modus-wc-input-label .modus-wc-input-label, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-xs ~ modus-wc-input-label .modus-wc-input-label { font-size: var(--modus-wc-font-size-sm); line-height: var(--modus-wc-font-size-2xl); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-sm, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-sm { --handleoffset: var(--modus-wc-spacing-md); height: var(--modus-wc-font-size-2xl); width: var(--modus-wc-spacing-2xl); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-sm ~ modus-wc-input-label .modus-wc-input-label, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-sm ~ modus-wc-input-label .modus-wc-input-label { font-size: var(--modus-wc-font-size-md); line-height: var(--modus-wc-line-height-md); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-md, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-md { --handleoffset: var(--modus-wc-spacing-lg); height: var(--modus-wc-spacing-xl); width: var(--modus-wc-size-md); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-md ~ modus-wc-input-label .modus-wc-input-label, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-md ~ modus-wc-input-label .modus-wc-input-label { font-size: var(--modus-wc-font-size-lg); line-height: var(--modus-wc-line-height-md); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-lg, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-lg { --handleoffset: var(--modus-wc-spacing-xl); height: var(--modus-wc-spacing-2xl); width: var(--modus-wc-size-xl); } [data-theme=modus-modern-light] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-lg ~ modus-wc-input-label .modus-wc-input-label, [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle.modus-wc-toggle-lg ~ modus-wc-input-label .modus-wc-input-label { font-size: var(--modus-wc-font-size-xl); line-height: var(--modus-wc-line-height-lg); } [data-theme=modus-modern-dark] modus-wc-switch modus-wc-input-label .modus-wc-input-label { color: var(--modus-wc-color-gray-light); } [data-theme=modus-modern-dark] modus-wc-switch .modus-wc-toggle { --fallback-b1: var(--modus-wc-color-gray-9); }