opui-css 2.2.2 → 2.3.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.
Files changed (80) hide show
  1. package/README.md +23 -7
  2. package/dist/{op+ui.css → theme-one+op.css} +293 -145
  3. package/dist/{ui.css → theme-one.css} +171 -14
  4. package/dist/theme-two+op.css +4021 -0
  5. package/dist/theme-two.css +3975 -0
  6. package/package.json +6 -5
  7. package/src/core/normalize.css +3 -2
  8. package/src/themes/theme-one/components/table.css +100 -0
  9. package/src/{components → themes/theme-one/components}/toggle-button-group.css +1 -5
  10. package/src/themes/theme-one/components.css +37 -0
  11. package/src/{theme.css → themes/theme-one/setup.css} +1 -1
  12. package/src/themes/theme-one/theme+op.css +5 -0
  13. package/src/themes/theme-one/theme.css +13 -0
  14. package/src/themes/theme-two/components/accordion.css +172 -0
  15. package/src/themes/theme-two/components/alert.css +85 -0
  16. package/src/themes/theme-two/components/avatar.css +68 -0
  17. package/src/themes/theme-two/components/badge.css +101 -0
  18. package/src/themes/theme-two/components/button-group.css +50 -0
  19. package/src/themes/theme-two/components/button.css +217 -0
  20. package/src/themes/theme-two/components/card.css +82 -0
  21. package/src/themes/theme-two/components/checkbox-radio.css +123 -0
  22. package/src/themes/theme-two/components/chip.css +135 -0
  23. package/src/themes/theme-two/components/definition-list.css +65 -0
  24. package/src/themes/theme-two/components/dialog.css +59 -0
  25. package/src/themes/theme-two/components/divider.css +7 -0
  26. package/src/themes/theme-two/components/field-group.css +83 -0
  27. package/src/themes/theme-two/components/field.css +281 -0
  28. package/src/themes/theme-two/components/icon-button.css +40 -0
  29. package/src/themes/theme-two/components/link.css +21 -0
  30. package/src/themes/theme-two/components/list.css +317 -0
  31. package/src/themes/theme-two/components/progress.css +83 -0
  32. package/src/themes/theme-two/components/range.css +121 -0
  33. package/src/themes/theme-two/components/rich-text.css +210 -0
  34. package/src/themes/theme-two/components/select.css +162 -0
  35. package/src/themes/theme-two/components/snackbar.css +148 -0
  36. package/src/themes/theme-two/components/spinner.css +38 -0
  37. package/src/themes/theme-two/components/switch.css +189 -0
  38. package/src/themes/theme-two/components/tab-buttons.css +120 -0
  39. package/src/themes/theme-two/components/text-field.css +57 -0
  40. package/src/themes/theme-two/components/textarea.css +25 -0
  41. package/src/themes/theme-two/components/toggle-button-group.css +135 -0
  42. package/src/themes/theme-two/components/tooltip.css +94 -0
  43. package/src/themes/theme-two/components/typography.css +209 -0
  44. package/src/themes/theme-two/components.css +37 -0
  45. package/src/themes/theme-two/setup.css +158 -0
  46. package/src/themes/theme-two/theme+op.css +5 -0
  47. package/src/themes/theme-two/theme.css +13 -0
  48. package/src/core/components.css +0 -37
  49. package/src/main.css +0 -13
  50. package/src/opui.css +0 -10
  51. /package/src/{components → themes/theme-one/components}/accordion.css +0 -0
  52. /package/src/{components → themes/theme-one/components}/alert.css +0 -0
  53. /package/src/{components → themes/theme-one/components}/avatar.css +0 -0
  54. /package/src/{components → themes/theme-one/components}/badge.css +0 -0
  55. /package/src/{components → themes/theme-one/components}/button-group.css +0 -0
  56. /package/src/{components → themes/theme-one/components}/button.css +0 -0
  57. /package/src/{components → themes/theme-one/components}/card.css +0 -0
  58. /package/src/{components → themes/theme-one/components}/checkbox-radio.css +0 -0
  59. /package/src/{components → themes/theme-one/components}/chip.css +0 -0
  60. /package/src/{components → themes/theme-one/components}/definition-list.css +0 -0
  61. /package/src/{components → themes/theme-one/components}/dialog.css +0 -0
  62. /package/src/{components → themes/theme-one/components}/divider.css +0 -0
  63. /package/src/{components → themes/theme-one/components}/field-group.css +0 -0
  64. /package/src/{components → themes/theme-one/components}/field.css +0 -0
  65. /package/src/{components → themes/theme-one/components}/icon-button.css +0 -0
  66. /package/src/{components → themes/theme-one/components}/link.css +0 -0
  67. /package/src/{components → themes/theme-one/components}/list.css +0 -0
  68. /package/src/{components → themes/theme-one/components}/progress.css +0 -0
  69. /package/src/{components → themes/theme-one/components}/range.css +0 -0
  70. /package/src/{components → themes/theme-one/components}/rich-text.css +0 -0
  71. /package/src/{components → themes/theme-one/components}/select.css +0 -0
  72. /package/src/{components → themes/theme-one/components}/snackbar.css +0 -0
  73. /package/src/{components → themes/theme-one/components}/spinner.css +0 -0
  74. /package/src/{components → themes/theme-one/components}/switch.css +0 -0
  75. /package/src/{components → themes/theme-one/components}/tab-buttons.css +0 -0
  76. /package/src/{components → themes/theme-one/components}/text-field.css +0 -0
  77. /package/src/{components → themes/theme-one/components}/textarea.css +0 -0
  78. /package/src/{components → themes/theme-one/components}/tooltip.css +0 -0
  79. /package/src/{components → themes/theme-one/components}/typography.css +0 -0
  80. /package/src/{components → themes/theme-two/components}/table.css +0 -0
