summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src
diff options
context:
space:
mode:
authorJay V <[email protected]>2025-09-03 17:12:51 -0700
committerJay V <[email protected]>2025-09-03 17:12:51 -0700
commit21008d733f896a8b960f4407f320720201e5f6ff (patch)
tree96d6c6f84ec3ff92cf932fd01811b5a5ef9c8423 /packages/web/src
parent2808e95ac7fca02d3d9fb632a3ad361a5d3bf7b3 (diff)
downloadopencode-21008d733f896a8b960f4407f320720201e5f6ff.tar.gz
opencode-21008d733f896a8b960f4407f320720201e5f6ff.zip
docs: link
Diffstat (limited to 'packages/web/src')
-rw-r--r--packages/web/src/components/SiteTitle.astro59
1 files changed, 59 insertions, 0 deletions
diff --git a/packages/web/src/components/SiteTitle.astro b/packages/web/src/components/SiteTitle.astro
new file mode 100644
index 000000000..28a30cb23
--- /dev/null
+++ b/packages/web/src/components/SiteTitle.astro
@@ -0,0 +1,59 @@
+---
+import { logos } from 'virtual:starlight/user-images';
+import config from 'virtual:starlight/user-config';
+const { siteTitle, siteTitleHref } = Astro.locals.starlightRoute;
+---
+
+<a href="/" class="site-title sl-flex">
+ {
+ config.logo && logos.dark && (
+ <>
+ <img
+ class:list={{ 'light:sl-hidden print:hidden': !('src' in config.logo) }}
+ alt={config.logo.alt}
+ src={logos.dark.src}
+ width={logos.dark.width}
+ height={logos.dark.height}
+ />
+ {/* Show light alternate if a user configure both light and dark logos. */}
+ {!('src' in config.logo) && (
+ <img
+ class="dark:sl-hidden print:block"
+ alt={config.logo.alt}
+ src={logos.light?.src}
+ width={logos.light?.width}
+ height={logos.light?.height}
+ />
+ )}
+ </>
+ )
+ }
+ <span class:list={{ 'sr-only': config.logo?.replacesTitle }} translate="no">
+ {siteTitle}
+ </span>
+</a>
+
+<style>
+ @layer starlight.core {
+ .site-title {
+ align-items: center;
+ gap: var(--sl-nav-gap);
+ font-size: var(--sl-text-h4);
+ font-weight: 600;
+ color: var(--sl-color-text-accent);
+ text-decoration: none;
+ white-space: nowrap;
+ min-width: 0;
+ }
+ span {
+ overflow: hidden;
+ }
+ img {
+ height: calc(var(--sl-nav-height) - 2 * var(--sl-nav-pad-y));
+ width: auto;
+ max-width: 100%;
+ object-fit: contain;
+ object-position: 0 50%;
+ }
+ }
+</style>