Skip to content
160 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Agents move along on private repositories too1---
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today2// The docs header: the wordmark, search in the middle and links on the
3// right, with the tabs that divide the docs beneath it.
4//
5// Its own layout, not Starlight's: Starlight lines the search up with the
6// page's text column, which moves when a page has an "On this page" list
7// and when it does not. Here the row is three columns, the outer two always
8// the same width, so the search sits at the header's centre on every page.
9import Search from '@astrojs/starlight/components/Search.astro';
docs.g1t.sh and status.g1t.sh follow your system's light or dark setting, and each has an Auto, Light and Dark switch that this browser remembers: the docs' in the header (at the foot of the menu on a phone), with code, search, the API reference and its explorer in both themes; the status page's in its header, chosen before anything is drawn; the workspaces guide says where.10// Auto, Light or Dark, kept in this browser; Auto follows the system.
11// On tablets and phones it is at the foot of the menu instead.
12import ThemeSelect from '@astrojs/starlight/components/ThemeSelect.astro';
Agents move along on private repositories too13
14import { TABS, tabFor } from '../tabs';
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today15import SiteTitle from './SiteTitle.astro';
16import SocialIcons from './SocialIcons.astro';
Agents move along on private repositories too17
18const current = tabFor(Astro.locals.starlightRoute.id);
19---
20
21<div class="g1t-header">
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today22 <div class="g1t-header-top">
23 <div class="g1t-header-title"><SiteTitle /></div>
24 <div class="g1t-header-search print:hidden"><Search /></div>
docs.g1t.sh and status.g1t.sh follow your system's light or dark setting, and each has an Auto, Light and Dark switch that this browser remembers: the docs' in the header (at the foot of the menu on a phone), with code, search, the API reference and its explorer in both themes; the status page's in its header, chosen before anything is drawn; the workspaces guide says where.25 <div class="g1t-header-links print:hidden">
26 <SocialIcons />
27 <div class="g1t-header-theme"><ThemeSelect /></div>
28 </div>
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today29 </div>
Agents move along on private repositories too30 <nav class="g1t-tabs" aria-label="Sections">
31 {
32 TABS.map((tab) => (
33 <a href={tab.href} aria-current={tab === current ? 'page' : undefined}>
34 {tab.label}
35 </a>
36 ))
37 }
38 </nav>
39</div>
40
41<style>
42 .g1t-header {
43 display: flex;
44 flex-direction: column;
45 height: 100%;
46 }
Mission control counts people's own changes as theirs; a shorter sidebar with setup under Settings, and a 56px top bar47 /* The same bar as the app's: 3.5rem, and a line under it. */
Agents move along on private repositories too48 .g1t-header-top {
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today49 /* Each side column is at least as wide as the widest thing that goes
50 in either, so the two stay equal and the search stays centred. */
51 --g1t-header-side: 13.5rem;
The docs' top bar is the app's: 4rem tall with a line under it, above the section tabs52 box-sizing: border-box;
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today53 display: grid;
54 grid-template-columns:
55 minmax(var(--g1t-header-side), 1fr)
56 minmax(0, 26rem)
57 minmax(var(--g1t-header-side), 1fr);
58 align-items: center;
59 gap: 1rem;
Mission control counts people's own changes as theirs; a shorter sidebar with setup under Settings, and a 56px top bar60 height: 3.5rem;
The docs' top bar is the app's: 4rem tall with a line under it, above the section tabs61 flex-shrink: 0;
Agents move along on private repositories too62 padding: 0 var(--sl-nav-pad-x);
The docs' top bar is the app's: 4rem tall with a line under it, above the section tabs63 border-bottom: 1px solid var(--g1t-line);
Agents move along on private repositories too64 }
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today65 .g1t-header-title {
66 display: flex;
67 min-width: 0;
68 /* Room for the link's focus ring. */
69 padding: 0.25rem;
70 margin: -0.25rem;
71 }
72 .g1t-header-search {
73 display: flex;
74 justify-content: center;
75 min-width: 0;
76 }
77 .g1t-header-links {
78 display: flex;
docs.g1t.sh and status.g1t.sh follow your system's light or dark setting, and each has an Auto, Light and Dark switch that this browser remembers: the docs' in the header (at the foot of the menu on a phone), with code, search, the API reference and its explorer in both themes; the status page's in its header, chosen before anything is drawn; the workspaces guide says where.79 align-items: center;
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today80 justify-content: flex-end;
docs.g1t.sh and status.g1t.sh follow your system's light or dark setting, and each has an Auto, Light and Dark switch that this browser remembers: the docs' in the header (at the foot of the menu on a phone), with code, search, the API reference and its explorer in both themes; the status page's in its header, chosen before anything is drawn; the workspaces guide says where.81 gap: 0.75rem;
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today82 min-width: 0;
83 }
docs.g1t.sh and status.g1t.sh follow your system's light or dark setting, and each has an Auto, Light and Dark switch that this browser remembers: the docs' in the header (at the foot of the menu on a phone), with code, search, the API reference and its explorer in both themes; the status page's in its header, chosen before anything is drawn; the workspaces guide says where.84 .g1t-header-theme {
85 display: flex;
86 align-items: center;
87 padding-inline-start: 0.75rem;
88 border-inline-start: 1px solid var(--g1t-line);
89 height: 1.25rem;
90 }
91 /* Desktop: the links and the theme select together are wider. On a
92 narrow desktop the select shows only its icon (styles/g1t.css), so the
93 search keeps its room. */
94 @media (min-width: 50rem) {
95 .g1t-header-top {
96 --g1t-header-side: 17.5rem;
97 }
98 }
99 @media (min-width: 64rem) {
100 .g1t-header-top {
101 --g1t-header-side: 21rem;
102 }
103 }
104 /* Tablets and phones: the theme select is at the foot of the menu. */
105 @media (max-width: 49.99rem) {
106 .g1t-header-theme {
107 display: none;
108 }
109 }
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today110 /* Tablets: the sidebar is a menu, and its button (fixed in place by
111 Starlight) takes the row's end. The right column makes room for it
112 inside itself, so the two columns stay equal and the search centred. */
Agents move along on private repositories too113 @media (max-width: 49.99rem) {
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today114 .g1t-header-top {
115 --g1t-header-side: 13rem;
116 }
117 :global([data-has-sidebar]) .g1t-header-links {
118 padding-inline-end: calc(var(--sl-menu-button-size) + 0.5rem);
Agents move along on private repositories too119 }
120 }
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today121 /* Phones: the wordmark on the left; search, the links and the menu
122 button together on the right. */
123 @media (max-width: 44.99rem) {
124 .g1t-header-top {
125 grid-template-columns: minmax(0, 1fr) auto auto;
126 gap: 0.25rem;
127 }
128 }
Agents move along on private repositories too129 .g1t-tabs {
130 display: flex;
131 gap: 1.5rem;
132 height: 2.75rem;
133 padding: 0 var(--sl-nav-pad-x);
134 overflow-x: auto;
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today135 overscroll-behavior-x: contain;
Agents move along on private repositories too136 scrollbar-width: none;
137 }
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today138 .g1t-tabs::-webkit-scrollbar {
139 display: none;
140 }
Agents move along on private repositories too141 .g1t-tabs a {
142 display: flex;
Merge site-audit: SEO routes, analytics with consent first in Europe, security page, founder and X account, docs header; the tour opens on the pull request and leads with Code, on the real shell, with Agents and Docs working today143 flex-shrink: 0;
Agents move along on private repositories too144 align-items: center;
145 border-bottom: 1.5px solid transparent;
146 font-size: 0.875rem;
147 font-weight: 500;
148 white-space: nowrap;
149 color: var(--g1t-muted);
150 text-decoration: none;
151 transition: color 0.15s;
152 }
153 .g1t-tabs a:hover {
154 color: var(--g1t-fg);
155 }
156 .g1t-tabs a[aria-current='page'] {
157 border-color: var(--g1t-fg);
158 color: var(--g1t-fg);
159 }
160</style>

This file's history is long; its oldest lines are credited to the oldest commit read.