Skip to content

Map font sizes to type scale, share icons, extract shell CSS, validat…#180

Merged
sshdopey merged 4 commits into
Heliobond:mainfrom
nonso7:chore/design-system-cleanup
Jul 4, 2026
Merged

Map font sizes to type scale, share icons, extract shell CSS, validat…#180
sshdopey merged 4 commits into
Heliobond:mainfrom
nonso7:chore/design-system-cleanup

Conversation

@nonso7

@nonso7 nonso7 commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

…e funding goal

Addresses four design-system cleanup issues:

#87 Type scale: replace ad-hoc inline font sizes (12.5, 14.5, 30, …) with a single documented ladder of var(--type-*) tokens. Expands tokens/typography.css with the missing rungs (micro/fine, body-lg, h1–h5, h3-sm, data-xl) and snaps off-scale values to the nearest rung. Every fixed fontSize in components/screens now references a token; bespoke fluid clamp() display sizes are left as-is.

#83 Styling approach: add src/styles/shell.css plus src/styles/README.md documenting the hb- class + var(--token) convention. Migrate the shell — TopBar (incl. the wallet menu) and Footer — off inline-style objects onto classes, with hover/active/focus expressed in CSS (:hover, [aria-current]) instead of JS state.

#92 Icons: add src/components/icons.tsx as the single home for shared stroke icons and reuse them — the duplicated location pin (ProjectCard + ProjectDetail), the shell's Sun/Moon/Chevron, ShieldCheck, AddressChip's Copy/Check/External, Toast's Close, ProjectBuilder's Upload, and CreatorApplication's check badge.

#109 Funding goal: sanitize the ProjectBuilder goal input to digits + a single decimal point and validate it. Empty, non-numeric, or non-positive goals are now explained inline (aria-invalid + role="alert") instead of silently showing "$0 of $0".

Summary

Linked issue

Closes #

Type of change

  • Bug fix
  • Feature
  • Localization (i18n)
  • Accessibility
  • Smart contract / on-chain wiring
  • Docs / chore

Screenshots / screencast

Checklist

  • Tied to an accepted issue (Closes #…)
  • bun run build passes locally (builds + type-checks)
  • Follows the design system — token CSS vars, sentence case, mono numerals, deltas carry sign + arrow, no emoji, no hardcoded colours
  • User-facing strings added to both messages/en.json and messages/fr.json (if any copy changed)
  • Accessible — keyboard operable, visible focus, reduced-motion respected
  • No secrets committed
  • Docs updated where relevant

Closes #87
Closes #83
Closes #109
Closes #92

…e funding goal

Addresses four design-system cleanup issues:

Heliobond#87 Type scale: replace ad-hoc inline font sizes (12.5, 14.5, 30, …) with a
single documented ladder of var(--type-*) tokens. Expands tokens/typography.css
with the missing rungs (micro/fine, body-lg, h1–h5, h3-sm, data-xl) and snaps
off-scale values to the nearest rung. Every fixed fontSize in components/screens
now references a token; bespoke fluid clamp() display sizes are left as-is.

Heliobond#83 Styling approach: add src/styles/shell.css plus src/styles/README.md
documenting the hb- class + var(--token) convention. Migrate the shell — TopBar
(incl. the wallet menu) and Footer — off inline-style objects onto classes, with
hover/active/focus expressed in CSS (:hover, [aria-current]) instead of JS state.

Heliobond#92 Icons: add src/components/icons.tsx as the single home for shared stroke
icons and reuse them — the duplicated location pin (ProjectCard + ProjectDetail),
the shell's Sun/Moon/Chevron, ShieldCheck, AddressChip's Copy/Check/External,
Toast's Close, ProjectBuilder's Upload, and CreatorApplication's check badge.

Heliobond#109 Funding goal: sanitize the ProjectBuilder goal input to digits + a single
decimal point and validate it. Empty, non-numeric, or non-positive goals are now
explained inline (aria-invalid + role="alert") instead of silently showing
"$0 of $0".
@nonso7 nonso7 requested a review from dadadave80 as a code owner June 29, 2026 16:23
@vercel

vercel Bot commented Jun 29, 2026

Copy link
Copy Markdown

@nonso7 is attempting to deploy a commit to the David Dada's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave

drips-wave Bot commented Jun 29, 2026

Copy link
Copy Markdown

@nonso7 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

…commit hook

The CI workflow (build → typecheck → lint → format) was red on pre-existing
issues unrelated to the design-system work. This makes all four steps green.

- i18n (typecheck): messages/en.json had drifted out of sync with fr.json —
  ProjectDetail used stale keys, the Admin namespace was missing entirely, and
  Creator was reduced to two keys. Since the default locale is English, this
  also broke the live English UI. Both catalogs are now structurally identical
  (279 keys each); English text authored for ProjectDetail, Admin, and Creator,
  and the Creator title/description the page uses added to fr.json.

- lint: AmountInput no longer reads/writes a ref during render — the cap message
  is derived directly (the aria-live region already throttles announcements to
  content changes). CreatorApplication's dynamic next-intl keys use
  `as Parameters<typeof t>[0]` instead of `as any`.

- pre-commit hook: lint-staged fed staged filenames to `tsc`, tripping TS5112 on
  every .tsx commit; wrap the typecheck so the project tsconfig is used.

- format: prettier-clean the files flagged by `format:check`.
@vercel

vercel Bot commented Jun 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
heliobond Ready Ready Preview, Comment Jun 30, 2026 8:55am

@sshdopey sshdopey merged commit 5412722 into Heliobond:main Jul 4, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants