@splendidlabz/styles 2.3.2 → 3.0.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 (147) hide show
  1. package/dist/no-tw/layouts.css +1278 -0
  2. package/dist/no-tw/styles.css +2018 -0
  3. package/dist/styles.css +1254 -1442
  4. package/package.json +23 -9
  5. package/src/addons/index.css +1 -0
  6. package/src/addons/scrollbars.css +60 -0
  7. package/src/{UI/_Accordion.scss → components/accordion.css} +8 -10
  8. package/src/components/drawer.css +20 -0
  9. package/src/components/index.css +2 -0
  10. package/src/effects/elevation.css +290 -0
  11. package/src/effects/frosted-glass.css +42 -0
  12. package/src/effects/gradients.css +107 -0
  13. package/src/effects/highlight.css +13 -0
  14. package/src/effects/index.css +6 -0
  15. package/src/effects/inner-border.css +18 -0
  16. package/src/effects/shadows.css +49 -0
  17. package/src/effects/text-outline.css +27 -0
  18. package/src/form/index.css +2 -0
  19. package/src/form/text-field.css +72 -0
  20. package/src/form/textarea.css +37 -0
  21. package/src/{Base/_Accessibility.scss → generic/accessibility.css} +21 -20
  22. package/src/generic/anchors-and-buttons.css +55 -0
  23. package/src/generic/form.css +62 -0
  24. package/src/generic/index.css +4 -0
  25. package/src/generic/typography.css +48 -0
  26. package/src/layouts/index.css +6 -0
  27. package/src/layouts/macro/flex-grid.css +33 -0
  28. package/src/layouts/macro/grid.css +127 -0
  29. package/src/layouts/macro/index.css +5 -0
  30. package/src/layouts/macro/masonry.css +23 -0
  31. package/src/layouts/macro/subgrid.css +33 -0
  32. package/src/layouts/macro/wrap.css +6 -0
  33. package/src/layouts/micro/breakout.css +38 -0
  34. package/src/layouts/micro/divider.css +102 -0
  35. package/src/layouts/micro/index.css +6 -0
  36. package/src/layouts/micro/micro.css +54 -0
  37. package/src/layouts/micro/scrollable.css +70 -0
  38. package/src/layouts/micro/stack.css +29 -0
  39. package/src/layouts/micro/stacking-context.css +3 -0
  40. package/src/layouts/position/edge.css +429 -0
  41. package/src/layouts/position/fixed.css +102 -0
  42. package/src/layouts/position/index.css +5 -0
  43. package/src/layouts/position/nudge.css +74 -0
  44. package/src/layouts/position/pos.css +337 -0
  45. package/src/layouts/position/sticky.css +11 -0
  46. package/src/layouts/shell/index.css +2 -0
  47. package/src/layouts/shell/shell-grid.css +34 -0
  48. package/src/layouts/shell/shell-simple.css +15 -0
  49. package/src/primitives/backdrop.css +8 -0
  50. package/src/{utils/_mixins.scss → primitives/break-word.css} +4 -2
  51. package/src/primitives/card.css +51 -0
  52. package/src/primitives/focus-within.css +12 -0
  53. package/src/primitives/hero-heading.css +44 -0
  54. package/src/primitives/indent-list.css +77 -0
  55. package/src/primitives/index.css +11 -0
  56. package/src/{Components/_Prose.scss → primitives/prose.css} +11 -29
  57. package/src/primitives/shapes.css +16 -0
  58. package/src/primitives/simple-svg.css +7 -0
  59. package/src/primitives/table.css +197 -0
  60. package/src/primitives/text.css +4 -0
  61. package/src/primitives/writing-mode.css +51 -0
  62. package/src/reset.css +114 -0
  63. package/src/scripts/Masonry.js +8 -0
  64. package/src/scripts/Scrollable.js +14 -0
  65. package/src/scripts/Sticky.js +34 -0
  66. package/src/scripts/all.js +7 -0
  67. package/src/scripts/index.js +4 -0
  68. package/src/styles.css +14 -0
  69. package/src/tools/border.css +9 -0
  70. package/src/tools/index.css +5 -0
  71. package/src/tools/object.css +5 -0
  72. package/src/tools/outlines.css +27 -0
  73. package/src/tools/pigment.css +205 -0
  74. package/src/tools/transitions.css +14 -0
  75. package/src/type/font-position.css +18 -0
  76. package/src/type/index.css +1 -0
  77. package/src/variables/breakpoints.css +103 -0
  78. package/src/variables/font.css +88 -0
  79. package/src/variables/index.css +4 -0
  80. package/src/variables/radius.css +54 -0
  81. package/src/variables/variables.css +34 -0
  82. package/dist/UI/Codepen.css +0 -13
  83. package/dist/UI/Codepen.css.map +0 -1
  84. package/dist/UI/Tweet.css +0 -7
  85. package/dist/UI/Tweet.css.map +0 -1
  86. package/dist/UI/Youtube.css +0 -13
  87. package/dist/UI/Youtube.css.map +0 -1
  88. package/dist/styles.css.map +0 -1
  89. package/src/Base/_Base.scss +0 -57
  90. package/src/Base/_Focus.scss +0 -38
  91. package/src/Base/_Transition.scss +0 -8
  92. package/src/Base/_index.scss +0 -4
  93. package/src/Components/_Box.scss +0 -9
  94. package/src/Components/_BrowserFrame.scss +0 -89
  95. package/src/Components/_Figure.scss +0 -5
  96. package/src/Components/_List.scss +0 -19
  97. package/src/Components/_Scrollbars.scss +0 -40
  98. package/src/Components/_SimpleSVG.scss +0 -9
  99. package/src/Components/_index.scss +0 -12
  100. package/src/Effects/_Backdrop.scss +0 -4
  101. package/src/Effects/_Elevation.scss +0 -92
  102. package/src/Effects/_Glow.scss +0 -51
  103. package/src/Effects/_Gradients.scss +0 -88
  104. package/src/Effects/_Shadows.scss +0 -51
  105. package/src/Effects/_SpecialShadows.scss +0 -45
  106. package/src/Effects/_Text-Outline.scss +0 -25
  107. package/src/Effects/_index.scss +0 -12
  108. package/src/Experimental/_SimplePricingPlan.scss +0 -141
  109. package/src/Forms/_Button.scss +0 -106
  110. package/src/Forms/_Combobox.scss +0 -49
  111. package/src/Forms/_FormBase.scss +0 -43
  112. package/src/Forms/_FormControls.scss +0 -95
  113. package/src/Forms/_Range.scss +0 -101
  114. package/src/Forms/_Select.scss +0 -114
  115. package/src/Forms/_Switch.scss +0 -66
  116. package/src/Forms/_TextField.scss +0 -116
  117. package/src/Forms/_Textarea.scss +0 -41
  118. package/src/Forms/_index.scss +0 -10
  119. package/src/Typography/_WritingMode.scss +0 -33
  120. package/src/Typography/_index.scss +0 -1
  121. package/src/UI/Codepen.scss +0 -11
  122. package/src/UI/Tweet.scss +0 -5
  123. package/src/UI/Youtube.scss +0 -13
  124. package/src/UI/_Breadcrumbs.scss +0 -24
  125. package/src/UI/_CQChecker.scss +0 -16
  126. package/src/UI/_Callout.scss +0 -31
  127. package/src/UI/_Drawer.scss +0 -28
  128. package/src/UI/_Dropdown.scss +0 -14
  129. package/src/UI/_FancyList.scss +0 -30
  130. package/src/UI/_PerspectiveHover.scss +0 -9
  131. package/src/UI/_Popover.scss +0 -25
  132. package/src/UI/_Resizer.scss +0 -43
  133. package/src/UI/_Spotlight.scss +0 -42
  134. package/src/UI/_Status.scss +0 -33
  135. package/src/UI/_Tabs.scss +0 -112
  136. package/src/UI/_Textwall.scss +0 -22
  137. package/src/UI/_index.scss +0 -17
  138. package/src/Utilities/_Shapes.scss +0 -20
  139. package/src/Utilities/_index.scss +0 -1
  140. package/src/Variables/_Globals.scss +0 -33
  141. package/src/Variables/_index.scss +0 -1
  142. package/src/_Animations.scss +0 -18
  143. package/src/_Fill.scss +0 -314
  144. package/src/styles.scss +0 -12
  145. package/src/utils/_index.scss +0 -3
  146. package/src/utils/functions/_fns.scss +0 -77
  147. package/src/utils/functions/_fonts.scss +0 -114