@@ -1,101 +1,99 @@
1
- @layer openprops, normalize, utils, theme, components.root, components.extended;
1
+ @layer openprops, normalize, utils, theme, components.root, components.extended;
2
+ /* Open Props */
2
3
  /*
3
- This main.css file represents whatever file you choose to use as an entry point for OPUI
4
- Ideally it's the root/entry CSS file in your project.
5
- */
6
- /* Open Props imports */
7
- /*
8
- * Open Props
9
- * Import as many props as you need here.
10
- * https://unpkg.com/browse/open-props@2.0.0-beta.5/css
11
- */
12
- @custom-media --motionOK (prefers-reduced-motion: no-preference);
13
- @custom-media --motionNotOK (prefers-reduced-motion: reduce);
14
- @custom-media --opacityOK (prefers-reduced-transparency: no-preference);
15
- @custom-media --opacityNotOK (prefers-reduced-transparency: reduce);
16
- @custom-media --useDataOK (prefers-reduced-data: no-preference);
17
- @custom-media --useDataNotOK (prefers-reduced-data: reduce);
18
- @custom-media --OSdark (prefers-color-scheme: dark);
19
- @custom-media --OSlight (prefers-color-scheme: light);
20
- @custom-media --highContrast (prefers-contrast: more);
21
- @custom-media --lowContrast (prefers-contrast: less);
22
- @custom-media --portrait (orientation: portrait);
23
- @custom-media --landscape (orientation: landscape);
24
- @custom-media --HDcolor (dynamic-range: high);
25
- @custom-media --touch (hover: none) and (pointer: coarse);
26
- @custom-media --stylus (hover: none) and (pointer: fine);
27
- @custom-media --pointer (hover) and (pointer: coarse);
28
- @custom-media --mouse (hover) and (pointer: fine);
29
- @custom-media --xxs-only (0px <= width <= 240px);
30
- @custom-media --xxs-n-above (width >= 240px);
31
- @custom-media --xxs-n-below (width < 240px);
32
- @custom-media --xxs-phone (--xxs-only) and (--portrait);
33
- @custom-media --xs-only (240px <= width <= 360px);
34
- @custom-media --xs-n-above (width >= 360px);
35
- @custom-media --xs-n-below (width < 360px);
36
- @custom-media --xs-phone (--xs-only) and (--portrait);
37
- @custom-media --sm-only (360px <= width <= 480px);
38
- @custom-media --sm-n-above (width >= 480px);
39
- @custom-media --sm-n-below (width < 480px);
40
- @custom-media --sm-phone (--sm-only) and (--portrait);
41
- @custom-media --md-only (480px <= width <= 768px);
42
- @custom-media --md-n-above (width >= 768px);
43
- @custom-media --md-n-below (width < 768px);
44
- @custom-media --md-phone (--md-only) and (--portrait);
45
- @custom-media --lg-only (768px <= width <= 1024px);
46
- @custom-media --lg-n-above (width >= 1024px);
47
- @custom-media --lg-n-below (width < 1024px);
48
- @custom-media --lg-phone (--lg-only) and (--portrait);
49
- @custom-media --xl-only (1024px <= width <= 1440px);
50
- @custom-media --xl-n-above (width >= 1440px);
51
- @custom-media --xl-n-below (width < 1440px);
52
- @custom-media --xxl-only (1440px <= width <= 1920px);
53
- @custom-media --xxl-n-above (width >= 1920px);
54
- @custom-media --xxl-n-below (width < 1920px);
55
- @layer openprops{
56
- :where(:root){--font-sans:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;--font-serif:ui-serif,serif;--font-mono:Dank Mono,Operator Mono,Inconsolata,Fira Mono,ui-monospace,SF Mono,Monaco,Droid Sans Mono,Source Code Pro,monospace;--font-weight-1:100;--font-weight-2:200;--font-weight-3:300;--font-weight-4:400;--font-weight-5:500;--font-weight-6:600;--font-weight-7:700;--font-weight-8:800;--font-weight-9:900;--font-size-00:.5rem;--font-size-0:.75rem;--font-size-1:1rem;--font-size-2:1.1rem;--font-size-3:1.25rem;--font-size-4:1.5rem;--font-size-5:2rem;--font-size-6:2.5rem;--font-size-7:3rem;--font-size-8:3.5rem;--font-size-fluid-0:clamp(.75rem,2vw,1rem);--font-size-fluid-1:clamp(1rem,4vw,1.5rem);--font-size-fluid-2:clamp(1.5rem,6vw,2.5rem);--font-size-fluid-3:clamp(2rem,9vw,3.5rem);--size-000:-.5rem;--size-00:-.25rem;--size-1:.25rem;--size-2:.5rem;--size-3:1rem;--size-4:1.25rem;--size-5:1.5rem;--size-6:1.75rem;--size-7:2rem;--size-8:3rem;--size-9:4rem;--size-10:5rem;--size-11:7.5rem;--size-12:10rem;--size-13:15rem;--size-14:20rem;--size-15:30rem;--size-fluid-1:clamp(.5rem,1vw,1rem);--size-fluid-2:clamp(1rem,2vw,1.5rem);--size-fluid-3:clamp(1.5rem,3vw,2rem);--size-fluid-4:clamp(2rem,4vw,3rem);--size-fluid-5:clamp(4rem,5vw,5rem);--size-fluid-6:clamp(5rem,7vw,7.5rem);--size-fluid-7:clamp(7.5rem,10vw,10rem);--size-fluid-8:clamp(10rem,20vw,15rem);--size-fluid-9:clamp(15rem,30vw,20rem);--size-fluid-10:clamp(20rem,40vw,30rem);--size-header-1:20ch;--size-header-2:25ch;--size-header-3:35ch;--size-content-1:20ch;--size-content-2:45ch;--size-content-3:60ch;--ratio-square:1;--ratio-landscape:4/3;--ratio-portrait:3/4;--ratio-widescreen:16/9;--ratio-ultrawide:18/5;--ratio-golden:1.618/1;--layer-1:1;--layer-2:2;--layer-3:3;--layer-4:4;--layer-5:5;--layer-bottom:var(--layer-1);--layer-top:var(--layer-5);--layer-important:2147480000;--border-size-1:1px;--border-size-2:2px;--border-size-3:5px;--border-size-4:10px;--border-size-5:25px;--radius-1:2px;--radius-2:5px;--radius-3:1rem;--radius-4:2rem;--radius-5:4rem;--radius-6:8rem;--radius-round:100000px;--radius-blob-1:30% 70% 70% 30%/53% 30% 70% 47%;--radius-blob-2:53% 47% 34% 66%/63% 46% 54% 37%;--radius-blob-3:37% 63% 56% 44%/49% 56% 44% 51%;--radius-blob-4:63% 37% 37% 63%/43% 37% 63% 57%;--radius-blob-5:49% 51% 48% 52%/57% 44% 56% 43%;--radius-conditional-1:clamp(0px,calc(100vw - 100%)*100000,var(--radius-1));--radius-conditional-2:clamp(0px,calc(100vw - 100%)*100000,var(--radius-2));--radius-conditional-3:clamp(0px,calc(100vw - 100%)*100000,var(--radius-3));--radius-conditional-4:clamp(0px,calc(100vw - 100%)*100000,var(--radius-4));--radius-conditional-5:clamp(0px,calc(100vw - 100%)*100000,var(--radius-5));--radius-conditional-6:clamp(0px,calc(100vw - 100%)*100000,var(--radius-6))}*{--shadow-strength:1%;--shadow-chroma:3%;--shadow-hue:var(--shadow-tint,var(--palette-hue));--shadow-color:15% var(--shadow-chroma)var(--shadow-hue);--inner-shadow-highlight:inset 0 -.5px 0 0 #fff,inset 0 .5px 0 0 #0001;--shadow-1:0 1px 2px -1px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%));--shadow-2:0 3px 5px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 7px 14px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%));--shadow-3:0 -1px 3px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 1px 2px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 2px 5px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 4%)),0 4px 12px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%)),0 12px 15px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 7%));--shadow-4:0 -2px 5px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 1px 1px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 2px 2px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 5px 5px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 4%)),0 9px 9px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%)),0 16px 16px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 6%));--shadow-5:0 -1px 2px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 2px 1px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 5px 5px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 10px 10px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 4%)),0 20px 20px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%)),0 40px 40px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 7%));--shadow-6:0 -1px 2px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 3px 2px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 7px 5px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 12px 10px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 4%)),0 22px 18px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%)),0 41px 33px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 6%)),0 100px 80px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 7%));--inner-shadow-0:inset 0 0 0 1px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%));--inner-shadow-1:inset 0 1px 2px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%)),var(--inner-shadow-highlight);--inner-shadow-2:inset 0 1px 4px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%)),var(--inner-shadow-highlight);--inner-shadow-3:inset 0 2px 8px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%)),var(--inner-shadow-highlight);--inner-shadow-4:inset 0 2px 14px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%)),var(--inner-shadow-highlight)}@media (prefers-color-scheme:dark){*{--shadow-strength:25%;--shadow-chroma:10%;--shadow-hue:var(--shadow-tint,var(--palette-hue));--shadow-color:15% var(--shadow-chroma)var(--shadow-hue);--inner-shadow-highlight:inset 0 -.5px 0 0 #fff1,inset 0 .5px 0 0 #0007}}:where(:root){--ease-1:cubic-bezier(.25,0,.5,1);--ease-2:cubic-bezier(.25,0,.4,1);--ease-3:cubic-bezier(.25,0,.3,1);--ease-4:cubic-bezier(.25,0,.2,1);--ease-5:cubic-bezier(.25,0,.1,1);--ease-in-1:cubic-bezier(.25,0,1,1);--ease-in-2:cubic-bezier(.5,0,1,1);--ease-in-3:cubic-bezier(.7,0,1,1);--ease-in-4:cubic-bezier(.9,0,1,1);--ease-in-5:cubic-bezier(1,0,1,1);--ease-out-1:cubic-bezier(0,0,.75,1);--ease-out-2:cubic-bezier(0,0,.5,1);--ease-out-3:cubic-bezier(0,0,.3,1);--ease-out-4:cubic-bezier(0,0,.1,1);--ease-out-5:cubic-bezier(0,0,0,1);--ease-in-out-1:cubic-bezier(.1,0,.9,1);--ease-in-out-2:cubic-bezier(.3,0,.7,1);--ease-in-out-3:cubic-bezier(.5,0,.5,1);--ease-in-out-4:cubic-bezier(.7,0,.3,1);--ease-in-out-5:cubic-bezier(.9,0,.1,1);--ease-elastic-out-1:cubic-bezier(.5,.75,.75,1.25);--ease-elastic-out-2:cubic-bezier(.5,1,.75,1.25);--ease-elastic-out-3:cubic-bezier(.5,1.25,.75,1.25);--ease-elastic-out-4:cubic-bezier(.5,1.5,.75,1.25);--ease-elastic-out-5:cubic-bezier(.5,1.75,.75,1.25);--ease-elastic-in-1:cubic-bezier(.5,-.25,.75,1);--ease-elastic-in-2:cubic-bezier(.5,-.5,.75,1);--ease-elastic-in-3:cubic-bezier(.5,-.75,.75,1);--ease-elastic-in-4:cubic-bezier(.5,-1,.75,1);--ease-elastic-in-5:cubic-bezier(.5,-1.25,.75,1);--ease-elastic-in-out-1:cubic-bezier(.5,-.1,.1,1.5);--ease-elastic-in-out-2:cubic-bezier(.5,-.3,.1,1.5);--ease-elastic-in-out-3:cubic-bezier(.5,-.5,.1,1.5);--ease-elastic-in-out-4:cubic-bezier(.5,-.7,.1,1.5);--ease-elastic-in-out-5:cubic-bezier(.5,-.9,.1,1.5);--ease-step-1:steps(2);--ease-step-2:steps(3);--ease-step-3:steps(4);--ease-step-4:steps(7);--ease-step-5:steps(10);--ease-spring-1:linear(0,.006,.025 2.8%,.101 6.1%,.539 18.9%,.721 25.3%,.849 31.5%,.937 38.1%,.968 41.8%,.991 45.7%,1.006 50.1%,1.015 55%,1.017 63.9%,1.001);--ease-spring-2:linear(0,.007,.029 2.2%,.118 4.7%,.625 14.4%,.826 19%,.902,.962,1.008 26.1%,1.041 28.7%,1.064 32.1%,1.07 36%,1.061 40.5%,1.015 53.4%,.999 61.6%,.995 71.2%,1);--ease-spring-3:linear(0,.009,.035 2.1%,.141 4.4%,.723 12.9%,.938 16.7%,1.017,1.077,1.121,1.149 24.3%,1.159,1.163,1.161,1.154 29.9%,1.129 32.8%,1.051 39.6%,1.017 43.1%,.991,.977 51%,.974 53.8%,.975 57.1%,.997 69.8%,1.003 76.9%,1);--ease-spring-4:linear(0,.009,.037 1.7%,.153 3.6%,.776 10.3%,1.001,1.142 16%,1.185,1.209 19%,1.215 19.9% 20.8%,1.199,1.165 25%,1.056 30.3%,1.008 33%,.973,.955 39.2%,.953 41.1%,.957 43.3%,.998 53.3%,1.009 59.1% 63.7%,.998 78.9%,1);--ease-spring-5:linear(0,.01,.04 1.6%,.161 3.3%,.816 9.4%,1.046,1.189 14.4%,1.231,1.254 17%,1.259,1.257 18.6%,1.236,1.194 22.3%,1.057 27%,.999 29.4%,.955 32.1%,.942,.935 34.9%,.933,.939 38.4%,1 47.3%,1.011,1.017 52.6%,1.016 56.4%,1 65.2%,.996 70.2%,1.001 87.2%,1);--ease-bounce-1:linear(0,.004,.016,.035,.063,.098,.141,.191,.25,.316,.391 36.8%,.563,.766,1 58.8%,.946,.908 69.1%,.895,.885,.879,.878,.879,.885,.895,.908 89.7%,.946,1);--ease-bounce-2:linear(0,.004,.016,.035,.063,.098,.141 15.1%,.25,.391,.562,.765,1,.892 45.2%,.849,.815,.788,.769,.757,.753,.757,.769,.788,.815,.85,.892 75.2%,1 80.2%,.973,.954,.943,.939,.943,.954,.973,1);--ease-bounce-3:linear(0,.004,.016,.035,.062,.098,.141 11.4%,.25,.39,.562,.764,1 30.3%,.847 34.8%,.787,.737,.699,.672,.655,.65,.656,.672,.699,.738,.787,.847 61.7%,1 66.2%,.946,.908,.885 74.2%,.879,.878,.879,.885 79.5%,.908,.946,1 87.4%,.981,.968,.96,.957,.96,.968,.981,1);--ease-bounce-4:linear(0,.004,.016 3%,.062,.141,.25,.391,.562 18.2%,1 24.3%,.81,.676 32.3%,.629,.595,.575,.568,.575,.595,.629,.676 48.2%,.811,1 56.2%,.918,.86,.825,.814,.825,.86,.918,1 77.2%,.94 80.6%,.925,.92,.925,.94 87.5%,1 90.9%,.974,.965,.974,1);--ease-bounce-5:linear(0,.004,.016 2.5%,.063,.141,.25 10.1%,.562,1 20.2%,.783,.627,.534 30.9%,.511,.503,.511,.534 38%,.627,.782,1 48.7%,.892,.815,.769 56.3%,.757,.753,.757,.769 61.3%,.815,.892,1 68.8%,.908 72.4%,.885,.878,.885,.908 79.4%,1 83%,.954 85.5%,.943,.939,.943,.954 90.5%,1 93%,.977,.97,.977,1)}:where(:root){--palette-hue:250;--palette-hue-rotate-by:0;--palette-chroma:.15}*{--color-1:oklch(98% calc(.03*var(--palette-chroma,1))calc(var(--palette-hue) + (0*var(--palette-hue-rotate-by))));--color-2:oklch(97% calc(.06*var(--palette-chroma,1))calc(var(--palette-hue) + (1*var(--palette-hue-rotate-by))));--color-3:oklch(93% calc(.1*var(--palette-chroma,1))calc(var(--palette-hue) + (2*var(--palette-hue-rotate-by))));--color-4:oklch(84% calc(.12*var(--palette-chroma,1))calc(var(--palette-hue) + (3*var(--palette-hue-rotate-by))));--color-5:oklch(80% calc(.16*var(--palette-chroma,1))calc(var(--palette-hue) + (4*var(--palette-hue-rotate-by))));--color-6:oklch(71% calc(.19*var(--palette-chroma,1))calc(var(--palette-hue) + (5*var(--palette-hue-rotate-by))));--color-7:oklch(66% calc(.2*var(--palette-chroma,1))calc(var(--palette-hue) + (6*var(--palette-hue-rotate-by))));--color-8:oklch(58% calc(.21*var(--palette-chroma,1))calc(var(--palette-hue) + (7*var(--palette-hue-rotate-by))));--color-9:oklch(53% calc(.2*var(--palette-chroma,1))calc(var(--palette-hue) + (8*var(--palette-hue-rotate-by))));--color-10:oklch(49% calc(.19*var(--palette-chroma,1))calc(var(--palette-hue) + (9*var(--palette-hue-rotate-by))));--color-11:oklch(42% calc(.17*var(--palette-chroma,1))calc(var(--palette-hue) + (10*var(--palette-hue-rotate-by))));--color-12:oklch(35% calc(.15*var(--palette-chroma,1))calc(var(--palette-hue) + (11*var(--palette-hue-rotate-by))));--color-13:oklch(27% calc(.12*var(--palette-chroma,1))calc(var(--palette-hue) + (12*var(--palette-hue-rotate-by))));--color-14:oklch(20% calc(.09*var(--palette-chroma,1))calc(var(--palette-hue) + (13*var(--palette-hue-rotate-by))));--color-15:oklch(16% calc(.07*var(--palette-chroma,1))calc(var(--palette-hue) + (14*var(--palette-hue-rotate-by))));--color-16:oklch(10% calc(.05*var(--palette-chroma,1))calc(var(--palette-hue) + (15*var(--palette-hue-rotate-by))))}}
57
- @layer openprops{
58
- :where(:root) {
59
- --size-xxs: 240px;
60
- --size-xs: 360px;
61
- --size-sm: 480px;
62
- --size-md: 768px;
63
- --size-lg: 1024px;
64
- --size-xl: 1440px;
65
- --size-xxl: 1920px;
66
- }}
67
- @layer openprops{
68
- :where(:root) {
69
- --font-lineheight-00: 0.95;
70
- --font-lineheight-0: 1.1;
71
- --font-lineheight-1: 1.25;
72
- --font-lineheight-2: 1.375;
73
- --font-lineheight-3: 1.5;
74
- --font-lineheight-4: 1.75;
75
- --font-lineheight-5: 2;
76
- }}
77
- @layer openprops{
78
- :where(:root) {
79
- --oklch-red: 25;
80
- --oklch-pink: 350;
81
- --oklch-purple: 310;
82
- --oklch-violet: 290;
83
- --oklch-indigo: 270;
84
- --oklch-blue: 240;
85
- --oklch-cyan: 210;
86
- --oklch-teal: 185;
87
- --oklch-green: 145;
88
- --oklch-lime: 125;
89
- --oklch-yellow: 100;
90
- --oklch-orange: 75;
91
- }}
92
- /* OPUI Core */
93
- /* Normalize */
4
+ * Open Props
5
+ * Import as many props as you need here.
6
+ * https://unpkg.com/browse/open-props@2.0.0-beta.5/css
7
+ */
8
+ @custom-media --motionOK (prefers-reduced-motion: no-preference);
9
+ @custom-media --motionNotOK (prefers-reduced-motion: reduce);
10
+ @custom-media --opacityOK (prefers-reduced-transparency: no-preference);
11
+ @custom-media --opacityNotOK (prefers-reduced-transparency: reduce);
12
+ @custom-media --useDataOK (prefers-reduced-data: no-preference);
13
+ @custom-media --useDataNotOK (prefers-reduced-data: reduce);
14
+ @custom-media --OSdark (prefers-color-scheme: dark);
15
+ @custom-media --OSlight (prefers-color-scheme: light);
16
+ @custom-media --highContrast (prefers-contrast: more);
17
+ @custom-media --lowContrast (prefers-contrast: less);
18
+ @custom-media --portrait (orientation: portrait);
19
+ @custom-media --landscape (orientation: landscape);
20
+ @custom-media --HDcolor (dynamic-range: high);
21
+ @custom-media --touch (hover: none) and (pointer: coarse);
22
+ @custom-media --stylus (hover: none) and (pointer: fine);
23
+ @custom-media --pointer (hover) and (pointer: coarse);
24
+ @custom-media --mouse (hover) and (pointer: fine);
25
+ @custom-media --xxs-only (0px <= width <= 240px);
26
+ @custom-media --xxs-n-above (width >= 240px);
27
+ @custom-media --xxs-n-below (width < 240px);
28
+ @custom-media --xxs-phone (--xxs-only) and (--portrait);
29
+ @custom-media --xs-only (240px <= width <= 360px);
30
+ @custom-media --xs-n-above (width >= 360px);
31
+ @custom-media --xs-n-below (width < 360px);
32
+ @custom-media --xs-phone (--xs-only) and (--portrait);
33
+ @custom-media --sm-only (360px <= width <= 480px);
34
+ @custom-media --sm-n-above (width >= 480px);
35
+ @custom-media --sm-n-below (width < 480px);
36
+ @custom-media --sm-phone (--sm-only) and (--portrait);
37
+ @custom-media --md-only (480px <= width <= 768px);
38
+ @custom-media --md-n-above (width >= 768px);
39
+ @custom-media --md-n-below (width < 768px);
40
+ @custom-media --md-phone (--md-only) and (--portrait);
41
+ @custom-media --lg-only (768px <= width <= 1024px);
42
+ @custom-media --lg-n-above (width >= 1024px);
43
+ @custom-media --lg-n-below (width < 1024px);
44
+ @custom-media --lg-phone (--lg-only) and (--portrait);
45
+ @custom-media --xl-only (1024px <= width <= 1440px);
46
+ @custom-media --xl-n-above (width >= 1440px);
47
+ @custom-media --xl-n-below (width < 1440px);
48
+ @custom-media --xxl-only (1440px <= width <= 1920px);
49
+ @custom-media --xxl-n-above (width >= 1920px);
50
+ @custom-media --xxl-n-below (width < 1920px);
51
+ @layer openprops{
52
+ :where(:root){--font-sans:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;--font-serif:ui-serif,serif;--font-mono:Dank Mono,Operator Mono,Inconsolata,Fira Mono,ui-monospace,SF Mono,Monaco,Droid Sans Mono,Source Code Pro,monospace;--font-weight-1:100;--font-weight-2:200;--font-weight-3:300;--font-weight-4:400;--font-weight-5:500;--font-weight-6:600;--font-weight-7:700;--font-weight-8:800;--font-weight-9:900;--font-size-00:.5rem;--font-size-0:.75rem;--font-size-1:1rem;--font-size-2:1.1rem;--font-size-3:1.25rem;--font-size-4:1.5rem;--font-size-5:2rem;--font-size-6:2.5rem;--font-size-7:3rem;--font-size-8:3.5rem;--font-size-fluid-0:clamp(.75rem,2vw,1rem);--font-size-fluid-1:clamp(1rem,4vw,1.5rem);--font-size-fluid-2:clamp(1.5rem,6vw,2.5rem);--font-size-fluid-3:clamp(2rem,9vw,3.5rem);--size-000:-.5rem;--size-00:-.25rem;--size-1:.25rem;--size-2:.5rem;--size-3:1rem;--size-4:1.25rem;--size-5:1.5rem;--size-6:1.75rem;--size-7:2rem;--size-8:3rem;--size-9:4rem;--size-10:5rem;--size-11:7.5rem;--size-12:10rem;--size-13:15rem;--size-14:20rem;--size-15:30rem;--size-fluid-1:clamp(.5rem,1vw,1rem);--size-fluid-2:clamp(1rem,2vw,1.5rem);--size-fluid-3:clamp(1.5rem,3vw,2rem);--size-fluid-4:clamp(2rem,4vw,3rem);--size-fluid-5:clamp(4rem,5vw,5rem);--size-fluid-6:clamp(5rem,7vw,7.5rem);--size-fluid-7:clamp(7.5rem,10vw,10rem);--size-fluid-8:clamp(10rem,20vw,15rem);--size-fluid-9:clamp(15rem,30vw,20rem);--size-fluid-10:clamp(20rem,40vw,30rem);--size-header-1:20ch;--size-header-2:25ch;--size-header-3:35ch;--size-content-1:20ch;--size-content-2:45ch;--size-content-3:60ch;--ratio-square:1;--ratio-landscape:4/3;--ratio-portrait:3/4;--ratio-widescreen:16/9;--ratio-ultrawide:18/5;--ratio-golden:1.618/1;--layer-1:1;--layer-2:2;--layer-3:3;--layer-4:4;--layer-5:5;--layer-bottom:var(--layer-1);--layer-top:var(--layer-5);--layer-important:2147480000;--border-size-1:1px;--border-size-2:2px;--border-size-3:5px;--border-size-4:10px;--border-size-5:25px;--radius-1:2px;--radius-2:5px;--radius-3:1rem;--radius-4:2rem;--radius-5:4rem;--radius-6:8rem;--radius-round:100000px;--radius-blob-1:30% 70% 70% 30%/53% 30% 70% 47%;--radius-blob-2:53% 47% 34% 66%/63% 46% 54% 37%;--radius-blob-3:37% 63% 56% 44%/49% 56% 44% 51%;--radius-blob-4:63% 37% 37% 63%/43% 37% 63% 57%;--radius-blob-5:49% 51% 48% 52%/57% 44% 56% 43%;--radius-conditional-1:clamp(0px,calc(100vw - 100%)*100000,var(--radius-1));--radius-conditional-2:clamp(0px,calc(100vw - 100%)*100000,var(--radius-2));--radius-conditional-3:clamp(0px,calc(100vw - 100%)*100000,var(--radius-3));--radius-conditional-4:clamp(0px,calc(100vw - 100%)*100000,var(--radius-4));--radius-conditional-5:clamp(0px,calc(100vw - 100%)*100000,var(--radius-5));--radius-conditional-6:clamp(0px,calc(100vw - 100%)*100000,var(--radius-6))}*{--shadow-strength:1%;--shadow-chroma:3%;--shadow-hue:var(--shadow-tint,var(--palette-hue));--shadow-color:15% var(--shadow-chroma)var(--shadow-hue);--inner-shadow-highlight:inset 0 -.5px 0 0 #fff,inset 0 .5px 0 0 #0001;--shadow-1:0 1px 2px -1px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%));--shadow-2:0 3px 5px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 7px 14px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%));--shadow-3:0 -1px 3px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 1px 2px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 2px 5px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 4%)),0 4px 12px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%)),0 12px 15px -5px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 7%));--shadow-4:0 -2px 5px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 1px 1px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 2px 2px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 5px 5px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 4%)),0 9px 9px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%)),0 16px 16px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 6%));--shadow-5:0 -1px 2px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 2px 1px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 5px 5px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 10px 10px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 4%)),0 20px 20px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%)),0 40px 40px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 7%));--shadow-6:0 -1px 2px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 2%)),0 3px 2px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 7px 5px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 3%)),0 12px 10px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 4%)),0 22px 18px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 5%)),0 41px 33px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 6%)),0 100px 80px -2px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 7%));--inner-shadow-0:inset 0 0 0 1px oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%));--inner-shadow-1:inset 0 1px 2px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%)),var(--inner-shadow-highlight);--inner-shadow-2:inset 0 1px 4px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%)),var(--inner-shadow-highlight);--inner-shadow-3:inset 0 2px 8px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%)),var(--inner-shadow-highlight);--inner-shadow-4:inset 0 2px 14px 0 oklch(var(--shadow-color)/calc(var(--shadow-strength) + 9%)),var(--inner-shadow-highlight)}@media (prefers-color-scheme:dark){*{--shadow-strength:25%;--shadow-chroma:10%;--shadow-hue:var(--shadow-tint,var(--palette-hue));--shadow-color:15% var(--shadow-chroma)var(--shadow-hue);--inner-shadow-highlight:inset 0 -.5px 0 0 #fff1,inset 0 .5px 0 0 #0007}}:where(:root){--ease-1:cubic-bezier(.25,0,.5,1);--ease-2:cubic-bezier(.25,0,.4,1);--ease-3:cubic-bezier(.25,0,.3,1);--ease-4:cubic-bezier(.25,0,.2,1);--ease-5:cubic-bezier(.25,0,.1,1);--ease-in-1:cubic-bezier(.25,0,1,1);--ease-in-2:cubic-bezier(.5,0,1,1);--ease-in-3:cubic-bezier(.7,0,1,1);--ease-in-4:cubic-bezier(.9,0,1,1);--ease-in-5:cubic-bezier(1,0,1,1);--ease-out-1:cubic-bezier(0,0,.75,1);--ease-out-2:cubic-bezier(0,0,.5,1);--ease-out-3:cubic-bezier(0,0,.3,1);--ease-out-4:cubic-bezier(0,0,.1,1);--ease-out-5:cubic-bezier(0,0,0,1);--ease-in-out-1:cubic-bezier(.1,0,.9,1);--ease-in-out-2:cubic-bezier(.3,0,.7,1);--ease-in-out-3:cubic-bezier(.5,0,.5,1);--ease-in-out-4:cubic-bezier(.7,0,.3,1);--ease-in-out-5:cubic-bezier(.9,0,.1,1);--ease-elastic-out-1:cubic-bezier(.5,.75,.75,1.25);--ease-elastic-out-2:cubic-bezier(.5,1,.75,1.25);--ease-elastic-out-3:cubic-bezier(.5,1.25,.75,1.25);--ease-elastic-out-4:cubic-bezier(.5,1.5,.75,1.25);--ease-elastic-out-5:cubic-bezier(.5,1.75,.75,1.25);--ease-elastic-in-1:cubic-bezier(.5,-.25,.75,1);--ease-elastic-in-2:cubic-bezier(.5,-.5,.75,1);--ease-elastic-in-3:cubic-bezier(.5,-.75,.75,1);--ease-elastic-in-4:cubic-bezier(.5,-1,.75,1);--ease-elastic-in-5:cubic-bezier(.5,-1.25,.75,1);--ease-elastic-in-out-1:cubic-bezier(.5,-.1,.1,1.5);--ease-elastic-in-out-2:cubic-bezier(.5,-.3,.1,1.5);--ease-elastic-in-out-3:cubic-bezier(.5,-.5,.1,1.5);--ease-elastic-in-out-4:cubic-bezier(.5,-.7,.1,1.5);--ease-elastic-in-out-5:cubic-bezier(.5,-.9,.1,1.5);--ease-step-1:steps(2);--ease-step-2:steps(3);--ease-step-3:steps(4);--ease-step-4:steps(7);--ease-step-5:steps(10);--ease-spring-1:linear(0,.006,.025 2.8%,.101 6.1%,.539 18.9%,.721 25.3%,.849 31.5%,.937 38.1%,.968 41.8%,.991 45.7%,1.006 50.1%,1.015 55%,1.017 63.9%,1.001);--ease-spring-2:linear(0,.007,.029 2.2%,.118 4.7%,.625 14.4%,.826 19%,.902,.962,1.008 26.1%,1.041 28.7%,1.064 32.1%,1.07 36%,1.061 40.5%,1.015 53.4%,.999 61.6%,.995 71.2%,1);--ease-spring-3:linear(0,.009,.035 2.1%,.141 4.4%,.723 12.9%,.938 16.7%,1.017,1.077,1.121,1.149 24.3%,1.159,1.163,1.161,1.154 29.9%,1.129 32.8%,1.051 39.6%,1.017 43.1%,.991,.977 51%,.974 53.8%,.975 57.1%,.997 69.8%,1.003 76.9%,1);--ease-spring-4:linear(0,.009,.037 1.7%,.153 3.6%,.776 10.3%,1.001,1.142 16%,1.185,1.209 19%,1.215 19.9% 20.8%,1.199,1.165 25%,1.056 30.3%,1.008 33%,.973,.955 39.2%,.953 41.1%,.957 43.3%,.998 53.3%,1.009 59.1% 63.7%,.998 78.9%,1);--ease-spring-5:linear(0,.01,.04 1.6%,.161 3.3%,.816 9.4%,1.046,1.189 14.4%,1.231,1.254 17%,1.259,1.257 18.6%,1.236,1.194 22.3%,1.057 27%,.999 29.4%,.955 32.1%,.942,.935 34.9%,.933,.939 38.4%,1 47.3%,1.011,1.017 52.6%,1.016 56.4%,1 65.2%,.996 70.2%,1.001 87.2%,1);--ease-bounce-1:linear(0,.004,.016,.035,.063,.098,.141,.191,.25,.316,.391 36.8%,.563,.766,1 58.8%,.946,.908 69.1%,.895,.885,.879,.878,.879,.885,.895,.908 89.7%,.946,1);--ease-bounce-2:linear(0,.004,.016,.035,.063,.098,.141 15.1%,.25,.391,.562,.765,1,.892 45.2%,.849,.815,.788,.769,.757,.753,.757,.769,.788,.815,.85,.892 75.2%,1 80.2%,.973,.954,.943,.939,.943,.954,.973,1);--ease-bounce-3:linear(0,.004,.016,.035,.062,.098,.141 11.4%,.25,.39,.562,.764,1 30.3%,.847 34.8%,.787,.737,.699,.672,.655,.65,.656,.672,.699,.738,.787,.847 61.7%,1 66.2%,.946,.908,.885 74.2%,.879,.878,.879,.885 79.5%,.908,.946,1 87.4%,.981,.968,.96,.957,.96,.968,.981,1);--ease-bounce-4:linear(0,.004,.016 3%,.062,.141,.25,.391,.562 18.2%,1 24.3%,.81,.676 32.3%,.629,.595,.575,.568,.575,.595,.629,.676 48.2%,.811,1 56.2%,.918,.86,.825,.814,.825,.86,.918,1 77.2%,.94 80.6%,.925,.92,.925,.94 87.5%,1 90.9%,.974,.965,.974,1);--ease-bounce-5:linear(0,.004,.016 2.5%,.063,.141,.25 10.1%,.562,1 20.2%,.783,.627,.534 30.9%,.511,.503,.511,.534 38%,.627,.782,1 48.7%,.892,.815,.769 56.3%,.757,.753,.757,.769 61.3%,.815,.892,1 68.8%,.908 72.4%,.885,.878,.885,.908 79.4%,1 83%,.954 85.5%,.943,.939,.943,.954 90.5%,1 93%,.977,.97,.977,1)}:where(:root){--palette-hue:250;--palette-hue-rotate-by:0;--palette-chroma:.15}*{--color-1:oklch(98% calc(.03*var(--palette-chroma,1))calc(var(--palette-hue) + (0*var(--palette-hue-rotate-by))));--color-2:oklch(97% calc(.06*var(--palette-chroma,1))calc(var(--palette-hue) + (1*var(--palette-hue-rotate-by))));--color-3:oklch(93% calc(.1*var(--palette-chroma,1))calc(var(--palette-hue) + (2*var(--palette-hue-rotate-by))));--color-4:oklch(84% calc(.12*var(--palette-chroma,1))calc(var(--palette-hue) + (3*var(--palette-hue-rotate-by))));--color-5:oklch(80% calc(.16*var(--palette-chroma,1))calc(var(--palette-hue) + (4*var(--palette-hue-rotate-by))));--color-6:oklch(71% calc(.19*var(--palette-chroma,1))calc(var(--palette-hue) + (5*var(--palette-hue-rotate-by))));--color-7:oklch(66% calc(.2*var(--palette-chroma,1))calc(var(--palette-hue) + (6*var(--palette-hue-rotate-by))));--color-8:oklch(58% calc(.21*var(--palette-chroma,1))calc(var(--palette-hue) + (7*var(--palette-hue-rotate-by))));--color-9:oklch(53% calc(.2*var(--palette-chroma,1))calc(var(--palette-hue) + (8*var(--palette-hue-rotate-by))));--color-10:oklch(49% calc(.19*var(--palette-chroma,1))calc(var(--palette-hue) + (9*var(--palette-hue-rotate-by))));--color-11:oklch(42% calc(.17*var(--palette-chroma,1))calc(var(--palette-hue) + (10*var(--palette-hue-rotate-by))));--color-12:oklch(35% calc(.15*var(--palette-chroma,1))calc(var(--palette-hue) + (11*var(--palette-hue-rotate-by))));--color-13:oklch(27% calc(.12*var(--palette-chroma,1))calc(var(--palette-hue) + (12*var(--palette-hue-rotate-by))));--color-14:oklch(20% calc(.09*var(--palette-chroma,1))calc(var(--palette-hue) + (13*var(--palette-hue-rotate-by))));--color-15:oklch(16% calc(.07*var(--palette-chroma,1))calc(var(--palette-hue) + (14*var(--palette-hue-rotate-by))));--color-16:oklch(10% calc(.05*var(--palette-chroma,1))calc(var(--palette-hue) + (15*var(--palette-hue-rotate-by))))}}
53
+ @layer openprops{
54
+ :where(:root) {
55
+ --size-xxs: 240px;
56
+ --size-xs: 360px;
57
+ --size-sm: 480px;
58
+ --size-md: 768px;
59
+ --size-lg: 1024px;
60
+ --size-xl: 1440px;
61
+ --size-xxl: 1920px;
62
+ }}
63
+ @layer openprops{
64
+ :where(:root) {
65
+ --font-lineheight-00: 0.95;
66
+ --font-lineheight-0: 1.1;
67
+ --font-lineheight-1: 1.25;
68
+ --font-lineheight-2: 1.375;
69
+ --font-lineheight-3: 1.5;
70
+ --font-lineheight-4: 1.75;
71
+ --font-lineheight-5: 2;
72
+ }}
73
+ @layer openprops{
74
+ :where(:root) {
75
+ --oklch-red: 25;
76
+ --oklch-pink: 350;
77
+ --oklch-purple: 310;
78
+ --oklch-violet: 290;
79
+ --oklch-indigo: 270;
80
+ --oklch-blue: 240;
81
+ --oklch-cyan: 210;
82
+ --oklch-teal: 185;
83
+ --oklch-green: 145;
84
+ --oklch-lime: 125;
85
+ --oklch-yellow: 100;
86
+ --oklch-orange: 75;
87
+ }}
88
+ /* theme one theme */
89
+ /* Normalize */
94
90
  @layer normalize {
95
91
  *,
96
92
  ::before,
97
93
  ::after {
98
- box-sizing: inherit;
94
+ /* Set box sizing instead of inheriting */
95
+ /* https://www.oddbird.net/2025/09/04/box-model/ */
96
+ box-sizing: border-box;
99
97
  }
100
98
 
101
99
  * {
@@ -108,7 +106,6 @@ Ideally it's the root/entry CSS file in your project.
108
106
  accent-color: var(--primary);
109
107
  background-color: var(--_page-bg-color);
110
108
  block-size: 100%;
111
- box-sizing: border-box;
112
109
  caret-color: var(--primary);
113
110
  color: var(--text-color-2);
114
111
  font-family: var(--font-sans);
@@ -285,8 +282,8 @@ Ideally it's the root/entry CSS file in your project.
285
282
  :target {
286
283
  scroll-margin-block-start: 2rem;
287
284
  }
288
- }
289
- /* Utils */
285
+ }
286
+ /* Utils */
290
287
  @layer utils {
291
288
  /*
292
289
  Screen-reader only
@@ -346,12 +343,12 @@ When you visibly want to hide an element but make it accessible for screen reade
346
343
  }
347
344
  }
348
345
  }
349
- }
350
- /* Components */
346
+ }
347
+ /* Components */
351
348
  /*
352
349
  * Components are divided into two categories - if they are stand-alone (root) or if they are built on top of others (extended).
353
- */
354
- /*** Root components (no dependencies) */
350
+ */
351
+ /*** Root components (no dependencies) */
355
352
  @layer components.root {
356
353
  :where(.button) {
357
354
  --_bg-color: transparent;
@@ -618,7 +615,7 @@ When you visibly want to hide an element but make it accessible for screen reade
618
615
  cursor: pointer;
619
616
  margin-inline-end: var(--size-relative-6);
620
617
  }
621
- }
618
+ }
622
619
  @layer components.root {
623
620
  :where(.icon-button) {
624
621
  --_text-color: inherit;
@@ -658,7 +655,7 @@ When you visibly want to hide an element but make it accessible for screen reade
658
655
  }
659
656
  }
660
657
  }
661
- }
658
+ }
662
659
  @layer components.root {
663
660
  :where(nav.tabs) {
664
661
  --_bg-color: transparent;
@@ -778,7 +775,7 @@ When you visibly want to hide an element but make it accessible for screen reade
778
775
  }
779
776
  }
