flagon-io/g1t

public

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

g1t/apps/web/app/app.css

206 lines4,912 bytesCodeBlame
1@import "tailwindcss" source(".");
2@import "@g1t/theme/tokens.css";
3
4/* Tailwind's names for the shared g1t tokens. */
5@theme {
6 --font-sans: var(--g1t-font-sans);
7 --font-mono: var(--g1t-font-mono);
8
9 --color-bg: var(--g1t-bg);
10 --color-surface: var(--g1t-surface);
11 --color-raised: var(--g1t-raised);
12 --color-line: var(--g1t-line);
13 --color-line-strong: var(--g1t-line-strong);
14
15 --color-fg: var(--g1t-fg);
16 --color-fg-soft: var(--g1t-fg-soft);
17 --color-muted: var(--g1t-muted);
18 --color-faint: var(--g1t-faint);
19
20 --color-accent: var(--g1t-accent);
21 --color-accent-dim: var(--g1t-accent-dim);
22
23 --color-info: var(--g1t-info);
24 --color-merged: var(--g1t-merged);
25 --color-warn: var(--g1t-warn);
26 --color-danger: var(--g1t-danger);
27
28 --animate-fade-up: fade-up 0.6s ease-out both;
29 --animate-dash: dash 1.2s linear infinite;
30}
31
32@keyframes fade-up {
33 from {
34 opacity: 0;
35 transform: translateY(8px);
36 }
37}
38
39@keyframes dash {
40 to {
41 stroke-dashoffset: -16;
42 }
43}
44
45html {
46 color-scheme: dark;
47 scroll-behavior: smooth;
48}
49
50body {
51 @apply bg-bg font-sans text-fg antialiased;
52 font-feature-settings: "cv11", "ss01";
53}
54
55::selection {
56 background: color-mix(in srgb, var(--color-accent) 35%, transparent);
57}
58
59/* In the base layer, so a component can opt out with a utility. */
60@layer base {
61 :focus-visible {
62 outline: 2px solid var(--color-accent);
63 outline-offset: 2px;
64 }
65}
66
67@media (prefers-reduced-motion: reduce) {
68 *,
69 *::before,
70 *::after {
71 animation: none !important;
72 scroll-behavior: auto !important;
73 }
74}
75
76/* Rendered markdown: READMEs, briefs and docs. */
77.prose > :first-child {
78 margin-top: 0;
79 padding-top: 0;
80}
81.prose {
82 @apply leading-7 text-fg;
83}
84.prose > * + * {
85 @apply mt-4;
86}
87.prose h1 {
88 @apply mt-0 text-3xl font-semibold tracking-tight;
89}
90.prose h2 {
91 @apply mt-10 border-b border-line pb-2 text-xl font-semibold tracking-tight;
92}
93.prose h3 {
94 @apply mt-8 text-base font-semibold;
95}
96.prose p,
97.prose li {
98 @apply text-[0.9375rem] text-fg/90;
99}
100.prose a {
101 @apply text-accent underline decoration-accent/40 underline-offset-4 hover:decoration-accent;
102}
103.prose ul {
104 @apply list-disc space-y-1.5 pl-6;
105}
106.prose ol {
107 @apply list-decimal space-y-1.5 pl-6;
108}
109.prose code {
110 @apply rounded bg-raised px-1.5 py-0.5 font-mono text-[0.85em];
111}
112.prose pre {
113 @apply overflow-x-auto rounded-lg border border-line bg-surface p-4 font-mono text-sm leading-6;
114}
115.prose pre code {
116 @apply bg-transparent p-0;
117}
118.prose blockquote {
119 @apply border-l-2 border-line-strong pl-4 text-muted;
120}
121.prose table {
122 @apply w-full border-collapse text-sm;
123}
124.prose th {
125 @apply border-b border-line-strong px-3 py-2 text-left font-medium text-muted;
126}
127.prose td {
128 @apply border-b border-line px-3 py-2 align-top;
129}
130.prose hr {
131 @apply border-line;
132}
133.prose h4 {
134 @apply mt-6 text-sm font-semibold;
135}
136.prose li.task-list-item {
137 @apply list-none;
138}
139.prose ul.contains-task-list {
140 @apply pl-1;
141}
142.prose kbd {
143 @apply rounded border border-line-strong bg-raised px-1.5 py-px font-mono text-[0.8em] shadow-[inset_0_-1px_0_var(--color-line-strong)];
144}
145.prose del {
146 @apply text-muted;
147}
148.prose details {
149 @apply rounded-lg border border-line px-4 py-2;
150}
151.prose summary {
152 @apply cursor-pointer font-medium;
153}
154.prose img {
155 @apply inline max-w-full;
156}
157.prose section[data-footnotes] {
158 @apply mt-10 border-t border-line pt-4 text-sm text-muted;
159}
160.prose a[data-footnote-ref] {
161 @apply no-underline;
162}
163
164/* Syntax-highlighted code from Shiki. */
165.shiki {
166 @apply bg-transparent! font-mono text-sm leading-6;
167}
168.shiki code {
169 counter-reset: line;
170 display: block;
171}
172.shiki .line::before {
173 counter-increment: line;
174 content: counter(line);
175 @apply mr-5 inline-block w-10 text-right text-faint select-none;
176}
177
178/* Artwork: dashes that flow along a track. */
179.art-flow {
180 animation: dash 1.6s linear infinite;
181}
182@media (prefers-reduced-motion: reduce) {
183 .art-flow {
184 animation: none;
185 }
186}
187
188/*
189 * Behind the landing page's opening: the same dark gray, with a faint
190 * lavender and peach glow low on the horizon and a few stars.
191 */
192.dusk {
193 background:
194 radial-gradient(1px 1px at 12% 18%, rgb(255 255 255 / 0.35), transparent),
195 radial-gradient(1px 1px at 27% 8%, rgb(255 255 255 / 0.25), transparent),
196 radial-gradient(1px 1px at 63% 12%, rgb(255 255 255 / 0.3), transparent),
197 radial-gradient(1.5px 1.5px at 90% 9%, rgb(255 255 255 / 0.35), transparent),
198 radial-gradient(60% 35% at 50% 100%, rgb(255 189 140 / 0.08), transparent 70%),
199 radial-gradient(80% 45% at 50% 100%, rgb(182 168 255 / 0.1), transparent 75%),
200 var(--color-bg);
201}
202/* A planet rising behind the horizon, its lit edge catching the glow. */
203.dusk-planet {
204 background: radial-gradient(circle at 70% 30%, rgb(182 168 255 / 0.12), rgb(255 189 140 / 0.04) 45%, transparent 70%);
205 box-shadow: inset 14px -8px 50px rgb(255 214 186 / 0.07);
206}