@teseor/css 1.15.7 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/compiled.css +1 -1
- package/dist/index.css +7 -8
- package/package.json +1 -1
- package/src/components/content/divider/docs.html +1 -1
- package/src/components/content/scroll-area/docs.html +2 -2
- package/src/components/data-display/status/docs.html +2 -2
- package/src/components/feedback/skeleton/docs.html +2 -2
- package/src/components/feedback/toast/docs.html +12 -12
- package/src/components/forms/checkbox/docs.html +1 -1
- package/src/components/forms/radio/docs.html +5 -5
- package/src/components/forms/toggle/docs.html +3 -3
- package/src/components/navigation/dropdown-menu/docs.html +1 -1
- package/src/components/overlays/dialog/docs.html +6 -6
- package/src/components/overlays/drawer/docs.html +17 -17
- package/src/components/overlays/modal/docs.html +12 -12
- package/src/components/overlays/overlay/docs.html +8 -8
- package/src/components/overlays/popover/docs.html +6 -6
- package/src/components/overlays/tooltip/docs.html +10 -10
- package/src/config/guides/getting-started.docs.html +1 -1
- package/src/config/guides/theming.docs.html +11 -11
- package/src/config/tokens/_variables.scss +30 -23
- package/src/config/tokens/colors/index.scss +18 -0
- package/src/config/tokens/docs.html +0 -11
- package/src/config/tokens/index.scss +0 -1
- package/src/config/tokens/radius.scss +5 -4
- package/src/config/tokens/shadows.scss +4 -3
- package/src/debug/docs.html +3 -3
- package/src/debug/index.scss +4 -5
- package/src/layout/aspect-ratio/docs.html +7 -7
- package/src/layout/center/docs.html +3 -3
- package/src/layout/footer/index.scss +2 -2
- package/src/layout/main/docs.html +3 -3
- package/src/layout/nav-rail/docs.html +1 -1
- package/src/layout/sidebar/docs.html +3 -3
- package/src/layout/sidebar-nav/docs.html +6 -6
- package/src/utilities/position/api.json +6 -0
- package/src/utilities/position/docs.html +29 -0
- package/src/utilities/position/position.scss +74 -0
- package/src/utilities/scroll-animation/docs.html +1 -1
- package/src/utilities/scroll-snap/docs.html +33 -33
- package/src/utilities/text/docs.html +5 -5
- package/src/config/tokens/semantic-spacing.scss +0 -12
package/dist/index.css
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
@layer reset, tokens, base, primitives, components.styles, components.tokens, utilities, themes;
|
|
2
|
-
@layer tokens{:root{--ui-color-primary: oklch(55% 0.22 250);--ui-color-success: oklch(60% 0.18 145);--ui-color-warning: oklch(75% 0.18 70);--ui-color-danger: oklch(60% 0.22 25);--ui-color-neutral: oklch(50% 0.02 250);--ui-color-primary-light: color-mix(in oklch, var(--ui-color-primary) 50%, white);--ui-color-primary-dark: color-mix(in oklch, var(--ui-color-primary) 75%, black);--ui-color-primary-subtle: color-mix(in oklch, var(--ui-color-primary) 12%, white);--ui-color-primary-hover: color-mix(in oklch, var(--ui-color-primary) 85%, black);--ui-color-neutral-50: color-mix(in oklch, var(--ui-color-neutral) 3%, white);--ui-color-neutral-100: color-mix(in oklch, var(--ui-color-neutral) 6%, white);--ui-color-neutral-200: color-mix(in oklch, var(--ui-color-neutral) 12%, white);--ui-color-neutral-300: color-mix(in oklch, var(--ui-color-neutral) 25%, white);--ui-color-neutral-400: color-mix(in oklch, var(--ui-color-neutral) 50%, white);--ui-color-neutral-500: var(--ui-color-neutral);--ui-color-neutral-600: color-mix(in oklch, var(--ui-color-neutral) 85%, black);--ui-color-neutral-700: color-mix(in oklch, var(--ui-color-neutral) 70%, black);--ui-color-neutral-800: color-mix(in oklch, var(--ui-color-neutral) 50%, black);--ui-color-neutral-900: color-mix(in oklch, var(--ui-color-neutral) 35%, black)}}
|
|
2
|
+
@layer tokens{:root{--ui-color-primary: oklch(55% 0.22 250);--ui-color-success: oklch(60% 0.18 145);--ui-color-warning: oklch(75% 0.18 70);--ui-color-danger: oklch(60% 0.22 25);--ui-color-neutral: oklch(50% 0.02 250);--ui-color-primary-light: color-mix(in oklch, var(--ui-color-primary) 50%, white);--ui-color-primary-dark: color-mix(in oklch, var(--ui-color-primary) 75%, black);--ui-color-primary-subtle: color-mix(in oklch, var(--ui-color-primary) 12%, white);--ui-color-primary-hover: color-mix(in oklch, var(--ui-color-primary) 85%, black);--ui-color-success-light: color-mix(in oklch, var(--ui-color-success) 50%, white);--ui-color-success-dark: color-mix(in oklch, var(--ui-color-success) 75%, black);--ui-color-success-subtle: color-mix(in oklch, var(--ui-color-success) 12%, white);--ui-color-success-hover: color-mix(in oklch, var(--ui-color-success) 85%, black);--ui-color-warning-light: color-mix(in oklch, var(--ui-color-warning) 50%, white);--ui-color-warning-dark: color-mix(in oklch, var(--ui-color-warning) 75%, black);--ui-color-warning-subtle: color-mix(in oklch, var(--ui-color-warning) 12%, white);--ui-color-warning-hover: color-mix(in oklch, var(--ui-color-warning) 85%, black);--ui-color-danger-light: color-mix(in oklch, var(--ui-color-danger) 50%, white);--ui-color-danger-dark: color-mix(in oklch, var(--ui-color-danger) 75%, black);--ui-color-danger-subtle: color-mix(in oklch, var(--ui-color-danger) 12%, white);--ui-color-danger-hover: color-mix(in oklch, var(--ui-color-danger) 85%, black);--ui-color-neutral-50: color-mix(in oklch, var(--ui-color-neutral) 3%, white);--ui-color-neutral-100: color-mix(in oklch, var(--ui-color-neutral) 6%, white);--ui-color-neutral-200: color-mix(in oklch, var(--ui-color-neutral) 12%, white);--ui-color-neutral-300: color-mix(in oklch, var(--ui-color-neutral) 25%, white);--ui-color-neutral-400: color-mix(in oklch, var(--ui-color-neutral) 50%, white);--ui-color-neutral-500: var(--ui-color-neutral);--ui-color-neutral-600: color-mix(in oklch, var(--ui-color-neutral) 85%, black);--ui-color-neutral-700: color-mix(in oklch, var(--ui-color-neutral) 70%, black);--ui-color-neutral-800: color-mix(in oklch, var(--ui-color-neutral) 50%, black);--ui-color-neutral-900: color-mix(in oklch, var(--ui-color-neutral) 35%, black)}}
|
|
3
3
|
@layer tokens{:root{--ui-space-px: calc(var(--ui-unit) * 0.125);--ui-space-quarter: calc(var(--ui-unit) * 0.25);--ui-space-half: calc(var(--ui-unit) * 0.5);--ui-space-0: calc(var(--ui-unit) * 0.5);--ui-space-1: var(--ui-unit);--ui-space-2: calc(var(--ui-unit) * 2);--ui-space-3: calc(var(--ui-unit) * 3);--ui-space-4: calc(var(--ui-unit) * 4);--ui-space-6: calc(var(--ui-unit) * 6);--ui-space-8: calc(var(--ui-unit) * 8)}}
|
|
4
4
|
@layer tokens{:root{--ui-font-sans: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;--ui-font-mono: ui-monospace, sfmono-regular, "SF Mono", menlo, consolas, "Liberation Mono", monospace;--ui-font-size-xs: 0.75rem;--ui-font-size-sm: 0.875rem;--ui-font-size-md: 1rem;--ui-font-size-lg: 1.25rem;--ui-font-size-xl: 1.5rem;--ui-font-size-2xl: 1.75rem;--ui-font-size-3xl: 2rem;--ui-font-size-4xl: 2.5rem;--ui-leading-tight-xs: var(--ui-row-1);--ui-leading-tight-sm: var(--ui-row-1);--ui-leading-tight-md: calc(var(--ui-unit) * 3);--ui-leading-tight-lg: calc(var(--ui-unit) * 3);--ui-leading-xs: var(--ui-row-1);--ui-leading-sm: calc(var(--ui-unit) * 3);--ui-leading-md: calc(var(--ui-unit) * 3);--ui-leading-lg: var(--ui-row-2);--ui-leading-xl: var(--ui-row-2);--ui-leading-2xl: var(--ui-row-2);--ui-leading-3xl: calc(var(--ui-unit) * 5);--ui-leading-4xl: calc(var(--ui-unit) * 6);--ui-weight-normal: 400;--ui-weight-medium: 500;--ui-weight-semibold: 600;--ui-weight-bold: 700;--ui-tracking-display: -0.02em;--ui-tracking-body: 0;--ui-tracking-caps: 0.08em;--ui-heading-1-size: var(--ui-font-size-4xl);--ui-heading-1-line-height: var(--ui-leading-4xl);--ui-heading-1-weight: var(--ui-weight-bold);--ui-heading-1-tracking: var(--ui-tracking-display);--ui-heading-2-size: var(--ui-font-size-3xl);--ui-heading-2-line-height: var(--ui-leading-3xl);--ui-heading-2-weight: var(--ui-weight-bold);--ui-heading-2-tracking: -0.01em;--ui-heading-3-size: var(--ui-font-size-2xl);--ui-heading-3-line-height: var(--ui-leading-2xl);--ui-heading-3-weight: var(--ui-weight-semibold);--ui-heading-3-tracking: var(--ui-tracking-body);--ui-heading-4-size: var(--ui-font-size-xl);--ui-heading-4-line-height: var(--ui-leading-xl);--ui-heading-4-weight: var(--ui-weight-semibold);--ui-heading-4-tracking: var(--ui-tracking-body);--ui-heading-5-size: var(--ui-font-size-lg);--ui-heading-5-line-height: var(--ui-leading-sm);--ui-heading-5-weight: var(--ui-weight-medium);--ui-heading-5-tracking: var(--ui-tracking-body);--ui-body-size: var(--ui-font-size-md);--ui-body-line-height: var(--ui-leading-md);--ui-body-weight: var(--ui-weight-normal);--ui-body-tracking: var(--ui-tracking-body);--ui-body-sm-size: var(--ui-font-size-sm);--ui-body-sm-line-height: var(--ui-leading-sm);--ui-body-sm-weight: var(--ui-weight-normal);--ui-body-sm-tracking: var(--ui-tracking-body);--ui-caption-size: var(--ui-font-size-xs);--ui-caption-line-height: var(--ui-leading-xs);--ui-caption-weight: var(--ui-weight-normal);--ui-caption-tracking: 0.01em;--ui-lead-size: var(--ui-font-size-lg);--ui-lead-line-height: var(--ui-leading-lg);--ui-lead-weight: var(--ui-weight-normal);--ui-lead-tracking: var(--ui-tracking-body);--ui-eyebrow-size: var(--ui-font-size-xs);--ui-eyebrow-line-height: var(--ui-leading-xs);--ui-eyebrow-weight: var(--ui-weight-semibold);--ui-eyebrow-tracking: var(--ui-tracking-caps)}}
|
|
5
5
|
@layer tokens{:root{--ui-unit: 8px;--ui-row: calc(var(--ui-unit) * 2);--ui-row-1: var(--ui-row);--ui-row-2: calc(var(--ui-row) * 2);--ui-row-3: calc(var(--ui-row) * 3);--ui-row-4: calc(var(--ui-row) * 4);--ui-row-5: calc(var(--ui-row) * 5);--ui-row-6: calc(var(--ui-row) * 6)}}
|
|
6
|
-
@layer tokens{:root{--ui-radius-sm: calc(var(--ui-
|
|
6
|
+
@layer tokens{:root{--ui-radius-base: var(--ui-unit);--ui-radius-sm: calc(var(--ui-radius-base) * 0.5);--ui-radius-md: var(--ui-radius-base);--ui-radius-lg: calc(var(--ui-radius-base) * 2);--ui-radius-full: 9999px}}
|
|
7
7
|
@layer tokens{:root{--ui-border-width-sm: calc(var(--ui-unit) * 0.125);--ui-border-width-md: calc(var(--ui-unit) * 0.25);--ui-border-width-lg: calc(var(--ui-unit) * 0.5)}}
|
|
8
|
-
@layer tokens{:root{--ui-shadow-sm: 0 1px 2px
|
|
8
|
+
@layer tokens{:root{--ui-shadow-sm: 0 1px 2px color-mix(in oklch, var(--ui-color-neutral) 20%, transparent);--ui-shadow-md: 0 4px 6px color-mix(in oklch, var(--ui-color-neutral) 15%, transparent);--ui-shadow-lg: 0 10px 15px color-mix(in oklch, var(--ui-color-neutral) 12%, transparent)}}
|
|
9
9
|
@layer tokens{:root{--ui-z-base: 0;--ui-z-sticky: 100;--ui-z-dropdown: 200;--ui-z-overlay: 300;--ui-z-modal: 400;--ui-z-popover: 500;--ui-z-tooltip: 600;--ui-z-toast: 700;--ui-z-drawer: 800;--ui-z-debug: 9999}}
|
|
10
10
|
@layer tokens{:root{--ui-duration-instant: 50ms;--ui-duration-fast: 100ms;--ui-duration-base: 150ms;--ui-duration-normal: 200ms;--ui-duration-slow: 250ms;--ui-duration-slower: 400ms;--ui-ease-default: cubic-bezier(0.4, 0, 0.2, 1);--ui-ease-in: cubic-bezier(0.4, 0, 1, 1);--ui-ease-out: cubic-bezier(0, 0, 0.2, 1);--ui-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1)}@media(prefers-reduced-motion: reduce){:root{--ui-duration-instant: 0ms;--ui-duration-fast: 0ms;--ui-duration-base: 0ms;--ui-duration-normal: 0ms;--ui-duration-slow: 0ms;--ui-duration-slower: 0ms}}}
|
|
11
11
|
@layer tokens{:root{color-scheme:light dark;--ui-color-text: light-dark(var(--ui-color-neutral-900), var(--ui-color-neutral-100));--ui-color-text-muted: light-dark(var(--ui-color-neutral-500), var(--ui-color-neutral-400));--ui-color-text-inverse: light-dark(var(--ui-color-neutral-50), var(--ui-color-neutral-900));--ui-color-bg: light-dark(var(--ui-color-neutral-50), var(--ui-color-neutral-900));--ui-color-bg-subtle: light-dark(var(--ui-color-neutral-100), var(--ui-color-neutral-800));--ui-color-bg-muted: light-dark(var(--ui-color-neutral-200), var(--ui-color-neutral-700));--ui-color-border: light-dark(var(--ui-color-neutral-200), var(--ui-color-neutral-700));--ui-color-border-strong: light-dark(var(--ui-color-neutral-300), var(--ui-color-neutral-600));--ui-color-interactive: var(--ui-color-primary);--ui-color-interactive-hover: var(--ui-color-primary-dark);--ui-color-focus: var(--ui-color-primary-light);--ui-opacity-disabled: 0.5;--ui-opacity-loading: 0.7;--ui-overlay-bg: rgb(0 0 0 / 0.5);--ui-overlay-bg-light: rgb(255 255 255 / 0.7);--ui-overlay-bg-blur: rgb(0 0 0 / 0.3);--ui-overlay-bg-subtle: rgb(0 0 0 / 0.1)}}
|
|
12
12
|
@layer themes{[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}@media(forced-colors: active){:root{--ui-color-focus: Highlight}}@media(prefers-contrast: more){:root{--ui-color-border: light-dark(var(--ui-color-neutral-400), var(--ui-color-neutral-400));--ui-color-border-strong: light-dark(var(--ui-color-neutral-600), var(--ui-color-neutral-300));--ui-color-text-muted: light-dark(var(--ui-color-neutral-600), var(--ui-color-neutral-300));--ui-color-bg-subtle: light-dark(var(--ui-color-neutral-200), var(--ui-color-neutral-700))}}@media(prefers-contrast: less){:root{--ui-color-border: var(--ui-color-neutral-150);--ui-color-border-strong: var(--ui-color-neutral-200)}}}
|
|
13
|
-
@layer tokens{:root{--ui-spacing-xs: var(--ui-space-1);--ui-spacing-sm: var(--ui-space-2);--ui-spacing-md: var(--ui-space-4);--ui-spacing-lg: var(--ui-space-6);--ui-spacing-xl: var(--ui-space-8);--ui-spacing-gutter: var(--ui-space-4);--ui-spacing-section: var(--ui-space-8)}}
|
|
14
13
|
@layer tokens{:root{--ui-input-height: var(--ui-row-2);--ui-input-padding-x: var(--ui-space-2);--ui-input-padding-y: var(--ui-space-1);--ui-input-radius: var(--ui-radius-md);--ui-input-border-width: var(--ui-border-width-sm);--ui-input-bg: var(--ui-color-bg);--ui-input-border: var(--ui-color-border);--ui-input-border-focus: var(--ui-color-interactive);--ui-input-text: var(--ui-color-text);--ui-input-placeholder: var(--ui-color-text-muted)}}
|
|
15
14
|
@layer reset{*,*::before,*::after{box-sizing:border-box;margin:0}}
|
|
16
15
|
@layer base{.ui-root{font-family:var(--ui-font-sans, system-ui, -apple-system, blinkmacsystemfont, Segoe UI, roboto, Helvetica Neue, arial, sans-serif);font-size:var(--ui-font-size-md, 1rem);line-height:var(--ui-leading-md, calc(0.5rem * 3));color:var(--ui-color-text, hsl(220, 10%, 10%));background:var(--ui-color-bg, hsl(220, 10%, 98%))}}
|
|
@@ -22,7 +21,7 @@
|
|
|
22
21
|
@layer primitives{.ui-column{--ui-_space-2: var(--ui-space-2);--ui-_space-1: var(--ui-space-1);--ui-_space-4: var(--ui-space-4);--ui-_space-6: var(--ui-space-6);--ui-_space-8: var(--ui-space-8);display:flex;flex-direction:column;gap:var(--ui-column-gap, var(--ui-_space-2))}.ui-column--xs{--ui-column-gap: var(--ui-_space-1)}.ui-column--sm{--ui-column-gap: var(--ui-_space-2)}.ui-column--md{--ui-column-gap: var(--ui-_space-4)}.ui-column--lg{--ui-column-gap: var(--ui-_space-6)}.ui-column--xl{--ui-column-gap: var(--ui-_space-8)}}
|
|
23
22
|
@layer primitives{.ui-container{--ui-_unit: var(--ui-unit);--ui-_space-4: var(--ui-space-4);max-inline-size:var(--ui-container-width, calc(var(--ui-_unit) * 120));padding-inline:var(--ui-_space-4)}.ui-container--center{margin-inline:auto}.ui-container--sm{--ui-container-width: calc(var(--ui-_unit) * 80)}.ui-container--md{--ui-container-width: calc(var(--ui-_unit) * 100)}.ui-container--lg{--ui-container-width: calc(var(--ui-_unit) * 120)}.ui-container--xl{--ui-container-width: calc(var(--ui-_unit) * 160)}.ui-container--full{max-inline-size:none}}
|
|
24
23
|
@layer primitives{.ui-content{--ui-_unit: var(--ui-unit);--ui-_padding-block: var(--ui-content-padding-block, var(--ui-space-4));--ui-_padding-inline: var(--ui-content-padding-inline, var(--ui-space-4));--ui-_gap: var(--ui-content-gap, var(--ui-space-3));display:flex;flex-direction:column;gap:var(--ui-_gap);padding-block:var(--ui-_padding-block);padding-inline:var(--ui-_padding-inline)}.ui-content--prose{max-inline-size:calc(var(--ui-_unit)*80)}.ui-content--flush{padding-block:0;padding-inline:0}}
|
|
25
|
-
@layer primitives{.ui-footer{--ui-_space-2: var(--ui-space-2);--ui-_border-width-sm: var(--ui-border-width-sm);--ui-
|
|
24
|
+
@layer primitives{.ui-footer{--ui-_space-2: var(--ui-space-2);--ui-_border-width-sm: var(--ui-border-width-sm);--ui-_shadow-color: color-mix(in oklch, var(--ui-color-neutral, oklch(50% 0.02 250deg)) 8%, transparent);--ui-_height: var(--ui-footer-height, var(--ui-row-3));--ui-_bg: var(--ui-footer-bg, var(--ui-color-bg));--ui-_padding-inline: var(--ui-footer-padding-inline, var(--ui-space-3));--ui-_border-color: var(--ui-footer-border-color, var(--ui-color-border));--ui-_z: var(--ui-footer-z, var(--ui-z-sticky));display:flex;align-items:center;z-index:var(--ui-_z);block-size:var(--ui-_height);padding-inline:var(--ui-_padding-inline);background:var(--ui-_bg)}.ui-footer__start{display:flex;flex-shrink:0;align-items:center;gap:var(--ui-_space-2)}.ui-footer__center{display:flex;flex:1;align-items:center;justify-content:center;gap:var(--ui-_space-2)}.ui-footer__end{display:flex;flex-shrink:0;align-items:center;gap:var(--ui-_space-2)}.ui-footer--sticky{position:sticky;inset-block-end:0}.ui-footer--fixed{position:fixed;inset-block-end:0;inset-inline:0}.ui-footer--bordered{box-shadow:inset 0 var(--ui-_border-width-sm) 0 0 var(--ui-_border-color)}.ui-footer--raised{box-shadow:0 calc(var(--ui-_border-width-sm)*-1) 6px var(--ui-_shadow-color)}}
|
|
26
25
|
@layer primitives{.ui-grid{--ui-_space-4: var(--ui-space-4, 2rem);display:grid;gap:var(--ui-grid-gap, var(--ui-_space-4));grid-template-columns:repeat(var(--ui-grid-cols, 1), minmax(0, 1fr))}.ui-grid--2{--ui-grid-cols: 2}.ui-grid--3{--ui-grid-cols: 3}.ui-grid--4{--ui-grid-cols: 4}.ui-grid--auto{grid-template-columns:repeat(auto-fit, minmax(var(--ui-grid-min, 16rem), 1fr))}.ui-grid--subgrid{display:grid;grid-template-columns:subgrid}.ui-grid--subgrid-rows{display:grid;grid-template-rows:subgrid}.ui-grid--subgrid-both{display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid}.ui-grid-col-span-2{grid-column:span 2}.ui-grid-col-span-3{grid-column:span 3}.ui-grid-col-span-4{grid-column:span 4}.ui-grid-col-span-full{grid-column:1/-1}.ui-grid-row-span-2{grid-row:span 2}.ui-grid-row-span-3{grid-row:span 3}.ui-grid-row-span-full{grid-row:1/-1}}
|
|
27
26
|
@layer primitives{.ui-main{--ui-_unit: var(--ui-unit);padding-block-start:var(--ui-topbar-height, 0);margin-inline-start:var(--ui-sidebar-width, calc(var(--ui-_unit) * 30))}.ui-main--sidebar-end{margin-inline-start:0;margin-inline-end:var(--ui-sidebar-width, calc(var(--ui-_unit) * 30))}.ui-main--full{margin-inline-start:0;margin-inline-end:0}}
|
|
28
27
|
@layer primitives{.ui-nav-rail{--ui-_space-2: var(--ui-space-2);--ui-_border-width-sm: var(--ui-border-width-sm);--ui-_width: var(--ui-nav-rail-width, var(--ui-row-4));--ui-_bg: var(--ui-nav-rail-bg, var(--ui-color-bg-subtle));--ui-_border-color: var(--ui-nav-rail-border-color, var(--ui-color-border));--ui-_gap: var(--ui-nav-rail-gap, var(--ui-space-1));--ui-_z: var(--ui-nav-rail-z, var(--ui-z-sticky));display:flex;flex-direction:column;align-items:center;position:fixed;inset-block:var(--ui-topbar-height, 0);inset-inline-start:0;z-index:var(--ui-_z);inline-size:var(--ui-_width);padding-block:var(--ui-_space-2);background:var(--ui-_bg);box-shadow:inset calc(var(--ui-_border-width-sm)*-1) 0 0 0 var(--ui-_border-color)}.ui-nav-rail__items{display:flex;flex:1;flex-direction:column;align-items:center;gap:var(--ui-_gap)}.ui-nav-rail__actions{display:flex;flex-direction:column;align-items:center;gap:var(--ui-_gap);margin-block-start:auto}.ui-nav-rail--end{inset-inline-start:auto;inset-inline-end:0;box-shadow:inset var(--ui-_border-width-sm) 0 0 0 var(--ui-_border-color)}}
|
|
@@ -168,10 +167,10 @@
|
|
|
168
167
|
@layer utilities{@supports(animation-timeline: scroll()){.ui-scroll-progress{position:fixed;inset-block-start:0;inset-inline-start:0;z-index:var(--ui-z-toast, 700);block-size:var(--ui-scroll-progress-height, var(--ui-space-half, 0.25rem));inline-size:100%;background:var(--ui-scroll-progress-bg, var(--ui-color-primary));transform-origin:inline-start;scale:0 1;animation:scroll-progress-fill auto linear;animation-timeline:scroll()}@keyframes scroll-progress-fill{to{scale:1 1}}.ui-view-fade{animation:view-fade-in auto linear both;animation-timeline:view();animation-range:entry 0% entry 100%}@keyframes view-fade-in{from{opacity:0}to{opacity:1}}.ui-view-slide-up{animation:view-slide-up-in auto linear both;animation-timeline:view();animation-range:entry 0% entry 100%}@keyframes view-slide-up-in{from{opacity:0;transform:translateY(var(--ui-space-4, 2rem))}to{opacity:1;transform:translateY(0)}}.ui-view-slide-start{animation:view-slide-start-in auto linear both;animation-timeline:view();animation-range:entry 0% entry 100%}@keyframes view-slide-start-in{from{opacity:0;transform:translateX(calc(var(--ui-space-4, 2rem) * -1))}to{opacity:1;transform:translateX(0)}}.ui-view-scale{animation:view-scale-in auto linear both;animation-timeline:view();animation-range:entry 0% entry 100%}@keyframes view-scale-in{from{opacity:0;scale:.9}to{opacity:1;scale:1}}@media(prefers-reduced-motion: reduce){.ui-scroll-progress,.ui-view-fade,.ui-view-slide-up,.ui-view-slide-start,.ui-view-scale{opacity:1;transform:none;scale:1 1;animation:none}}}}
|
|
169
168
|
@layer utilities{.ui-container-inline{container-type:inline-size}.ui-container-size{container-type:size}.ui-container-normal{container-type:normal}}
|
|
170
169
|
.ui-debug-grid,.ui-debug-grid-rows,.ui-debug-baseline{position:relative}
|
|
171
|
-
.ui-debug-grid{--ui-debug-color:
|
|
170
|
+
.ui-debug-grid{--ui-debug-color: color-mix(in oklch, var(--ui-color-primary, oklch(55% 0.22 250deg)) 15%, transparent)}
|
|
172
171
|
.ui-debug-grid::after{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;z-index:var(--ui-z-debug);block-size:100%;inline-size:100%;min-block-size:100vh;background-image:linear-gradient(to right, var(--ui-debug-color) 1px, transparent 1px),linear-gradient(to bottom, var(--ui-debug-color) 1px, transparent 1px);pointer-events:none;background-size:var(--ui-unit) var(--ui-unit);background-position:0 0}
|
|
173
|
-
.ui-debug-grid-rows{--ui-debug-color:
|
|
172
|
+
.ui-debug-grid-rows{--ui-debug-color: color-mix(in oklch, var(--ui-color-primary, oklch(55% 0.22 250deg)) 10%, transparent);--ui-debug-color-strong: color-mix(in oklch, var(--ui-color-primary, oklch(55% 0.22 250deg)) 25%, transparent)}
|
|
174
173
|
.ui-debug-grid-rows::after{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;z-index:var(--ui-z-debug);block-size:100%;inline-size:100%;min-block-size:100vh;background-image:linear-gradient(to right, var(--ui-debug-color) 1px, transparent 1px),linear-gradient(to bottom, var(--ui-debug-color) 1px, transparent 1px),linear-gradient(to bottom, var(--ui-debug-color-strong) 1px, transparent 1px);pointer-events:none;background-size:var(--ui-unit) var(--ui-unit),var(--ui-unit) var(--ui-unit),var(--ui-unit) var(--ui-row);background-position:0 0}
|
|
175
|
-
.ui-debug-baseline{--ui-debug-color:
|
|
174
|
+
.ui-debug-baseline{--ui-debug-color: color-mix(in oklch, var(--ui-color-danger, oklch(60% 0.22 25deg)) 20%, transparent)}
|
|
176
175
|
.ui-debug-baseline::after{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;z-index:var(--ui-z-debug);block-size:100%;inline-size:100%;min-block-size:100vh;background-image:linear-gradient(to bottom, var(--ui-debug-color) 1px, transparent 1px);pointer-events:none;background-size:100% var(--ui-unit)}
|
|
177
176
|
.ui-debug-outline *{outline:1px solid rgba(255,0,0,.5)}
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@ description: Visual separator between content sections. Supports horizontal/vert
|
|
|
18
18
|
<div class="ui-divider ui-divider--dashed" role="separator"></div>
|
|
19
19
|
|
|
20
20
|
<!-- @vertical -->
|
|
21
|
-
<div
|
|
21
|
+
<div class="ui-flex ui-items-center" style="block-size: 64px">
|
|
22
22
|
<span>{{ t('left', 'Left') }}</span>
|
|
23
23
|
<div class="ui-divider ui-divider--vertical" role="separator"></div>
|
|
24
24
|
<span>{{ t('right', 'Right') }}</span>
|
|
@@ -74,12 +74,12 @@ description: Scrollable container with styled scrollbar. Provides overflow contr
|
|
|
74
74
|
<!-- @direction | column -->
|
|
75
75
|
<div class="ui-scroll-area ui-scroll-area--horizontal">
|
|
76
76
|
<div class="ui-scroll-area__viewport">
|
|
77
|
-
<p
|
|
77
|
+
<p class="ui-nowrap">{{ t('scrolls_horizontally_demo', 'This content scrolls horizontally when it overflows the container width. Resize the window to test.') }}</p>
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
80
80
|
<div class="ui-scroll-area ui-scroll-area--both ui-scroll-area--sm">
|
|
81
81
|
<div class="ui-scroll-area__viewport">
|
|
82
|
-
<p
|
|
82
|
+
<p class="ui-nowrap">{{ t('both_directions_line_1', 'Both directions - Line 1 with long content that overflows horizontally') }}</p>
|
|
83
83
|
<p>{{ t('line_2', 'Line 2') }}</p>
|
|
84
84
|
<p>{{ t('line_3', 'Line 3') }}</p>
|
|
85
85
|
<p>{{ t('line_4', 'Line 4') }}</p>
|
|
@@ -28,7 +28,7 @@ description: Visual status indicator with colored dot to show state.
|
|
|
28
28
|
</div>
|
|
29
29
|
|
|
30
30
|
<!-- @sizes -->
|
|
31
|
-
<div
|
|
31
|
+
<div class="ui-flex ui-gap-4 ui-items-center">
|
|
32
32
|
<span class="ui-status ui-status--success ui-status--sm">
|
|
33
33
|
<span class="ui-status__dot"></span>
|
|
34
34
|
{{ t('small', 'Small') }}
|
|
@@ -51,7 +51,7 @@ description: Visual status indicator with colored dot to show state.
|
|
|
51
51
|
</span>
|
|
52
52
|
|
|
53
53
|
<!-- @dot_only -->
|
|
54
|
-
<div
|
|
54
|
+
<div class="ui-flex ui-gap-2">
|
|
55
55
|
<span class="ui-status ui-status--success">
|
|
56
56
|
<span class="ui-status__dot"></span>
|
|
57
57
|
</span>
|
|
@@ -4,14 +4,14 @@ description: Loading placeholder with shimmer animation for content loading stat
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- @text_lines -->
|
|
7
|
-
<div
|
|
7
|
+
<div class="ui-flex ui-flex-col ui-gap-1">
|
|
8
8
|
<div class="ui-skeleton ui-skeleton--text"></div>
|
|
9
9
|
<div class="ui-skeleton ui-skeleton--text" style="width: 80%;"></div>
|
|
10
10
|
<div class="ui-skeleton ui-skeleton--text" style="width: 60%;"></div>
|
|
11
11
|
</div>
|
|
12
12
|
|
|
13
13
|
<!-- @shapes -->
|
|
14
|
-
<div
|
|
14
|
+
<div class="ui-flex ui-gap-2 ui-items-start">
|
|
15
15
|
<div class="ui-skeleton ui-skeleton--circle"></div>
|
|
16
16
|
<div style="flex: 1; display: flex; flex-direction: column; gap: var(--ui-space-1);">
|
|
17
17
|
<div class="ui-skeleton ui-skeleton--heading"></div>
|
|
@@ -50,8 +50,8 @@ title: Toast
|
|
|
50
50
|
|
|
51
51
|
<!-- @viewport_positions | column -->
|
|
52
52
|
<!-- Container positions for toast placement -->
|
|
53
|
-
<div
|
|
54
|
-
<div class="ui-toast-viewport ui-toast-viewport--top-end
|
|
53
|
+
<div class="demo-container">
|
|
54
|
+
<div class="ui-toast-viewport ui-toast-viewport--top-end ui-absolute">
|
|
55
55
|
<div class="ui-toast">
|
|
56
56
|
<div class="ui-toast__content">
|
|
57
57
|
<p class="ui-toast__title">{{ t('top_end', 'Top End') }}</p>
|
|
@@ -59,8 +59,8 @@ title: Toast
|
|
|
59
59
|
</div>
|
|
60
60
|
</div>
|
|
61
61
|
</div>
|
|
62
|
-
<div
|
|
63
|
-
<div class="ui-toast-viewport ui-toast-viewport--bottom-end
|
|
62
|
+
<div class="demo-container">
|
|
63
|
+
<div class="ui-toast-viewport ui-toast-viewport--bottom-end ui-absolute">
|
|
64
64
|
<div class="ui-toast">
|
|
65
65
|
<div class="ui-toast__content">
|
|
66
66
|
<p class="ui-toast__title">{{ t('bottom_end', 'Bottom End') }}</p>
|
|
@@ -68,8 +68,8 @@ title: Toast
|
|
|
68
68
|
</div>
|
|
69
69
|
</div>
|
|
70
70
|
</div>
|
|
71
|
-
<div
|
|
72
|
-
<div class="ui-toast-viewport ui-toast-viewport--top-start
|
|
71
|
+
<div class="demo-container">
|
|
72
|
+
<div class="ui-toast-viewport ui-toast-viewport--top-start ui-absolute">
|
|
73
73
|
<div class="ui-toast">
|
|
74
74
|
<div class="ui-toast__content">
|
|
75
75
|
<p class="ui-toast__title">{{ t('top_start', 'Top Start') }}</p>
|
|
@@ -77,8 +77,8 @@ title: Toast
|
|
|
77
77
|
</div>
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
80
|
-
<div
|
|
81
|
-
<div class="ui-toast-viewport ui-toast-viewport--top-center
|
|
80
|
+
<div class="demo-container">
|
|
81
|
+
<div class="ui-toast-viewport ui-toast-viewport--top-center ui-absolute">
|
|
82
82
|
<div class="ui-toast">
|
|
83
83
|
<div class="ui-toast__content">
|
|
84
84
|
<p class="ui-toast__title">{{ t('top_center', 'Top Center') }}</p>
|
|
@@ -86,8 +86,8 @@ title: Toast
|
|
|
86
86
|
</div>
|
|
87
87
|
</div>
|
|
88
88
|
</div>
|
|
89
|
-
<div
|
|
90
|
-
<div class="ui-toast-viewport ui-toast-viewport--bottom-start
|
|
89
|
+
<div class="demo-container">
|
|
90
|
+
<div class="ui-toast-viewport ui-toast-viewport--bottom-start ui-absolute">
|
|
91
91
|
<div class="ui-toast">
|
|
92
92
|
<div class="ui-toast__content">
|
|
93
93
|
<p class="ui-toast__title">{{ t('bottom_start', 'Bottom Start') }}</p>
|
|
@@ -95,8 +95,8 @@ title: Toast
|
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
</div>
|
|
98
|
-
<div
|
|
99
|
-
<div class="ui-toast-viewport ui-toast-viewport--bottom-center
|
|
98
|
+
<div class="demo-container">
|
|
99
|
+
<div class="ui-toast-viewport ui-toast-viewport--bottom-center ui-absolute">
|
|
100
100
|
<div class="ui-toast">
|
|
101
101
|
<div class="ui-toast__content">
|
|
102
102
|
<p class="ui-toast__title">{{ t('bottom_center', 'Bottom Center') }}</p>
|
|
@@ -24,7 +24,7 @@ description: Native checkbox input with custom styling. Supports checked, indete
|
|
|
24
24
|
<input class="ui-checkbox ui-checkbox--success" type="checkbox" checked></input>
|
|
25
25
|
|
|
26
26
|
<!-- @with_label -->
|
|
27
|
-
<label class="ui-row" style="gap: var(--ui-space-1); cursor: pointer
|
|
27
|
+
<label class="ui-row " style="gap: var(--ui-space-1); cursor: pointer">
|
|
28
28
|
<input class="ui-checkbox" type="checkbox"></input>
|
|
29
29
|
<span>{{ t('accept_terms_and_conditions', 'Accept terms and conditions') }}</span>
|
|
30
30
|
</label>
|
|
@@ -24,24 +24,24 @@ description: Native radio button with custom styling. Use for mutually exclusive
|
|
|
24
24
|
<input class="ui-radio ui-radio--success" type="radio" name="success2" checked></input>
|
|
25
25
|
|
|
26
26
|
<!-- @with_label -->
|
|
27
|
-
<label class="ui-row" style="gap: var(--ui-space-1); cursor: pointer
|
|
27
|
+
<label class="ui-row " style="gap: var(--ui-space-1); cursor: pointer">
|
|
28
28
|
<input class="ui-radio" type="radio" name="labeled"></input>
|
|
29
29
|
<span>{{ t('option_one', 'Option one') }}</span>
|
|
30
30
|
</label>
|
|
31
31
|
|
|
32
32
|
<!-- @radio_group -->
|
|
33
|
-
<fieldset style="border: none; padding: 0; margin: 0
|
|
33
|
+
<fieldset class="" style="border: none; padding: 0; margin: 0">
|
|
34
34
|
<legend style="font-weight: 600; margin-block-end: var(--ui-space-1);">{{ t('choose_an_option', 'Choose an option') }}</legend>
|
|
35
35
|
<div class="ui-column" style="--column-gap: var(--ui-space-1);">
|
|
36
|
-
<label class="ui-row" style="gap: var(--ui-space-1); cursor: pointer
|
|
36
|
+
<label class="ui-row " style="gap: var(--ui-space-1); cursor: pointer">
|
|
37
37
|
<input class="ui-radio" type="radio" name="group-demo" checked></input>
|
|
38
38
|
<span>{{ t('option_a', 'Option A') }}</span>
|
|
39
39
|
</label>
|
|
40
|
-
<label class="ui-row" style="gap: var(--ui-space-1); cursor: pointer
|
|
40
|
+
<label class="ui-row " style="gap: var(--ui-space-1); cursor: pointer">
|
|
41
41
|
<input class="ui-radio" type="radio" name="group-demo"></input>
|
|
42
42
|
<span>{{ t('option_b', 'Option B') }}</span>
|
|
43
43
|
</label>
|
|
44
|
-
<label class="ui-row" style="gap: var(--ui-space-1); cursor: pointer
|
|
44
|
+
<label class="ui-row " style="gap: var(--ui-space-1); cursor: pointer">
|
|
45
45
|
<input class="ui-radio" type="radio" name="group-demo"></input>
|
|
46
46
|
<span>{{ t('option_c', 'Option C') }}</span>
|
|
47
47
|
</label>
|
|
@@ -18,7 +18,7 @@ description: Switch control for boolean states. Uses checkbox semantics with rol
|
|
|
18
18
|
</label>
|
|
19
19
|
|
|
20
20
|
<!-- @sizes -->
|
|
21
|
-
<div
|
|
21
|
+
<div class="ui-flex ui-gap-2 ui-items-center">
|
|
22
22
|
<label class="ui-toggle ui-toggle--sm">
|
|
23
23
|
<input class="ui-toggle__input" type="checkbox" role="switch"></input>
|
|
24
24
|
<span class="ui-toggle__track"></span>
|
|
@@ -37,7 +37,7 @@ description: Switch control for boolean states. Uses checkbox semantics with rol
|
|
|
37
37
|
</div>
|
|
38
38
|
|
|
39
39
|
<!-- @disabled -->
|
|
40
|
-
<div
|
|
40
|
+
<div class="ui-flex ui-gap-2">
|
|
41
41
|
<label class="ui-toggle">
|
|
42
42
|
<input class="ui-toggle__input" type="checkbox" role="switch" disabled></input>
|
|
43
43
|
<span class="ui-toggle__track"></span>
|
|
@@ -51,7 +51,7 @@ description: Switch control for boolean states. Uses checkbox semantics with rol
|
|
|
51
51
|
</div>
|
|
52
52
|
|
|
53
53
|
<!-- @with_label -->
|
|
54
|
-
<div
|
|
54
|
+
<div class="ui-flex ui-items-center ui-gap-2">
|
|
55
55
|
<label class="ui-toggle">
|
|
56
56
|
<input class="ui-toggle__input" type="checkbox" role="switch" id="notifications"></input>
|
|
57
57
|
<span class="ui-toggle__track"></span>
|
|
@@ -81,7 +81,7 @@ description: Trigger button with floating menu panel. Reuses the menu component
|
|
|
81
81
|
</div>
|
|
82
82
|
|
|
83
83
|
<!-- @align_end -->
|
|
84
|
-
<div
|
|
84
|
+
<div class="ui-flex ui-justify-end">
|
|
85
85
|
<div class="ui-dropdown-menu ui-dropdown-menu--open ui-dropdown-menu--align-end">
|
|
86
86
|
<button class="ui-dropdown-menu__trigger ui-button ui-button--ghost" type="button">⋮</button>
|
|
87
87
|
<div class="ui-dropdown-menu__panel" role="menu">
|
|
@@ -4,8 +4,8 @@ description: Structured modal with header, body, and footer sections. Use with m
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- @default -->
|
|
7
|
-
<div style="
|
|
8
|
-
<div class="ui-modal ui-modal--visible
|
|
7
|
+
<div class="demo-area" style="--demo-h: 240px">
|
|
8
|
+
<div class="ui-modal ui-modal--visible ui-absolute">
|
|
9
9
|
<div class="ui-modal__content ui-dialog" style="max-height: 200px;">
|
|
10
10
|
<header class="ui-dialog__header">
|
|
11
11
|
<h2 class="ui-dialog__title">{{ t('dialog_title', 'Dialog Title') }}</h2>
|
|
@@ -23,8 +23,8 @@ description: Structured modal with header, body, and footer sections. Use with m
|
|
|
23
23
|
</div>
|
|
24
24
|
|
|
25
25
|
<!-- @borderless -->
|
|
26
|
-
<div
|
|
27
|
-
<div class="ui-modal ui-modal--visible
|
|
26
|
+
<div class="demo-area">
|
|
27
|
+
<div class="ui-modal ui-modal--visible ui-absolute">
|
|
28
28
|
<div class="ui-modal__content ui-dialog ui-dialog--borderless" style="max-height: 180px;">
|
|
29
29
|
<header class="ui-dialog__header">
|
|
30
30
|
<h2 class="ui-dialog__title">{{ t('simple_dialog', 'Simple Dialog') }}</h2>
|
|
@@ -40,8 +40,8 @@ description: Structured modal with header, body, and footer sections. Use with m
|
|
|
40
40
|
</div>
|
|
41
41
|
|
|
42
42
|
<!-- @confirmation_dialog -->
|
|
43
|
-
<div
|
|
44
|
-
<div class="ui-modal ui-modal--sm ui-modal--visible
|
|
43
|
+
<div class="demo-area">
|
|
44
|
+
<div class="ui-modal ui-modal--sm ui-modal--visible ui-absolute">
|
|
45
45
|
<div class="ui-modal__content ui-dialog">
|
|
46
46
|
<header class="ui-dialog__header">
|
|
47
47
|
<h2 class="ui-dialog__title">{{ t('delete_item', 'Delete Item?') }}</h2>
|
|
@@ -4,9 +4,9 @@ title: Drawer
|
|
|
4
4
|
|
|
5
5
|
<!-- @default_end -->
|
|
6
6
|
<!-- Slides in from the end (right in LTR) -->
|
|
7
|
-
<div
|
|
8
|
-
<div class="ui-drawer-overlay
|
|
9
|
-
<div class="ui-drawer ui-drawer--end
|
|
7
|
+
<div class="demo-container demo-container--overflow" style="--demo-h: 300px">
|
|
8
|
+
<div class="ui-drawer-overlay ui-absolute"></div>
|
|
9
|
+
<div class="ui-drawer ui-drawer--end ui-absolute" data-state="open">
|
|
10
10
|
<div class="ui-drawer__header">
|
|
11
11
|
<div>
|
|
12
12
|
<h2 class="ui-drawer__title">{{ t('drawer_title', 'Drawer Title') }}</h2>
|
|
@@ -25,8 +25,8 @@ title: Drawer
|
|
|
25
25
|
</div>
|
|
26
26
|
|
|
27
27
|
<!-- @positions | column -->
|
|
28
|
-
<div
|
|
29
|
-
<div class="ui-drawer ui-drawer--start ui-drawer--sm
|
|
28
|
+
<div class="demo-container demo-container--overflow">
|
|
29
|
+
<div class="ui-drawer ui-drawer--start ui-drawer--sm ui-absolute" data-state="open">
|
|
30
30
|
<div class="ui-drawer__header">
|
|
31
31
|
<h2 class="ui-drawer__title">{{ t('start', 'Start') }}</h2>
|
|
32
32
|
</div>
|
|
@@ -35,8 +35,8 @@ title: Drawer
|
|
|
35
35
|
</div>
|
|
36
36
|
</div>
|
|
37
37
|
</div>
|
|
38
|
-
<div
|
|
39
|
-
<div class="ui-drawer ui-drawer--top
|
|
38
|
+
<div class="demo-container demo-container--overflow">
|
|
39
|
+
<div class="ui-drawer ui-drawer--top ui-absolute" data-state="open">
|
|
40
40
|
<div class="ui-drawer__header">
|
|
41
41
|
<h2 class="ui-drawer__title">{{ t('top', 'Top') }}</h2>
|
|
42
42
|
</div>
|
|
@@ -45,8 +45,8 @@ title: Drawer
|
|
|
45
45
|
</div>
|
|
46
46
|
</div>
|
|
47
47
|
</div>
|
|
48
|
-
<div
|
|
49
|
-
<div class="ui-drawer ui-drawer--bottom
|
|
48
|
+
<div class="demo-container demo-container--overflow">
|
|
49
|
+
<div class="ui-drawer ui-drawer--bottom ui-absolute" data-state="open">
|
|
50
50
|
<div class="ui-drawer__header">
|
|
51
51
|
<h2 class="ui-drawer__title">{{ t('bottom', 'Bottom') }}</h2>
|
|
52
52
|
</div>
|
|
@@ -57,29 +57,29 @@ title: Drawer
|
|
|
57
57
|
</div>
|
|
58
58
|
|
|
59
59
|
<!-- @sizes | column -->
|
|
60
|
-
<div
|
|
61
|
-
<div class="ui-drawer ui-drawer--end ui-drawer--sm
|
|
60
|
+
<div class="demo-container demo-container--overflow" style="--demo-h: 150px">
|
|
61
|
+
<div class="ui-drawer ui-drawer--end ui-drawer--sm ui-absolute" data-state="open">
|
|
62
62
|
<div class="ui-drawer__body">
|
|
63
63
|
<p>{{ t('small_drawer', 'Small drawer') }}</p>
|
|
64
64
|
</div>
|
|
65
65
|
</div>
|
|
66
66
|
</div>
|
|
67
|
-
<div
|
|
68
|
-
<div class="ui-drawer ui-drawer--end
|
|
67
|
+
<div class="demo-container demo-container--overflow" style="--demo-h: 150px">
|
|
68
|
+
<div class="ui-drawer ui-drawer--end ui-absolute" data-state="open">
|
|
69
69
|
<div class="ui-drawer__body">
|
|
70
70
|
<p>{{ t('default_drawer', 'Default drawer') }}</p>
|
|
71
71
|
</div>
|
|
72
72
|
</div>
|
|
73
73
|
</div>
|
|
74
|
-
<div
|
|
75
|
-
<div class="ui-drawer ui-drawer--end ui-drawer--lg
|
|
74
|
+
<div class="demo-container demo-container--overflow" style="--demo-h: 150px">
|
|
75
|
+
<div class="ui-drawer ui-drawer--end ui-drawer--lg ui-absolute" data-state="open">
|
|
76
76
|
<div class="ui-drawer__body">
|
|
77
77
|
<p>{{ t('large_drawer', 'Large drawer') }}</p>
|
|
78
78
|
</div>
|
|
79
79
|
</div>
|
|
80
80
|
</div>
|
|
81
|
-
<div
|
|
82
|
-
<div class="ui-drawer ui-drawer--end ui-drawer--full
|
|
81
|
+
<div class="demo-container demo-container--overflow" style="--demo-h: 150px">
|
|
82
|
+
<div class="ui-drawer ui-drawer--end ui-drawer--full ui-absolute" data-state="open">
|
|
83
83
|
<div class="ui-drawer__body">
|
|
84
84
|
<p>{{ t('full_size_drawer', 'Full-size drawer') }}</p>
|
|
85
85
|
</div>
|
|
@@ -4,8 +4,8 @@ description: Container for modal dialogs. Use with overlay for backdrop effect.
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- @default -->
|
|
7
|
-
<div
|
|
8
|
-
<div class="ui-modal ui-modal--visible
|
|
7
|
+
<div class="demo-area">
|
|
8
|
+
<div class="ui-modal ui-modal--visible ui-absolute">
|
|
9
9
|
<div class="ui-modal__content">
|
|
10
10
|
<p>{{ t('modal_content_goes_here', 'Modal content goes here') }}</p>
|
|
11
11
|
</div>
|
|
@@ -13,8 +13,8 @@ description: Container for modal dialogs. Use with overlay for backdrop effect.
|
|
|
13
13
|
</div>
|
|
14
14
|
|
|
15
15
|
<!-- @sizes -->
|
|
16
|
-
<div style="
|
|
17
|
-
<div class="ui-modal ui-modal--sm ui-modal--visible
|
|
16
|
+
<div class="demo-area" style="--demo-h: 120px">
|
|
17
|
+
<div class="ui-modal ui-modal--sm ui-modal--visible ui-absolute">
|
|
18
18
|
<div class="ui-modal__content">
|
|
19
19
|
<p>{{ t('small_modal', 'Small modal') }}</p>
|
|
20
20
|
</div>
|
|
@@ -22,8 +22,8 @@ description: Container for modal dialogs. Use with overlay for backdrop effect.
|
|
|
22
22
|
</div>
|
|
23
23
|
|
|
24
24
|
<!-- @large -->
|
|
25
|
-
<div style="
|
|
26
|
-
<div class="ui-modal ui-modal--lg ui-modal--visible
|
|
25
|
+
<div class="demo-area" style="--demo-h: 120px">
|
|
26
|
+
<div class="ui-modal ui-modal--lg ui-modal--visible ui-absolute">
|
|
27
27
|
<div class="ui-modal__content">
|
|
28
28
|
<p>{{ t('large_modal', 'Large modal') }}</p>
|
|
29
29
|
</div>
|
|
@@ -31,8 +31,8 @@ description: Container for modal dialogs. Use with overlay for backdrop effect.
|
|
|
31
31
|
</div>
|
|
32
32
|
|
|
33
33
|
<!-- @full -->
|
|
34
|
-
<div style="
|
|
35
|
-
<div class="ui-modal ui-modal--full ui-modal--visible
|
|
34
|
+
<div class="demo-area" style="--demo-h: 120px">
|
|
35
|
+
<div class="ui-modal ui-modal--full ui-modal--visible ui-absolute">
|
|
36
36
|
<div class="ui-modal__content">
|
|
37
37
|
<p>{{ t('full_screen_modal', 'Full-screen modal') }}</p>
|
|
38
38
|
</div>
|
|
@@ -41,8 +41,8 @@ description: Container for modal dialogs. Use with overlay for backdrop effect.
|
|
|
41
41
|
|
|
42
42
|
<!-- @entering_animation -->
|
|
43
43
|
<!-- Apply entering modifier for open transition. -->
|
|
44
|
-
<div style="
|
|
45
|
-
<div class="ui-modal ui-modal--visible ui-modal--entering
|
|
44
|
+
<div class="demo-area" style="--demo-h: 120px">
|
|
45
|
+
<div class="ui-modal ui-modal--visible ui-modal--entering ui-absolute">
|
|
46
46
|
<div class="ui-modal__content">
|
|
47
47
|
<p>{{ t('entering_modal', 'Entering modal') }}</p>
|
|
48
48
|
</div>
|
|
@@ -50,8 +50,8 @@ description: Container for modal dialogs. Use with overlay for backdrop effect.
|
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
<!-- @with_scrollable_content -->
|
|
53
|
-
<div
|
|
54
|
-
<div class="ui-modal ui-modal--visible
|
|
53
|
+
<div class="demo-area">
|
|
54
|
+
<div class="ui-modal ui-modal--visible ui-absolute">
|
|
55
55
|
<div class="ui-modal__content" style="max-height: 150px;">
|
|
56
56
|
<div class="ui-modal__body">
|
|
57
57
|
<p>{{ t('line_1', 'Line 1') }}</p>
|
|
@@ -4,24 +4,24 @@ description: Full viewport backdrop for modals, dialogs, and drawers. Controls v
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- @default -->
|
|
7
|
-
<div style="
|
|
8
|
-
<div class="ui-overlay
|
|
7
|
+
<div class="demo-area" style="--demo-h: 120px">
|
|
8
|
+
<div class="ui-overlay ui-absolute"></div>
|
|
9
9
|
<p style="position: relative; padding: var(--ui-space-2);">{{ t('content_behind_overlay', 'Content behind overlay') }}</p>
|
|
10
10
|
</div>
|
|
11
11
|
|
|
12
12
|
<!-- @light_variant -->
|
|
13
|
-
<div style="
|
|
14
|
-
<div class="ui-overlay ui-overlay--light
|
|
13
|
+
<div class="demo-area" style="--demo-h: 120px; background: var(--ui-color-text)">
|
|
14
|
+
<div class="ui-overlay ui-overlay--light ui-absolute"></div>
|
|
15
15
|
<p style="position: relative; padding: var(--ui-space-2); color: white;">{{ t('dark_content_behind_light_overlay', 'Dark content behind light overlay') }}</p>
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
18
|
<!-- @blur_variant -->
|
|
19
|
-
<div style="
|
|
20
|
-
<div class="ui-overlay ui-overlay--blur
|
|
19
|
+
<div class="demo-area" style="--demo-h: 120px; background: linear-gradient(45deg, var(--ui-color-primary), var(--ui-color-success))">
|
|
20
|
+
<div class="ui-overlay ui-overlay--blur ui-absolute"></div>
|
|
21
21
|
<p style="position: relative; padding: var(--ui-space-2); color: white;">{{ t('blurred_backdrop', 'Blurred backdrop') }}</p>
|
|
22
22
|
</div>
|
|
23
23
|
|
|
24
24
|
<!-- @with_animation -->
|
|
25
|
-
<div style="
|
|
26
|
-
<div class="ui-overlay ui-overlay--animate ui-overlay--visible
|
|
25
|
+
<div class="demo-area" style="--demo-h: 120px">
|
|
26
|
+
<div class="ui-overlay ui-overlay--animate ui-overlay--visible ui-absolute"></div>
|
|
27
27
|
</div>
|
|
@@ -4,12 +4,12 @@ description: Floating panel for additional content. Larger than tooltip, can con
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- @default -->
|
|
7
|
-
<div class="ui-popover
|
|
7
|
+
<div class="ui-popover ui-relative">
|
|
8
8
|
<p>{{ t('popover_content', 'Popover content goes here. Can contain multiple paragraphs and other elements.') }}</p>
|
|
9
9
|
</div>
|
|
10
10
|
|
|
11
11
|
<!-- @with_header -->
|
|
12
|
-
<div class="ui-popover
|
|
12
|
+
<div class="ui-popover ui-relative">
|
|
13
13
|
<header class="ui-popover__header">
|
|
14
14
|
<h3 class="ui-popover__title">{{ t('popover_title', 'Popover Title') }}</h3>
|
|
15
15
|
</header>
|
|
@@ -18,21 +18,21 @@ description: Floating panel for additional content. Larger than tooltip, can con
|
|
|
18
18
|
|
|
19
19
|
<!-- @positions -->
|
|
20
20
|
<div style="padding: var(--ui-space-4);">
|
|
21
|
-
<div class="ui-popover ui-popover--top
|
|
21
|
+
<div class="ui-popover ui-popover--top ui-relative">
|
|
22
22
|
<p>{{ t('top_arrow_down', 'Top (arrow down)') }}</p>
|
|
23
23
|
</div>
|
|
24
24
|
</div>
|
|
25
25
|
<div style="padding: var(--ui-space-4);">
|
|
26
|
-
<div class="ui-popover ui-popover--bottom
|
|
26
|
+
<div class="ui-popover ui-popover--bottom ui-relative">
|
|
27
27
|
<p>{{ t('bottom_arrow_up', 'Bottom (arrow up)') }}</p>
|
|
28
28
|
</div>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
<!-- @visibility -->
|
|
32
32
|
<!-- Control popover visibility and animation. -->
|
|
33
|
-
<div class="ui-popover ui-popover--visible ui-popover--animate
|
|
33
|
+
<div class="ui-popover ui-popover--visible ui-popover--animate ui-relative">
|
|
34
34
|
<p>{{ t('visible_and_animated', 'Visible and animated') }}</p>
|
|
35
35
|
</div>
|
|
36
|
-
<div class="ui-popover ui-popover--hidden
|
|
36
|
+
<div class="ui-popover ui-popover--hidden ui-relative">
|
|
37
37
|
<p>{{ t('hidden_popover', 'Hidden popover') }}</p>
|
|
38
38
|
</div>
|
|
@@ -4,23 +4,23 @@ description: Small informational popup for additional context. Position via JS.
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- @positions -->
|
|
7
|
-
<div
|
|
8
|
-
<div
|
|
9
|
-
<span class="ui-tooltip ui-tooltip--top
|
|
7
|
+
<div class="ui-flex ui-gap-4 ui-p-4 ui-flex-wrap">
|
|
8
|
+
<div class="ui-relative">
|
|
9
|
+
<span class="ui-tooltip ui-tooltip--top ui-relative">{{ t('top', 'Top') }}</span>
|
|
10
10
|
</div>
|
|
11
|
-
<div
|
|
12
|
-
<span class="ui-tooltip ui-tooltip--bottom
|
|
11
|
+
<div class="ui-relative">
|
|
12
|
+
<span class="ui-tooltip ui-tooltip--bottom ui-relative">{{ t('bottom', 'Bottom') }}</span>
|
|
13
13
|
</div>
|
|
14
|
-
<div
|
|
15
|
-
<span class="ui-tooltip ui-tooltip--start
|
|
14
|
+
<div class="ui-relative">
|
|
15
|
+
<span class="ui-tooltip ui-tooltip--start ui-relative">{{ t('start', 'Start') }}</span>
|
|
16
16
|
</div>
|
|
17
|
-
<div
|
|
18
|
-
<span class="ui-tooltip ui-tooltip--end
|
|
17
|
+
<div class="ui-relative">
|
|
18
|
+
<span class="ui-tooltip ui-tooltip--end ui-relative">{{ t('end', 'End') }}</span>
|
|
19
19
|
</div>
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
22
|
<!-- @with_animation -->
|
|
23
|
-
<span class="ui-tooltip ui-tooltip--top ui-tooltip--animate ui-tooltip--visible
|
|
23
|
+
<span class="ui-tooltip ui-tooltip--top ui-tooltip--animate ui-tooltip--visible ui-relative">{{ t('animated_tooltip', 'Animated tooltip') }}</span>
|
|
24
24
|
|
|
25
25
|
<!-- @anchor_positioned -->
|
|
26
26
|
<!-- Browser-native positioning via CSS Anchor Positioning. No JS needed for placement. Wrapped in @supports — falls back to manual positioning in unsupported browsers. -->
|
|
@@ -40,6 +40,6 @@ import '@teseor/css/dist/index.css';
|
|
|
40
40
|
|
|
41
41
|
<!-- @customize -->
|
|
42
42
|
<!-- Override design tokens with CSS custom properties. No build step required. -->
|
|
43
|
-
<div class="theme
|
|
43
|
+
<div class="demo-theme" style="--ui-color-primary: oklch(55% 0.22 290)">
|
|
44
44
|
<button class="ui-button">{{ t('purple_brand', 'Purple brand') }}</button>
|
|
45
45
|
</div>
|