11/**
22 * BMad Builder Documentation - Custom Styles for Starlight
3- * Electric Blue theme optimized for dark mode
3+ * Dark theme matching bmadcode.com Ghost blog
44 *
55 * CSS Variable Mapping:
66 * Docusaurus → Starlight
99 * --ifm-font-color-base → --sl-color-text
1010 */
1111
12+ /* Google Fonts - match Ghost blog typography */
13+ @import url ('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&family=JetBrains+Mono:wght@400;500&display=swap' );
14+
1215/* ============================================
1316 COLOR PALETTE - Light Mode
1417 ============================================ */
1922 /* Full-width content - override Starlight's default 45rem/67.5rem */
2023 --sl-content-width : 100% ;
2124
22- /* Primary accent colors - purple to match BMAD */
23- --sl-color-accent-low : # e0e0ff ;
24- --sl-color-accent : # 8c8cff ;
25- --sl-color-accent-high : # 4141ff ;
25+ /* Primary accent colors - blue to match Ghost blog */
26+ --sl-color-accent-low : # dbeafe ;
27+ --sl-color-accent : # 2563eb ;
28+ --sl-color-accent-high : # 1d4ed8 ;
2629
2730 /* Text colors */
2831 --sl-color-white : # 1e293b ;
3538 --sl-color-black : # f8fafc ;
3639
3740 /* Font settings */
38- --sl-font : system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI' , Roboto, 'Helvetica Neue' , Arial, sans-serif;
41+ --sl-font : 'Inter' , system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI' , Roboto, 'Helvetica Neue' , Arial, sans-serif;
42+ --sl-font-mono : 'JetBrains Mono' , 'Fira Code' , ui-monospace, monospace;
3943 --sl-text-base : 1rem ;
4044 --sl-line-height : 1.7 ;
4145
4246 /* Code highlighting */
43- --sl-color-bg-inline-code : rgba (140 , 140 , 255 , 0.1 );
47+ --sl-color-bg-inline-code : rgba (59 , 130 , 246 , 0.08 );
4448}
4549
4650/* ============================================
5054 /* Full-width content - override Starlight's default */
5155 --sl-content-width : 100% ;
5256
53- /* Primary accent colors - purple to match BMAD */
54- --sl-color-accent-low : # 2a2a5a ;
55- --sl-color-accent : # 8c8cff ;
56- --sl-color-accent-high : # b9b9ff ;
57+ /* Primary accent colors - blue to match Ghost blog */
58+ --sl-color-accent-low : rgba ( 59 , 130 , 246 , 0.12 ) ;
59+ --sl-color-accent : # 3b82f6 ;
60+ --sl-color-accent-high : # 60a5fa ;
5761
5862 /* Background colors */
59- --sl-color-bg : # 1b1b1d ;
60- --sl-color-bg-nav : # 1b1b1d ;
61- --sl-color-bg-sidebar : # 1b1b1d ;
62- --sl-color-hairline-light : rgba (140 , 140 , 255 , 0.1 );
63- --sl-color-hairline : rgba ( 140 , 140 , 255 , 0.15 ) ;
63+ --sl-color-bg : # 0a0a0a ;
64+ --sl-color-bg-nav : # 0a0a0a ;
65+ --sl-color-bg-sidebar : # 0a0a0a ;
66+ --sl-color-hairline-light : rgba (255 , 255 , 255 , 0.06 );
67+ --sl-color-hairline : # 262626 ;
6468
6569 /* Text colors */
66- --sl-color-white : # f8fafc ;
70+ --sl-color-white : # fafafa ;
6771 --sl-color-gray-1 : # e2e8f0 ;
68- --sl-color-gray-2 : # cbd5e1 ;
72+ --sl-color-gray-2 : # a1a1a1 ;
6973 --sl-color-gray-3 : # 94a3b8 ;
70- --sl-color-gray-4 : # 64748b ;
74+ --sl-color-gray-4 : # 666666 ;
7175 --sl-color-gray-5 : # 475569 ;
72- --sl-color-gray-6 : # 334155 ;
73- --sl-color-black : # 1b1b1d ;
76+ --sl-color-gray-6 : # 262626 ;
77+ --sl-color-black : # 0a0a0a ;
7478
7579 /* Code highlighting */
76- --sl-color-bg-inline-code : rgba (140 , 140 , 255 , 0.15 );
80+ --sl-color-bg-inline-code : rgba (59 , 130 , 246 , 0.15 );
7781}
7882
7983/* ============================================
8084 TYPOGRAPHY
8185 ============================================ */
86+
87+ /* Space Grotesk for all headings - match Ghost blog */
88+ .sl-markdown-content h1 ,
89+ .sl-markdown-content h2 ,
90+ .sl-markdown-content h3 ,
91+ .sl-markdown-content h4 ,
92+ .sl-markdown-content h5 ,
93+ .sl-markdown-content h6 ,
94+ .site-title ,
95+ starlight-toc h2 {
96+ font-family : 'Space Grotesk' , 'Inter' , system-ui, sans-serif;
97+ letter-spacing : -0.02em ;
98+ }
99+
82100.sl-markdown-content h1 {
83101 margin-bottom : 1.5rem ;
84102}
137155
138156/* Active state - thin left accent bar */
139157.sidebar-content a [aria-current = 'page' ] {
140- background-color : rgba (140 , 140 , 255 , 0.08 );
158+ background-color : rgba (59 , 130 , 246 , 0.08 );
141159 color : var (--sl-color-accent );
142160 border-left-color : var (--sl-color-accent );
143161 font-weight : 600 ;
144162}
145163
146164: root[data-theme = 'dark' ] .sidebar-content a [aria-current = 'page' ] {
147- background-color : rgba (140 , 140 , 255 , 0.1 );
165+ background-color : rgba (59 , 130 , 246 , 0.1 );
148166 color : var (--sl-color-accent-high );
149167 border-left-color : var (--sl-color-accent );
150168}
@@ -215,7 +233,8 @@ header.header .header.sl-flex {
215233}
216234
217235: root[data-theme = 'dark' ] header .header {
218- box-shadow : 0 1px 3px rgba (0 , 0 , 0 , 0.3 );
236+ box-shadow : none;
237+ border-bottom : 1px solid # 262626 ;
219238}
220239
221240.site-title {
@@ -264,20 +283,20 @@ header.header .header.sl-flex {
264283.card : hover {
265284 transform : translateY (-3px );
266285 border-color : var (--sl-color-accent );
267- box-shadow : 0 8px 24px rgba (140 , 140 , 255 , 0.15 );
286+ box-shadow : 0 8px 24px rgba (59 , 130 , 246 , 0.15 );
268287}
269288
270289: root[data-theme = 'dark' ] .card {
271- background : linear-gradient ( 145 deg , rgba ( 30 , 41 , 59 , 0.6 ) , rgba ( 15 , 23 , 42 , 0.8 )) ;
272- border-color : rgba ( 140 , 140 , 255 , 0.2 ) ;
290+ background : # 1a1a1a ;
291+ border-color : # 262626 ;
273292 box-shadow : 0 2px 8px rgba (0 , 0 , 0 , 0.3 );
274293}
275294
276295: root[data-theme = 'dark' ] .card : hover {
277- border-color : rgba ( 140 , 140 , 255 , 0.5 ) ;
296+ border-color : # 3b82f6 ;
278297 box-shadow :
279- 0 8px 32px rgba ( 140 , 140 , 255 , 0.2 ) ,
280- 0 0 0 1px rgba (140 , 140 , 255 , 0.1 );
298+ 0 8px 32px # 262626 ,
299+ 0 0 0 1px rgba (59 , 130 , 246 , 0.1 );
281300}
282301
283302/* Starlight card grid */
@@ -296,11 +315,11 @@ header.header .header.sl-flex {
296315}
297316
298317: root[data-theme = 'dark' ] .sl-link-card {
299- border-color : rgba ( 140 , 140 , 255 , 0.2 ) ;
318+ border-color : # 262626 ;
300319}
301320
302321: root[data-theme = 'dark' ] .sl-link-card : hover {
303- border-color : rgba ( 140 , 140 , 255 , 0.5 ) ;
322+ border-color : # 3b82f6 ;
304323}
305324
306325/* ============================================
@@ -340,21 +359,21 @@ table {
340359}
341360
342361: root[data-theme = 'dark' ] table {
343- border-color : rgba (140 , 140 , 255 , 0.1 );
362+ border-color : rgba (59 , 130 , 246 , 0.1 );
344363}
345364
346365: root[data-theme = 'dark' ] table th {
347- background-color : rgba (140 , 140 , 255 , 0.05 );
366+ background-color : rgba (59 , 130 , 246 , 0.05 );
348367}
349368
350369: root[data-theme = 'dark' ] table tr : nth-child (2n) {
351- background-color : rgba (140 , 140 , 255 , 0.02 );
370+ background-color : rgba (255 , 255 , 255 , 0.02 );
352371}
353372
354373/* Blockquotes */
355374blockquote {
356375 border-left-color : var (--sl-color-accent );
357- background-color : rgba (140 , 140 , 255 , 0.05 );
376+ background-color : rgba (59 , 130 , 246 , 0.05 );
358377 border-radius : 0 8px 8px 0 ;
359378 padding : 1rem 1.25rem ;
360379}
@@ -391,19 +410,19 @@ blockquote {
391410
392411/* Note aside */
393412.starlight-aside--note {
394- background-color : rgba (140 , 140 , 255 , 0.08 );
413+ background-color : rgba (59 , 130 , 246 , 0.08 );
395414}
396415
397416.starlight-aside--note .starlight-aside__title {
398- color : # 8c8cff ;
417+ color : # 3b82f6 ;
399418}
400419
401420: root[data-theme = 'dark' ] .starlight-aside--note {
402- background-color : rgba (140 , 140 , 255 , 0.12 );
421+ background-color : rgba (59 , 130 , 246 , 0.12 );
403422}
404423
405424: root[data-theme = 'dark' ] .starlight-aside--note .starlight-aside__title {
406- color : # 8c8cff ;
425+ color : # 3b82f6 ;
407426}
408427
409428/* Caution aside */
0 commit comments