Marketing screens in the 2026 direction: one accent, one dark object, hairlines, and a dark mode that takes the shell with it - #384
Closed
Apolloccrypt wants to merge 1 commit into
Closed
Conversation
… hairlines, and a dark mode that takes the shell with it /pricing, /parasign, /parasend, /about and /security rebuilt against docs/brand/design-direction.md: STIL as the core, grafted with the radius scale and the register row of LEVEND and a degree of paper warmth from WARM. Not one word of copy changes; every pinned text and every head element is untouched. The homepage landed on main as #377 while this branch was in flight, in the same direction and with a finished page-local design of its own. That design is left exactly as merged: not one rule of its layout is touched. What it did not have is dark, and dark is the one thing that cannot be half done, because the shell around it goes dark with the other five either way. So the homepage gets a token set and two accessibility repairs and nothing else. frontend/marketing-2026.css is the whole change, and it does two things. It carries the 2026 tokens plus an alias layer onto the v4 names that design-system.css, nav.css and the pages already speak, which is what lets the buildbar, the navigation and the footer follow these pages into dark instead of staying light behind them. And it carries the craft: hairlines instead of boxes, one filled cobalt action per screen, one dark object per screen, mono labels with a lime rule, tabular figures on every amount, and motion that only ever confirms something. One rule decides the colour of every call to action: lime is the gift, cobalt is the purchase. The Community action sits inside the one inverted plane on its screen and uses the single legal lime plane in the system, black on lime at 14.94:1. Everything else that used to be filled is an accent outline, so the one cobalt plane on each screen is that screen's own action. That includes the bar's Create account, which was a filled lime plane on every page and therefore a second primary louder than the hero's own. Scope. Only these six pages link the file, so nothing here reaches /dashboard, /sign, /account or the auth screens. A page either links it and is dark complete, shell included, or it does not link it and is exactly what it was. Defects found and fixed on the way, all measured: - the featured tier card was translucent over a hairline grid and composited to rgb(209,214,224), which put its price note at 3.79:1 - the Community block on /parasign kept navy text and cobalt links on its dark plane: 1.05:1 and 2.72:1 - lime as a plane behind cobalt and navy text on three tier cards, and behind the light nav label in dark at 1.07:1 - four pages had no main landmark, and their inline links across all six were distinguished by colour alone - the footer hung three columns in a two column grid, so Legal wrapped under the address and the page ended in 300px of nothing - the empty third cell of the /parasend business grid painted the grid's own hairline colour as a grey panel Measured, not asserted. Lighthouse against a local server that gzips and sets immutable cache headers the way nginx does, all six pages: performance 100, accessibility 100, best practices 96, SEO 100. Accessibility on main for the same six was 92, 87, 89, 89, 88, 90. Contrast over 4150 text pairs in 24 combinations (six pages, two themes, two widths, element opacity folded in): nothing under AA, lowest 4.62. prefers-reduced-motion renders byte identical to the normal pass. scripts/audit-marketing-a11y.mjs and scripts/shoot-marketing.mjs reproduce both. Two tests move, neither loses its guard. navigation-shell pinned the mobile bar to the literal rgb(248, 250, 252), which is one palette's page colour rather than the property that matters and which no dark theme could ever satisfy; it now requires the bar to be fully opaque, unblurred, and the same colour as the page it sits on. site-claims used an h3 tag to split the two product blocks on /pricing; those headings are h2 now, because h1 running straight into h3 is a level skipped for a screen reader, and the regex matches either. Evidence in docs/brand/assets/droom-marketing: every changed screen at 390x844 and 1440x900, light and dark, plus a full page pass at 1440 in both themes and the reduced motion proof.
Apolloccrypt
force-pushed
the
feat/droom-marketing
branch
from
September 3, 2026 01:23
24fa2bc to
ea15dd1
Compare
Owner
Author
|
Closed as superseded. The marketing screens took a different route after the buyer and truth reviews: #377 and #382 (homepage: the founder on the first screen, the letter, the receipt, five checkable facts), #380 (design system v4.1 light, no dark layer on marketing), #386 (technical strip removed), #392 (navigation bar). The measured light gains of this branch landed through #380; the dark layer was withdrawn because it sat behind a gate no switch reached. Nothing from this branch is lost that the reviews did not reject. |
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.
What this is
Group marketing of the "Paramant moet een droom zijn" round. Five screens
rebuilt against
docs/brand/design-direction.md(PR #373):/pricing,/parasign,/parasend,/about,/security. Not one word of copy changes.Every pinned text, every head element and every
?v=is where it was.The homepage is a special case. #377 landed on main while this branch was in
flight and rebuilt
/in the same direction, with a finished page-local designof its own. That design is left exactly as merged: not one rule of its layout is
touched here. What it did not have is dark, and dark is the one thing that
cannot be half done, because the shell around it goes dark with the other five
either way. So
/gets a token set, the shared nav treatment, and twoaccessibility repairs. Nothing else.
The one file
frontend/marketing-2026.css, linked last on those six pages and nowhere else.onto the v4 names
design-system.css,nav.cssand the pages already speak.That is what lets the buildbar, the navigation and the footer follow these
pages into dark instead of staying light behind them, with no edit to any
file another screen shares.
screen, one dark object per screen, mono labels with a lime rule, the radius
scale (0 for what carries the brand, 3 for controls, 10 for cards, 16 for
panels), tabular figures on every amount, and motion that only ever confirms
something.
One rule decides every call to action: lime is the gift, cobalt is the
purchase. The Community action sits inside the one inverted plane on its
screen and uses the single legal lime plane in the system,
#0A1626on#B2FF3Fat 14.94:1. Everything that used to be filled elsewhere is an accentoutline, so the one cobalt plane on a screen is that screen's own action. That
includes the bar's Create account, which was a filled lime plane on every
page and therefore a second primary, louder than the hero's own, and which in
dark put light ink on lime at 1.07:1.
Scope and the dark-mode question
Only these six pages link the file. Nothing here can reach
/dashboard,/sign,/account,/parashareor the auth screens: those belong to anotherbuilder in the same round. A page either links this file and is dark complete,
shell included, or it does not link it and is byte for byte what it was.
That does mean the site is split until the systeem rollout lands: these six go
dark with the reader's system, the rest stay light. Section 5 of the direction
calls a half-lit page the trap, and there are none here. Whoever takes
design-system.cssto v5 deletes section 1 of this file and the rest stands.Defects found and fixed, all measured
rgb(209,214,224)mainlandmarkMeasured, not asserted
Lighthouse, against a local server that gzips and sets immutable cache
headers the way nginx does, because anything else measures the harness:
Best practices is 96 on both branches, from the test server answering 404 to
/api/user/session/verify. Performance is 100 on both.Contrast. 4150 text pairs over 24 combinations (six pages, two themes, two
widths), each flattened against its first opaque ancestor background with
element opacity folded in: nothing under AA, lowest 4.62. Folding opacity in
is not decoration: it is what caught a homepage label at 50 percent opacity
sitting at 3.35:1 while its colour token said otherwise.
Tap targets. Everything operable is 44px on a coarse pointer or a 640px
viewport. Ten inline links inside running prose stay at their line height, which
is the documented exception in section 2.8 of the direction: they are held to
the reading rule (an underline) rather than the button rule.
Reduced motion.
pricing-1440x900-light-reduced-motion.pngis byteidentical to
pricing-1440x900-light.png. All movement off, no state lost.Fold headroom on /parasign. The first push failed CI on the one sentence
that has to be readable before a buyer signs: CI renders these pages in a DejaVu
Sans that wraps a line earlier than the one here, and the sentence landed 33px
past the fold there while sitting exactly on it locally. Measured at 390px
against
origin/main, the SES sentence now ends at y=795 where main puts it aty=815, so there is 20px more room than the branch this replaces and 49px inside
the fold. The room came out of the gaps, not out of the words.
Both reproduce:
node scripts/audit-marketing-a11y.mjsandnode scripts/shoot-marketing.mjs.Two tests move, neither loses its guard
tests/navigation-shell.test.mjspinned the mobile bar to the literalrgb(248, 250, 252). That is one palette's page colour, not the property thecheck is about, and no dark theme could ever satisfy it. It now requires the bar
to be fully opaque, unblurred, and the same colour as the page it sits on, which
is the guarantee the rule in
nav.csswas written for (iOS Safari renders abackdrop-filter over a dark hero see-through) and which now holds in both
themes.
tests/site-claims.test.mjsused anh3tag to split the two product blocks on/pricing. Those headings are
h2now, because anh1running straight into anh3is a level skipped for a screen reader and was the last point /pricing waslosing. The regex matches either and keeps doing what it is there for.
Gates
tests/static-sanity.shall eleven,scripts/check-csp-inline.sh,scripts/check-cache-bust.sh(346 links, one consistent?v=),eslint@9clean, root integration suites 150 pass / 2 skipped, browser suites 31 pass
including
first-screen,pricing-fold,navigation-shell,site-claims,ui-truthfulness,seo-contractandlinks.One pre-existing failure on this machine:
tests/heartbeat-lib.test.mjscannotresolve
@noble/post-quantumlocally. It fails identically onorigin/mainwith these changes stashed, and it runs green in CI, which installs the root
dependencies.
Evidence
docs/brand/assets/droom-marketing/, 37 images: every changed screen at 390x844and 1440x900 in light and dark, a full page pass at 1440 in both themes, and the
reduced motion proof.
Left open
/docs,/help,/trust,/downloadand the rest keep the v4 look until the systeemrollout.
wins the moment a control exists, but the control belongs in the nav, which is
shell.
and still a lime plane everywhere else. It should be one or the other
site-wide, and that is a shell decision.