780
777
  }
781
- }
778
+ }
782
779
  @layer components.root {
783
780
  :where([role="group"].toggle-button-group) {
784
781
  --_border-radius: var(--radius-round);
@@ -904,11 +901,7 @@ When you visibly want to hide an element but make it accessible for screen reade
904
901
 
905
902
  /* Selected */
906
903
  &.selected {
907
- --_bg-color: color-mix(
908
- in oklch,
909
- var(--primary) 12%,
910
- var(--surface-default)
911
- );
904
+ --_bg-color: oklch(from var(--primary) l c h / 25%);
912
905
 
913
906
  /* Checkmark */
914
907
  svg:first-of-type {
@@ -917,7 +910,7 @@ When you visibly want to hide an element but make it accessible for screen reade
917
910
  }
918
911
  }
919
912
  }
920
- }
913
+ }
921
914
  @layer components.root {
922
915
  :where(.avatar) {
923
916
  --_bg-color: var(--color-8);
@@ -985,7 +978,7 @@ When you visibly want to hide an element but make it accessible for screen reade
985
978
  outline: 2px solid var(--surface-default);
986
979
  }
987
980
  }
988
- }
981
+ }
989
982
  @layer components.root {
990
983
  :where(.badge) {
991
984
  --_bg-color: var(--primary);
@@ -1086,7 +1079,7 @@ When you visibly want to hide an element but make it accessible for screen reade
1086
1079
  }
1087
1080
  }
