Skip to content

Commit 0a3b142

Browse files
committed
chore: Typography scale & hierarchy
1 parent 05823c1 commit 0a3b142

4 files changed

Lines changed: 284 additions & 56 deletions

File tree

README.md

Lines changed: 50 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,7 @@ Next: **Interface & Narrative Toolkit**
77
[![Version](https://img.shields.io/badge/version-v0.1.0-blue)](./VERSION)
88
[![Last Commit](https://img.shields.io/github/last-commit/gah-code/my-landing-page-2026)](https://github.com/gah-code/my-landing-page-2026/commits/main)
99
[![Node](https://img.shields.io/badge/node-%E2%89%A520-orange?logo=node.js&logoColor=white)](https://nodejs.org/)
10-
[![Netlify Status](https://api.netlify.com/api/v1/badges/YOUR_NETLIFY_SITE_ID/deploy-status)](https://app.netlify.com/sites/YOUR_NETLIFY_SITE_NAME/deploys)
11-
12-
![Lighthouse Performance](https://img.shields.io/badge/Performance-99-brightgreen?logo=lighthouse&logoColor=white)
13-
![Lighthouse Accessibility](https://img.shields.io/badge/Accessibility-96-brightgreen?logo=lighthouse&logoColor=white)
14-
![Lighthouse Best Practices](https://img.shields.io/badge/Best%20Practices-100-brightgreen?logo=lighthouse&logoColor=white)
15-
![Lighthouse SEO](https://img.shields.io/badge/SEO-100-brightgreen?logo=lighthouse&logoColor=white)
16-
![Lighthouse PWA](https://img.shields.io/badge/PWA-30-lightgrey?logo=lighthouse&logoColor=white)
10+
[![Netlify Status](https://api.netlify.com/api/v1/badges/80b7e809-3810-4be9-aee4-a5004d9ac7fd/deploy-status)](https://app.netlify.com/projects/my-landing-page-2026/deploys)
1711

1812
> **my-landing-page-2026** is a high-signal personal landing page that treats SEO, narrative, and content modeling as one system.
1913
> Built UI-first, CMS-second, with **Contentful** + **Agent-assisted reviews** to keep the landing page sharp.
@@ -366,9 +360,50 @@ Deeper modeling work now lives in **`landing-page-content-models` v2**.
366360
- Stacked layout on mobile for all modes.
367361
- Tests:
368362
- `fetchPersonalLandingPage.test.ts` covers heroStyle defaults, avatar/image asset handling, and fallback behavior.
369-
- Next hero-specific checks:
370-
- [ ] Flip `heroStyle` + asset combinations in Contentful to visually verify all three modes.
371-
- [ ] Run the `agent/checkpoints/cp-hero-visuals.md` checkpoint (with screenshots) for an Agent review of the visual/UX choices.
363+
364+
---
365+
366+
- [x] **Global spacing & layout rhythm**
367+
- Define a simple vertical spacing scale in `tokens.css` (e.g. `--space-4`, `--space-6`, `--space-8`, `--space-12`) and use it consistently for:
368+
- Section top/bottom padding.
369+
- Gaps between headings and body text.
370+
- Gaps between cards (projects, timeline items).
371+
- In `layout.css`:
372+
- Aim for ~3–4rem vertical space between major sections on desktop.
373+
- Ensure there is clear separation between hero, experience, skills, projects, learning, and contact.
374+
375+
- [ ] **Typography scale & hierarchy**
376+
- In `tokens.css`, define an explicit type scale and stick to it:
377+
- `--font-size-h1` (hero title), `--font-size-h2` (section titles), `--font-size-h3` (card/section sub-headings).
378+
- Update headings to use this scale:
379+
- `h1` → hero name.
380+
- `h2` → section headings (`Experience`, `Skills`, `Projects`, `Learning`, `Contact`).
381+
- `h3` → project titles, timeline items, skill group titles (if needed).
382+
- Check mobile:
383+
- Slightly reduce heading sizes where necessary so text doesn’t wrap awkwardly on small screens.
384+
- Ensure line-height is comfortable for reading (especially in hero intro and section intros).
385+
386+
- [ ] **Color & contrast polish**
387+
- In `tokens.css`:
388+
- Verify `--color-muted` remains readable against the background (meets contrast guidelines).
389+
- Add/verify a `--color-focus-ring` token and use it for `:focus-visible` outlines.
390+
- In `layout.css`:
391+
- Make sure focus outlines and hover states are clearly visible on links and buttons (especially in the header and hero CTAs).
392+
- Ensure any borders (project cards, timeline items) use `--color-border` or a subtle variant for consistency.
393+
394+
---
395+
396+
- [ ] **Hero mode verification in Contentful**
397+
- Flip `heroStyle` + asset combinations in Contentful to visually verify all three modes:
398+
- `heroStyle = typographic` with no images.
399+
- `heroStyle = avatar` with `avatarImage` set.
400+
- `heroStyle = image` with `heroImage` set.
401+
- Check each mode on:
402+
- Desktop (spacing, alignment, avatar/image size).
403+
- Mobile (stacking, readability, tap target spacing).
404+
- Once visually confirmed, run the `agent/checkpoints/cp-hero-visuals.md` checkpoint (with screenshots) for an Agent review of the visual/UX choices.
405+
406+
---
372407

373408
- [ ] **Project visuals (lightweight)**
374409
- Decide how to present 1–2 flagship projects:
@@ -377,15 +412,14 @@ Deeper modeling work now lives in **`landing-page-content-models` v2**.
377412
- If using thumbnails:
378413
- Add an optional `thumbnail` field to the `project` content type in `landing-page-content-models` v2.
379414
- Map it into the UI and render with meaningful `alt` text (e.g. “Screenshot of project dashboard for …”).
380-
- Keep layout simple: small image + text, responsive on mobile.
415+
- Keep layout simple and responsive: image + text on desktop, stacked on mobile.
381416

382-
- [ ] **Tokens & readability**
417+
- [ ] **Tokens & readability check**
383418
- In `tokens.css`:
384-
- Verify `--color-muted` is readable on the dark background (meets contrast requirements).
385-
- Ensure focus styles (`:focus-visible`) use a clear, high-contrast `--color-focus-ring`.
419+
- Reconfirm `--color-text`, `--color-muted`, and body font-size are comfortable for sustained reading.
386420
- In `layout.css`:
387-
- Confirm section spacing on desktop (aim for ~3–4rem vertical space between sections).
388-
- Increase line-height slightly on mobile paragraphs (e.g. `1.6–1.8`) for better readability.
421+
- Slightly increase line-height on mobile paragraphs (e.g. `1.6–1.8`) for better readability.
422+
- Confirm that long sections (Experience, Projects, Learning) don’t feel cramped or overly dense.
389423

390424
---
391425

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
2+
# Agent Checkpoint: Layout Rhythm & Spacing Review
3+
4+
## Context
5+
6+
This checkpoint is focused on **global spacing, layout rhythm, and typography** for the single-page landing site `my-landing-page-2026` (Bucket 1 – Personal Landing).
7+
8+
Recent changes:
9+
10+
- Defined a spacing scale in `tokens.css` (e.g. `--space-2`, `--space-4`, `--space-8`, `--space-12`, etc.).
11+
- Updated `layout.css`:
12+
- Sections use consistent `padding-block` and `padding-inline`.
13+
- Vertical gaps between sections and within sections (headings → body → cards) are aligned to the spacing scale.
14+
- Timeline, Projects, Learning, and Contact lists/cards now use consistent `gap` and `padding` values.
15+
16+
Goal:
17+
18+
- Make sure the vertical rhythm and spacing feel **intentional and readable** on both desktop and mobile.
19+
- Avoid cramped or overly stretched sections.
20+
- Keep hierarchy clear (hero → sections → cards).
21+
22+
---
23+
24+
## Artifacts
25+
26+
Assume these files are open or attached:
27+
28+
- `src/styles/tokens.css`
29+
- Spacing tokens (`--space-*`) and any relevant typography tokens.
30+
- `src/styles/layout.css`
31+
- `.section`, `.section-hero`, `.timeline-*`, `.projects-*`, `.learning-*`, `.contact-*` rules.
32+
- Screenshots or descriptions:
33+
- Desktop view of the full page (or per section).
34+
- Mobile view (narrow viewport) for at least:
35+
- Hero
36+
- Experience (timeline)
37+
- Projects
38+
- Contact
39+
40+
You can also include:
41+
42+
- `src/components/layout/Page.tsx` (only if needed for section structure context).
43+
44+
---
45+
46+
## Current Spacing Guidelines (intended)
47+
48+
> Fill this section based on what you actually implemented.
49+
50+
- **Spacing scale** (example; adjust to match your tokens):
51+
52+
```text
53+
--space-1: 0.25rem (4px)
54+
--space-2: 0.5rem (8px)
55+
--space-3: 0.75rem (12px)
56+
--space-4: 1rem (16px)
57+
--space-6: 1.5rem (24px)
58+
--space-8: 2rem (32px)
59+
--space-10: 2.5rem (40px)
60+
--space-12: 3rem (48px)
61+
--space-16: 4rem (64px)
62+
63+
````
64+
65+
* **Sections**:
66+
67+
* `.section`:
68+
69+
* `padding-block`: `var(--space-12)` (desktop)
70+
* `padding-inline`: `var(--space-4)`
71+
* On mobile:
72+
73+
* `padding-block`: `var(--space-8)` (if you adjusted)
74+
* `padding-inline`: `var(--space-4)`
75+
76+
* **Section headings**:
77+
78+
* `h2` inside `.section`:
79+
80+
* `margin-bottom: var(--space-4)` before content.
81+
82+
* **Cards/lists**:
83+
84+
* Timeline items: `gap: var(--space-4)` between items, `padding: var(--space-4)` inside.
85+
* Projects: `gap: var(--space-4)` between cards, `padding: var(--space-4)` inside.
86+
* Learning items: `gap: var(--space-3)`, `padding: var(--space-3)`.
87+
* Contact links: `gap: var(--space-2)`, `margin-top: var(--space-3)`.
88+
89+
(Adjust these details to match your real values in `layout.css`.)
90+
91+
---
92+
93+
## Questions for the Agent
94+
95+
1. **Overall rhythm**
96+
97+
* Looking at `tokens.css` and `layout.css`, does the vertical spacing between:
98+
99+
* The hero,
100+
* Each major section (Experience, Skills, Projects, Learning, Contact),
101+
* And within cards/lists (timeline items, project cards, etc.)
102+
feel consistent and intentional on both desktop and mobile?
103+
104+
2. **Readability & density**
105+
106+
* Do any sections feel:
107+
108+
* Too cramped (not enough vertical spacing)?
109+
* Too sparse (too much empty space) for a recruiter skimming the page?
110+
* Suggest small, concrete adjustments (e.g. “reduce section padding on mobile”, “increase gap between project cards”) that would improve scan-ability.
111+
112+
3. **Hierarchy clarity**
113+
114+
* Based on the current spacing + heading hierarchy:
115+
116+
* Is it always clear where one section ends and the next begins?
117+
* Are section headings visually distinct enough from their content and from other headings?
118+
* Suggest tweaks that improve that hierarchy without changing the fundamentals (no need to introduce new components).
119+
120+
4. **Hero vs. rest of the page**
121+
122+
* Does the hero section feel proportionate compared to the rest of the page?
123+
124+
* If it feels too tall or too short, what specific spacing changes would you recommend to better balance hero and subsequent sections?
125+
126+
---
127+
128+
## Constraints / Preferences
129+
130+
* Keep the layout as a **single-page scroll** (no multi-page structure).
131+
* Do not introduce a heavy design system; just refine the existing spacing/tokens.
132+
* Any recommendations should be:
133+
134+
* Expressed in terms of the existing spacing tokens (`--space-*`) and CSS.
135+
* Easy to apply without rewriting components.
136+
137+
---
138+
139+
## Notes
140+
141+
> (You can fill this out after agent feedback.)
142+
143+
* Changes applied:
144+
145+
* …
146+
* Rationale:
147+
148+
* …
149+
* Follow-ups:
150+
151+
* …

0 commit comments

Comments
 (0)