@mkbabb/glass-ui 5.0.0 → 6.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.
- package/README.md +30 -27
- package/dist/DropdownMenuTrigger-BzQtd9lt.js +65 -0
- package/dist/{FadingScroll-BSRLqQCx.js → FadingScroll-C1ZWEjmG.js} +32 -25
- package/dist/{Input-DKf-XwUM.js → Input-B4WQ_CMc.js} +1 -1
- package/dist/{PagerDots-BP6jh7z4.js → PagerDots-BoTQ7g5l.js} +123 -95
- package/dist/{accent-tone-solve-CBw3L0cy.js → accent-tone-solve-Dii9ePhK.js} +1 -1
- package/dist/animated-digit.js +1 -1
- package/dist/aurora.js +324 -314
- package/dist/blob-config.d.ts +0 -4
- package/dist/blob-config.js +1 -1
- package/dist/blob.js +280 -261
- package/dist/{button-BXzhydVB.js → button-32mg6xA8.js} +63 -56
- package/dist/button.js +1 -1
- package/dist/canvas.js +1 -1
- package/dist/{CardAction-2uUvjMQK.js → card-16xmzIr3.js} +29 -11
- package/dist/card.js +1 -1
- package/dist/carousel.d.ts +1 -2
- package/dist/carousel.js +26 -95
- package/dist/chip.d.ts +0 -9
- package/dist/chip.js +1 -1
- package/dist/collapsible.js +1 -1
- package/dist/color-swatch.js +1 -0
- package/dist/color.js +87 -3
- package/dist/{CommandShortcut-fmdbsEJL.js → command-BjPjUU9z.js} +56 -51
- package/dist/command.js +1 -1
- package/dist/completion-seal.js +64 -55
- package/dist/components/_shared/ModalOverlay.vue.d.ts +5 -52
- package/dist/components/_shared/field-surfaces.css +1 -0
- package/dist/components/_shared/menuItemVariants.d.ts +2 -2
- package/dist/components/_shared/useMotionAxis.d.ts +2 -2
- package/dist/components/_shared/valueDomain.d.ts +6 -0
- package/dist/components/alert/index.d.ts +1 -1
- package/dist/components/animated-digit/AnimatedDigit.vue.d.ts +1 -1
- package/dist/components/aurora/Aurora.vue.d.ts +7 -1
- package/dist/components/aurora/composables/runtime.d.ts +5 -3
- package/dist/components/aurora/composables/useAurora.d.ts +4 -2
- package/dist/components/avatar/AvatarImage.vue.d.ts +3 -1
- package/dist/components/badge/index.d.ts +2 -2
- package/dist/components/blob/Blob.vue.d.ts +11 -0
- package/dist/components/blob/composables/useMetaballRenderer.d.ts +2 -0
- package/dist/components/button/Button.vue.d.ts +4 -2
- package/dist/components/button/index.d.ts +2 -2
- package/dist/components/card/Card.vue.d.ts +4 -4
- package/dist/components/card/ScrollCard.vue.d.ts +1 -1
- package/dist/components/card/styles.css +1 -0
- package/dist/components/carousel/Carousel.vue.d.ts +2 -2
- package/dist/components/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/components/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/components/carousel/index.d.ts +0 -1
- package/dist/components/carousel/useCarousel.d.ts +2 -2
- package/dist/components/combobox/ComboboxList.vue.d.ts +1 -1
- package/dist/components/combobox/index.d.ts +1 -3
- package/dist/components/command/Command.vue.d.ts +1 -1
- package/dist/components/command/CommandDialog.vue.d.ts +9 -6
- package/dist/components/completion-seal/styles.css +1 -0
- package/dist/components/constellation/Constellation.vue.d.ts +6 -1
- package/dist/components/constellation/composables/useConstellation.d.ts +3 -16
- package/dist/components/constellation/constants.d.ts +6 -16
- package/dist/components/constellation/constellationField.d.ts +3 -5
- package/dist/components/constellation/constellationInteraction.d.ts +1 -1
- package/dist/components/constellation/constellationRender.d.ts +11 -21
- package/dist/components/constellation/constellationTypes.d.ts +12 -9
- package/dist/components/constellation/index.d.ts +1 -1
- package/dist/components/controls/DarkModeToggle.vue.d.ts +0 -2
- package/dist/components/data-table/DataTable.vue.d.ts +14 -2
- package/dist/components/data-table/index.d.ts +1 -2
- package/dist/components/data-table/types.d.ts +26 -1
- package/dist/components/deck/constants.d.ts +0 -10
- package/dist/components/deck/index.d.ts +0 -1
- package/dist/components/dialog/DialogContent.vue.d.ts +7 -1
- package/dist/components/dialog/index.d.ts +0 -1
- package/dist/components/dock/DockControl.vue.d.ts +4 -4
- package/dist/components/dock/DockStack.vue.d.ts +2 -2
- package/dist/components/dock/GlassDock.vue.d.ts +1 -0
- package/dist/components/dock/composables/dockMorphContext.d.ts +2 -0
- package/dist/components/dock/composables/dockMorphMeasure.d.ts +11 -1
- package/dist/components/dock/composables/useDockClickIntegrity.d.ts +4 -0
- package/dist/components/dock/composables/useDockOverflowFit.d.ts +3 -3
- package/dist/components/dock/composables/useDockPopover.d.ts +2 -0
- package/dist/components/dock/composables/useDockShellProps.d.ts +7 -0
- package/dist/components/dock/composables/useDockState.d.ts +2 -2
- package/dist/components/dock/constants.d.ts +0 -12
- package/dist/components/dock/index.d.ts +1 -0
- package/dist/components/dock/styles/adaptive-legibility.css +1 -0
- package/dist/components/dock/styles/controls/icon-button.css +1 -0
- package/dist/{styles/dock-controls → components/dock/styles/controls}/touch-floor.css +1 -1
- package/dist/components/dock/styles/controls.css +1 -0
- package/dist/{styles/dock → components/dock/styles}/density.css +1 -1
- package/dist/components/dock/styles/dock.css +1 -0
- package/dist/components/dock/styles/index.css +1 -0
- package/dist/components/dock/styles/layer-group.css +1 -0
- package/dist/components/dock/styles/layers.css +1 -0
- package/dist/components/dock/styles/overflow.css +1 -0
- package/dist/components/dock/styles/popover.css +1 -0
- package/dist/components/dock/styles/shape.css +1 -0
- package/dist/components/dock/styles/shell.css +1 -0
- package/dist/components/drawer/Drawer.vue.d.ts +3 -3
- package/dist/components/drawer/composables/drawerSnapContext.d.ts +3 -1
- package/dist/components/drawer/constants.d.ts +6 -6
- package/dist/components/drawer/index.d.ts +4 -6
- package/dist/components/drawer/styles.css +1 -0
- package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +1 -1
- package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts +9 -3
- package/dist/components/dropdown-menu/index.d.ts +0 -1
- package/dist/components/easing/EasingConfigurator.vue.d.ts +1 -1
- package/dist/components/easing/EasingPicker.vue.d.ts +2 -2
- package/dist/components/easing/composables/useEasingPicker.d.ts +4 -0
- package/dist/components/easing/constants.d.ts +2 -0
- package/dist/components/fading-scroll/composables/useFadingScroll.d.ts +3 -3
- package/dist/components/fourier-field/FourierField.vue.d.ts +7 -1
- package/dist/components/fourier-field/composables/useFourierField.d.ts +2 -1
- package/dist/components/handmark/HandMark.vue.d.ts +1 -1
- package/dist/components/handmark/geometry.d.ts +1 -1
- package/dist/components/handmark/index.d.ts +4 -6
- package/dist/components/icon-chip/styles.css +1 -0
- package/dist/components/index.d.ts +0 -1
- package/dist/components/infinite-scroll/index.d.ts +1 -0
- package/dist/components/instrument-chassis/styles.css +1 -0
- package/dist/components/labeled-field/LabeledField.vue.d.ts +12 -2
- package/dist/components/labeled-field/LabeledInput.vue.d.ts +10 -3
- package/dist/components/liquid-grid/LiquidGrid.vue.d.ts +4 -0
- package/dist/components/liquid-grid/composables/useLiquidGrid.d.ts +2 -1
- package/dist/components/metric-stack/MetricStack.vue.d.ts +1 -1
- package/dist/components/pager-dots/PagerDots.vue.d.ts +1 -1
- package/dist/components/popover/PopoverContent.vue.d.ts +1 -1
- package/dist/components/progress/Progress.vue.d.ts +5 -40
- package/dist/components/progress/ProgressDefault.vue.d.ts +1 -17
- package/dist/components/progress/ProgressGradient.vue.d.ts +1 -0
- package/dist/components/progress/ProgressLiquid.vue.d.ts +1 -0
- package/dist/components/progress/index.d.ts +0 -5
- package/dist/components/progress/valueMarks.css +1 -0
- package/dist/components/pulse/Pulse.vue.d.ts +2 -2
- package/dist/components/scroll-progress-rim/styles.css +1 -0
- package/dist/components/search/FuzzySearch.vue.d.ts +4 -2
- package/dist/components/search/SearchBar.vue.d.ts +2 -2
- package/dist/components/search/searchVariants.d.ts +1 -1
- package/dist/components/select/SelectContent.vue.d.ts +1 -1
- package/dist/components/select/index.d.ts +0 -2
- package/dist/components/skeleton/Skeleton.vue.d.ts +1 -1
- package/dist/components/slider/Slider.vue.d.ts +2 -0
- package/dist/components/split-chars/SplitChars.vue.d.ts +1 -1
- package/dist/components/surface/Surface.vue.d.ts +1 -1
- package/dist/components/table/Table.vue.d.ts +4 -0
- package/dist/components/tabs/SegmentedTabs.vue.d.ts +10 -0
- package/dist/components/tabs/index.d.ts +1 -1
- package/dist/components/tabs/styles/drag.css +1 -0
- package/dist/components/tags-input/TagsInput.vue.d.ts +2 -2
- package/dist/components/timeline/ContinuousTimeline.vue.d.ts +1 -1
- package/dist/components/timeline/GlassTimeline.vue.d.ts +4 -4
- package/dist/components/toast/Toast.vue.d.ts +3 -3
- package/dist/components/toast/use-toast.d.ts +4 -4
- package/dist/components/typewriter/TypewriterText.vue.d.ts +1 -4
- package/dist/components/typewriter/composables/useTypewriter.d.ts +0 -1
- package/dist/components/typewriter/utils/graphemes.d.ts +1 -0
- package/dist/components/watercolor-dot/WatercolorDot.vue.d.ts +2 -2
- package/dist/composables/glass/useGlassBackdropLuminance.d.ts +31 -0
- package/dist/composables/glass/webgpu/rendererStatus.d.ts +13 -0
- package/dist/composables/glass/webgpu/useGpuSubstrate.d.ts +3 -0
- package/dist/composables/glass/webgpu/webgpuCanvasTypes.d.ts +2 -0
- package/dist/composables/motion/springProjection.d.ts +16 -0
- package/dist/composables/motion/useAnimatedNumber.d.ts +1 -6
- package/dist/composables/motion/useCountup.d.ts +1 -6
- package/dist/composables/motion/useDockCtaReceive.d.ts +55 -0
- package/dist/composables/motion/useElementMorph.d.ts +8 -0
- package/dist/composables/motion/useLiquidPress.d.ts +12 -4
- package/dist/composables/motion/useNumericTransition.d.ts +2 -0
- package/dist/composables/motion/useTextHighlight.d.ts +2 -1
- package/dist/configurator-CSENXXSy.js +311 -0
- package/dist/configurator.js +2 -3
- package/dist/constellation.js +235 -571
- package/dist/controls.js +55 -63
- package/dist/{createCanvasLifecycle-DlrcvWbb.js → createCanvasLifecycle-hsFkQVdl.js} +32 -32
- package/dist/dark-DIH-blY1.js +70 -0
- package/dist/dark.d.ts +1 -2
- package/dist/dark.js +2 -20
- package/dist/{DataTable-Bxya8nBn.js → data-table-DveMdgBM.js} +231 -120
- package/dist/data-table.js +2 -2
- package/dist/deck.js +10 -21
- package/dist/dialog-BzQxKrUr.js +281 -0
- package/dist/dialog.js +2 -3
- package/dist/dock.js +561 -428
- package/dist/{dockContext-d-WpJN2Z.js → dockContext-4S9qP0Z4.js} +1 -1
- package/dist/dom.js +196 -7
- package/dist/drawer.js +111 -66
- package/dist/dropdown-menu-DORIA52F.js +378 -0
- package/dist/dropdown-menu.js +3 -2
- package/dist/easing.d.ts +0 -9
- package/dist/easing.js +334 -187
- package/dist/expandable-container.js +12 -4
- package/dist/fading-scroll.js +1 -1
- package/dist/focus-scope.js +1 -1
- package/dist/forms.js +37 -78
- package/dist/fourier-field.js +273 -263
- package/dist/fourier-math.d.ts +0 -6
- package/dist/fourier-math.js +112 -2
- package/dist/glass-ui.css +1 -1
- package/dist/glass-ui.js +131 -195
- package/dist/handmark.d.ts +0 -2
- package/dist/handmark.js +82 -82
- package/dist/header-ribbon.js +41 -30
- package/dist/{IconChip-CwLmBJ_K.js → icon-chip-BWuxz1-u.js} +1 -1
- package/dist/icon-chip.js +1 -1
- package/dist/{IconTooltip-D9sbK-Mk.js → icon-tooltip-CO6rw0dZ.js} +1 -1
- package/dist/icon-tooltip.js +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/infinite-scroll.d.ts +0 -1
- package/dist/infinite-scroll.js +17 -15
- package/dist/instrument-chassis.js +1 -1
- package/dist/keyboard.js +104 -2
- package/dist/label.js +1 -1
- package/dist/labeled-field.js +95 -69
- package/dist/liquid-grid.js +173 -162
- package/dist/metric-badge.js +3 -3
- package/dist/metric-cell.js +2 -2
- package/dist/metric-stack.js +1 -1
- package/dist/motion-core.js +15 -16
- package/dist/motion-curves.d.ts +0 -20
- package/dist/motion.js +59 -58
- package/dist/{Notification-DQv2cOh9.js → notification-DVs7ODMg.js} +17 -8
- package/dist/notification.js +1 -1
- package/dist/{NumberFieldContent-BkE7xPS9.js → number-field-PvkGedHk.js} +2 -2
- package/dist/number-field.js +1 -1
- package/dist/pager-dots.js +1 -1
- package/dist/paper-backdrop.js +31 -2
- package/dist/{PopoverContent-DOtszFWK.js → popover-WMgyRSyN.js} +7 -2
- package/dist/popover.js +1 -1
- package/dist/procedural-color.wgsl-B9mLK7v0.js +377 -0
- package/dist/progress-C-HHuFZy.js +192 -0
- package/dist/progress.js +2 -2
- package/dist/pulse.js +3 -1
- package/dist/reactive.js +19 -3
- package/dist/rendererStatus-C2-zC2Q-.js +40 -0
- package/dist/{resolveCanvasColor-B3L-akX0.js → resolveCanvasColor-yarP5bdk.js} +1 -1
- package/dist/scroll-progress-rim.js +1 -1
- package/dist/search.js +187 -146
- package/dist/{SelectScrollDownButton-CDtwaWkZ.js → select-BIv4R3Ir.js} +109 -44
- package/dist/select.js +2 -4
- package/dist/separator-CBU94kTM.js +62 -0
- package/dist/separator.js +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/slider-Cc_qw6GA.js +166 -0
- package/dist/slider.js +1 -1
- package/dist/sortable-list.js +43 -43
- package/dist/styles/accessibility.css +1 -0
- package/dist/styles/components.css +1 -1
- package/dist/styles/glass/control-surfaces.css +1 -1
- package/dist/styles/glass/glass-capsule.css +1 -1
- package/dist/styles/glass/ladder.css +1 -1
- package/dist/styles/glass/liquid-fill.css +1 -1
- package/dist/styles/glass/material-roles.css +1 -0
- package/dist/styles/glass/material.css +1 -1
- package/dist/styles/glass/surface-axis.css +1 -1
- package/dist/styles/glass/surfaces-pager.css +1 -1
- package/dist/styles/glass/surfaces.css +1 -1
- package/dist/styles/glass.css +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/theme/bridges.css +1 -1
- package/dist/styles/tokens/glass-fx.css +1 -1
- package/dist/styles/tokens/glass.css +1 -1
- package/dist/styles/tokens/offsets.css +1 -1
- package/dist/styles/tokens/scale-paper.css +1 -1
- package/dist/styles/tokens/scheme-spring.css +1 -1
- package/dist/styles/tokens/shadow.css +1 -1
- package/dist/styles/tokens.d.ts +53 -0
- package/dist/styles/tokens.ts +58 -0
- package/dist/styles/typography/scale.css +1 -1
- package/dist/styles/typography/semantic.css +1 -1
- package/dist/styles/typography/utilities.css +1 -1
- package/dist/styles/utilities/base.css +1 -1
- package/dist/styles/utilities/btn.css +1 -1
- package/dist/styles/utilities/components.css +1 -1
- package/dist/styles/utilities.css +1 -1
- package/dist/{Switch-BPBfhMU3.js → switch-Boj4Ucn5.js} +1 -1
- package/dist/switch.js +1 -1
- package/dist/tabs.js +51 -45
- package/dist/timeline.js +2 -2
- package/dist/toast.js +1 -1
- package/dist/{ToggleGroupItem-DNWx2aSW.js → toggle-group-BPchFsns.js} +10 -7
- package/dist/toggle-group.js +1 -1
- package/dist/tokens.d.ts +1 -53
- package/dist/tokens.js +1 -1
- package/dist/{TooltipProvider-GtfYdSVf.js → tooltip-BmOQJzh0.js} +1 -0
- package/dist/tooltip.js +1 -1
- package/dist/typewriter.js +151 -166
- package/dist/{useAccentTone-D25DxviG.js → useAccentTone-C-p6WdPe.js} +1 -1
- package/dist/{useAnimatedNumber-2XC4aRB6.js → useAnimatedNumber-BRVVaFFc.js} +1 -1
- package/dist/useDockCtaReceive-CK-RLASa.js +257 -0
- package/dist/{useGooMorph-CU1pwuC6.js → useGooMorph-D1F6QJlH.js} +140 -59
- package/dist/{useIntersectionPause-Cmt5Tnv9.js → useIntersectionPause-B-dbxl9w.js} +1 -1
- package/dist/useLiquidPress-BYcwwGQV.js +68 -0
- package/dist/{useRAFLoop-CvOo_kgb.js → useRAFLoop-BtwQ9DyY.js} +1 -1
- package/dist/{useScrollProgress-C-yImzhU.js → useScrollProgress-DZI4nf4v.js} +1 -1
- package/dist/{useSelectionGroup-Btpf24aY.js → useSelectionGroup-LDzBdR1Y.js} +3 -3
- package/dist/{useTabRovingFocus-CG1H1k1J.js → useTabRovingFocus-DkLYwo4L.js} +1 -1
- package/dist/{useTouchGate-BlegwvwL.js → useTouchGate-Cj5fOkTv.js} +1 -1
- package/dist/valueDomain-B8L04u3U.js +13 -0
- package/dist/watercolor-dot.js +5 -3
- package/package.json +5 -12
- package/src/styles/accessibility.css +48 -0
- package/src/styles/glass/glass-capsule.css +2 -2
- package/src/styles/glass/ladder.css +1 -1
- package/src/styles/glass/material-roles.css +18 -0
- package/src/styles/glass/material.css +18 -12
- package/src/styles/glass.css +5 -5
- package/src/styles/index.css +38 -30
- package/src/styles/theme/bridges.css +0 -6
- package/src/styles/tokens/glass-fx.css +1 -5
- package/src/styles/tokens/glass.css +1 -2
- package/src/styles/tokens/offsets.css +0 -1
- package/src/styles/tokens/property-regs.css +11 -10
- package/src/styles/tokens/scale-paper.css +0 -1
- package/src/styles/tokens/scheme-motion.css +3 -0
- package/src/styles/tokens/scheme-spring.css +0 -10
- package/src/styles/tokens/shadow.css +3 -29
- package/src/styles/tokens.ts +58 -0
- package/src/styles/typography/scale.css +5 -2
- package/src/styles/typography/semantic.css +5 -5
- package/src/styles/typography/utilities.css +5 -5
- package/src/styles/utilities/base.css +5 -5
- package/src/styles/utilities/btn.css +6 -27
- package/src/styles/utilities.css +4 -6
- package/dist/ConfiguratorRow-BV6zPjTM.js +0 -151
- package/dist/DialogContent-Bl4v10AC.js +0 -192
- package/dist/DialogFooter-C0v4Hz2F.js +0 -168
- package/dist/PaperBackdrop-BYwE8_kg.js +0 -31
- package/dist/Progress-uWLyXE7J.js +0 -308
- package/dist/SelectGroup-BuEptUsa.js +0 -31
- package/dist/SelectSeparator-4QGephvr.js +0 -49
- package/dist/Separator-DqJ6PfOd.js +0 -44
- package/dist/color-Bp5jmv4Z.js +0 -86
- package/dist/components/carousel/GlassCarouselPager.vue.d.ts +0 -50
- package/dist/components/combobox/ComboboxSeparator.vue.d.ts +0 -18
- package/dist/components/combobox/ComboboxViewport.vue.d.ts +0 -18
- package/dist/components/constellation/composables/constellationGLSetup.d.ts +0 -10
- package/dist/components/constellation/composables/constellationWGPUSetup.d.ts +0 -19
- package/dist/components/constellation/composables/uniformBridgeWGPU.d.ts +0 -66
- package/dist/components/constellation/shaders/constellation-lines.glsl.d.ts +0 -2
- package/dist/components/constellation/shaders/constellation-lines.wgsl.d.ts +0 -1
- package/dist/components/constellation/shaders/constellation-points.glsl.d.ts +0 -2
- package/dist/components/constellation/shaders/constellation-points.wgsl.d.ts +0 -1
- package/dist/components/deck/composables/useDeckSpring.d.ts +0 -22
- package/dist/components/dialog/DialogScrollContent.vue.d.ts +0 -33
- package/dist/components/progress/ProgressSectioned.vue.d.ts +0 -47
- package/dist/components/progress/useProgressGeometry.d.ts +0 -60
- package/dist/components/section/Section.vue.d.ts +0 -73
- package/dist/components/section/index.d.ts +0 -1
- package/dist/components/stacked-icons/StackedIconGroup.vue.d.ts +0 -30
- package/dist/components/stacked-icons/index.d.ts +0 -2
- package/dist/components/stacked-icons/types.d.ts +0 -19
- package/dist/dropdown-menu-DaGlVdp9.js +0 -421
- package/dist/math-CIEcwsYi.js +0 -112
- package/dist/procedural-color.wgsl-ByduxnzV.js +0 -4
- package/dist/slider-Cxuj_W_H.js +0 -151
- package/dist/stacked-icons.d.ts +0 -1
- package/dist/stacked-icons.js +0 -98
- package/dist/styles/cards.css +0 -1
- package/dist/styles/completion-seal.css +0 -1
- package/dist/styles/dock/adaptive-legibility.css +0 -1
- package/dist/styles/dock/dock.css +0 -1
- package/dist/styles/dock/layer-group.css +0 -1
- package/dist/styles/dock/layers.css +0 -1
- package/dist/styles/dock/overflow.css +0 -1
- package/dist/styles/dock/popover.css +0 -1
- package/dist/styles/dock/shape.css +0 -1
- package/dist/styles/dock/shell.css +0 -1
- package/dist/styles/dock-controls/icon-button.css +0 -1
- package/dist/styles/dock-controls.css +0 -1
- package/dist/styles/dock.css +0 -1
- package/dist/styles/drawer.css +0 -1
- package/dist/styles/icon-chip.css +0 -1
- package/dist/styles/instrument-chassis.css +0 -1
- package/dist/styles/scroll-progress-rim.css +0 -1
- package/dist/styles/select.css +0 -1
- package/dist/styles/tabs/segmented-tabs-drag.css +0 -1
- package/dist/styles/utilities/animate.css +0 -0
- package/dist/useConfiguratorState-Dq35N_7t.js +0 -167
- package/dist/useDockCtaReceive-BgMmeINo.js +0 -161
- package/dist/useGlobalDark-DjKMEQE2.js +0 -53
- package/dist/useGpuSubstrate-DcY584kE.js +0 -347
- package/dist/useInterval-ZATRi-1T.js +0 -18
- package/dist/useKeyboardShortcuts-ynVmNFo3.js +0 -104
- package/dist/useLiquidPress-BXNHydZh.js +0 -40
- package/dist/useTextHighlight-C46Le9u_.js +0 -72
- package/dist/useViewportReady-c0isoKL8.js +0 -191
- package/src/styles/card-scroll.css +0 -189
- package/src/styles/cards.css +0 -485
- package/src/styles/completion-seal.css +0 -205
- package/src/styles/configurator.css +0 -359
- package/src/styles/dialog-placement.css +0 -68
- package/src/styles/dock/adaptive-legibility.css +0 -119
- package/src/styles/dock/crossfade.css +0 -139
- package/src/styles/dock/cta-seat.css +0 -87
- package/src/styles/dock/density.css +0 -458
- package/src/styles/dock/dock.css +0 -199
- package/src/styles/dock/fisheye.css +0 -81
- package/src/styles/dock/layer-group.css +0 -329
- package/src/styles/dock/layers.css +0 -438
- package/src/styles/dock/morph.css +0 -455
- package/src/styles/dock/overflow.css +0 -332
- package/src/styles/dock/popover.css +0 -249
- package/src/styles/dock/search.css +0 -68
- package/src/styles/dock/section.css +0 -59
- package/src/styles/dock/shape.css +0 -188
- package/src/styles/dock/shell-regions.css +0 -73
- package/src/styles/dock/shell.css +0 -500
- package/src/styles/dock-controls/dark-mode-toggle.css +0 -123
- package/src/styles/dock-controls/icon-button.css +0 -221
- package/src/styles/dock-controls/tab-button.css +0 -143
- package/src/styles/dock-controls/touch-floor.css +0 -119
- package/src/styles/dock-controls/triggers.css +0 -157
- package/src/styles/dock-controls.css +0 -92
- package/src/styles/dock.css +0 -219
- package/src/styles/drawer.css +0 -434
- package/src/styles/feedback-tone.css +0 -104
- package/src/styles/icon-chip.css +0 -256
- package/src/styles/instrument-chassis.css +0 -449
- package/src/styles/menu.css +0 -187
- package/src/styles/scroll-progress-rim.css +0 -87
- package/src/styles/segmented-tabs.css +0 -424
- package/src/styles/select.css +0 -201
- package/src/styles/tabs/segmented-tabs-drag.css +0 -200
- package/src/styles/utilities/animate.css +0 -29
- /package/dist/{coalesce-metric-B8o7zT9u.js → coalesce-metric-znAcLzkB.js} +0 -0
- /package/dist/{CollapsibleContent-DiHcB_HH.js → collapsible-bPzS1aQk.js} +0 -0
- /package/dist/{compile-C55K3P9g.js → compile-DK3Fri1B.js} +0 -0
- /package/dist/{styles → components/_shared}/feedback-tone.css +0 -0
- /package/dist/{styles → components/_shared}/menu.css +0 -0
- /package/dist/{styles → components/card}/card-scroll.css +0 -0
- /package/dist/{styles/configurator.css → components/configurator/styles.css} +0 -0
- /package/dist/{styles/dock-controls → components/controls}/dark-mode-toggle.css +0 -0
- /package/dist/{styles/dialog-placement.css → components/dialog/placement.css} +0 -0
- /package/dist/{styles/dock-controls → components/dock/styles/controls}/tab-button.css +0 -0
- /package/dist/{styles/dock-controls → components/dock/styles/controls}/triggers.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/crossfade.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/cta-seat.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/fisheye.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/morph.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/search.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/section.css +0 -0
- /package/dist/{styles/dock → components/dock/styles}/shell-regions.css +0 -0
- /package/dist/{styles/segmented-tabs.css → components/tabs/styles/segmented.css} +0 -0
- /package/dist/{constants-D8lSMkOz.js → constants-DRZmNIY-.js} +0 -0
- /package/dist/{createContext-BQ1Gy_LB.js → createContext-FU0n5MGK.js} +0 -0
- /package/dist/{flow.glsl-CVqPSj8_.js → flow.glsl-DEGFGE11.js} +0 -0
- /package/dist/{FocusScope-BzKwhsBn.js → focus-scope-DUTKveod.js} +0 -0
- /package/dist/{InstrumentChassis-Dss5Tjcm.js → instrument-chassis-Cvstg4_U.js} +0 -0
- /package/dist/{Label-C84TaQiw.js → label-Cj38tJKG.js} +0 -0
- /package/dist/{menuItemVariants-DbO-Fr74.js → menuItemVariants-D6AOzzND.js} +0 -0
- /package/dist/{pointerFieldMappings-4VtmkOWv.js → pointerFieldMappings-CZojkgKj.js} +0 -0
- /package/dist/{presets-B07HzyKd.js → presets-CxeNvxuO.js} +0 -0
- /package/dist/{prng-B0PLRmR6.js → prng-Dz2_9RJu.js} +0 -0
- /package/dist/{scrollReader-DzYqPQ6V.js → scrollReader-C2oK9Hb8.js} +0 -0
- /package/dist/{supportsCssTimeline-Ie4xJFbD.js → supportsCssTimeline-Dz-GVxXM.js} +0 -0
- /package/dist/{Toaster-C_-WeU9W.js → toast-kAbchIN2.js} +0 -0
- /package/dist/{useControlSize-DJwe-7ZQ.js → useControlSize-CFfOk8I-.js} +0 -0
- /package/dist/{useDocumentVisibility-CpJGUgcJ.js → useDocumentVisibility-YeBDGqtI.js} +0 -0
- /package/dist/{useDragMorph-65ihHePq.js → useDragMorph-7ygF9O0m.js} +0 -0
- /package/dist/{useDragVelocity-BWcNMCux.js → useDragVelocity-CbMZEBaC.js} +0 -0
- /package/dist/{useFuzzySearch-KslRxiJY.js → useFuzzySearch-BOgep7RE.js} +0 -0
- /package/dist/{useLeadTrail-DOH4XkL1.js → useLeadTrail-BYu8dq4G.js} +0 -0
- /package/dist/{usePointerVelocityField-CwXyeW0Z.js → usePointerVelocityField-BdvnO0py.js} +0 -0
- /package/dist/{useResizeObserver-DDuoBeBo.js → useResizeObserver-BcUTquV7.js} +0 -0
- /package/dist/{useResolveTokenColor-DVT5kwv6.js → useResolveTokenColor-C07e-qaT.js} +0 -0
- /package/dist/{useRoutePointer-DL7I0gY4.js → useRoutePointer-BDNMFN73.js} +0 -0
- /package/dist/{useSpringMount-CNvvgGiC.js → useSpringMount-C6-DBx4e.js} +0 -0
- /package/dist/{useTimer-CkDV8SC2.js → useTimer-D8koDvJS.js} +0 -0
- /package/dist/{useUserInvalidAria-Bkruei7M.js → useUserInvalidAria-Cr4nR3tu.js} +0 -0
- /package/dist/{vReveal-DUmiEkX_.js → vReveal-DZfWl9XI.js} +0 -0
- /package/dist/{vSpecular-DlYN0UZy.js → vSpecular-CQFmLNzA.js} +0 -0
- /package/dist/{writeVelocityWeight-D1rvdxJu.js → writeVelocityWeight-D_AcvTsE.js} +0 -0
|
@@ -1,500 +0,0 @@
|
|
|
1
|
-
/* dock/shell.css — the `.glass-dock` structural skeleton (AX.W06 carve).
|
|
2
|
-
*
|
|
3
|
-
* Carved from the dock.css god-module (slice 25). This partial owns the dock's
|
|
4
|
-
* STATIC structural surface: the `.glass-dock` root + the W02 single-axis
|
|
5
|
-
* `overflow: clip` morph aperture, the paper-grain `::after`, the vertical-root
|
|
6
|
-
* column layout, the shape/variant plates (rail · instrument-strip · the
|
|
7
|
-
* horizontal shape-rounded/card + the W56 squircle), the position helpers, and
|
|
8
|
-
* the W45 `#persistent` / vertical three-region body. The dynamic single-scalar
|
|
9
|
-
* morph chrome lives in dock/morph.css; the density × `--dock-scale` cascade in
|
|
10
|
-
* dock/density.css; the layer crossfade/hit-test in dock/layers.css.
|
|
11
|
-
*
|
|
12
|
-
* @import-ed by dock.css in cascade order, in the SAME `@layer components` — the
|
|
13
|
-
* carve is isomorphic (same layer, same source order → ZERO visual delta). */
|
|
14
|
-
|
|
15
|
-
@layer components {
|
|
16
|
-
.glass-dock {
|
|
17
|
-
/* BG.W-GLASS-BLUR-PEER — the dock's backdrop re-points onto the SHARED
|
|
18
|
-
`--glass-blur-resting` (the unified 8px material), so the dock reads the
|
|
19
|
-
SAME `blur(8px)` RADIUS LEG as the glass button (`.btn-glass`), the
|
|
20
|
-
default-Card, and the menu-row — ONE liquid-glass material (the
|
|
21
|
-
resolved-radius peer lock, proof:glass-cal). `--glass-blur-resting`
|
|
22
|
-
carries a `saturate()` companion (it concentrates light like every
|
|
23
|
-
other tier — the flat-slab gray-read root stays closed, proof:no-gray
|
|
24
|
-
dock witnesses follow this source), and it composes `--glass-level` so
|
|
25
|
-
the `prefers-reduced-transparency` → `--glass-level: 0` a11y bracket
|
|
26
|
-
firms the dock to `blur(0)` unchanged. The `--glass-blur-dock` tier is
|
|
27
|
-
RETIRED (BG.W-CLOSEFIX-9SITE — the chain orphaned by this peer re-point);
|
|
28
|
-
the dock reads the unified resting material, there is no dock-own rung. */
|
|
29
|
-
/* BG.W-DOCK-LEGIBILITY-RECAL — re-anchor the dock's saturate at 1.2 now the
|
|
30
|
-
UNIFIED PLATE TINT is the PRIMARY anti-gray. HEAD had the dock riding the
|
|
31
|
-
content-tier `--glass-saturate-resting` (1.4) through the resting peer — the
|
|
32
|
-
C-GRAY "over-corrected to metallic" saturate the M4 revert condemns (real
|
|
33
|
-
liquid glass concentrates light ~1.1-1.25×). The plate-tint self-engage
|
|
34
|
-
(dock/adaptive-legibility.css) is now the PRIMARY anti-gray device, so saturate
|
|
35
|
-
no longer carries the whole load and drops off the metallic ceiling to the calm
|
|
36
|
-
1.2 SECONDARY floor.
|
|
37
|
-
|
|
38
|
-
THE SUBSTITUTION-VS-INHERITANCE RETUNE PATH (the recurring trap, honoured): the
|
|
39
|
-
`:root` `--glass-blur-resting` composes its `saturate(var(--glass-saturate-
|
|
40
|
-
resting))` AT `:root` — the inner `var()` is fixed at 1.4 there, so re-declaring
|
|
41
|
-
the `--glass-saturate-resting` KNOB on a descendant does NOT re-resolve the
|
|
42
|
-
inherited composed blur (the exact --glass-bg-{tier}/--glass-opacity-{tier}
|
|
43
|
-
documented trap). So the dock RE-DECLARES the COMPOSED `--glass-blur-resting`
|
|
44
|
-
here — the SAME recipe (the `--glass-blur-resting-radius` 8px primitive ×
|
|
45
|
-
`--glass-level`, so the `prefers-reduced-transparency` → `--glass-level: 0`
|
|
46
|
-
bracket firms to `blur(0)` unchanged AND the proof:glass-cal 8px PEER LOCK holds
|
|
47
|
-
by construction — the radius leg is byte-identical), with the pinned
|
|
48
|
-
`saturate(1.2)`. `--dock-surface-blur: var(--glass-blur-resting)` reads the
|
|
49
|
-
re-composed dock-scoped value; the content-tier resting plate keeps `:root`'s
|
|
50
|
-
1.4. The DARK dock read-weight is PRESERVED by the `.dark .glass-dock` arm below
|
|
51
|
-
(the 1.30 glow — the light 1.2 anchor never bleeds into the luminous-dark
|
|
52
|
-
register). Machine-locked by proof:no-gray's dock-saturate-anchored-recal
|
|
53
|
-
witnesses. */
|
|
54
|
-
--glass-blur-resting: blur(calc(var(--glass-blur-resting-radius) * var(--glass-level))) saturate(1.2);
|
|
55
|
-
--dock-surface-blur: var(--glass-blur-resting);
|
|
56
|
-
/* J.W3.C — vertical-rail max-block + horizontal max-inline caps
|
|
57
|
-
live as semantic tokens (defaults in `tokens.css`). When
|
|
58
|
-
content exceeds the cap, the appropriate axis container
|
|
59
|
-
scrolls with a mask-fade. Consumers override per-instance by
|
|
60
|
-
setting `--dock-max-block-size` / `--dock-max-inline-size`
|
|
61
|
-
on a `.glass-dock` directly. */
|
|
62
|
-
--dock-separator-height: calc(var(--dock-h, var(--size-icon-btn)) * 0.5);
|
|
63
|
-
--dock-collapsed-hover-scale: var(--scale-hover-dock);
|
|
64
|
-
/* AW.W3 — the spring-keyed child stagger knobs. `--dock-stagger-window-size`
|
|
65
|
-
is the fraction of the morph each child reveals over. Consumers retune the
|
|
66
|
-
cascade feel per instance.
|
|
67
|
-
|
|
68
|
-
AX.W02 — `--dock-stagger-step` is the per-child onset BEAT: each
|
|
69
|
-
successive control's reveal starts this fraction-of-morph later than the
|
|
70
|
-
one before it, so the row fills outer→in. ONE token × the child index
|
|
71
|
-
replaces the hand-typed 0.08/0.16/0.24/0.32/0.4 onset ladder — the onset
|
|
72
|
-
is `step × (childIndex − 1)`, capped (the cap below). 0.08 = ~5% of the
|
|
73
|
-
~0.32s morph between items — inside Emil Kowalski's 30–60ms stagger band,
|
|
74
|
-
never the >100ms "slideshow" register. The onset rides the NORMALIZED
|
|
75
|
-
morph progress (`--dock-expand-t`), NOT a wall-clock timer, so a fast
|
|
76
|
-
flick and a slow hover-open both choreograph correctly and an interrupted
|
|
77
|
-
morph orphans no timers.
|
|
78
|
-
|
|
79
|
-
AX.W45 DK1/DK7 — the window NARROWED 0.55 → 0.4. The per-child onset caps
|
|
80
|
-
at `step × 5 = 0.40` (child 6+), so the LAST detail child used to finish at
|
|
81
|
-
`0.40 + 0.55 = 0.95` of the morph — it barely appeared until 95% through
|
|
82
|
-
(the "shrunken icon does not appear for a while" tail). Tightening the
|
|
83
|
-
window to 0.4 lands the last child at `0.40 + 0.4 = 0.80` (the iOS front-
|
|
84
|
-
loaded register: stagger the EXPANDING detail, never the persistent/summary
|
|
85
|
-
glyph). The step (0.08, Kowalski's band) is KEPT — it is the window, not the
|
|
86
|
-
beat, that was too wide. The summary/persistent glyph is front-loaded
|
|
87
|
-
structurally (onset 0, scalar-keyed below). */
|
|
88
|
-
--dock-stagger-window-size: 0.4;
|
|
89
|
-
--dock-stagger-step: 0.08;
|
|
90
|
-
/* AW.W3b — big-dock tokens. `--dock-card-radius` is the finite card-shell
|
|
91
|
-
radius (default --radius-dock-card = --radius-3xl, density-scaled
|
|
92
|
-
below); `--dock-tile-min` is the grid tile minimum (auto-fill track
|
|
93
|
-
floor). Both are density-scaled (compact tighter, spacious looser) — the
|
|
94
|
-
card radius + tile size ride the density cascade, never magic numbers. */
|
|
95
|
-
--dock-card-radius: var(--radius-dock-card);
|
|
96
|
-
--dock-tile-min: 4.5rem;
|
|
97
|
-
/* Individual-transform identity base (AQ.W3 §W3.2). `scale: 1` at rest
|
|
98
|
-
mints the stacking context once so a portaled popover over `--z-dock`
|
|
99
|
-
stays above the dock during a hover scale (the load-bearing
|
|
100
|
-
stacking-context guarantee). Covers every dock scale site. */
|
|
101
|
-
scale: 1;
|
|
102
|
-
position: relative;
|
|
103
|
-
/* AZ.W-ADAPTIVE-AUTO Arm 1 — the dock self-darkens over light backdrops by
|
|
104
|
-
default via the UNCONDITIONAL `:where(.glass-dock)` self-engage rule in
|
|
105
|
-
dock/morph.css (mirroring the overlay band's `ladder.css:169`): it re-points
|
|
106
|
-
the inheriting `--glass-tint-source`/`--glass-tint-strength` directly on the
|
|
107
|
-
dock root, so the shell + chassis + held/open tiers darken toward warm-ink
|
|
108
|
-
with NO consumer opt-in (a dock floats over arbitrary — frequently light —
|
|
109
|
-
page content). `--glass-backdrop: light` is KEPT here so a consumer's
|
|
110
|
-
DESCENDANT nested-glass inside the dock also reads the bright bucket via the
|
|
111
|
-
ancestor-querying `@container` block in dock/morph.css (CSS style queries
|
|
112
|
-
never self-match, so this declaration alone is inert for the dock's OWN
|
|
113
|
-
plate — the self-engage rule, not this token, darkens the dock). */
|
|
114
|
-
--glass-backdrop: light;
|
|
115
|
-
/* AY.W-A11Y-PERF O-4 — paint containment so the maximal-glass nested
|
|
116
|
-
backdrop-filter sample does not escape the dock box (the standard nested-
|
|
117
|
-
backdrop-cost mitigation; the Button-in-glass-in-dock stack re-samples the
|
|
118
|
-
already-blurred buffer at each level without it). */
|
|
119
|
-
/* BA.W-DOCK-GEOMETRY contain:paint AUDIT verdict (a) — the control-plate
|
|
120
|
-
clearance fix (the `--dock-control-safe-inset` painted-plate inset, scope
|
|
121
|
-
1) + the scroll-port cross-axis un-clip (scope 2) keep the maximal
|
|
122
|
-
hover/active control plate INSIDE the dock padding box: the inset plate is
|
|
123
|
-
centered in its cell (≥1px slack/side at hover), the cell sits flush at the
|
|
124
|
-
dock content edge, and the `--dock-padding-block` (≈6px) padding holds the
|
|
125
|
-
plate ≥7px clear of the `contain: paint` border-box edge on the block axis.
|
|
126
|
-
So the `paint` clip axis is the NON-proximate second clip box (the lane's
|
|
127
|
-
`probe-bottomdock-nocontain.png` forced-root probe proved the inner
|
|
128
|
-
scroll-port box was proximate, not this) and the `paint` axis is RETAINED
|
|
129
|
-
here — the inset + freed cross axis suffice, no containment LIFT on the
|
|
130
|
-
control-plate band. (BB.W-PERF-PRODUCER A′-4 widens the value to
|
|
131
|
-
`contain: layout style paint` — the restyle-scope axes ALONGSIDE the paint
|
|
132
|
-
clip box, see below — but never lifts `paint`.) The π readback
|
|
133
|
-
(W-DOCK-GEOMETRY-DELTA.md) records the live plate-inside-padding margin
|
|
134
|
-
number that binds this verdict. */
|
|
135
|
-
/* BB.W-PERF-PRODUCER A′-4 — the `--dock-morph-t` restyle-scope narrowing.
|
|
136
|
-
The per-frame morph scalar write recomputes the inheriting `calc()` group
|
|
137
|
-
across the dock subtree (dock.css's 10-selector `:where()` consumers); add
|
|
138
|
-
the `layout` + `style` containment axes so a scalar write recomputes
|
|
139
|
-
layout/style WITHIN the dock subtree, not up the document (the value.js A′-4
|
|
140
|
-
~13fps restyle-cost trace). RECONCILED with the existing axes: `paint`
|
|
141
|
-
(above, the BA.W-DOCK-GEOMETRY clip box) composes — `contain: layout style
|
|
142
|
-
paint` is the union, NEVER `size` (which `container-type: inline-size` carries
|
|
143
|
-
as `inline-size` ONLY on the OPT-IN `containerName` host below; the default
|
|
144
|
-
free-floating dock must stay shrink-to-fit, so `size`/`inline-size` is
|
|
145
|
-
DELIBERATELY excluded here — adding it would re-introduce the 3.3.0 sliver
|
|
146
|
-
regression the §99 comment documents). `layout`/`style` containment scopes
|
|
147
|
-
RECALC, it does not establish a paint clip — the L0 plate owns the clip
|
|
148
|
-
(W-DOCK-SPINE) and the fan/menu surfaces are TOP-LAYER popovers (W-DOCK-ESCAPE;
|
|
149
|
-
the `.glass-dock-frame` rail-escape retired). The `DOCK_SPRING` clock is
|
|
150
|
-
byte-fenced (the value.js letter) — this is restyle COST, not a re-tune. */
|
|
151
|
-
/* BI.W-DOCK-SPINE — the `paint` axis is DROPPED from `contain` (the triple-identity
|
|
152
|
-
clip root). `.glass-dock` is NO LONGER the clip aperture: the L0 `.dock-plate`
|
|
153
|
-
(dock/dock.css) owns the visible extent via `clip-path` off `--dock-t`, and the
|
|
154
|
-
L1 control run is `overflow: visible`, so a hover plate at the dock edge overhangs
|
|
155
|
-
UN-CLIPPED (UF-C6/C7 unrepresentable). `contain: layout style` is KEPT (NO
|
|
156
|
-
`paint` — the A′-4 ~13fps restyle-scope for the transitional per-frame
|
|
157
|
-
`--dock-morph-t` subtree write, WITHOUT a paint clip that would re-clip the
|
|
158
|
-
controls). `contain: layout` establishes a containing block + isolates internal
|
|
159
|
-
layout but does NOT clip painting, so the controls still overhang freely. When
|
|
160
|
-
W-DOCK-SPRING-UNIFY retires `--dock-morph-t`, the plate scalar's own
|
|
161
|
-
`inherits: false` is the sole restyle-scope + `contain` can drop entirely. */
|
|
162
|
-
contain: layout style;
|
|
163
|
-
display: inline-flex;
|
|
164
|
-
align-items: center;
|
|
165
|
-
/* AW.W1 — the dock does NOT establish a default inline-size container.
|
|
166
|
-
`container-type: inline-size` applies `contain: inline-size`, which
|
|
167
|
-
makes an element's inline size INDEPENDENT of its contents — fatally
|
|
168
|
-
incompatible with a shrink-to-fit pill: under it `.glass-dock` cannot
|
|
169
|
-
size to its content and collapses to its padding floor (~19px) with the
|
|
170
|
-
active layer overflowing (the 3.3.0 regression — every horizontal dock,
|
|
171
|
-
collapsed AND always-expanded, rendered as a sliver). The `dock`-named
|
|
172
|
-
container is now OPT-IN via the `containerName` prop: a consumer
|
|
173
|
-
embedding the dock in a width-CONSTRAINED host (a 320px sidebar) sets
|
|
174
|
-
`containerName="dock"` to get the descendant container-query reads (the
|
|
175
|
-
audacious-label compression below), trading shrink-to-fit for the
|
|
176
|
-
host-constrained width it already has there. The default free-floating
|
|
177
|
-
dock shrink-wraps to its content (AV.W16 TW3 made this a default and
|
|
178
|
-
silently broke dock sizing for the common case). */
|
|
179
|
-
/* BC.W-DOCK-ARBITRARY — the base corner is the shape register's token lerp (dock/shape.css, the single radius authority generalizing the prior static). */
|
|
180
|
-
white-space: nowrap;
|
|
181
|
-
max-inline-size: var(--dock-max-inline-size);
|
|
182
|
-
padding: var(--dock-padding-block, 0.375rem) var(--dock-padding-inline, 0.5rem);
|
|
183
|
-
/* BI.W-DOCK-SPINE — the GLASS SURFACE (background + backdrop-filter + border)
|
|
184
|
-
MOVED off `.glass-dock` onto the L0 `.dock-plate` (dock/dock.css), which owns
|
|
185
|
-
the ONE backdrop lens + its `clip-path` visible-extent morph. The box is now
|
|
186
|
-
STRUCTURAL (layout + the drop-shadow elevation below); the plate is the surface.
|
|
187
|
-
The `--dock-surface-blur` + `--glass-tint-*` tokens re-pointed on `.glass-dock`
|
|
188
|
-
by the shell + adaptive-legibility partials INHERIT to the plate, so the AZ
|
|
189
|
-
self-engage darken + the dark-arm glow reach it with ZERO re-author. The
|
|
190
|
-
collapsed↔expanded surface INTERP is retargeted onto `.dock-plate` in
|
|
191
|
-
morph.css. No `backdrop-filter` on the box → ONE lens, no double-blur. */
|
|
192
|
-
/* BC.W-BLACK-BAR D2 — the dock rim is the DIRECTIONAL pair (bright catch-light
|
|
193
|
-
on the TOP edge, faint warm under-shadow on the BOTTOM — glass-fx.css), the
|
|
194
|
-
leading inset layers of the dock shadow stack. RETIRES the omnidirectional
|
|
195
|
-
`--glass-edge-light` ring that fought the (now ≤4% α) `--glass-border-dock`
|
|
196
|
-
perimeter; the navigation band reads its rim from the SAME corrected token
|
|
197
|
-
source as cards/dialogs (no dock-local dark rim re-paste). */
|
|
198
|
-
box-shadow: var(--glass-rim-top), var(--glass-rim-bottom), var(--shadow-dock-override, var(--shadow-dock));
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/* BG.W-DOCK-LEGIBILITY-RECAL — PRESERVE the dark-dock read-weight. The light dock
|
|
202
|
-
re-composes its blur at saturate 1.2 (the calm secondary anti-gray floor above); the
|
|
203
|
-
LUMINOUS-DARK register earns a higher saturate glow + the luminosity brightness lift
|
|
204
|
-
(the W-DARK-MATERIAL "dark glass glows where light passes" model), so the dark dock
|
|
205
|
-
RE-DECLARES the composed `--glass-blur-resting` back to the dark `:root` recipe
|
|
206
|
-
(`saturate(1.30) brightness(1.14)`) — otherwise the light `.glass-dock` re-compose
|
|
207
|
-
(which wins over the dark `:root` value by cascade order) would strip the dark glow
|
|
208
|
-
to 1.2. This is the plain per-mode pair, the house idiom; the SAME radius primitive
|
|
209
|
-
(8px × `--glass-level`, peer-lock byte-identical). The dark content-tier resting
|
|
210
|
-
plate keeps the dark `:root` value untouched (this override is `.glass-dock`-scoped). */
|
|
211
|
-
.dark .glass-dock {
|
|
212
|
-
--glass-blur-resting: blur(calc(var(--glass-blur-resting-radius) * var(--glass-level))) saturate(1.30) brightness(1.14);
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/* AW.W2 — the box IS the reveal aperture (clip-reveal one-clock morph).
|
|
216
|
-
Migrated from `overflow: hidden` to a SINGLE-AXIS `overflow: clip` on the
|
|
217
|
-
MORPH axis (horizontal clips X / visible Y; vertical clips Y / visible X),
|
|
218
|
-
gated on a `data-morphing` attribute the driver owns (set at gesture START,
|
|
219
|
-
cleared on SETTLE). The clip PERSISTS through the morph — content is laid
|
|
220
|
-
out ONCE at its natural size behind the aperture and the growing/shrinking
|
|
221
|
-
box uncovers it, never spills it — and lifts to `visible` only at REST
|
|
222
|
-
expanded (so grown content + the focus ring paint past the box). The
|
|
223
|
-
prior `.expanded { overflow: visible }` (bound synchronously to
|
|
224
|
-
`visualExpanded`) lifted the clip at frame 0, leaving no aperture to reveal
|
|
225
|
-
through; the `:not([data-morphing])` guard holds the clip for the whole
|
|
226
|
-
gesture and lifts it on the final paint.
|
|
227
|
-
|
|
228
|
-
`overflow: clip` is PAINT-ONLY (not a scroll container): it never
|
|
229
|
-
participates in `scrollIntoView`/scroll-anchoring, cannot be a
|
|
230
|
-
scroll-driven-animation `scroller`, and drops the `min-width:0` scroll-box
|
|
231
|
-
dance for the non-scroll shell. The cross axis is ALWAYS explicitly
|
|
232
|
-
`visible` (the MDN single-axis-clip-degrades-to-hidden caveat). The
|
|
233
|
-
legitimate scroll ports (`.dock-scroll-{x,y}`, `overflow: auto`) STAY
|
|
234
|
-
`auto` — they are NOT migrated. AT.W7-dock-a's orthogonality holds: the
|
|
235
|
-
`containerName` opt-in does not touch the clip. */
|
|
236
|
-
/* BI.W-DOCK-SPINE — the box `overflow: clip` MORPH APERTURE is DELETED (all four
|
|
237
|
-
`:not(.vertical)`/`.vertical` × `[data-morphing]` aperture rules + the rest-expanded
|
|
238
|
-
lift). `.glass-dock` NEVER clips its descendants now: the L0 `.dock-plate` owns the
|
|
239
|
-
visible-extent morph via `clip-path` off `--dock-t`, and the L1 control run is
|
|
240
|
-
`overflow: visible` BOTH axes — a hover/press plate at the dock edge overhangs
|
|
241
|
-
UN-CLIPPED (UF-C6/C7). The legitimate vertical SCROLL port (`overflow-y: auto`)
|
|
242
|
-
stays below; its cross axis is `visible` (the `overflow-clip-margin` band-aid is
|
|
243
|
-
gone — the plate is the clip). During the transitional window (until
|
|
244
|
-
W-DOCK-SPRING-UNIFY re-points the plate scalar) the box-size morph still drives the
|
|
245
|
-
extent + the plate clip is a corner-safe no-op; a mid-morph content spill is the
|
|
246
|
-
tolerated transitional state W-DOCK-CROSSFADE's content-wrapper clip closes. */
|
|
247
|
-
.glass-dock {
|
|
248
|
-
overflow: visible;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/* AX.W04 F6 — the vertical-dock max-block-size + internal-scroll CONTRACT.
|
|
252
|
-
A vertical rail caps at `--dock-max-block-size` (the `.vertical` rule), but
|
|
253
|
-
at rest the `overflow: visible` above let over-cap content SPILL — forcing a
|
|
254
|
-
consumer (bbnf-buddy ToolsLayer) to hand-anchor a max-height + scroll. Ship
|
|
255
|
-
the contract here: at rest a vertical column scrolls its OWN block axis when
|
|
256
|
-
content exceeds the cap. When content fits under the cap (`height:auto` <
|
|
257
|
-
cap) nothing scrolls — the scroll port only engages on real over-cap
|
|
258
|
-
content. The block-axis morph clip stays `data-morphing`-gated above; this
|
|
259
|
-
is the AT-REST port only. Consumers set `--dock-max-block-size` per-instance
|
|
260
|
-
to anchor the column to the viewport without re-deriving the scroll plumbing.
|
|
261
|
-
|
|
262
|
-
BG.W-DOCK-CAP-SCROLL-FADE — a capped vertical axis is INTRINSICALLY a scroll
|
|
263
|
-
axis (the `dock-scroll-y` opt-in RETIRED): this rule fires UNCONDITIONALLY on
|
|
264
|
-
every at-rest vertical dock, so a SidebarDock that hits `--dock-max-block-
|
|
265
|
-
size` at 1280×600 scrolls its trailing utility controls into reach with NO
|
|
266
|
-
prop change (the #12 "dock scrolling broken" root fix). The CROSS (inline)
|
|
267
|
-
axis is `overflow-x: visible` — post-SPINE the L0 plate owns the clip, so
|
|
268
|
-
the scroll port's cross axis never clips the control's inset hover plate
|
|
269
|
-
(the `overflow-clip-margin` band-aid retired with the aperture, W-DOCK-SPINE).
|
|
270
|
-
The geometric inset (the 80%-of-cell plate) is the lozenge guard. The soft
|
|
271
|
-
edge-fade rides the ONE FadingScroll mask seam (the `--fade-start`/
|
|
272
|
-
`--fade-end` customs driven off `scroll(self block)` in the `@supports`
|
|
273
|
-
block below); at rest both are 0px → SHARP. NOT PRM-gated (a legibility
|
|
274
|
-
cue). */
|
|
275
|
-
.glass-dock.vertical.always-expanded:not([data-morphing]),
|
|
276
|
-
.glass-dock.vertical.expanded:not([data-morphing]) {
|
|
277
|
-
/* BI.W-DOCK-SPINE — the cross-axis `overflow-x: clip` + `overflow-clip-margin`
|
|
278
|
-
band-aid is GONE (the shell.css:294 aperture the plate retires): the L0 plate
|
|
279
|
-
owns the clip, so the scroll port's cross axis is `visible`. The block-axis
|
|
280
|
-
`overflow-y: auto` scroll port stays (a capped vertical column scrolls). */
|
|
281
|
-
overflow-x: visible;
|
|
282
|
-
overflow-y: auto;
|
|
283
|
-
scrollbar-width: none;
|
|
284
|
-
overscroll-behavior-y: contain;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
.glass-dock.vertical.always-expanded:not([data-morphing])::-webkit-scrollbar,
|
|
288
|
-
.glass-dock.vertical.expanded:not([data-morphing])::-webkit-scrollbar {
|
|
289
|
-
display: none;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
/* BG.W-DOCK-CAP-SCROLL-FADE — the liquid-weight soft edge on the vertical
|
|
293
|
-
scroll port: the `mask-image` reads the `--fade-start`/`--fade-end` customs
|
|
294
|
-
the SAME `gl-fade-start-in`/`gl-fade-end-out` keyframes `<FadingScroll>`
|
|
295
|
-
uses drive off the `scroll(self block)` timeline (reached by name — ZERO
|
|
296
|
-
new recipe). The `@supports (animation-timeline: scroll())` co-gate was
|
|
297
|
-
COLLAPSED at BG.NF.2 W-LEGACY-LADDER-COLLAPSE — scroll-driven animations
|
|
298
|
-
are Baseline on the target set (the Safari-26 `scroll()` floor RATIFIED by
|
|
299
|
-
4.7's dual-engine paint PASS, WebKit 26.4 driving the ScrollTimelines
|
|
300
|
-
live), so this is the un-gated mechanism. NOT PRM-gated (a legibility
|
|
301
|
-
cue). */
|
|
302
|
-
.glass-dock.vertical.always-expanded:not([data-morphing]),
|
|
303
|
-
.glass-dock.vertical.expanded:not([data-morphing]) {
|
|
304
|
-
mask-image: linear-gradient(
|
|
305
|
-
to bottom,
|
|
306
|
-
transparent 0,
|
|
307
|
-
black var(--fade-start, 0px),
|
|
308
|
-
black calc(100% - var(--fade-end, 0px)),
|
|
309
|
-
transparent 100%
|
|
310
|
-
);
|
|
311
|
-
animation:
|
|
312
|
-
gl-fade-start-in linear both,
|
|
313
|
-
gl-fade-end-out linear both;
|
|
314
|
-
animation-timeline: scroll(self block), scroll(self block);
|
|
315
|
-
animation-range:
|
|
316
|
-
0 var(--fade-scroll-width),
|
|
317
|
-
calc(100% - var(--fade-scroll-width)) 100%;
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
/* BI.W-DOCK-SPINE — the paper-grain `::after` MOVED onto `.dock-plate::after`
|
|
321
|
-
(dock/dock.css): the grain belongs on the glass SURFACE, which is the plate now.
|
|
322
|
-
Same recipe (the `--paper-clean-texture` overlay + the `.dark` soft-light arm),
|
|
323
|
-
byte-identical. */
|
|
324
|
-
|
|
325
|
-
/* Vertical rails grow-to-fit then clamp at `--dock-max-block-size` (the
|
|
326
|
-
AX.W04 F6 contract). At rest a capped column scrolls its OWN block axis
|
|
327
|
-
internally (the `.vertical.always-expanded:not([data-morphing])` port above)
|
|
328
|
-
so a consumer setting `--dock-max-block-size` gets a viewport-anchored
|
|
329
|
-
scrollable tool palette without hand-anchoring it. `overflow="wrap"` is
|
|
330
|
-
horizontal-only (the class is not emitted for a vertical orientation); a
|
|
331
|
-
vertical column's natural overflow story is this cap + internal scroll. No
|
|
332
|
-
edge-fade mask — the scroll is scrollbar-hidden, not feathered. */
|
|
333
|
-
.glass-dock.vertical {
|
|
334
|
-
display: inline-flex;
|
|
335
|
-
flex-direction: column;
|
|
336
|
-
align-items: stretch;
|
|
337
|
-
justify-content: flex-start;
|
|
338
|
-
/* AX.W45 D13-b — H/V PROPORTION PARITY. The hardcoded `gap: 0.25rem` + the
|
|
339
|
-
density-blind `--dock-vertical-padding` override are DELETED. The vertical
|
|
340
|
-
dock now reads the SAME `--dock-layer-gap` / `--dock-padding-*` density
|
|
341
|
-
cascade the horizontal dock tunes, so `size="lg"` paints a LARGER
|
|
342
|
-
gap than `compact` on BOTH axes (the density axis was dead on the vertical
|
|
343
|
-
dock). ONE token ladder, both orientations; the `--dock-scale` multiplier
|
|
344
|
-
threads it for free (the cascade is `calc(* --dock-scale)`-keyed). */
|
|
345
|
-
gap: var(--dock-layer-gap, 0.375rem);
|
|
346
|
-
white-space: normal;
|
|
347
|
-
width: auto;
|
|
348
|
-
height: auto;
|
|
349
|
-
max-block-size: var(--dock-max-block-size);
|
|
350
|
-
/* overflow on the block (morph) axis is the data-morphing-gated clip
|
|
351
|
-
shell above; the cross axis stays visible there. */
|
|
352
|
-
padding: var(--dock-padding-block, 0.375rem);
|
|
353
|
-
border-radius: var(--radius-dock);
|
|
354
|
-
/* BB.W-DOCK-MORPH-FAMILY (f) — the stale "a vertical rail is ALWAYS-EXPANDED
|
|
355
|
-
(no collapse↔expand morph)" assumption is RETIRED (it was false since
|
|
356
|
-
vertical-collapse shipped: `alwaysExpanded` defaults FALSE, so a vertical
|
|
357
|
-
dock genuinely collapses its `block-size`). The vertical plate's
|
|
358
|
-
bg/border/padding/radius now MORPH on the SAME `--dock-expand-t` scalar
|
|
359
|
-
the horizontal chrome rides (the morph.css `.glass-dock.vertical` interp +
|
|
360
|
-
padding axis-inverse + the radius arm below) — the chrome follows the
|
|
361
|
-
box-size morph, no discrete snap. NO root CSS-transition on the morph-
|
|
362
|
-
chrome props is re-added (a `transition: padding/background/border-color`
|
|
363
|
-
arm is the second-clock smell the single-scalar rebuild forbids — the
|
|
364
|
-
`--dock-expand-t` interp is the single authority). KEPT: the DECORATIVE
|
|
365
|
-
hover-scale + press-squish (the individual `scale`/`transform`) and the
|
|
366
|
-
box-shadow fade — interaction polish on the rail, NOT the morph chrome. */
|
|
367
|
-
transition:
|
|
368
|
-
box-shadow var(--dock-motion-standard),
|
|
369
|
-
transform var(--dock-motion-resize),
|
|
370
|
-
scale var(--dock-motion-resize);
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
/* BC.W-DOCK-ENGINE move 2 — the rail polish transition is COMPOSITOR-PROMOTED
|
|
374
|
-
only while its hover/press/held state is ARMED (the transform/scale legs ride
|
|
375
|
-
the compositor channel; `will-change: transform` hints the layer for the
|
|
376
|
-
gesture). NEVER a resting `will-change` (a permanent promotion pins a wasted
|
|
377
|
-
compositor layer at rest — the motion-canon P5 no-resting-promotion floor):
|
|
378
|
-
the hint lives on the `:hover`/`:active`/`[data-held]` armed selectors and is
|
|
379
|
-
cleared the instant the state releases. PRM keeps no pinned layer either — the
|
|
380
|
-
universal a11y carve strips the spatial transform under reduce, and a
|
|
381
|
-
non-animating rail needs no promotion. */
|
|
382
|
-
.glass-dock.vertical:hover,
|
|
383
|
-
.glass-dock.vertical:active,
|
|
384
|
-
.glass-dock.vertical[data-held] {
|
|
385
|
-
will-change: transform;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
/* AZ.W-DOCK-TAXONOMY — the vertical dock's surface plate (the prior
|
|
389
|
-
`.variant-rail` block; "rail-ness" is now `orientation="vertical"` + a
|
|
390
|
-
shape/density choice, not a variant). */
|
|
391
|
-
.glass-dock.vertical {
|
|
392
|
-
padding: var(--dock-rail-padding, var(--dock-padding-inline, 0.5rem));
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
/* BI.W-DOCK-SPINE — the vertical dock's SURFACE (background + border-color) retargeted
|
|
396
|
-
onto the L0 `.dock-plate` (the box is structural; the plate is the glass). The
|
|
397
|
-
AZ.W-ADAPTIVE-AUTO element-level oklab tint composes the inheriting
|
|
398
|
-
`--glass-tint-source`/`-strength` the self-engage re-points on `.glass-dock`, so the
|
|
399
|
-
darken reaches the vertical plate. Zero-delta at the `0%` rest default. morph.css's
|
|
400
|
-
`.glass-dock.vertical .dock-plate` interp (0,3,0) OVERRIDES this during the morph. */
|
|
401
|
-
.glass-dock.vertical .dock-plate {
|
|
402
|
-
background: color-mix(
|
|
403
|
-
in oklab,
|
|
404
|
-
var(--glass-bg-dock, var(--glass-bg-wash)),
|
|
405
|
-
var(--glass-tint-source) var(--glass-tint-strength)
|
|
406
|
-
);
|
|
407
|
-
border-color: var(--glass-border-dock, var(--glass-border-wash));
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
.glass-dock.vertical.shape-pill {
|
|
411
|
-
border-radius: var(--radius-pill);
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
.glass-dock.vertical.shape-rounded {
|
|
415
|
-
border-radius: var(--radius-xl);
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
/* BB.W-DOCK-MORPH-FAMILY (f) — the VERTICAL big-dock CARD radius MORPHS on the
|
|
419
|
-
SAME `--dock-expand-t` scalar the horizontal `.shape-card` rides (the radius
|
|
420
|
-
arm of the vertical chrome un-gate; it lives in shell.css beside the horizontal
|
|
421
|
-
arm, not morph.css). `--radius-pill` at expand-t 0 (collapsed), the finite
|
|
422
|
-
`--dock-card-radius` at expand-t 1 (expanded) — the radius follows the box-size
|
|
423
|
-
block morph, no discrete snap. The static `.shape-pill`/`.shape-rounded` rest
|
|
424
|
-
radii above are the rest endpoints for those shapes; this is the card shape's
|
|
425
|
-
interpolated radius (mirroring the horizontal `:not(.vertical).shape-card`). */
|
|
426
|
-
.glass-dock.vertical.shape-card {
|
|
427
|
-
border-radius: calc(
|
|
428
|
-
var(--radius-pill) +
|
|
429
|
-
(var(--dock-card-radius) - var(--radius-pill)) *
|
|
430
|
-
var(--dock-expand-t)
|
|
431
|
-
);
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
/* AW.W3b — horizontal-root shape rules. The `shape-*` class once bound ONLY under
|
|
435
|
-
the vertical surface; on a horizontal dock the prop silently no-op'd (the root
|
|
436
|
-
hardwired `--radius-dock` = `--radius-pill`). These rules close that
|
|
437
|
-
documented-but-dead prop — `shape="rounded"` / `shape="card"` now paint on a
|
|
438
|
-
horizontal dock. Scoped to `:not(.vertical)` so the vertical dock (which owns
|
|
439
|
-
its own radius above) is untouched. */
|
|
440
|
-
.glass-dock:not(.vertical).shape-rounded {
|
|
441
|
-
border-radius: var(--radius-xl);
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
/* The big-dock CARD shell — a FINITE concentric radius above 2xl, below pill.
|
|
445
|
-
It does NOT collapse to a stadium. Collapsed it returns to a pill (the morph
|
|
446
|
-
target); the pill↔card radius now MORPHS on the SAME `--dock-expand-t` scalar
|
|
447
|
-
the box + chrome ride (ONE clock, no discrete snap) — `--radius-pill` at
|
|
448
|
-
expand-t 0 (collapsed), `--dock-card-radius` at expand-t 1 (expanded). The
|
|
449
|
-
prior two discrete `.shape-card` / `.shape-card.collapsed` rules + their
|
|
450
|
-
reliance on the deleted `border-radius var(--dock-motion-resize)` transition
|
|
451
|
-
are RETIRED for this single interpolation. */
|
|
452
|
-
.glass-dock:not(.vertical).shape-card {
|
|
453
|
-
border-radius: calc(
|
|
454
|
-
var(--radius-pill) +
|
|
455
|
-
(var(--dock-card-radius) - var(--radius-pill)) *
|
|
456
|
-
var(--dock-expand-t)
|
|
457
|
-
);
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
/* AX.W56 — the big-dock IS the one squircle surface (the rounded-vs-squircle
|
|
461
|
-
policy: cards/pills/panels stay round, big-docks + the like → superellipse).
|
|
462
|
-
The squircle reads markedly better at the large `--radius-dock-card` (24px)
|
|
463
|
-
shell — an `@supports`-gated ENHANCEMENT only (Chrome 139+, no FF/Safari 2026).
|
|
464
|
-
The `border-radius` arc is the cross-engine CONTRACT; the squircle is the
|
|
465
|
-
better tier (NOT a degraded fallback). The shape is now the tokenized
|
|
466
|
-
`var(--corner-shape-bigdock)` (theme.css) so it is as overridable as the
|
|
467
|
-
radius — a consumer retints the corner shape from `:root`, and W42's
|
|
468
|
-
dock-morph reads the same `--corner-k-*` vocabulary. The `@supports`
|
|
469
|
-
condition tests the LITERAL `superellipse(2)` (a `var()` is not evaluable in
|
|
470
|
-
an `@supports` query) — the same Chrome-139 feature the token resolves to. */
|
|
471
|
-
@supports (corner-shape: superellipse(2)) {
|
|
472
|
-
.glass-dock:not(.vertical).shape-card {
|
|
473
|
-
corner-shape: var(--corner-shape-bigdock);
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
/* AZ.W-DOCK-TAXONOMY — the `instrument-strip` chassis-strip variant is RETIRED
|
|
478
|
-
(the ≥2-consumer bar). It carried the vocabulary of the InstrumentRail
|
|
479
|
-
component RETIRED at AY W-IC1; with the `variant` discriminant gone and no
|
|
480
|
-
live `variant="instrument-strip"` call-site in src/ or demo/, the chassis
|
|
481
|
-
paint has zero consumers. The cross-repo speedtest SurveyResultDock cockpit
|
|
482
|
-
re-pins in its own migration (recorded in MIGRATION.md). A consumer needing
|
|
483
|
-
the chassis surface composes `<InstrumentChassis>` directly. */
|
|
484
|
-
|
|
485
|
-
.glass-dock:where(.fixed) {
|
|
486
|
-
z-index: var(--z-dock);
|
|
487
|
-
}
|
|
488
|
-
|
|
489
|
-
.dock-inline {
|
|
490
|
-
margin: 0 auto;
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
.dock-sticky {
|
|
494
|
-
position: sticky;
|
|
495
|
-
top: 0;
|
|
496
|
-
z-index: var(--z-dock);
|
|
497
|
-
margin: 0 auto;
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
/* dock-controls/dark-mode-toggle.css — the `.dark-mode-toggle-button` control
|
|
2
|
-
family (AZ.W-CARVE partial 2 of 5; carved out of dock-controls.css).
|
|
3
|
-
|
|
4
|
-
The standalone toggle sizes (sm/md/lg/control) + the IN-DOCK glyph-inset
|
|
5
|
-
contract (AY.W-DOCK-CHROME §2 / AX.W06 USF-2 — the toggle glyph routes through
|
|
6
|
-
`--dock-control-glyph-size` so it is optically uniform with the nav glyphs when
|
|
7
|
-
docked). Opens its OWN `@layer components`; @import-ed after icon-button.css. */
|
|
8
|
-
|
|
9
|
-
@layer components {
|
|
10
|
-
.dark-mode-toggle-button {
|
|
11
|
-
width: var(--dark-mode-toggle-size, 2.25rem);
|
|
12
|
-
height: var(--dark-mode-toggle-size, 2.25rem);
|
|
13
|
-
min-width: var(--dark-mode-toggle-size, 2.25rem);
|
|
14
|
-
min-height: var(--dark-mode-toggle-size, 2.25rem);
|
|
15
|
-
max-width: var(--dark-mode-toggle-size, 2.25rem);
|
|
16
|
-
max-height: var(--dark-mode-toggle-size, 2.25rem);
|
|
17
|
-
aspect-ratio: 1;
|
|
18
|
-
padding: var(--dark-mode-toggle-padding, 0.375rem);
|
|
19
|
-
transition:
|
|
20
|
-
opacity var(--dock-motion-standard),
|
|
21
|
-
background-color var(--dock-motion-standard),
|
|
22
|
-
box-shadow var(--dock-motion-fast);
|
|
23
|
-
|
|
24
|
-
& > svg {
|
|
25
|
-
width: 100%;
|
|
26
|
-
height: 100%;
|
|
27
|
-
max-width: 100%;
|
|
28
|
-
max-height: 100%;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
&:hover,
|
|
32
|
-
&:focus {
|
|
33
|
-
background: var(--surface-tint-10);
|
|
34
|
-
opacity: 1;
|
|
35
|
-
outline: none;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
&:focus-visible {
|
|
39
|
-
/* BI.W-DOCK-CONTROLS (value.js P5) — the ONE dock ring register. */
|
|
40
|
-
box-shadow: var(--dock-ring);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
&[data-size="sm"] {
|
|
44
|
-
--dark-mode-toggle-size: 1.75rem;
|
|
45
|
-
--dark-mode-toggle-padding: 0.25rem;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
&[data-size="md"] {
|
|
49
|
-
--dark-mode-toggle-size: 2.25rem;
|
|
50
|
-
--dark-mode-toggle-padding: 0.375rem;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
&[data-size="lg"] {
|
|
54
|
-
--dark-mode-toggle-size: 2.75rem;
|
|
55
|
-
--dark-mode-toggle-padding: 0.5rem;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
&[data-size="control"] {
|
|
59
|
-
--dark-mode-toggle-size: var(--control-size, 2.25rem);
|
|
60
|
-
--dark-mode-toggle-padding: var(--control-icon-padding, 0.375rem);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.dark-mode-toggle-button[data-size="dock"],
|
|
65
|
-
.glass-dock
|
|
66
|
-
.dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not(
|
|
67
|
-
[data-size="control"]
|
|
68
|
-
) {
|
|
69
|
-
--dark-mode-toggle-size: var(--dock-control-size, var(--size-icon-btn));
|
|
70
|
-
/* AY.W-DOCK-CHROME §2 — the in-dock toggle GLYPH insets to the nav-glyph
|
|
71
|
-
register. The toggle SVG carries `h-full w-full` (the utility layer, which
|
|
72
|
-
BEATS the component-layer `> svg { width: --dock-control-glyph-size }` rule
|
|
73
|
-
below), so the glyph fills whatever the PADDED box leaves. Prior the in-dock
|
|
74
|
-
padding fell to `var(--dock-icon-padding, 0)` (the token is never defined →
|
|
75
|
-
0 pad → the glyph filled the whole 40px box edge-to-edge, ~2.5× the 16-20px
|
|
76
|
-
nav glyphs — the user's "too large" read). Pad the box by HALF the box↔glyph
|
|
77
|
-
difference so the `h-full` SVG lands at exactly `--dock-control-glyph-size`
|
|
78
|
-
(default `--dock-icon-glyph`, the `--dock-scale`-keyed size the nav icons
|
|
79
|
-
paint) — optically UNIFORM with the nav glyphs through the utility-win path,
|
|
80
|
-
not fighting it.
|
|
81
|
-
|
|
82
|
-
BC.W-DOCK-ENGINE move 3 (the Atlas A-9 fold) — the inset subtracts
|
|
83
|
-
`--dock-control-glyph-size`, the SAME ONE knob the SVG `width`/`height`
|
|
84
|
-
reads below, so the pad and the glyph stay LOCKED (a consumer retinting
|
|
85
|
-
`--dock-control-glyph-size` moves both in lockstep — no drift between the
|
|
86
|
-
box pad and the painted glyph). `--dock-control-size` AND
|
|
87
|
-
`--dock-control-glyph-size` both INHERIT from `.glass-dock[data-size]`,
|
|
88
|
-
where the coarse `--dock-scale` re-declare (overflow.css) re-resolves them
|
|
89
|
-
in lockstep — so the calc reads the coarse-scaled values on a coarse
|
|
90
|
-
pointer too (the AZ.R5-TOKENS substitution-vs-inheritance trap closed for
|
|
91
|
-
the toggle glyph: the var() resolves at the toggle button, reading the
|
|
92
|
-
coarse-re-resolved inherited tokens, never the frozen `:root` scale). */
|
|
93
|
-
--dark-mode-toggle-padding: calc(
|
|
94
|
-
(
|
|
95
|
-
var(--dock-control-size, var(--size-icon-btn)) -
|
|
96
|
-
var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem))
|
|
97
|
-
) / 2
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/* AX.W06 USF-2 — the dock-control optical-size contract. The
|
|
102
|
-
DarkModeToggle renders its OWN internal SVG `h-full w-full` (it bypasses
|
|
103
|
-
the `--dock-icon-glyph`-sized `> svg` slot the `.dock-icon-button` family
|
|
104
|
-
uses), so IN-DOCK it filled the whole control box edge-to-edge (~2.5× the
|
|
105
|
-
nav glyphs) — `--dock-icon-padding` is NEVER DEFINED, so the
|
|
106
|
-
`--dark-mode-toggle-padding: var(--dock-icon-padding, 0)` above fell to the
|
|
107
|
-
`0` fallback and zero padding let the SVG fill the box. Route the in-dock
|
|
108
|
-
toggle glyph through `--dock-control-glyph-size` (the ONE size the whole
|
|
109
|
-
dock-control family reads, default = `--dock-icon-glyph`, the same
|
|
110
|
-
`--dock-scale`-keyed glyph the nav icons paint), so the toggle is optically
|
|
111
|
-
UNIFORM with the nav glyphs WHEN DOCKED. The `h-full w-full` SVG stays
|
|
112
|
-
correct for the STANDALONE DarkModeToggle sizes (no `.glass-dock`
|
|
113
|
-
ancestor); this rule is scoped to the in-dock path only. Machine-checked by
|
|
114
|
-
the dock-control optical-parity gate, not eyeballed. */
|
|
115
|
-
.glass-dock
|
|
116
|
-
.dark-mode-toggle-button:not([data-size="sm"]):not([data-size="lg"]):not(
|
|
117
|
-
[data-size="control"]
|
|
118
|
-
)
|
|
119
|
-
> svg {
|
|
120
|
-
width: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
|
|
121
|
-
height: var(--dock-control-glyph-size, var(--dock-icon-glyph, 1.25rem));
|
|
122
|
-
}
|
|
123
|
-
}
|