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
package/CHANGELOG.md CHANGED
@@ -1,8 +1,114 @@
1
- # Changelog
1
+ # Actual CSS Changelog
2
2
 
3
- All notable changes will be documented here.
3
+ ## [Unreleased]
4
+
5
+
6
+ ## [0.4.1] - 2026-08-25
7
+
8
+ ### Added
9
+
10
+ * `indicator`, `rating`, and intrinsically responsive `steps` components.
11
+ * `list` / `list-item` for repeated application rows with leading, content, and trailing regions.
12
+ * `app-nav` and `app-layout` primitives for adaptive application shells.
13
+ * `.sidebar-layout.reverse` to place the sidebar visually first while keeping main-content-first DOM order.
14
+ * `icon-slot` documented pattern for predictable contained icon regions.
15
+ * `check:doc-classes` guardrail for validating framework classes used in documentation.
16
+ * New **Actual Tasks** mobile/application demo.
17
+ * `docs-geometry` guardrail asserting the documentation shell can reach the structural-grid thresholds, read from `grid.css` rather than hard-coded.
18
+ * `--width` on `shot:page` for captures at an exact layout viewport; the flag was previously accepted and silently ignored.
19
+
20
+ ### Changed
21
+
22
+ * Improved card and prose vertical rhythm:
23
+ * bare cards now own direct-child spacing through `--card-gap`;
24
+ * direct child block margins are normalized;
25
+ * `.stack` and `.media` keep ownership when composed with `.card`;
26
+ * prose sibling rhythm is more deterministic.
27
+ * `steps` now use one intrinsic responsive layout, filling available space and scrolling only when `--step-min` cannot be maintained.
28
+ * Added `--step-marker-radius`, `--step-connector`, and `--step-complete-mark` customization hooks.
29
+ * Improved `app-layout` / `app-nav` composition with framework-owned safe-area handling and automatic FAB/navigation avoidance.
30
+ * Clarified that `app-layout` targets persistent application shells rather than regular document pages.
31
+ * Simplified forced-colors support: native/system colors are preferred, with framework overrides limited to structural states that would otherwise disappear.
32
+ * Expanded documentation around lists, application layouts, icon containment, and framework-vs-application CSS ownership.
33
+ * Documented reference container sizes for `.grid-N`, including that the thresholds describe the query container's content box rather than the viewport.
34
+ * Recorded why the framework exposes no global breakpoint scale: container width is not a monotonic function of viewport width, measured across a composition that reveals a sidebar as the viewport grows.
35
+
36
+ ### Fixed
37
+
38
+ * Tooltip cleanup now follows enhancement-root membership correctly, including triggers moved outside the observed root while still connected.
39
+ * Documentation home-page overflow and minimum-size issues.
40
+ * Documentation demo previews could not reach the structural-grid thresholds. The article column capped every live preview at 45.9rem at any viewport width, so `.grid-3` demos rendered one column and `.grid-4` / `.grid-6` two — including on the page documenting `6 -> 3 -> 2 -> 1`. No framework CSS was involved or changed.
41
+ * Invalid or misleading documentation class examples.
42
+ * Steps sizing and narrow-container behavior.
43
+
44
+
45
+ ## [0.4.0] - 2026-08-22
46
+
47
+ ### Added
48
+
49
+ * Modular CSS architecture with `core`, `layout`, `typography`, `forms`, `components`, `effects`, and `utilities` families, with family and individual-module imports.
50
+ * `actual-css/full` / `actual.full.*` bundles for the complete CSS and JS framework.
51
+ * `.column-layout` with `column-span-1…12` and `column-start-1…12` for explicit opt-in 12-column composition.
52
+ * Intrinsic `.switcher` and `.sidebar-layout` layout recipes, plus explicit layout-selection guidance.
53
+ * `.scroll-target` with `--scroll-target-offset` for hash links and `scrollIntoView()` below sticky UI.
54
+ * Dedicated `typography/lead.css` and `layout/measure.css`; `.measure` exposes `--measure`.
55
+ * Generated and published `reserved-classes.json` for the framework-owned class namespace.
56
+ * Native `accent-color` theming for unstyled platform controls, recomputed across `[data-theme]` islands.
57
+ * “Building with Actual CSS” integration guide covering theme tokens, layout selection, hooks, utilities, and application CSS.
58
+ * Expanded build, architecture, compatibility, browser-layout, package, and generated-output guardrails, including real `npm pack` verification.
59
+ * `brutalist` theme.
60
+ * `--soft-fg-mix` for tuning soft foreground ink.
61
+ * Optional `--link` override for prose link ink.
62
+ * `check:color-space` guardrail for intent/context color interpolation.
63
+ * Bundle tool.
64
+
65
+ ### Changed
66
+
67
+ * The bare `actual-css` entrypoint is now the minimal core; use `actual-css/full` for all CSS families.
68
+ * `actual-css/js` is now the enhancement loader only; use `actual-css/js/full` or `actual.full.js` for the complete pre-registered runtime.
69
+ * `.grid` remains space-driven through `--grid-min`; `.grid-2/3/4/6` now express bounded structural density and degrade responsively.
70
+ * `.container-query` optionally gives `.grid-N` balanced divisor-based subdivisions.
71
+ * `--grid-columns` is the explicit escape hatch for exact custom tracks.
72
+ * `.sidebar-layout` now uses intrinsic flex wrapping instead of a hidden breakpoint contract.
73
+ * Grid primitives preserve overflow-safe track sizing.
74
+ * `.card` is now a column flex container and direct footers can anchor to the bottom.
75
+ * Focus is now a core invariant.
76
+ * Focus rings follow each theme island's `--focus`.
77
+ * `.prose` adds native description-list styling.
78
+ * `.lead` and `.measure` are independent from `.prose`.
79
+ * Utilities are split between compact framework shortcuts and optional property/value helpers.
80
+ * Preset theme palettes are reference/demo material rather than package API.
81
+ * `llms.txt` documents package splits, layout selection, the class manifest, and application-CSS integration.
82
+ * Biome covers `src/`, `scripts/`, and `tests/`.
83
+ * Intent/context color mixes use OKLab.
84
+ * Documentation syntax highlighting uses its own local palette.
85
+ * CI and browser diagnostics were updated for Bun 1.4 and verify committed generated output.
86
+
87
+ ### Fixed
88
+
89
+ * Forced-colors and theme-island focus/state handling.
90
+ * Grid child min-content overflow.
91
+ * Drawer RTL behavior.
92
+ * Badge typography token usage.
93
+ * `.sr-only` legacy fallback.
94
+ * `dim` and `indigo` shadows.
95
+ * Vendor pseudo-element handling for color inputs and meters.
96
+ * Tooltip Escape handling and LIFO dismissal.
97
+ * OTP, switch, joined-control, floating-field, validation, and native color-control edge cases.
98
+ * Flyout lifecycle cleanup.
99
+ * Prose spacing and component focus regressions.
100
+ * Compatibility checks matching feature names in CSS comments.
101
+ * Navbar and status-bar guidance.
102
+
103
+ ### Breaking
104
+
105
+ * `actual-css` now contains only the core. Use `actual-css/full` for the previous full-framework behavior.
106
+ * `actual-css/js` / `actual.js` now contain only the enhancement loader. Use `actual-css/js/full` / `actual.full.js` for the previous complete runtime.
107
+ * `.grid-N` no longer means a fixed N-column grid at every width.
108
+ * `.sidebar-layout` no longer depends on `.container-query` or the old fixed breakpoint.
109
+ * `.card` now establishes a column flex formatting context.
110
+ * Direct imports of `typography/prose` no longer include `.lead` or `.measure`.
4
111
 
