@mkbabb/glass-ui 3.8.0 → 3.9.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.
- package/README.md +1 -6
- package/dist/{CardAction-q2qHCJFG.js → CardAction-DuArVky-.js} +4 -4
- package/dist/{CommandShortcut-SzWRhROC.js → CommandShortcut-CefCj5mt.js} +7 -7
- package/dist/{ContextMenuSubContent-Do977Cbf.js → ContextMenuSubContent-Bhg4f5jX.js} +3 -3
- package/dist/{DataTable-CvlWXz65.js → DataTable-CUHMukiQ.js} +1 -1
- package/dist/{DialogContent-DjZWT3lK.js → DialogContent-BRkT1cjP.js} +1 -1
- package/dist/{NumberFieldContent-CLNVR1iY.js → NumberFieldContent-BbLOh8RU.js} +2 -2
- package/dist/{SelectScrollDownButton-C7TRe-ep.js → SelectScrollDownButton-T32cVFeM.js} +3 -3
- package/dist/{SelectSeparator-L8pPEn4L.js → SelectSeparator-C4Ql0gzV.js} +1 -1
- package/dist/{TabsList-qyHZ2lKY.js → TabsList-B8CVOQPC.js} +2 -2
- package/dist/{Toaster-CabYEEF_.js → Toaster-1rYWrmAm.js} +1 -1
- package/dist/{ToggleGroupItem-CkXUcBlt.js → ToggleGroupItem-Cev4pOVK.js} +4 -4
- package/dist/animated-digit.js +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api.js +1 -1
- package/dist/aurora.js +10 -10
- package/dist/{badge-DHQrc_GQ.js → badge-BvwvT50i.js} +4 -4
- package/dist/badge.js +1 -1
- package/dist/{button-CAywcrhO.js → button-DN39cGqL.js} +13 -12
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.js +1 -1
- package/dist/color.js +1 -1
- package/dist/command.js +1 -1
- package/dist/{compile-BBTRjvQS.js → compile-DAjIoEy2.js} +1 -1
- package/dist/components/custom/configurator/ConfiguratorLayer.vue.d.ts +1 -1
- package/dist/components/custom/dock/DockSeparator.vue.d.ts +3 -0
- package/dist/components/custom/dock/GlassDock.vue.d.ts +45 -63
- package/dist/components/custom/dock/composables/dockContext.d.ts +7 -0
- package/dist/components/custom/dock/index.d.ts +2 -1
- package/dist/components/custom/goo-blob/composables/useBlobMood.d.ts +19 -5
- package/dist/components/custom/tabs/SegmentedTabs.vue.d.ts +92 -0
- package/dist/components/custom/tabs/composables/useTabIndicator.d.ts +49 -0
- package/dist/components/custom/tabs/index.d.ts +2 -5
- package/dist/components/ui/button/index.d.ts +1 -1
- package/dist/components/ui/card/Card.vue.d.ts +5 -3
- package/dist/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/components/ui/carousel/GlassCarouselPager.vue.d.ts +3 -4
- package/dist/components/ui/slider/index.d.ts +14 -7
- package/dist/components/ui/tabs/TabsList.vue.d.ts +1 -1
- package/dist/composables/context/createContext.d.ts +1 -1
- package/dist/configurator.js +1 -1
- package/dist/confirm-dialog.js +1 -1
- package/dist/constellation.js +1 -1
- package/dist/context-menu.js +1 -1
- package/dist/controls.js +1 -1
- package/dist/dark.js +1 -1
- package/dist/data-table.js +1 -1
- package/dist/deck-progress.js +1 -1
- package/dist/dialog.js +1 -1
- package/dist/dock.js +256 -243
- package/dist/{dropdown-menu-B_4bWyyG.js → dropdown-menu-D77jX6Df.js} +3 -3
- package/dist/dropdown-menu.js +1 -1
- package/dist/expandable-container.js +1 -1
- package/dist/forms.js +5 -5
- package/dist/fourier-field.js +3 -3
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +101 -104
- package/dist/goo-blob.js +36 -32
- package/dist/hover-popover.js +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/keyboard.js +1 -1
- package/dist/labeled-field.js +4 -4
- package/dist/{menuItemVariants-DKM85SNE.js → menuItemVariants-CCoBNkU5.js} +1 -1
- package/dist/motion-core.js +4 -4
- package/dist/motion.js +2 -2
- package/dist/number-field.js +1 -1
- package/dist/pulse.js +1 -1
- package/dist/reactive.js +1 -1
- package/dist/scrolling-text.js +1 -1
- package/dist/search.js +4 -4
- package/dist/select.js +2 -2
- package/dist/{slider-D9puf-Ko.js → slider-DC2mwuoe.js} +1 -1
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +1 -1
- package/dist/status-dot.js +17 -16
- package/dist/styles/animations.css +6 -2
- package/dist/styles/components.css +1 -1
- package/dist/styles/dock/density.css +230 -0
- package/dist/styles/dock/layer-group.css +263 -0
- package/dist/styles/dock/layers.css +355 -0
- package/dist/styles/dock/morph.css +244 -0
- package/dist/styles/dock/overflow.css +201 -0
- package/dist/styles/dock/shell.css +457 -0
- package/dist/styles/dock-controls.css +166 -32
- package/dist/styles/dock.css +42 -1349
- package/dist/styles/glass.css +396 -75
- package/dist/styles/index.css +12 -11
- package/dist/styles/theme.css +51 -0
- package/dist/styles/tokens.css +501 -55
- package/dist/styles/utilities.css +89 -39
- package/dist/tabs.js +182 -151
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/{useAnimatedNumber-C_3wZLx4.js → useAnimatedNumber-C5I3wWd8.js} +1 -1
- package/dist/{useConfiguratorState-CMff4GzH.js → useConfiguratorState-DxAqksK6.js} +21 -10
- package/dist/watercolor-dot.js +1 -1
- package/package.json +32 -33
- package/src/styles/animations.css +6 -2
- package/src/styles/dock/density.css +230 -0
- package/src/styles/dock/layer-group.css +263 -0
- package/src/styles/dock/layers.css +355 -0
- package/src/styles/dock/morph.css +244 -0
- package/src/styles/dock/overflow.css +201 -0
- package/src/styles/dock/shell.css +457 -0
- package/src/styles/dock-controls.css +166 -32
- package/src/styles/dock.css +42 -1349
- package/src/styles/glass.css +396 -75
- package/src/styles/index.css +12 -11
- package/src/styles/theme.css +51 -0
- package/src/styles/tokens.css +501 -55
- package/src/styles/utilities.css +89 -39
- package/dist/DiscoGlyph-CG0F410s.js +0 -132
- package/dist/GlyphFace-DRjDkB0s.js +0 -51
- package/dist/UnderlineTabs-Uxn-R3MT.js +0 -39
- package/dist/components/custom/aurora/constants/shaders/painterly.wgsl.d.ts +0 -7
- package/dist/components/custom/aurora/constants/shaders/wake.wgsl.d.ts +0 -4
- package/dist/components/custom/disco-glyph/DiscoGlyph.vue.d.ts +0 -58
- package/dist/components/custom/disco-glyph/index.d.ts +0 -1
- package/dist/components/custom/glass-carousel/GlassCarousel.vue.d.ts +0 -36
- package/dist/components/custom/glass-carousel/GlassCarouselItem.vue.d.ts +0 -28
- package/dist/components/custom/glass-carousel/index.d.ts +0 -4
- package/dist/components/custom/glass-carousel/useGlassCarousel.d.ts +0 -30
- package/dist/components/custom/glyph-face/GlyphFace.vue.d.ts +0 -64
- package/dist/components/custom/glyph-face/index.d.ts +0 -2
- package/dist/components/custom/glyph-face/keys.d.ts +0 -9
- package/dist/components/custom/responsive-tabs/ResponsiveTabs.vue.d.ts +0 -73
- package/dist/components/custom/responsive-tabs/index.d.ts +0 -2
- package/dist/components/custom/tabs/BouncyTabs.vue.d.ts +0 -27
- package/dist/components/custom/tabs/BouncyToggle.vue.d.ts +0 -60
- package/dist/components/custom/tabs/UnderlineTabs.vue.d.ts +0 -20
- package/dist/components/custom/tabs/composables/useBouncySlider.d.ts +0 -39
- package/dist/disco-glyph.d.ts +0 -1
- package/dist/disco-glyph.js +0 -2
- package/dist/glass-carousel.d.ts +0 -1
- package/dist/glass-carousel.js +0 -219
- package/dist/glyph-face.d.ts +0 -1
- package/dist/glyph-face.js +0 -3
- package/dist/keys-BsYjEFOW.js +0 -9
- package/dist/responsive-tabs.d.ts +0 -1
- package/dist/responsive-tabs.js +0 -95
- package/dist/styles/disco-glyph.css +0 -26
- package/dist/styles/glyph-face.css +0 -92
- package/src/styles/disco-glyph.css +0 -26
- package/src/styles/glyph-face.css +0 -92
- /package/dist/{DeckProgress-AVgbIULY.js → DeckProgress-Dmk4_AKN.js} +0 -0
- /package/dist/{HoverPopover-D56O6Ylp.js → HoverPopover-2LOIW34a.js} +0 -0
- /package/dist/{IconTooltip-D2T5nYOM.js → IconTooltip-yefK7cJc.js} +0 -0
- /package/dist/{Input-DVG_J0ne.js → Input-DWQQIOC4.js} +0 -0
- /package/dist/{ScrollingText-CVyqxvfv.js → ScrollingText-BPP84wKo.js} +0 -0
- /package/dist/{color-DMLTunJK.js → color-8jBjWiJ6.js} +0 -0
- /package/dist/{constants-BPOqYJAm.js → constants-CS75AWHG.js} +0 -0
- /package/dist/{presets-D1XPuTj-.js → presets-BKVyQfbt.js} +0 -0
- /package/dist/{prng-COGhh02-.js → prng-wHuHlNHE.js} +0 -0
- /package/dist/{useGlobalDark-D3EBWzXK.js → useGlobalDark-yhL4Wp-s.js} +0 -0
- /package/dist/{useIntersectionPause-Bj4sPkMh.js → useIntersectionPause-Cc-H9ees.js} +0 -0
- /package/dist/{useInterval-CcLfq2WU.js → useInterval-Dsmqwi03.js} +0 -0
- /package/dist/{useKeyboardShortcuts-BXWXOZ-9.js → useKeyboardShortcuts-Be3w_Rwk.js} +0 -0
- /package/dist/{useScrollProgress-C9ysDic5.js → useScrollProgress-CAH8Ofwt.js} +0 -0
- /package/dist/{useSortable-MGAbCGVJ.js → useSortable-C8ReQ50P.js} +0 -0
- /package/dist/{useTextHighlight-9nMW23Qb.js → useTextHighlight-DON84L8w.js} +0 -0
|
@@ -41,6 +41,16 @@
|
|
|
41
41
|
.dock-dropdown-trigger
|
|
42
42
|
) {
|
|
43
43
|
--dock-press-spring: var(--duration-fast) var(--spring-smooth);
|
|
44
|
+
/* AX.W45-TUNE C4/C5 — the small-tile specular sizing. The dock controls are
|
|
45
|
+
~40px tiles, a fraction of a card's plate, so the global 36% specular
|
|
46
|
+
radius blooms a tile-filling disc (the I.W6 finding). The family re-points
|
|
47
|
+
`--glass-specular-size` to the tighter `--dock-control-specular-size` (22%,
|
|
48
|
+
tokens.css), so the SHARED `.glass-material::before` catch-light recipe
|
|
49
|
+
(glass.css) paints a restrained EDGE-catch on the small tile WITHOUT
|
|
50
|
+
forking the recipe — the gleam wakes on hover/active (the cohort's 0.1/0.16
|
|
51
|
+
rungs), sized for the tile. The rest intensity stays 0 (the default-off
|
|
52
|
+
discipline) so the resting tile carries NO bloom. */
|
|
53
|
+
--glass-specular-size: var(--dock-control-specular-size, 22%);
|
|
44
54
|
}
|
|
45
55
|
|
|
46
56
|
.dock-icon-button {
|
|
@@ -95,10 +105,14 @@
|
|
|
95
105
|
hover fill carries the affordance without a second catch-light, and
|
|
96
106
|
dropping it also removes the `:not(:focus-visible)` specular-vs-ring
|
|
97
107
|
juggle. */
|
|
108
|
+
/* AX.W45 DK2 — the hover reads the FAMILY token `--dock-control-hover-bg`
|
|
109
|
+
(the per-control `--dock-icon-hover-bg` still wins if a consumer set it),
|
|
110
|
+
so the whole dock-control family shares ONE glass-translucent hover fill.
|
|
111
|
+
One source per state across icon/tab/picker (no four-vocabulary drift). */
|
|
98
112
|
&:hover:not(:disabled) {
|
|
99
113
|
background: var(
|
|
100
114
|
--dock-icon-hover-bg,
|
|
101
|
-
|
|
115
|
+
var(--dock-control-hover-bg)
|
|
102
116
|
);
|
|
103
117
|
color: var(--btn-hover-color, var(--foreground));
|
|
104
118
|
scale: var(--scale-hover-dock);
|
|
@@ -134,6 +148,19 @@
|
|
|
134
148
|
since AX.W09 retired the hover `--glass-highlight` specular), so no
|
|
135
149
|
per-state transition override is needed. */
|
|
136
150
|
|
|
151
|
+
/* AX.W45 D15 — LIBRARY GLYPH OWNERSHIP. The dock icon-button now sizes its glyph
|
|
152
|
+
(mirroring `.dark-mode-toggle-button > svg`), so the glyph scales WITH the box
|
|
153
|
+
on the `--dock-scale` multiplier instead of swimming at a fixed consumer size.
|
|
154
|
+
`--dock-icon-glyph: calc(1.25rem * var(--dock-scale))` (tokens.css) rides the
|
|
155
|
+
multiplier — at 1.5× the glyph is 30px in a 60px box, the desktop proportion.
|
|
156
|
+
A consumer passing an explicit lucide size class still WINS (utility layer >
|
|
157
|
+
component layer) — a DEFAULT, not a ceiling, matching the `.dock-tab-button`
|
|
158
|
+
font-size precedent. */
|
|
159
|
+
.dock-icon-button > svg {
|
|
160
|
+
width: var(--dock-icon-glyph, 1.25rem);
|
|
161
|
+
height: var(--dock-icon-glyph, 1.25rem);
|
|
162
|
+
}
|
|
163
|
+
|
|
137
164
|
.dock-icon-button--compact {
|
|
138
165
|
width: var(--dock-compact-control-size, auto);
|
|
139
166
|
height: var(--dock-compact-control-size, auto);
|
|
@@ -203,6 +230,29 @@
|
|
|
203
230
|
--dark-mode-toggle-padding: var(--dock-icon-padding, 0);
|
|
204
231
|
}
|
|
205
232
|
|
|
233
|
+
/* AX.W06 USF-2 — the dock-control optical-size contract. The
|
|
234
|
+
DarkModeToggle renders its OWN internal SVG `h-full w-full` (it bypasses
|
|
235
|
+
the `--dock-icon-glyph`-sized `> svg` slot the `.dock-icon-button` family
|
|
236
|
+
uses), so IN-DOCK it filled the whole control box edge-to-edge (~2.5× the
|
|
237
|
+
nav glyphs) — `--dock-icon-padding` is NEVER DEFINED, so the
|
|
238
|
+
`--dark-mode-toggle-padding: var(--dock-icon-padding, 0)` above fell to the
|
|
239
|
+
`0` fallback and zero padding let the SVG fill the box. Route the in-dock
|
|
240
|
+
toggle glyph through `--dock-control-glyph-size` (the ONE size the whole
|
|
241
|
+
dock-control family reads, default = `--dock-icon-glyph`, the same
|
|
242
|
+
`--dock-scale`-keyed glyph the nav icons paint), so the toggle is optically
|
|
243
|
+
UNIFORM with the nav glyphs WHEN DOCKED. The `h-full w-full` SVG stays
|
|
244
|
+
correct for the STANDALONE DarkModeToggle sizes (no `.glass-dock`
|
|
245
|
+
ancestor); this rule is scoped to the in-dock path only. Machine-checked by
|
|
246
|
+
the dock-control optical-parity gate, not eyeballed. */
|
|
247
|
+
.glass-dock
|
|
248
|
+
.dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not(
|
|
249
|
+
[data-size="control"]
|
|
250
|
+
)
|
|
251
|
+
> svg {
|
|
252
|
+
width: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
|
|
253
|
+
height: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
|
|
254
|
+
}
|
|
255
|
+
|
|
206
256
|
.dock-tab-button {
|
|
207
257
|
display: inline-flex;
|
|
208
258
|
align-items: center;
|
|
@@ -244,9 +294,19 @@
|
|
|
244
294
|
/* AT.W7-dock-b — press micro-feedback spring (transform-scoped). */ scale
|
|
245
295
|
var(--dock-press-spring);
|
|
246
296
|
|
|
297
|
+
/* AX.W45 DK2 — converged onto the FAMILY hover/active token pair (the
|
|
298
|
+
surface-tint-8/10 ladder it spoke is ≈ the same intent — glass-translucent
|
|
299
|
+
foreground-over-transparent). ONE grammar across icon/tab/picker.
|
|
300
|
+
AX.W45-TUNE Q3/C3 — the hover MOTION channel is now UNIFIED: the
|
|
301
|
+
`--scale-hover-dock` lift fires here (it used to fire on only icon +
|
|
302
|
+
dropdown), so all four control members lift on hover as ONE register —
|
|
303
|
+
the bg cross-fade (glass-tier), the scale, and the specular gleam read
|
|
304
|
+
together BEFORE click. The transform rides `--dock-press-spring`
|
|
305
|
+
(`--spring-smooth`) per the W52 easing doctrine. */
|
|
247
306
|
&:hover:not(:disabled) {
|
|
248
|
-
background: var(--
|
|
307
|
+
background: var(--dock-control-hover-bg);
|
|
249
308
|
color: var(--foreground);
|
|
309
|
+
scale: var(--scale-hover-dock);
|
|
250
310
|
}
|
|
251
311
|
|
|
252
312
|
&:active:not(:disabled) {
|
|
@@ -261,7 +321,7 @@
|
|
|
261
321
|
group in dock.css. */
|
|
262
322
|
|
|
263
323
|
&:is(.is-active, .active, [aria-current="page"], [aria-pressed="true"]) {
|
|
264
|
-
background: var(--
|
|
324
|
+
background: var(--dock-control-active-bg);
|
|
265
325
|
color: var(--foreground);
|
|
266
326
|
}
|
|
267
327
|
}
|
|
@@ -296,18 +356,24 @@
|
|
|
296
356
|
* cluster axis) instead of the canonical `--primary`. The `--paper-
|
|
297
357
|
* clean-texture` overlay and `--glass-specular` shadow stack are
|
|
298
358
|
* inherited from the underlying `btn-audacious` utility. */
|
|
359
|
+
/* AX.W52 D19 — the phase-tint hover radial DEMOTED: the prior
|
|
360
|
+
* `ellipse at 30% 30%` at 18% was a loud top-LEFT corner hotspot. Toned to
|
|
361
|
+
* 8% and the anchor shifted off the hard corner toward a softer top-biased
|
|
362
|
+
* ellipse (`40% 25%`) with a tighter `transparent 55%` falloff, so it reads
|
|
363
|
+
* as a surface lift rather than a corner glow — the disco hover identity
|
|
364
|
+
* survives, the egregious corner bloom does not. */
|
|
299
365
|
&:hover:not(:disabled) {
|
|
300
366
|
--glass-grain-opacity: var(--glass-grain-opacity-disco, 0.08);
|
|
301
367
|
background-image:
|
|
302
368
|
var(--paper-clean-texture),
|
|
303
369
|
radial-gradient(
|
|
304
|
-
ellipse at
|
|
370
|
+
ellipse at 40% 25%,
|
|
305
371
|
color-mix(
|
|
306
372
|
in srgb,
|
|
307
|
-
var(--phase-color, var(--foreground))
|
|
373
|
+
var(--phase-color, var(--foreground)) 8%,
|
|
308
374
|
transparent
|
|
309
375
|
),
|
|
310
|
-
transparent
|
|
376
|
+
transparent 55%
|
|
311
377
|
);
|
|
312
378
|
background-blend-mode: overlay, normal;
|
|
313
379
|
background-size: var(--paper-texture-size), auto;
|
|
@@ -315,30 +381,36 @@
|
|
|
315
381
|
|
|
316
382
|
/* Q.W3.A.4 — phase-tint backplate halo at the pill wrapper.
|
|
317
383
|
*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
* the
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
384
|
+
* An inner glyph wrapper's own halo would be clipped by the pill's
|
|
385
|
+
* `overflow: hidden` and never escape the glyph box. This `::before`
|
|
386
|
+
* lifts the phase-tint to the pill itself so the glow composes with the
|
|
387
|
+
* whole CTA. Scoped to active phases — at idle / ready the pill stays
|
|
388
|
+
* neutral and inherits the W2.7 reservation ("disco fires on hover
|
|
389
|
+
* only"). */
|
|
390
|
+
/* AX.W52 D19 — the REST phase-halo `::before` (fires during a speedtest run
|
|
391
|
+
* on the most prominent dock control) DEMOTED on the same axis as the hover
|
|
392
|
+
* radial: 18%→8%, the hard `30% 30%` corner shifted to a softer `40% 25%`
|
|
393
|
+
* top-biased ellipse with a tighter `transparent 55%` falloff, and the
|
|
394
|
+
* `opacity: 1` dropped to 0.5 so the persistent run-time halo is a subtle
|
|
395
|
+
* surface lift, not a corner bloom that washes the pill for the whole run. */
|
|
324
396
|
&[data-phase]:not([data-phase="ready"]):not([data-phase="idle"])::before {
|
|
325
397
|
content: "";
|
|
326
398
|
position: absolute;
|
|
327
399
|
inset: 0;
|
|
328
400
|
border-radius: inherit;
|
|
329
401
|
background: radial-gradient(
|
|
330
|
-
ellipse at
|
|
402
|
+
ellipse at 40% 25%,
|
|
331
403
|
color-mix(
|
|
332
404
|
in srgb,
|
|
333
|
-
var(--phase-color, var(--foreground))
|
|
405
|
+
var(--phase-color, var(--foreground)) 8%,
|
|
334
406
|
transparent
|
|
335
407
|
)
|
|
336
408
|
0%,
|
|
337
|
-
transparent
|
|
409
|
+
transparent 55%
|
|
338
410
|
);
|
|
339
411
|
pointer-events: none;
|
|
340
412
|
z-index: -1;
|
|
341
|
-
opacity:
|
|
413
|
+
opacity: 0.5;
|
|
342
414
|
transition: opacity var(--duration-fast) var(--ease-standard);
|
|
343
415
|
}
|
|
344
416
|
}
|
|
@@ -403,13 +475,23 @@
|
|
|
403
475
|
opacity var(--dock-motion-fast);
|
|
404
476
|
}
|
|
405
477
|
|
|
478
|
+
/* AX.W45 DK2 — the pickers move OFF the opaque `--muted` flat plate onto the
|
|
479
|
+
glass-translucent FAMILY hover token (the dock substrate shows through, not a
|
|
480
|
+
solid cream rectangle over the glass — the loudest "not right" tell). hover ≠
|
|
481
|
+
open now: the active/open rule below reads `--dock-control-active-bg` (a tint
|
|
482
|
+
LADDER step above hover), so an OPEN dropdown reads distinctly from a merely-
|
|
483
|
+
hovered one (paired with the chevron flip). ONE source per state, glass-aware
|
|
484
|
+
across the whole dock-control family. */
|
|
485
|
+
/* AX.W45-TUNE Q3/C3 — the picker hover lift is now in the SHARED group: the
|
|
486
|
+
`--scale-hover-dock` scale fires on BOTH select + dropdown (it used to fire on
|
|
487
|
+
the dropdown ONLY — the split-brain hover the DK2 fix left). All four dock
|
|
488
|
+
control members (icon/tab/select/dropdown) now lift on hover as one register,
|
|
489
|
+
mirroring the unified glass-tier `--dock-control-hover-bg` cross-fade. The
|
|
490
|
+
lone `.dock-dropdown-trigger:hover` scale rule is RETIRED into this group. */
|
|
406
491
|
.dock-select-trigger:hover:not(:disabled),
|
|
407
492
|
.dock-dropdown-trigger:hover:not(:disabled) {
|
|
408
|
-
background: var(--
|
|
493
|
+
background: var(--dock-control-hover-bg);
|
|
409
494
|
color: var(--btn-hover-color, var(--foreground));
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
.dock-dropdown-trigger:hover:not(:disabled) {
|
|
413
495
|
scale: var(--scale-hover-dock);
|
|
414
496
|
}
|
|
415
497
|
|
|
@@ -449,7 +531,11 @@
|
|
|
449
531
|
[aria-expanded="true"],
|
|
450
532
|
[aria-pressed="true"]
|
|
451
533
|
) {
|
|
452
|
-
|
|
534
|
+
/* AX.W45 DK2 — the OPEN affordance: a translucent active fill a ladder step
|
|
535
|
+
above hover (NOT the opaque `--muted`, NOT byte-identical to hover). OPEN =
|
|
536
|
+
(chevron up + this active fill); HOVER = (the lighter hover fill, chevron
|
|
537
|
+
down) — the smooth glass-aware four-state read the picker lacked. */
|
|
538
|
+
background: var(--dock-control-active-bg);
|
|
453
539
|
color: var(--foreground);
|
|
454
540
|
}
|
|
455
541
|
|
|
@@ -470,20 +556,68 @@
|
|
|
470
556
|
rotate: 180deg;
|
|
471
557
|
}
|
|
472
558
|
|
|
473
|
-
/*
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
auto-sized affordances, not primary targets. */
|
|
559
|
+
/* AX.W45 D15 — coarse-pointer touch floor, button-level half. The IN-DOCK floor
|
|
560
|
+
is subsumed into the `--dock-scale` multiplier + the `max(…, 44px)` clamp in
|
|
561
|
+
the dock.css density cascade (the in-dock control-size grows ~1.5× past the
|
|
562
|
+
44px target, the clamp guarantees the floor even below 1.0× scale). This
|
|
563
|
+
per-button rule is the STANDALONE half: a DockIconButton with NO `.glass-dock`
|
|
564
|
+
ancestor (a routed gear) has no density cascade lifting its size, so it keeps
|
|
565
|
+
the explicit `min-{block,inline}-size` floor. Scoped `:not(:where(.glass-dock
|
|
566
|
+
*))` so it does NOT double-stamp on an in-dock button (the cascade owns that —
|
|
567
|
+
one path per surface, no two-floor). Compact buttons opt out. */
|
|
483
568
|
@media (pointer: coarse) {
|
|
484
|
-
.dock-icon-button:not(.dock-icon-button--compact) {
|
|
569
|
+
.dock-icon-button:not(.dock-icon-button--compact):not(:where(.glass-dock *)) {
|
|
485
570
|
min-block-size: var(--dock-touch-target, 2.75rem);
|
|
486
571
|
min-inline-size: var(--dock-touch-target, 2.75rem);
|
|
487
572
|
}
|
|
488
573
|
}
|
|
574
|
+
|
|
575
|
+
/* AX.W06 F2/F3 — the HOISTED refined rail nav-item polish. The demo's
|
|
576
|
+
`SidebarDock` dogfooded the active-category affordance (accent glyph tint +
|
|
577
|
+
a left-edge accent rule) as DEMO-PRIVATE chrome (`demo/layout/dock-nav.css`
|
|
578
|
+
`.demo-sidebar-item.is-active`), so a consumer reaching for `variant="rail"`
|
|
579
|
+
got the UN-refined bare `.is-active` colour shift. This hoists the refined
|
|
580
|
+
treatment into the shipped variant CSS so the demo == the shipped contract
|
|
581
|
+
(the demo no longer re-derives a worse rail by hand). The tap-squish press
|
|
582
|
+
feedback (the `:active` `--scale-press-dock` squish) + the right-anchored
|
|
583
|
+
tooltips are already the dock-control family + the consumer's `<Tooltip
|
|
584
|
+
side="right">` — this carries the active-item ACCENT, the half the variant
|
|
585
|
+
CSS did not own.
|
|
586
|
+
|
|
587
|
+
The accent is TOKENIZED, not baked: `--dock-rail-active-accent` defaults to
|
|
588
|
+
the library `--primary` brand ink; a consumer retints it per-instance (the
|
|
589
|
+
demo overrides it to `--viz-fourier` NCSU-red on the cascade). The active
|
|
590
|
+
state reads the SHIPPED four-state hooks the dock-control family already
|
|
591
|
+
activates (`.is-active`, `aria-current="page"`, `[aria-pressed="true"]`).
|
|
592
|
+
Scoped to a `.glass-dock.variant-rail` descendant icon-button — a horizontal
|
|
593
|
+
dock or the layer-switcher rail are untouched. */
|
|
594
|
+
.glass-dock.variant-rail .dock-icon-button {
|
|
595
|
+
position: relative;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
.glass-dock.variant-rail
|
|
599
|
+
.dock-icon-button:is(.is-active, [aria-current="page"], [aria-pressed="true"]) {
|
|
600
|
+
--dock-active-color: var(--dock-rail-active-accent, var(--primary));
|
|
601
|
+
color: var(--dock-rail-active-accent, var(--primary));
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
/* The leading-edge accent rule — a short rounded bar pinned to the rail-leading
|
|
605
|
+
edge of the active nav item (the iOS / Figma side-rail selected-affordance).
|
|
606
|
+
`inset-inline-start` keys it off the writing-direction leading edge, so the
|
|
607
|
+
bar sits OUTSIDE the button on the rail's plate; `inset-block: <inset>` keeps
|
|
608
|
+
it short + centred. The width/inset/colour all read `--dock-rail-active-*`
|
|
609
|
+
tokens so the whole accent is tunable from one place. */
|
|
610
|
+
.glass-dock.variant-rail
|
|
611
|
+
.dock-icon-button:is(.is-active, [aria-current="page"], [aria-pressed="true"])::before {
|
|
612
|
+
content: "";
|
|
613
|
+
position: absolute;
|
|
614
|
+
inset-block: var(--dock-rail-accent-inset, 18%);
|
|
615
|
+
inset-inline-start: calc(
|
|
616
|
+
-1 * var(--dock-rail-accent-width, 3px) - var(--dock-rail-accent-gap, 2px)
|
|
617
|
+
);
|
|
618
|
+
width: var(--dock-rail-accent-width, 3px);
|
|
619
|
+
border-radius: var(--radius-pill);
|
|
620
|
+
background: var(--dock-rail-active-accent, var(--primary));
|
|
621
|
+
pointer-events: none;
|
|
622
|
+
}
|
|
489
623
|
}
|