This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / web / src / app.css
13 kB 357 lines
1@import "tailwindcss"; 2@import "./markup.css"; 3 4@theme { 5 --font-sans: "InterVariable", "system-ui", sans-serif, ui-sans-serif; 6 --font-mono: 7 "IBMPlexMono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", 8 "Courier New", monospace; 9 10 /* ========================================================================= 11 Semantic color tokens — synced from Figma "Design System" › semantic colors 12 Names mirror the Figma variables verbatim (`/` → `-`). Light-mode values 13 here; dark-mode overrides live in the prefers-color-scheme block below. 14 ========================================================================= */ 15 16 /* --- background --- */ 17 --color-background-default: #ffffff; 18 --color-background-subtle: #f9fafb; 19 --color-background-inset: #f3f4f6; 20 --color-background-muted: #e5e7eb; 21 --color-background-canvas: #f3f4f6; 22 --color-background-highlight: #fef08a; 23 --color-background-success-subtle: #dcfce7; 24 --color-background-success-subtle-hover: #bbf7d0; 25 --color-background-success-emphasis: #16a34a; 26 --color-background-success-emphasis-hover: #15803d; 27 --color-background-danger-subtle: #ffe2e2; 28 --color-background-danger-subtle-hover: #fecaca; 29 --color-background-danger-emphasis: #fca5a5; 30 --color-background-danger-emphasis-hover: #f87171; 31 --color-background-warning-subtle: #fffbeb; 32 --color-background-warning-subtle-hover: #fef3c7; 33 --color-background-warning-emphasis: #f59e0b; 34 --color-background-info-subtle: #eef2ff; 35 --color-background-info-subtle-hover: #e0e7ff; 36 --color-background-info-emphasis: #4f46e5; 37 --color-background-neutral-emphasis: #1f2937; 38 39 /* --- foreground --- */ 40 --color-foreground-default: #111827; 41 --color-foreground-muted: #4b5563; 42 --color-foreground-subtle: #6b7280; 43 --color-foreground-placeholder: #9ca3af; 44 --color-foreground-disabled: #d1d5db; 45 --color-foreground-on-emphasis: #ffffff; 46 --color-foreground-highlight: #854d0e; 47 --color-foreground-success: #16a34a; 48 --color-foreground-success-strong: #166534; 49 --color-foreground-success-disabled: #16a34a80; 50 --color-foreground-danger: #dc2626; 51 --color-foreground-danger-strong: #991b1b; 52 --color-foreground-danger-subtle: #f87171; 53 --color-foreground-warning: #d97706; 54 --color-foreground-warning-strong: #92400e; 55 --color-foreground-info: #4338ca; 56 --color-foreground-info-strong: #3730a3; 57 --color-foreground-link-default: #111827; 58 --color-foreground-link-hover: #374151; 59 --color-foreground-link-disabled: #9ca3af; 60 --color-foreground-link-danger: #dc2626; 61 --color-foreground-link-danger-hover: #ef4444; 62 --color-foreground-link-success: #16a34a; 63 --color-foreground-link-success-hover: #22c55e; 64 --color-foreground-link-warning: #d97706; 65 --color-foreground-link-warning-hover: #f59e0b; 66 --color-foreground-link-info: #4f46e5; 67 --color-foreground-link-info-hover: #6366f1; 68 69 /* --- border --- */ 70 --color-border-default: #e5e7eb; 71 --color-border-subtle: #f3f4f6; 72 --color-border-strong: #d1d5db; 73 --color-border-disabled: #e5e7eb; 74 --color-border-focus: #9ca3af; 75 --color-border-focus-success: #22c55e; 76 --color-border-focus-danger: #ef4444; 77 --color-border-success: #15803d; 78 --color-border-danger: #fca5a5; 79 --color-border-danger-subtle: #fecaca; 80 81 /* --- shadow (inner depth) --- */ 82 --color-shadow-inner-strong: #d1d5db; 83 --color-shadow-inner-strong-hover: #d1d5db; 84 --color-shadow-inner-subtle: #e5e7eb; 85 86 --shadow-menu: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); 87 88 /* --- alpha --- */ 89 --color-alpha-light-5: color-mix(in srgb, var(--color-background-default) 5%, transparent); 90 --color-alpha-light-10: color-mix(in srgb, var(--color-background-default) 10%, transparent); 91 --color-alpha-light-15: color-mix(in srgb, var(--color-background-default) 15%, transparent); 92 --color-alpha-light-20: color-mix(in srgb, var(--color-background-default) 20%, transparent); 93 --color-alpha-light-25: color-mix(in srgb, var(--color-background-default) 25%, transparent); 94 --color-alpha-light-30: color-mix(in srgb, var(--color-background-default) 30%, transparent); 95 --color-alpha-light-35: color-mix(in srgb, var(--color-background-default) 35%, transparent); 96 --color-alpha-light-40: color-mix(in srgb, var(--color-background-default) 40%, transparent); 97 --color-alpha-light-45: color-mix(in srgb, var(--color-background-default) 45%, transparent); 98 --color-alpha-light-50: color-mix(in srgb, var(--color-background-default) 50%, transparent); 99 --color-alpha-light-55: color-mix(in srgb, var(--color-background-default) 55%, transparent); 100 --color-alpha-light-60: color-mix(in srgb, var(--color-background-default) 60%, transparent); 101 --color-alpha-light-65: color-mix(in srgb, var(--color-background-default) 65%, transparent); 102 --color-alpha-light-70: color-mix(in srgb, var(--color-background-default) 70%, transparent); 103 --color-alpha-light-75: color-mix(in srgb, var(--color-background-default) 75%, transparent); 104 --color-alpha-light-80: color-mix(in srgb, var(--color-background-default) 80%, transparent); 105 --color-alpha-light-85: color-mix(in srgb, var(--color-background-default) 85%, transparent); 106 --color-alpha-light-90: color-mix(in srgb, var(--color-background-default) 90%, transparent); 107 --color-alpha-light-95: color-mix(in srgb, var(--color-background-default) 95%, transparent); 108 109 --color-alpha-dark-5: color-mix(in srgb, var(--color-foreground-default) 5%, transparent); 110 --color-alpha-dark-10: color-mix(in srgb, var(--color-foreground-default) 10%, transparent); 111 --color-alpha-dark-15: color-mix(in srgb, var(--color-foreground-default) 15%, transparent); 112 --color-alpha-dark-20: color-mix(in srgb, var(--color-foreground-default) 20%, transparent); 113 --color-alpha-dark-25: color-mix(in srgb, var(--color-foreground-default) 25%, transparent); 114 --color-alpha-dark-30: color-mix(in srgb, var(--color-foreground-default) 30%, transparent); 115 --color-alpha-dark-35: color-mix(in srgb, var(--color-foreground-default) 35%, transparent); 116 --color-alpha-dark-40: color-mix(in srgb, var(--color-foreground-default) 40%, transparent); 117 --color-alpha-dark-45: color-mix(in srgb, var(--color-foreground-default) 45%, transparent); 118 --color-alpha-dark-50: color-mix(in srgb, var(--color-foreground-default) 50%, transparent); 119 --color-alpha-dark-55: color-mix(in srgb, var(--color-foreground-default) 55%, transparent); 120 --color-alpha-dark-60: color-mix(in srgb, var(--color-foreground-default) 60%, transparent); 121 --color-alpha-dark-65: color-mix(in srgb, var(--color-foreground-default) 65%, transparent); 122 --color-alpha-dark-70: color-mix(in srgb, var(--color-foreground-default) 70%, transparent); 123 --color-alpha-dark-75: color-mix(in srgb, var(--color-foreground-default) 75%, transparent); 124 --color-alpha-dark-80: color-mix(in srgb, var(--color-foreground-default) 80%, transparent); 125 --color-alpha-dark-85: color-mix(in srgb, var(--color-foreground-default) 85%, transparent); 126 --color-alpha-dark-90: color-mix(in srgb, var(--color-foreground-default) 90%, transparent); 127 --color-alpha-dark-95: color-mix(in srgb, var(--color-foreground-default) 95%, transparent); 128} 129 130/* ============================================================================= 131 Type scale — synced from Figma "Font Styles" (node 1:186) 132 133 These are `typography-*` utilities rather than `--text-*` theme tokens on 134 purpose: named `text-heading-3` & co. they collided with `text-<colour>` in 135 tailwind-merge, which classes them as colours and drops the size as soon as a 136 colour follows. Declare `font-size` first in each block — Tailwind sorts a 137 custom utility by its first property, and that is what keeps an explicit 138 `font-medium`/`font-bold` winning over the weight baked in here. 139 ============================================================================= */ 140 141@utility typography-heading-0 { 142 font-size: 5rem; 143 line-height: 5rem; 144 font-weight: 600; 145 letter-spacing: -0.25px; 146} 147 148@utility typography-heading-1 { 149 font-size: 3rem; 150 line-height: 3.5rem; 151 font-weight: 500; 152} 153 154@utility typography-heading-2 { 155 font-size: 1.875rem; 156 line-height: 1.875rem; 157 font-weight: 600; 158} 159 160@utility typography-heading-3 { 161 font-size: 1.5rem; 162 line-height: 1.875rem; 163 font-weight: 500; 164} 165 166@utility typography-heading-4 { 167 font-size: 1.25rem; 168 line-height: 1.75rem; 169 font-weight: 500; 170} 171 172@utility typography-paragraph-large { 173 font-size: 1rem; 174 line-height: 1.6875rem; 175} 176 177@utility typography-paragraph-regular { 178 font-size: 0.875rem; 179 line-height: 1.5rem; 180} 181 182@utility typography-paragraph-small { 183 font-size: 0.75rem; 184 line-height: 1.25rem; 185} 186 187@utility typography-paragraph-mini { 188 font-size: 0.625rem; 189 line-height: 1rem; 190} 191 192@utility typography-monospace-large { 193 font-size: 1rem; 194 line-height: 1.5rem; 195} 196 197@utility typography-monospace-regular { 198 font-size: 0.875rem; 199 line-height: 1.375rem; 200} 201 202@utility typography-monospace-small { 203 font-size: 0.75rem; 204 line-height: 1.25rem; 205} 206 207@layer base { 208 @font-face { 209 font-family: "InterVariable"; 210 src: url("/fonts/InterVariable.woff2") format("woff2-variations"); 211 font-weight: 100 600; 212 font-style: normal; 213 font-display: swap; 214 } 215 216 @font-face { 217 font-family: "InterVariable"; 218 src: url("/fonts/InterVariable-Italic.woff2") format("woff2-variations"); 219 font-weight: 100 600; 220 font-style: italic; 221 font-display: swap; 222 } 223 224 @font-face { 225 font-family: "InterVariable"; 226 src: url("/fonts/InterDisplay-Bold.woff2") format("woff2"); 227 font-weight: bold; 228 font-style: normal; 229 font-display: swap; 230 } 231 232 @font-face { 233 font-family: "InterVariable"; 234 src: url("/fonts/InterDisplay-BoldItalic.woff2") format("woff2"); 235 font-weight: bold; 236 font-style: italic; 237 font-display: swap; 238 } 239 240 @font-face { 241 font-family: "IBMPlexMono"; 242 src: url("/fonts/IBMPlexMono-Regular.woff2") format("woff2"); 243 font-weight: normal; 244 font-style: normal; 245 font-display: swap; 246 } 247 248 @font-face { 249 font-family: "IBMPlexMono"; 250 src: url("/fonts/IBMPlexMono-Italic.woff2") format("woff2"); 251 font-weight: normal; 252 font-style: italic; 253 font-display: swap; 254 } 255 256 @font-face { 257 font-family: "IBMPlexMono"; 258 src: url("/fonts/IBMPlexMono-Bold.woff2") format("woff2"); 259 font-weight: bold; 260 font-style: normal; 261 font-display: swap; 262 } 263 264 @font-face { 265 font-family: "IBMPlexMono"; 266 src: url("/fonts/IBMPlexMono-BoldItalic.woff2") format("woff2"); 267 font-weight: bold; 268 font-style: italic; 269 font-display: swap; 270 } 271 272 html { 273 font-size: 16px; 274 scrollbar-gutter: stable; 275 } 276 277 @media (prefers-color-scheme: dark) { 278 :root { 279 /* --- background (Dark) --- */ 280 --color-background-default: #1f2937; 281 --color-background-subtle: #374151; 282 --color-background-inset: #374151; 283 --color-background-muted: #4b5563; 284 --color-background-canvas: #111827; 285 --color-background-highlight: #713f12; 286 --color-background-success-subtle: #14532d; 287 --color-background-success-subtle-hover: #166534; 288 --color-background-success-emphasis: #15803d; 289 --color-background-success-emphasis-hover: #166534; 290 --color-background-danger-subtle: #7f1d1d; 291 --color-background-danger-subtle-hover: #991b1b; 292 --color-background-danger-emphasis: #b91c1c; 293 --color-background-danger-emphasis-hover: #991b1b; 294 --color-background-warning-subtle: #78350f; 295 --color-background-warning-subtle-hover: #92400e; 296 --color-background-warning-emphasis: #d97706; 297 --color-background-info-subtle: #312e81; 298 --color-background-info-subtle-hover: #3730a3; 299 --color-background-info-emphasis: #4f46e5; 300 --color-background-neutral-emphasis: #374151; 301 302 /* --- foreground (Dark) --- */ 303 --color-foreground-default: #f3f4f6; 304 --color-foreground-muted: #9ca3af; 305 --color-foreground-subtle: #6b7280; 306 --color-foreground-placeholder: #9ca3af; 307 --color-foreground-disabled: #6b7280; 308 --color-foreground-on-emphasis: #ffffff; 309 --color-foreground-highlight: #fef08a; 310 --color-foreground-success: #4ade80; 311 --color-foreground-success-strong: #bbf7d0; 312 --color-foreground-success-disabled: #15803d; 313 --color-foreground-danger: #f87171; 314 --color-foreground-danger-strong: #fecaca; 315 --color-foreground-warning: #fbbf24; 316 --color-foreground-warning-strong: #fde68a; 317 --color-foreground-info: #818cf8; 318 --color-foreground-info-strong: #c7d2fe; 319 --color-foreground-link-default: #f3f4f6; 320 --color-foreground-link-hover: #d1d5db; 321 --color-foreground-link-disabled: #6b7280; 322 --color-foreground-link-danger: #ef4444; 323 --color-foreground-link-danger-hover: #f87171; 324 --color-foreground-link-success: #22c55e; 325 --color-foreground-link-success-hover: #4ade80; 326 --color-foreground-link-warning: #f59e0b; 327 --color-foreground-link-warning-hover: #fbbf24; 328 --color-foreground-link-info: #6366f1; 329 --color-foreground-link-info-hover: #818cf8; 330 331 /* --- border (Dark) --- */ 332 --color-border-default: #374151; 333 --color-border-subtle: #1f2937; 334 --color-border-strong: #6b7280; 335 --color-border-disabled: #4b5563; 336 --color-border-focus: #d1d5db; 337 --color-border-focus-success: #22c55e; 338 --color-border-focus-danger: #ef4444; 339 --color-border-success: #15803d; 340 --color-border-danger: #991b1b; 341 342 /* --- shadow (Dark) --- */ 343 --color-shadow-inner-strong: #030712; 344 --color-shadow-inner-strong-hover: #1f2937; 345 --color-shadow-inner-subtle: #111827; 346 } 347 } 348 349 body { 350 @apply flex min-h-screen flex-col bg-background-canvas text-foreground-default transition-colors duration-200; 351 font-size: 14px; 352 } 353 354 a { 355 @apply text-foreground-default no-underline hover:text-foreground-muted; 356 } 357}