Skip to content

Commit 301faca

Browse files
Zhuoming Chenclaude
andcommitted
docs: restructure (Install/Quick Start/Examples/API) + soften theme
- Split the single index page into Installation, Quick Start, Examples, and an API Reference page, with a proper toctree. - Rewrite Installation/Quick Start and add detailed Examples (VortexConfig field table, programmable schedule_policy, MLA flows, server mode) mirroring the README, updated to the VortexConfig API. - Soften the theme to match the landing page: white surfaces, muted-rose accents (no neon), Fraunces serif headings, fainter background wash. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 09f05bc commit 301faca

6 files changed

Lines changed: 465 additions & 178 deletions

File tree

docs/_static/custom.css

Lines changed: 58 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,34 @@
11
/* ===========================================================================
2-
Vortex docs theme — light pink + white, polished.
3-
4-
Layers:
5-
1. Fonts 6. Sidebar / navigation
6-
2. Brand + surface variables 7. Class / method signature cards
7-
3. Page chrome 8. Op field-list blocks (Math/__init__/…)
8-
4. Headings 9. Code, admonitions, tables
9-
5. Links 10. Display math
2+
Vortex docs theme — soft light-pink + white, aligned with the landing page.
3+
Restrained: white surfaces, muted-rose accents, subtle tints. No neon.
104
=========================================================================== */
115

12-
/* ---- 1. Fonts -----------------------------------------------------------
13-
Webfonts with a full system fallback, so the page still looks clean
14-
offline / before the fonts load. */
15-
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');
6+
/* ---- 1. Fonts ----------------------------------------------------------- */
7+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=JetBrains+Mono:wght@400;500;600&display=swap');
168

179
/* ---- 2. Brand + surface variables --------------------------------------- */
1810
:root {
19-
--vtx-pink: #db2777; /* primary pink */
20-
--vtx-pink-bright: #ec4899; /* secondary / alt accent */
21-
--vtx-pink-deep: #be185d; /* deep accent (hover) */
22-
--vtx-pink-soft: #f6c9dd; /* hairline borders */
23-
--vtx-grad: linear-gradient(135deg, #ec4899 0%, #db2777 55%, #be185d 100%);
24-
--vtx-shadow: 0 1px 2px rgba(190, 24, 93, 0.06), 0 4px 16px rgba(219, 39, 119, 0.08);
25-
--vtx-shadow-lg: 0 2px 6px rgba(190, 24, 93, 0.10), 0 12px 32px rgba(219, 39, 119, 0.14);
11+
--vtx-pink: #c43b6e; /* muted rose primary */
12+
--vtx-pink-bright: #d76a93; /* soft secondary accent */
13+
--vtx-pink-deep: #a02050; /* deep accent (hover/links)*/
14+
--vtx-pink-soft: #f1dde6; /* hairline borders (light) */
15+
/* Deep rose -> plum, intentionally low-neon. */
16+
--vtx-grad: linear-gradient(135deg, #c2185b 0%, #a02050 55%, #8e3b86 100%);
17+
--vtx-serif: "Fraunces", Georgia, "Times New Roman", serif;
18+
--vtx-shadow: 0 1px 2px rgba(160, 32, 80, 0.05), 0 4px 14px rgba(160, 32, 80, 0.06);
19+
--vtx-shadow-lg: 0 2px 6px rgba(160, 32, 80, 0.08), 0 12px 30px rgba(160, 32, 80, 0.10);
2620
}
2721

2822
body,
2923
body:not([data-theme="dark"]) {
30-
--color-background-primary: #fffafd; /* main content surface */
31-
--color-background-secondary: #ffeef5; /* secondary surface */
32-
--color-sidebar-background: #ffe9f1;
33-
--color-code-background: #fdeef4;
34-
--color-api-background: #fff5fa;
24+
--color-background-primary: #ffffff; /* main content surface */
25+
--color-background-secondary: #fcf6f9; /* secondary surface */
26+
--color-sidebar-background: #fbf4f7; /* barely-tinted sidebar */
27+
--color-code-background: #faf4f7; /* soft code surface */
28+
--color-api-background: #fffbfc;
3529

3630
--color-brand-primary: var(--vtx-pink-deep);
37-
--color-brand-content: var(--vtx-pink);
31+
--color-brand-content: var(--vtx-pink-deep);
3832
--color-brand-visited: var(--vtx-pink-deep);
3933

4034
--font-stack: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
@@ -44,21 +38,21 @@ body:not([data-theme="dark"]) {
4438
/* Dark mode: muted rose-tinted dark. */
4539
@media (prefers-color-scheme: dark) {
4640
body:not([data-theme="light"]) {
47-
--color-background-primary: #1c151a;
48-
--color-background-secondary: #261b22;
49-
--color-sidebar-background: #261b22;
50-
--color-code-background: #2a1d25;
51-
--color-api-background: #241921;
41+
--color-background-primary: #1b151a;
42+
--color-background-secondary: #241a20;
43+
--color-sidebar-background: #241a20;
44+
--color-code-background: #281c23;
45+
--color-api-background: #221820;
5246
--color-brand-primary: var(--vtx-pink-bright);
5347
--color-brand-content: var(--vtx-pink-bright);
5448
}
5549
}
5650
body[data-theme="dark"] {
57-
--color-background-primary: #1c151a;
58-
--color-background-secondary: #261b22;
59-
--color-sidebar-background: #261b22;
60-
--color-code-background: #2a1d25;
61-
--color-api-background: #241921;
51+
--color-background-primary: #1b151a;
52+
--color-background-secondary: #241a20;
53+
--color-sidebar-background: #241a20;
54+
--color-code-background: #281c23;
55+
--color-api-background: #221820;
6256
--color-brand-primary: var(--vtx-pink-bright);
6357
--color-brand-content: var(--vtx-pink-bright);
6458
}
@@ -67,39 +61,35 @@ body[data-theme="dark"] {
6761
body {
6862
-webkit-font-smoothing: antialiased;
6963
-moz-osx-font-smoothing: grayscale;
70-
/* Faint pink wash that fades to white down the page. */
64+
/* Very faint pink wash — kept subtle so the page reads as white. */
7165
background-attachment: fixed;
7266
background-image:
73-
radial-gradient(1200px 600px at 100% -5%, rgba(236, 72, 153, 0.08), transparent 60%),
74-
radial-gradient(900px 500px at -10% 0%, rgba(219, 39, 119, 0.06), transparent 55%);
67+
radial-gradient(1100px 560px at 100% -6%, rgba(196, 59, 110, 0.035), transparent 60%),
68+
radial-gradient(820px 460px at -8% 0%, rgba(142, 59, 134, 0.03), transparent 55%);
7569
}
7670
article.content,
77-
.content {
78-
line-height: 1.62;
79-
}
71+
.content { line-height: 1.62; }
8072

8173
/* ---- 4. Headings -------------------------------------------------------- */
8274
.content h1 {
83-
font-weight: 800;
84-
letter-spacing: -0.02em;
85-
background: var(--vtx-grad);
86-
-webkit-background-clip: text;
87-
background-clip: text;
88-
-webkit-text-fill-color: transparent;
75+
font-family: var(--vtx-serif);
76+
font-weight: 600;
77+
letter-spacing: -0.015em;
78+
color: var(--vtx-pink-deep);
8979
padding-bottom: 0.3rem;
9080
}
9181
.content h2,
9282
.content h3 {
93-
font-weight: 700;
83+
font-family: var(--vtx-serif);
84+
font-weight: 600;
9485
letter-spacing: -0.01em;
86+
color: #3a2530;
9587
}
9688
.content h2 {
9789
margin-top: 2.2rem;
9890
padding-bottom: 0.25rem;
99-
border-bottom: 2px solid transparent;
100-
border-image: var(--vtx-grad) 1;
91+
border-bottom: 1px solid var(--vtx-pink-soft);
10192
}
102-
/* Hide furo's default heading anchor "#" until hover, for a cleaner look. */
10393
.content h1 .headerlink,
10494
.content h2 .headerlink,
10595
.content h3 .headerlink { opacity: 0; transition: opacity 0.15s ease; }
@@ -120,12 +110,10 @@ article.content,
120110

121111
/* ---- 6. Sidebar / navigation -------------------------------------------- */
122112
.sidebar-brand-text {
123-
font-weight: 800;
113+
font-family: var(--vtx-serif);
114+
font-weight: 700;
124115
letter-spacing: -0.01em;
125-
background: var(--vtx-grad);
126-
-webkit-background-clip: text;
127-
background-clip: text;
128-
-webkit-text-fill-color: transparent;
116+
color: var(--vtx-pink-deep);
129117
}
130118
.sidebar-tree .current-page > .reference {
131119
color: var(--vtx-pink-deep);
@@ -135,9 +123,7 @@ article.content,
135123
border-radius: 0.35rem;
136124
transition: background 0.12s ease, color 0.12s ease;
137125
}
138-
.sidebar-tree .reference:hover {
139-
background: rgba(236, 72, 153, 0.10);
140-
}
126+
.sidebar-tree .reference:hover { background: rgba(196, 59, 110, 0.07); }
141127
.toc-tree li.scroll-current > .reference {
142128
color: var(--vtx-pink-deep);
143129
font-weight: 600;
@@ -147,17 +133,12 @@ article.content,
147133
/* ---- 7. Class / method signature cards ---------------------------------- */
148134
dl.py.class > dt.sig {
149135
font-size: 0.9em;
150-
/* Hanging indent for wrapped lines, kept *inside* the card: the first
151-
line's negative text-indent (the ``class`` keyword) is fully absorbed
152-
by the matching left padding, so nothing spills past the left border.
153-
This overrides furo's ``padding-left:3em; text-indent:-2.5em`` whose
154-
geometry assumed furo's own padding, not our card padding. */
155136
padding: 0.45rem 0.7rem 0.45rem 2.6rem;
156137
text-indent: -1.9rem;
157138
border-radius: 0.55rem;
158-
background: linear-gradient(135deg, #ffffff 0%, #fff2f8 100%);
139+
background: linear-gradient(135deg, #ffffff 0%, #fdf3f7 100%);
159140
border: 1px solid var(--vtx-pink-soft);
160-
border-left: 4px solid var(--vtx-pink);
141+
border-left: 3px solid var(--vtx-pink);
161142
box-shadow: var(--vtx-shadow);
162143
box-sizing: border-box;
163144
max-width: 100%;
@@ -174,7 +155,7 @@ dl.py.property > dt.sig {
174155
font-size: 0.85em;
175156
border-radius: 0.4rem;
176157
border-left: 3px solid var(--vtx-pink-soft);
177-
background: #fff7fb;
158+
background: #fffafc;
178159
box-sizing: border-box;
179160
max-width: 100%;
180161
white-space: normal;
@@ -183,18 +164,14 @@ dl.py.property > dt.sig {
183164
}
184165
dl.py.method > dt.sig .sig-name { font-weight: 600; }
185166

186-
/* The class body gets a subtle gutter so members feel grouped under it. */
187167
dl.py.class > dd {
188-
border-left: 2px solid var(--vtx-pink-soft);
168+
border-left: 1px solid var(--vtx-pink-soft);
189169
padding-left: 1rem;
190170
margin-left: 0.15rem;
191171
}
192172

193173
/* ---- 8. Op field-list blocks (Math / __init__ / __call__ / Note) -------- */
194-
dl.field-list {
195-
display: block;
196-
margin: 0.7rem 0 0.5rem 0;
197-
}
174+
dl.field-list { display: block; margin: 0.7rem 0 0.5rem 0; }
198175
dl.field-list > dt { /* region label "pill" */
199176
display: inline-block;
200177
font-family: var(--font-stack--monospace);
@@ -206,7 +183,7 @@ dl.field-list > dt { /* region label "pill" */
206183
padding: 0.12rem 0.62rem;
207184
border-radius: 0.5rem;
208185
margin: 0.7rem 0 0 0;
209-
box-shadow: 0 2px 6px rgba(219, 39, 119, 0.22);
186+
box-shadow: 0 2px 6px rgba(160, 32, 80, 0.16);
210187
}
211188
dl.field-list > dt .colon { display: none; }
212189
dl.field-list > dd { /* region body card */
@@ -220,19 +197,16 @@ dl.field-list > dd { /* region body card */
220197
box-shadow: var(--vtx-shadow);
221198
transition: box-shadow 0.18s ease, transform 0.18s ease;
222199
}
223-
dl.field-list > dd:hover {
224-
box-shadow: var(--vtx-shadow-lg);
225-
transform: translateX(2px);
226-
}
200+
dl.field-list > dd:hover { box-shadow: var(--vtx-shadow-lg); transform: translateX(2px); }
227201
dl.field-list > dd > p { margin: 0; }
228202

229-
/* Two-tone rhythm so adjacent blocks read as separate regions. */
203+
/* Subtle two-tone rhythm so adjacent blocks read as separate regions. */
230204
dl.field-list > dt:nth-of-type(even) {
231-
background: linear-gradient(135deg, #f472b6 0%, #ec4899 100%);
205+
background: linear-gradient(135deg, #b06ab3 0%, #8e3b86 100%);
232206
}
233207
dl.field-list > dd:nth-of-type(even) {
234208
border-left-color: var(--vtx-pink-bright);
235-
background: #fff8fb;
209+
background: #fdf8fb;
236210
}
237211

238212
/* ---- 9. Code, admonitions, tables --------------------------------------- */
@@ -245,7 +219,7 @@ dl.field-list > dd:nth-of-type(even) {
245219
code.literal {
246220
border-radius: 0.3rem;
247221
padding: 0.05rem 0.32rem;
248-
border: 1px solid rgba(219, 39, 119, 0.12);
222+
border: 1px solid rgba(160, 32, 80, 0.10);
249223
}
250224
.admonition,
251225
div.admonition {
@@ -265,11 +239,11 @@ table.docutils thead th {
265239
color: #ffffff;
266240
font-weight: 600;
267241
}
268-
table.docutils tbody tr:nth-child(even) { background: #fff6fa; }
242+
table.docutils tbody tr:nth-child(even) { background: #fdf6fa; }
269243

270244
/* ---- 10. Display math --------------------------------------------------- */
271245
dl.field-list > dd div.math {
272246
text-align: left;
273247
margin: 0.15rem 0;
274-
overflow-x: auto; /* let long equations scroll, never clip */
248+
overflow-x: auto;
275249
}

docs/api.rst

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
API Reference
2+
=============
3+
4+
The user-facing surface is three packages: :mod:`vortex_torch.indexer` and
5+
:mod:`vortex_torch.cache` (the op set you compose a flow from) and
6+
:mod:`vortex_torch.flow` (the ``vFlow`` base classes and registry). Engine
7+
configuration lives in :mod:`vortex_torch.engine.sgl.config`.
8+
9+
.. autosummary::
10+
:toctree: api
11+
:recursive:
12+
13+
vortex_torch.indexer
14+
vortex_torch.cache
15+
vortex_torch.flow

0 commit comments

Comments
 (0)