summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/components/Header.astro
diff options
context:
space:
mode:
authorJay V <[email protected]>2025-06-19 16:26:58 -0400
committerJay V <[email protected]>2025-06-19 16:28:11 -0400
commit44fe012812b4773c448621ec172e35d7cde07a4b (patch)
treefaa422722b3b81f6fccc2ffb370aa12737e9fd41 /packages/web/src/components/Header.astro
parentf5e7f079ea4cbbcffe9aace3c835ade6589ee410 (diff)
downloadopencode-44fe012812b4773c448621ec172e35d7cde07a4b.tar.gz
opencode-44fe012812b4773c448621ec172e35d7cde07a4b.zip
docs: edits
Diffstat (limited to 'packages/web/src/components/Header.astro')
-rw-r--r--packages/web/src/components/Header.astro78
1 files changed, 69 insertions, 9 deletions
diff --git a/packages/web/src/components/Header.astro b/packages/web/src/components/Header.astro
index b3e393826..42c8e2f02 100644
--- a/packages/web/src/components/Header.astro
+++ b/packages/web/src/components/Header.astro
@@ -3,6 +3,7 @@ import config from 'virtual:starlight/user-config';
import { Icon } from '@astrojs/starlight/components';
import { HeaderLinks } from 'toolbeam-docs-theme/components';
import Default from 'toolbeam-docs-theme/overrides/Header.astro';
+import SocialIcons from 'virtual:starlight/components/SocialIcons';
import SiteTitle from '@astrojs/starlight/components/SiteTitle.astro';
const path = Astro.url.pathname;
@@ -11,19 +12,32 @@ const links = config.social || [];
---
{ path.startsWith("/s")
- ? <div class="header sl-flex">
- <div class="title-wrapper sl-flex">
- <SiteTitle {...Astro.props} />
- </div>
- <div class="middle-group sl-flex">
- <HeaderLinks {...Astro.props} />
- </div>
- </div>
+? <div class="header sl-flex">
+ <div class="title-wrapper sl-flex">
+ <SiteTitle {...Astro.props} />
+ </div>
+ <div class="middle-group sl-flex">
+ <HeaderLinks {...Astro.props} />
+ </div>
+ <div class="sl-hidden md:sl-flex right-group">
+ {
+ links.length > 0 && (
+ <div class="sl-flex social-icons">
+ {links.map(({ href, icon }) => (
+ <a {href} rel="me" target="_blank">
+ <Icon name={icon} size="1rem" />
+ </a>
+ ))}
+ </div>
+ )
+ }
+ </div>
+</div>
: <Default {...Astro.props}><slot /></Default>
}
-
<style>
.header {
+ gap: var(--sl-nav-gap);
justify-content: space-between;
align-items: center;
height: 100%;
@@ -53,4 +67,50 @@ const links = config.social || [];
display: flex;
}
}
+
+ .right-group,
+ .social-icons {
+ gap: 1rem;
+ align-items: center;
+
+ a {
+ line-height: 1;
+
+ svg {
+ color: var(--sl-color-text-dimmed);
+ }
+ }
+ }
+
+ @media (min-width: 50rem) {
+ :global(:root[data-has-sidebar]) {
+ --__sidebar-pad: calc(2 * var(--sl-nav-pad-x));
+ }
+ :global(:root:not([data-has-toc])) {
+ --__toc-width: 0rem;
+ }
+ .header {
+ --__sidebar-width: max(0rem, var(--sl-content-inline-start, 0rem) - var(--sl-nav-pad-x));
+ --__main-column-fr: calc(
+ (
+ 100% + var(--__sidebar-pad, 0rem) - var(--__toc-width, var(--sl-sidebar-width)) -
+ (2 * var(--__toc-width, var(--sl-nav-pad-x))) - var(--sl-content-inline-start, 0rem) -
+ var(--sl-content-width)
+ ) / 2
+ );
+ display: grid;
+ grid-template-columns:
+ /* 1 (site title): runs up until the main content column’s left edge or the width of the title, whichever is the largest */
+ minmax(
+ calc(var(--__sidebar-width) + max(0rem, var(--__main-column-fr) - var(--sl-nav-gap))),
+ auto
+ )
+ /* 2 (search box): all free space that is available. */
+ 1fr
+ /* 3 (right items): use the space that these need. */
+ auto;
+ align-content: center;
+ }
+ }
</style>
+