actual-css 0.3.1 → 0.4.1

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 (223) hide show
  1. package/CHANGELOG.md +109 -3
  2. package/README.md +35 -30
  3. package/dist/actual.css +66 -4958
  4. package/dist/actual.full.css +7548 -0
  5. package/dist/actual.full.js +1 -0
  6. package/dist/actual.full.min.css +1 -0
  7. package/dist/actual.js +1 -1
  8. package/dist/actual.min.css +1 -1
  9. package/docs/design-notes/app-ui.md +33 -0
  10. package/docs/design-notes/cascade-layer.md +34 -13
  11. package/docs/design-notes/column-layout.md +677 -0
  12. package/docs/design-notes/enhancement-contract.md +25 -0
  13. package/docs/design-notes/forced-colors.md +3 -0
  14. package/docs/design-notes/grid.md +785 -0
  15. package/docs/design-notes/naming.md +15 -0
  16. package/docs/design-notes/references.md +1 -1
  17. package/docs/design-notes/widget-primitives.md +1 -0
  18. package/docs/navigation.json +12 -2
  19. package/docs/pages/components/alert.md +21 -14
  20. package/docs/pages/components/app-navigation.md +34 -0
  21. package/docs/pages/components/aura.md +1 -1
  22. package/docs/pages/components/avatar.md +16 -6
  23. package/docs/pages/components/badge.md +9 -7
  24. package/docs/pages/components/button.md +46 -16
  25. package/docs/pages/components/card.md +17 -9
  26. package/docs/pages/components/chat.md +8 -8
  27. package/docs/pages/components/dialog.md +7 -7
  28. package/docs/pages/components/drawer.md +3 -3
  29. package/docs/pages/components/fab.md +9 -7
  30. package/docs/pages/components/indicator.md +52 -0
  31. package/docs/pages/components/list.md +62 -0
  32. package/docs/pages/components/navbar.md +15 -8
  33. package/docs/pages/components/pagination.md +4 -3
  34. package/docs/pages/components/rating.md +68 -0
  35. package/docs/pages/components/skeleton.md +4 -4
  36. package/docs/pages/components/spinner.md +5 -5
  37. package/docs/pages/components/steps.md +57 -0
  38. package/docs/pages/components/table.md +30 -5
  39. package/docs/pages/enhancements/flyout.md +15 -15
  40. package/docs/pages/enhancements/overview.md +1 -1
  41. package/docs/pages/enhancements/scrollspy.md +6 -6
  42. package/docs/pages/enhancements/status-bar.md +5 -1
  43. package/docs/pages/enhancements/tabs.md +7 -8
  44. package/docs/pages/enhancements/tooltip.md +1 -1
  45. package/docs/pages/examples/overview.md +47 -22
  46. package/docs/pages/forms/choice-cards.md +11 -6
  47. package/docs/pages/forms/controls.md +1 -1
  48. package/docs/pages/forms/detached-actions.md +1 -1
  49. package/docs/pages/forms/floating-field.md +10 -5
  50. package/docs/pages/forms/form-actions.md +1 -1
  51. package/docs/pages/forms/input-policy.md +1 -1
  52. package/docs/pages/forms/joined-controls.md +4 -4
  53. package/docs/pages/forms/labels.md +6 -6
  54. package/docs/pages/forms/otp.md +33 -1
  55. package/docs/pages/forms/overview.md +19 -19
  56. package/docs/pages/forms/password.md +1 -1
  57. package/docs/pages/forms/range.md +1 -1
  58. package/docs/pages/forms/states-and-sizes.md +44 -48
  59. package/docs/pages/forms/sticky-actions.md +3 -3
  60. package/docs/pages/forms/switch.md +110 -2
  61. package/docs/pages/forms/validation.md +9 -9
  62. package/docs/pages/foundations/philosophy.md +1 -1
  63. package/docs/pages/foundations/theming.md +17 -2
  64. package/docs/pages/foundations/tokens.md +22 -10
  65. package/docs/pages/foundations/typography.md +50 -20
  66. package/docs/pages/guides/bootstrap.md +11 -11
  67. package/docs/pages/guides/integrating-actual-css.md +192 -0
  68. package/docs/pages/guides/introduction.md +23 -26
  69. package/docs/pages/guides/modular-import.md +173 -0
  70. package/docs/pages/guides/progressive-enhancement.md +81 -78
  71. package/docs/pages/guides/tailwind.md +6 -8
  72. package/docs/pages/layout/app-layout.md +57 -0
  73. package/docs/pages/layout/app-shell.md +28 -7
  74. package/docs/pages/layout/center.md +12 -1
  75. package/docs/pages/layout/choosing.md +54 -0
  76. package/docs/pages/layout/column-layout.md +206 -0
  77. package/docs/pages/layout/frame.md +6 -1
  78. package/docs/pages/layout/grid.md +133 -102
  79. package/docs/pages/layout/media.md +1 -1
  80. package/docs/pages/layout/overview.md +15 -2
  81. package/docs/pages/layout/scroll-snap.md +2 -2
  82. package/docs/pages/layout/scroll-target.md +45 -0
  83. package/docs/pages/layout/sidebar-layout.md +38 -18
  84. package/docs/pages/layout/stack.md +70 -1
  85. package/docs/pages/layout/switcher.md +10 -26
  86. package/docs/pages/layout/topbar.md +2 -2
  87. package/docs/pages/patterns/actions.md +1 -1
  88. package/docs/pages/patterns/code-block.md +1 -1
  89. package/docs/pages/patterns/exclusive-accordion.md +1 -1
  90. package/docs/pages/patterns/hierarchical-nav.md +1 -1
  91. package/docs/pages/patterns/icon-input.md +1 -1
  92. package/docs/pages/patterns/icon-slot.md +61 -0
  93. package/docs/pages/patterns/intent-nesting.md +1 -1
  94. package/docs/pages/patterns/navigation-list.md +1 -1
  95. package/docs/pages/patterns/overview.md +1 -1
  96. package/docs/pages/patterns/structured-lists.md +38 -40
  97. package/docs/pages/utilities/accessibility.md +3 -3
  98. package/docs/pages/utilities/flex.md +15 -15
  99. package/docs/pages/utilities/links.md +4 -4
  100. package/docs/pages/utilities/list.md +8 -8
  101. package/docs/pages/utilities/overflow.md +8 -8
  102. package/docs/pages/utilities/overview.md +1 -1
  103. package/docs/pages/utilities/shape.md +3 -3
  104. package/docs/pages/utilities/sizing-wrapping.md +23 -16
  105. package/docs/pages/utilities/spacing.md +20 -20
  106. package/docs/pages/utilities/text.md +10 -10
  107. package/llms.txt +46 -4
  108. package/package.json +43 -13
  109. package/scripts/reserved-classes.json +278 -0
  110. package/src/cli/actual-css.js +133 -0
  111. package/src/css/actual.css +1 -31
  112. package/src/css/actual.full.css +11 -2
  113. package/src/css/components/alert.css +17 -4
  114. package/src/css/components/app-nav.css +76 -0
  115. package/src/css/components/avatar.css +4 -0
  116. package/src/css/components/badge.css +19 -19
  117. package/src/css/components/breadcrumb.css +1 -1
  118. package/src/css/components/button.css +20 -32
  119. package/src/css/components/card.css +34 -9
  120. package/src/css/{optional → components}/chat.css +0 -6
  121. package/src/css/components/drawer.css +24 -5
  122. package/src/css/{optional → components}/fab.css +1 -7
  123. package/src/css/components/flyout.css +5 -0
  124. package/src/css/components/index.css +37 -27
  125. package/src/css/components/indicator.css +47 -0
  126. package/src/css/components/join.css +8 -1
  127. package/src/css/components/key.css +2 -0
  128. package/src/css/components/list.css +83 -0
  129. package/src/css/components/menu.css +11 -8
  130. package/src/css/components/meter.css +4 -1
  131. package/src/css/components/modal.css +5 -17
  132. package/src/css/components/navbar.css +6 -15
  133. package/src/css/components/pagination.css +11 -0
  134. package/src/css/components/rating.css +101 -0
  135. package/src/css/components/spinner.css +5 -0
  136. package/src/css/components/status-bar.css +5 -0
  137. package/src/css/components/steps.css +122 -0
  138. package/src/css/components/surface.css +5 -0
  139. package/src/css/components/tab.css +20 -22
  140. package/src/css/components/table.css +6 -0
  141. package/src/css/components/tooltip.css +3 -7
  142. package/src/css/{focus.css → core/focus.css} +0 -8
  143. package/src/css/core/index.css +9 -0
  144. package/src/css/core/print.css +18 -0
  145. package/src/css/{theme.css → core/theme.css} +19 -19
  146. package/src/css/{tokens.css → core/tokens.css} +16 -4
  147. package/src/css/{variants.css → core/variants.css} +3 -2
  148. package/src/css/{optional → effects}/aura.css +1 -10
  149. package/src/css/effects/index.css +2 -0
  150. package/src/css/forms/base.css +8 -0
  151. package/src/css/forms/choice-card.css +7 -15
  152. package/src/css/forms/choice.css +49 -37
  153. package/src/css/forms/control.css +4 -1
  154. package/src/css/forms/custom-select.css +2 -0
  155. package/src/css/{optional → forms}/floating-field.css +25 -7
  156. package/src/css/forms/index.css +10 -13
  157. package/src/css/forms/native.css +15 -2
  158. package/src/css/{optional → forms}/otp.css +25 -16
  159. package/src/css/forms/range.css +14 -4
  160. package/src/css/forms/switch.css +31 -29
  161. package/src/css/layout/app-layout.css +102 -0
  162. package/src/css/layout/app-shell.css +6 -0
  163. package/src/css/layout/center.css +14 -0
  164. package/src/css/layout/cluster.css +21 -0
  165. package/src/css/layout/column-layout.css +144 -0
  166. package/src/css/layout/container-query.css +15 -0
  167. package/src/css/layout/frame.css +19 -0
  168. package/src/css/layout/grid.css +155 -0
  169. package/src/css/layout/index.css +44 -0
  170. package/src/css/layout/measure.css +9 -0
  171. package/src/css/layout/media.css +10 -0
  172. package/src/css/layout/scroll-target.css +15 -0
  173. package/src/css/layout/scroller.css +41 -0
  174. package/src/css/layout/sidebar-layout.css +52 -0
  175. package/src/css/layout/stack.css +21 -0
  176. package/src/css/layout/switcher.css +23 -0
  177. package/src/css/{optional/layout-extra.css → layout/topbar.css} +0 -20
  178. package/src/css/typography/index.css +5 -0
  179. package/src/css/typography/lead.css +7 -0
  180. package/src/css/{components → typography}/overline.css +2 -2
  181. package/src/css/{prose.css → typography/prose.css} +57 -38
  182. package/src/css/{utilities.css → utilities/base.css} +2 -0
  183. package/src/css/utilities/index.css +3 -0
  184. package/src/js/escape.js +36 -0
  185. package/src/js/flyout.js +22 -12
  186. package/src/js/full.js +26 -0
  187. package/src/js/index.js +5 -21
  188. package/src/js/surface.js +1 -31
  189. package/src/js/tooltip.js +48 -19
  190. package/src/js/validation.js +1 -1
  191. package/src/tooling/css-bundle.js +308 -0
  192. package/dist/actual-themes.min.css +0 -1
  193. package/dist/optional.css +0 -1048
  194. package/dist/optional.min.css +0 -1
  195. package/docs/pages/guides/optional-components.md +0 -33
  196. package/docs/pages/layout/list.md +0 -41
  197. package/src/css/grid.css +0 -109
  198. package/src/css/layout.css +0 -123
  199. package/src/css/optional/index.css +0 -10
  200. package/src/css/optional/scroller.css +0 -63
  201. package/src/css/print.css +0 -47
  202. package/src/css/themes/corporate.css +0 -60
  203. package/src/css/themes/cyberpunk.css +0 -60
  204. package/src/css/themes/dim.css +0 -33
  205. package/src/css/themes/edge.css +0 -117
  206. package/src/css/themes/forest.css +0 -65
  207. package/src/css/themes/gradient.css +0 -97
  208. package/src/css/themes/index.css +0 -47
  209. package/src/css/themes/indigo.css +0 -33
  210. package/src/css/themes/lavender.css +0 -66
  211. package/src/css/themes/mono.css +0 -60
  212. package/src/css/themes/neon.css +0 -66
  213. package/src/css/themes/ocean.css +0 -60
  214. package/src/css/themes/petrol.css +0 -64
  215. package/src/css/themes/spruce.css +0 -64
  216. package/src/css/themes/square.css +0 -65
  217. package/src/css/themes/sunset.css +0 -66
  218. /package/src/css/{base.css → core/base.css} +0 -0
  219. /package/src/css/{intents.css → core/intents.css} +0 -0
  220. /package/src/css/{reset.css → core/reset.css} +0 -0
  221. /package/src/css/{optional → layout}/scroll-snap.css +0 -0
  222. /package/src/css/{optional/typography-fluid.css → typography/fluid.css} +0 -0
  223. /package/src/css/{optional/utilities-extra.css → utilities/extra.css} +0 -0
@@ -1,64 +0,0 @@
1
- /* Spruce — deep spruce-green primary with copper secondary over sea-green
2
- * tinted neutrals. Paired light/dark via light-dark(). The green primary is
3
- * deliberately far from success in hue (174 vs 135) and saturation so the two
4
- * never read as the same signal; keep that split when adjusting either. */
5
- [data-theme="spruce"] {
6
- color-scheme: light dark;
7
-
8
- --primary: hsl(174 45% 24%);
9
- --primary-fg: hsl(160 30% 97%);
10
- --secondary: hsl(24 48% 42%);
11
- --secondary-fg: hsl(0 0% 98%);
12
- --success: hsl(135 38% 33%);
13
- --success-fg: hsl(0 0% 98%);
14
- --warning: hsl(42 72% 35%);
15
- --warning-fg: hsl(0 0% 98%);
16
- --danger: hsl(3 55% 44%);
17
- --danger-fg: hsl(0 0% 98%);
18
- --neutral: hsl(185 8% 40%);
19
- --neutral-fg: hsl(0 0% 98%);
20
-
21
- --surface: hsl(0 0% 100%);
22
- --surface-raised: hsl(160 20% 98%);
23
- --surface-subtle: hsl(168 18% 95%);
24
- --surface-solid: hsl(185 25% 11%);
25
-
26
- --text: hsl(185 25% 11%);
27
- --text-muted: hsl(183 9% 40%);
28
- --text-subtle: hsl(182 7% 55%);
29
-
30
- --border: hsl(170 12% 86%);
31
- --focus: var(--primary);
32
- --focus-ring: hsl(174 45% 24% / 0.22);
33
- }
34
-
35
- @supports (color: light-dark(red, blue)) {
36
- [data-theme="spruce"] {
37
- --primary: light-dark(hsl(174 45% 24%), hsl(170 35% 66%));
38
- --primary-fg: light-dark(hsl(160 30% 97%), hsl(174 40% 9%));
39
- --secondary: light-dark(hsl(24 48% 42%), hsl(26 50% 70%));
40
- --secondary-fg: light-dark(hsl(0 0% 98%), hsl(26 35% 11%));
41
- --success: light-dark(hsl(135 38% 33%), hsl(135 35% 60%));
42
- --success-fg: light-dark(hsl(0 0% 98%), hsl(135 35% 8%));
43
- --warning: light-dark(hsl(42 72% 35%), hsl(44 60% 62%));
44
- --warning-fg: light-dark(hsl(0 0% 98%), hsl(42 35% 10%));
45
- --danger: light-dark(hsl(3 55% 44%), hsl(3 58% 69%));
46
- --danger-fg: light-dark(hsl(0 0% 98%), hsl(3 35% 10%));
47
- --neutral: light-dark(hsl(185 8% 40%), hsl(183 10% 70%));
48
- --neutral-fg: light-dark(hsl(0 0% 98%), hsl(185 18% 10%));
49
-
50
- --surface: light-dark(hsl(0 0% 100%), hsl(182 20% 8%));
51
- --surface-raised: light-dark(hsl(160 20% 98%), hsl(182 17% 11%));
52
- --surface-subtle: light-dark(hsl(168 18% 95%), hsl(182 14% 15%));
53
- --surface-solid: light-dark(hsl(185 25% 11%), hsl(0 0% 96%));
54
-
55
- --text: light-dark(hsl(185 25% 11%), hsl(175 12% 94%));
56
- --text-muted: light-dark(hsl(183 9% 40%), hsl(180 8% 66%));
57
- --text-subtle: light-dark(hsl(182 7% 55%), hsl(180 7% 52%));
58
-
59
- --border: light-dark(hsl(170 12% 86%), hsl(182 12% 23%));
60
- --focus-ring: light-dark(hsl(174 45% 24% / 0.22), hsl(170 35% 66% / 0.28));
61
- --hover-overlay: light-dark(hsl(185 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
62
- --shadow-color: light-dark(hsl(185 30% 10%), hsl(0 0% 0%));
63
- }
64
- }
@@ -1,65 +0,0 @@
1
- [data-theme="square"] {
2
- color-scheme: light dark;
3
-
4
- --primary: hsl(220 90% 56%);
5
- --primary-fg: white;
6
- --secondary: hsl(270 60% 56%);
7
- --secondary-fg: white;
8
- --success: hsl(145 60% 32%);
9
- --success-fg: white;
10
- --warning: hsl(38 92% 50%);
11
- --warning-fg: hsl(35 30% 12%);
12
- --danger: hsl(0 75% 51%);
13
- --danger-fg: white;
14
- --neutral: hsl(220 10% 42%);
15
- --neutral-fg: white;
16
-
17
- --surface: hsl(0 0% 100%);
18
- --surface-raised: hsl(0 0% 100%);
19
- --surface-subtle: hsl(220 20% 96%);
20
- --surface-solid: hsl(222 22% 12%);
21
-
22
- --text: hsl(222 22% 12%);
23
- --text-muted: hsl(220 10% 42%);
24
- --text-subtle: hsl(220 8% 55%);
25
-
26
- --border: hsl(220 15% 88%);
27
- --focus: var(--primary);
28
- --focus-ring: hsl(220 90% 56% / 0.22);
29
- --hover-overlay: hsl(220 30% 10% / 0.04);
30
-
31
- --radius: 0;
32
- --radius-sm: 0;
33
- --radius-lg: 0;
34
- }
35
-
36
- @supports (color: light-dark(red, blue)) {
37
- [data-theme="square"] {
38
- --primary: light-dark(hsl(220 90% 56%), hsl(220 75% 80%));
39
- --primary-fg: light-dark(white, hsl(220 30% 12%));
40
- --secondary: light-dark(hsl(270 60% 56%), hsl(270 68% 80%));
41
- --secondary-fg: light-dark(white, hsl(270 30% 12%));
42
- --success: light-dark(hsl(145 60% 32%), hsl(145 68% 80%));
43
- --success-fg: light-dark(white, hsl(145 30% 12%));
44
- --warning: light-dark(hsl(38 92% 50%), hsl(38 75% 80%));
45
- --warning-fg: light-dark(hsl(35 30% 12%), hsl(38 30% 12%));
46
- --danger: light-dark(hsl(0 75% 51%), hsl(0 75% 80%));
47
- --danger-fg: light-dark(white, hsl(0 30% 12%));
48
- --neutral: light-dark(hsl(220 10% 42%), hsl(220 18% 80%));
49
- --neutral-fg: light-dark(white, hsl(220 30% 12%));
50
-
51
- --surface: light-dark(hsl(0 0% 100%), hsl(222 18% 8%));
52
- --surface-raised: light-dark(hsl(0 0% 100%), hsl(222 16% 11%));
53
- --surface-subtle: light-dark(hsl(220 20% 96%), hsl(222 14% 16%));
54
- --surface-solid: light-dark(hsl(222 22% 12%), hsl(0 0% 96%));
55
-
56
- --text: light-dark(hsl(222 22% 12%), hsl(0 0% 96%));
57
- --text-muted: light-dark(hsl(220 10% 42%), hsl(222 8% 68%));
58
- --text-subtle: light-dark(hsl(220 8% 55%), hsl(222 7% 55%));
59
-
60
- --border: light-dark(hsl(220 15% 88%), hsl(222 12% 24%));
61
- --focus-ring: light-dark(hsl(220 90% 56% / 0.22), hsl(220 75% 80% / 0.28));
62
- --hover-overlay: light-dark(hsl(220 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
63
- --shadow-color: light-dark(hsl(220 30% 10%), hsl(0 0% 0%));
64
- }
65
- }
@@ -1,66 +0,0 @@
1
- [data-theme="sunset"] {
2
- color-scheme: light dark;
3
-
4
- --primary: hsl(16 84% 43%);
5
- --primary-fg: white;
6
- --secondary: hsl(330 60% 52%);
7
- --secondary-fg: white;
8
- --success: hsl(142 52% 34%);
9
- --success-fg: white;
10
- --warning: hsl(42 94% 52%);
11
- --warning-fg: hsl(30 35% 12%);
12
- --danger: hsl(358 72% 52%);
13
- --danger-fg: white;
14
- --neutral: hsl(24 12% 38%);
15
- --neutral-fg: white;
16
-
17
- --surface: hsl(34 70% 97%);
18
- --surface-raised: hsl(30 80% 99%);
19
- --surface-subtle: hsl(28 62% 92%);
20
- --surface-solid: hsl(18 34% 18%);
21
-
22
- --text: hsl(20 34% 14%);
23
- --text-muted: hsl(20 12% 42%);
24
- --text-subtle: hsl(20 10% 55%);
25
-
26
- --border: hsl(25 38% 84%);
27
- --focus: var(--primary);
28
- --focus-ring: hsl(16 84% 43% / 0.22);
29
-
30
- /* Warm chrome — demonstrates selection and shadow-color theming. The
31
- selection pair rides the intent tokens, so it adapts to dark for free. */
32
- --selection-bg: var(--secondary);
33
- --selection-fg: var(--secondary-fg);
34
- --shadow-color: hsl(20 60% 12%);
35
- }
36
-
37
- @supports (color: light-dark(red, blue)) {
38
- [data-theme="sunset"] {
39
- --primary: light-dark(hsl(16 84% 43%), hsl(16 75% 80%));
40
- --primary-fg: light-dark(white, hsl(16 30% 12%));
41
- --secondary: light-dark(hsl(330 60% 52%), hsl(330 68% 80%));
42
- --secondary-fg: light-dark(white, hsl(330 30% 12%));
43
- --success: light-dark(hsl(142 52% 34%), hsl(142 60% 80%));
44
- --success-fg: light-dark(white, hsl(142 30% 12%));
45
- --warning: light-dark(hsl(42 94% 52%), hsl(42 75% 80%));
46
- --warning-fg: light-dark(hsl(30 35% 12%), hsl(42 30% 12%));
47
- --danger: light-dark(hsl(358 72% 52%), hsl(358 75% 80%));
48
- --danger-fg: light-dark(white, hsl(358 30% 12%));
49
- --neutral: light-dark(hsl(24 12% 38%), hsl(24 20% 80%));
50
- --neutral-fg: light-dark(white, hsl(24 30% 12%));
51
-
52
- --surface: light-dark(hsl(34 70% 97%), hsl(20 18% 8%));
53
- --surface-raised: light-dark(hsl(30 80% 99%), hsl(20 16% 11%));
54
- --surface-subtle: light-dark(hsl(28 62% 92%), hsl(20 14% 16%));
55
- --surface-solid: light-dark(hsl(18 34% 18%), hsl(0 0% 96%));
56
-
57
- --text: light-dark(hsl(20 34% 14%), hsl(0 0% 96%));
58
- --text-muted: light-dark(hsl(20 12% 42%), hsl(20 8% 68%));
59
- --text-subtle: light-dark(hsl(20 10% 55%), hsl(20 7% 55%));
60
-
61
- --border: light-dark(hsl(25 38% 84%), hsl(20 12% 24%));
62
- --focus-ring: light-dark(hsl(16 84% 43% / 0.22), hsl(16 75% 80% / 0.28));
63
- --hover-overlay: light-dark(hsl(220 30% 10% / 0.04), hsl(0 0% 100% / 0.06));
64
- --shadow-color: light-dark(hsl(20 60% 12%), hsl(20 40% 2%));
65
- }
66
- }
File without changes
File without changes
File without changes
File without changes