1088
1081
  }
1089
- }
1082
+ }
1090
1083
  @layer components.root {
1091
1084
  :where(.card) {
1092
1085
  --_bg-color: transparent;
@@ -1168,7 +1161,7 @@ When you visibly want to hide an element but make it accessible for screen reade
1168
1161
  padding-inline: var(--size-1) var(--size-3);
1169
1162
  }
1170
1163
  }
1171
- }
1164
+ }
1172
1165
  @layer components.root {
1173
1166
  :where(.chip) {
1174
1167
  --_bg-color: var(--surface-tonal);
@@ -1303,7 +1296,7 @@ When you visibly want to hide an element but make it accessible for screen reade
1303
1296
  cursor: not-allowed;
1304
1297
  }
1305
1298
  }
1306
- }
1299
+ }
1307
1300
  @layer components.root {
1308
1301
  :where(.definition-list) {
1309
1302
  --_border-style: solid;
@@ -1368,14 +1361,14 @@ When you visibly want to hide an element but make it accessible for screen reade
1368
1361
  }
1369
1362
  }
1370
1363
  }
1371
- }
1364
+ }
1372
1365
  @layer components.root {
1373
1366
  :where(hr) {
1374
1367
  background-color: var(--border-color);
1375
1368
  block-size: var(--border-size-1);
1376
1369
  margin-block: var(--size-fluid-3);
1377
1370
  }
1378
- }
1371
+ }
1379
1372
  @layer components.root {
1380
1373
  :where(.link) {
1381
1374
  color: var(--primary);
@@ -1396,7 +1389,7 @@ When you visibly want to hide an element but make it accessible for screen reade
1396
1389
  text-underline-offset: 2px;
1397
1390
  }
1398
1391
  }
