Monorepo for Tangled tangled.org
2

Configure Feed

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

1@tailwind base; 2@tailwind components; 3@tailwind utilities; 4@layer base { 5 @font-face { 6 font-family: "InterVariable"; 7 src: url("/static/fonts/InterVariable.woff2") format("woff2-variations"); 8 font-weight: 100 600; 9 font-style: normal; 10 font-display: swap; 11 } 12 13 @font-face { 14 font-family: "InterVariable"; 15 src: url("/static/fonts/InterVariable-Italic.woff2") 16 format("woff2-variations"); 17 font-weight: 100 600; 18 font-style: italic; 19 font-display: swap; 20 } 21 22 @font-face { 23 font-family: "InterVariable"; 24 src: url("/static/fonts/InterDisplay-Bold.woff2") format("woff2"); 25 font-weight: bold; 26 font-style: normal; 27 font-display: swap; 28 } 29 30 @font-face { 31 font-family: "InterVariable"; 32 src: url("/static/fonts/InterDisplay-BoldItalic.woff2") format("woff2"); 33 font-weight: bold; 34 font-style: italic; 35 font-display: swap; 36 } 37 38 @font-face { 39 font-family: "IBMPlexMono"; 40 src: url("/static/fonts/IBMPlexMono-Regular.woff2") format("woff2"); 41 font-weight: normal; 42 font-style: normal; 43 font-display: swap; 44 } 45 46 @font-face { 47 font-family: "IBMPlexMono"; 48 src: url("/static/fonts/IBMPlexMono-Italic.woff2") format("woff2"); 49 font-weight: normal; 50 font-style: italic; 51 font-display: swap; 52 } 53 54 @font-face { 55 font-family: "IBMPlexMono"; 56 src: url("/static/fonts/IBMPlexMono-Bold.woff2") format("woff2"); 57 font-weight: bold; 58 font-style: normal; 59 font-display: swap; 60 } 61 62 @font-face { 63 font-family: "IBMPlexMono"; 64 src: url("/static/fonts/IBMPlexMono-BoldItalic.woff2") format("woff2"); 65 font-weight: bold; 66 font-style: italic; 67 font-display: swap; 68 } 69 70 ::selection { 71 @apply bg-yellow-400 text-black bg-opacity-30 dark:bg-yellow-600 dark:bg-opacity-50 dark:text-white; 72 } 73 74 @layer base { 75 html { 76 font-size: 14px; 77 scrollbar-gutter: stable; 78 } 79 @supports (font-variation-settings: normal) { 80 html { 81 font-feature-settings: 82 "kern" 1, 83 "liga" 1, 84 "cv05" 1, 85 "tnum" 1; 86 } 87 } 88 89 a { 90 @apply no-underline text-black hover:underline hover:text-gray-800 dark:text-white dark:hover:text-gray-300; 91 } 92 93 label { 94 @apply block text-gray-900 text-sm py-2 dark:text-gray-100; 95 } 96 97 input, 98 textarea { 99 @apply block rounded p-3 100 bg-gray-50 dark:bg-gray-800 dark:text-white 101 border border-gray-300 dark:border-gray-600 102 focus:outline-none focus:ring-1 focus:ring-gray-400 dark:focus:ring-gray-500; 103 } 104 105 input[type="checkbox"] { 106 @apply appearance-none size-4 p-0 rounded 107 bg-transparent border border-gray-200 108 hover:bg-gray-100 109 checked:bg-gray-900 checked:border-transparent 110 checked:hover:bg-gray-800 111 indeterminate:bg-gray-900 indeterminate:border-transparent 112 disabled:cursor-not-allowed disabled:bg-gray-100 disabled:border-gray-200 113 disabled:checked:bg-gray-300 disabled:checked:border-transparent 114 disabled:indeterminate:bg-gray-100 disabled:indeterminate:border-gray-200 115 dark:border-gray-600 116 dark:hover:bg-gray-700 117 dark:checked:bg-gray-100 118 dark:checked:hover:bg-gray-200 119 dark:checked:border-gray-400 120 dark:indeterminate:bg-gray-100 dark:indeterminate:border-transparent 121 dark:disabled:bg-gray-700 dark:disabled:border-gray-600 122 dark:disabled:checked:bg-gray-500 dark:disabled:checked:border-transparent 123 dark:disabled:indeterminate:bg-gray-700 dark:disabled:indeterminate:border-gray-600 124 focus:outline-none focus:ring-1 focus:ring-gray-400 dark:focus:ring-gray-500; 125 background-position: center; 126 background-repeat: no-repeat; 127 background-size: 12px; 128 } 129 input[type="checkbox"]:checked { 130 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'><path d='M10 3 4.5 8.5 2 6' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>"); 131 } 132 input[type="checkbox"]:indeterminate { 133 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'><path d='M2.5 6h7' stroke='white' stroke-width='1.5' stroke-linecap='round'/></svg>"); 134 } 135 input[type="checkbox"]:disabled:indeterminate { 136 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'><path d='M2.5 6h7' stroke='rgb(156,163,175)' stroke-width='1.5' stroke-linecap='round'/></svg>"); 137 } 138 @media (prefers-color-scheme: dark) { 139 input[type="checkbox"]:checked { 140 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'><path d='M10 3 4.5 8.5 2 6' stroke='rgb(17,24,39)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>"); 141 } 142 input[type="checkbox"]:indeterminate { 143 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'><path d='M2.5 6h7' stroke='rgb(17,24,39)' stroke-width='1.5' stroke-linecap='round'/></svg>"); 144 } 145 input[type="checkbox"]:disabled:indeterminate { 146 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'><path d='M2.5 6h7' stroke='rgb(107,114,128)' stroke-width='1.5' stroke-linecap='round'/></svg>"); 147 } 148 } 149 150 input[type="radio"] { 151 @apply appearance-none size-4 p-0 rounded-full bg-transparent border 152 153 border-gray-400 hover:border-gray-900 154 hover:bg-gray-200 155 156 disabled:cursor-not-allowed 157 disabled:border-gray-300 158 disabled:checked:border-gray-300 159 disabled:hover:bg-inherit 160 161 dark:border-gray-400 dark:hover:border-gray-100 162 163 dark:hover:bg-gray-600 164 165 dark:checked:border-gray-400 166 167 dark:disabled:border-gray-500 168 dark:disabled:checked:border-gray-500 169 170 focus:outline-none focus:ring-1 171 focus:ring-gray-400 dark:focus:ring-gray-500; 172 173 background-position: center; 174 background-repeat: no-repeat; 175 background-size: 8px; 176 } 177 input[type="radio"]:checked { 178 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5' fill='rgb(17,24,39)'/></svg>"); 179 } 180 input[type="radio"]:disabled:checked { 181 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5' fill='rgb(209,213,219)'/></svg>"); 182 } 183 @media (prefers-color-scheme: dark) { 184 input[type="radio"]:checked { 185 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5' fill='rgb(243,244,246)'/></svg>"); 186 } 187 input[type="radio"]:disabled:checked { 188 background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5' fill='rgb(107,114,128)'/></svg>"); 189 } 190 } 191 192 details summary::-webkit-details-marker { 193 display: none; 194 } 195 196 code { 197 @apply font-mono rounded bg-gray-100 dark:bg-gray-700 text-black dark:text-white; 198 } 199 } 200 201 @layer components { 202 .btn { 203 @apply relative z-10 inline-flex overflow-hidden items-center justify-center 204 min-h-[32px] px-2 py-[6px] gap-1.5 205 rounded border border-gray-200 dark:border-gray-700 206 bg-white dark:bg-gray-800 207 text-sm text-gray-900 dark:text-gray-100 208 transition-colors duration-150 ease-in-out 209 outline-transparent cursor-pointer 210 focus-visible:outline focus-visible:outline-2 focus-visible:outline-gray-400 dark:focus-visible:outline-gray-600 211 no-underline hover:no-underline; 212 213 @apply before:absolute before:inset-0 before:-z-10 before:block before:rounded-sm before:content-[''] 214 before:transition-all before:duration-150 before:ease-in-out 215 before:shadow-[inset_0_-2px_0_0_theme(colors.gray.200)] dark:before:shadow-[inset_0_-2px_0_0_theme(colors.gray.900)]; 216 217 @apply hover:bg-gray-50 dark:hover:bg-gray-700 218 hover:before:shadow-[inset_0_-2px_0_0_theme(colors.gray.300)] dark:hover:before:shadow-[inset_0_-2px_0_0_theme(colors.gray.800)] 219 active:before:shadow-[inset_0_2px_2px_0_theme(colors.gray.200)] dark:active:before:shadow-[inset_0_2px_2px_0_theme(colors.gray.900)] 220 active:translate-y-0.5 221 disabled:cursor-not-allowed disabled:opacity-50; 222 } 223 224 .btn-flat { 225 @apply inline-flex items-center justify-center 226 min-h-[30px] px-2 py-[6px] 227 rounded 228 text-sm text-gray-900 dark:text-gray-100 cursor-pointer 229 transition-colors duration-150 ease-in-out 230 focus:outline-none 231 focus-visible:outline focus-visible:outline-2 focus-visible:outline-gray-400 232 hover:bg-gray-100 233 dark:hover:text-gray-100 dark:hover:bg-gray-700 234 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:text-inherit disabled:hover:bg-inherit; 235 } 236 237 .btn-create { 238 @apply btn text-white 239 bg-green-600 hover:bg-green-700 dark:bg-green-700 dark:hover:bg-green-800 240 border border-green-700 hover:border-green-800 241 focus-visible:outline-green-500 242 disabled:bg-green-400 dark:disabled:bg-green-600 243 before:shadow-[inset_0_-2px_0_0_theme(colors.gray.900/25%)] 244 hover:before:shadow-[inset_0_-2px_0_0_theme(colors.gray.900/25%)] 245 active:before:shadow-[inset_0_2px_2px_0_theme(colors.gray.900/50%)]; 246 } 247 248 .btn-create-flat { 249 @apply btn-create 250 before:shadow-none 251 hover:before:shadow-none 252 active:before:shadow-none; 253 } 254 255 .btn-primary { 256 @apply btn text-white 257 bg-indigo-600 hover:bg-indigo-700 dark:bg-indigo-500 dark:hover:bg-indigo-600 258 border border-indigo-700 hover:border-indigo-800 dark:border-indigo-600 dark:hover:border-indigo-700 259 focus-visible:outline-indigo-500 260 disabled:bg-indigo-400 dark:disabled:bg-indigo-400 261 before:shadow-[inset_0_-2px_0_0_theme(colors.gray.900/25%)] 262 hover:before:shadow-[inset_0_-2px_0_0_theme(colors.gray.900/25%)] 263 active:before:shadow-[inset_0_2px_2px_0_theme(colors.gray.900/50%)]; 264 } 265 266 .btn-cancel { 267 @apply btn text-white 268 bg-red-600 hover:bg-red-700 dark:bg-red-700 dark:hover:bg-red-800 269 border border-red-700 hover:border-red-800 270 focus-visible:outline-red-500 271 disabled:bg-red-400 dark:disabled:bg-red-600; 272 } 273 274 .btn-cancel-flat { 275 @apply btn-cancel 276 before:shadow-none 277 hover:before:shadow-none 278 active:before:shadow-none; 279 } 280 281 .btn-group { 282 @apply inline-flex items-stretch 283 max-h-[32px] 284 rounded border border-gray-200 dark:border-gray-700 285 divide-x divide-gray-200 dark:divide-gray-700 286 overflow-clip; 287 } 288 289 .btn-group-item { 290 @apply btn-flat min-h-[30px] gap-1.5 291 bg-gray-50 dark:bg-gray-900 292 rounded-none border-y-0 293 no-underline hover:no-underline 294 hover:text-gray-600 dark:hover:text-gray-400; 295 } 296 297 .btn-group-item.active { 298 @apply btn min-h-[30px] rounded-none border-y-0 299 before:border-none before:rounded-none before:bg-inherit; 300 301 &:first-child { 302 @apply border-none before:rounded-l-sm; 303 } 304 &:last-child { 305 @apply border-y-0 border-r-0 border-l before:rounded-r-sm; 306 } 307 } 308 309 .prose { 310 overflow-wrap: anywhere; 311 } 312 313 .prose td, 314 .prose th { 315 overflow-wrap: normal; 316 } 317 318 .prose hr { 319 @apply my-2; 320 } 321 322 .prose li:has(input) { 323 @apply list-none; 324 } 325 326 .prose ul:has(input) { 327 @apply pl-2; 328 } 329 330 .prose .heading .anchor { 331 @apply no-underline mx-2 opacity-0; 332 } 333 334 .prose .heading:hover .anchor { 335 @apply opacity-70; 336 } 337 338 .prose .heading .anchor:hover { 339 @apply opacity-70; 340 } 341 342 .prose h1:target, 343 .prose h2:target, 344 .prose h3:target, 345 .prose h4:target, 346 .prose h5:target, 347 .prose h6:target { 348 @apply bg-yellow-200/30 dark:bg-yellow-600/30; 349 } 350 351 .prose a.footnote-backref { 352 @apply no-underline; 353 } 354 355 .prose a.mention { 356 @apply no-underline hover:underline font-bold; 357 } 358 359 .prose li { 360 @apply my-0 py-0; 361 } 362 363 .prose ul, 364 .prose ol { 365 @apply my-1 py-0; 366 } 367 368 .prose img { 369 display: inline; 370 margin: 0; 371 vertical-align: middle; 372 } 373 374 .prose input { 375 @apply inline-block my-0 mt-1 mx-1; 376 } 377 378 /* Mermaid diagrams */ 379 .prose pre.mermaid { 380 @apply flex justify-center my-4 overflow-x-auto bg-transparent border-0; 381 } 382 383 /* Base callout */ 384 details[data-callout] { 385 @apply border-l-4 pl-3 py-2 text-gray-800 dark:text-gray-200 my-4; 386 } 387 388 details[data-callout] > summary { 389 @apply font-bold cursor-pointer mb-1; 390 } 391 392 details[data-callout] > .callout-content { 393 @apply text-sm leading-snug; 394 } 395 396 /* Note (blue) */ 397 details[data-callout="note" i] { 398 @apply border-blue-400 dark:border-blue-500; 399 } 400 details[data-callout="note" i] > summary { 401 @apply text-blue-700 dark:text-blue-400; 402 } 403 404 /* Important (purple) */ 405 details[data-callout="important" i] { 406 @apply border-purple-400 dark:border-purple-500; 407 } 408 details[data-callout="important" i] > summary { 409 @apply text-purple-700 dark:text-purple-400; 410 } 411 412 /* Warning (yellow) */ 413 details[data-callout="warning" i] { 414 @apply border-yellow-400 dark:border-yellow-500; 415 } 416 details[data-callout="warning" i] > summary { 417 @apply text-yellow-700 dark:text-yellow-400; 418 } 419 420 /* Caution (red) */ 421 details[data-callout="caution" i] { 422 @apply border-red-400 dark:border-red-500; 423 } 424 details[data-callout="caution" i] > summary { 425 @apply text-red-700 dark:text-red-400; 426 } 427 428 /* Tip (green) */ 429 details[data-callout="tip" i] { 430 @apply border-green-400 dark:border-green-500; 431 } 432 details[data-callout="tip" i] > summary { 433 @apply text-green-700 dark:text-green-400; 434 } 435 436 /* Optional: hide the disclosure arrow like GitHub */ 437 details[data-callout] > summary::-webkit-details-marker { 438 display: none; 439 } 440 } 441 @layer utilities { 442 .error { 443 @apply py-1 text-red-400 dark:text-red-300; 444 } 445 .success { 446 @apply py-1 text-gray-900 dark:text-gray-100; 447 } 448 449 @keyframes scroll { 450 0% { 451 transform: translateX(0); 452 } 453 100% { 454 transform: translateX(-50%); 455 } 456 } 457 458 .animate-marquee { 459 animation: scroll 60s linear infinite; 460 } 461 462 .animate-marquee:hover { 463 animation-play-state: paused; 464 } 465 466 @media (prefers-reduced-motion: reduce) { 467 .animate-marquee { 468 animation: none; 469 transform: none; 470 } 471 } 472 473 @keyframes progress { 474 from { 475 width: 0%; 476 } 477 to { 478 width: 100%; 479 } 480 } 481 482 .animate-progress { 483 animation: progress 10s linear forwards; 484 } 485 486 @keyframes fadeIn { 487 from { 488 opacity: 0; 489 } 490 to { 491 opacity: 1; 492 } 493 } 494 495 @keyframes fadeOut { 496 from { 497 opacity: 1; 498 } 499 to { 500 opacity: 0; 501 } 502 } 503 504 .animate-fadein { 505 animation: fadeIn 0.25s ease-in forwards; 506 } 507 508 .animate-fadeout { 509 animation: fadeOut 0.25s ease-out forwards; 510 } 511 } 512} 513 514/* Background */ 515.bg { 516 color: #4c4f69; 517 background-color: #eff1f5; 518} 519/* PreWrapper */ 520.chroma { 521 color: #4c4f69; 522} 523/* Error */ 524.chroma .err { 525 color: #d20f39; 526} 527/* LineLink */ 528.chroma .lnlinks { 529 outline: none; 530 text-decoration: none; 531 color: inherit; 532} 533/* LineTableTD */ 534.chroma .lntd { 535 vertical-align: top; 536 padding: 0; 537 margin: 0; 538 border: 0; 539} 540/* LineTable */ 541.chroma .lntable { 542 border-spacing: 0; 543 padding: 0; 544 margin: 0; 545 border: 0; 546} 547/* LineHighlight */ 548.chroma .hl { 549 @apply bg-amber-400/30 dark:bg-amber-500/20; 550} 551 552.line-quote-hl, 553.line-range-hl { 554 @apply !bg-yellow-200/30 dark:!bg-yellow-700/30; 555} 556 557:is(.line-quote-hl, .line-range-hl) > .min-w-\[3\.5rem\] { 558 @apply !bg-yellow-200/30 dark:!bg-yellow-700/30; 559} 560 561:is(.line-quote-hl, .line-range-hl) > .min-w-\[3\.5rem\] a { 562 @apply !text-black dark:!text-white; 563} 564 565/* LineNumbersTable */ 566.chroma .lnt { 567 white-space: pre; 568 -webkit-user-select: none; 569 user-select: none; 570 margin-right: 0.4em; 571 padding: 0 0.4em 0 0.4em; 572 color: #8c8fa1; 573} 574/* LineNumbers */ 575.chroma .ln { 576 white-space: pre; 577 -webkit-user-select: none; 578 user-select: none; 579 margin-right: 0.4em; 580 padding: 0 0.4em 0 0.4em; 581 color: #8c8fa1; 582} 583/* Line */ 584.chroma .line { 585 display: flex; 586} 587/* Keyword */ 588.chroma .k { 589 color: #8839ef; 590} 591/* KeywordConstant */ 592.chroma .kc { 593 color: #fe640b; 594} 595/* KeywordDeclaration */ 596.chroma .kd { 597 color: #d20f39; 598} 599/* KeywordNamespace */ 600.chroma .kn { 601 color: #179299; 602} 603/* KeywordPseudo */ 604.chroma .kp { 605 color: #8839ef; 606} 607/* KeywordReserved */ 608.chroma .kr { 609 color: #8839ef; 610} 611/* KeywordType */ 612.chroma .kt { 613 color: #d20f39; 614} 615/* NameAttribute */ 616.chroma .na { 617 color: #1e66f5; 618} 619/* NameBuiltin */ 620.chroma .nb { 621 color: #04a5e5; 622} 623/* NameBuiltinPseudo */ 624.chroma .bp { 625 color: #04a5e5; 626} 627/* NameClass */ 628.chroma .nc { 629 color: #df8e1d; 630} 631/* NameConstant */ 632.chroma .no { 633 color: #df8e1d; 634} 635/* NameDecorator */ 636.chroma .nd { 637 color: #1e66f5; 638 font-weight: bold; 639} 640/* NameEntity */ 641.chroma .ni { 642 color: #179299; 643} 644/* NameException */ 645.chroma .ne { 646 color: #fe640b; 647} 648/* NameFunction */ 649.chroma .nf { 650 color: #1e66f5; 651} 652/* NameFunctionMagic */ 653.chroma .fm { 654 color: #1e66f5; 655} 656/* NameLabel */ 657.chroma .nl { 658 color: #04a5e5; 659} 660/* NameNamespace */ 661.chroma .nn { 662 color: #fe640b; 663} 664/* NameProperty */ 665.chroma .py { 666 color: #fe640b; 667} 668/* NameTag */ 669.chroma .nt { 670 color: #8839ef; 671} 672/* NameVariable */ 673.chroma .nv { 674 color: #dc8a78; 675} 676/* NameVariableClass */ 677.chroma .vc { 678 color: #dc8a78; 679} 680/* NameVariableGlobal */ 681.chroma .vg { 682 color: #dc8a78; 683} 684/* NameVariableInstance */ 685.chroma .vi { 686 color: #dc8a78; 687} 688/* NameVariableMagic */ 689.chroma .vm { 690 color: #dc8a78; 691} 692/* LiteralString */ 693.chroma .s { 694 color: #40a02b; 695} 696/* LiteralStringAffix */ 697.chroma .sa { 698 color: #d20f39; 699} 700/* LiteralStringBacktick */ 701.chroma .sb { 702 color: #40a02b; 703} 704/* LiteralStringChar */ 705.chroma .sc { 706 color: #40a02b; 707} 708/* LiteralStringDelimiter */ 709.chroma .dl { 710 color: #1e66f5; 711} 712/* LiteralStringDoc */ 713.chroma .sd { 714 color: #9ca0b0; 715} 716/* LiteralStringDouble */ 717.chroma .s2 { 718 color: #40a02b; 719} 720/* LiteralStringEscape */ 721.chroma .se { 722 color: #1e66f5; 723} 724/* LiteralStringHeredoc */ 725.chroma .sh { 726 color: #9ca0b0; 727} 728/* LiteralStringInterpol */ 729.chroma .si { 730 color: #40a02b; 731} 732/* LiteralStringOther */ 733.chroma .sx { 734 color: #40a02b; 735} 736/* LiteralStringRegex */ 737.chroma .sr { 738 color: #179299; 739} 740/* LiteralStringSingle */ 741.chroma .s1 { 742 color: #40a02b; 743} 744/* LiteralStringSymbol */ 745.chroma .ss { 746 color: #40a02b; 747} 748/* LiteralNumber */ 749.chroma .m { 750 color: #fe640b; 751} 752/* LiteralNumberBin */ 753.chroma .mb { 754 color: #fe640b; 755} 756/* LiteralNumberFloat */ 757.chroma .mf { 758 color: #fe640b; 759} 760/* LiteralNumberHex */ 761.chroma .mh { 762 color: #fe640b; 763} 764/* LiteralNumberInteger */ 765.chroma .mi { 766 color: #fe640b; 767} 768/* LiteralNumberIntegerLong */ 769.chroma .il { 770 color: #fe640b; 771} 772/* LiteralNumberOct */ 773.chroma .mo { 774 color: #fe640b; 775} 776/* Operator */ 777.chroma .o { 778 color: #04a5e5; 779 font-weight: bold; 780} 781/* OperatorWord */ 782.chroma .ow { 783 color: #04a5e5; 784 font-weight: bold; 785} 786/* Comment */ 787.chroma .c { 788 color: #9ca0b0; 789 font-style: italic; 790} 791/* CommentHashbang */ 792.chroma .ch { 793 color: #9ca0b0; 794 font-style: italic; 795} 796/* CommentMultiline */ 797.chroma .cm { 798 color: #9ca0b0; 799 font-style: italic; 800} 801/* CommentSingle */ 802.chroma .c1 { 803 color: #9ca0b0; 804 font-style: italic; 805} 806/* CommentSpecial */ 807.chroma .cs { 808 color: #9ca0b0; 809 font-style: italic; 810} 811/* CommentPreproc */ 812.chroma .cp { 813 color: #9ca0b0; 814 font-style: italic; 815} 816/* CommentPreprocFile */ 817.chroma .cpf { 818 color: #9ca0b0; 819 font-weight: bold; 820 font-style: italic; 821} 822/* GenericDeleted */ 823.chroma .gd { 824 color: #d20f39; 825 background-color: oklch(93.6% 0.032 17.717); 826} 827/* GenericEmph */ 828.chroma .ge { 829 font-style: italic; 830} 831/* GenericError */ 832.chroma .gr { 833 color: #d20f39; 834} 835/* GenericHeading */ 836.chroma .gh { 837 color: #fe640b; 838 font-weight: bold; 839} 840/* GenericInserted */ 841.chroma .gi { 842 color: #40a02b; 843 background-color: oklch(96.2% 0.044 156.743); 844} 845/* GenericStrong */ 846.chroma .gs { 847 font-weight: bold; 848} 849/* GenericSubheading */ 850.chroma .gu { 851 color: #fe640b; 852 font-weight: bold; 853} 854/* GenericTraceback */ 855.chroma .gt { 856 color: #d20f39; 857} 858/* GenericUnderline */ 859.chroma .gl { 860 text-decoration: underline; 861} 862 863@media (prefers-color-scheme: dark) { 864 /* Background */ 865 .bg { 866 color: #cad3f5; 867 background-color: #24273a; 868 } 869 /* PreWrapper */ 870 .chroma { 871 color: #cad3f5; 872 } 873 /* Error */ 874 .chroma .err { 875 color: #ed8796; 876 } 877 /* LineLink */ 878 .chroma .lnlinks { 879 outline: none; 880 text-decoration: none; 881 color: inherit; 882 } 883 /* LineTableTD */ 884 .chroma .lntd { 885 vertical-align: top; 886 padding: 0; 887 margin: 0; 888 border: 0; 889 } 890 /* LineTable */ 891 .chroma .lntable { 892 border-spacing: 0; 893 padding: 0; 894 margin: 0; 895 border: 0; 896 } 897 /* LineHighlight */ 898 .chroma .hl { 899 background-color: #494d64; 900 } 901 /* LineNumbersTable */ 902 .chroma .lnt { 903 white-space: pre; 904 -webkit-user-select: none; 905 user-select: none; 906 margin-right: 0.4em; 907 padding: 0 0.4em 0 0.4em; 908 color: #8087a2; 909 } 910 /* LineNumbers */ 911 .chroma .ln { 912 white-space: pre; 913 -webkit-user-select: none; 914 user-select: none; 915 margin-right: 0.4em; 916 padding: 0 0.4em 0 0.4em; 917 color: #8087a2; 918 } 919 /* Line */ 920 .chroma .line { 921 display: flex; 922 } 923 /* Keyword */ 924 .chroma .k { 925 color: #c6a0f6; 926 } 927 /* KeywordConstant */ 928 .chroma .kc { 929 color: #f5a97f; 930 } 931 /* KeywordDeclaration */ 932 .chroma .kd { 933 color: #ed8796; 934 } 935 /* KeywordNamespace */ 936 .chroma .kn { 937 color: #8bd5ca; 938 } 939 /* KeywordPseudo */ 940 .chroma .kp { 941 color: #c6a0f6; 942 } 943 /* KeywordReserved */ 944 .chroma .kr { 945 color: #c6a0f6; 946 } 947 /* KeywordType */ 948 .chroma .kt { 949 color: #ed8796; 950 } 951 /* NameAttribute */ 952 .chroma .na { 953 color: #8aadf4; 954 } 955 /* NameBuiltin */ 956 .chroma .nb { 957 color: #91d7e3; 958 } 959 /* NameBuiltinPseudo */ 960 .chroma .bp { 961 color: #91d7e3; 962 } 963 /* NameClass */ 964 .chroma .nc { 965 color: #eed49f; 966 } 967 /* NameConstant */ 968 .chroma .no { 969 color: #eed49f; 970 } 971 /* NameDecorator */ 972 .chroma .nd { 973 color: #8aadf4; 974 font-weight: bold; 975 } 976 /* NameEntity */ 977 .chroma .ni { 978 color: #8bd5ca; 979 } 980 /* NameException */ 981 .chroma .ne { 982 color: #f5a97f; 983 } 984 /* NameFunction */ 985 .chroma .nf { 986 color: #8aadf4; 987 } 988 /* NameFunctionMagic */ 989 .chroma .fm { 990 color: #8aadf4; 991 } 992 /* NameLabel */ 993 .chroma .nl { 994 color: #91d7e3; 995 } 996 /* NameNamespace */ 997 .chroma .nn { 998 color: #f5a97f; 999 } 1000 /* NameProperty */ 1001 .chroma .py { 1002 color: #f5a97f; 1003 } 1004 /* NameTag */ 1005 .chroma .nt { 1006 color: #c6a0f6; 1007 } 1008 /* NameVariable */ 1009 .chroma .nv { 1010 color: #f4dbd6; 1011 } 1012 /* NameVariableClass */ 1013 .chroma .vc { 1014 color: #f4dbd6; 1015 } 1016 /* NameVariableGlobal */ 1017 .chroma .vg { 1018 color: #f4dbd6; 1019 } 1020 /* NameVariableInstance */ 1021 .chroma .vi { 1022 color: #f4dbd6; 1023 } 1024 /* NameVariableMagic */ 1025 .chroma .vm { 1026 color: #f4dbd6; 1027 } 1028 /* LiteralString */ 1029 .chroma .s { 1030 color: #a6da95; 1031 } 1032 /* LiteralStringAffix */ 1033 .chroma .sa { 1034 color: #ed8796; 1035 } 1036 /* LiteralStringBacktick */ 1037 .chroma .sb { 1038 color: #a6da95; 1039 } 1040 /* LiteralStringChar */ 1041 .chroma .sc { 1042 color: #a6da95; 1043 } 1044 /* LiteralStringDelimiter */ 1045 .chroma .dl { 1046 color: #8aadf4; 1047 } 1048 /* LiteralStringDoc */ 1049 .chroma .sd { 1050 color: #6e738d; 1051 } 1052 /* LiteralStringDouble */ 1053 .chroma .s2 { 1054 color: #a6da95; 1055 } 1056 /* LiteralStringEscape */ 1057 .chroma .se { 1058 color: #8aadf4; 1059 } 1060 /* LiteralStringHeredoc */ 1061 .chroma .sh { 1062 color: #6e738d; 1063 } 1064 /* LiteralStringInterpol */ 1065 .chroma .si { 1066 color: #a6da95; 1067 } 1068 /* LiteralStringOther */ 1069 .chroma .sx { 1070 color: #a6da95; 1071 } 1072 /* LiteralStringRegex */ 1073 .chroma .sr { 1074 color: #8bd5ca; 1075 } 1076 /* LiteralStringSingle */ 1077 .chroma .s1 { 1078 color: #a6da95; 1079 } 1080 /* LiteralStringSymbol */ 1081 .chroma .ss { 1082 color: #a6da95; 1083 } 1084 /* LiteralNumber */ 1085 .chroma .m { 1086 color: #f5a97f; 1087 } 1088 /* LiteralNumberBin */ 1089 .chroma .mb { 1090 color: #f5a97f; 1091 } 1092 /* LiteralNumberFloat */ 1093 .chroma .mf { 1094 color: #f5a97f; 1095 } 1096 /* LiteralNumberHex */ 1097 .chroma .mh { 1098 color: #f5a97f; 1099 } 1100 /* LiteralNumberInteger */ 1101 .chroma .mi { 1102 color: #f5a97f; 1103 } 1104 /* LiteralNumberIntegerLong */ 1105 .chroma .il { 1106 color: #f5a97f; 1107 } 1108 /* LiteralNumberOct */ 1109 .chroma .mo { 1110 color: #f5a97f; 1111 } 1112 /* Operator */ 1113 .chroma .o { 1114 color: #91d7e3; 1115 font-weight: bold; 1116 } 1117 /* OperatorWord */ 1118 .chroma .ow { 1119 color: #91d7e3; 1120 font-weight: bold; 1121 } 1122 /* Comment */ 1123 .chroma .c { 1124 color: #6e738d; 1125 font-style: italic; 1126 } 1127 /* CommentHashbang */ 1128 .chroma .ch { 1129 color: #6e738d; 1130 font-style: italic; 1131 } 1132 /* CommentMultiline */ 1133 .chroma .cm { 1134 color: #6e738d; 1135 font-style: italic; 1136 } 1137 /* CommentSingle */ 1138 .chroma .c1 { 1139 color: #6e738d; 1140 font-style: italic; 1141 } 1142 /* CommentSpecial */ 1143 .chroma .cs { 1144 color: #6e738d; 1145 font-style: italic; 1146 } 1147 /* CommentPreproc */ 1148 .chroma .cp { 1149 color: #6e738d; 1150 font-style: italic; 1151 } 1152 /* CommentPreprocFile */ 1153 .chroma .cpf { 1154 color: #6e738d; 1155 font-weight: bold; 1156 font-style: italic; 1157 } 1158 /* GenericDeleted */ 1159 .chroma .gd { 1160 color: #ed8796; 1161 background-color: oklch(44.4% 0.177 26.899 / 0.5); 1162 } 1163 /* GenericEmph */ 1164 .chroma .ge { 1165 font-style: italic; 1166 } 1167 /* GenericError */ 1168 .chroma .gr { 1169 color: #ed8796; 1170 } 1171 /* GenericHeading */ 1172 .chroma .gh { 1173 color: #f5a97f; 1174 font-weight: bold; 1175 } 1176 /* GenericInserted */ 1177 .chroma .gi { 1178 color: #a6da95; 1179 background-color: oklch(44.8% 0.119 151.328 / 0.5); 1180 } 1181 /* GenericStrong */ 1182 .chroma .gs { 1183 font-weight: bold; 1184 } 1185 /* GenericSubheading */ 1186 .chroma .gu { 1187 color: #f5a97f; 1188 font-weight: bold; 1189 } 1190 /* GenericTraceback */ 1191 .chroma .gt { 1192 color: #ed8796; 1193 } 1194 /* GenericUnderline */ 1195 .chroma .gl { 1196 text-decoration: underline; 1197 } 1198} 1199 1200actor-typeahead { 1201 --color-background: #ffffff; 1202 --color-border: #d1d5db; 1203 --color-shadow: #000000; 1204 --color-hover: #f9fafb; 1205 --color-avatar-fallback: #e5e7eb; 1206 --radius: 0; 1207 --padding-menu: 0rem; 1208 z-index: 1000; 1209} 1210 1211actor-typeahead::part(handle) { 1212 color: #111827; 1213} 1214 1215actor-typeahead::part(menu) { 1216 box-shadow: 1217 0 4px 6px -1px rgb(0 0 0 / 0.1), 1218 0 2px 4px -2px rgb(0 0 0 / 0.1); 1219} 1220 1221@media (prefers-color-scheme: dark) { 1222 actor-typeahead { 1223 --color-background: #1f2937; 1224 --color-border: #4b5563; 1225 --color-shadow: #000000; 1226 --color-hover: #374151; 1227 --color-avatar-fallback: #4b5563; 1228 } 1229 1230 actor-typeahead::part(handle) { 1231 color: #f9fafb; 1232 } 1233} 1234 1235@layer utilities { 1236 .hit-area { 1237 position: relative; 1238 } 1239 1240 .hit-area::before { 1241 content: ""; 1242 position: absolute; 1243 top: var(--hit-area-t, 0px); 1244 right: var(--hit-area-r, 0px); 1245 bottom: var(--hit-area-b, 0px); 1246 left: var(--hit-area-l, 0px); 1247 pointer-events: inherit; 1248 } 1249 1250 .hit-area-debug { 1251 position: relative; 1252 } 1253 1254 .hit-area-debug::before { 1255 content: ""; 1256 position: absolute; 1257 top: var(--hit-area-t, 0px); 1258 right: var(--hit-area-r, 0px); 1259 bottom: var(--hit-area-b, 0px); 1260 left: var(--hit-area-l, 0px); 1261 pointer-events: inherit; 1262 border: 1px dashed #3b82f6; 1263 background-color: rgba(59, 130, 246, 0.1); 1264 } 1265 1266 .hit-area-debug:hover::before { 1267 border-color: #22c55e; 1268 background-color: rgba(34, 197, 94, 0.1); 1269 } 1270 1271 .hit-area-1 { 1272 --hit-area-t: -0.25rem; 1273 --hit-area-r: -0.25rem; 1274 --hit-area-b: -0.25rem; 1275 --hit-area-l: -0.25rem; 1276 } 1277 .hit-area-2 { 1278 --hit-area-t: -0.5rem; 1279 --hit-area-r: -0.5rem; 1280 --hit-area-b: -0.5rem; 1281 --hit-area-l: -0.5rem; 1282 } 1283 .hit-area-4 { 1284 --hit-area-t: -1rem; 1285 --hit-area-r: -1rem; 1286 --hit-area-b: -1rem; 1287 --hit-area-l: -1rem; 1288 } 1289 .hit-area-6 { 1290 --hit-area-t: -1.5rem; 1291 --hit-area-r: -1.5rem; 1292 --hit-area-b: -1.5rem; 1293 --hit-area-l: -1.5rem; 1294 } 1295 .hit-area-8 { 1296 --hit-area-t: -2rem; 1297 --hit-area-r: -2rem; 1298 --hit-area-b: -2rem; 1299 --hit-area-l: -2rem; 1300 } 1301 .hit-area-10 { 1302 --hit-area-t: -2.5rem; 1303 --hit-area-r: -2.5rem; 1304 --hit-area-b: -2.5rem; 1305 --hit-area-l: -2.5rem; 1306 } 1307 .hit-area-12 { 1308 --hit-area-t: -3rem; 1309 --hit-area-r: -3rem; 1310 --hit-area-b: -3rem; 1311 --hit-area-l: -3rem; 1312 } 1313 1314 .hit-area-l-1 { 1315 --hit-area-l: -0.25rem; 1316 } 1317 .hit-area-l-2 { 1318 --hit-area-l: -0.5rem; 1319 } 1320 .hit-area-l-4 { 1321 --hit-area-l: -1rem; 1322 } 1323 .hit-area-l-6 { 1324 --hit-area-l: -1.5rem; 1325 } 1326 .hit-area-l-8 { 1327 --hit-area-l: -2rem; 1328 } 1329 .hit-area-l-10 { 1330 --hit-area-l: -2.5rem; 1331 } 1332 .hit-area-l-12 { 1333 --hit-area-l: -3rem; 1334 } 1335 1336 .hit-area-r-1 { 1337 --hit-area-r: -0.25rem; 1338 } 1339 .hit-area-r-2 { 1340 --hit-area-r: -0.5rem; 1341 } 1342 .hit-area-r-4 { 1343 --hit-area-r: -1rem; 1344 } 1345 .hit-area-r-6 { 1346 --hit-area-r: -1.5rem; 1347 } 1348 .hit-area-r-8 { 1349 --hit-area-r: -2rem; 1350 } 1351 .hit-area-r-10 { 1352 --hit-area-r: -2.5rem; 1353 } 1354 .hit-area-r-12 { 1355 --hit-area-r: -3rem; 1356 } 1357 1358 .hit-area-t-1 { 1359 --hit-area-t: -0.25rem; 1360 } 1361 .hit-area-t-2 { 1362 --hit-area-t: -0.5rem; 1363 } 1364 .hit-area-t-4 { 1365 --hit-area-t: -1rem; 1366 } 1367 .hit-area-t-6 { 1368 --hit-area-t: -1.5rem; 1369 } 1370 .hit-area-t-8 { 1371 --hit-area-t: -2rem; 1372 } 1373 .hit-area-t-10 { 1374 --hit-area-t: -2.5rem; 1375 } 1376 .hit-area-t-12 { 1377 --hit-area-t: -3rem; 1378 } 1379 1380 .hit-area-b-1 { 1381 --hit-area-b: -0.25rem; 1382 } 1383 .hit-area-b-2 { 1384 --hit-area-b: -0.5rem; 1385 } 1386 .hit-area-b-4 { 1387 --hit-area-b: -1rem; 1388 } 1389 .hit-area-b-6 { 1390 --hit-area-b: -1.5rem; 1391 } 1392 .hit-area-b-8 { 1393 --hit-area-b: -2rem; 1394 } 1395 .hit-area-b-10 { 1396 --hit-area-b: -2.5rem; 1397 } 1398 .hit-area-b-12 { 1399 --hit-area-b: -3rem; 1400 } 1401 1402 .hit-area-x-1 { 1403 --hit-area-l: -0.25rem; 1404 --hit-area-r: -0.25rem; 1405 } 1406 .hit-area-x-2 { 1407 --hit-area-l: -0.5rem; 1408 --hit-area-r: -0.5rem; 1409 } 1410 .hit-area-x-4 { 1411 --hit-area-l: -1rem; 1412 --hit-area-r: -1rem; 1413 } 1414 .hit-area-x-6 { 1415 --hit-area-l: -1.5rem; 1416 --hit-area-r: -1.5rem; 1417 } 1418 .hit-area-x-8 { 1419 --hit-area-l: -2rem; 1420 --hit-area-r: -2rem; 1421 } 1422 .hit-area-x-10 { 1423 --hit-area-l: -2.5rem; 1424 --hit-area-r: -2.5rem; 1425 } 1426 .hit-area-x-12 { 1427 --hit-area-l: -3rem; 1428 --hit-area-r: -3rem; 1429 } 1430 1431 .hit-area-y-1 { 1432 --hit-area-t: -0.25rem; 1433 --hit-area-b: -0.25rem; 1434 } 1435 .hit-area-y-2 { 1436 --hit-area-t: -0.5rem; 1437 --hit-area-b: -0.5rem; 1438 } 1439 .hit-area-y-4 { 1440 --hit-area-t: -1rem; 1441 --hit-area-b: -1rem; 1442 } 1443 .hit-area-y-6 { 1444 --hit-area-t: -1.5rem; 1445 --hit-area-b: -1.5rem; 1446 } 1447 .hit-area-y-8 { 1448 --hit-area-t: -2rem; 1449 --hit-area-b: -2rem; 1450 } 1451 .hit-area-y-10 { 1452 --hit-area-t: -2.5rem; 1453 --hit-area-b: -2.5rem; 1454 } 1455 .hit-area-y-12 { 1456 --hit-area-t: -3rem; 1457 --hit-area-b: -3rem; 1458 } 1459 1460 /* terminal-to-html: catpuccin colors */ 1461 .term-fg30 { 1462 color: #6c6f85; 1463 } /* black */ 1464 .term-fg31 { 1465 color: #d20f39; 1466 } /* red */ 1467 .term-fg32 { 1468 color: #40a02b; 1469 } /* green */ 1470 .term-fg33 { 1471 color: #df8e1d; 1472 } /* yellow */ 1473 .term-fg34 { 1474 color: #1e66f5; 1475 } /* blue */ 1476 .term-fg35 { 1477 color: #8839ef; 1478 } /* magenta */ 1479 .term-fg36 { 1480 color: #179299; 1481 } /* cyan */ 1482 .term-fg37 { 1483 color: #4c4f69; 1484 } /* white */ 1485 .term-fgi90 { 1486 color: #8c8fa1; 1487 } /* bright-black */ 1488 .term-fgi91 { 1489 color: #e64553; 1490 } /* bright-red */ 1491 .term-fgi92 { 1492 color: #40a02b; 1493 } /* bright-green */ 1494 .term-fgi93 { 1495 color: #e5c890; 1496 } /* bright-yellow */ 1497 .term-fgi94 { 1498 color: #209fb5; 1499 } /* bright-blue */ 1500 .term-fgi95 { 1501 color: #ea76cb; 1502 } /* bright-magenta */ 1503 .term-fgi96 { 1504 color: #04a5e5; 1505 } /* bright-cyan */ 1506 .term-fgi97 { 1507 color: #bcc0cc; 1508 } /* bright-white */ 1509 .term-bg40 { 1510 background-color: #6c6f85; 1511 } /* black */ 1512 .term-bg41 { 1513 background-color: #d20f39; 1514 } /* red */ 1515 .term-bg42 { 1516 background-color: #40a02b; 1517 } /* green */ 1518 .term-bg43 { 1519 background-color: #df8e1d; 1520 } /* yellow */ 1521 .term-bg44 { 1522 background-color: #1e66f5; 1523 } /* blue */ 1524 .term-bg45 { 1525 background-color: #8839ef; 1526 } /* magenta */ 1527 .term-bg46 { 1528 background-color: #179299; 1529 } /* cyan */ 1530 .term-bg47 { 1531 background-color: #dce0e8; 1532 } /* white */ 1533 .term-fg1 { 1534 @apply font-bold; 1535 } 1536 .term-fg2 { 1537 @apply opacity-60; 1538 } 1539 .term-fg3 { 1540 @apply italic; 1541 } 1542 .term-fg4 { 1543 @apply underline; 1544 } 1545 .term-fg9 { 1546 @apply line-through; 1547 } 1548 1549 @media (prefers-color-scheme: dark) { 1550 .term-fg30 { 1551 color: #a5adcb; 1552 } /* black */ 1553 .term-fg31 { 1554 color: #ed8796; 1555 } /* red */ 1556 .term-fg32 { 1557 color: #a6da95; 1558 } /* green */ 1559 .term-fg33 { 1560 color: #eed49f; 1561 } /* yellow */ 1562 .term-fg34 { 1563 color: #8aadf4; 1564 } /* blue */ 1565 .term-fg35 { 1566 color: #c6a0f6; 1567 } /* magenta */ 1568 .term-fg36 { 1569 color: #8bd5ca; 1570 } /* cyan */ 1571 .term-fg37 { 1572 color: #cad3f5; 1573 } /* white */ 1574 .term-fgi90 { 1575 color: #8087a2; 1576 } /* bright-black */ 1577 .term-fgi91 { 1578 color: #f5bde6; 1579 } /* bright-red */ 1580 .term-fgi92 { 1581 color: #a6da95; 1582 } /* bright-green */ 1583 .term-fgi93 { 1584 color: #f5a97f; 1585 } /* bright-yellow */ 1586 .term-fgi94 { 1587 color: #7dc4e4; 1588 } /* bright-blue */ 1589 .term-fgi95 { 1590 color: #f4dbd6; 1591 } /* bright-magenta */ 1592 .term-fgi96 { 1593 color: #91d7e3; 1594 } /* bright-cyan */ 1595 .term-fgi97 { 1596 color: #f0c6c6; 1597 } /* bright-white */ 1598 .term-bg40 { 1599 background-color: #a5adcb; 1600 } /* black */ 1601 .term-bg41 { 1602 background-color: #ed8796; 1603 } /* red */ 1604 .term-bg42 { 1605 background-color: #a6da95; 1606 } /* green */ 1607 .term-bg43 { 1608 background-color: #eed49f; 1609 } /* yellow */ 1610 .term-bg44 { 1611 background-color: #8aadf4; 1612 } /* blue */ 1613 .term-bg45 { 1614 background-color: #c6a0f6; 1615 } /* magenta */ 1616 .term-bg46 { 1617 background-color: #8bd5ca; 1618 } /* cyan */ 1619 .term-bg47 { 1620 background-color: #494d64; 1621 } /* white */ 1622 } 1623} 1624 1625.focus-pill { 1626 --r: 10px; 1627 1628 &::before, 1629 &::after { 1630 @apply bg-indigo-600 absolute bottom-0; 1631 content: ""; 1632 width: var(--r); 1633 height: var(--r); 1634 -webkit-mask: radial-gradient(var(--r) at var(--r) 0, #0000 98%, #000); 1635 mask: radial-gradient(var(--r) at var(--r) 0, #0000 98%, #000); 1636 } 1637 1638 &::before { 1639 left: calc(-1 * var(--r)); 1640 @apply -scale-x-100; 1641 } 1642 1643 &::after { 1644 right: calc(-1 * var(--r)); 1645 } 1646}