Skip to content

Futuristic - #44

Merged
zanemyers merged 5 commits into
mainfrom
futuristic
Aug 13, 2026
Merged

Futuristic#44
zanemyers merged 5 commits into
mainfrom
futuristic

Conversation

@zanemyers

Copy link
Copy Markdown
Owner

No description provided.

zanemyers and others added 5 commits August 13, 2026 15:28
Rebuild the design language around HSL channel tokens that compose with
alpha, plus the small set of primitives every page shares.

- styles.css: light/dark token sets, the .panel glass surface, .eyebrow,
  .chip, .hairline, .micro-label, .ring-gradient, .text-gradient, the
  blueprint grid and aurora keyframes, scroll-reveal, and print and
  reduced-motion overrides
- ui/: Reveal, SectionHeading (+ Eyebrow), Tag (+ toneText), Button,
  Timeline, Clause
- siteConfig: one source for email, phone, resume path, socials, role and
  location, which were previously hardcoded in up to 11 places

Light-mode accent and cyan are deliberately held dark enough that accent
text on accent/10 fills and white text on the gradient button clear WCAG
AA; both were measured under 4.5:1 before being darkened.

Markdown is excluded from Tailwind's source scan because class names
written in prose were being emitted as real CSS rules.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Every route now nests under a single Layout that owns the header, footer,
ambient backdrop, scroll-progress bar, skip link and scroll reset, so
pages render only their own sections instead of repeating the chrome.

- Header: glass sticky bar that tightens on scroll, animated nav
  indicator with aria-current, and a mobile sheet that locks page scroll
  and inerts the content behind it. It closes itself when the viewport
  crosses md, because the sheet and its close button are both md:hidden
  and the scroll lock would otherwise have no visible control to release
  it.
- Footer: three-column layout, live copyright year, nav list reused from
  Header rather than duplicated.
- Backdrop: drifting aurora blobs behind a masked grid. Translate-only,
  so a blur(90px) layer isn't rescaled every frame.
- ScrollProgress: writes scaleX straight to the node instead of routing a
  per-frame value through React state.
- Layout: scroll reset uses behavior 'instant'; 'auto' defers to
  scroll-behavior: smooth and would animate a full-page scroll on every
  navigation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Content is unchanged throughout — copy, dates, bullets, links, alt text
and images all carry over verbatim.

- Home: hero with a gradient-framed portrait, About, segmented skill
  meters, and a Latest Update teaser built from the existing entries
- Resume: contact grid plus a glowing-node timeline shared by experience,
  education and volunteering
- Projects: scrimmed featured panel with a light/dark screenshot swap,
  hover-lift grid below
- Updates: dated timeline feed with a segmented category filter
- Terms, Privacy, 404: same system, deliberately quieter

Types now separate data from presentation: UpdateEntry vs UpdateCardProps
and JobRecord vs JobProps, so presentation-only flags can't leak into the
content files and a filter flag no longer forces a meaningless value on
the education entry. Update categories derive from a single tone map,
making a typo in the data a type error and keeping the filter row in sync.

Also drops Radix UI from the BioSite card's technology list; it isn't a
dependency of this project.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The favicon is now the nav monogram rather than an unrelated mark. The Z
and M are real Space Grotesk Bold glyph outlines embedded as vector paths,
so the letterforms render identically without depending on the font being
installed, carrying the same accent-cyan-violet gradient as .text-gradient
and the same fading rim as .ring-gradient.

- favicon.svg (1.2 KB) as the primary, favicon.ico (16-128px) for legacy,
  apple-touch-icon.png at 180px
- Letters sized to ~66% of the circle rather than the nav tile's ~53%,
  which is unreadable at 16px

index.html also preconnects and loads Inter, Space Grotesk and JetBrains
Mono, replacing a render-blocking CSS @import, and carries a single
theme-color meta that the bootstrap script and ThemeToggle keep in sync.
A media-query pair would have been wrong here, since the theme is driven
by a class in localStorage rather than the OS preference.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- sitemap: drop the trailing slashes so each loc matches its route in
  App.tsx exactly, and bump lastmod now that every page has changed
- biome.json: schema 2.5.4 -> 2.5.7, via `biome migrate`
- CLAUDE.md: document the layout route, the ui/ primitives, the design
  system class inventory, siteConfig and the layout conventions. Corrects
  stale claims that Radix UI Themes wrapped the app and that Lora and
  Space Mono were configured; neither was true.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@zanemyers
zanemyers merged commit b6537c8 into main Aug 13, 2026
4 checks passed
@zanemyers
zanemyers deleted the futuristic branch August 14, 2026 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant