01 · Design system
The page draws from eleven tokens.
No hex values in component code. Everything below is already defined in the Quietmoor 1.2 token set — if a build needs a colour that is not here, that is a design bug, not an implementation choice.
--qm-bg--qm-paper--qm-ink--qm-muted--qm-line--qm-accent--qm-accent-soft--qm-y--qm-p--qm-gradial, blur 12pxserif 400 · clamp(42,8.2vw,88) · lh .98
Keep what moves you. Forget the filing.
serif 400 · clamp(26,3.8vw,40) · lh 1.06
Two steps. That is the whole product.
sans 400 · clamp(16,1.7vw,20)
Notes, images and links land in one private place and sort themselves.
sans 400 · 16 · lh 1.62
A quote goes to Studio. A link goes to Reference. You can move it, and Quietmoor learns.
sans 800 · 11.5 · ls .16em · upper
How it works
sans 400 · 13.5
No card required · Your saves stay yours
02 · Component states
Every state, drawn rather than described.
The two interactive components on the page. Hover and focus are shown side by side on purpose: focus is not a hover lookalike, it is a 2px ink ring at 3px offset so it survives on the accent fill.
03 · Edge cases
What broke in v3, and what v4 does instead.
These are the cases the build has to survive. The first one is the comment Priya left on the v3 review — it is fixed here and the fix is the reason this version exists.
- ✓Wrap, do not scroll
A horizontally scrolling logo row hides names with no affordance.
flex-wrap: wrapwith a centred last line; gap collapses from 44px to 18px as the viewport narrows. - ✓Names never break mid-word
white-space: nowrapon each logo. "Halden Bikes" moves to the next line whole.
Keep something and it will appear here, sorted for you.
Skeleton matches the final line count, so nothing jumps when content lands.
Your text is still in the box. Try again, or copy it out.
04 · Responsive
Four widths the build has to hold at.
Everything is fluid between these — the numbers are where the layout changes shape, not a set of fixed canvases. This page and the landing concept both survive 320px without a horizontal scrollbar; that is the acceptance bar.
small phoneSingle column. Hero drops to 42px. Floating save cards stack into a vertical list rather than overlapping.
large phoneFloating cards return to their overlapped arrangement. Logo row takes two lines.
tabletNav links appear alongside the wordmark. Feature tiles go two-up.
desktop capContent stops widening; the gutter grows instead. Hero reaches its 88px ceiling.
05 · Handoff
Decided, and still open.
A radial gradient with a 12px blur, no asset. It has to scale to any width without banding, and an export would not.
Design · settled in v3Keep it, then confirm where it landed. The four-step version tested as paperwork. The landing page's "How" section has to keep matching the prototype.
Priya Nair · resolvedSmooth scrolling on the nav anchors, disabled under prefers-reduced-motion. Same rule for the skeleton shimmer and the button spinner.
They are set as text today, which is why the wrap fix works so cleanly. Real SVG logos would need a height rule and a fresh look at the wrap. Needs an answer before the build starts, not after.
Waiting on marketingIt does here. If analytics say the hero CTA carries the signups, the sticky one is cost with no return and can drop below 760px.
Waiting on data