Refine Getting Started docs: typography, preview styling, content polish#6340
Refine Getting Started docs: typography, preview styling, content polish#6340
Conversation
Port reflex-web PR #1818 plus content polish across all Getting Started pages. Typography & preview styling (docs/app + packages/reflex-ui-shared): - Tighter headings (smaller, semibold) and lighter body weight - Wider content column (42rem→52rem / 56rem→64rem); right sidebar moved from xl: to 2xl: so mid-width screens have more room - Navbar tabs visible from md: (was xl:) so they don't collapse to a burger at medium widths - Pill-style tabs (pill-tab / pill-tab-list); slate-tinted inline rt-Code; hover-reveal copy button with "Copy" label; softer borders - docgen_pipeline: cleaner rx.el.div section/tabs renderers with consistent gap and padding Getting Started content: - Introduction: new tagline, pill tabs, slate highlight (was violet), tightened walkthrough, added "Keep learning" / "Ship faster with AI" CTA cards - Installation: added ~3 min estimate, removed embedded video, rewrote as a single uv-based flow with <your-app> placeholder, promoted Rosetta + bun.exe notes to md alert blocks, added "Next" CTA - Basics: added ~10 min estimate, flattened Prerequisites wrapper, consolidated four single-line setup steps, fixed `rx.app` typo, fixed three broken [`code`](link) markdown links (rx.el / rx.cond / rx.foreach were rendering empty), added two CTA cards - Dashboard tutorial: added ~20 min estimate, trimmed ~180-line finished-app dump at top down to a one-sentence roadmap + link to #full-app, numbered Setup steps, promoted "What are you building?" from H3 to H2, renamed Conclusion → Full app + Recap, dropped Advanced Section stub, unified all 10 preview boxes (slate border, 12px radius, 2em padding, spacing="4", rx.box wrap) Sidebar order: - Getting Started now lists Installation before Introduction Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Greptile SummaryThis PR refines all four Getting Started docs with tighter typography (smaller semibold headings, lighter body weight), a wider content column, pill-style tabs, slate-tinted inline code, and a hover-reveal copy button. Content is polished across Introduction, Installation, Basics, and Dashboard Tutorial with time estimates, consolidated setup steps, fixed typos (
Confidence Score: 4/5Safe to merge after fixing the broken internal link on the installation page CTA. One P1 broken link will 404 for any user clicking the 'Next: Build your first app' CTA on the Installation page. All other changes are well-scoped documentation and styling updates with no logic regressions. docs/getting_started/installation.md — broken link on the final CTA line. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[User visits /docs/getting-started] --> B[Sidebar: Getting Started]
B --> C[Installation\n/docs/getting_started/installation]
B --> D[Introduction\n/docs/getting_started/introduction]
B --> E[Basics\n/docs/getting_started/basics]
B --> F[Dashboard Tutorial\n/docs/getting_started/dashboard_tutorial]
C -->|CTA link broken hyphen| X["/docs/getting-started/introduction\n404"]
C -->|should link to| D
style X fill:#ffcccc,stroke:#cc0000
Reviews (1): Last reviewed commit: "Refine Getting Started docs: typography,..." | Re-trigger Greptile |
| ```md alert info | ||
| # Next: Build your first app → | ||
|
|
||
| Reflex is installed. The [Introduction](/docs/getting-started/introduction) walks through a working counter app in pure Python — the shortest path from "it runs" to "I understand it." |
There was a problem hiding this comment.
Broken internal link — hyphen vs. underscore
The new CTA link uses /docs/getting-started/introduction (hyphen), but every other internal link throughout the Getting Started section uses underscores (e.g., [install Reflex](/docs/getting_started/installation), [Basics Guide](/docs/getting_started/basics)). The hyphenated URL will 404 for users following this link.
| Reflex is installed. The [Introduction](/docs/getting-started/introduction) walks through a working counter app in pure Python — the shortest path from "it runs" to "I understand it." | |
| Reflex is installed. The [Introduction](/docs/getting_started/introduction) walks through a working counter app in pure Python — the shortest path from "it runs" to "I understand it." |
| top: 8px !important; | ||
| right: 12px !important; |
There was a problem hiding this comment.
top/right without position: absolute
top: 8px !important and right: 12px !important only have an effect on positioned elements (position: absolute/relative/fixed/sticky). The .code-block button rule sets display: inline-flex but no position, so these values are silently ignored unless the Radix UI copy button already carries position: absolute from its own stylesheet. Adding position: absolute !important here makes the intent explicit and ensures the placement survives any future upstream CSS changes.
| top: 8px !important; | |
| right: 12px !important; | |
| position: absolute !important; | |
| top: 8px !important; | |
| right: 12px !important; |
The tightened version lost nuance; the original phrasing about State being uncompiled server code with no special caveats reads better. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Ports reflex-web PR #1818 into
docs/appand follows up with a content pass across all four Getting Started markdown pages.Typography & preview styling
xl:→2xl:so mid-width screens have room to readmd:(wasxl:) instead of collapsing to a burgerpill-tab/pill-tab-list), slate-tinted inlinert-Code, hover-reveal copy button with "Copy" label, softer bordersdocgen_pipeline._render_tabs/_render_sectionrewritten with cleanerrx.el.div+ tailwind classesGetting Started content
md alert infoCTA cards~3 minestimate, removed embedded video, rewrote as single uv-based flow with<your-app>placeholder, Rosetta + bun.exe notes promoted to alert blocks~10 minestimate, consolidated single-line setup steps, fixedrx.apptypo, fixed three broken[`code`](link)links (rx.el,rx.cond,rx.foreachwere rendering empty), added CTA cards~20 min hands-onestimate, trimmed the ~180-line finished-app dump at the top down to a one-sentence roadmap + link to#full-app, numbered Setup steps, promoted "What are you building?" H3 → H2, renamed Conclusion → Full app + Recap, dropped Advanced Section stub, unified all 10 preview boxes (slate border, 12px radius, 2em padding,spacing="4",rx.boxwrap)Sidebar order
Known caveats
[`code`](url)markdown inreflex_ui_shared.components.blocks.typography.doclink2takestext: strand drops nested<code>children — this PR works around it by using plain-text link labels. A proper fix (accept*childrenand render insiderx.link) would benefit all pages.padding="2em"on preview containers may not fully render because[&>div]:!p-0indocpage.pyemitspadding: 0 !importanton every direct<div>child; an extrarx.boxwrap, swap torx.el.section, or removing the rule would fix it.Test plan
/docs/getting-started/introduction,/installation,/basics,/dashboard-tutorialmd:, right sidebar hides below2xl:, hamburger only at<md:`code`renders slate, not purpleuv run reflex compilesucceeds🤖 Generated with Claude Code