actual-css 0.9.0 → 0.9.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.
- package/CHANGELOG.md +25 -0
- package/components.json +2 -0
- package/dist/actual.css +10 -3
- package/dist/actual.full.css +238 -71
- package/dist/actual.full.js +1 -1
- package/dist/actual.full.min.css +1 -1
- package/dist/actual.min.css +1 -1
- package/docs/pages/foundations/tokens.md +1 -1
- package/docs/pages/guides/progressive-enhancement.md +12 -8
- package/package.json +159 -159
- package/src/css/components/accordion.css +2 -0
- package/src/css/components/actions.css +2 -0
- package/src/css/components/alert.css +2 -0
- package/src/css/components/app-nav.css +2 -0
- package/src/css/components/avatar.css +2 -0
- package/src/css/components/badge.css +2 -0
- package/src/css/components/breadcrumb.css +2 -0
- package/src/css/components/busy.css +2 -0
- package/src/css/components/button.css +2 -0
- package/src/css/components/card.css +2 -0
- package/src/css/components/chat.css +2 -0
- package/src/css/components/data-list.css +2 -0
- package/src/css/components/drawer.css +35 -22
- package/src/css/components/fab.css +2 -0
- package/src/css/components/flyout.css +2 -0
- package/src/css/components/indicator.css +2 -0
- package/src/css/components/join.css +2 -0
- package/src/css/components/key.css +2 -0
- package/src/css/components/list.css +2 -0
- package/src/css/components/meter.css +2 -0
- package/src/css/components/modal.css +47 -40
- package/src/css/components/navbar.css +2 -0
- package/src/css/components/pagination.css +2 -0
- package/src/css/components/progress.css +2 -0
- package/src/css/components/rating.css +2 -0
- package/src/css/components/scrollspy.css +2 -0
- package/src/css/components/skeleton.css +2 -0
- package/src/css/components/spinner.css +2 -0
- package/src/css/components/status-bar.css +2 -0
- package/src/css/components/steps.css +2 -0
- package/src/css/components/tab.css +2 -0
- package/src/css/components/table.css +2 -0
- package/src/css/components/tooltip.css +2 -0
- package/src/css/core/print.css +3 -0
- package/src/css/core/variants.css +7 -3
- package/src/css/effects/aura.css +2 -0
- package/src/css/forms/choice-card.css +4 -0
- package/src/css/forms/control.css +2 -0
- package/src/css/forms/floating-field.css +5 -1
- package/src/css/forms/form-actions.css +2 -0
- package/src/css/forms/form.css +2 -0
- package/src/css/forms/input-icon.css +2 -0
- package/src/css/forms/native.css +2 -0
- package/src/css/forms/otp.css +10 -0
- package/src/css/forms/range.css +2 -0
- package/src/css/forms/select.css +2 -0
- package/src/css/forms/switch.css +2 -0
- package/src/css/forms/validation.css +2 -0
- package/src/css/layout/app-layout.css +2 -0
- package/src/css/layout/app-shell.css +5 -1
- package/src/css/layout/center.css +2 -0
- package/src/css/layout/cluster.css +2 -0
- package/src/css/layout/column-layout.css +2 -0
- package/src/css/layout/frame.css +2 -0
- package/src/css/layout/grid.css +2 -0
- package/src/css/layout/media.css +2 -1
- package/src/css/layout/scroll-snap.css +2 -0
- package/src/css/layout/scroll-target.css +2 -0
- package/src/css/layout/sidebar-layout.css +2 -0
- package/src/css/layout/stack.css +2 -1
- package/src/css/layout/switcher.css +2 -0
- package/src/css/layout/topbar.css +2 -0
- package/src/css/typography/fluid.css +2 -0
- package/src/css/typography/lead.css +2 -1
- package/src/css/typography/overline.css +2 -0
- package/src/css/typography/prose.css +2 -0
- package/src/css/utilities/base.css +6 -1
- package/src/js/context-menu.js +56 -15
- package/src/js/enhancement-loader.js +5 -1
- package/src/js/escape.js +11 -1
- package/src/js/flyout.js +6 -1
- package/src/js/focus.js +8 -3
- package/src/js/surface.js +28 -0
- package/src/js/tooltip.js +10 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- `.modal.scrollable` and `.drawer` body scrollports reserve inline focus-ring space without changing header, body, or footer alignment, so full-width controls no longer clip their focus indicator.
|
|
8
|
+
- `:where(dialog).modal` and `:where(dialog).drawer` roots now have 0-1-0 specificity like other components, allowing a later application class to override their defaults and documented hooks normally.
|
|
9
|
+
- `[data-context-menu]` resolves its menu per interaction: a target declared before its `<menu>` exists and a same-id menu replacement now open correctly instead of staying dead.
|
|
10
|
+
- `escape.js` ignores `Escape` presses already consumed (`defaultPrevented`) or chorded with `metaKey`.
|
|
11
|
+
- `isElementVisible()` in `focus.js` passes `visibilityProperty` to `checkVisibility()`, so `visibility:hidden` content is no longer reported focusable on modern engines.
|
|
12
|
+
- A flyout `<a>` trigger calls `preventDefault()` once its panel resolved — clicking it no longer navigates, while an unresolved trigger still navigates and bubbles.
|
|
13
|
+
- `data-tooltip` triggers containing focusable children now hide correctly: the non-bubbling `blur` listener was replaced by `focusout` with a `relatedTarget` containment check.
|
|
14
|
+
- `--dismiss` on an open surface finalizes the surface lifecycle — `.is-open`, the Escape entry, position tracking — and restores focus to the opener; the surface consumes `actual:dismiss` itself, keeping `dismiss.js` generic.
|
|
15
|
+
- `.link-muted:hover` and `.link-muted:focus-visible` are separate rules, so the hover color survives browsers without `:focus-visible`.
|
|
16
|
+
- `.choice-card` and `.floating-field` participate in `.sm` / `.lg` (and `.choice-card` consumes `--control-font-size`), so their documented size modifiers actually work.
|
|
17
|
+
- The `.floating-field` label rests on `--control-pad-x`, the same geometry as the control's text — both now share an inline start edge at every size.
|
|
18
|
+
- `.modal` header/footer resets are bounded to the dialog's structural `form` / `.stack` slots, so a header or footer inside the content keeps its own rhythm.
|
|
19
|
+
- `.otp` forced-colors styling covers the `:user-invalid` route.
|
|
20
|
+
- `print.css` forces `[data-theme]` islands to `color-scheme: light` with a white background and black text, so a dark-themed section no longer prints dark.
|
|
21
|
+
- The 11 paired themes declare `color-scheme: light` in their fallback block and `light dark` under `@supports (color: light-dark(...))` — dark UA controls no longer appear on the light fallback palette.
|
|
22
|
+
|
|
23
|
+
### Documentation and tooling
|
|
24
|
+
|
|
25
|
+
- Public CSS sources carry a `Docs:` pointer to their canonical usage page, verified by `check:architecture`.
|
|
26
|
+
- `check:compat` rejects selector lists mixing an above-floor pseudo with baseline selectors.
|
|
27
|
+
- Docs TOC and search headings decode HTML entities, so a heading like `Linting role="menu"` no longer shows `"` in the sidebar.
|
|
28
|
+
- `tokens.md` describes the actual forced-colors contract; `enhancement-loader` documents that manifests are trusted application configuration.
|
|
29
|
+
|
|
5
30
|
|
|
6
31
|
## [0.9.0] - 2026-09-13
|
|
7
32
|
|
package/components.json
CHANGED
|
@@ -266,6 +266,7 @@
|
|
|
266
266
|
],
|
|
267
267
|
"internalHooks": [
|
|
268
268
|
"--drawer-closed-translate",
|
|
269
|
+
"--drawer-focus-bleed",
|
|
269
270
|
"--drawer-motion-duration"
|
|
270
271
|
],
|
|
271
272
|
"states": [
|
|
@@ -446,6 +447,7 @@
|
|
|
446
447
|
],
|
|
447
448
|
"internalHooks": [
|
|
448
449
|
"--dialog-close-icon-size",
|
|
450
|
+
"--dialog-focus-bleed",
|
|
449
451
|
"--dialog-viewport-block",
|
|
450
452
|
"--dialog-viewport-gap-default",
|
|
451
453
|
"--dialog-viewport-gap-2x"
|
package/dist/actual.css
CHANGED
|
@@ -744,9 +744,9 @@ small {
|
|
|
744
744
|
}
|
|
745
745
|
|
|
746
746
|
/* Shared control scale. Wrappers are listed when their descendants form one
|
|
747
|
-
component (field, input-icon, join, pagination,
|
|
748
|
-
declaration beats inherited density because it
|
|
749
|
-
component itself. */
|
|
747
|
+
component (field, choice-card, floating-field, input-icon, join, pagination,
|
|
748
|
+
tabs, flyout). A local size declaration beats inherited density because it
|
|
749
|
+
is declared on the sized component itself. */
|
|
750
750
|
:where(
|
|
751
751
|
.btn,
|
|
752
752
|
.input,
|
|
@@ -756,7 +756,9 @@ small {
|
|
|
756
756
|
.file,
|
|
757
757
|
.field,
|
|
758
758
|
.choice,
|
|
759
|
+
.choice-card,
|
|
759
760
|
.input-icon,
|
|
761
|
+
.floating-field,
|
|
760
762
|
.otp,
|
|
761
763
|
.join,
|
|
762
764
|
.pagination,
|
|
@@ -778,7 +780,9 @@ small {
|
|
|
778
780
|
.file,
|
|
779
781
|
.field,
|
|
780
782
|
.choice,
|
|
783
|
+
.choice-card,
|
|
781
784
|
.input-icon,
|
|
785
|
+
.floating-field,
|
|
782
786
|
.otp,
|
|
783
787
|
.join,
|
|
784
788
|
.pagination,
|
|
@@ -838,6 +842,9 @@ small {
|
|
|
838
842
|
|
|
839
843
|
@media print {
|
|
840
844
|
:root,
|
|
845
|
+
/* The doubled attribute intentionally outranks single-attribute preset
|
|
846
|
+
islands (data-theme="dark", paired themes) loaded after the core. */
|
|
847
|
+
[data-theme][data-theme],
|
|
841
848
|
body {
|
|
842
849
|
/* Save some ink in dark mode */
|
|
843
850
|
color-scheme: light;
|