Rebuild the example site as a bleeding-edge dwind/dominator showcase - #21
Merged
Conversation
The docs site was a competent dark landing page, but it demonstrated almost nothing that dominator can do beyond static markup. This turns it into an argument for the stack. Every effect added here is a Mutable written by an event and read by a style_signal — no animation library, no rAF loop, no re-render: - fx.rs: pointer spotlight and 3D tilt, magnetic controls, drifting aurora field, film grain, blueprint grid, scroll-spy, marquee, and word-stagger kinetic headlines. - palette.rs: a ⌘K command palette with fuzzy search over every route, word-start scoring, and full keyboard control. Reachable from the header chip, the docs sidebar, ⌘K/Ctrl+K, or "/". - pages/signal_lab.rs: the new home-page centrepiece. Four Mutables fan a card stack while a live code panel regenerates the Rust behind it, next to a counter that measures actual property writes against zero re-renders. - styles.rs: app-level keyframes, glass surfaces, grain and masks, pulled out of the old inline APP_KEYFRAMES const. The shell gains a scroll-progress rail, route transitions with scroll reset, and an active-route indicator that grows in. Docs gain a sticky glass sidebar with a search affordance, breadcrumb mastheads, gradient section rules, and prev/next pagers; the utility showcase gains a scroll-spy chapter rail. Two real bugs fixed on the way: - The hero used @lg:, which is 1920px in dwind, so it stacked on every normal desktop. It wants @md:. - The palette's entrance animation used fill-mode "both", which silently overrode the inline transform centring it. Centring moved to a wrapper node. Verified in Chrome: all 19 routes render with no console errors, no horizontal overflow at 1440px or 390px, prefers-reduced-motion honoured, and a slider drag in the lab measured 10 -> 75 property writes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Jul 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The docs site was a competent dark landing page, but it demonstrated almost nothing that DOMINATOR can do beyond static markup. This turns it into an argument for the stack.
The through-line
Every effect added here is a
Mutablewritten by an event and read by astyle_signal. No animation library, norequestAnimationFrameloop, no re-render — an event writes a number and DOMINATOR writes exactly the properties that depend on it.What's new
fx.rspalette.rspages/signal_lab.rsMutables fan a card stack while a live code panel regenerates the Rust behind itstyles.rsAPP_KEYFRAMESconstThe reactivity lab is the honest version of the pitch: it counts actual property writes next to a re-render count that stays at zero. Dragging a slider measured 10 → 75 property writes, 0 re-renders.
The shell gains a scroll-progress rail, route transitions with scroll reset, and an active-route indicator that grows in. Docs gain a sticky glass sidebar with a search affordance, breadcrumb mastheads, gradient section rules, and prev/next pagers. The utility showcase gains a scroll-spy chapter rail.
The palette is reachable from the header chip, the docs sidebar search box, ⌘K/Ctrl+K, or /.
Two real bugs fixed on the way
@lg:, which is 1920px in dwind, so it stacked into a single column on every normal desktop. It wants@md:(1280px).both, which silently overrode the inlinetransformthat centred it — the panel sat right-of-centre. Centring moved to a wrapper node so the keyframes owntransformalone.Verification
Driven in real Chrome via playwright-core:
prefers-reduced-motionhonoured — marquee, sheen, tilt and reveal all stop, and kinetic words sit at opacity 1Ctrl+K,transranks Transforms above dwind on crates.io, arrows/enter navigate, escape dismisses--sx: 24.83%,data-hot: 1,rotateX(1.61deg) rotateY(-2.01deg))cargo fmtclean, no new clippy warnings🤖 Generated with Claude Code