forked from tangled.org/core
Monorepo for Tangled
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"); 8 font-weight: normal; 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") format("woff2"); 16 font-weight: normal; 17 font-style: italic; 18 font-display: swap; 19 } 20 21 @font-face { 22 font-family: "IBMPlexMono"; 23 src: url("/static/fonts/IBMPlexMono-Regular.woff2") format("woff2"); 24 font-weight: normal; 25 font-style: italic; 26 font-display: swap; 27 } 28 29 ::selection { 30 @apply bg-yellow-400 text-black bg-opacity-30 dark:bg-yellow-600 dark:bg-opacity-50 dark:text-white; 31 } 32 33 @layer base { 34 html { 35 font-size: 14px; 36 } 37 @supports (font-variation-settings: normal) { 38 html { 39 font-feature-settings: 40 "ss01" 1, 41 "kern" 1, 42 "liga" 1, 43 "cv05" 1, 44 "tnum" 1; 45 } 46 } 47 48 a { 49 @apply no-underline text-black hover:underline hover:text-gray-800 dark:text-white dark:hover:text-gray-300; 50 } 51 52 label { 53 @apply block mb-2 text-gray-900 text-sm font-bold py-2 uppercase dark:text-gray-100; 54 } 55 input { 56 @apply border border-gray-400 block rounded bg-gray-50 focus:ring-black p-3 dark:bg-gray-800 dark:border-gray-600 dark:text-white dark:focus:ring-gray-400; 57 } 58 textarea { 59 @apply border border-gray-400 block rounded bg-gray-50 focus:ring-black p-3 dark:bg-gray-800 dark:border-gray-600 dark:text-white dark:focus:ring-gray-400; 60 } 61 details summary::-webkit-details-marker { 62 display: none; 63 } 64 } 65 66 @layer components { 67 .btn { 68 @apply relative z-10 inline-flex min-h-[30px] cursor-pointer items-center 69 justify-center bg-transparent px-2 pb-[0.2rem] text-base 70 text-gray-900 before:absolute before:inset-0 before:-z-10 71 before:block before:rounded before:border before:border-gray-200 72 before:bg-white before:drop-shadow-sm 73 before:content-[''] hover:before:border-gray-300 74 hover:before:bg-gray-50 75 hover:before:shadow-[0_2px_2px_0_rgba(20,20,96,0.1),inset_0_-2px_0_0_#f5f5f5] 76 focus:outline-none focus-visible:before:outline 77 focus-visible:before:outline-4 focus-visible:before:outline-gray-500 78 active:before:shadow-[inset_0_2px_2px_0_rgba(20,20,96,0.1)] 79 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:before:border-gray-200 80 disabled:hover:before:bg-white disabled:hover:before:shadow-none 81 dark:text-gray-100 dark:before:bg-gray-800 dark:before:border-gray-700 82 dark:hover:before:border-gray-600 dark:hover:before:bg-gray-700 83 dark:hover:before:shadow-[0_2px_2px_0_rgba(0,0,0,0.2),inset_0_-2px_0_0_#2d3748] 84 dark:focus-visible:before:outline-gray-400 85 dark:active:before:shadow-[inset_0_2px_2px_0_rgba(0,0,0,0.3)] 86 dark:disabled:hover:before:bg-gray-800 dark:disabled:hover:before:border-gray-700; 87 } 88 } 89 @layer utilities { 90 .error { 91 @apply py-1 text-red-400 dark:text-red-300; 92 } 93 .success { 94 @apply py-1 text-gray-900 dark:text-gray-100; 95 } 96 } 97} 98 99/* Background */ 100.bg { 101 color: #4c4f69; 102 background-color: #eff1f5; 103} 104/* PreWrapper */ 105.chroma { 106 color: #4c4f69; 107 background-color: #eff1f5; 108} 109/* Error */ 110.chroma .err { 111 color: #d20f39; 112} 113/* LineLink */ 114.chroma .lnlinks { 115 outline: none; 116 text-decoration: none; 117 color: inherit; 118} 119/* LineTableTD */ 120.chroma .lntd { 121 vertical-align: top; 122 padding: 0; 123 margin: 0; 124 border: 0; 125} 126/* LineTable */ 127.chroma .lntable { 128 border-spacing: 0; 129 padding: 0; 130 margin: 0; 131 border: 0; 132} 133/* LineHighlight */ 134.chroma .hl { 135 background-color: #bcc0cc; 136} 137/* LineNumbersTable */ 138.chroma .lnt { 139 white-space: pre; 140 -webkit-user-select: none; 141 user-select: none; 142 margin-right: 0.4em; 143 padding: 0 0.4em 0 0.4em; 144 color: #8c8fa1; 145} 146/* LineNumbers */ 147.chroma .ln { 148 white-space: pre; 149 -webkit-user-select: none; 150 user-select: none; 151 margin-right: 0.4em; 152 padding: 0 0.4em 0 0.4em; 153 color: #8c8fa1; 154} 155/* Line */ 156.chroma .line { 157 display: flex; 158} 159/* Keyword */ 160.chroma .k { 161 color: #8839ef; 162} 163/* KeywordConstant */ 164.chroma .kc { 165 color: #fe640b; 166} 167/* KeywordDeclaration */ 168.chroma .kd { 169 color: #d20f39; 170} 171/* KeywordNamespace */ 172.chroma .kn { 173 color: #179299; 174} 175/* KeywordPseudo */ 176.chroma .kp { 177 color: #8839ef; 178} 179/* KeywordReserved */ 180.chroma .kr { 181 color: #8839ef; 182} 183/* KeywordType */ 184.chroma .kt { 185 color: #d20f39; 186} 187/* NameAttribute */ 188.chroma .na { 189 color: #1e66f5; 190} 191/* NameBuiltin */ 192.chroma .nb { 193 color: #04a5e5; 194} 195/* NameBuiltinPseudo */ 196.chroma .bp { 197 color: #04a5e5; 198} 199/* NameClass */ 200.chroma .nc { 201 color: #df8e1d; 202} 203/* NameConstant */ 204.chroma .no { 205 color: #df8e1d; 206} 207/* NameDecorator */ 208.chroma .nd { 209 color: #1e66f5; 210 font-weight: bold; 211} 212/* NameEntity */ 213.chroma .ni { 214 color: #179299; 215} 216/* NameException */ 217.chroma .ne { 218 color: #fe640b; 219} 220/* NameFunction */ 221.chroma .nf { 222 color: #1e66f5; 223} 224/* NameFunctionMagic */ 225.chroma .fm { 226 color: #1e66f5; 227} 228/* NameLabel */ 229.chroma .nl { 230 color: #04a5e5; 231} 232/* NameNamespace */ 233.chroma .nn { 234 color: #fe640b; 235} 236/* NameProperty */ 237.chroma .py { 238 color: #fe640b; 239} 240/* NameTag */ 241.chroma .nt { 242 color: #8839ef; 243} 244/* NameVariable */ 245.chroma .nv { 246 color: #dc8a78; 247} 248/* NameVariableClass */ 249.chroma .vc { 250 color: #dc8a78; 251} 252/* NameVariableGlobal */ 253.chroma .vg { 254 color: #dc8a78; 255} 256/* NameVariableInstance */ 257.chroma .vi { 258 color: #dc8a78; 259} 260/* NameVariableMagic */ 261.chroma .vm { 262 color: #dc8a78; 263} 264/* LiteralString */ 265.chroma .s { 266 color: #40a02b; 267} 268/* LiteralStringAffix */ 269.chroma .sa { 270 color: #d20f39; 271} 272/* LiteralStringBacktick */ 273.chroma .sb { 274 color: #40a02b; 275} 276/* LiteralStringChar */ 277.chroma .sc { 278 color: #40a02b; 279} 280/* LiteralStringDelimiter */ 281.chroma .dl { 282 color: #1e66f5; 283} 284/* LiteralStringDoc */ 285.chroma .sd { 286 color: #9ca0b0; 287} 288/* LiteralStringDouble */ 289.chroma .s2 { 290 color: #40a02b; 291} 292/* LiteralStringEscape */ 293.chroma .se { 294 color: #1e66f5; 295} 296/* LiteralStringHeredoc */ 297.chroma .sh { 298 color: #9ca0b0; 299} 300/* LiteralStringInterpol */ 301.chroma .si { 302 color: #40a02b; 303} 304/* LiteralStringOther */ 305.chroma .sx { 306 color: #40a02b; 307} 308/* LiteralStringRegex */ 309.chroma .sr { 310 color: #179299; 311} 312/* LiteralStringSingle */ 313.chroma .s1 { 314 color: #40a02b; 315} 316/* LiteralStringSymbol */ 317.chroma .ss { 318 color: #40a02b; 319} 320/* LiteralNumber */ 321.chroma .m { 322 color: #fe640b; 323} 324/* LiteralNumberBin */ 325.chroma .mb { 326 color: #fe640b; 327} 328/* LiteralNumberFloat */ 329.chroma .mf { 330 color: #fe640b; 331} 332/* LiteralNumberHex */ 333.chroma .mh { 334 color: #fe640b; 335} 336/* LiteralNumberInteger */ 337.chroma .mi { 338 color: #fe640b; 339} 340/* LiteralNumberIntegerLong */ 341.chroma .il { 342 color: #fe640b; 343} 344/* LiteralNumberOct */ 345.chroma .mo { 346 color: #fe640b; 347} 348/* Operator */ 349.chroma .o { 350 color: #04a5e5; 351 font-weight: bold; 352} 353/* OperatorWord */ 354.chroma .ow { 355 color: #04a5e5; 356 font-weight: bold; 357} 358/* Comment */ 359.chroma .c { 360 color: #9ca0b0; 361 font-style: italic; 362} 363/* CommentHashbang */ 364.chroma .ch { 365 color: #9ca0b0; 366 font-style: italic; 367} 368/* CommentMultiline */ 369.chroma .cm { 370 color: #9ca0b0; 371 font-style: italic; 372} 373/* CommentSingle */ 374.chroma .c1 { 375 color: #9ca0b0; 376 font-style: italic; 377} 378/* CommentSpecial */ 379.chroma .cs { 380 color: #9ca0b0; 381 font-style: italic; 382} 383/* CommentPreproc */ 384.chroma .cp { 385 color: #9ca0b0; 386 font-style: italic; 387} 388/* CommentPreprocFile */ 389.chroma .cpf { 390 color: #9ca0b0; 391 font-weight: bold; 392 font-style: italic; 393} 394/* GenericDeleted */ 395.chroma .gd { 396 color: #d20f39; 397 background-color: oklch(93.6% 0.032 17.717); 398} 399/* GenericEmph */ 400.chroma .ge { 401 font-style: italic; 402} 403/* GenericError */ 404.chroma .gr { 405 color: #d20f39; 406} 407/* GenericHeading */ 408.chroma .gh { 409 color: #fe640b; 410 font-weight: bold; 411} 412/* GenericInserted */ 413.chroma .gi { 414 color: #40a02b; 415 background-color: oklch(96.2% 0.044 156.743); 416} 417/* GenericStrong */ 418.chroma .gs { 419 font-weight: bold; 420} 421/* GenericSubheading */ 422.chroma .gu { 423 color: #fe640b; 424 font-weight: bold; 425} 426/* GenericTraceback */ 427.chroma .gt { 428 color: #d20f39; 429} 430/* GenericUnderline */ 431.chroma .gl { 432 text-decoration: underline; 433} 434 435@media (prefers-color-scheme: dark) { 436 /* Background */ 437 .bg { 438 color: #cad3f5; 439 background-color: #24273a; 440 } 441 /* PreWrapper */ 442 .chroma { 443 color: #cad3f5; 444 background-color: #24273a; 445 } 446 /* Error */ 447 .chroma .err { 448 color: #ed8796; 449 } 450 /* LineLink */ 451 .chroma .lnlinks { 452 outline: none; 453 text-decoration: none; 454 color: inherit; 455 } 456 /* LineTableTD */ 457 .chroma .lntd { 458 vertical-align: top; 459 padding: 0; 460 margin: 0; 461 border: 0; 462 } 463 /* LineTable */ 464 .chroma .lntable { 465 border-spacing: 0; 466 padding: 0; 467 margin: 0; 468 border: 0; 469 } 470 /* LineHighlight */ 471 .chroma .hl { 472 background-color: #494d64; 473 } 474 /* LineNumbersTable */ 475 .chroma .lnt { 476 white-space: pre; 477 -webkit-user-select: none; 478 user-select: none; 479 margin-right: 0.4em; 480 padding: 0 0.4em 0 0.4em; 481 color: #8087a2; 482 } 483 /* LineNumbers */ 484 .chroma .ln { 485 white-space: pre; 486 -webkit-user-select: none; 487 user-select: none; 488 margin-right: 0.4em; 489 padding: 0 0.4em 0 0.4em; 490 color: #8087a2; 491 } 492 /* Line */ 493 .chroma .line { 494 display: flex; 495 } 496 /* Keyword */ 497 .chroma .k { 498 color: #c6a0f6; 499 } 500 /* KeywordConstant */ 501 .chroma .kc { 502 color: #f5a97f; 503 } 504 /* KeywordDeclaration */ 505 .chroma .kd { 506 color: #ed8796; 507 } 508 /* KeywordNamespace */ 509 .chroma .kn { 510 color: #8bd5ca; 511 } 512 /* KeywordPseudo */ 513 .chroma .kp { 514 color: #c6a0f6; 515 } 516 /* KeywordReserved */ 517 .chroma .kr { 518 color: #c6a0f6; 519 } 520 /* KeywordType */ 521 .chroma .kt { 522 color: #ed8796; 523 } 524 /* NameAttribute */ 525 .chroma .na { 526 color: #8aadf4; 527 } 528 /* NameBuiltin */ 529 .chroma .nb { 530 color: #91d7e3; 531 } 532 /* NameBuiltinPseudo */ 533 .chroma .bp { 534 color: #91d7e3; 535 } 536 /* NameClass */ 537 .chroma .nc { 538 color: #eed49f; 539 } 540 /* NameConstant */ 541 .chroma .no { 542 color: #eed49f; 543 } 544 /* NameDecorator */ 545 .chroma .nd { 546 color: #8aadf4; 547 font-weight: bold; 548 } 549 /* NameEntity */ 550 .chroma .ni { 551 color: #8bd5ca; 552 } 553 /* NameException */ 554 .chroma .ne { 555 color: #f5a97f; 556 } 557 /* NameFunction */ 558 .chroma .nf { 559 color: #8aadf4; 560 } 561 /* NameFunctionMagic */ 562 .chroma .fm { 563 color: #8aadf4; 564 } 565 /* NameLabel */ 566 .chroma .nl { 567 color: #91d7e3; 568 } 569 /* NameNamespace */ 570 .chroma .nn { 571 color: #f5a97f; 572 } 573 /* NameProperty */ 574 .chroma .py { 575 color: #f5a97f; 576 } 577 /* NameTag */ 578 .chroma .nt { 579 color: #c6a0f6; 580 } 581 /* NameVariable */ 582 .chroma .nv { 583 color: #f4dbd6; 584 } 585 /* NameVariableClass */ 586 .chroma .vc { 587 color: #f4dbd6; 588 } 589 /* NameVariableGlobal */ 590 .chroma .vg { 591 color: #f4dbd6; 592 } 593 /* NameVariableInstance */ 594 .chroma .vi { 595 color: #f4dbd6; 596 } 597 /* NameVariableMagic */ 598 .chroma .vm { 599 color: #f4dbd6; 600 } 601 /* LiteralString */ 602 .chroma .s { 603 color: #a6da95; 604 } 605 /* LiteralStringAffix */ 606 .chroma .sa { 607 color: #ed8796; 608 } 609 /* LiteralStringBacktick */ 610 .chroma .sb { 611 color: #a6da95; 612 } 613 /* LiteralStringChar */ 614 .chroma .sc { 615 color: #a6da95; 616 } 617 /* LiteralStringDelimiter */ 618 .chroma .dl { 619 color: #8aadf4; 620 } 621 /* LiteralStringDoc */ 622 .chroma .sd { 623 color: #6e738d; 624 } 625 /* LiteralStringDouble */ 626 .chroma .s2 { 627 color: #a6da95; 628 } 629 /* LiteralStringEscape */ 630 .chroma .se { 631 color: #8aadf4; 632 } 633 /* LiteralStringHeredoc */ 634 .chroma .sh { 635 color: #6e738d; 636 } 637 /* LiteralStringInterpol */ 638 .chroma .si { 639 color: #a6da95; 640 } 641 /* LiteralStringOther */ 642 .chroma .sx { 643 color: #a6da95; 644 } 645 /* LiteralStringRegex */ 646 .chroma .sr { 647 color: #8bd5ca; 648 } 649 /* LiteralStringSingle */ 650 .chroma .s1 { 651 color: #a6da95; 652 } 653 /* LiteralStringSymbol */ 654 .chroma .ss { 655 color: #a6da95; 656 } 657 /* LiteralNumber */ 658 .chroma .m { 659 color: #f5a97f; 660 } 661 /* LiteralNumberBin */ 662 .chroma .mb { 663 color: #f5a97f; 664 } 665 /* LiteralNumberFloat */ 666 .chroma .mf { 667 color: #f5a97f; 668 } 669 /* LiteralNumberHex */ 670 .chroma .mh { 671 color: #f5a97f; 672 } 673 /* LiteralNumberInteger */ 674 .chroma .mi { 675 color: #f5a97f; 676 } 677 /* LiteralNumberIntegerLong */ 678 .chroma .il { 679 color: #f5a97f; 680 } 681 /* LiteralNumberOct */ 682 .chroma .mo { 683 color: #f5a97f; 684 } 685 /* Operator */ 686 .chroma .o { 687 color: #91d7e3; 688 font-weight: bold; 689 } 690 /* OperatorWord */ 691 .chroma .ow { 692 color: #91d7e3; 693 font-weight: bold; 694 } 695 /* Comment */ 696 .chroma .c { 697 color: #6e738d; 698 font-style: italic; 699 } 700 /* CommentHashbang */ 701 .chroma .ch { 702 color: #6e738d; 703 font-style: italic; 704 } 705 /* CommentMultiline */ 706 .chroma .cm { 707 color: #6e738d; 708 font-style: italic; 709 } 710 /* CommentSingle */ 711 .chroma .c1 { 712 color: #6e738d; 713 font-style: italic; 714 } 715 /* CommentSpecial */ 716 .chroma .cs { 717 color: #6e738d; 718 font-style: italic; 719 } 720 /* CommentPreproc */ 721 .chroma .cp { 722 color: #6e738d; 723 font-style: italic; 724 } 725 /* CommentPreprocFile */ 726 .chroma .cpf { 727 color: #6e738d; 728 font-weight: bold; 729 font-style: italic; 730 } 731 /* GenericDeleted */ 732 .chroma .gd { 733 color: #ed8796; 734 background-color: oklch(44.4% 0.177 26.899 / 0.5); 735 } 736 /* GenericEmph */ 737 .chroma .ge { 738 font-style: italic; 739 } 740 /* GenericError */ 741 .chroma .gr { 742 color: #ed8796; 743 } 744 /* GenericHeading */ 745 .chroma .gh { 746 color: #f5a97f; 747 font-weight: bold; 748 } 749 /* GenericInserted */ 750 .chroma .gi { 751 color: #a6da95; 752 background-color: oklch(44.8% 0.119 151.328 / 0.5); 753 } 754 /* GenericStrong */ 755 .chroma .gs { 756 font-weight: bold; 757 } 758 /* GenericSubheading */ 759 .chroma .gu { 760 color: #f5a97f; 761 font-weight: bold; 762 } 763 /* GenericTraceback */ 764 .chroma .gt { 765 color: #ed8796; 766 } 767 /* GenericUnderline */ 768 .chroma .gl { 769 text-decoration: underline; 770 } 771} 772 773.chroma .line:has(.ln:target) { 774 @apply bg-amber-400/30 dark:bg-amber-500/20; 775}