diff options
| author | Jay V <[email protected]> | 2025-06-19 16:26:58 -0400 |
|---|---|---|
| committer | Jay V <[email protected]> | 2025-06-19 16:28:11 -0400 |
| commit | 44fe012812b4773c448621ec172e35d7cde07a4b (patch) | |
| tree | faa422722b3b81f6fccc2ffb370aa12737e9fd41 /packages/web/src/components/Header.astro | |
| parent | f5e7f079ea4cbbcffe9aace3c835ade6589ee410 (diff) | |
| download | opencode-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.astro | 78 |
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> + |
