this repo has no description
0
fork

Configure Feed

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

at main 516 lines 12 kB view raw
1@import "tailwindcss"; 2@import "./tokens.css"; 3 4@plugin "tailwindcss-animate"; 5@plugin "@tailwindcss/typography"; 6 7@custom-variant dark (&:is(.dark *)); 8@custom-variant motion-safe (@media (prefers-reduced-motion: no-preference)); 9@custom-variant motion-reduce (@media (prefers-reduced-motion: reduce)); 10 11/* Shadcn/UI Theme Variables */ 12:root { 13 --background: var(--bg-primary); 14 --foreground: var(--text-primary); 15 --card: var(--bg-card); 16 --card-foreground: var(--text-primary); 17 --popover: var(--bg-card); 18 --popover-foreground: var(--text-primary); 19 --primary: var(--accent-default); 20 --primary-foreground: var(--text-inverse); 21 --secondary: var(--bg-secondary); 22 --secondary-foreground: var(--text-primary); 23 --muted: var(--bg-secondary); 24 --muted-foreground: var(--text-muted); 25 --accent: var(--accent-default); 26 --accent-foreground: var(--text-inverse); 27 --destructive: var(--status-error); 28 --destructive-foreground: var(--text-inverse); 29 --border: var(--border-default); 30 --input: var(--border-default); 31 --ring: var(--ring-color); 32 --radius: 0; 33} 34 35@theme inline { 36 --color-background: var(--background); 37 --color-foreground: var(--foreground); 38 --color-card: var(--card); 39 --color-card-foreground: var(--card-foreground); 40 --color-popover: var(--popover); 41 --color-popover-foreground: var(--popover-foreground); 42 --color-primary: var(--primary); 43 --color-primary-foreground: var(--primary-foreground); 44 --color-secondary: var(--secondary); 45 --color-secondary-foreground: var(--secondary-foreground); 46 --color-muted: var(--muted); 47 --color-muted-foreground: var(--muted-foreground); 48 --color-accent: var(--accent); 49 --color-accent-foreground: var(--accent-foreground); 50 --color-destructive: var(--destructive); 51 --color-destructive-foreground: var(--destructive-foreground); 52 --color-border: var(--border); 53 --color-input: var(--input); 54 --color-ring: var(--ring); 55 --radius-sm: 0; 56 --radius-md: 0; 57 --radius-lg: 0; 58 --radius-xl: 0; 59 --font-mono: var(--font-mono); 60 --font-display: var(--font-display); 61} 62 63@layer base { 64 * { 65 @apply border-border outline-ring/50; 66 } 67 68 html { 69 font-family: var(--font-mono); 70 } 71 72 body { 73 @apply bg-background text-foreground; 74 font-family: var(--font-mono); 75 font-size: var(--text-sm); 76 line-height: var(--leading-normal); 77 -webkit-font-smoothing: antialiased; 78 -moz-osx-font-smoothing: grayscale; 79 } 80 81 code { 82 font-family: var(--font-mono); 83 background: var(--bg-secondary); 84 padding: var(--space-0-5) var(--space-1-5); 85 border-radius: 0; 86 font-size: 0.9em; 87 } 88 89 h1, 90 h2 { 91 font-family: var(--font-display); 92 font-weight: 600; 93 line-height: var(--leading-tight); 94 } 95 96 h3, 97 h4, 98 h5, 99 h6 { 100 font-family: var(--font-mono); 101 font-weight: 600; 102 line-height: var(--leading-tight); 103 } 104 105 h1 { 106 /* font-size is intentionally omitted; pages define their own hero sizes */ 107 } 108 109 h2 { 110 font-size: var(--text-xl); 111 } 112 113 h3 { 114 font-size: var(--text-lg); 115 } 116 117 a { 118 color: var(--text-primary); 119 text-decoration: none; 120 } 121 122 a:hover { 123 color: var(--accent-hover); 124 } 125} 126 127@layer components { 128 .chapter-select { 129 display: block; 130 } 131 132 .chapter-select__control { 133 height: 2rem; 134 max-width: min(42vw, 18rem); 135 border: 1px solid var(--border-default); 136 background: var(--bg-card); 137 color: var(--text-primary); 138 padding: 0 var(--space-8) 0 var(--space-3); 139 font-family: var(--font-mono); 140 font-size: var(--text-xs); 141 line-height: 1; 142 } 143 144 .chapter-select__control:hover { 145 border-color: var(--accent-default); 146 } 147 148 .chapter-select__control:focus-visible { 149 outline: none; 150 box-shadow: 0 0 0 2px var(--ring-color); 151 } 152 153 .chapter-pager { 154 display: grid; 155 grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); 156 align-items: stretch; 157 gap: var(--space-3); 158 margin-top: var(--space-8); 159 border-top: 1px solid var(--border-default); 160 padding-top: var(--space-6); 161 } 162 163 .chapter-pager__link, 164 .chapter-pager__contents { 165 border: 1px solid var(--border-default); 166 background: var(--bg-secondary); 167 padding: var(--space-3) var(--space-4); 168 transition: 169 border-color var(--duration-fast) var(--easing-default), 170 background-color var(--duration-fast) var(--easing-default), 171 color var(--duration-fast) var(--easing-default); 172 } 173 174 .chapter-pager__link { 175 display: grid; 176 gap: var(--space-1); 177 min-width: 0; 178 } 179 180 .chapter-pager__contents { 181 display: inline-flex; 182 align-items: center; 183 justify-content: center; 184 color: var(--text-secondary); 185 font-family: var(--font-mono); 186 font-size: var(--text-xs); 187 text-transform: uppercase; 188 } 189 190 .chapter-pager__link:hover, 191 .chapter-pager__contents:hover { 192 border-color: var(--accent-default); 193 background: var(--accent-subtle); 194 color: var(--text-primary); 195 } 196 197 .chapter-pager__link--disabled { 198 opacity: 0.55; 199 } 200 201 .chapter-pager__kicker { 202 color: var(--text-muted); 203 font-family: var(--font-mono); 204 font-size: var(--text-xs); 205 text-transform: uppercase; 206 } 207 208 .chapter-pager__title { 209 overflow: hidden; 210 color: var(--text-primary); 211 font-family: var(--font-mono); 212 font-size: var(--text-sm); 213 font-weight: 600; 214 text-overflow: ellipsis; 215 white-space: nowrap; 216 } 217 218 .toc-status { 219 border: 1px solid var(--border-default); 220 background: var(--bg-card); 221 padding: var(--space-5); 222 } 223 224 .toc-group { 225 display: grid; 226 gap: var(--space-5); 227 } 228 229 .toc-group__heading { 230 display: grid; 231 gap: var(--space-2); 232 max-width: 42rem; 233 } 234 235 .toc-group__title { 236 color: var(--text-primary); 237 font-size: var(--text-base); 238 text-transform: uppercase; 239 } 240 241 .toc-group__description { 242 color: var(--text-muted); 243 font-size: var(--text-sm); 244 line-height: var(--leading-normal); 245 } 246 247 .toc-list { 248 display: grid; 249 border-top: 1px solid var(--border-default); 250 } 251 252 .toc-link { 253 display: grid; 254 grid-template-columns: 4rem minmax(0, 1fr) auto; 255 gap: var(--space-4); 256 align-items: start; 257 border-bottom: 1px solid var(--border-default); 258 padding: var(--space-4) var(--space-2); 259 transition: 260 background-color var(--duration-fast) var(--easing-default), 261 color var(--duration-fast) var(--easing-default); 262 } 263 264 .toc-link:hover { 265 background: var(--accent-subtle); 266 } 267 268 .toc-link__number { 269 color: var(--accent-default); 270 font-family: var(--font-mono); 271 font-size: var(--text-sm); 272 font-weight: 600; 273 } 274 275 .toc-link__body { 276 display: grid; 277 gap: var(--space-2); 278 min-width: 0; 279 } 280 281 .toc-link__title { 282 color: var(--text-primary); 283 font-family: var(--font-display); 284 font-size: var(--text-xl); 285 font-weight: 600; 286 line-height: var(--leading-tight); 287 } 288 289 .toc-link__summary { 290 max-width: 64ch; 291 color: var(--text-secondary); 292 font-size: var(--text-sm); 293 line-height: var(--leading-normal); 294 } 295 296 .toc-link__tags { 297 display: flex; 298 flex-wrap: wrap; 299 gap: var(--space-2); 300 } 301 302 .toc-link__tag { 303 border: 1px solid var(--border-default); 304 background: var(--bg-secondary); 305 color: var(--text-muted); 306 padding: var(--space-1) var(--space-2); 307 font-family: var(--font-mono); 308 font-size: var(--text-xs); 309 line-height: 1; 310 } 311 312 .toc-link__open { 313 color: var(--text-muted); 314 font-family: var(--font-mono); 315 font-size: var(--text-sm); 316 transition: color var(--duration-fast) var(--easing-default); 317 } 318 319 .toc-link:hover .toc-link__open { 320 color: var(--accent-default); 321 } 322 323 /* Navigation link - terminal style */ 324 .nav-link { 325 display: flex; 326 align-items: center; 327 gap: var(--space-2); 328 padding: var(--space-2) var(--space-4); 329 font-size: var(--text-sm); 330 color: var(--text-secondary); 331 transition: 332 color var(--duration-fast) var(--easing-default), 333 background-color var(--duration-fast) var(--easing-default); 334 position: relative; 335 white-space: nowrap; 336 } 337 338 .nav-link::before { 339 content: ""; 340 width: 0.75rem; 341 text-align: right; 342 color: var(--text-muted); 343 font-weight: 400; 344 } 345 346 .nav-link:hover { 347 color: var(--accent-default); 348 background: var(--accent-subtle); 349 } 350 351 .nav-link:focus-visible { 352 outline: none; 353 box-shadow: inset 0 0 0 2px var(--ring-color); 354 } 355 356 .nav-link-active { 357 color: var(--text-primary); 358 font-weight: 500; 359 } 360 361 .nav-link-active::before { 362 content: ">"; 363 color: var(--accent-default); 364 } 365 366 /* Example card for landing page */ 367 .example-card { 368 background: var(--bg-card); 369 border: 1px solid var(--border-default); 370 padding: var(--space-5); 371 transition: 372 border-color var(--duration-fast) var(--easing-default), 373 box-shadow var(--duration-fast) var(--easing-default); 374 position: relative; 375 } 376 377 .example-card:hover, 378 .example-card:focus-visible { 379 border-color: var(--accent-default); 380 } 381 382 .example-card:active { 383 border-color: var(--accent-hover); 384 } 385 386 .example-card__number { 387 font-size: var(--text-xs); 388 color: var(--text-muted); 389 text-transform: uppercase; 390 letter-spacing: 0.1em; 391 margin-bottom: var(--space-2); 392 } 393 394 .example-card__title { 395 font-size: var(--text-base); 396 font-weight: 600; 397 color: var(--text-primary); 398 margin-bottom: var(--space-2); 399 } 400 401 .example-card__description { 402 font-size: var(--text-sm); 403 color: var(--text-muted); 404 line-height: var(--leading-normal); 405 } 406 407 .example-card--recommended { 408 background: var(--accent-surface); 409 border-color: var(--border-accent); 410 } 411 412 .example-card--recommended .example-card__number { 413 color: var(--accent-default); 414 font-weight: 600; 415 } 416 417 .example-card__badge { 418 position: absolute; 419 top: var(--space-5); 420 right: var(--space-5); 421 font-size: var(--text-xs); 422 font-weight: 600; 423 color: var(--text-inverse); 424 text-transform: uppercase; 425 letter-spacing: 0.05em; 426 padding: var(--space-1) var(--space-2); 427 background: var(--accent-default); 428 border: 1px solid var(--accent-default); 429 line-height: 1; 430 } 431} 432 433@media (max-width: 44rem) { 434 @layer components { 435 .chapter-pager { 436 grid-template-columns: 1fr; 437 } 438 439 .chapter-pager__link, 440 .chapter-pager__contents { 441 text-align: left; 442 } 443 444 .toc-link { 445 grid-template-columns: 2.5rem minmax(0, 1fr); 446 gap: var(--space-3); 447 padding: var(--space-4) 0; 448 } 449 450 .toc-link__open { 451 display: none; 452 } 453 454 .toc-link__title { 455 font-size: var(--text-lg); 456 } 457 } 458} 459 460@layer utilities { 461 .font-mono { 462 font-family: var(--font-mono); 463 } 464 465 .scrollbar-hidden { 466 -ms-overflow-style: none; 467 scrollbar-width: none; 468 } 469 470 .scrollbar-hidden::-webkit-scrollbar { 471 display: none; 472 } 473 474 .scrollbar-thin { 475 scrollbar-width: thin; 476 scrollbar-color: var(--border-strong) transparent; 477 } 478 479 .scrollbar-thin::-webkit-scrollbar { 480 height: 4px; 481 } 482 483 .scrollbar-thin::-webkit-scrollbar-track { 484 background: transparent; 485 } 486 487 .scrollbar-thin::-webkit-scrollbar-thumb { 488 background: var(--border-strong); 489 border-radius: 0; 490 } 491} 492 493/* Animations */ 494@keyframes pulse-dot { 495 0%, 496 100% { 497 opacity: 1; 498 box-shadow: 0 0 0 2px var(--status-fetching-glow); 499 } 500 50% { 501 opacity: 0.6; 502 box-shadow: 0 0 0 4px var(--status-fetching-glow-subtle); 503 } 504} 505 506.animate-pulse-dot { 507 animation: pulse-dot 1.5s ease-in-out infinite; 508} 509 510@media (prefers-reduced-motion: reduce) { 511 .animate-pulse-dot { 512 animation: none; 513 opacity: 1; 514 box-shadow: none; 515 } 516}