Repository navigation
Conversation
The landing title becomes painted artwork applied as a CSS mask over currentColor, rendered by SoundscapeWordmark, with a mote field drifting off the central sigil. Drops the Satisfy font face and files, and the hero spill image the gradient text sat on. Claude-Session: https://claude.ai/code/session_01TPAA5L7iH5DJ7KrENyXi2M
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.
Parks the hero-wordmark exploration on its own branch. Draft, and not intended to merge as-is — the landing page is going back to plain white Satisfy for now. This exists so the work and the pipeline aren't lost.
What it does
Replaces the
Satisfygradient hero with a custom rune wordmark whose sixth letter is a vertical sigil standing in for the second S, inspired by the Horizon Forbidden West cover logo.The mark ships as painted artwork applied as a CSS mask over
currentColorrather than an<img>. The artwork is monochrome, so one channel carries all of it — 97KB instead of 230KB — and the colour stays under CSS control instead of being baked in. A four-stopdrop-shadowstack widens the bloom that's baked into the mask's alpha; it works on a masked element becausedrop-shadowoperates on the rendered alpha, which here is the mask.WordmarkParticlesadds a canvas mote field under the mark. Deliberately DOM/canvas rather than WebGL: the wordmark is DOM, so sharing its layout box makes alignment free and responsive, where the three.js route would have had to track the sigil's on-screen box across breakpoints.SIGIL_Xis measured off the mask's alpha, not guessed.Also drops the Satisfy font face and its five font files, and
hero-spill.webp— the gradient text that image sat behind is gone.Verified
tsc --noEmitclean, 106 unit tests pass, production build succeeds with the asset emitted tobuild/img/. Checked in the browser at 1440px and 390px.Notes for whoever picks this up
docs/wordmark/README.mdhas the full pipeline and the gotchas. The two that cost real time:mask-imagekeys on the alpha channel, not luminance — a greyscale image masks in as a solid rectangle.alpha_quality, hence thecwebpshell-out.Reference images are re-encoded to WebP; the originals were 2.3MB each and this is a git history.
build-wordmark.pydraws the wordmark procedurally and is kept because it's what controls proportion — an image model won't hit a size ratio on request. Its facets read as procedural beside the painted art, which is why the shipped mark is a render.https://claude.ai/code/session_01TPAA5L7iH5DJ7KrENyXi2M