1399
- }
1392
+ }
1400
1393
  @layer components.root {
1401
1394
  :where(table) {
1402
1395
  border-collapse: collapse;
@@ -1443,13 +1436,6 @@ When you visibly want to hide an element but make it accessible for screen reade
1443
1436
  text-align: start;
1444
1437
  }
1445
1438
 
1446
- /* Header */
1447
- thead {
1448
- position: sticky;
1449
- top: 0;
1450
- z-index: 1;
1451
- }
1452
-
1453
1439
  /* Footer */
1454
1440
  tfoot {
1455
1441
  border-top: 2px solid var(--border-color);
@@ -1503,7 +1489,7 @@ When you visibly want to hide an element but make it accessible for screen reade
1503
1489
  }
1504
1490
  }
1505
1491
  }
1506
- }
1492
+ }
1507
1493
  @layer components.root {
1508
1494
  :where(progress) {
1509
1495
  --_accent-color: var(--primary);
@@ -1586,7 +1572,7 @@ When you visibly want to hide an element but make it accessible for screen reade
1586
1572
  right: -8%;
1587
1573
  }
1588
1574
  }
1589
- }
1575
+ }
1590
1576
  @layer components.root {
1591
1577
  [aria-busy="true"]:not(
1592
1578
  input,
@@ -1624,7 +1610,7 @@ When you visibly want to hide an element but make it accessible for screen reade
1624
1610
  transform: rotate(1turn);
1625
1611
  }
1626
1612
  }
