feat(web): self-host IBM Plex fonts and premium motion polish#919
Open
madara88645 wants to merge 1 commit into
Open
feat(web): self-host IBM Plex fonts and premium motion polish#919madara88645 wants to merge 1 commit into
madara88645 wants to merge 1 commit into
Conversation
Swap the system font stack for self-hosted IBM Plex Sans + Mono (bundled as local woff2, no remote/CDN fetch) so the app stays offline-deterministic; keep the previous system stacks as fallbacks. Enrich shared animations with a premium easing curve, soften the springy keyframes, and add motion where it was missing: tab-panel fades, readiness banner slide-in, policy badge fade, modal scale-in, sidebar active-rail slide, and a typewriter entrance for the example prompt. Add a prefers-reduced-motion guard. Update the font guard test to assert self-hosted fonts with no remote fetch and IBM Plex primary with local fallbacks. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
PR Risk Assessment — Low
Decision: Approve (no additional reviewers required)
Evidence-based scope (from diff only)
| Area | Finding |
|---|---|
| Files | 14 changed — all under web/ plus a .gitignore entry for .superpowers/ |
| Backend / API | None |
| Auth / billing / permissions | None |
| Infra / deploy config | None |
| Dependencies | No package.json or lockfile changes |
| Data / schema | None |
What changed
- Fonts — Self-hosted IBM Plex Sans/Mono via local
@font-facerules and sixwoff2assets underweb/public/fonts/. Font stacks updated inglobals.css; existing system fallbacks retained. Font guard tests updated to assert no remote/CDN fetch. - Motion — CSS easing/animation tuning, new utility classes (
animate-scale-in), and animation class additions on a handful of components (PolicyBadge, ReadinessBanner, SecurityAlert, Sidebar, tab panels). Globalprefers-reduced-motion: reduceguard added. - Example prompt UX — Small typewriter effect on the "try an example" button in
page.tsxwith interval cleanup, manual-edit cancellation, and reduced-motion fallback.
Risk rationale
- Blast radius: Limited to frontend presentation; compile logic, API calls, and security flows are untouched.
- Complexity: Straightforward CSS + one isolated client-side animation helper; easy to reason about and rollback.
- User impact: Cosmetic polish on an existing surface; no layout or structural changes observed in the diff.
- Operational risk: Low — binary font assets are static public files; GitGuardian check passed.
This does not meet Medium thresholds (shared services, auth, cross-system behavioral changes, or significant primary-journey UX overhaul).
Reviewer assignment
- Reviewers requested: 0 (not required at Low risk)
- CODEOWNERS: None configured in this repository
- Existing reviewer count: 0 (< 2)
Approval
Approved per policy: Low risk PRs may be self-approved. No prior approval on this PR; no re-approval conflict.
Sent by Cursor Automation: Assign PR reviewers
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.


What
Small, layout-preserving UI polish for the web app — only fonts and motion changed. Layout, colors, component structure, and behavior are untouched.
Fonts
woff2underweb/public/fonts/, wired via@font-face. No remote/CDN fetch, so the app stays offline-deterministic.Segoe UI/Cascadia Codestacks remain as fallbacks.Motion
cubic-bezier(.22, 1, .36, 1)) and soften the springy keyframes.prefers-reduced-motionguard so all of the above is disabled for users who ask for reduced motion.Test
Verification
npm run build✓ (27 routes compiled)npm run test✓ (152 vitest) + font guard ✓ (3 node:test)Not touched
Layout, colors, component structure/behavior, dependencies /
package-lock,.env.🤖 Generated with Claude Code