5
- This project follows Keep a Changelog and uses semver, including during 0.x.
6
112
 
7
113
  ## [0.3.1] - 2026-08-20
8
114
 
package/README.md CHANGED
@@ -2,9 +2,11 @@
2
2
 
3
3
  Plain CSS component framework for new projects. Semantic classes, shared variants, small tokens, theme hooks, and progressive enhancement.
4
4
 
5
- Actual CSS claims a small set (see `reserved-classes.json`) of global class names.
5
+ Actual CSS claims a documented set of global class names; the package publishes
6
+ it as [`actual-css/reserved-classes.json`](scripts/reserved-classes.json).
6
7
 
7
- For existing projects: cascade layers, import order, or an optional prefix transform.
8
+ For existing projects: use cascade layers, import order, or your own build-time
9
+ prefix transform.
8
10
 
9
11
  ## Install
10
12
 
@@ -15,38 +17,39 @@ npm install actual-css
15
17
  Import the full framework in your CSS:
16
18
 
17
19
  ```css
18
- @import "actual-css";
20
+ @import "actual-css/full";
19
21
  ```
20
22
 
23
+ `actual-css/full` ships every functional family. The bare `actual-css` entrypoint is the minimal core (reset, tokens, theme, base, intents, variants, focus, print).
24
+
21
25
  Or import only the pieces you use:
22
26
 
23
27
  ```css
24
- @import "actual-css/css/reset";
25
- @import "actual-css/css/base";
26
- @import "actual-css/css/tokens";
27
- @import "actual-css/css/theme";
28
- @import "actual-css/css/intents";
29
- @import "actual-css/css/variants";
28
+ @import "actual-css/css";
30
29
  @import "actual-css/css/layout";
31
- @import "actual-css/css/grid";
32
30
  @import "actual-css/css/components/button";
33
31
  @import "actual-css/css/components/card";
34
32
  @import "actual-css/css/forms";
35
33
  @import "actual-css/css/components/flyout";
36
34
  @import "actual-css/css/utilities";
37
- @import "actual-css/css/components/join";
38
- /* Keep the focus baseline after components and controls. */
39
- @import "actual-css/css/focus";
40
35
  ```
41
36
 
42
- `focus` is the final interactive baseline in modular builds: older browsers
43
- retain a visible `:focus` outline, while browsers with `:focus-visible` avoid
44
- showing it for pointer focus.
37
+ `actual-css/css` is the minimal core. Family manifests (`css/layout`,
38
+ `css/components`, `css/typography`, `css/effects`, `css/utilities`) and
39
+ their modules map one-to-one to `src/css/`; `css/forms` is the exception —
40
+ it points at the native-controls base, with `css/forms/all` exposing the
41
+ complete Forms family. See the
42
+ [modular import guide](docs/pages/guides/modular-import.md) for the full map.
43
+
44
+ For a flattened custom bundle, import the source entrypoints you want from
45
+ `actual-css/css` and run `npx actual-css bundle src/app.css --out public/app.css --minify`.
46
+ The CLI resolves package subpaths and relative files, then inlines them without
47
+ transpiling modern CSS.
45
48
 
46
- You can also use the compiled file directly:
49
+ You can also use the compiled full bundle directly:
47
50
 
48
51
  ```html
49
- <link rel="stylesheet" href="actual.min.css">
52
+ <link rel="stylesheet" href="actual.full.min.css">
50
53
  ```
51
54
 
52
55
  ## Usage
@@ -96,14 +99,14 @@ Undocumented `is-*` classes are runtime internals.
96
99
 
97
100
  **Theme hooks** — public tokens for color, radius, shadow, motion, and typography. Reference presets in `src/css/themes/` are demo material, not default CSS or public package entrypoints.
98
101
 
99
- ## Optional CSS
100
-
101
- ```css
102
- @import "actual-css/css/layer";
103
- @import "actual-css/css/optional/index";
104
- ```
102
+ ## Modular CSS
105
103
 
106
- Browse [`src/css/optional/`](src/css/optional/) for available modules such as custom scrollbars, scroll snap rails, extra utilities, and optional layout helpers.
104
+ The family manifests are the module catalog: `core`, `layout`, `typography`,
105
+ `forms`, `components`, `effects`, and `utilities` under `src/css/`, each with
106
+ an `index.css` manifest and per-module files. Import a manifest to get the
107
+ family, or a single file for one module. See the
108
+ [modular import guide](docs/pages/guides/modular-import.md) for the full map
109
+ of module names to import paths.
107
110
 
108
111
  ## JavaScript enhancers
109
112
 
@@ -114,7 +117,7 @@ Presentation (`class`) and behaviour (`data-enhance`) are separate layers — im
114
117
  Use the full module:
115
118
 
116
119
  ```html
117
- <script src="actual.js" type="module"></script>
120
+ <script src="actual.full.js" type="module"></script>
118
121
  ```
119
122
 
120
123
  Or import only the enhancers you need:
@@ -127,18 +130,20 @@ import "actual-css/js/mask";
127
130
  import "actual-css/js/tooltip";
128
131
  ```
129
132
 
130
- The package does not maintain separate partial bundles. Modular entrypoints map to source files, so each project can compose the framework shape it needs. To customize the full runtime, comment the imports you do not want in `src/js/index.js` and rebuild the JavaScript bundle. JavaScript modules are safe to import during server-side rendering; outside a browser, registration is a no-op.
133
+ The package does not maintain separate partial bundles. Modular entrypoints map to source files, so each project can compose the framework shape it needs. To customize the full runtime, comment the imports you do not want in `src/js/full.js` and rebuild the JavaScript bundle. JavaScript modules are safe to import during server-side rendering; outside a browser, registration is a no-op.
131
134
 
132
135
  For project-specific behavior, use `actual-css/js/enhance` and the small input helpers rather than patching built-in modules. See [Progressive Enhancements](docs/pages/enhancements/overview.md) for custom filters, textarea autogrow, ajax forms, and htmx-like patterns.
133
136
 
134
137
  ## Distribution
135
138
 
136
- * `dist/actual.css` — readable modern CSS.
137
- * `dist/actual.min.css` — the same CSS, minified for production.
139
+ * `dist/actual.css` — readable core CSS.
140
+ * `dist/actual.min.css` — the core, minified for production.
141
+ * `dist/actual.full.css` — readable full-bundle CSS (every family).
142
+ * `dist/actual.full.min.css` — the full bundle, minified for production.
138
143
 
139
144
  Modern syntax such as `light-dark()`, `color-mix()`, `@container`, `:has()`, `100dvh`, and `100vi` is preserved in the distributed files.
140
145
 
141
- Actual CSS does not currently ship a separate compatibility build. It is designed as progressive enhancement: modern features are guarded with `@supports` where needed, while older browsers still receive core layout, forms, and components.
146
+ Actual CSS does not currently ship a separate compatibility build. It is designed as progressive enhancement: modern features are guarded with `@supports` where needed, while older browsers still receive the core styles and the layout, forms, and components.
142
147
 
143
148
  For more conservative fallbacks, import and compose the source entrypoints directly.
144
149