1627
- }
1613
+ }
1628
1614
  @layer components.root {
1629
1615
  label:where(.checkbox, .radio) {
1630
1616
  align-items: center;
@@ -1747,7 +1733,7 @@ When you visibly want to hide an element but make it accessible for screen reade
1747
1733
  }
1748
1734
  }
1749
1735
  }
1750
- }
1736
+ }
1751
1737
  @layer components.root {
1752
1738
  :where(.switch) {
1753
1739
  --_accent-color: var(--primary);
@@ -1936,7 +1922,7 @@ When you visibly want to hide an element but make it accessible for screen reade
1936
1922
  }
1937
1923
  }
1938
1924
  }
1939
- }
1925
+ }
1940
1926
  @layer components.root {
1941
1927
  :where(.range > input[type="range"]) {
1942
1928
  --thumb-bg: var(--primary);
@@ -2057,7 +2043,7 @@ When you visibly want to hide an element but make it accessible for screen reade
2057
2043
  }
2058
2044
  }
2059
2045
  }
2060
- }
2046
+ }
2061
2047
  @layer components.root {
2062
2048
  /* Base typography */
2063
2049
  :where(h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6) {
@@ -2266,8 +2252,8 @@ When you visibly want to hide an element but make it accessible for screen reade
2266
2252
  text-wrap: balance;
2267
2253
  }
2268
2254
  }
