Problem
The brand lockup in the top-left header is visually inconsistent between the landing page (/) and the login page (/login).
The two pages render the same logo asset at the same visible mark size (24px), but use different wordmark typography:
| Surface |
Implementation |
Wordmark styles |
/ |
Duplicated markup in app/(landing)/_components/landing-client.tsx + landing.module.css |
22px / 24px, letter-spacing -0.5px |
/login |
Shared components/fulling-brand.tsx |
20px (text-xl) / line-height 1, default letter-spacing |
The dashboard header already uses the same shared FullingBrand component as the login page.
Both implementations were introduced together in #182, so this is a component-boundary omission rather than a compatibility requirement.
Why this should be shared
docs/design.md defines the Brand Logo Mark as the reusable top-left identity anchor and applies the design system to both public and authentication pages. Maintaining two copies allows brand dimensions and accessibility behavior to drift.
Proposed change
- Use
FullingBrand in the landing header instead of duplicating its Link, Image, mark crop, and wordmark markup.
- Make the canonical logo/wordmark sizing, line-height, tracking, color, and accessible label live in the shared component.
- Preserve only layout-specific positioning in the landing page stylesheet.
- Remove the obsolete
.brand, .brandMark, and .brandMark img rules after migration.
Acceptance criteria
Problem
The brand lockup in the top-left header is visually inconsistent between the landing page (
/) and the login page (/login).The two pages render the same logo asset at the same visible mark size (24px), but use different wordmark typography:
/app/(landing)/_components/landing-client.tsx+landing.module.css/logincomponents/fulling-brand.tsxtext-xl) / line-height 1, default letter-spacingThe dashboard header already uses the same shared
FullingBrandcomponent as the login page.Both implementations were introduced together in #182, so this is a component-boundary omission rather than a compatibility requirement.
Why this should be shared
docs/design.mddefines the Brand Logo Mark as the reusable top-left identity anchor and applies the design system to both public and authentication pages. Maintaining two copies allows brand dimensions and accessibility behavior to drift.Proposed change
FullingBrandin the landing header instead of duplicating itsLink,Image, mark crop, and wordmark markup..brand,.brandMark, and.brandMark imgrules after migration.Acceptance criteria
/,/login, and the dashboard render the sharedFullingBrandcomponent.Fulling homelabel.