feat(brand): use real AnHonestHost wordmark + chevron logo

- Pulled the real inline SVG from anhonesthost.com (chevrons + wordmark
  with 'Host' in teal #00d4aa)
- Override Starlight's SiteTitle component so the SVG is inlined rather
  than loaded as <img>, letting currentColor follow the active theme
- Hub page header uses the same wordmark
- 'Knowledge Base' label sits to the right of the brand mark, hidden on
  narrow viewports
This commit is contained in:
2026-05-17 16:36:46 -07:00
parent 16e14019b7
commit af94b72777
4 changed files with 89 additions and 12 deletions

View File

@@ -20,9 +20,10 @@ export default defineConfig({
starlight({ starlight({
title: 'AnHonestHost KB', title: 'AnHonestHost KB',
description: 'Customer documentation for WHP and other AnHonestHost services.', description: 'Customer documentation for WHP and other AnHonestHost services.',
logo: { components: {
src: './src/assets/logo.svg', // Inline-SVG brand mark + "Knowledge Base" label.
replacesTitle: false, // Inlining lets the SVG's currentColor follow the active theme.
SiteTitle: './src/components/SiteTitle.astro',
}, },
customCss: [ customCss: [
'@fontsource-variable/inter', '@fontsource-variable/inter',

View File

@@ -1,4 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 32" width="120" height="32"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 32" fill="none" height="32" role="img" aria-label="AnHonestHost Knowledge Base">
<text x="0" y="22" font-family="Inter,system-ui,sans-serif" font-size="20" font-weight="700" fill="#00d4aa">AHH</text> <path d="M12 4L3 16L12 28" stroke="#00d4aa" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<text x="50" y="22" font-family="Inter,system-ui,sans-serif" font-size="20" font-weight="400" fill="currentColor">KB</text> <path d="M24 4L33 16L24 28" stroke="#00d4aa" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<line x1="12" y1="16" x2="24" y2="16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" opacity="0.35"/>
<text x="44" y="21" font-family="Inter, system-ui, -apple-system, sans-serif" font-size="18" font-weight="800" fill="currentColor" letter-spacing="-0.5">AnHonest<tspan fill="#00d4aa">Host</tspan></text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 700 B

View File

@@ -0,0 +1,49 @@
---
const { siteTitleHref } = Astro.locals.starlightRoute;
---
<a href={siteTitleHref} class="site-title sl-flex" translate="no" aria-label="AnHonestHost Knowledge Base">
<svg
class="brand-logo"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 240 32"
fill="none"
height="28"
role="img"
aria-hidden="true"
>
<path d="M12 4L3 16L12 28" stroke="#00d4aa" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M24 4L33 16L24 28" stroke="#00d4aa" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<line x1="12" y1="16" x2="24" y2="16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" opacity="0.35"/>
<text x="44" y="21" font-family="Inter, system-ui, -apple-system, sans-serif" font-size="18" font-weight="800" fill="currentColor" letter-spacing="-0.5">AnHonest<tspan fill="#00d4aa">Host</tspan></text>
</svg>
<span class="kb-label">Knowledge Base</span>
</a>
<style>
.site-title {
align-items: center;
gap: 0.75rem;
text-decoration: none;
white-space: nowrap;
min-width: 0;
color: var(--sl-color-text);
}
.brand-logo {
height: calc(var(--sl-nav-height) - 2 * var(--sl-nav-pad-y));
width: auto;
}
.kb-label {
font-size: 0.875rem;
font-weight: 500;
color: var(--anhh-text-secondary, #94a3b8);
padding-left: 0.75rem;
border-left: 1px solid var(--anhh-border-color, #334155);
line-height: 1;
}
@media (max-width: 50em) {
.kb-label {
display: none;
}
}
</style>

View File

@@ -75,11 +75,26 @@ const visibleProducts: Product[] = Array.from(byProduct.entries())
} }
header, header,
footer { footer {
padding: 1.5rem 2rem; padding: 1.25rem 2rem;
} }
header { header {
border-bottom: 1px solid var(--anhh-border-color, #334155); border-bottom: 1px solid var(--anhh-border-color, #334155);
} }
a.brand {
display: inline-flex;
align-items: center;
gap: 0.75rem;
color: inherit;
text-decoration: none;
}
.kb-label {
font-size: 0.875rem;
font-weight: 500;
color: var(--anhh-text-secondary, #94a3b8);
padding-left: 0.75rem;
border-left: 1px solid var(--anhh-border-color, #334155);
line-height: 1;
}
footer { footer {
border-top: 1px solid var(--anhh-border-color, #334155); border-top: 1px solid var(--anhh-border-color, #334155);
font-size: 0.875rem; font-size: 0.875rem;
@@ -152,7 +167,17 @@ const visibleProducts: Product[] = Array.from(byProduct.entries())
</style> </style>
</head> </head>
<body> <body>
<header><strong>An Honest Host</strong> · Knowledge Base</header> <header>
<a href="/" class="brand" aria-label="AnHonestHost">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 32" fill="none" height="28" role="img">
<path d="M12 4L3 16L12 28" stroke="#00d4aa" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M24 4L33 16L24 28" stroke="#00d4aa" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<line x1="12" y1="16" x2="24" y2="16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" opacity="0.35"/>
<text x="44" y="21" font-family="Inter, system-ui, -apple-system, sans-serif" font-size="18" font-weight="800" fill="currentColor" letter-spacing="-0.5">AnHonest<tspan fill="#00d4aa">Host</tspan></text>
</svg>
<span class="kb-label">Knowledge Base</span>
</a>
</header>
<main> <main>
<h1>Knowledge Base</h1> <h1>Knowledge Base</h1>
<p class="lede">Pick a product to get started.</p> <p class="lede">Pick a product to get started.</p>