Skip to content

Feat: thinc renovation 2026! - #9

Merged
chawinkn merged 26 commits into
mainfrom
preview
Aug 14, 2026
Merged

chawinkn merged 26 commits into
mainfrom
preview

Conversation

@chawinkn

Copy link
Copy Markdown
Collaborator

No description provided.

chawinkn and others added 26 commits August 12, 2026 23:34
- Standardize section paddings and header typography across all index pages.

- Update individual roadmap headers to match the Landing page's dark hero theme.

- Add responsive sizing to Roadmap cards and CTA buttons.

- Fix Markdown content margin bug to ensure uniform top-spacing across all roadmaps.
…tatement sections

- hero: Figma SVG gradient/ray/highlight, typography and spacing tuning
- add Values section with per-card pillar SVGs
- add Statement section (STOP IMAGINING / START BUILDING)
- mobile nav overlay matches header, z-index fix for close button
…imation

- Convert hero/values background gradients from SVG files to pure CSS radial gradients (P3 + sRGB), with green blend glow at their meeting point
- Rasterize blurred ray/pillar SVGs to WebP (blur pre-baked, no runtime filter cost)
- Statement section: scroll-hijacked pop-up animation, reversible, momentum-clamped, extracted to own file to fix hydration
- Navigation: dark glass drawer, scroll-safe icon buttons, gap-3 fix for hidden siblings, h-14 bar
- Footer: match navbar CI (mark + wordmark lockup, border)
- Hero: mobile line breaks for description, left-only padding
- Self-host Afacad + IBM Plex Sans Thai woff2 subsets, drop Google Fonts
  (duplicate @import + link tags) and unused Inter/Atkinson fonts
- Card design tokens + .card primitive with glass corner-light ring;
  unify roadmap/blog/video cards (padding, radius, shadow, face color)
- Restyle /roadmap, /blog, and roadmap detail pages to landing CI
  (dark theme, display font, tokened markdown colors, 68ch measure)
- Footer: brand tagline, Explore/Connect columns, social links,
  bottom gradient echoing hero
- Navigation: active-page state (desktop + drawer), drawer social row,
  Escape close + scroll lock + aria labels, token borders
- Statement: fix scroll-hijack flicker (overflow lock replaces scroll
  clamping), keyboard progress support
- Landing: section background alternation, uniform card gaps and
  header spacing, roadmap teaser capped at 4, videos at 2 with lazy
  iframes, CTA hierarchy (one filled primary + outline secondaries)
- Per-page titles, og:image prop wiring, skip-to-content link,
  BlogCard h3 + aspect-ratio, dvh hero height, footer touch targets
…adability fixes

- Add authors[] to roadmap content schema; render byline (avatar + name)
  under the article header, sourced from markdown frontmatter
- Add back-link from article header to /roadmap listing
- Fix heading hierarchy: demote markdown H1s in git.md/uxui-beginner.md
  so each article has exactly one page-level H1
- Fix dead .content body CSS selector (never matched any element) so
  intended line-height/word-wrap actually apply
- Raise body/link contrast and de-emphasize link font-weight in article
  content; add table overflow wrapper for responsiveness
- Widen article content measure (68ch -> 80ch), align header column to
  match, and match article background to landing's Blogs section
- Brighten and reorient roadmap header + footer gradients to echo hero
…rkness

Drawer used fixed inset-0 without a dvh-based height, so on iOS Safari
the box could size against a stale viewport snapshot when the address
bar toggled after opening, pushing the bottom section off-screen. Pin
to 100dvh (with 100vh fallback), make the drawer scrollable as a
fallback, and respect env(safe-area-inset-bottom) for the bottom
section. Also reduce drawer overlay darkness per feedback.
overflow:hidden on <html> doesn't reliably prevent background scroll
on iOS Safari, letting the page rubber-band behind the open drawer and
retrigger the toolbar show/hide, which kept moving the drawer's
viewport target and caused content to overflow off-screen. Lock body
with position:fixed + preserved scroll offset instead.
The fixed-body technique (78d32b0) broke the site entirely (black
screen site-wide, not just in the drawer). Reverting Navigation.tsx to
the f39cbdb state: dvh-based drawer sizing and lowered darkness stay,
scroll lock goes back to the simpler overflow:hidden approach.
justify-content:center on overflowing flex content is unreachable via
scroll in some browsers. Use margin:auto centering instead (collapses
to 0 when space runs out) so links stay centered when they fit, while
the drawer remains scrollable to reach the bottom Main Site/contact
section if content overflows a short viewport.
…ctions

Both Roadmaps and Blogs sections had min-h-screen, forcing 100vh minimum
regardless of content length; on large viewports with few items this left
a large empty gap before the footer. Also align the roadmap grid's
breakpoint with blog/videos (sm: instead of md:) and fix a contrast
failure on video card descriptions (text-tertiary -> text-secondary).

