New Branding, Design System, and Landing Pages - #1027
Conversation
|
Important Review skippedToo many files! This PR contains 259 files, which is 109 over the limit of 150. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (16)
📒 Files selected for processing (264)
You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
tanstack-com | 2e041ab | Commit Preview URL Branch Preview URL |
Jul 29 2026, 02:59 PM |
|
All alerts resolved. Learn more about Socket for GitHub. This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored. |
…ration Build out the /ds design system as the source of truth for the site and apply its tokens, type, and icons across the app. Design system (/ds): - Rendered style book with tree nav: Styles (Colors, Typography, Iconography, Icon Migration, Shadows, Effects), Figma Tokens (Palette, Semantic Tokens), and Components (Buttons, Badges, Inputs, Dropdown, Avatar, Spinner, Collapsible, Breadcrumbs, Cards). - Figma token layer in app.css (@theme static): primitives (--color-ds-*), library (--color-lib-*), and semantic tokens (text/background/border/icon/ action/status/accent) with html.dark overrides. - New-system component kit (src/components/ds/ui) on the semantic tokens. Site-wide rebrand application: - Global type: h1..h6 → Bricolage Grotesque, mono → IBM Plex Mono, fonts loaded globally from __root.tsx. Editing --font-ds-* propagates everywhere. - Navbar swapped to the new rebrand landscape logo (light/dark variants) with centered nav; mega menu centered. - Palm-tree pixel-art spinner (PalmSpinner) that sways at the trunk base. Icon migration (lucide-react → @phosphor-icons/react), 155 files: - 218 distinct icons (85 kept name, 133 renamed) at regular weight. - Props translated: dropped strokeWidth/absoluteStrokeWidth, fill→weight="fill", LucideIcon type → Phosphor Icon type; aliases and same-target collisions handled. - /ds/icon-migration review page renders old→new glyphs side by side so maintainers can flag any swap that doesn't fit its context. lucide-react is kept installed (the review page renders the "before" glyphs); it can be removed once that page is retired. Co-Authored-By: Claude Fable 5 <[email protected]>
- Centered header (PRINCIPLES eyebrow + display title + subtitle) over a single bordered container with 4 full-width stacked principle cards - Adopt DS rebrand tokens: Bricolage Grotesque display, IBM Plex Mono, ds color/type semantic tokens (theme-aware, works light + dark) - Per-card eyebrow accents (terracotta/green/blue/purple) matching Figma - Keep the proof visualizations; float them (no surface box) and scale them up to fill the media slot's footprint - Drop the now-unused per-card icons and iconClassName field Co-Authored-By: Claude Opus 4.8 <[email protected]>
Design-system follow-ups on top of the rebrand: - Palette: bridge legacy gray/twine to the warm DS neutral ramp in app.css so the whole site adopts the new palette; migrate the shared primitives (Button, Badge, FormInput, Tooltip) to semantic tokens. - Typography: add semantic .h1-.h6 classes; move Font families to the top of /ds/typography and make the family cards minimal. - MegaMenuItem: extract the mega-menu row into a reusable component matched to the Figma "Mega Menu Item" (bordered 44px icon, Bricolage-bold title, #aba594 description, adaptive hover/press); wire it into the Navbar with 8px spacing between items. - /ds/navbar: new Navbar DS page - anatomy preview with a device-size toggle (Auto/Mobile/iPad/Desktop) driven by container queries, plus a MegaMenuItem showcase. Add a "Design System" nav item under Support. - Home: remove the "Browse the stack" section; restructure "Why TanStack" into four centered principle sections. Refine navbar spacing. - Icons: finish the lucide->Phosphor migration (CheckCircleIcon->CheckCircle, CogsIcon->Gear); remove the orphaned custom icons. - Spinner: remove the Palm spinner demo from /ds/spinner. - Add @figma/code-connect dev dependency. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Bump the shared DsPage wrapper from max-w-5xl (1024px) to max-w-7xl (1280px) so all design-system pages use more horizontal space on wide screens (e.g. the icon-migration grid no longer truncates names). Header stays left-aligned. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Resolve conflicts with the updated base: - pnpm-lock.yaml: regenerated from the merged package.json (keeps @figma/ code-connect plus the base's new deps). - app.css: the base added a :root/:host block pinning grays to the original cool values (a layer-stability fix); updated it to the warm DS-neutral bridge values so the palette shift isn't reverted. Co-Authored-By: Claude Opus 4.8 <[email protected]>
…ds-rebrand-followups
Migrate the libraries page to the rebrand design and turn it into a temporary, navigational overlay opened over the current page instead of its own route. - New LibraryGridCard: dark rebrand cards, per-category Phosphor icon tint (icon brightens one DS shade on hover), squircle corners, instant (transition-less) hover, mono copy from each library's real description. - LibrariesOverlay (Radix Dialog) + LibrariesOverlayContext: glass modal opened from the nav "Libraries" trigger, the "All Libraries" mega-menu item (now desktop too), and the home/404/breadcrumb CTAs. Backdrop click, Escape, and the close button dismiss it; it auto-closes on navigation. - Framework pills filter the grid in place; selecting one shows the framework header/description inline. - Staggered grid reveal animation. - Remove the /libraries route and the /libraries/$framework sub-route (and now-unused LibraryCard); drop /libraries from the sitemap. Move browse utils to ~/libraries/browse-utils. Co-Authored-By: Claude Opus 4.8 <[email protected]>
- Match overlay tint to the mega-menu glass, as a reverse vignette (dark centre → ~60% rim) over the mega-menu blur. - 150ms glass fade-in, then a row-staggered card reveal. - Replace the wrapping framework pills with a DS Dropdown beside the title (default "All frameworks"; each framework as a menu item with a monochrome icon + count). Guard the dialog so selecting an item filters instead of dismissing the overlay. - Move the close button to the fixed top-right corner (24px inset, 40px light-weight icon); soften card borders; monochrome framework icons. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Installed via `npx skills add kylezantos/design-motion-principles`. Co-Authored-By: Claude Opus 4.8 <[email protected]>
…only SVGs
Continue the rebrand rollout by replacing the leftover old TanStack logos
with the new brand assets, and remove the unreferenced 193MB hero video.
- Extract emblem-only SVGs from the stacked logo's island path into
public/images/brand/tanstack-emblem-{black,white,charcoal,cream}.svg
(the rebrand set only shipped stacked/landscape, both with the wordmark).
- SearchModal AI-message avatar → emblem (theme-swapped black/white).
- Game coin texture → emblem-black.
- BrandContextMenu download menu → Landscape / Stacked / Emblem (black + white).
- brand-guide asset sections → Landscape / Stacked / Emblem in brand colors.
- login + oauth/authorize splash → emblem (theme-swapped).
- Remove unreferenced public/videos/hero.mp4 (193MB, never committed).
- launch.json: autoPort so the dev server falls back off a busy port 3000.
Left intentionally (separate follow-ups): homepage hero (redesign scope),
ShopHero3D 3D textures, and favicons/OG images (need PNG rasterization + a
mono-vs-color decision).
Co-Authored-By: Claude Opus 4.8 <[email protected]>
- Brighten resting card name (70% -> 90%) so it reads as the headline without hover; use the short tagline (2-line clamp) instead of the full description; persistent "Docs ->" affordance + keyboard focus ring. - Group cards under tinted category headers (Framework / Data & State / UI & UX / Performance / Tooling); stagger the reveal per section. - Framework filter moves to a dropdown beside the title (stacks below on mobile); 20% translucent card fill across all breakpoints. - Responsive: wider side margins on tablet-down, 16px card gutter, and a mobile "unified list" — each category a bordered, rounded squircle box with dividers between rows (standalone cards restored at sm+). - Tighten the icon-to-name gap to 4px. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Lets the preview harness pick a free port (Vite honors PORT) instead of colliding on 3000 with other worktrees/sessions. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Co-Authored-By: Claude Opus 4.8 <[email protected]>
Formatting-only reflow of two description lines (matches CI fix bb0fe1e). Co-Authored-By: Claude Opus 4.8 <[email protected]>
…ds-rebrand-phosphor-icons
…e DS work (#1040) Replace the copy-pasted per-library landing pages with a single config-driven LibraryLanding component, and convert Query (rich) and Ranger (lean) as the first POC pages. Landing: - Shared LibraryLanding template (hero, why-grid, split sections, testimonials, ecosystem, CTA) driven by a per-library config + demo-panel slots - De-noise: one exclamation-free CTA, drop superlative taglines, small TanStack mark stacked over a large product wordmark - Repackage typography onto DS text-ds-* roles (drop font-black) - ~30% more section padding, gutters, and column gap Design system: - Eyebrow component: mono-caps role, brand-by-category via --color-lib-* tokens, with a /ds/eyebrow style book - Logos brand page (/ds/logos) with per-variant SVG downloads; Brand entry merged into a "Brand & Styles" nav section - Button: add polymorphic `as` prop so it can render as a Link/anchor - Lighten body type tokens (body xl/lg/md -> weight 300) + style-book labels - Navbar library wordmark -> DS heading-4 in the display font Co-authored-by: Claude Opus 4.8 <[email protected]>
…e DS work Replace the copy-pasted per-library landing pages with a single config-driven LibraryLanding component, and convert Query (rich) and Ranger (lean) as the first POC pages. Landing: - Shared LibraryLanding template (hero, why-grid, split sections, testimonials, ecosystem, CTA) driven by a per-library config + demo-panel slots - De-noise: one exclamation-free CTA, drop superlative taglines, small TanStack mark stacked over a large product wordmark - Repackage typography onto DS text-ds-* roles (drop font-black) - ~30% more section padding, gutters, and column gap Design system: - Eyebrow component: mono-caps role, brand-by-category via --color-lib-* tokens, with a /ds/eyebrow style book - Logos brand page (/ds/logos) with per-variant SVG downloads; Brand entry merged into a "Brand & Styles" nav section - Button: add polymorphic `as` prop so it can render as a Link/anchor - Lighten body type tokens (body xl/lg/md -> weight 300) + style-book labels - Navbar library wordmark -> DS heading-4 in the display font Co-Authored-By: Claude Opus 4.8 <[email protected]>
The card's overflow-hidden + rounded-2xl clipped the inset image's corners. Drop them; the image now carries the shape: 8px inset (inset-2), rounded-[2rem] with corner-shape:squircle. Co-Authored-By: Claude Opus 4.8 <[email protected]>
- Add the subtle overlay states used by the other mega menus to the Libraries rows: hover white/4%, pressed white/12% (mode-adaptive via text-primary). Replaces the dead `surface-state-hover` class, which was never a defined token, so rows previously had no hover background at all. - Space library rows 4px apart (gap-1) for a less cramped column. - Center the "Browse all libraries" button in the menu footer. Verified live: rows gap 4px, hover/pressed classes applied, button centered. Co-Authored-By: Claude Opus 4.8 <[email protected]>
…ips) Replace the starter preset chips with a placeholder that rotates through the suggestions in the empty prompt field. Shift+Enter accepts the shown suggestion (or submits typed text) and reveals the builder options. submitCurrentInput now takes an optional override so the placeholder can be submitted without a state race. Applies to the home (full) layout; the compact layout keeps its chips. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Drop xl:px-10 so the hero spans full width; the 8px squircle image frame remains on all sides. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Co-Authored-By: Claude Opus 4.8 <[email protected]>
- Wrap the hero <img> in an inset-2 div so the 8px frame is symmetric; the intrinsic-sized <img> was positioned at left:8 but kept full width, pushing its right edge 8px past the card (clipped). - Height now scales with the viewport (h calc(100dvh - navbar)) capped at 720px (max-h) with a 560px floor, instead of a rigid 720px. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Toward the Figma StackBuilder progressive-disclosure design (809:2114): - Heading reads 'Whatcha want to build?' on the home starter. - Submit is now the TanStack brand rainbow-gradient 'Go ->' button (dark ink) instead of the emerald 'Next'. Co-Authored-By: Claude Opus 4.8 <[email protected]>
…abled state - 'Copy Prompt' results CTA now uses the brand rainbow gradient (matching the Figma 'Copy Prompt to build this stack'). - Go button reads disabled (grayscale) until there's real input. Co-Authored-By: Claude Opus 4.8 <[email protected]>
Home starter now matches the Figma StackBuilder resting look: - Dark #0a0a0a surface with a terracotta glow; no header bar / PROMPT label / inner borders (all gated to context='home' so the builder page is unchanged). - Centered Bricolage-light heading above the field. - Prompt field starts empty so the rotating suggestion placeholder shows, with a quiet 'Press Shift + Enter' hint that yields to the gradient Go CTA on input. Co-Authored-By: Claude Opus 4.8 <[email protected]>
…box, dissolving prompts - Heading now floats above the box (Figma StackBuilder), not in a header bar. - Box: 24px full-squircle corners + the Figma terracotta glow (0/21/39.2/-28). - Rotating placeholder uses the short labels (Blank starter, Build a blog, …) in an animated overlay that gently dissolves out, then reveals the next left-to-right (CSS keyframes; sequenced so the previous is fully gone first; respects prefers-reduced-motion). Shift+Enter still submits the full prompt. Co-Authored-By: Claude Opus 4.8 <[email protected]>
…arger text - Box background is the subtle surface (#171717) instead of #0a0a0a. - 'Press Shift + Enter' hint sits lateral to the prompt text (top-right); once the user types, the gradient 'Go ->' CTA replaces it in that spot. - Bump the prompt text to 16px and the hint to 14px (one level up). Co-Authored-By: Claude Opus 4.8 <[email protected]>
* Apply rebrand to library landing pages * Make library landings bespoke * Restore the AI hero graph * Restore light and dark landing themes * Align landing typography and category colors
Brings this session's work onto the branch:
- Category-colored Libraries mega menu (restored) with hover/pressed states,
4px row spacing, centered "Browse all libraries".
- Support mega menu refined to Figma (boxed 32px icons, mono eyebrows, PARTNERS
rail redesign) + widened 330px items with non-wrapping subtext.
- MegaMenuItem rest/hover/pressed states; mega-menu panel padding 40/36/32.
- DS StatsSection, homepage stats promotion, partners category bands.
Conflict resolution:
- app.css: kept this branch's (WIP) canonical palette; grafted the additive
--color-text-menu-title token (neutral-tint-200 already present).
- MegaMenuItem.tsx: took the session version (32px boxed icon + states).
- Bespoke landings + library configs: kept this branch's WIP.
- QueryLanding: took the session/template-compatible version (the WIP copy used
the pre-rebrand LandingAccent API).
- Wired the now-existing PixelSpinner export in ds/ui.
- pnpm install synced @tanstack/workflow-{core,runtime} to the merged lockfile.
Verified: tsc 0 errors, pnpm test 24/24 pass.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
…nd-phosphor-icons
…ds-rebrand-phosphor-icons
df9543e to
ed9ef43
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
tannerlinsley
left a comment
There was a problem hiding this comment.
Reviewed locally after updating from main. The combined production build succeeds and the full type, lint, and unit suite passes.
What
Builds out the
/dsdesign system as the source of truth for the site, applies its rebrand tokens/type across the app, and migrates every icon fromlucide-reactto@phosphor-icons/react.Design system (
/ds)app.cssvia@theme static— primitives (--color-ds-*), library (--color-lib-*), and semantic tokens (text/background/border/icon/action/status/accent) withhtml.darkoverrides. Editing a primitive propagates through everything that references it.src/components/ds/uibuilt on the semantic tokens.Site-wide rebrand
h1..h6→ Bricolage Grotesque, mono → IBM Plex Mono, loaded globally from__root.tsx. Re-pointing--font-ds-*restyles the whole site.prefers-reduced-motion).Icon migration — lucide → Phosphor (155 files)
regularweight. Every Phosphor target was validated against the installed package before the sweep.strokeWidth/absoluteStrokeWidth,fill→weight="fill",LucideIcontype → PhosphorIcontype; aliases (Search as SearchIcon→MagnifyingGlass as SearchIcon) and same-target collisions (Layers/Boxes/SquareStack→Stack) handled./ds/icon-migrationreview page renders old → new glyphs side by side (Flagged / Renamed / All tabs + search) so maintainers can flag any swap that doesn't fit its context.Notes for reviewers
lucide-reactis intentionally kept installed — the review page renders the "before" glyphs from it. It can be removed once that page is retired./ds/icon-migration(e.g.Server→HardDrives,Route→Path,Milestone→MapPinLine,Activity→Pulse,Dock→AppWindow, and the four that collapse toStack).public/videos/hero.mp4is deliberately not included in this PR.tscclean, lint clean, unit tests pass (all via pre-commit), and/dspages render without console errors.🤖 Generated with Claude Code