This repository has no description
0

Configure Feed

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

niri / apps / web / src / styles.css
11 kB 728 lines
1:root { 2 color-scheme: dark; 3 font-family: 4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 5 background: #000; 6 color: #ededed; 7 --bg: #000; 8 --panel: #050505; 9 --panel-soft: #0b0b0b; 10 --line: #262626; 11 --line-soft: #171717; 12 --ink: #ededed; 13 --muted: #8a8a8a; 14 --quiet: #5f5f5f; 15 --agent: #d787ff; 16 --you: #6bd7cf; 17 --tool: #e5c07b; 18 --context: #777; 19 --green: #7ee787; 20 --cyan: #79c0ff; 21 --pink: #ff7eb6; 22 --violet: #b18cff; 23 --amber: #e5c07b; 24 --danger-bg: #160609; 25 --danger-ink: #ff8f9a; 26} 27 28* { 29 box-sizing: border-box; 30} 31 32html, 33body, 34#root { 35 min-height: 100vh; 36 background: #000; 37} 38 39body { 40 margin: 0; 41 overflow: hidden; 42} 43 44button, 45input, 46textarea { 47 font: inherit; 48} 49 50button { 51 cursor: pointer; 52 border: 1px solid #303030; 53 border-radius: 6px; 54 background: #0c0c0c; 55 color: var(--ink); 56 padding: 7px 10px; 57} 58 59button:hover:not(:disabled) { 60 border-color: #555; 61 background: #151515; 62} 63 64button:disabled { 65 cursor: default; 66 opacity: 0.46; 67} 68 69h1, 70h2, 71p { 72 margin: 0; 73} 74 75h1 { 76 font-size: 18px; 77 font-weight: 700; 78 letter-spacing: 0; 79} 80 81h2 { 82 font-size: 15px; 83 font-weight: 700; 84 letter-spacing: 0; 85} 86 87.place { 88 height: 100vh; 89 display: grid; 90 grid-template-columns: 260px minmax(0, 1fr) 286px; 91 background: #000; 92 color: var(--ink); 93} 94 95.connections, 96.notes, 97.thread { 98 min-width: 0; 99 background: #000; 100} 101 102.connections { 103 border-right: 1px solid var(--line); 104} 105 106.notes { 107 border-left: 1px solid var(--line); 108} 109 110.connections header, 111.thread-head { 112 min-height: 58px; 113 display: flex; 114 align-items: center; 115 justify-content: space-between; 116 gap: 14px; 117 border-bottom: 1px solid var(--line); 118} 119 120.connections header { 121 padding: 0 16px; 122} 123 124.connect-form { 125 display: grid; 126 gap: 8px; 127 padding: 14px 16px; 128 border-bottom: 1px solid var(--line); 129} 130 131input, 132textarea { 133 width: 100%; 134 border: 1px solid #303030; 135 border-radius: 6px; 136 background: #020202; 137 color: var(--ink); 138 padding: 9px 10px; 139 outline: none; 140} 141 142input::placeholder, 143textarea::placeholder { 144 color: #666; 145} 146 147input:focus, 148textarea:focus { 149 border-color: #6f6f6f; 150 box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.08); 151} 152 153textarea { 154 line-height: 1.55; 155} 156 157.agent-list { 158 padding: 12px 0; 159} 160 161.agent-list section + section { 162 margin-top: 16px; 163} 164 165.panel-line { 166 display: flex; 167 align-items: center; 168 justify-content: space-between; 169 gap: 8px; 170 padding: 0 16px 7px; 171 color: var(--quiet); 172 font-size: 12px; 173} 174 175.panel-line button { 176 border: 0; 177 background: transparent; 178 color: #b36f6f; 179 padding: 0; 180} 181 182.agent-button { 183 width: 100%; 184 display: grid; 185 grid-template-columns: minmax(0, 1fr) auto; 186 align-items: baseline; 187 gap: 10px; 188 border: 0; 189 border-radius: 0; 190 border-left: 2px solid transparent; 191 background: transparent; 192 color: var(--ink); 193 padding: 10px 16px 10px 14px; 194 text-align: left; 195} 196 197.agent-button.is-current { 198 border-left-color: var(--agent); 199 background: #090909; 200} 201 202.agent-button span { 203 min-width: 0; 204 overflow: hidden; 205 text-overflow: ellipsis; 206 white-space: nowrap; 207} 208 209.agent-button small, 210.quiet, 211.thread-head p, 212dt, 213.compactions small { 214 color: var(--muted); 215} 216 217.quiet { 218 padding: 8px 16px; 219 font-size: 12px; 220 line-height: 1.45; 221} 222 223.thread { 224 height: 100vh; 225 display: grid; 226 grid-template-rows: auto auto minmax(0, 1fr) auto; 227} 228 229.thread-head { 230 padding: 0 28px; 231} 232 233.thread-head > div:first-child { 234 min-width: 0; 235} 236 237.thread-head p { 238 margin-top: 4px; 239 font-size: 12px; 240} 241 242.readout { 243 display: flex; 244 gap: 16px; 245 color: var(--quiet); 246 font-size: 12px; 247 white-space: nowrap; 248} 249 250.error-line { 251 padding: 10px 28px; 252 border-bottom: 1px solid #351014; 253 background: var(--danger-bg); 254 color: var(--danger-ink); 255 font-size: 13px; 256} 257 258.messages { 259 min-height: 0; 260 overflow: auto; 261 padding: 18px 28px 34px; 262 scroll-padding-bottom: 26px; 263} 264 265.empty { 266 max-width: 780px; 267 color: var(--muted); 268 font-size: 14px; 269 line-height: 1.65; 270} 271 272.terminal-message { 273 width: 100%; 274 margin: 0 0 15px; 275} 276 277.terminal-message + .terminal-message-note, 278.terminal-message + .terminal-message-context { 279 margin-top: 20px; 280} 281 282.terminal-row { 283 display: grid; 284 grid-template-columns: max-content minmax(0, 1fr) auto; 285 align-items: start; 286 gap: 0 0.75ch; 287} 288 289.terminal-prefix { 290 line-height: 1.58; 291 font-weight: 700; 292 white-space: nowrap; 293} 294 295.terminal-prefix-agent { 296 color: var(--agent); 297} 298 299.terminal-prefix-user { 300 color: var(--you); 301} 302 303.terminal-prefix-tool { 304 color: var(--tool); 305} 306 307.terminal-prefix-context, 308.terminal-prefix-note { 309 color: var(--context); 310 font-weight: 600; 311} 312 313.terminal-prefix-error { 314 color: var(--danger-ink); 315} 316 317.terminal-body { 318 min-width: 0; 319 color: #ececec; 320} 321 322.terminal-message-user .terminal-body { 323 color: #e9fff9; 324} 325 326.terminal-message-context .terminal-body, 327.terminal-message-note .terminal-body { 328 color: #8b8b8b; 329} 330 331.terminal-time { 332 padding-top: 3px; 333 margin-left: 18px; 334 color: #484848; 335 font-size: 11px; 336 line-height: 1.4; 337 white-space: nowrap; 338} 339 340.terminal-summary-text { 341 display: inline; 342 color: inherit; 343 line-height: 1.58; 344} 345 346.terminal-command { 347 display: inline-flex; 348 max-width: 100%; 349 align-items: baseline; 350 gap: 12px; 351 border: 0; 352 border-radius: 0; 353 background: transparent; 354 color: var(--tool); 355 padding: 0; 356 text-align: left; 357 line-height: 1.58; 358} 359 360.terminal-command:hover:not(:disabled) { 361 background: transparent; 362 color: #f0d28f; 363} 364 365.terminal-command span { 366 min-width: 0; 367 overflow: hidden; 368 text-overflow: ellipsis; 369 white-space: nowrap; 370} 371 372.terminal-command small { 373 flex: 0 0 auto; 374 color: #777; 375 font-size: 12px; 376 font-weight: 400; 377} 378 379.terminal-inline-action { 380 margin-left: 10px; 381 border: 0; 382 border-radius: 0; 383 background: transparent; 384 color: #7eb6d9; 385 padding: 0; 386 line-height: 1.58; 387 text-decoration: underline; 388 text-decoration-color: #335266; 389 text-underline-offset: 3px; 390} 391 392.terminal-inline-action:hover:not(:disabled) { 393 background: transparent; 394 color: #a7d8f2; 395} 396 397.terminal-block { 398 margin: 8px 0 0; 399 border-left: 1px solid #526a6a; 400 padding-left: 12px; 401} 402 403.terminal-block-tool { 404 border-left-color: #655b36; 405} 406 407.markdown-body { 408 max-width: none; 409 color: inherit; 410 font-size: 14px; 411 line-height: 1.58; 412} 413 414.terminal-message-agent .markdown-body { 415 color: #ededed; 416} 417 418.terminal-message-user .markdown-body { 419 color: #e9fff9; 420} 421 422.markdown-body > :first-child { 423 margin-top: 0; 424} 425 426.markdown-body > :last-child { 427 margin-bottom: 0; 428} 429 430.markdown-body p, 431.markdown-body ul, 432.markdown-body ol, 433.markdown-body blockquote, 434.markdown-body pre, 435.markdown-body table { 436 margin: 0 0 12px; 437} 438 439.markdown-body ul, 440.markdown-body ol { 441 padding-left: 22px; 442} 443 444.markdown-body li + li { 445 margin-top: 4px; 446} 447 448.markdown-body a { 449 color: #d7d7d7; 450 text-decoration-color: #777; 451 text-underline-offset: 3px; 452} 453 454.markdown-body code:not(pre code) { 455 border: 1px solid #2b2b2b; 456 border-radius: 4px; 457 background: #111; 458 color: #f0f0f0; 459 padding: 1px 5px; 460 font: inherit; 461 font-size: 0.94em; 462} 463 464.markdown-body pre, 465.code-block { 466 width: 100%; 467 max-height: 520px; 468 overflow: auto; 469 border: 0; 470 border-left: 1px solid #526a6a; 471 border-radius: 0; 472 background: #111; 473 padding: 10px 12px; 474 color: #ededed; 475 font: inherit; 476 font-size: 13px; 477 line-height: 1.58; 478} 479 480.code-block { 481 margin: 0; 482 white-space: pre; 483} 484 485.markdown-body pre { 486 margin-top: 6px; 487} 488 489.terminal-block .code-block { 490 border-left: 0; 491 background: #0d0d0d; 492} 493 494.markdown-body pre code, 495.code-block code { 496 background: transparent; 497 border: 0; 498 padding: 0; 499 color: inherit; 500 font: inherit; 501} 502 503.markdown-body blockquote { 504 border-left: 1px solid #454545; 505 color: #aaa; 506 padding-left: 12px; 507} 508 509.markdown-body table { 510 width: 100%; 511 border-collapse: collapse; 512 font-size: 13px; 513} 514 515.markdown-body th, 516.markdown-body td { 517 border: 1px solid #252525; 518 padding: 7px 9px; 519} 520 521.markdown-body th { 522 background: #0d0d0d; 523} 524 525.hljs-keyword, 526.hljs-selector-tag, 527.hljs-subst { 528 color: var(--pink); 529} 530 531.hljs-string, 532.hljs-title, 533.hljs-section, 534.hljs-name, 535.hljs-attribute { 536 color: var(--green); 537} 538 539.hljs-number, 540.hljs-literal, 541.hljs-symbol, 542.hljs-bullet { 543 color: var(--violet); 544} 545 546.hljs-built_in, 547.hljs-type, 548.hljs-class .hljs-title, 549.hljs-variable, 550.hljs-template-variable { 551 color: var(--cyan); 552} 553 554.hljs-comment, 555.hljs-quote, 556.hljs-deletion, 557.hljs-meta { 558 color: #777; 559} 560 561.hljs-addition { 562 color: var(--green); 563} 564 565.hljs-params, 566.hljs-attr { 567 color: var(--amber); 568} 569 570.composer { 571 display: grid; 572 grid-template-columns: minmax(0, 1fr) auto; 573 gap: 12px; 574 padding: 14px 28px 18px; 575 border-top: 1px solid var(--line); 576 background: #000; 577} 578 579.composer textarea { 580 min-height: 76px; 581 max-height: 190px; 582 resize: vertical; 583 background: #020202; 584} 585 586.composer button { 587 align-self: end; 588 min-width: 88px; 589 height: 40px; 590 background: #ededed; 591 border-color: #ededed; 592 color: #000; 593 font-weight: 700; 594} 595 596.notes { 597 padding: 0 16px 22px; 598 overflow: auto; 599} 600 601.notes section { 602 padding: 20px 0; 603 border-bottom: 1px solid var(--line); 604} 605 606.notes h2 { 607 margin-bottom: 13px; 608 color: #dcdcdc; 609} 610 611dl { 612 margin: 0; 613} 614 615dl div { 616 display: grid; 617 grid-template-columns: 72px minmax(0, 1fr); 618 gap: 10px; 619 padding: 6px 0; 620} 621 622dt { 623 font-size: 12px; 624} 625 626dd { 627 margin: 0; 628 color: #dedede; 629} 630 631.compactions { 632 display: grid; 633 gap: 10px; 634} 635 636.compactions article { 637 border-top: 1px solid var(--line-soft); 638 padding-top: 10px; 639} 640 641.compactions button { 642 width: 100%; 643 display: grid; 644 grid-template-columns: 48px minmax(0, 1fr); 645 gap: 3px 10px; 646 border: 0; 647 border-radius: 0; 648 background: transparent; 649 color: var(--ink); 650 padding: 0; 651 text-align: left; 652} 653 654.compactions button:hover:not(:disabled) { 655 background: transparent; 656} 657 658.compactions strong, 659.compactions small { 660 min-width: 0; 661 overflow: hidden; 662 text-overflow: ellipsis; 663 white-space: nowrap; 664} 665 666.compactions small { 667 grid-column: 2; 668} 669 670@media (max-width: 1120px) { 671 .place { 672 grid-template-columns: 230px minmax(0, 1fr); 673 } 674 675 .notes { 676 display: none; 677 } 678} 679 680@media (max-width: 760px) { 681 body { 682 overflow: auto; 683 } 684 685 .place { 686 min-height: 100vh; 687 height: auto; 688 grid-template-columns: 1fr; 689 } 690 691 .connections { 692 border-right: 0; 693 border-bottom: 1px solid var(--line); 694 } 695 696 .agent-list { 697 max-height: 220px; 698 overflow: auto; 699 } 700 701 .thread { 702 min-height: 72vh; 703 height: auto; 704 } 705 706 .thread-head, 707 .composer { 708 padding-left: 16px; 709 padding-right: 16px; 710 } 711 712 .messages { 713 padding: 16px 16px 24px; 714 } 715 716 .readout, 717 .terminal-time { 718 display: none; 719 } 720 721 .terminal-row { 722 grid-template-columns: max-content minmax(0, 1fr); 723 } 724 725 .composer { 726 grid-template-columns: 1fr; 727 } 728}