2269
- }
2270
- /*** Extended components (has dependencies) */
2255
+ }
2256
+ /*** Extended components (has dependencies) */
2271
2257
  @layer components.extended {
2272
2258
  :where([role="group"].button-group) {
2273
2259
  --_border-radius: var(--button-border-radius);
@@ -2336,7 +2322,7 @@ When you visibly want to hide an element but make it accessible for screen reade
2336
2322
  }
2337
2323
  }
2338
2324
  }
2339
- }
2325
+ }
2340
2326
  @layer components.extended {
2341
2327
  :where(details) {
2342
2328
  --_accordion-transition-time: 0.2s;
@@ -2508,7 +2494,7 @@ When you visibly want to hide an element but make it accessible for screen reade
2508
2494
  }
2509
2495
  }
2510
2496
  }
2511
- }
2497
+ }
2512
2498
  @layer components.extended {
2513
2499
  /*
2514
2500
  Lists meant to be used stand-alone or as part of Select elements
@@ -2825,7 +2811,7 @@ Lists meant to be used stand-alone or as part of Select elements
2825
2811
  }
2826
2812
  }
2827
2813
  }
2828
- }
2814
+ }
2829
2815
  @layer components.extended {
2830
2816
  :where(.alert) {
2831
2817
  --_bg-color: var(--surface-tonal);
@@ -2910,7 +2896,7 @@ Lists meant to be used stand-alone or as part of Select elements
2910
2896
  }
2911
2897
  }
2912
2898
  }
2913
- }
2899
+ }
2914
2900
  @layer components.extended {
2915
2901
  :where(dialog) {
2916
2902
  margin-block-start: 15%; /* vertical alignment */
@@ -2969,7 +2955,7 @@ Lists meant to be used stand-alone or as part of Select elements
2969
2955
  :where(html:has(dialog[open])) {
2970
2956
  overflow: hidden;
2971
2957
  }
2972
- }
2958
+ }
2973
2959
  @layer components.extended {
2974
2960
  :where(.snackbar) {
2975
2961
  align-items: center;
@@ -3117,7 +3103,7 @@ Lists meant to be used stand-alone or as part of Select elements
3117
3103
  }
3118
3104
  }
3119
3105
  }
3120
- }
3106
+ }
3121
3107
  @layer components.extended {
3122
3108
  /* Common styling for checkbox, radio and switch groups */
3123
3109
  :where(fieldset.field-group) {
@@ -3200,7 +3186,7 @@ Lists meant to be used stand-alone or as part of Select elements
3200
3186
  }
3201
3187
  }
3202
3188
  }