Landing.tsx: rework Hero/Values responsive layout (line-length cap on
hero description, Values 3-column layout now gated to lg: instead of
md: to avoid a grid alignment bug at the narrower md range), widen nav
container at lg:.
…tent polish

- Add opt-in `wide` prop to Section (lg:max-w-screen-xl) so landing's
  Roadmaps/Blogs/Videos sections realign with the widened nav container;
  /roadmap, /blog, /videos standalone pages stay untouched
- Bump nav and footer font sizes at lg: (logo, links, Main Site button,
  footer headings/links/copyright), previously static across all sizes
- Bump card description/title sizes (RoadmapCard, BlogCard, video cards)
  at md: — were static text-sm/text-lg with no responsive scale
- Fetch larger Medium thumbnail variant (400 -> 800) to avoid upscaling
  blur now that blog cards render wider
- Add missing table border styles in markdown content (content.css)
- Statement section: taller at lg:; nav height h-14 -> h-16
- Hero: cap description line-length at sm:max-w-[50vw], retune
  padding/positioning across sm/lg tiers
…utton tokens

- Body copy: IBM Plex Sans Thai (own latin subset) instead of pairing
  separate IBM Plex Sans + IBM Plex Sans Thai families, so mixed Thai/
  English text renders from one typeface
- Roadmap markdown (.content): Noto Sans Thai for Thai, Inter for Latin
  (headings + body), no underline on links, responsive heading sizes
- Fix ch-unit max-width mismatch between Header and .content caused by
  differing font-family on the two boxes
- Fix concentric border-radius mismatch on card thumbnails (BlogCard,
  video iframe) relative to .card's padding
- Add .btn-primary/.btn-secondary/.btn-icon/.btn-ghost tokens (global.css)
  and migrate every CTA/icon-button instance onto them for brand
  consistency; restore hero phonetic block, responsive hero sizing
…ons, mobile markdown sizing

- Self-host Inter + Noto Sans Thai (markdown content fonts) instead of
  Google Fonts CDN, remove the CDN link/preconnects from BaseHead.astro
- Roadmap/Blogs/Videos section headers: cap description width at 50% of
  the row from sm onward so it wraps within its own half instead of
  colliding with the CTA chip at in-between viewport widths
- Roadmap markdown base font-size 18px -> 16px on mobile (headings scale
  with it via em units), non-breaking hyphen fix on hero "hands-on",
  responsive sizing for hero phonetic/noun
- New TableOfContents component: sticky scrollspy sidebar on desktop
  (>=lg), collapsible native <details> accordion on mobile/tablet, both
  driven by the same headings data from Astro's content render()
- Roadmap layout widened to match nav's container (max-w-screen-xl at
  lg+) so sidebar+content align with the wordmark; falls back to the
  original narrow reading width below lg where the sidebar is hidden
- Self-host JetBrains Mono for --font-family-mono (was 'Afacad',
  monospace -- Afacad isn't a monospace face, so code was silently
  rendering in a proportional font)
- content.css: scroll-margin-top on headings so anchor jumps (TOC,
  #hash links) clear the fixed nav; code block sizing/weight tuned down
Mobile accordion and desktop sidebar share the same list markup;
size/padding now scale down for mobile since it was inheriting the
desktop-tuned values.
Fix Thai typos (duplicate tone marks, stray zero-width spaces, one
duplicated word), translate headings that mixed Thai into English-only
since they feed the table-of-contents sidebar, and trim several
headings that ran long enough to crowd the TOC column — moved the
dropped context (SSR/SSG, CSR) into body text instead of deleting it.
Also fixes the Instagram handle (thinc.in.th -> thinc.th, matching
Footer/Navigation) and two internal links in frontend-react.md that
pointed at the wrong roadmap slug on a hardcoded wrong domain.
Desktop's Main Site link is outline/ghost styled; mobile drawer had it
as btn-primary (orange fill, black text), which looked like a
different button on a different site depending on viewport.
text-base/lg read oversized next to the roadmap body copy; drop one
step to text-sm/base.
.content ul had a margin override and custom bullet marker to survive
Tailwind Preflight's list reset; .content ol had neither, so numbered
lists (e.g. the Design Thinking steps) rendered with zero spacing and
no numbers. Mirror the ul treatment with a CSS counter.
- adjust style
- create level tag extract func
@chawinkn
chawinkn marked this pull request as ready for review August 14, 2026 17:43
@chawinkn
chawinkn merged commit f4d93e6 into main Aug 14, 2026
1 check passed
@chawinkn
chawinkn deleted the preview branch August 14, 2026 17:43

This branch was successfully deployed

1 active deployment
thinc-knowledge (Preview) — dbc45210 Deployed Aug 14, 2026 by github-actions[bot]
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