style: update docs theme to match bmadcode.com Ghost blog (#2176)

Replace purple/electric blue accent with Ghost blog design tokens:
- Background #0a0a0a, surface #1a1a1a, borders #262626
- Accent blue #3b82f6, text #fafafa/#a1a1a1/#666666
- Inter body, Space Grotesk headings, JetBrains Mono code
- Remove logo images, use text title
This commit is contained in:
Brian 2026-04-01 01:12:40 -05:00 committed by GitHub
parent 1f99eb0496
commit 2c5436f672
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 76 additions and 64 deletions

View File

@ -50,12 +50,6 @@ export default defineConfig({
defaultLocale: 'root', defaultLocale: 'root',
locales, locales,
logo: {
light: './public/img/bmad-light.png',
dark: './public/img/bmad-dark.png',
alt: 'BMAD Method',
replacesTitle: true,
},
favicon: '/favicon.ico', favicon: '/favicon.ico',
// Social links // Social links

View File

@ -12,16 +12,16 @@ const llmsFullUrl = `${getSiteUrl()}/llms-full.txt`;
.ai-banner { .ai-banner {
width: 100%; width: 100%;
height: var(--ai-banner-height, 2.75rem); height: var(--ai-banner-height, 2.75rem);
background: #334155; background: #1a1a1a;
color: #cbd5e1; color: #a1a1a1;
padding: 0.5rem 1rem; padding: 0.5rem 1rem;
font-size: 0.875rem; font-size: 0.875rem;
border-bottom: 1px solid rgba(140, 140, 255, 0.15); border-bottom: 1px solid #262626;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-sizing: border-box; box-sizing: border-box;
font-family: system-ui, sans-serif; font-family: 'Inter', system-ui, sans-serif;
} }
/* Truncate text on narrow screens */ /* Truncate text on narrow screens */
@ -32,15 +32,16 @@ const llmsFullUrl = `${getSiteUrl()}/llms-full.txt`;
max-width: 100%; max-width: 100%;
} }
.ai-banner a { .ai-banner a {
color: #B9B9FF; color: #3b82f6;
text-decoration: none; text-decoration: none;
font-weight: 600; font-weight: 600;
} }
.ai-banner a:hover { .ai-banner a:hover {
color: #fafafa;
text-decoration: underline; text-decoration: underline;
} }
.ai-banner a:focus-visible { .ai-banner a:focus-visible {
outline: 2px solid #B9B9FF; outline: 2px solid #3b82f6;
outline-offset: 2px; outline-offset: 2px;
border-radius: 2px; border-radius: 2px;
} }

View File

@ -1,14 +1,15 @@
/** /**
* BMAD Method Documentation - Custom Styles for Starlight * BMAD Method Documentation - Custom Styles for Starlight
* Electric Blue theme optimized for dark mode * Dark theme matching bmadcode.com Ghost blog
* *
* CSS Variable Mapping: * Design tokens from Ghost theme:
* Docusaurus Starlight * Background: #0a0a0a | Surface: #1a1a1a | Border: #262626
* --ifm-color-primary --sl-color-accent * Accent: #3b82f6 | Gold: #d4a853 | Text: #fafafa/#a1a1a1/#666666
* --ifm-background-color --sl-color-bg
* --ifm-font-color-base --sl-color-text
*/ */
/* Google Fonts - match Ghost blog typography */
@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');
/* ============================================ /* ============================================
COLOR PALETTE - Light Mode COLOR PALETTE - Light Mode
============================================ */ ============================================ */
@ -19,10 +20,10 @@
/* Full-width content - override Starlight's default 45rem/67.5rem */ /* Full-width content - override Starlight's default 45rem/67.5rem */
--sl-content-width: 65rem; --sl-content-width: 65rem;
/* Primary accent colors - purple to match Docusaurus */ /* Primary accent colors - blue to match Ghost blog */
--sl-color-accent-low: #e0e0ff; --sl-color-accent-low: #dbeafe;
--sl-color-accent: #5E5ED0; --sl-color-accent: #2563eb;
--sl-color-accent-high: #3333CC; --sl-color-accent-high: #1d4ed8;
/* Text colors */ /* Text colors */
--sl-color-white: #1e293b; --sl-color-white: #1e293b;
@ -35,13 +36,14 @@
--sl-color-black: #f8fafc; --sl-color-black: #f8fafc;
/* Font settings */ /* Font settings */
--sl-font: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', --sl-font: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
Arial, sans-serif; Arial, sans-serif;
--sl-font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, monospace;
--sl-text-base: 1rem; --sl-text-base: 1rem;
--sl-line-height: 1.7; --sl-line-height: 1.7;
/* Code highlighting */ /* Code highlighting */
--sl-color-bg-inline-code: rgba(94, 94, 208, 0.1); --sl-color-bg-inline-code: rgba(59, 130, 246, 0.08);
} }
/* ============================================ /* ============================================
@ -51,35 +53,49 @@
/* Full-width content - override Starlight's default */ /* Full-width content - override Starlight's default */
--sl-content-width: 65rem; --sl-content-width: 65rem;
/* Primary accent colors - purple to match Docusaurus */ /* Primary accent colors - blue to match Ghost blog */
--sl-color-accent-low: #2a2a5a; --sl-color-accent-low: rgba(59, 130, 246, 0.12);
--sl-color-accent: #8C8CFF; --sl-color-accent: #3b82f6;
--sl-color-accent-high: #B9B9FF; --sl-color-accent-high: #60a5fa;
/* Background colors */ /* Background colors - match Ghost blog */
--sl-color-bg: #1b1b1d; --sl-color-bg: #0a0a0a;
--sl-color-bg-nav: #1b1b1d; --sl-color-bg-nav: #0a0a0a;
--sl-color-bg-sidebar: #1b1b1d; --sl-color-bg-sidebar: #0a0a0a;
--sl-color-hairline-light: rgba(140, 140, 255, 0.1); --sl-color-hairline-light: rgba(255, 255, 255, 0.06);
--sl-color-hairline: rgba(140, 140, 255, 0.15); --sl-color-hairline: #262626;
/* Text colors */ /* Text colors - match Ghost blog */
--sl-color-white: #f8fafc; --sl-color-white: #fafafa;
--sl-color-gray-1: #e2e8f0; --sl-color-gray-1: #e2e8f0;
--sl-color-gray-2: #cbd5e1; --sl-color-gray-2: #a1a1a1;
--sl-color-gray-3: #94a3b8; --sl-color-gray-3: #94a3b8;
--sl-color-gray-4: #64748b; --sl-color-gray-4: #666666;
--sl-color-gray-5: #475569; --sl-color-gray-5: #475569;
--sl-color-gray-6: #334155; --sl-color-gray-6: #262626;
--sl-color-black: #1b1b1d; --sl-color-black: #0a0a0a;
/* Code highlighting */ /* Code highlighting */
--sl-color-bg-inline-code: rgba(140, 140, 255, 0.15); --sl-color-bg-inline-code: rgba(59, 130, 246, 0.15);
} }
/* ============================================ /* ============================================
TYPOGRAPHY TYPOGRAPHY
============================================ */ ============================================ */
/* Space Grotesk for all headings - match Ghost blog */
.sl-markdown-content h1,
.sl-markdown-content h2,
.sl-markdown-content h3,
.sl-markdown-content h4,
.sl-markdown-content h5,
.sl-markdown-content h6,
.site-title,
starlight-toc h2 {
font-family: 'Space Grotesk', 'Inter', system-ui, sans-serif;
letter-spacing: -0.02em;
}
.sl-markdown-content h1 { .sl-markdown-content h1 {
margin-bottom: 1.5rem; margin-bottom: 1.5rem;
} }
@ -138,14 +154,14 @@
/* Active state - thin left accent bar */ /* Active state - thin left accent bar */
.sidebar-content a[aria-current='page'] { .sidebar-content a[aria-current='page'] {
background-color: rgba(94, 94, 208, 0.08); background-color: rgba(59, 130, 246, 0.08);
color: var(--sl-color-accent); color: var(--sl-color-accent);
border-left-color: var(--sl-color-accent); border-left-color: var(--sl-color-accent);
font-weight: 600; font-weight: 600;
} }
:root[data-theme='dark'] .sidebar-content a[aria-current='page'] { :root[data-theme='dark'] .sidebar-content a[aria-current='page'] {
background-color: rgba(140, 140, 255, 0.1); background-color: rgba(59, 130, 246, 0.1);
color: var(--sl-color-accent-high); color: var(--sl-color-accent-high);
border-left-color: var(--sl-color-accent); border-left-color: var(--sl-color-accent);
} }
@ -232,7 +248,8 @@ header.header .header.sl-flex {
} }
:root[data-theme='dark'] header.header { :root[data-theme='dark'] header.header {
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); box-shadow: none;
border-bottom: 1px solid #262626;
} }
.site-title { .site-title {
@ -281,20 +298,20 @@ header.header .header.sl-flex {
.card:hover { .card:hover {
transform: translateY(-3px); transform: translateY(-3px);
border-color: var(--sl-color-accent); border-color: var(--sl-color-accent);
box-shadow: 0 8px 24px rgba(94, 94, 208, 0.15); box-shadow: 0 8px 24px rgba(59, 130, 246, 0.15);
} }
:root[data-theme='dark'] .card { :root[data-theme='dark'] .card {
background: linear-gradient(145deg, rgba(30, 41, 59, 0.6), rgba(15, 23, 42, 0.8)); background: #1a1a1a;
border-color: rgba(140, 140, 255, 0.2); border-color: #262626;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
} }
:root[data-theme='dark'] .card:hover { :root[data-theme='dark'] .card:hover {
border-color: rgba(140, 140, 255, 0.5); border-color: #3b82f6;
box-shadow: box-shadow:
0 8px 32px rgba(140, 140, 255, 0.2), 0 8px 32px rgba(59, 130, 246, 0.15),
0 0 0 1px rgba(140, 140, 255, 0.1); 0 0 0 1px rgba(59, 130, 246, 0.1);
} }
/* Starlight card grid */ /* Starlight card grid */
@ -313,11 +330,11 @@ header.header .header.sl-flex {
} }
:root[data-theme='dark'] .sl-link-card { :root[data-theme='dark'] .sl-link-card {
border-color: rgba(140, 140, 255, 0.2); border-color: #262626;
} }
:root[data-theme='dark'] .sl-link-card:hover { :root[data-theme='dark'] .sl-link-card:hover {
border-color: rgba(140, 140, 255, 0.5); border-color: #3b82f6;
} }
/* ============================================ /* ============================================
@ -372,21 +389,21 @@ table {
} }
:root[data-theme='dark'] table { :root[data-theme='dark'] table {
border-color: rgba(140, 140, 255, 0.1); border-color: #262626;
} }
:root[data-theme='dark'] table th { :root[data-theme='dark'] table th {
background-color: rgba(140, 140, 255, 0.05); background-color: rgba(59, 130, 246, 0.05);
} }
:root[data-theme='dark'] table tr:nth-child(2n) { :root[data-theme='dark'] table tr:nth-child(2n) {
background-color: rgba(140, 140, 255, 0.02); background-color: rgba(255, 255, 255, 0.02);
} }
/* Blockquotes */ /* Blockquotes */
blockquote { blockquote {
border-left-color: var(--sl-color-accent); border-left-color: var(--sl-color-accent);
background-color: rgba(94, 94, 208, 0.05); background-color: rgba(59, 130, 246, 0.05);
border-radius: 0 8px 8px 0; border-radius: 0 8px 8px 0;
padding: 1rem 1.25rem; padding: 1rem 1.25rem;
} }
@ -423,19 +440,19 @@ blockquote {
/* Note aside */ /* Note aside */
.starlight-aside--note { .starlight-aside--note {
background-color: rgba(94, 94, 208, 0.08); background-color: rgba(59, 130, 246, 0.08);
} }
.starlight-aside--note .starlight-aside__title { .starlight-aside--note .starlight-aside__title {
color: #5C5CCC; color: #2563eb;
} }
:root[data-theme='dark'] .starlight-aside--note { :root[data-theme='dark'] .starlight-aside--note {
background-color: rgba(140, 140, 255, 0.12); background-color: rgba(59, 130, 246, 0.12);
} }
:root[data-theme='dark'] .starlight-aside--note .starlight-aside__title { :root[data-theme='dark'] .starlight-aside--note .starlight-aside__title {
color: #8C8CFF; color: #3b82f6;
} }
/* Caution aside */ /* Caution aside */
@ -512,7 +529,7 @@ blockquote {
ROADMAP STYLES ROADMAP STYLES
============================================ */ ============================================ */
.roadmap-container { .roadmap-container {
--color-planned: #6366f1; --color-planned: #3b82f6;
--color-in-progress: #10b981; --color-in-progress: #10b981;
--color-exploring: #f59e0b; --color-exploring: #f59e0b;
--color-bg-card: rgba(255, 255, 255, 0.03); --color-bg-card: rgba(255, 255, 255, 0.03);
@ -663,8 +680,8 @@ blockquote {
} }
.roadmap-badge.planned { .roadmap-badge.planned {
background: rgba(99, 102, 241, 0.15); background: rgba(59, 130, 246, 0.15);
color: #6366f1; color: #3b82f6;
} }
.roadmap-badge.exploring { .roadmap-badge.exploring {
@ -735,7 +752,7 @@ blockquote {
.roadmap-future-card { .roadmap-future-card {
padding: 1.5rem; padding: 1.5rem;
border-radius: 12px; border-radius: 12px;
background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(245, 158, 11, 0.05)); background: linear-gradient(135deg, rgba(59, 130, 246, 0.08), rgba(212, 168, 83, 0.05));
border: 1px solid var(--color-border); border: 1px solid var(--color-border);
transition: transform 0.2s ease; transition: transform 0.2s ease;
display: flex; display: flex;