3203
- }
3189
+ }
3204
3190
  @layer components.extended {
3205
3191
  /*
3206
3192
  - Common styling for input, textarea and select
@@ -3694,7 +3680,7 @@ Lists meant to be used stand-alone or as part of Select elements
3694
3680
  }
3695
3681
  }
3696
3682
  }
3697
- }
3683
+ }
3698
3684
  @layer components.extended {
3699
3685
  :where(.field > select) {
3700
3686
  position: relative;
@@ -3857,7 +3843,7 @@ Lists meant to be used stand-alone or as part of Select elements
3857
3843
  ::picker(select) {
3858
3844
  appearance: base-select;
3859
3845
  }
3860
- }
3846
+ }
3861
3847
  @layer components.extended {
3862
3848
  :where(
3863
3849
  .field:has(
@@ -3914,7 +3900,7 @@ Lists meant to be used stand-alone or as part of Select elements
3914
3900
  translate: 0 -50%;
3915
3901
  }
3916
3902
  }
3917
- }
3903
+ }
3918
3904
  @layer components.extended {
3919
3905
  :where(.field:has(textarea)) {
3920
3906
  textarea {
@@ -3939,7 +3925,7 @@ Lists meant to be used stand-alone or as part of Select elements
3939
3925
  }
3940
3926
  }
3941
3927
  }
3942
- }
3928
+ }
3943
3929
  @layer components.extended {
3944
3930
  @scope (.rich-text) to (.not-rich-text) {
3945
3931
  a {
@@ -4149,6 +4135,168 @@ Lists meant to be used stand-alone or as part of Select elements
4149
4135
  }
4150
4136
  }
4151
4137
  }
4152
- }
4153
- /* Theme (example) */
4154
- /* @import "./theme.css"; */
4138
+ }
4139
+ /* Setup */
4140
+ /*
4141
+ theme one theme setup
4142
+ */
4143
+ @layer theme {
4144
+ .light {
4145
+ --color-scheme: light;
4146
+ }
4147
+ .dark {
4148
+ --color-scheme: dark;
4149
+ }
4150
+
4151
+ :where(html) {
4152
+ color-scheme: var(--color-scheme, light dark);
4153
+
4154
+ --palette-hue: var(--oklch-teal);
4155
+ --palette-hue-rotate-by: 5;
4156
+ --palette-chroma: 0.89;
4157
+
4158
+ /* Primary */
4159
+ --primary: var(--color-8);
4160
+ --primary-light: oklch(from var(--primary) calc(l * 1.25) c h);
4161
+ --primary-dark: oklch(from var(--primary) calc(l * 0.75) c h);
4162
+ --primary-contrast: var(--gray-1);
4163
+
4164
+ /* Text */
4165
+ --text-color-1: light-dark(var(--gray-15), var(--gray-1));
4166
+ --text-color-1-contrast: light-dark(var(--gray-2), var(--gray-15));
4167
+ --text-color-2: light-dark(var(--gray-13), var(--gray-4));
4168
+ --text-color-2-contrast: light-dark(var(--gray-4), var(--gray-13));
4169
+
4170
+ /* Surface */
4171
+ --surface-default: light-dark(var(--gray-1), var(--gray-13));
4172
+ --surface-filled: light-dark(var(--gray-3), var(--gray-15));
4173
+ --surface-tonal: light-dark(var(--gray-3), var(--gray-12));
4174
+ --surface-elevated: light-dark(var(--gray-1), var(--gray-12));
4175
+
4176
+ /* Shadows */
4177
+ --shadow-color: light-dark(220 3% 15%, 220 40% 2%);
4178
+ --shadow-strength: light-dark(1%, 10%);
4179
+ --inner-shadow-highlight: light-dark(
4180
+ inset 0 -0.5px 0 0 #fff,
4181
+ inset 0 0.5px 0 0 #0001,
4182
+ inset 0 -0.5px 0 0 #fff1,
4183
+ inset 0 0.5px 0 0 #0007
4184
+ );
4185
+
4186
+ /* Typography */
4187
+ --font-size-h1: var(--font-size-fluid-3, 3.5rem);
4188
+ --font-size-h2: var(--font-size-fluid-2, 2rem);
4189
+ --font-size-h3: var(--font-size-fluid-1, 1.5rem);
4190
+ --font-size-h4: var(--font-size-3, 1.25rem);
4191
+ --font-size-h5: var(--font-size-2, 1.1rem);
4192
+ --font-size-h6: var(--font-size-fluid-0, 1rem);
4193
+ --font-size-lg: var(--font-size-3, 1.25rem);
4194
+ --font-size-md: var(--font-size-fluid-0, 1rem);
4195
+ --font-size-sm: 0.875rem;
4196
+ --font-size-xs: var(--font-size-0, 0.75rem);
4197
+
4198
+ /* Borders */
4199
+ --border-color: light-dark(var(--gray-4), var(--gray-12));
4200
+ --border-radius: var(--size-1);
4201
+ --border-width: 1px;
4202
+
4203
+ /* Input Field */
4204
+ --field-border-color: var(--border-color);
4205
+ --field-border-radius: var(--size-1);
4206
+ --field-border-width: 1px;
4207
+ --field-size: 2.3lh;
4208
+ --field-size-small: 1.9lh;
4209
+
4210
+ /* Button */
4211
+ --button-border-radius: var(--radius-round);
4212
+ /* Ripple effect */
4213
+ @media (prefers-reduced-motion: no-preference) {
4214
+ --button-ripple-size: 100%;
4215
+ --button-ripple-duration: 0.5s;
4216
+ }
4217
+ }
4218
+
4219
+ /* Highlight colors */
4220
+ :where(.red, .error, del) {
4221
+ --palette-hue: var(--oklch-red, 25);
4222
+ --palette-chroma: 1;
4223
+ --palette-hue-rotate-by: 1;
4224
+ }
4225
+ :where(.blue, .ok, abbr, dfn) {
4226
+ --palette-hue: var(--oklch-blue, 210);
4227
+ --palette-chroma: 1;
4228
+ --palette-hue-rotate-by: 1;
4229
+ }
4230
+ :where(.green, .good, ins) {
4231
+ --palette-hue: var(--oklch-green, 145);
4232
+ --palette-chroma: 1;
4233
+ --palette-hue-rotate-by: 1;
4234
+ }
4235
+ :where(.orange, .warning) {
4236
+ --palette-hue: var(--oklch-orange, 75);
4237
+ --palette-chroma: 1;
4238
+ --palette-hue-rotate-by: 1;
4239
+ }
4240
+
4241
+ :where(html) {
4242
+ --red: oklch(from var(--color-9) l 0.2 25);
4243
+ --blue: oklch(from var(--color-9) l 0.2 210);
4244
+ --green: oklch(from var(--color-9) l 0.2 145);
4245
+ --orange: oklch(from var(--color-7) l 0.2 75);
4246
+ }
4247
+
4248
+ /* Gray palette */
4249
+ :where(html) {
4250
+ --gray-chroma: 0.01;
4251
+ --gray-lightness: 255;
4252
+
4253
+ --gray-1: oklch(
4254
+ from var(--color-1) l var(--gray-chroma) var(--gray-lightness)
4255
+ );
4256
+ --gray-2: oklch(
4257
+ from var(--color-2) l var(--gray-chroma) var(--gray-lightness)
4258
+ );
4259
+ --gray-3: oklch(
4260
+ from var(--color-3) l var(--gray-chroma) var(--gray-lightness)
4261
+ );
4262
+ --gray-4: oklch(
4263
+ from var(--color-4) l var(--gray-chroma) var(--gray-lightness)
4264
+ );
4265
+ --gray-5: oklch(
4266
+ from var(--color-5) l var(--gray-chroma) var(--gray-lightness)
4267
+ );
4268
+ --gray-6: oklch(
4269
+ from var(--color-6) l var(--gray-chroma) var(--gray-lightness)
4270
+ );
4271
+ --gray-7: oklch(
4272
+ from var(--color-7) l var(--gray-chroma) var(--gray-lightness)
4273
+ );
4274
+ --gray-8: oklch(
4275
+ from var(--color-8) l var(--gray-chroma) var(--gray-lightness)
4276
+ );
4277
+ --gray-9: oklch(
4278
+ from var(--color-9) l var(--gray-chroma) var(--gray-lightness)
4279
+ );
4280
+ --gray-10: oklch(
4281
+ from var(--color-10) l var(--gray-chroma) var(--gray-lightness)
4282
+ );
4283
+ --gray-11: oklch(
4284
+ from var(--color-11) l var(--gray-chroma) var(--gray-lightness)
4285
+ );
4286
+ --gray-12: oklch(
4287
+ from var(--color-12) l var(--gray-chroma) var(--gray-lightness)
4288
+ );
4289
+ --gray-13: oklch(
4290
+ from var(--color-13) l var(--gray-chroma) var(--gray-lightness)
4291
+ );
4292
+ --gray-14: oklch(
4293
+ from var(--color-14) l var(--gray-chroma) var(--gray-lightness)
4294
+ );
4295
+ --gray-15: oklch(
4296
+ from var(--color-15) l var(--gray-chroma) var(--gray-lightness)
4297
+ );
4298
+ --gray-16: oklch(
4299
+ from var(--color-16) l var(--gray-chroma) var(--gray-lightness)
4300
+ );
4301
+ }
4302
+ }