package/dist/styles.css CHANGED
@@ -1,35 +1,143 @@
1
- :root {
2
- --leading: 1.5;
3
- --border-width: 1px;
4
- --border-style: solid;
5
- --border-color: black;
6
- --radius: 0.5rem;
7
- --transition-duration: 250ms;
8
- --transition-delay: 0ms;
9
- --transition-easing: ease-in-out;
10
- --alt-row-color: transparent;
11
- --outline-width: 4px;
12
- --outline-style: solid;
13
- --outline-color: oklch(61.52% 0.178 257.59deg);
14
- --outline-offset: 0px;
15
- }
16
-
17
- * {
18
- --transition-values: var(--transition-duration) var(--transition-delay)
19
- var(--transition-easing);
20
- --transition-props: background, color, border, outline, opacity, gap, fill,
21
- opacity, stroke, transform;
1
+ @layer reset {
2
+ html, *, ::before, ::after {
3
+ box-sizing: border-box;
4
+ }
5
+
6
+ html, body {
7
+ height: 100%;
8
+ }
9
+
10
+ body {
11
+ min-height: 100vh;
12
+ min-height: 100svh;
13
+ }
14
+
15
+ * {
16
+ margin: 0;
17
+ padding: 0;
18
+ border-width: 0;
19
+ border-style: solid;
20
+ }
21
+
22
+ p, h1, h2, h3, h4, h5, h6 {
23
+ overflow-wrap: break-word;
24
+ }
25
+
26
+ ul {
27
+ list-style: none;
28
+ }
29
+
30
+ img, video, object, embed, svg {
31
+ display: block;
32
+ max-width: 100%;
33
+ height: auto;
34
+ }
35
+
36
+ picture {
37
+ display: flex;
38
+ justify-content: center;
39
+ }
40
+
41
+ iframe, canvas {
42
+ display: block;
43
+ max-width: 100%;
44
+ }
45
+
46
+ svg {
47
+ pointer-events: none;
48
+ flex-shrink: 0;
49
+ box-sizing: content-box;
50
+ width: var(--svg-width, auto);
51
+ height: var(--svg-height, 1em);
52
+ }
53
+
54
+ hr {
55
+ height: 1px;
56
+ background-color: var(--border-color, black);
57
+ }
58
+
59
+ [hidden] {
60
+ display: none;
61
+ opacity: 0;
62
+ visibility: hidden;
63
+ }
64
+
65
+ noscript {
66
+ display: block;
67
+ margin-top: 1em;
68
+ margin-bottom: 1em;
69
+ }
22
70
  }
23
71
 
24
- @layer components {
72
+ @theme {
73
+ --bg-color: white; --text-color: black; --leading: 1.5; --border-width: 1px; --border-style: solid; --border-color: black; --radius: .5rem; --outline-width: 3px; --outline-style: solid; --outline-color: oklch(61.52% .178 257.59deg); --outline-offset: 0px; --transition-duration: .2s; --transition-delay: 0s; --transition-easing: ease-in-out; --input-font: inherit; --header-row-border-top: 1px solid transparent; --header-row-border-bottom: 1px solid var(--border-color) ; --alt-row-color: transparent;
74
+ }
75
+
76
+ @theme {
77
+ --breakpoint-bp1: 100px; --breakpoint-bp1.5: 150px; --breakpoint-bp2: 200px; --breakpoint-bp2.5: 250px; --breakpoint-bp3: 300px; --breakpoint-bp3.5: 350px; --breakpoint-bp4: 400px; --breakpoint-bp4.5: 450px; --breakpoint-bp5: 500px; --breakpoint-bp5.5: 550px; --breakpoint-bp6: 600px; --breakpoint-bp6.5: 650px; --breakpoint-bp7: 700px; --breakpoint-bp7.5: 750px; --breakpoint-bp8: 800px; --breakpoint-bp8.5: 850px; --breakpoint-bp9: 900px; --breakpoint-bp9.5: 950px; --breakpoint-bp10: 1000px; --breakpoint-bp10.5: 1050px; --breakpoint-bp11: 1100px; --breakpoint-bp11.5: 1150px; --breakpoint-bp12: 1200px; --breakpoint-bp12.5: 1250px; --breakpoint-bp13: 1300px; --breakpoint-bp13.5: 1350px; --breakpoint-bp14: 1400px; --breakpoint-bp14.5: 1450px; --breakpoint-bp15: 1500px; --breakpoint-bp15.5: 1550px; --breakpoint-bp16: 1600px; --breakpoint-bp16.5: 1650px; --breakpoint-bp17: 1700px; --breakpoint-bp17.5: 1750px; --breakpoint-bp18: 1800px; --breakpoint-bp18.5: 1850px; --breakpoint-bp19: 1900px; --breakpoint-bp19.5: 1950px; --breakpoint-bp20: 2000px; --breakpoint-bp20.5: 2050px; --breakpoint-bp21: 2100px; --breakpoint-bp21.5: 2150px; --breakpoint-bp22: 2200px; --breakpoint-bp22.5: 2250px; --breakpoint-bp23: 2300px; --breakpoint-bp23.5: 2350px; --breakpoint-bp24: 2400px; --breakpoint-bp24.5: 2450px; --breakpoint-bp25: 2500px; --container-bp1: 100px; --container-bp1.5: 150px; --container-bp2: 200px; --container-bp2.5: 250px; --container-bp3: 300px; --container-bp3.5: 350px; --container-bp4: 400px; --container-bp4.5: 450px; --container-bp5: 500px; --container-bp5.5: 550px; --container-bp6: 600px; --container-bp6.5: 650px; --container-bp7: 700px; --container-bp7.5: 750px; --container-bp8: 800px; --container-bp8.5: 850px; --container-bp9: 900px; --container-bp9.5: 950px; --container-bp10: 1000px; --container-bp10.5: 1050px; --container-bp11: 1100px; --container-bp11.5: 1150px; --container-bp12: 1200px; --container-bp12.5: 1250px; --container-bp13: 1300px; --container-bp13.5: 1350px; --container-bp14: 1400px; --container-bp14.5: 1450px; --container-bp15: 1500px; --container-bp15.5: 1550px; --container-bp16: 1600px; --container-bp16.5: 1650px; --container-bp17: 1700px; --container-bp17.5: 1750px; --container-bp18: 1800px; --container-bp18.5: 1850px; --container-bp19: 1900px; --container-bp19.5: 1950px; --container-bp20: 2000px; --container-bp20.5: 2050px; --container-bp21: 2100px; --container-bp21.5: 2150px; --container-bp22: 2200px; --container-bp22.5: 2250px; --container-bp23: 2300px; --container-bp23.5: 2350px; --container-bp24: 2400px; --container-bp24.5: 2450px; --container-bp25: 2500px;
78
+ }
79
+
80
+ @theme {
81
+ --text-1: .625rem; --text-2: .6875rem; --text-3: .75rem; --text-4: .8125rem; --text-5: .875rem; --text-6: .9375rem; --text-7: 1rem; --text-8: 1.125rem; --text-9: 1.3125rem; --text-10: 1.5rem; --text-11: 1.75rem; --text-12: 2rem; --text-13: 2.25rem; --text-14: 2.625rem; --text-15: 3rem; --text-16: 3.375rem; --text-17: 3.75rem; --text-18: 4.5rem; --text-19: 5.25rem; --text-20: 6rem; --text-21: 6.75rem; --text-22: 7.5rem; --text-1e: .625em; --text-2e: .6875em; --text-3e: .75em; --text-4e: .8125em; --text-5e: .875em; --text-6e: .9375em; --text-7e: 1em; --text-8e: 1.125em; --text-9e: 1.3125em; --text-10e: 1.5em; --text-11e: 1.75em; --text-12e: 2em; --text-13e: 2.25em; --text-14e: 2.625em; --text-15e: 3em; --text-16e: 3.375em; --text-17e: 3.75em; --text-18e: 4.5em; --text-19e: 5.25em; --text-20e: 6em; --text-21e: 6.75em; --text-22e: 7.5em;
82
+ }
83
+
84
+ @theme {
85
+ --font-weight-100: 100; --font-weight-125: 125; --font-weight-150: 150; --font-weight-175: 175; --font-weight-200: 200; --font-weight-225: 225; --font-weight-250: 250; --font-weight-275: 275; --font-weight-300: 300; --font-weight-325: 325; --font-weight-350: 350; --font-weight-375: 375; --font-weight-400: 400; --font-weight-425: 425; --font-weight-450: 450; --font-weight-475: 475; --font-weight-500: 500; --font-weight-525: 525; --font-weight-550: 550; --font-weight-575: 575; --font-weight-600: 600; --font-weight-625: 625; --font-weight-650: 650; --font-weight-675: 675; --font-weight-700: 700; --font-weight-725: 725; --font-weight-750: 750; --font-weight-775: 775; --font-weight-800: 800; --font-weight-825: 825; --font-weight-850: 850; --font-weight-875: 875; --font-weight-900: 900;
86
+ }
87
+
88
+ @theme {
89
+ --radius-0.5: .125rem; --radius-1: .25rem; --radius-1.5: .375rem; --radius-2: .5rem; --radius-2.5: .625rem; --radius-3: .75rem; --radius-3.5: .875rem; --radius-4: 1rem; --radius-4.5: 1.125rem; --radius-5: 1.25rem; --radius-5.5: 1.375rem; --radius-6: 1.5rem; --radius-6.5: 1.625rem; --radius-7: 1.75rem; --radius-7.5: 1.875rem; --radius-8: 2rem; --radius-8.5: 2.125rem; --radius-9: 2.25rem; --radius-9.5: 2.375rem; --radius-10: 2.5rem; --radius-10.5: 2.625rem; --radius-11: 2.75rem; --radius-11.5: 2.875rem; --radius-12: 3rem; --radius-12.5: 3.125rem; --radius-13: 3.25rem; --radius-13.5: 3.375rem; --radius-14: 3.5rem; --radius-14.5: 3.625rem; --radius-15: 3.75rem; --radius-15.5: 3.875rem; --radius-16: 4rem; --radius-16.5: 4.125rem; --radius-17: 4.25rem; --radius-17.5: 4.375rem; --radius-18: 4.5rem; --radius-18.5: 4.625rem; --radius-19: 4.75rem; --radius-19.5: 4.875rem; --radius-20: 5rem; --radius-0.5r: calc(var(--radius) * .5) ; --radius-1r: var(--radius) ; --radius-1.5r: calc(var(--radius) * 1.5) ; --radius-2r: calc(var(--radius) * 2) ; --radius-2.5r: calc(var(--radius) * 2.5) ; --radius-3r: calc(var(--radius) * 3) ; --radius-3.5r: calc(var(--radius) * 3.5) ; --radius-4r: calc(var(--radius) * 4) ; --radius-4.5r: calc(var(--radius) * 4.5) ; --radius-5r: calc(var(--radius) * 5) ;
90
+ }
91
+
92
+ @utility pigment-scaffold {
93
+ & { border-color: var(--border-color) ; color: var(--text-color, currentcolor) ; background-color: var(--bg-color) ; transition: var(--transition-values) ; transition-property: var(--transition-props) ; :where(svg path) { fill: var(--fill-color, var(--text-color)) ; stroke: var(--stroke-color, var(--text-color)) ; transition: var(--transition-values) ; transition-property: var(--transition-props) ; } }
94
+ }
95
+
96
+ @utility pigment-hover-scaffold {
97
+ border-color: var(--border-hover-color, var(--border-color)) ; color: var(--text-hover-color, var(--text-color)) ; background-color: var(--bg-hover-color, var(--bg-color)) ; :where(svg path) { fill: var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color)))) ; stroke: var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color)))) ; }
98
+ }
99
+
100
+ @utility pigment-focus-scaffold {
101
+ & :focus { border-color: var(--border-focus-color, var(--border-hover-color, var(--border-color))) ; color: var(--text-focus-color, var(--text-hover-color, var(--text-color))) ; background-color: var(--bg-focus-color, var(--bg-hover-color, var(--bg-color))) ; :where(svg path) { fill: var(--fill-focus-color, var(--text-focus-color, var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color)))))) ; stroke: var(--stroke-focus-color, var(--text-focus-color, var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color)))))) ; } }
102
+ }
103
+
104
+ @utility pigment-active-scaffold {
105
+ & :active { border-color: var(--border-active-color, var(--border-hover-color, var(--border-color))) ; color: var(--text-active-color, var(--text-hover-color, var(--text-color))) ; background-color: var(--bg-active-color, var(--bg-hover-color, var(--bg-color))) ; :where(svg path) { fill: var(--fill-active-color, var(--text-active-color, var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color)))))) ; stroke: var(--stroke-active-color, var(--text-active-color, var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color)))))) ; } }
106
+ }
107
+
108
+ @utility pigment-selected-scaffold {
109
+ & . selected, & . checked, & [aria-current], & [aria-selected], & [aria-expanded= "true"] { border-color: var(--border-selected-color, var(--border-hover-color, var(--border-color))) ; color: var(--text-selected-color, var(--text-hover-color, var(--text-color))) ; background-color: var(--bg-selected-color, var(--bg-hover-color, var(--bg-color))) ; :where(svg path) { fill: var(--fill-selected-color, var(--text-selected-color, var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color)))))) ; stroke: var(--stroke-selected-color, var(--text-selected-color, var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color)))))) ; } }
110
+ }
111
+
112
+ @utility pigment {
113
+ @apply pigment-scaffold;& :hover { @apply pigment-hover-scaffold; }
114
+
115
+ @apply pigment-focus-scaffold; @apply pigment-active-scaffold; @apply pigment-selected-scaffold;
116
+ }
117
+
118
+ @utility pigment-outline {
119
+ --bg-color: transparent;
120
+ }
121
+
122
+ @utility pigment-ghost {
123
+ --bg-color: transparent; --border-color: transparent;
124
+ }
125
+
126
+ @layer base {
127
+ * {
128
+ outline: var(--outline-width) var(--outline-style) transparent;
129
+ outline-offset: var(--outline-offset);
130
+ }
131
+
25
132
  @media (prefers-reduced-motion: reduce) {
26
133
  * {
27
- animation-duration: 0.01ms !important;
28
- animation-iteration-count: 1 !important;
29
- transition-duration: 0.01ms !important;
30
134
  scroll-behavior: auto !important;
135
+ transition-duration: .01ms !important;
136
+ animation-duration: .01ms !important;
137
+ animation-iteration-count: 1 !important;
31
138
  }
32
139
  }
140
+
33
141
  .sr-only {
34
142
  overflow: hidden;
35
143
  position: absolute;
@@ -41,1531 +149,1235 @@
41
149
  clip: rect(0 0 0 0);
42
150
  white-space: nowrap;
43
151
  }
44
- }
45
- @layer components {
152
+
153
+ * {
154
+ --transition-values: var(--transition-duration) var(--transition-delay) var(--transition-easing);
155
+ --transition-props: background, color, border, outline, opacity, gap, fill, opacity, stroke, transform;
156
+ }
157
+
46
158
  html {
47
- font-family: system-ui, sans-serif;
159
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
48
160
  line-height: var(--leading, 1.5);
49
161
  font-variant-ligatures: common-ligatures;
50
162
  }
163
+
51
164
  body {
52
165
  color: var(--text-color);
53
166
  background-color: var(--bg-color);
54
167
  text-rendering: optimizelegibility;
55
168
  }
56
- h1,
57
- h2,
58
- h3,
59
- h4,
60
- h5,
61
- h6 {
169
+
170
+ h1, h2, h3, h4, h5, h6 {
62
171
  font-variant-numeric: oldstyle-nums proportional-nums;
63
172
  }
64
- fieldset {
65
- border: none;
66
- }
67
- a {
68
- color: var(--text-color, currentcolor);
69
- text-decoration: none;
70
- }
71
- a:visited {
72
- color: var(--text-visited-color, var(--text-color, currentcolor));
73
- }
74
- a:hover {
75
- color: var(--text-hover-color);
76
- }
77
- a:focus {
78
- color: var(--text-focus-color, var(--text-hover-color));
79
- }
80
- a:active {
81
- color: var(--text-active-color, var(--text-hover-color));
82
- }
83
- }
84
- @layer components {
85
- * {
86
- outline: var(--outline-width) var(--outline-style) transparent;
87
- outline-offset: var(--outline-offset);
173
+
174
+ pre {
175
+ padding: 1em;
176
+ border-radius: var(--radius);
88
177
  }
89
- a:focus-visible,
90
- button:focus-visible,
91
- :where([tabindex]:not([tabindex="-1"])):focus-visible {
92
- outline-color: var(--outline-color);
178
+
179
+ code {
180
+ font-size: .8em;
93
181
  }
94
- .Focus-within:focus-within {
95
- outline: var(--outline-width) var(--outline-style) transparent;
96
- outline-offset: var(--outline-offset);
182
+
183
+ :not(pre) > :is(code) {
184
+ display: inline;
185
+ padding: .2em .25em;
186
+ border-radius: var(--radius);
97
187
  }
98
- .Focus-within *:focus-visible {
99
- outline-color: transparent;
188
+
189
+ pre > :is(code) {
190
+ background-color: rgb(0 0 0 / 0%);
100
191
  }
101
- .Preserve-outlines {
102
- box-sizing: content-box;
103
- margin: calc(var(--outline-width) * -1);
104
- padding: calc(var(--outline-width));
192
+
193
+ fieldset {
194
+ border: none;
105
195
  }
106
- }
107
- @layer components {
108
- .Fill,
109
- [class*=Fill] {
110
- border-color: var(--border-color);
111
- color: var(--text-color);
196
+
197
+ textarea, select, .field {
198
+ display: block;
199
+ width: 100%;
200
+ border-radius: inherit;
201
+ font: inherit;
202
+ font-family: var(--input-font);
203
+ color: var(--text-color, currentcolor);
112
204
  background-color: var(--bg-color);
113
- transition: var(--transition-values);
114
- transition-property: var(--transition-props);
115
205
  }
116
- .Fill :where(svg path),
117
- [class*=Fill] :where(svg path) {
118
- fill: var(--fill-color, var(--text-color));
119
- stroke: var(--stroke-color, var(--text-color));
120
- transition: var(--transition-values);
121
- transition-property: var(--transition-props);
122
- }
123
- .Fill:hover,
124
- [class*=Fill]:hover {
125
- --shadow-color: var(--shadow-hover-color, var(--shadow-color));
126
- --text-shadow-color: var(
127
- --text-shadow-hover-color,
128
- var(--text-shadow-color)
129
- );
130
- --drop-shadow-color: var(
131
- --drop-shadow-hover-color,
132
- var(--drop-shadow-color)
133
- );
134
- border-color: var(--border-hover-color, var(--border-color));
135
- color: var(--text-hover-color, var(--text-color));
136
- background-color: var(--bg-hover-color, var(--bg-color));
137
- }
138
- .Fill:hover :where(svg path),
139
- [class*=Fill]:hover :where(svg path) {
140
- fill: var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color))));
141
- stroke: var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color))));
142
- }
143
- .Fill:focus,
144
- [class*=Fill]:focus {
145
- --shadow-color: var(
146
- --shadow-focus-color,
147
- var(--shadow-hover-color, var(--shadow-color))
148
- );
149
- --text-shadow-color: var(
150
- --text-shadow-focus-color,
151
- var(--text-shadow-hover-color, var(--text-shadow-color))
152
- );
153
- --drop-shadow-color: var(
154
- --drop-shadow-focus-color,
155
- var(--drop-shadow-hover-color, var(--drop-shadow-color))
156
- );
157
- border-color: var(--border-focus-color, var(--border-hover-color, var(--border-color)));
158
- color: var(--text-focus-color, var(--text-hover-color, var(--text-color)));
159
- background-color: var(--bg-focus-color, var(--bg-hover-color, var(--bg-color)));
160
- }
161
- .Fill:focus :where(svg path),
162
- [class*=Fill]:focus :where(svg path) {
163
- fill: var(--fill-focus-color, var(--text-focus-color, var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color))))));
164
- stroke: var(--stroke-focus-color, var(--text-focus-color, var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color))))));
165
- }
166
- .Fill:active,
167
- [class*=Fill]:active {
168
- --shadow-color: var(
169
- --shadow-active-color,
170
- var(--shadow-hover-color, var(--shadow-color))
171
- );
172
- --text-shadow-color: var(
173
- --text-shadow-active-color,
174
- var(--text-shadow-hover-color, var(--text-shadow-color))
175
- );
176
- --drop-shadow-color: var(
177
- --drop-shadow-active-color,
178
- var(--drop-shadow-hover-color, var(--drop-shadow-color))
179
- );
180
- border-color: var(--border-active-color, var(--border-hover-color, var(--border-color)));
181
- color: var(--text-active-color, var(--text-hover-color, var(--text-color)));
182
- background-color: var(--bg-active-color, var(--bg-hover-color, var(--bg-color)));
183
- }
184
- .Fill:active :where(svg path),
185
- [class*=Fill]:active :where(svg path) {
186
- fill: var(--fill-active-color, var(--text-active-color, var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color))))));
187
- stroke: var(--stroke-active-color, var(--text-active-color, var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color))))));
188
- }
189
- .Fill.selected, .Fill.checked, .Fill[aria-current], .Fill[aria-selected], .Fill[aria-expanded=true],
190
- [class*=Fill].selected,
191
- [class*=Fill].checked,
192
- [class*=Fill][aria-current],
193
- [class*=Fill][aria-selected],
194
- [class*=Fill][aria-expanded=true] {
195
- --shadow-color: var(
196
- --shadow-selected-color,
197
- var(--shadow-hover-color, var(--shadow-color))
198
- );
199
- --text-shadow-color: var(
200
- --text-shadow-selected-color,
201
- var(--text-shadow-hover-color, var(--text-shadow-color))
202
- );
203
- --drop-shadow-color: var(
204
- --drop-shadow-selected-color,
205
- var(--drop-shadow-hover-color, var(--drop-shadow-color))
206
- );
207
- border-color: var(--border-selected-color, var(--border-hover-color, var(--border-color)));
208
- color: var(--text-selected-color, var(--text-hover-color, var(--text-color)));
209
- background-color: var(--bg-selected-color, var(--bg-hover-color, var(--bg-color)));
210
- }
211
- .Fill.selected :where(svg path), .Fill.checked :where(svg path), .Fill[aria-current] :where(svg path), .Fill[aria-selected] :where(svg path), .Fill[aria-expanded=true] :where(svg path),
212
- [class*=Fill].selected :where(svg path),
213
- [class*=Fill].checked :where(svg path),
214
- [class*=Fill][aria-current] :where(svg path),
215
- [class*=Fill][aria-selected] :where(svg path),
216
- [class*=Fill][aria-expanded=true] :where(svg path) {
217
- fill: var(--fill-selected-color, var(--text-selected-color, var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color))))));
218
- stroke: var(--stroke-selected-color, var(--text-selected-color, var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color))))));
219
- }
220
- .Fill .disabled,
221
- .Fill [disabled],
222
- [class*=Fill] .disabled,
223
- [class*=Fill] [disabled] {
224
- --shadow-color: var(--shadow-hover-color, var(--shadow-color));
225
- --text-shadow-color: var(
226
- --text-shadow-hover-color,
227
- var(--text-shadow-color)
228
- );
229
- --drop-shadow-color: var(
230
- --drop-shadow-hover-color,
231
- var(--drop-shadow-color)
232
- );
233
- border-color: var(--border-hover-color, var(--border-color));
234
- color: var(--text-hover-color, var(--text-color));
235
- background-color: var(--bg-hover-color, var(--bg-color));
236
- }
237
- .Fill .disabled :where(svg path),
238
- .Fill [disabled] :where(svg path),
239
- [class*=Fill] .disabled :where(svg path),
240
- [class*=Fill] [disabled] :where(svg path) {
241
- fill: var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color))));
242
- stroke: var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color))));
243
- }
244
- :where([class*=Fill][class*=-outline]) {
245
- --bg-color: transparent;
246
- }
247
- :where([class*=Fill][class*=-ghost]) {
248
- --bg-color: transparent;
249
- --border-color: transparent;
250
- }
251
- :where([class*=Fill][class*=-text]) {
252
- --bg-color: transparent;
253
- --bg-hover-color: transparent;
254
- --bg-active-color: transparent;
255
- --border-color: transparent;
256
- --border-hover-color: transparent;
257
- --border-active-color: transparent;
258
- }
259
- [class*=Fill][class*=not-interactive],
260
- [class*=Fill][class*=notInteractive] {
261
- --bg-hover-color: inherit;
262
- --bg-active-color: inherit;
263
- --bg-selected-color: inherit;
264
- --border-hover-color: inherit;
265
- --border-active-color: inherit;
266
- --border-selected-color: inherit;
267
- --text-hover-color: inherit;
268
- --text-active-color: inherit;
269
- --text-selected-color: inherit;
270
- --fill-hover-color: inherit;
271
- --fill-active-color: inherit;
272
- --fill-selected-color: inherit;
273
- --stroke-hover-color: inherit;
274
- --stroke-active-color: inherit;
275
- --stroke-selected-color: inherit;
276
- }
277
- }
278
- @layer components {
279
- input:where([type=text],
280
- [type=search],
281
- [type=email],
282
- [type=password],
283
- [type=tel],
284
- [type=url]),
285
- textarea,
286
- select,
287
- .Field {
206
+
207
+ input:where([type="text"], [type="search"], [type="email"], [type="password"], [type="tel"], [type="url"]) {
288
208
  display: block;
289
209
  width: 100%;
290
210
  border-radius: inherit;
291
211
  font: inherit;
292
- font-family: var(--input-font, inherit);
293
- color: var(--text-color, currentColor);
294
- background-color: var(--bg-color, transparent);
212
+ font-family: var(--input-font);
213
+ color: var(--text-color, currentcolor);
214
+ background-color: var(--bg-color);
295
215
  }
296
- input[type=password] {
216
+
217
+ input[type="password"] {
297
218
  font-family: Verdana, sans-serif;
298
- letter-spacing: 0.125em;
219
+ letter-spacing: .125em;
299
220
  }
300
- .disabled,
301
- .readonly,
302
- [disabled],
303
- [readonly] {
304
- opacity: 0.5;
221
+
222
+ .disabled, .readonly, [disabled], [readonly] {
223
+ opacity: .5;
305
224
  }
306
- .disabled:where(input),
307
- .readonly:where(input),
308
- [disabled]:where(input),
309
- [readonly]:where(input) {
225
+
226
+ :is(.disabled, .readonly, [disabled], [readonly]):where(input) {
310
227
  cursor: not-allowed;
311
228
  }
312
- .disabled:focus-visible,
313
- .readonly:focus-visible,
314
- [disabled]:focus-visible,
315
- [readonly]:focus-visible {
316
- outline-color: transparent;
317
- }
318
- }
319
- @layer components {
320
- button,
321
- [class*=Button] {
322
- flex-shrink: 0;
323
- justify-content: center;
324
- padding: 0.25em 1em;
325
- border-width: var(--border-width, 1px);
326
- border-color: var(--border-color);
327
- border-radius: var(--radius);
328
- font: var(--input-font, inherit);
329
- color: var(--text-color, currentColor);
330
- background-color: var(--bg-color, #eee);
331
- text-decoration: none !important;
332
- transition: var(--transition-values);
333
- transition-property: var(--transition-props);
334
- cursor: pointer;
335
- }
336
- button *,
337
- [class*=Button] * {
338
- pointer-events: none;
339
- }
340
- button svg path,
341
- [class*=Button] svg path {
342
- transition: var(--transition-values);
343
- transition-property: var(--transition-props);
344
- }
345
- button:hover,
346
- [class*=Button]:hover {
347
- border-color: var(--border-hover-color, var(--border-color));
348
- color: var(--text-hover-color, var(--text-color));
349
- background-color: var(--bg-hover-color, var(--bg-color));
350
- }
351
- button:focus,
352
- [class*=Button]:focus {
353
- border-color: var(--border-focus-color, var(--border-hover-color, var(--border-color)));
354
- color: var(--text-focus-color, var(--text-hover-color, var(--text-color)));
355
- background-color: var(--bg-focus-color, var(--bg-hover-color, var(--bg-color)));
356
- }
357
- button:active,
358
- [class*=Button]:active {
359
- border-color: var(--border-active-color, var(--border-hover-color, var(--border-color)));
360
- color: var(--text-active-color, var(--text-hover-color, var(--text-color)));
361
- background-color: var(--bg-active-color, var(--bg-hover-color, var(--bg-color)));
362
- }
363
- button.selected, button[aria-selected], button[aria-expanded=true],
364
- [class*=Button].selected,
365
- [class*=Button][aria-selected],
366
- [class*=Button][aria-expanded=true] {
367
- border-color: var(--border-selected-color, var(--border-hover-color, var(--border-color)));
368
- color: var(--text-selected-color, var(--text-hover-color, var(--text-color)));
369
- background-color: var(--bg-selected-color, var(--bg-hover-color, var(--bg-color)));
229
+
230
+ :is(.disabled, .readonly, [disabled], [readonly]):focus {
231
+ outline-color: rgb(0 0 0 / 0%);
370
232
  }
371
- [class*=Button] {
372
- display: inline-flex;
373
- align-items: center;
374
- gap: 0.5em;
233
+
234
+ :is(.disabled, .readonly, [disabled], [readonly]):focus-visible {
235
+ outline-color: rgb(0 0 0 / 0%);
375
236
  }
376
237
  }
377
- @layer components {
378
- .Button-icon {
379
- padding: var(--padding, 0.5em);
380
- line-height: 1;
381
- }
238
+
239
+ @utility outline-visible {
240
+ outline-color: var(--outline-color) ;
382
241
  }
383
- @layer components {
384
- :where(.TextField) {
385
- --padding: 0.5rem 0.75rem;
386
- }
387
- :where(.TextField) > * {
388
- display: block;
389
- }
390
- :where(.TextField) :where(.Label) {
391
- color: var(--text-color, inherit);
392
- }
393
- :where(.TextField) :where(.Hint) {
394
- opacity: 0.5;
395
- }
396
- :where(.TextField) :where(.Error) {
397
- color: red;
398
- }
399
- * + .InputGroup {
400
- margin-top: 0.25rem;
401
- }
402
- .InputGroup {
403
- border-width: var(--border-width);
404
- border-color: var(--border-color);
405
- border-radius: var(--radius);
406
- }
407
- .InputGroup > *,
408
- .InputGroup > :where(astro-slot, astro-content, astro-island) > * {
409
- padding: var(--padding);
410
- }
411
- .InputGroup > :where(.Field) {
412
- border-radius: inherit;
413
- }
414
- .InputGroup:not(.Stack) {
415
- display: flex;
416
- }
417
- .InputGroup:not(.Stack) > *:has(~ :where(.Field)),
418
- .InputGroup:not(.Stack) > *:has(~ :where(.Field)):where(astro-slot, astro-content, astro-island) > * {
419
- flex-shrink: 0;
420
- display: flex;
421
- align-items: center;
422
- border-width: 0;
423
- border-radius: 0;
424
- border-start-start-radius: calc(var(--radius) - var(--border-width));
425
- border-end-start-radius: calc(var(--radius) - var(--border-width));
426
- }
427
- .InputGroup:not(.Stack) > *:has(~ :where(.Field)) + :where(.Field),
428
- .InputGroup:not(.Stack) > *:has(~ :where(.Field)):where(astro-slot, astro-content, astro-island) > * + :where(.Field) {
429
- border-start-start-radius: 0;
430
- border-end-start-radius: 0;
431
- }
432
- .InputGroup:not(.Stack) > :where(.Field) ~ *,
433
- .InputGroup:not(.Stack) > :where(.Field) ~ *:where(astro-slot, astro-content, astro-island) > * {
434
- flex-shrink: 0;
435
- display: flex;
436
- align-items: center;
437
- border-width: 0;
438
- border-radius: 0;
439
- border-start-end-radius: calc(var(--radius) - var(--border-width));
440
- border-end-end-radius: calc(var(--radius) - var(--border-width));
441
- }
442
- .InputGroup:not(.Stack) > :where(.Field:has(~ *)) {
443
- border-start-end-radius: 0;
444
- border-end-end-radius: 0;
445
- }
446
- .InputGroup:not(.Stack) > * {
447
- position: relative;
448
- }
449
- .InputGroup:not(.Stack) > *:focus, .InputGroup:not(.Stack) > *:focus-visible {
450
- z-index: 2;
451
- }
452
- .InputGroup.Stack *:has(~ :where(.Field)),
453
- .InputGroup.Stack *:has(~ :where(.Field)):where(astro-slot, astro-content, astro-island) > * {
454
- z-index: 2;
455
- display: flex;
456
- place-self: center start;
457
- }
458
- .InputGroup.Stack :where(.Field) ~ *,
459
- .InputGroup.Stack :where(.Field) ~ *:where(astro-slot, astro-content, astro-island) > * {
460
- display: flex;
461
- place-self: center end;
242
+
243
+ @utility preserve-outlines {
244
+ & { box-sizing: content-box; margin: calc(var(--outline-width) * -1) ; padding: calc(var(--outline-width)) ; }
245
+ }
246
+
247
+ @layer utilities {
248
+ @apply pigment;
249
+
250
+ a:visited {
251
+ border-color: var(--border-visited-color, var(--border-color));
252
+ color: var(--text-visited-color, var(--text-color));
253
+ background-color: var(--bg-visited-color, var(--bg-color));
462
254
  }
255
+
256
+ @apply outline-visible;
257
+ @apply outline-visible;
463
258
  }
464
- textarea {
465
- min-height: 9em;
466
- resize: vertical;
259
+
260
+ @utility button {
261
+ & { flex-shrink: 0; display: inline-flex; justify-content: center; align-items: center; gap: .5em; padding: .25em 1em; border-width: var(--border-width, 1px) ; border-color: var(--border-color) ; border-radius: var(--radius) ; font: var(--input-font, inherit) ; color: var(--text-color, currentColor) ; background-color: var(--bg-color, #eee) ; text-decoration: none! important; transition: var(--transition-values) ; transition-property: var(--transition-props) ; cursor: pointer; * { pointer-events: none; } svg path { transition: var(--transition-values) ; transition-property: var(--transition-props) ; } }
467
262
  }
468
263
 
469
- @layer components {
470
- .Textarea .Stack.Field {
471
- display: grid;
472
- padding: 0;
473
- }
474
- .Textarea .Field {
475
- padding: var(--padding);
476
- }
477
- .Textarea textarea {
478
- border-radius: inherit;
479
- }
480
- .Textarea .Replica {
481
- white-space: pre-wrap;
482
- visibility: hidden;
483
- }
484
- .Textarea .Replica::after {
485
- content: attr(data-replicated-value);
486
- }
487
- .Textarea-autogrow textarea {
488
- resize: none;
489
- overflow: hidden;
490
- }
264
+ @utility button-icon {
265
+ & { padding: var(--padding, .5em) ; line-height: 1; }
491
266
  }
267
+
492
268
  @layer components {
493
- .Legend + * {
494
- margin-top: 0.25rem;
495
- }
496
- .Radio,
497
- .Checkbox {
498
- display: flex;
499
- align-items: center;
500
- gap: var(--gap, 0.5em);
501
- }
502
- :where(.Radio,
503
- .Checkbox) + :where(.Radio,
504
- .Checkbox) {
505
- margin-top: 0.125em;
506
- }
507
- .Radio > :where(.Checkmark, .Radiomark),
508
- .Checkbox > :where(.Checkmark, .Radiomark) {
509
- display: grid;
510
- place-items: center;
511
- }
512
- .Radio > :where(.Checkmark, .Radiomark) > *,
513
- .Checkbox > :where(.Checkmark, .Radiomark) > * {
514
- grid-column: 1;
515
- grid-row: 1;
269
+ .backdrop--blur {
270
+ backdrop-filter: blur(var(--blur, 8px));
271
+ transition-property: -webkit-backdrop-filter, backdrop-filter;
516
272
  }
517
- .Radio > :where(.Checkmark, .Radiomark) > input,
518
- .Checkbox > :where(.Checkmark, .Radiomark) > input {
519
- appearance: none;
520
- display: grid;
521
- place-content: center;
522
- width: var(--width, var(--size, 1em));
523
- height: var(--height, var(--size, 1em));
524
- margin: 0;
525
- padding: 0;
526
- border: var(--border-width, 1px) var(--border-style, solid) var(--border-color, black);
527
- font: inherit;
528
- background-color: var(--bg-color, transparent);
529
- }
530
- .Radio > :where(.Checkmark, .Radiomark) svg,
531
- .Checkbox > :where(.Checkmark, .Radiomark) svg {
532
- pointer-events: none;
533
- width: 0.85em;
534
- height: 0.85em;
535
- fill: var(--fill-color, none);
536
- transform: scale(0);
537
- transition: transform var(--transition-values);
538
- }
539
- .Radio > :where(.Checkmark, .Radiomark) svg path,
540
- .Checkbox > :where(.Checkmark, .Radiomark) svg path {
541
- stroke: var(--stroke-color, pink);
542
- }
543
- .Radio :where(.Checkmark, .Radiomark) ~ .TextInput,
544
- .Checkbox :where(.Checkmark, .Radiomark) ~ .TextInput {
545
- display: none;
546
- }
547
- .Radio :where(.Checkmark:has(:checked), .Radiomark:has(:checked)) ~ .TextInput,
548
- .Checkbox :where(.Checkmark:has(:checked), .Radiomark:has(:checked)) ~ .TextInput {
549
- display: block;
550
- }
551
- .Radio :where(input[type=checkbox]),
552
- .Checkbox :where(input[type=checkbox]) {
553
- border-radius: var(--checkbox-radius, 0.25em);
554
- }
555
- .Radio :where(input:checked) ~ svg,
556
- .Checkbox :where(input:checked) ~ svg {
557
- transform: scale(1);
558
- }
559
- .Radio :where(input[type=radio]),
560
- .Checkbox :where(input[type=radio]) {
561
- border-radius: 50%;
562
- }
563
- .Radio :where(.radio),
564
- .Checkbox :where(.radio) {
565
- pointer-events: none;
566
- width: 0.5em;
567
- height: 0.5em;
568
- border-radius: 50%;
569
- background-color: var(--stroke-color, pink);
570
- transform: scale(0);
571
- transition: transform var(--transition-values);
572
- }
573
- .Radio :where(input[type=radio]:checked ~ .radio),
574
- .Checkbox :where(input[type=radio]:checked ~ .radio) {
575
- transform: scale(1);
273
+
274
+ .backdrop:where([data-state="blur"]) {
275
+ backdrop-filter: blur(var(--blur, 8px));
276
+ transition-property: -webkit-backdrop-filter, backdrop-filter;
576
277
  }
577
278
  }
578
- @layer components {
579
- .Select :where(select) {
580
- appearance: none;
581
- color: var(--text-color);
582
- background: var(--bg-color);
583
- }
584
- .Select :where(select):hover {
585
- border-color: var(--border-hover-color, var(--border-color));
586
- color: var(--text-hover-color, var(--text-color));
587
- background-color: var(--bg-hover-color, var(--bg-color));
588
- }
589
- .Select :where(select):hover :where(svg path) {
590
- fill: var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color))));
591
- stroke: var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color))));
592
- }
593
- .Select :where(select):focus {
594
- border-color: var(--border-focus-color, var(--border-hover-color, var(--border-color)));
595
- color: var(--text-focus-color, var(--text-hover-color, var(--text-color)));
596
- background-color: var(--bg-focus-color, var(--bg-hover-color, var(--bg-color)));
597
- }
598
- .Select :where(select):focus :where(svg path) {
599
- fill: var(--fill-focus-color, var(--text-focus-color, var(--fill-hover-color, var(--text-hover-color, var(--fill-color, var(--text-color))))));
600
- stroke: var(--stroke-focus-color, var(--text-focus-color, var(--stroke-hover-color, var(--text-hover-color, var(--stroke-color, var(--text-color))))));
601
- }
602
- .Select :where(select[multiple]),
603
- .Select :where(select[multiple]:focus) {
604
- overflow: auto;
605
- padding: 0;
606
- }
607
- .Select :where(select[multiple]) :where(option),
608
- .Select :where(select[multiple]:focus) :where(option) {
609
- padding: 0.375em 0.75em;
610
- color: var(--text-color);
611
- background-image: linear-gradient(0deg, var(--bg-color) 0%, var(--bg-color) 100%);
612
- }
613
- .Select :where(select[multiple]) :where(option:hover),
614
- .Select :where(select[multiple]:focus) :where(option:hover) {
615
- color: var(--text-hover-color, var(--text-color));
616
- background-image: linear-gradient(0deg, var(--bg-hover-color, var(--bg-color)) 0%, var(--bg-hover-color, var(--bg-color)) 100%);
617
- }
618
- .Select :where(select[multiple]) :where(option:focus),
619
- .Select :where(select[multiple]:focus) :where(option:focus) {
620
- color: var(--text-focus-color, var(--text-hover-color, var(--text-color)));
621
- background-image: linear-gradient(0deg, var(--bg-focus-color, var(--bg-hover-color, var(--bg-color))) 0%, var(--bg-focus-color, var(--bg-hover-color, var(--bg-color))) 100%);
622
- }
623
- .Select :where(select[multiple]) :where(option:checked),
624
- .Select :where(select[multiple]:focus) :where(option:checked) {
625
- color: var(--text-selected-color);
626
- background-image: linear-gradient(0deg, var(--bg-selected-color, ) 0%, var(--bg-selected-color, ) 100%);
627
- }
279
+
280
+ @utility break-word {
281
+ hyphens: auto; overflow-wrap: break-word; word-break: break-word; word-wrap: break-word;
628
282
  }
629
- .ListboxPopover {
630
- padding: 0;
631
- border: 0;
283
+
284
+ @utility card {
285
+ & { padding: var(--padding, 1rem) ; border: var(--border-width) var(--border-style) var(--border-color) ; border-radius: var(--radius) ; }
632
286
  }
633
287
 
634
- [role=listbox] {
635
- max-height: 15rem;
636
- overflow-y: auto;
288
+ @utility card-split {
289
+ & { @apply card;> * , :where(astro-slot, astro-island, astro-content) > * { margin: var(--nudge, 0) ; padding: var(--padding, 1rem) ; } & . card-split { overflow: hidden; gap: 0; padding: 0;> * , :where(astro-slot, astro-island, astro-content) > * { border-radius: calc(var(--radius) - var(--nudge)) ; } } & :where(. divider-between-x, . divider-between-horizontal) > :where(. card-split) { border-width: 0; border-top-width: var(--border-width) ; } & :where(. divider-between-y, . divider-between-vertical) > :where(. card-split) { border-width: 0; border-left-width: var(--border-width) ; } }
637
290
  }
638
- [role=listbox] [role=option] {
639
- cursor: pointer;
291
+
292
+ @utility box {
293
+ @apply card;
640
294
  }
641
- [role=listbox] [role=option] > * {
642
- pointer-events: none;
295
+
296
+ @utility has-focus-within {
297
+ & :focus-within { outline: var(--outline-width) var(--outline-style) transparent; outline-offset: var(--outline-offset) ; } * :focus, * :focus-visible { outline-color: transparent; }
643
298
  }
644
- [role=listbox] [aria-selected=true] {
645
- background: var(--bg-selected-color, pink);
299
+
300
+ @utility hero-heading {
301
+ display: flex; flex-direction: column; gap: var(--gap, .25em) ; max-width: 100%;> :where(. hero-eyebrow) { font-size: var(--eyebrow-size, .6em) ; } > * , > * :where(. contents) > * , > * :where(astro-island, astro-slot) > * { max-width: 100%; }
646
302
  }
647
303
 
648
- .AutocompleteOptions .ComboboxMatchedString {
649
- font-weight: bold;
304
+ @utility hero-heading-start {
305
+ & { @apply hero-heading; text-align: start; }
650
306
  }
651
307
 
652
- .AutocompleteLoader,
653
- .AutocompleteEmpty {
654
- transition: var(--transition);
655
- transition-property: var(--transition-props), display;
656
- transition-behavior: allow-discrete;
308
+ @utility hero-heading-center {
309
+ & { @apply hero-heading; align-self: center; margin-inline: auto; text-align: center; }
657
310
  }
658
- @starting-style {
659
- .AutocompleteLoader,
660
- .AutocompleteEmpty {
661
- opacity: 0;
662
- }
311
+
312
+ @utility hero-heading-end {
313
+ & { @apply hero-heading; align-self: end; margin-inline-start: auto; text-align: end; }
663
314
  }
664
- .AutocompleteLoader:empty,
665
- .AutocompleteEmpty:empty {
666
- display: none;
667
- opacity: 0;
315
+
316
+ @utility indent-list-scaffold {
317
+ --indent-list-depth: 0; li li { margin-inline-start: var(--indent, 1em) ; } li { --depth: 1; a { --depth: 1; } li, li a { --depth: 2; } li li, li li a { --depth: 3; } li li li, li li li a { --depth: 4; } li li li li, li li li li a { --depth: 5; } } :where(ul, ol, li) { padding-inline-start: 0; } a { display: block; padding-block: .125em; }
668
318
  }
669
319
 
670
- .TimepickerOptions .Listbox li {
671
- padding: 0.5rem 1rem;
320
+ @utility indent-list {
321
+ @apply indent-list-scaffold; li { list-style-type: disc; }
672
322
  }
673
323
 
674
- @layer components {
675
- .Switch {
676
- --width: 3.5em;
677
- --height: 1.2em;
678
- --inner-margin: 0.2em;
679
- display: inline-flex;
680
- }
681
- .Switch input[type=checkbox] {
682
- appearance: none;
683
- display: grid;
684
- align-items: center;
685
- width: var(--width);
686
- padding: 0;
687
- border-width: var(--border-width, 1px);
688
- border-style: var(--border-style, solid);
689
- border-color: var(--border-color, black);
690
- border-radius: var(--height);
691
- background-color: var(--bg-color, #eee);
692
- transition: background-color var(--transition-values);
693
- }
694
- .Switch input[type=checkbox]:checked {
695
- background-color: var(--bg-color, teal);
696
- }
697
- .Switch input[type=checkbox]::before {
698
- --translateX: calc(
699
- var(--width) - var(--height) - var(--inner-margin) * 2 - var(
700
- --border-width,
701
- 1px
702
- ) * 2
703
- );
704
- content: "";
705
- box-sizing: content-box;
706
- width: var(--height);
707
- height: var(--height);
708
- margin: var(--inner-margin);
709
- border-radius: 50%;
710
- background-color: white;
711
- box-shadow: var(--shadow);
712
- transition: transform var(--transition-values);
713
- }
714
- .Switch input[type=checkbox]:checked::before {
715
- transform: translateX(var(--translateX));
716
- }
324
+ @utility indent-list-guides {
325
+ & { @apply indent-list-scaffold; li li { position: relative; margin-inline-start: 0; padding-inline-start: var(--indent, 1em) ; a { position: relative; margin-left: calc(var(--indent, 1em) * -1) ; padding-left: var(--indent, 1em) ; } & ::before, a::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 1px; background-color: var(--border-color) ; } a:hover::before { background-color: var(--border-hover-color) ; } } }
717
326
  }
718
- @layer components {
719
- .Box {
720
- padding: 1rem;
721
- border: var(--border-width, 1px) var(--border-style, solid) var(--border-color, black);
722
- border-radius: var(--radius, 0.5em);
723
- }
327
+
328
+ @utility prose {
329
+ & { display: flex; flex-flow: column; gap: 1em; max-width: 100%; * + :where(h2, h3), * + :where(astro-island, astro-slot) > :where(:where(h2, h3) :first-child) { margin-top: 2em; scroll-margin-top: 2em; } * + :where(h4, h5, h6), * + :where(astro-island, astro-slot) > :where(:where(h4, h5, h6) :first-child) { margin-top: 1em; scroll-margin-top: 2em; } :where(ul, ol) { list-style-type: revert-layer; } > :where(ul, ol), > :where(astro-island, astro-slot) > :where(ul, ol) { list-style-position: outside; margin-left: 2em; :where(ul, ol) { padding-left: 2em; } li { font-variant-numeric: lining-nums; } li + li { margin-top: .25em; } li:has(li) + li { margin-top: .5em; } li> :where(ul, ol) { margin-top: .25em; } } :where(a) { text-decoration: underline; } > img, figure img { border: 1px solid oklch(90% 0 0deg); border-radius: var(--radius) ; } }
724
330
  }
725
- :root {
726
- --scrollbar-width: thin;
727
- --scrollbar-size: 12px;
728
- color-scheme: dark light;
331
+
332
+ @utility square {
333
+ width: var(--size) ; height: var(--size) ;
729
334
  }
730
- @media (prefers-color-scheme: light) {
731
- :root {
732
- --scrollbar-thumb-color: #c1c1c1;
733
- --scrollbar-track-color: #fafafa;
734
- }
335
+
336
+ @utility circle {
337
+ width: var(--size) ; height: var(--size) ; border-radius: 50%;
735
338
  }
736
- @media (prefers-color-scheme: dark) {
737
- :root {
738
- --scrollbar-thumb-color: #6b6b6b;
739
- --scrollbar-track-color: #2d2d2d;
740
- }
339
+
340
+ @utility roundrect {
341
+ border-radius: var(--radius, 8px) ;
741
342
  }
742
343
 
743
- @layer components {
744
- * {
745
- scroll-behavior: var(--scroll-behavior, smooth);
746
- scrollbar-width: var(--scrollbar-width, auto);
747
- scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);
748
- /* Works on Chrome, Edge, and Safari */
749
- }
750
- *::-webkit-scrollbar {
751
- width: var(--scrollbar-size);
752
- height: var(--scrollbar-size);
753
- }
754
- *::-webkit-scrollbar-track {
755
- background: var(--scrollbar-track-color);
756
- }
757
- *::-webkit-scrollbar-thumb {
758
- border: 3px solid var(--scrollbar-track-color);
759
- border-radius: 100px;
760
- background-color: var(--scrollbar-thumb-color);
761
- }
344
+ @utility pill {
345
+ border-radius: 100em;
762
346
  }
763
- @layer components {
764
- :where([class*=BrowserFrame]) .FrameHeader {
765
- display: flex;
766
- flex-flow: row;
767
- align-items: center;
768
- border: var(--border-width, 1px) solid var(--border-frame-header, var(--border-color));
769
- border-bottom: 0;
770
- border-radius: var(--radius) var(--radius) 0 0;
771
- background: var(--bg-frame-header);
772
- }
773
- :where([class*=BrowserFrame]) .FrameHeaderDots {
774
- display: flex;
775
- flex-flow: row;
776
- align-items: center;
777
- gap: var(--dot-gap, 0.5rem);
778
- padding: 0.75rem 1rem;
779
- }
780
- :where([class*=BrowserFrame]) .FrameHeaderDot {
781
- width: var(--dot-size, 0.7rem);
782
- height: var(--dot-size, 0.7rem);
783
- border-radius: 50%;
784
- background-color: var(--dot-color, #424242);
785
- }
786
- :where([class*=BrowserFrame]) .FrameHeaderTabs {
787
- overflow: hidden;
788
- align-self: end;
789
- padding-top: 0.5rem;
790
- }
791
- :where([class*=BrowserFrame]) .FrameHeaderTabs .Tablist {
792
- gap: 0.25rem;
793
- padding-inline: calc(var(--outline-width) * 2);
794
- }
795
- :where([class*=BrowserFrame]) .FrameContent {
796
- border: var(--border-width, 1px) solid var(--border-frame-content, var(--border-color));
797
- border-radius: 0 0 var(--radius) var(--radius);
798
- background: var(--bg-frame-content);
799
- }
800
- :where([class*=BrowserFrame]) .FrameContent > :where(.Content) {
801
- padding: 1rem;
802
- }
803
- :where([class*=BrowserFrame]) .FrameContent > :where(.Background) svg {
804
- width: 100%;
805
- height: 100%;
806
- }
807
- .BrowserFrame-colored .FrameHeaderDot:first-child {
808
- background-color: var(--dot-1-color, #e2544d);
809
- }
810
- .BrowserFrame-colored .FrameHeaderDot:nth-child(2) {
811
- background-color: var(--dot-2-color, #d79f27);
812
- }
813
- .BrowserFrame-colored .FrameHeaderDot:last-child {
814
- background-color: var(--dot-3-color, #22a936);
815
- }
347
+
348
+ @utility simple-svg {
349
+ :where(path) { fill: var(--fill-color) ; stroke: var(--stroke-color) ; stroke-width: var(--stroke-width) ; }
816
350
  }
817
- @layer components {
818
- .List {
819
- margin-left: 1em;
820
- list-style-position: outside;
821
- }
822
- .List > :where(ul, ol) {
823
- padding-left: 1em;
824
- }
825
- ul[class~=List] {
826
- list-style-type: disc;
827
- }
828
- ol[class=List] {
829
- list-style: decimal;
830
- }
351
+
352
+ @utility table-scaffold {
353
+ & { width: 100%; font-variant-numeric: lining-nums tabular-nums slashed-zero diagonal-fractions; }
831
354
  }
832
- @layer components {
833
- .Prose {
834
- display: flex;
835
- flex-flow: column;
836
- gap: 1em;
837
- max-width: 100%;
838
- }
839
- .Prose * + :where(h2, h3),
840
- .Prose * + :where(astro-island, astro-slot) > :where(:where(h2, h3):first-child) {
841
- padding-top: 2em;
842
- }
843
- .Prose * + :where(h4, h5, h6),
844
- .Prose * + :where(astro-island, astro-slot) > :where(:where(h4, h5, h6):first-child) {
845
- padding-top: 1em;
846
- }
847
- .Prose :where(ul, ol) {
848
- list-style-type: revert-layer;
849
- }
850
- .Prose > :where(ul, ol),
851
- .Prose > :where(astro-island, astro-slot) > :where(ul, ol) {
852
- list-style-position: outside;
853
- margin-left: 2em;
854
- }
855
- .Prose > :where(ul, ol) :where(ul, ol),
856
- .Prose > :where(astro-island, astro-slot) > :where(ul, ol) :where(ul, ol) {
857
- padding-left: 2em;
858
- }
859
- .Prose > :where(ul, ol) li,
860
- .Prose > :where(astro-island, astro-slot) > :where(ul, ol) li {
861
- font-variant-numeric: lining-nums;
862
- }
863
- .Prose > :where(ul, ol) li + li,
864
- .Prose > :where(astro-island, astro-slot) > :where(ul, ol) li + li {
865
- margin-top: 0.25em;
866
- }
867
- .Prose > :where(ul, ol) li:has(li) + li,
868
- .Prose > :where(astro-island, astro-slot) > :where(ul, ol) li:has(li) + li {
869
- margin-top: 0.5em;
870
- }
871
- .Prose > :where(ul, ol) li > :where(ul, ol),
872
- .Prose > :where(astro-island, astro-slot) > :where(ul, ol) li > :where(ul, ol) {
873
- margin-top: 0.25em;
874
- }
875
- .Prose code {
876
- font-size: 0.8em;
877
- }
878
- .Prose :not(pre) > code {
879
- display: inline;
880
- padding: 0.2em 0.25em;
881
- border-radius: var(--radius);
882
- }
883
- .Prose pre {
884
- padding: 1em;
885
- border-radius: var(--radius);
886
- }
887
- .Prose pre code {
888
- background-color: transparent;
889
- }
890
- .Prose :where(a) {
891
- text-decoration: underline;
892
- }
893
- .Prose > img {
894
- border: 1px solid oklch(90% 0 0deg);
895
- border-radius: var(--radius);
896
- }
355
+
356
+ @utility table-auto {
357
+ :where(table) & { table-layout: auto; } :where(. table-grid) & { @apply grid-repeat-auto; }
897
358
  }
898
- figcaption {
899
- margin-block: 0.5em;
900
- font-size: 0.8em;
901
- text-align: center;
359
+
360
+ @utility table-fixed {
361
+ :where(table) & { table-layout: fixed; } :where(. table-grid) & { @apply grid-simple; }
902
362
  }
903
363
 
904
- @layer components {
905
- .SimpleSVG :where(path) {
906
- fill: var(--fill-color);
907
- stroke: var(--stroke-color);
908
- stroke-width: var(--stroke-width);
909
- }
364
+ @utility table-header-row {
365
+ & { border-top: var(--header-row-border-top) ; border-bottom: var(--header-row-border-bottom) ; font-weight: bold; }
910
366
  }
911
- @layer components {
912
- .Accordion svg {
913
- transition: var(--transition-values);
914
- transition-property: var(--transition-props);
915
- }
916
- .Accordion :where([aria-expanded=true] svg) {
917
- transform: rotate(90deg);
918
- }
919
- .AccordionBtn {
920
- display: flex;
921
- justify-content: space-between;
922
- align-items: center;
923
- gap: 0.5em;
924
- width: 100%;
925
- padding: 0.75rem;
926
- border: 0;
927
- text-align: left;
928
- }
929
- .AccordionBtn:where(:has(svg + span)), .AccordionBtn:where(:has(svg + astro-slot)) {
930
- justify-content: start;
931
- }
932
- .AccordionContent {
933
- padding: 0.75rem;
934
- }
367
+
368
+ @utility table-header-column {
369
+ font-weight: bold;
935
370
  }
936
- @layer components {
937
- .Breadcrumbs {
938
- --gap: 0.2em;
939
- font-size: 0.8rem;
940
- }
941
- .Breadcrumbs ul,
942
- .Breadcrumbs ol {
943
- display: flex;
944
- flex-flow: row wrap;
945
- align-items: center;
946
- gap: var(--gap);
947
- }
948
- .Breadcrumbs .Crumb {
949
- display: flex;
950
- align-items: center;
951
- gap: var(--gap);
952
- }
953
- .Breadcrumbs .Crumb [aria-current] {
954
- opacity: 0.7;
955
- }
371
+
372
+ @utility table-cell {
373
+ text-align: left; padding: var(--padding, var(--padding-x, .375rem)) var(--padding, var(--padding-y, .5rem)) ;
956
374
  }
957
- @layer components {
958
- .Callout {
959
- border: var(--border-width) var(--border-style) var(--border-color);
960
- border-radius: var(--radius);
961
- font-size: 0.85em;
962
- }
963
- .Callout > * {
964
- padding: 0.85rem;
965
- }
966
- .Callout :where(.CalloutHeader) {
967
- padding-block: 0.375rem;
968
- border-bottom: 1px solid var(--divider-color, var(--border-color));
969
- border-top-left-radius: inherit;
970
- border-top-right-radius: inherit;
971
- color: var(--text-callout-header, var(--text-color));
972
- background: var(--bg-callout-header, var(--bg-color));
973
- }
974
- .Callout :where(.CalloutContent) {
975
- border-bottom-left-radius: inherit;
976
- border-bottom-right-radius: inherit;
977
- color: var(--text-callout-content, var(--text-color));
978
- background: var(--bg-callout-content, var(--bg-color));
979
- }
375
+
376
+ table {
377
+ border-collapse: collapse;
980
378
  }
981
- @layer components {
982
- [class*=DrawerBackdrop] {
983
- position: fixed;
984
- inset: 0;
985
- z-index: 100;
986
- background-color: oklch(0% 0 0deg / 0.5);
987
- }
988
- .DrawerBackdrop-blur {
989
- transition-property: background, backdrop-filter;
990
- backdrop-filter: blur(8px);
991
- }
992
- .DrawerContent {
993
- position: fixed;
994
- overflow-y: auto;
995
- z-index: 100;
996
- padding: 1rem;
997
- color: var(--text-color);
998
- background-color: var(--bg-color);
999
- }
1000
- .DrawerCloseButton {
1001
- padding: 0.5rem;
1002
- }
379
+
380
+ @apply table-scaffold;
381
+
382
+ table:has(thead) tr:nth-child(2n+2) {
383
+ background-color: var(--alt-row-color);
1003
384
  }
1004
- @layer components {
1005
- .DropdownTrigger {
1006
- gap: 0.25em;
1007
- }
1008
- .DropdownTrigger svg {
1009
- flex-shrink: 0;
1010
- transition: transform var(--transition-values);
1011
- }
1012
- .DropdownTrigger[aria-expanded=true] svg {
1013
- transform: rotate(-180deg);
1014
- }
385
+
386
+ table:not(:has(thead)) tr tr:nth-child(2n+3) {
387
+ background-color: var(--alt-row-color);
1015
388
  }
1016
- @layer components {
1017
- .FancyList {
1018
- --svg-width: 1em;
1019
- --svg-height: 1lh;
1020
- display: grid;
1021
- grid-template-columns: auto 1fr;
1022
- column-gap: var(--gap, 0.5em);
1023
- }
1024
- .FancyList :where(li) {
1025
- grid-column: 1/-1;
1026
- display: grid;
1027
- grid-template-columns: subgrid;
1028
- }
1029
- .FancyList :where(li) :where(.emoji),
1030
- .FancyList :where(li) > :where(astro-slot, astro-island) > :where(.emoji) {
1031
- font-size: 0.75em;
1032
- line-height: 1lh;
1033
- }
1034
- .Prose > :where(.FancyList) {
1035
- margin-left: calc(2em - var(--svg-width, 1em) - var(--gap, 0.5em));
1036
- }
389
+
390
+ @apply table-header-row;
391
+ @apply table-header-column;
392
+ @apply table-cell;
393
+
394
+ .table-grid:where(table, [role="table"], [role="grid"]) {
395
+ max-width: 100%;
1037
396
  }
1038
- @layer components {
1039
- .PerspectiveHover {
1040
- --sensitivity: 3;
1041
- --perspective: 1000px;
1042
- position: relative;
1043
- will-change: transform;
1044
- transition: transform 0.25s ease-in-out;
1045
- }
397
+
398
+ @apply table-scaffold;
399
+ @apply table-auto;
400
+
401
+ .table-grid :where(thead, tbody, tfoot, [role="rowgroup"]) {
402
+ display: contents;
1046
403
  }
1047
- @layer components {
1048
- .PopoverContent {
1049
- position: absolute;
1050
- top: 0;
1051
- left: 0;
1052
- z-index: 100;
1053
- max-width: 100%;
1054
- padding: 0.75em;
1055
- border: var(--border-width) solid var(--border-color);
1056
- border-radius: var(--radius);
1057
- background-color: var(--bg-color);
1058
- }
1059
- .PopoverArrow {
1060
- position: absolute;
1061
- aspect-ratio: 1;
1062
- border-top-width: inherit;
1063
- border-left-width: inherit;
1064
- border-style: inherit;
1065
- border-color: inherit;
1066
- border-radius: 2px 0 0;
1067
- background-color: inherit;
1068
- }
404
+
405
+ .table-grid :where(tr, [role="row"]) {
406
+ grid-column: 1 / -1;
407
+ display: grid;
408
+ grid-template-columns: subgrid;
409
+ grid-template-rows: subgrid;
1069
410
  }
1070
- @layer components {
1071
- .Resizer {
1072
- --size: 4px;
1073
- background-color: var(--bg-color, transparent);
1074
- }
1075
- .Resizer:hover {
1076
- background-color: var(--bg-hover-color, pink);
1077
- }
1078
- .Resizer-horizontal {
1079
- cursor: ew-resize;
1080
- top: 0;
1081
- bottom: 0;
1082
- width: var(--size, 4px);
1083
- }
1084
- .Resizer-vertical {
1085
- cursor: ns-resize;
1086
- left: 0;
1087
- right: 0;
1088
- height: var(--size, 4px);
1089
- }
1090
- .Stack .Resizer-bottom {
1091
- place-self: end stretch;
1092
- }
1093
- .Stack .Resizer-right {
1094
- place-self: stretch end;
1095
- }
1096
- .relative .Resizer,
1097
- .Relative .Resizer {
1098
- position: absolute;
1099
- }
1100
- .relative .Resizer-bottom,
1101
- .Relative .Resizer-bottom {
1102
- bottom: 0;
1103
- }
1104
- .relative .Resizer-right,
1105
- .Relative .Resizer-right {
1106
- right: 0;
1107
- }
411
+
412
+ .table-grid :where(tr, [role="row"]):nth-child(2n+3) {
413
+ background-color: var(--alt-row-color);
1108
414
  }
1109
- @layer components {
1110
- .Spotlight {
1111
- --size: 25em;
1112
- --gradient: hsl(0deg 0% 50% / 30%), transparent;
1113
- --gradient-shape: circle;
1114
- --gradient-size: closest-side;
1115
- overflow: hidden;
1116
- position: relative;
1117
- }
1118
- .Spotlight > * {
1119
- position: relative;
1120
- z-index: 2;
1121
- background-clip: text;
1122
- }
1123
- .Spotlight::after {
1124
- content: "";
1125
- pointer-events: none;
1126
- position: absolute;
1127
- top: calc(var(--y) * 1px);
1128
- left: calc(var(--x) * 1px);
1129
- z-index: 1;
1130
- width: var(--size);
1131
- height: var(--size);
1132
- background-image: radial-gradient(var(--gradient-shape) var(--gradient-size) at var(--gradient-position), var(--tw-gradient-stops, var(--gradient)));
1133
- opacity: 0;
1134
- transform: translate(-50%, -50%);
1135
- transition: var(--transition-values);
1136
- transition-property: opacity;
1137
- }
1138
- .Spotlight[active]::after {
1139
- opacity: 1;
1140
- }
415
+
416
+ @apply table-header-row;
417
+ @apply table-header-column;
418
+
419
+ .table-grid :where([role="columnheader"], [role="rowheader"], [role="cell"], [role="gridcell"], th, td) {
420
+ display: grid;
421
+ align-items: center;
1141
422
  }
1142
- @layer components {
1143
- .Status {
1144
- margin-top: 1rem;
1145
- padding: 1rem;
1146
- border-width: var(--border-width, 1px);
1147
- border-color: var(--border-color);
1148
- border-radius: var(--radius);
1149
- color: var(--text-color);
1150
- background-color: var(--bg-color);
1151
- }
1152
- .Status:empty {
1153
- display: none;
1154
- }
1155
- .Status-info {
1156
- --border-color: #d1d5db;
1157
- --bg-color: #f9fafb;
1158
- --text-color: #111827;
1159
- }
1160
- .Status-error {
1161
- --border-color: #fca5a5;
1162
- --bg-color: #fef2f2;
1163
- --text-color: #b91c1c;
1164
- }
1165
- .Status-success {
1166
- --border-color: #86efac;
1167
- --bg-color: #f0fdf4;
1168
- --text-color: #15803d;
1169
- }
423
+
424
+ @apply table-cell;
425
+
426
+ @utility writing-scaffold {
427
+ transition: none;
1170
428
  }
1171
- @layer components {
1172
- .Tablist {
1173
- display: flex;
1174
- gap: 0.5em;
1175
- }
1176
- .Tab {
1177
- position: relative;
1178
- z-index: 1;
1179
- padding: 0.5rem 1rem;
1180
- border-color: var(--border-color);
1181
- background-color: var(--bg-color);
1182
- text-align: left;
1183
- }
1184
- .Tab[aria-selected] {
1185
- z-index: 2;
1186
- border-color: var(--border-selected-color, var(--border-color));
1187
- background-color: var(--bg-selected-color);
1188
- }
1189
- .Tabpanels {
1190
- position: relative;
1191
- max-width: 100%;
1192
- border: var(--border-width, 1px) solid var(--border-color, black);
1193
- }
1194
- .Tabpanel {
1195
- max-width: 100%;
1196
- padding: 1rem;
1197
- transition: var(--transition-values);
1198
- transition-property: var(--transition-props);
1199
- }
1200
- .Tablist-top {
1201
- --scrollbar-width: none;
1202
- --scrollbar-size: 0px;
1203
- max-width: 100%;
1204
- }
1205
- :is(.Tablist-left, .Tablist-right) {
1206
- display: flex;
1207
- flex-flow: column nowrap;
1208
- }
1209
- :is(.Tablist-left, .Tablist-right) :where(.Tab) {
1210
- align-self: stretch;
1211
- }
1212
- .Tablist-right {
1213
- order: 2;
1214
- }
1215
- :where(.Tablist-underline) {
1216
- gap: 0;
1217
- }
1218
- :where(.Tablist-underline) .Tab {
1219
- border-width: 0;
1220
- border-radius: 0;
1221
- }
1222
- :where(.Tablist-underline).Tablist-top :where(.Tab) {
1223
- top: var(--border-width, 1px);
1224
- border-bottom-width: var(--border-width, 1px);
1225
- }
1226
- :where(.Tablist-underline).Tablist-left :where(.Tab) {
1227
- left: var(--border-width, 1px);
1228
- border-right-width: var(--border-width, 1px);
1229
- }
1230
- :where(.Tablist-underline).Tablist-right :where(.Tab) {
1231
- right: var(--border-width, 1px);
1232
- border-left-width: var(--border-width, 1px);
1233
- }
1234
- :where(.Tablist-tab) .Tab {
1235
- position: relative;
1236
- }
1237
- :where(.Tablist-tab).Tablist-top :where(.Tab) {
1238
- top: var(--border-width, 1px);
1239
- border-bottom: 0;
1240
- border-end-start-radius: 0;
1241
- border-end-end-radius: 0;
1242
- }
1243
- :where(.Tablist-tab).Tablist-left :where(.Tab) {
1244
- right: var(--border-width, 1px);
1245
- border-right: 0;
1246
- border-start-end-radius: 0;
1247
- border-end-end-radius: 0;
1248
- }
1249
- :where(.Tablist-tab).Tablist-right :where(.Tab) {
1250
- left: var(--border-width, 1px);
1251
- border-left: 0;
1252
- border-start-start-radius: 0;
1253
- border-end-start-radius: 0;
1254
- }
429
+
430
+ @utility writing-normal {
431
+ @apply writing-scaffold;
432
+
433
+ writing-mode: horizontal-tb;
1255
434
  }
1256
- .Textwall .TextwallDimensions {
1257
- aspect-ratio: 4/3;
1258
- max-height: 75dvh;
435
+
436
+ @utility writing-rotated-left {
437
+ & { @apply writing-scaffold; writing-mode: vertical-rl; text-orientation: sideways; transform: rotate(180deg) ; }
1259
438
  }
1260
- .Textwall .TextwallContent {
1261
- position: absolute;
1262
- inset: -150%;
1263
- transform: rotate(var(--rotation, -15deg));
439
+
440
+ @utility writing-rotated-right {
441
+ & { @apply writing-scaffold; writing-mode: vertical-rl; text-orientation: sideways; }
1264
442
  }
1265
- .Textwall [class*=TextwallBoundary] {
1266
- pointer-events: none;
443
+
444
+ @utility writing-downwards {
445
+ & { @apply writing-scaffold; writing-mode: vertical-lr; text-orientation: upright; }
1267
446
  }
1268
- .Textwall .TextwallBoundary-after {
1269
- bottom: -1px;
447
+
448
+ @utility writing-downards-lr {
449
+ & { @apply writing-downwards; }
1270
450
  }
1271
451
 
1272
- @layer components {
1273
- .Youtube div,
1274
- .Vimeo div {
1275
- aspect-ratio: 16/9;
1276
- }
1277
- .Youtube iframe,
1278
- .Vimeo iframe {
1279
- width: 100%;
1280
- height: 100%;
1281
- }
452
+ @utility writing-downwards-rl {
453
+ & { @apply writing-scaffold; writing-mode: vertical-rl; text-orientation: upright; }
1282
454
  }
1283
- @layer components {
1284
- .Codepen {
1285
- display: flex;
1286
- justify-content: center;
1287
- align-items: center;
1288
- box-sizing: border-box;
1289
- margin: 1em 0;
1290
- padding: 1em;
1291
- border: 2px solid;
1292
- }
455
+
456
+ @theme {
457
+ --gap: 1rem;
1293
458
  }
1294
- @layer components {
1295
- .Tweet .twitter-tweet {
1296
- margin: 0 !important;
1297
- }
459
+
460
+ @utility micro {
461
+ > * , > :where(. contents) > * , > * :where(astro-island, astro-slot) > * { flex-grow: var(--grow, 0) ; }
1298
462
  }
1299
- .CQCheckerGrid {
1300
- display: flex;
1301
- flex-flow: row wrap;
1302
- grid-auto-flow: dense;
1303
- padding: 1rem;
463
+
464
+ @utility horizontal {
465
+ display: flex; flex-direction: row; gap: var(--gap-y, var(--gap)) var(--gap-x, var(--gap));> . spacer { margin-inline-start: auto; }
466
+
467
+ @apply micro;
1304
468
  }
1305
- .CQCheckerGrid > * {
1306
- margin: 0.5rem;
469
+
470
+ @utility vertical {
471
+ display: flex; flex-direction: column; gap: var(--gap-y, var(--gap)) var(--gap-x, var(--gap)); width: 100%; max-width: 100%;> . spacer { margin-block-start: auto; }
472
+
473
+ @apply micro;
1307
474
  }
1308
475
 
1309
- .size {
1310
- font-size: 0.8rem;
1311
- color: #666;
476
+ @utility single-col {
477
+ @apply vertical;
478
+
479
+ align-items: stretch;
1312
480
  }
1313
481
 
1314
- @layer components {
1315
- .elevation-1 {
1316
- --shadow-color: rgb(0 0 0 / 8%);
1317
- box-shadow: 0px 2px 2.6px -0.325px var(--shadow-color);
1318
- }
1319
- .elevation-2 {
1320
- --shadow-color: rgb(0 0 0 / 8%);
1321
- box-shadow: 0px 2px 2.6px -0.325px var(--shadow-color), 0px 4.2870938501px 5.5732220052px -0.6966527506px var(--shadow-color);
1322
- }
1323
- .elevation-3 {
1324
- --shadow-color: rgb(0 0 0 / 8%);
1325
- box-shadow: 0px 2px 2.6px -0.325px var(--shadow-color), 0px 4.2870938501px 5.5732220052px -0.6966527506px var(--shadow-color), 0px 6.6967390442px 8.7057607575px -1.0882200947px var(--shadow-color);
1326
- }
1327
- .elevation-4 {
1328
- --shadow-color: rgb(0 0 0 / 8%);
1329
- box-shadow: 0px 2px 2.6px -0.325px var(--shadow-color), 0px 4.2870938501px 5.5732220052px -0.6966527506px var(--shadow-color), 0px 6.6967390442px 8.7057607575px -1.0882200947px var(--shadow-color), 0px 9.18958684px 11.946462892px -1.4933078615px var(--shadow-color);
1330
- }
1331
- .elevation-5 {
1332
- --shadow-color: rgb(0 0 0 / 8%);
1333
- box-shadow: 0px 2px 2.6px -0.325px var(--shadow-color), 0px 4.2870938501px 5.5732220052px -0.6966527506px var(--shadow-color), 0px 6.6967390442px 8.7057607575px -1.0882200947px var(--shadow-color), 0px 9.18958684px 11.946462892px -1.4933078615px var(--shadow-color), 0px 11.7461894309px 15.2700462601px -1.9087557825px var(--shadow-color);
1334
- }
1335
- .elevation-6 {
1336
- --shadow-color: rgb(0 0 0 / 8%);
1337
- box-shadow: 0px 2px 2.6px -0.325px var(--shadow-color), 0px 4.2870938501px 5.5732220052px -0.6966527506px var(--shadow-color), 0px 6.6967390442px 8.7057607575px -1.0882200947px var(--shadow-color), 0px 9.18958684px 11.946462892px -1.4933078615px var(--shadow-color), 0px 11.7461894309px 15.2700462601px -1.9087557825px var(--shadow-color), 0px 14.3547743862px 18.6612067021px -2.3326508378px var(--shadow-color);
1338
- }
1339
- .tw-elevation {
1340
- box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1341
- }
1342
- .tw-elevation-2 {
1343
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
1344
- }
1345
- .tw-elevation-3 {
1346
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
1347
- }
1348
- .tw-elevation-4 {
1349
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
1350
- }
1351
- .tw-elevation-5 {
1352
- box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
1353
- }
1354
- .tw-elevation-6 {
1355
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
1356
- }
1357
- .mui-elevation-1 {
1358
- box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);
1359
- }
1360
- .mui-elevation-2 {
1361
- box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
1362
- }
1363
- .mui-elevation-3 {
1364
- box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12);
1365
- }
1366
- .mui-elevation-4 {
1367
- box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);
1368
- }
1369
- .mui-elevation-5 {
1370
- box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12);
1371
- }
1372
- .mui-elevation-6 {
1373
- box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);
1374
- }
1375
- .mui-elevation-7 {
1376
- box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12);
1377
- }
482
+ @utility flow {
483
+ display: flex; flex-flow: row wrap; gap: var(--gap-y, var(--gap)) var(--gap-x, var(--gap));
484
+
485
+ @apply micro;
1378
486
  }
1379
- @layer components {
1380
- .glow {
1381
- --shadow-x: 0;
1382
- --shadow-y: 0;
1383
- --shadow-blur: 0.5em;
1384
- --shadow-spread: 0.25em;
1385
- --shadow-alpha: 0.5;
1386
- position: relative;
1387
- }
1388
- .glow > * {
1389
- position: relative;
1390
- z-index: 1;
1391
- }
1392
- .glow:hover, .glow:focus {
1393
- --shadow-alpha: 1;
1394
- }
1395
- .glow::before {
1396
- content: "";
1397
- position: absolute;
1398
- top: calc(var(--border-width, 0px) * -1);
1399
- left: calc(var(--border-width, 0px) * -1);
1400
- box-sizing: content-box;
1401
- width: 100%;
1402
- height: 100%;
1403
- border: inherit;
1404
- border-radius: inherit;
1405
- box-shadow: var(--shadow-x) var(--shadow-y) var(--shadow-blur) var(--shadow-spread) var(--shadow-color);
1406
- opacity: var(--shadow-alpha);
1407
- transition: var(--transition-values);
1408
- transition-property: opacity;
1409
- }
1410
- .glow-2 {
1411
- --shadow-blur: 1em;
1412
- --shadow-spread: 0.375em;
1413
- }
1414
- .glow-3 {
1415
- --shadow-blur: 1.5em;
1416
- --shadow-spread: 0.5em;
1417
- }
487
+
488
+ @utility stack {
489
+ & { position: relative; display: grid; grid-template-columns: minmax(min(0, 100%), 1fr) ; padding: 0;& ::before, & ::after, > * , > * :where(astro-island, astro-slot) > * { position: relative; z-index: 1; grid-column: 1 / span 1; grid-row: 1 / span 1; } > . background { overflow: hidden; position: absolute; inset: 0; } > . foreground { position: relative; z-index: 10; } }
1418
490
  }
1419
- @layer components {
1420
- :root {
1421
- --gradient-shape: ;
1422
- --gradient-size: ;
1423
- --angle: 90deg;
1424
- --gradient-position: center;
1425
- --color-space: oklab;
1426
- --hue-interpolation: ;
1427
- --gradient: ;
1428
- --gradient-alpha: 1;
1429
- }
491
+
492
+ @utility divider-scaffold {
493
+ & { align-self: stretch; display: flex; align-items: center; padding: 0! important; border-radius: 0! important;& :where(:not(:empty)) { gap: var(--gap, 1rem) ; } & ::before, & ::after { content: ""; background-color: var(--border-color, currentColor) ; } }
1430
494
  }
1431
- @layer utilities {
1432
- .gradient {
1433
- background-image: linear-gradient(var(--angle), var(--tw-gradient-stops, var(--gradient)));
1434
- }
1435
- @supports (linear-gradient(in oklab)) {
1436
- .gradient {
1437
- background: linear-gradient(var(--angle) in var(--color-space) var(--hue-interpolation), var(--tw-gradient-stops, var(--gradient)));
1438
- }
1439
- }
1440
- .radial-gradient {
1441
- background-image: radial-gradient(var(--gradient-shape) var(--gradient-size) at var(--gradient-position), var(--tw-gradient-stops, var(--gradient)));
1442
- }
1443
- .conic-gradient {
1444
- background-image: conic-gradient(from var(--angle) at var(--gradient-position), var(--tw-gradient-stops, var(--gradient)));
1445
- }
1446
- .repeating-gradient {
1447
- background-image: repeating-linear-gradient(var(--angle), var(--tw-gradient-stops, var(--gradient)));
1448
- }
1449
- @supports (linear-gradient(in oklab)) {
1450
- .repeating-gradient {
1451
- background-image: repeating-linear-gradient(var(--angle) in var(--color-space) var(--hue-interpolation), var(--tw-gradient-stops, var(--gradient)));
1452
- }
1453
- }
1454
- .repeating-radial-gradient {
1455
- background-image: repeating-radial-gradient(var(--gradient-shape) var(--gradient-size) at var(--gradient-position), var(--tw-gradient-stops, var(--gradient)));
1456
- }
1457
- .repeating-conic-gradient {
1458
- background-image: repeating-conic-gradient(from var(--angle) at var(--gradient-position), var(--tw-gradient-stops, var(--gradient)));
1459
- }
1460
- .text-gradient {
1461
- display: inline-flex;
1462
- -webkit-text-fill-color: transparent;
1463
- background-clip: text;
1464
- box-decoration-break: clone;
1465
- }
495
+
496
+ @utility divider-x {
497
+ & { @apply divider-scaffold; flex-grow: 1;& ::before, & ::after { flex-grow: 1; height: var(--border-width, 1px) ; } }
1466
498
  }
1467
- @layer utilities {
1468
- .Shadow {
1469
- --shadow-string: var(--shadow-x, 0) var(--shadow-y, 0) var(--shadow-blur, 0)
1470
- var(--shadow-spread, 0) var(--shadow-color, var(--tw-shadow-color));
1471
- box-shadow: var(--shadow, var(--shadow-string));
1472
- }
1473
- .Textshadow {
1474
- --text-shadow-string: var(--text-shadow-x, 0) var(--text-shadow-y, 0)
1475
- var(--text-shadow-blur, 0) var(--text-shadow-color);
1476
- text-shadow: var(--text-shadow, var(--text-shadow-string));
1477
- }
1478
- .Dropshadow {
1479
- --drop-shadow-string: var(--drop-shadow-x, 0) var(--drop-shadow-y, 0)
1480
- var(--drop-shadow-blur, 0) var(--drop-shadow-color);
1481
- filter: drop-shadow(var(--drop-shadow, var(--drop-shadow-string)));
1482
- }
499
+
500
+ @utility divider-y {
501
+ & { @apply divider-scaffold; align-self: stretch; display: flex; flex-direction: column; :where(. vertical, . single-col, . wrap) > & { flex-grow: 1; } & ::before, & ::after { flex-grow: 1; width: var(--border-width, 1px) ; } }
1483
502
  }
1484
- @layer components {
1485
- @supports (-webkit-text-stroke-width: 1px) {
1486
- .Text-stroke {
1487
- -webkit-text-stroke-width: var(--stroke-width, 0.1em);
1488
- -webkit-text-stroke-color: var(--stroke-color);
1489
- paint-order: stroke fill;
1490
- }
1491
- }
1492
- .Text-outline {
1493
- color: var(--stroke-color);
1494
- }
1495
- @supports (-webkit-text-stroke-width: 1px) {
1496
- .Text-outline {
1497
- font-size: calc(1em - var(--stroke-width, 0.1em) / 2);
1498
- color: var(--bg-color);
1499
- -webkit-text-stroke-width: var(--stroke-width, 2px);
1500
- -webkit-text-stroke-color: var(--stroke-color);
1501
- paint-order: stroke fill;
1502
- }
1503
- }
503
+
504
+ @utility divider-horizontal {
505
+ @apply divider-x;
1504
506
  }
1505
- .Backdrop-blur {
1506
- transition-property: backdrop-filter;
1507
- backdrop-filter: blur(var(--blur, 8px));
507
+
508
+ @utility divider-vertical {
509
+ @apply divider-y;
1508
510
  }
1509
511
 
1510
- [class*=Animate] {
1511
- animation: var(--animation-string);
1512
- animation-play-state: running;
512
+ @utility divider-between-x {
513
+ & { @apply divider-scaffold;> * + * , > * + * :where(astro-island, astro-slot) > * { border-top-width: var(--border-width, 1px) ; border-color: var(--border-color) ; } }
1513
514
  }
1514
515
 
1515
- .Animate-floating {
1516
- animation: floating 4s ease-in-out infinite alternate;
516
+ @utility divider-between-y {
517
+ & { @apply divider-scaffold;> * + * , > * + * :where(astro-island, astro-slot) > * { border-left-width: var(--border-width, 1px) ; border-color: var(--border-color) ; } }
1517
518
  }
1518
519
 
1519
- @keyframes floating {
1520
- 0% {
1521
- transform: translateY(var(--ty, -8px));
1522
- }
1523
- 100% {
1524
- transform: translateY(var(--ty, 8px));
1525
- }
520
+ @utility divider-between-horizontal {
521
+ @apply divider-between-x;
1526
522
  }
1527
- @layer utilities {
1528
- .Square {
1529
- width: var(--size);
1530
- height: var(--size);
1531
- }
1532
- .Circle {
1533
- width: var(--size);
1534
- height: var(--size);
1535
- border-radius: 50%;
1536
- }
1537
- .RoundRect {
1538
- border-radius: var(--radius, 8px);
1539
- }
1540
- .Pill {
1541
- border-radius: 100em;
1542
- }
523
+
524
+ @utility divider-between-vertical {
525
+ @apply divider-between-y;
1543
526
  }
1544
- @layer components {
1545
- [class*=Writing] {
1546
- transition: none;
1547
- }
1548
- .Writing-normal {
1549
- writing-mode: horizontal-tb;
1550
- }
1551
- .Writing-rotateLeft {
1552
- writing-mode: vertical-rl;
1553
- text-orientation: sideways;
1554
- transform: rotate(180deg);
1555
- }
1556
- .Writing-rotateRight {
1557
- writing-mode: vertical-rl;
1558
- text-orientation: sideways;
1559
- }
1560
- .Writing-downwards,
1561
- .Writing-downwards-lr {
1562
- writing-mode: vertical-lr;
1563
- text-orientation: upright;
1564
- }
1565
- .Writing-downwards-rl {
1566
- writing-mode: vertical-rl;
1567
- text-orientation: upright;
1568
- }
527
+
528
+ @utility breakout- * {
529
+ margin-inline: --value(--spacing- * ) ;
530
+ }
531
+
532
+ @utility breakout-x- * {
533
+ margin-inline: --value(--spacing- * ) ;
534
+ }
535
+
536
+ @utility breakout-l- * {
537
+ margin-inline-start: --value(--spacing- * ) ;
538
+ }
539
+
540
+ @utility breakout-r- * {
541
+ margin-inline-end: --value(--spacing- * ) ;
542
+ }
543
+
544
+ @utility breakout-y- * {
545
+ margin-block: --value(--spacing- * ) ;
546
+ }
547
+
548
+ @utility breakout-t- * {
549
+ margin-block-start: --value(--spacing- * ) ;
550
+ }
551
+
552
+ @utility breakout-b- * {
553
+ margin-block-end: --value(--spacing- * ) ;
554
+ }
555
+
556
+ @utility new-stacking-context {
557
+ transform: translateZ(0) ;
558
+ }
559
+
560
+ @theme {
561
+ --snap-align: start; --snap-type: proximity; --scroll-margin: 1rem;
562
+ }
563
+
564
+ @utility scrollable {
565
+ & { display: flex; gap: var(--gap, 1rem) ;> :where( * ) { flex-grow: 0; flex-shrink: 0; scroll-snap-align: var(--snap-align) ; scroll-margin: var(--scroll-margin) ; } }
566
+ }
567
+
568
+ @utility scrollable-x {
569
+ & { @apply scrollable; overflow: auto hidden; flex-direction: row; max-width: 100%; scroll-snap-type: x var(--snap-type) ; }
570
+ }
571
+
572
+ @utility scrollable-y {
573
+ & { @apply scrollable; overflow: hidden auto; flex-direction: column; scroll-snap-type: y var(--snap-type) ; }
574
+ }
575
+
576
+ @utility scrollable-preserve-outlines {
577
+ & { box-sizing: content-box; margin: calc(var(--outline-width) * -1) ; padding: calc(var(--outline-width)) ; }
578
+ }
579
+
580
+ @utility snap-type- * {
581
+ --snap-type: --value(--snap-type- * ) ;
582
+ }
583
+
584
+ @utility scrollable-nosnap {
585
+ --snap-type: none;
586
+ }
587
+
588
+ @utility scrollable-horizontal {
589
+ @apply scrollable-x;
590
+ }
591
+
592
+ @utility scrollable-vertical {
593
+ @apply scrollable-y;
594
+ }
595
+
596
+ @utility shell-simple {
597
+ & { display: flex; flex-direction: column; height: inherit;> . content { flex-grow: 1; } > . footer { flex-shrink: 0; } }
598
+ }
599
+
600
+ @utility shell-grid {
601
+ & { display: grid; grid-template-columns: minmax(0, var(--lsb-width, auto)) minmax(0, 1fr) ; gap: var(--gap, 0) ; height: 100dvh; } & :has(> header) { grid-template-rows: auto 1fr; } & :has(> . rightsidebar) { grid-template-columns: minmax(0, var(--lsb-width, auto)) minmax(0, var(--content-width, 1fr)) minmax(0, var(--rsb-width, auto)) ; } & > . is(header, . Full) { grid-column: 1 / -1; } > . leftsidebar, > . rightsidebar, > . content { overflow: auto; grid-column-end: span var(--span, 1) ; height: auto; }
602
+ }
603
+
604
+ @theme {
605
+ --cols: 1;
606
+ }
607
+
608
+ @utility grid-scaffold {
609
+ & { display: grid; gap: var(--gap, 1rem) ; width: 100%; max-width: 100%; margin-inline: auto;> * , > * :where(. contents) > * , > * :where(astro-island, astro-slot) > * { grid-column: var(--start, auto) / span var(--span, 1) ; grid-row: var(--rowstart, auto) / span var(--rowspan, 1) ; max-width: 100%; } }
610
+ }
611
+
612
+ @utility grid-simple {
613
+ @apply grid-scaffold;
614
+
615
+ grid-template-columns: repeat(var(--cols), minmax(0, 1fr)) ;
616
+ }
617
+
618
+ @utility grid-repeat-auto {
619
+ @apply grid-scaffold;
620
+
621
+ grid-template-columns: repeat(var(--cols, 1), minmax(0, auto)) ;
622
+ }
623
+
624
+ @utility grid-fr-auto {
625
+ @apply grid-scaffold;
626
+
627
+ grid-template-columns: minmax(0, 1fr) minmax(0, auto) ;
628
+ }
629
+
630
+ @utility grid-auto-fr {
631
+ @apply grid-scaffold;
632
+
633
+ grid-template-columns: minmax(0, auto) minmax(0, 1fr) ;
634
+ }
635
+
636
+ @utility grid-with-breakout {
637
+ & { @apply grid-scaffold; grid-template-columns: [breakout-start] 1fr [content-start] repeat(var(--cols, 1), minmax(0, 1fr)) [content-end] 1fr [breakout-end] ;> * :not([class*="breakout-full"]) { grid-column: content-start / content-end; } > * :where(. breakout-full) { grid-column: breakout-start / breakout-end; } }
638
+ }
639
+
640
+ @utility grid-gallery {
641
+ @apply grid-scaffold;
642
+
643
+ grid-template-columns: repeat(var(--fit, auto-fill), minmax(min(var(--item-width, 3rem), 100%), 1fr)) ;
644
+ }
645
+
646
+ @utility grid-gallery-fit {
647
+ --fit: auto-fit;
648
+
649
+ @apply grid-gallery;
650
+ }
651
+
652
+ @utility grid-gallery-fill {
653
+ --fit: auto-fill;
654
+
655
+ @apply grid-gallery;
656
+ }
657
+
658
+ @utility dense {
659
+ grid-auto-flow: dense;
660
+ }
661
+
662
+ @utility dense-column {
663
+ grid-auto-columns: dense;
664
+ }
665
+
666
+ @utility dense-row {
667
+ grid-auto-rows: dense;
668
+ }
669
+
670
+ @utility subgrid-scaffold {
671
+ display: grid; gap: inherit;
672
+ }
673
+
674
+ @utility subgrid {
675
+ @apply subgrid-columns; @apply subgrid-rows;
676
+
677
+ grid-template-columns: subgrid; grid-template-rows: subgrid;
678
+ }
679
+
680
+ @utility subgrid-columns {
681
+ @apply subgrid-scaffold;
682
+
683
+ grid-column: var(--start, auto) / span var(--span, 1) ; grid-template-columns: subgrid;> * :not([class*="subgrid"]) { grid-column-end: span var(--ispan, 1) ; width: 100%; max-width: 100%; }
684
+ }
685
+
686
+ @utility subgrid-rows {
687
+ @apply subgrid-scaffold;
688
+
689
+ grid-row: var(--rowstart, auto) / span var(--rowspan, 1) ; grid-template-rows: subgrid;> * :not([class*="subgrid"]) { grid-row-end: span var(--irowspan, 1) ; }
690
+ }
691
+
692
+ @utility masonry {
693
+ @apply grid-repeat-auto;
694
+
695
+ grid-template-rows: masonry;
696
+ }
697
+
698
+ @utility masonry-gallery {
699
+ @apply masonry;
700
+
701
+ grid-template-columns: repeat(auto-fill, minmax(min(var(--item-width, 3rem), 100%), 1fr)) ;
702
+ }
703
+
704
+ @utility flex-grid {
705
+ display: flex; flex-flow: row wrap; gap: var(--gap, 1rem) ;> * , > * :where(astro-island, astro-slot) > * , > :where(. contents) > * { --one-column: var(--gap, 1rem) * (var(--cols, 1) - 1) ; flex: var(--grow, var(--span, 1)) var(--span, 1) calc((100% - var(--one-column)) / var(--cols, 1) * var(--span, 1) + (var(--span, 1) - 1) * var(--gap, 1rem)) ; min-width: min(100%, var(--item-width, 3rem)) ; max-width: 100%; }
706
+ }
707
+
708
+ @utility wrap {
709
+ margin-inline: auto; padding-inline: var(--wrap-padding, 1rem) ;
710
+ }
711
+
712
+ @utility width-single-column {
713
+ max-width: var(--width-single-column, 100%) ;
714
+ }
715
+
716
+ @utility width-narrow {
717
+ max-width: var(--width-narrow, 100%) ;
718
+ }
719
+
720
+ @utility width-standard {
721
+ max-width: var(--width-standard, 100%) ;
722
+ }
723
+
724
+ @utility width-text {
725
+ max-width: var(--width-text, 100%) ;
726
+ }
727
+
728
+ @utility width-limit {
729
+ max-width: var(--width-limit, 100%) ;
730
+ }
731
+
732
+ @theme {
733
+ --nudge: 0; --nudge-x: 0; --nudge-y: 0;
734
+ }
735
+
736
+ @utility nudge-top {
737
+ margin-block-start: var(--nudge-y, var(--nudge, 0)) ;
738
+ }
739
+
740
+ @utility nudge-topleft {
741
+ margin-block-start: var(--nudge-y, var(--nudge, 0)) ; margin-inline-start: var(--nudge-x, var(--nudge, 0)) ;
742
+ }
743
+
744
+ @utility nudge-topright {
745
+ margin-block-start: var(--nudge-y, var(--nudge, 0)) ; margin-inline-end: var(--nudge-x, var(--nudge, 0)) ;
746
+ }
747
+
748
+ @utility nudge-topfull {
749
+ margin-block-start: var(--nudge-y, var(--nudge, 0)) ; margin-inline: var(--nudge-x, var(--nudge, 0)) ;
750
+ }
751
+
752
+ @utility nudge-bottomleft {
753
+ margin-block-end: var(--nudge-y, var(--nudge, 0)) ; margin-inline-start: var(--nudge-x, var(--nudge, 0)) ;
754
+ }
755
+
756
+ @utility nudge-bottom {
757
+ margin-block-end: var(--nudge-y, var(--nudge, 0)) ;
758
+ }
759
+
760
+ @utility nudge-bottomright {
761
+ margin-block-end: var(--nudge-y, var(--nudge, 0)) ; margin-inline-end: var(--nudge-x, var(--nudge, 0)) ;
762
+ }
763
+
764
+ @utility nudge-bottomfull {
765
+ margin-block-end: var(--nudge-y, var(--nudge, 0)) ; margin-inline: var(--nudge-x, var(--nudge, 0)) ;
766
+ }
767
+
768
+ @utility nudge-left {
769
+ margin-inline-start: var(--nudge-x, var(--nudge, 0)) ;
770
+ }
771
+
772
+ @utility nudge-leftfull {
773
+ margin-block: var(--nudge-y, var(--nudge, 0)) ; margin-inline-start: var(--nudge-x, var(--nudge, 0)) ;
774
+ }
775
+
776
+ @utility nudge-right {
777
+ margin-inline-end: var(--nudge-x, var(--nudge, 0)) ;
778
+ }
779
+
780
+ @utility nudge-rightfull {
781
+ margin-block: var(--nudge-y, var(--nudge, 0)) ; margin-inline-end: var(--nudge-x, var(--nudge, 0)) ;
782
+ }
783
+
784
+ @utility stack-pos-top {
785
+ place-self: start center;
786
+ }
787
+
788
+ @utility stack-pos-topleft {
789
+ place-self: start start;
790
+ }
791
+
792
+ @utility stack-pos-topright {
793
+ place-self: start end;
794
+ }
795
+
796
+ @utility stack-pos-topfull {
797
+ place-self: start stretch;
798
+ }
799
+
800
+ @utility stack-pos-bottomleft {
801
+ place-self: end start;
802
+ }
803
+
804
+ @utility stack-pos-bottom {
805
+ place-self: end center;
806
+ }
807
+
808
+ @utility stack-pos-bottomright {
809
+ place-self: end end;
810
+ }
811
+
812
+ @utility stack-pos-bottomfull {
813
+ place-self: end stretch;
814
+ }
815
+
816
+ @utility stack-pos-left {
817
+ place-self: center start;
818
+ }
819
+
820
+ @utility stack-pos-lefttop {
821
+ place-self: start start;
822
+ }
823
+
824
+ @utility stack-pos-leftbottom {
825
+ place-self: end start;
826
+ }
827
+
828
+ @utility stack-pos-leftfull {
829
+ place-self: stretch start;
830
+ }
831
+
832
+ @utility stack-pos-right {
833
+ place-self: center end;
834
+ }
835
+
836
+ @utility stack-pos-righttop {
837
+ place-self: start end;
838
+ }
839
+
840
+ @utility stack-pos-rightbottom {
841
+ place-self: end end;
842
+ }
843
+
844
+ @utility stack-pos-rightfull {
845
+ place-self: stretch end;
846
+ }
847
+
848
+ @utility stack-pos-center {
849
+ place-self: center center;
850
+ }
851
+
852
+ @utility relative-pos {
853
+ position: absolute;
854
+ }
855
+
856
+ @utility relative-pos-top {
857
+ @apply relative-pos;
858
+
859
+ inset-block-start: 0;
860
+ }
861
+
862
+ @utility relative-pos-topleft {
863
+ @apply relative-pos; @apply relative-pos-top;
864
+
865
+ inset-inline-start: 0;
866
+ }
867
+
868
+ @utility relative-pos-topright {
869
+ @apply relative-pos; @apply relative-pos-top;
870
+
871
+ inset-inline-end: 0;
872
+ }
873
+
874
+ @utility relative-pos-topfull {
875
+ @apply relative-pos; @apply relative-pos-top;
876
+
877
+ inset-inline: 0;
878
+ }
879
+
880
+ @utility relative-pos-bottom {
881
+ @apply relative-pos;
882
+
883
+ inset-block-end: 0;
884
+ }
885
+
886
+ @utility relative-pos-bottomleft {
887
+ @apply relative-pos; @apply relative-pos-bottom;
888
+
889
+ inset-inline-start: 0;
890
+ }
891
+
892
+ @utility relative-pos-bottomright {
893
+ @apply relative-pos; @apply relative-pos-bottom;
894
+
895
+ inset-inline-end: 0;
1569
896
  }
1570
897
 
1571
- /*# sourceMappingURL=styles.css.map */
898
+ @utility relative-pos-bottomfull {
899
+ @apply relative-pos;
900
+
901
+ inset-block-end: 0; inset-inline: 0;
902
+ }
903
+
904
+ @utility relative-pos-left {
905
+ @apply relative-pos;
906
+
907
+ inset-inline-start: 0;
908
+ }
909
+
910
+ @utility relative-pos-lefttop {
911
+ @apply relative-pos; @apply relative-pos-left;
912
+
913
+ inset-block-start: 0;
914
+ }
915
+
916
+ @utility relative-pos-leftbottom {
917
+ @apply relative-pos; @apply relative-pos-left;
918
+
919
+ inset-block-end: 0;
920
+ }
921
+
922
+ @utility relative-pos-leftfull {
923
+ @apply relative-pos; @apply relative-pos-left;
924
+
925
+ inset-block: 0;
926
+ }
927
+
928
+ @utility relative-pos-right {
929
+ @apply relative-pos;
930
+
931
+ inset-inline-end: 0;
932
+ }
933
+
934
+ @utility relative-pos-righttop {
935
+ @apply relative-pos; @apply relative-pos-right;
936
+
937
+ inset-block-start: 0;
938
+ }
939
+
940
+ @utility relative-pos-rightbottom {
941
+ @apply relative-pos; @apply relative-pos-right;
942
+
943
+ inset-block-end: 0;
944
+ }
945
+
946
+ @utility relative-pos-rightfull {
947
+ @apply relative-pos; @apply relative-pos-right;
948
+
949
+ inset-block: 0;
950
+ }
951
+
952
+ @utility relative-pos-center {
953
+ @apply relative-pos;
954
+
955
+ top: 50%; left: 50%; transform: translate(-50%, -50%) ;
956
+ }
957
+
958
+ @utility relative-pos-overlay {
959
+ @apply relative-pos;
960
+
961
+ inset: 0;
962
+ }
963
+
964
+ @utility pos-top {
965
+ @apply nudge-top; :where(. stack) > & { @apply stack-pos-top; } :where(. relative) > & { @apply relative-pos-top; }
966
+ }
967
+
968
+ @utility pos-topleft {
969
+ @apply nudge-topleft; :where(. stack) > & { @apply stack-pos-topleft; } :where(. relative) > & { @apply relative-pos-topleft; }
970
+ }
971
+
972
+ @utility pos-topright {
973
+ @apply nudge-topright; :where(. stack) > & { @apply stack-pos-topright; } :where(. relative) > & { @apply relative-pos-topright; }
974
+ }
975
+
976
+ @utility pos-topfull {
977
+ @apply nudge-topfull; :where(. stack) > & { @apply stack-pos-topfull; } :where(. relative) > & { @apply relative-pos-topfull; }
978
+ }
979
+
980
+ @utility pos-bottom {
981
+ @apply nudge-bottom; :where(. stack) > & { @apply stack-pos-bottom; } :where(. relative) > & { @apply relative-pos-bottom; }
982
+ }
983
+
984
+ @utility pos-bottomleft {
985
+ @apply nudge-bottomleft; :where(. stack) > & { @apply stack-pos-bottomleft; } :where(. relative) > & { @apply relative-pos-bottomleft; }
986
+ }
987
+
988
+ @utility pos-bottomright {
989
+ @apply nudge-bottomright; :where(. stack) > & { @apply stack-pos-bottomright; } :where(. relative) > & { @apply relative-pos-bottomright; }
990
+ }
991
+
992
+ @utility pos-bottomfull {
993
+ @apply nudge-bottomfull; :where(. stack) > & { @apply stack-pos-bottomfull; } :where(. relative) > & { @apply relative-pos-bottomfull; }
994
+ }
995
+
996
+ @utility pos-left {
997
+ @apply nudge-left; :where(. stack) > & { @apply stack-pos-left; } :where(. relative) > & { @apply relative-pos-left; }
998
+ }
999
+
1000
+ @utility pos-leftfull {
1001
+ @apply nudge-leftfull; :where(. stack) > & { @apply stack-pos-leftfull; } :where(. relative) > & { @apply relative-pos-leftfull; }
1002
+ }
1003
+
1004
+ @utility pos-right {
1005
+ @apply nudge-right; :where(. stack) > & { @apply stack-pos-right; } :where(. relative) > & { @apply relative-pos-right; }
1006
+ }
1007
+
1008
+ @utility pos-rightfull {
1009
+ @apply nudge-rightfull; :where(. stack) > & { @apply stack-pos-rightfull; } :where(. relative) > & { @apply relative-pos-rightfull; }
1010
+ }
1011
+
1012
+ @utility pos-center {
1013
+ :where(. stack) > & { @apply stack-pos-center; } :where(. relative) > & { @apply relative-pos-center; }
1014
+ }
1015
+
1016
+ @utility pos-overlay {
1017
+ :where(. stack) > & { display: grid;> * { grid-column: 1 / span 1; grid-row: 1 / span 1; } } :where(. relative) > & { @apply relative-pos-overlay; }
1018
+ }
1019
+
1020
+ @theme {
1021
+ --tx: 0%; --ty: 0%;
1022
+ }
1023
+
1024
+ @utility edge-scaffold {
1025
+ transform: translateX(var(--tx, 0%)) translateY(var(--ty, 0%)) ; :where(. stack) > & { box-sizing: content-box; } :where(. relative> & ) { position: absolute; }
1026
+ }
1027
+
1028
+ @utility stack-edge-top {
1029
+ place-self: start center;
1030
+ }
1031
+
1032
+ @utility stack-edge-topleft {
1033
+ place-self: start start;
1034
+ }
1035
+
1036
+ @utility stack-edge-topright {
1037
+ place-self: start end;
1038
+ }
1039
+
1040
+ @utility stack-edge-topfull {
1041
+ place-self: start stretch;
1042
+ }
1043
+
1044
+ @utility stack-edge-bottom {
1045
+ place-self: end center;
1046
+ }
1047
+
1048
+ @utility stack-edge-bottomleft {
1049
+ place-self: end start;
1050
+ }
1051
+
1052
+ @utility stack-edge-bottomright {
1053
+ place-self: end end;
1054
+ }
1055
+
1056
+ @utility stack-edge-bottomfull {
1057
+ place-self: end stretch;
1058
+ }
1059
+
1060
+ @utility stack-edge-left {
1061
+ place-self: center start;
1062
+ }
1063
+
1064
+ @utility stack-edge-leftfull {
1065
+ place-self: stretch start;
1066
+ }
1067
+
1068
+ @utility stack-edge-right {
1069
+ place-self: center end;
1070
+ }
1071
+
1072
+ @utility stack-edge-rightfull {
1073
+ place-self: stretch end;
1074
+ }
1075
+
1076
+ @utility relative-edge-top {
1077
+ inset-block-start: 0;
1078
+ }
1079
+
1080
+ @utility relative-edge-topleft {
1081
+ inset-block-start: 0; inset-inline-start: 0;
1082
+ }
1083
+
1084
+ @utility relative-edge-topright {
1085
+ inset-block-start: 0; inset-inline-end: 0;
1086
+ }
1087
+
1088
+ @utility relative-edge-topfull {
1089
+ inset-block-start: 0; inset-inline: 0;
1090
+ }
1091
+
1092
+ @utility relative-edge-bottom {
1093
+ inset-block-end: 0;
1094
+ }
1095
+
1096
+ @utility relative-edge-bottomfull {
1097
+ inset-block-end: 0; inset-inline: 0;
1098
+ }
1099
+
1100
+ @utility relative-edge-bottomleft {
1101
+ inset-block-end: 0; inset-inline-start: 0;
1102
+ }
1103
+
1104
+ @utility relative-edge-bottomright {
1105
+ inset-block-end: 0; inset-inline-end: 0;
1106
+ }
1107
+
1108
+ @utility relative-edge-left {
1109
+ inset-inline-start: 0;
1110
+ }
1111
+
1112
+ @utility relative-edge-leftfull { inset-block: 0;
1113
+ inset-inline-start: 0;
1114
+ }
1115
+
1116
+ @utility relative-edge-right {
1117
+ inset-inline-end: 0;
1118
+ }
1119
+
1120
+ @utility relative-edge-rightfull { inset-block: 0;
1121
+ inset-inline-end: 0;
1122
+ }
1123
+
1124
+ @utility edge-adjust-top {
1125
+ --ty: -50%;
1126
+ }
1127
+
1128
+ @utility edge-adjust-topleft-start {
1129
+ @apply edge-adjust-top;
1130
+
1131
+ --tx: -100%;
1132
+ }
1133
+
1134
+ @utility edge-adjust-topleft {
1135
+ @apply edge-adjust-top;
1136
+
1137
+ --tx: -50%;
1138
+ }
1139
+
1140
+ @utility edge-adjust-topleft-end {
1141
+ @apply edge-adjust-top;
1142
+
1143
+ --tx: 0%;
1144
+ }
1145
+
1146
+ @utility edge-adjust-topright-start {
1147
+ @apply edge-adjust-top;
1148
+
1149
+ --tx: 0%;
1150
+ }
1151
+
1152
+ @utility edge-adjust-topright {
1153
+ @apply edge-adjust-top;
1154
+
1155
+ --tx: 50%;
1156
+ }
1157
+
1158
+ @utility edge-adjust-topright-end {
1159
+ @apply edge-adjust-top;
1160
+
1161
+ --tx: 100%;
1162
+ }
1163
+
1164
+ @utility edge-adjust-bottom {
1165
+ --ty: 50%;
1166
+ }
1167
+
1168
+ @utility edge-adjust-bottomleft-start {
1169
+ @apply edge-adjust-bottom;
1170
+
1171
+ --tx: -100%;
1172
+ }
1173
+
1174
+ @utility edge-adjust-bottomleft {
1175
+ @apply edge-adjust-bottom;
1176
+
1177
+ --tx: -50%;
1178
+ }
1179
+
1180
+ @utility edge-adjust-bottomleft-end {
1181
+ @apply edge-adjust-bottom;
1182
+
1183
+ --tx: 0%;
1184
+ }
1185
+
1186
+ @utility edge-adjust-bottomright-start {
1187
+ @apply edge-adjust-bottom;
1188
+
1189
+ --tx: 0%;
1190
+ }
1191
+
1192
+ @utility edge-adjust-bottomright {
1193
+ @apply edge-adjust-bottom;
1194
+
1195
+ --tx: 50%;
1196
+ }
1197
+
1198
+ @utility edge-adjust-bottomright-end {
1199
+ @apply edge-adjust-bottom;
1200
+
1201
+ --tx: 100%;
1202
+ }
1203
+
1204
+ @utility edge-adjust-left {
1205
+ --tx: -50%;
1206
+ }
1207
+
1208
+ @utility edge-adjust-right {
1209
+ --tx: 50%;
1210
+ }
1211
+
1212
+ @utility edge-top {
1213
+ @apply edge-scaffold; @apply edge-adjust-top; :where(. stack) > & { @apply stack-edge-top; } :where(. relative) > & { @apply relative-edge-top; }
1214
+ }
1215
+
1216
+ @utility edge-topleft {
1217
+ @apply edge-scaffold; @apply edge-adjust-topleft; :where(. stack) > & { @apply stack-edge-topleft; } :where(. relative) > & { @apply relative-edge-topleft; }
1218
+ }
1219
+
1220
+ @utility edge-topright {
1221
+ @apply edge-scaffold; @apply edge-adjust-topright; :where(. stack) > & { @apply stack-edge-topright; } :where(. relative) > & { @apply relative-edge-topright; }
1222
+ }
1223
+
1224
+ @utility edge-topfull {
1225
+ @apply edge-scaffold; @apply edge-adjust-top; :where(. stack) > & { @apply stack-edge-top; } :where(. relative) > & { @apply relative-edge-top; }
1226
+ }
1227
+
1228
+ @utility edge-bottom {
1229
+ @apply edge-scaffold; @apply edge-adjust-bottom; :where(. stack) > & { @apply stack-edge-bottom; } :where(. relative) > & { @apply relative-edge-bottom; }
1230
+ }
1231
+
1232
+ @utility edge-bottomleft {
1233
+ @apply edge-scaffold; @apply edge-adjust-bottomleft; :where(. stack) > & { @apply stack-edge-bottomleft; } :where(. relative) > & { @apply relative-edge-bottomleft; }
1234
+ }
1235
+
1236
+ @utility edge-bottomright {
1237
+ @apply edge-scaffold; @apply edge-adjust-bottomright; :where(. stack) > & { @apply stack-edge-bottomright; } :where(. relative) > & { @apply relative-edge-bottomright; }
1238
+ }
1239
+
1240
+ @utility edge-bottomfull {
1241
+ @apply edge-scaffold; @apply edge-adjust-bottom; :where(. stack) > & { @apply stack-edge-bottom; } :where(. relative) > & { @apply relative-edge-bottom; }
1242
+ }
1243
+
1244
+ @utility edge-left {
1245
+ @apply edge-scaffold; @apply edge-adjust-left; :where(. stack) > & { @apply stack-edge-left; } :where(. relative) > & { @apply relative-edge-left; }
1246
+ }
1247
+
1248
+ @utility edge-leftfull {
1249
+ @apply edge-scaffold; @apply edge-adjust-left; :where(. stack) > & { @apply stack-edge-left; } :where(. relative) > & { @apply relative-edge-left; }
1250
+ }
1251
+
1252
+ @utility edge-right {
1253
+ @apply edge-scaffold; @apply edge-adjust-right; :where(. stack) > & { @apply stack-edge-right; } :where(. relative) > & { @apply relative-edge-right; }
1254
+ }
1255
+
1256
+ @utility edge-rightfull {
1257
+ @apply edge-scaffold; @apply edge-adjust-right; :where(. stack) > & { @apply stack-edge-right; } :where(. relative) > & { @apply relative-edge-right; }
1258
+ }
1259
+
1260
+ @utility edge-topleft-start {
1261
+ @apply edge-top; @apply edge-adjust-topleft-start;
1262
+ }
1263
+
1264
+ @utility edge-topleft-end {
1265
+ @apply edge-top; @apply edge-adjust-topleft-end;
1266
+ }
1267
+
1268
+ @utility edge-topright-start {
1269
+ @apply edge-top; @apply edge-adjust-topright-start;
1270
+ }
1271
+
1272
+ @utility edge-topright-end {
1273
+ @apply edge-top; @apply edge-adjust-topright-end;
1274
+ }
1275
+
1276
+ @utility edge-bottomleft-start {
1277
+ @apply edge-bottom; @apply edge-adjust-bottomleft-start;
1278
+ }
1279
+
1280
+ @utility edge-bottomleft-end {
1281
+ @apply edge-bottom; @apply edge-adjust-bottomleft-end;
1282
+ }
1283
+
1284
+ @utility edge-bottomright-start {
1285
+ @apply edge-bottom; @apply edge-adjust-bottomright-start;
1286
+ }
1287
+
1288
+ @utility edge-bottomright-end {
1289
+ @apply edge-bottom; @apply edge-adjust-bottomright-end;
1290
+ }
1291
+
1292
+ @utility fixed-top {
1293
+ position: fixed; top: 0; left: 0; right: 0;
1294
+ }
1295
+
1296
+ @utility fixed-topleft {
1297
+ @apply fixed-top; @apply nudge-topleft;
1298
+
1299
+ right: auto;
1300
+ }
1301
+
1302
+ @utility fixed-topright {
1303
+ @apply fixed-top; @apply nudge-topright;
1304
+
1305
+ left: auto;
1306
+ }
1307
+
1308
+ @utility fixed-topfull {
1309
+ @apply fixed-top; @apply nudge-topfull;
1310
+ }
1311
+
1312
+ @utility fixed-bottom {
1313
+ position: fixed; bottom: 0; left: 0; right: 0;
1314
+ }
1315
+
1316
+ @utility fixed-bottomleft {
1317
+ @apply fixed-bottom; @apply nudge-bottomleft;
1318
+
1319
+ right: auto;
1320
+ }
1321
+
1322
+ @utility fixed-bottomright {
1323
+ @apply fixed-bottom; @apply nudge-bottomright;
1324
+
1325
+ left: auto;
1326
+ }
1327
+
1328
+ @utility fixed-bottomfull {
1329
+ @apply fixed-bottom; @apply nudge-bottomfull;
1330
+ }
1331
+
1332
+ @utility fixed-left {
1333
+ position: fixed; top: 0; bottom: 0; left: 0;
1334
+ }
1335
+
1336
+ @utility fixed-leftfull {
1337
+ @apply fixed-left; @apply nudge-leftfull;
1338
+ }
1339
+
1340
+ @utility fixed-right {
1341
+ position: fixed; top: 0; bottom: 0; right: 0;
1342
+ }
1343
+
1344
+ @utility fixed-rightfull {
1345
+ @apply fixed-right; @apply nudge-rightfull;
1346
+ }
1347
+
1348
+ @utility fixed-center {
1349
+ position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) ;
1350
+ }
1351
+
1352
+ @utility fixed-overlay { pointer-events: none;
1353
+ position: fixed; inset-block: var(--nudge-y, var(--nudge, 0)) ; inset-inline: var(--nudge-x, var(--nudge, 0)) ; display: grid;
1354
+ }
1355
+
1356
+ @utility sticky {
1357
+ position: sticky; top: 0; z-index: var(--z-index, 15) ; :where([class*="grid"] > & ) { align-self: start; }
1358
+ }
1359
+
1360
+ @custom-variant sticking (& . sticking);
1361
+
1362
+ @utility text-stroke {
1363
+ @supports (-webkit-text-stroke-width: 1px) { -webkit-text-stroke-width: var(--stroke-width, .1em) ; -webkit-text-stroke-color: var(--stroke-color) ; paint-order: stroke fill; }
1364
+ }
1365
+
1366
+ @utility text-outline {
1367
+ color: var(--stroke-color) ;
1368
+
1369
+ @supports (-webkit-text-stroke-width: 1px) { font-size: calc(1em - var(--stroke-width, .1em) / 2) ; color: var(--bg-color) ; -webkit-text-stroke-width: var(--stroke-width, 2px) ; -webkit-text-stroke-color: var(--stroke-color) ; paint-order: stroke fill; }
1370
+ }
1371
+
1372
+ .highlight-bg {
1373
+ line-height: 1;
1374
+ background-image: linear-gradient(transparent .25em, var(--color) .25em, var(--color) 1em, transparent 1em);
1375
+ }
1376
+
1377
+ @utility hero {
1378
+ @apply vertical;
1379
+ }
1380
+
1381
+ @utility hero-center {
1382
+ @apply vertical items-center;
1383
+ }