Skip to content

feat(brand): replace the chevron with the caret mark and textures - #426

Merged
harlan-zw merged 4 commits into
mainfrom
feat/brand-mark
Oct 5, 2026
Merged

harlan-zw merged 4 commits into
mainfrom
feat/brand-mark

Conversation

@harlan-zw

Copy link
Copy Markdown
Collaborator

🔗 Linked issue

No linked issue. Harlan chose the new brand in a brand lab on 2026-10-06.

❓ Type of change

  • 📖 Documentation
  • 🐞 Bug fix
  • 👌 Enhancement
  • ✨ New feature
  • 🧹 Chore
  • ⚠️ Breaking change

📚 Description

The rose chevron lived in hand-written copies across AppLogo, OgBrand and public/, and their rose shades and wordmark weights had drifted apart. This PR replaces it with the mark Harlan chose: an ink prompt caret and one rose dot, all drawn from one geometry module.

  • shared/brand-mark.ts holds the caret, the 16px cut, the outlined IBM Plex Mono wordmark, the lockup geometry and the colours. AppLogo renders the lockup inline. Its dot blinks once on hover, and never under reduced motion. pnpm brand:assets regenerates the eight files in public/ under their existing names.
  • Every OG card uses the lockup, and its trailing dot is the card's one rose element. The rose top bar goes, and the quote rails and the curator avatar ring turn stone. Splash gets a Braille names field that radiates from the lockup dot. Skill cards get a File minimap seeded by owner, repository and name, with no change to the frozen SkillDetail. /make-skill gets its own card through one defineOgImage call. The OG renderer has no braille glyphs, so app/utils/og-texture.ts draws the textures as SVG dots.
  • DESIGN.md replaces the noise field spec with one brand system: the thesis, the mark, three textures with one job each, the three motifs and their boundaries, plus dated decisions. COPY.md records the final homepage deck, the pitch tiles and the allowed claims. GLOSSARY.md adds "run once off", "hyped" and "Teach your agent skilld". VISION.md and AGENTS.md drop their noise field references, and the test that guarded the old noise field pointer goes with it.

This PR builds no motif component and edits no page layout.

Where the brand mark is drawn: shared/brand-mark.ts feeds AppLogo, OgBrand and the asset script, and og-texture.ts feeds the Splash, Skill and Make a skill cards

🤖 AI disclosure: Harlan Agent Kit modified this description. My AI open-source policy.

The rose chevron lived in hand-written copies whose shades and wordmark
weights had drifted apart. The new mark, an ink prompt caret plus one
rose dot, now comes from shared/brand-mark.ts. AppLogo draws the lockup
from it, and `pnpm brand:assets` writes every file in public/ under the
filenames other repositories already link.
Every card now carries the lockup, and its trailing dot is the card's
one rose element, so the rose top bar, quote rails and avatar ring turn
stone. Splash gets a Braille names field that radiates from the lockup
dot. Skill cards get a File minimap seeded per Skill. /make-skill gets
its own card instead of the default. The OG renderer has no braille
glyphs, so the textures are SVG dots.
DESIGN.md replaces the noise field spec with one brand system: the
thesis, the mark, three textures with one job each, and the three
motifs. COPY.md and GLOSSARY.md record the approved pitch lines, claims,
the promo label, and "run once off" as the marketing phrase for run.
The noise field pointer test goes with the section it guarded.
Harlan finalised the home H1, intro, claims line, tiles and section
headings, so page agents apply them from COPY.md instead of a chat log.
The Taste-tested hero exception goes with the old H1. "Hyped" gets its
own exception in COPY.md, GLOSSARY.md and VISION.md, because the old
no-hype rule would reject the approved "Stay hyped" tile.
@harlan-zw harlan-zw added the harlan-agent-review Pull request triage requires an adversarial Review. Adding this label manually always forces one. label Oct 5, 2026
@harlan-zw

Copy link
Copy Markdown
Collaborator Author

Agent check, by hand, since CI cannot show it:

  • Header lockup in light and dark, at 1280px and 390px, on the app header, the account layout and the auth layout. The dot blinked once on hover (opacity 1, 0, 1) and stayed lit under reduced motion.
  • OG cards rendered from a production build served by wrangler dev, with signed URLs from real page meta for /, /agents, /make-skill, a Skill page, an owner page and a curator page. Titles use IBM Plex Mono. The local D1 has no Skill rows, so the Skill card there shows only the lockup and the minimap.
  • The Skill card with full props, rendered on the dev server. Dev lacks Plex Mono, so its titles fall back to the sans.
  • The weekly email header with the regenerated logo-icon.png at 22px.

Header lockup in light and dark across the three layouts
OG cards from the production build
Skill card with a long name and a quote, dev server
Weekly email header with the new tile

@harlan-github-agent harlan-github-agent Bot added harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. and removed harlan-agent-review Pull request triage requires an adversarial Review. Adding this label manually always forces one. labels Oct 5, 2026
@harlan-zw harlan-zw added the harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. label Oct 5, 2026
@harlan-zw
harlan-zw merged commit feea815 into main Oct 5, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant