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
2822body ,
2923body : 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}
5650body [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"] {
6761body {
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 (1200 px 600 px at 100% -5 % , rgba (236 , 72 , 153 , 0.08 ), transparent 60% ),
74- radial-gradient (900 px 500 px at -10 % 0% , rgba (219 , 39 , 119 , 0.06 ), transparent 55% );
67+ radial-gradient (1100 px 560 px at 100% -6 % , rgba (196 , 59 , 110 , 0.035 ), transparent 60% ),
68+ radial-gradient (820 px 460 px at -8 % 0% , rgba (142 , 59 , 134 , 0.03 ), transparent 55% );
7569}
7670article .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 ---------------------------------- */
148134dl .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 : 4 px solid var (--vtx-pink );
141+ border-left : 3 px 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}
184165dl .py .method > dt .sig .sig-name { font-weight : 600 ; }
185166
186- /* The class body gets a subtle gutter so members feel grouped under it. */
187167dl .py .class > dd {
188- border-left : 2 px solid var (--vtx-pink-soft );
168+ border-left : 1 px 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 ; }
198175dl .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}
211188dl .field-list > dt .colon { display : none; }
212189dl .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 ); }
227201dl .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. */
230204dl .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}
233207dl .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) {
245219code .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 ,
251225div .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 --------------------------------------------------- */
271245dl .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}
0 commit comments