Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

163 linesCodeBlameRaw
1/* The launcher, in the site's colours (packages/theme/tokens.css): a very
2 dark gray and lavender, the mark centred, one short message. */
3:root {
4 --bg: #0f0f11;
5 --fg: #ededf0;
6 --muted: #9a9aa6;
7 --line: #26262c;
8 --surface: #17171b;
9 --accent: #b6a8ff;
10 --accent-ink: #15112e;
11 --error: #ff8a8a;
12 color-scheme: dark;
13}
14* {
15 box-sizing: border-box;
16}
17html,
18body {
19 height: 100%;
20 margin: 0;
21}
22body {
23 background: var(--bg);
24 color: var(--fg);
25 font:
26 15px/1.5 system-ui,
27 "Segoe UI",
28 Roboto,
29 "Helvetica Neue",
30 sans-serif;
31 -webkit-font-smoothing: antialiased;
32 display: grid;
33 place-items: center;
34 user-select: none;
35 cursor: default;
36}
37main {
38 width: min(26rem, calc(100vw - 2rem));
39 text-align: center;
40}
41.mark {
42 width: 72px;
43 height: 72px;
44 display: block;
45 margin: 0 auto 1.5rem;
46 border-radius: 16px;
47 box-shadow: 0 0 0 1px var(--line);
48}
49h1 {
50 font-size: 1.125rem;
51 font-weight: 600;
52 margin: 0 0 0.5rem;
53}
54p {
55 margin: 0 0 1rem;
56}
57.muted {
58 color: var(--muted);
59}
60.small {
61 font-size: 0.8125rem;
62}
63.error {
64 color: var(--error);
65 font-size: 0.875rem;
66 text-align: left;
67}
68.status {
69 display: inline-flex;
70 align-items: center;
71 gap: 0.625rem;
72 color: var(--muted);
73}
74.pulse {
75 width: 8px;
76 height: 8px;
77 border-radius: 50%;
78 background: var(--accent);
79 animation: pulse 1.4s ease-in-out infinite;
80}
81@keyframes pulse {
82 0%,
83 100% {
84 opacity: 0.35;
85 transform: scale(0.85);
86 }
87 50% {
88 opacity: 1;
89 transform: scale(1);
90 }
91}
92@media (prefers-reduced-motion: reduce) {
93 .pulse {
94 animation: none;
95 }
96}
97.row {
98 display: flex;
99 gap: 0.5rem;
100 justify-content: center;
101 flex-wrap: wrap;
102 margin-bottom: 1rem;
103}
104button {
105 font: inherit;
106 font-size: 0.875rem;
107 font-weight: 500;
108 padding: 0.5rem 0.875rem;
109 border-radius: 8px;
110 border: 1px solid var(--line);
111 background: var(--surface);
112 color: var(--fg);
113 cursor: default;
114}
115button:hover {
116 border-color: #3a3a44;
117}
118button:focus-visible,
119input:focus-visible {
120 outline: 2px solid var(--accent);
121 outline-offset: 2px;
122}
123button.primary {
124 background: var(--accent);
125 border-color: var(--accent);
126 color: var(--accent-ink);
127}
128button.primary:hover {
129 filter: brightness(1.06);
130}
131form {
132 text-align: left;
133}
134label {
135 display: block;
136 font-size: 0.8125rem;
137 color: var(--muted);
138 margin-bottom: 0.25rem;
139}
140input {
141 font: inherit;
142 width: 100%;
143 padding: 0.5rem 0.625rem;
144 border-radius: 8px;
145 border: 1px solid var(--line);
146 background: var(--surface);
147 color: var(--fg);
148 margin-bottom: 0.75rem;
149 user-select: text;
150}
151a {
152 color: var(--muted);
153 text-decoration: underline;
154 text-underline-offset: 3px;
155}
156a:hover {
157 color: var(--fg);
158}
159.version {
160 margin-top: 2.5rem;
161 margin-bottom: 0;
162 font-variant-numeric: tabular-nums;
163}