summaryrefslogtreecommitdiffstats
path: root/theme.css
diff options
context:
space:
mode:
Diffstat (limited to 'theme.css')
-rw-r--r--theme.css746
1 files changed, 746 insertions, 0 deletions
diff --git a/theme.css b/theme.css
new file mode 100644
index 0000000..1265c9d
--- /dev/null
+++ b/theme.css
@@ -0,0 +1,746 @@
1:root {
2 --gray0: hsl(270, 0%, 7%);
3 --gray1: hsl(270, 0%, 10%);
4 --gray2: hsl(270, 1%, 16%);
5 --gray3: hsl(270, 1%, 24%);
6 --gray4: hsl(270, 1%, 35%);
7 --gray5: hsl(270, 2%, 54%);
8 --gray6: hsl(270, 2%, 73%);
9 --gray7: hsl(270, 2%, 100%);
10
11 /* * */
12
13 --bg-hi: var(--gray0);
14 --bg: var(--gray1);
15
16 --obj-hi: var(--gray2);
17 --obj: var(--gray3);
18 --obj-lo: var(--gray4);
19
20 --fg-hi: var(--gray5);
21 --fg: var(--gray6);
22 --fg-lo: var(--gray7);
23
24 /* * */
25
26 --color--red: hsl(0, 91%, 73%);
27 --color--dark-red: hsl(0, 79%, 64%);
28 --color--brown: hsl(14, 58%, 59%);
29 --color--orange: hsl(19, 100%, 76%);
30 --color--blue: hsl(214, 100%, 76%);
31 --color--dark-blue: hsl(214, 100%, 57%);
32 --color--yellow: hsl(38, 100%, 76%);
33 --color--green: hsl(123, 43%, 66%);
34 --color--dark-green: hsl(123, 43%, 56%);
35 --color--cyan: hsl(180, 43%, 66%);
36 --color--dark-cyan: hsl(180, 43%, 54%);
37 --color--purple: hsl(267, 69%, 73%);
38 --color--pink: hsl(294, 69%, 73%);
39 --color--gray: hsl(0, 0%, 58%);
40 --color--light-gray: hsl(204, 5%, 82%);
41
42 /* * */
43
44 --color--sidebar--bg: var(--bg-hi);
45 --color--sidebar--fg: var(--fg);
46 --color--sidebar--fg-hi: var(--fg-hi);
47
48 --color--window--bg: var(--bg);
49
50 --color--input--bg: var(--obj);
51 --color--input--fg: var(--fg-lo);
52 --color--input--ph-fg: var(--fg-hi);
53
54 --color--sidebar-input--bg: var(--obj-hi);
55 --color--sidebar-input--fg: var(--fg-lo);
56 --color--sidebar-input--ph-fg: var(--fg-hi);
57
58 --color--sidebar-btn--bg: var(--obj-hi);
59 --color--sidebar-btn--fg: var(--fg);
60 --color--sidebar-btn--active-fg: var(--fg-lo);
61
62 --color--header--bg: var(--obj-hi);
63 --color--header--fg: var(--fg);
64
65 --color--date-marker--fg: var(--fg-hi);
66 --color--date-marker--border: var(--obj);
67
68 --color--msg--bg: var(--obj-hi);
69 --color--msg--border: var(--obj);
70 --color--msg--fg: var(--fg);
71 --color--msg--meta-fg: var(--fg-hi);
72 --color--msg--self-bg: var(--obj);
73 --color--msg--self-fg: var(--fg-lo);
74 --color--msg--action-fg: var(--fg-hi);
75
76 --color--cform--bg: var(--obj-hi);
77 --color--cform--fg: var(--fg);
78 --color--cform--nick-bg: var(--obj-lo);
79 --color--cform--nick-fg: var(--fg-lo);
80
81 --color--scrollbar--bg: transparent;
82 --color--scrollbar--fg: var(--obj);
83
84 --color--tooltip--bg: var(--obj);
85 --color--tooltip--fg: var(--fg-lo);
86
87 --color--popup--bg: var(--obj-hi);
88 --color--popup--fg: var(--fg);
89 --color--popup--title-fg: var(--fg-lo);
90 --color--popup--meta-fg: var(--fg-hi);
91 --color--popup--border: var(--obj);
92 --color--popup--item-hover-bg: var(--obj);
93 --color--popup--item-hover-fg: var(--fg-lo);
94 --color--popup--msg-bg: var(--obj);
95 --color--popup--msg-fg: var(--fg-lo);
96
97 /* * */
98
99 --dim--spacing: 1rem;
100
101 --dim--container--pad: .75rem;
102 --dim--container-lg--pad: 1.5rem;
103
104 --dim--input--height: 2.2rem;
105 --dim--input--pad-h: .7rem;
106
107 --dim--btn--pad-v: .6rem;
108 --dim--btn--pad-h: .7rem;
109
110 --dim--msg--pad-v: .5rem;
111 --dim--msg--pad-h: .7rem;
112
113 --dim--popup--pad: .3rem;
114 --dim--popup--item-pad-v: .4rem;
115 --dim--popup--item-pad-h: .7rem;
116
117 /* * */
118
119 --body-bg-color: var(--color--sidebar--bg);
120 --window-bg-color: var(--color--window--bg);
121 --body-color: var(--color--sidebar--fg);
122 --body-color-muted: var(--color--sidebar--fg-hi);
123 --link-color: var(--color--yellow);
124 --unread-marker-color: var(--color--yellow);
125 --date-marker-color: var(--color--date-marker--fg);
126 --highlight-bg-color: var(--bg-lo);
127 --highlight-border-color: var(--color--yellow);
128 --overlay-bg-color: rgba(0, 0, 0, .75);
129 --button-color: var(--color--yellow);
130}
131
132body {
133 scrollbar-color: var(--color--scrollbar--fg) var(--color--scrollbar--bg);
134}
135
136/* NICK COLORS */
137
138#chat.colored-nicks .user.color-1,
139#chat.colored-nicks .user.color-17 {
140 color: var(--color--red);
141}
142
143#chat.colored-nicks .user.color-2,
144#chat.colored-nicks .user.color-18 {
145 color: var(--color--purple);
146}
147
148#chat.colored-nicks .user.color-3,
149#chat.colored-nicks .user.color-19 {
150 color: var(--color--orange);
151}
152
153#chat.colored-nicks .user.color-4,
154#chat.colored-nicks .user.color-20 {
155 color: var(--color--green);
156}
157
158#chat.colored-nicks .user.color-5,
159#chat.colored-nicks .user.color-21 {
160 color: var(--color--cyan);
161}
162
163#chat.colored-nicks .user.color-6,
164#chat.colored-nicks .user.color-22 {
165 color: var(--color--blue);
166}
167
168#chat.colored-nicks .user.color-7,
169#chat.colored-nicks .user.color-23 {
170 color: var(--color--pink);
171}
172
173#chat.colored-nicks .user.color-8,
174#chat.colored-nicks .user.color-24 {
175 color: var(--color--yellow);
176}
177
178#chat.colored-nicks .user.color-9,
179#chat.colored-nicks .user.color-25 {
180 color: var(--color--red);
181}
182
183#chat.colored-nicks .user.color-10,
184#chat.colored-nicks .user.color-26 {
185 color: var(--color--purple);
186}
187
188#chat.colored-nicks .user.color-11,
189#chat.colored-nicks .user.color-27 {
190 color: var(--color--orange);
191}
192
193#chat.colored-nicks .user.color-12,
194#chat.colored-nicks .user.color-28 {
195 color: var(--color--green);
196}
197
198#chat.colored-nicks .user.color-13,
199#chat.colored-nicks .user.color-29 {
200 color: var(--color--cyan);
201}
202
203#chat.colored-nicks .user.color-14,
204#chat.colored-nicks .user.color-30 {
205 color: var(--color--blue);
206}
207
208#chat.colored-nicks .user.color-15,
209#chat.colored-nicks .user.color-31 {
210 color: var(--color--pink);
211}
212
213#chat.colored-nicks .user.color-16,
214#chat.colored-nicks .user.color-32 {
215 color: var(--color--yellow);
216}
217
218/* LAYOUT */
219
220#viewport {
221 padding: 0;
222}
223
224.window {
225 border-radius: 0;
226 box-shadow: none;
227}
228
229/* SIDEBAR */
230
231#sidebar {
232 padding: var(--dim--container--pad) 0 0;
233 color: var(--color--sidebar--fg);
234}
235
236.jump-to-input {
237 margin: var(--dim--container--pad);
238}
239
240#footer button {
241 border-radius: 0;
242 color: var(--color--sidebar-btn--fg);
243}
244
245.channel-list-item,
246.channel-list-item[data-type="lobby"],
247.jump-to-results .channel-list-item[data-type="lobby"] {
248 padding: var(--dim--btn--pad-v) var(--dim--container--pad);
249}
250
251#footer button.active,
252.channel-list-item.active,
253#footer button:hover,
254.channel-list-item:hover {
255 background-color: var(--color--sidebar-btn--bg);
256 color: var(--color--sidebar-btn--active-fg);
257}
258
259#footer button.active {
260 box-shadow: 0 -2px #fff inset;
261}
262
263.channel-list-item.active {
264 box-shadow: -2px 0 #fff inset;
265}
266
267#sidebar .network .collapse-network {
268 width: 14px;
269 margin-right: 12px;
270 padding-left: 0;
271}
272
273/* INPUT */
274
275::placeholder {
276 color: var(--color--input--ph-fg);
277}
278
279.input,
280#chat .userlist .search {
281 height: var(--dim--input--height);
282 padding: 0 var(--dim--input--pad-h);
283 line-height: var(--dim--input--height);
284}
285
286.input {
287 margin: 0;
288 border: 2px solid transparent;
289 border-radius: 3px;
290 background-color: var(--color--input--bg);
291 color: var(--color--input--fg);
292}
293
294.btn:active,
295.btn:focus,
296.input:focus {
297 box-shadow: none;
298}
299
300.jump-to-input::before,
301#chat .count::before {
302 right: var(--dim--input--pad-h);
303 color: var(--color--sidebar-input--ph-fg);
304 line-height: var(--dim--input--height) !important;
305}
306
307.jump-to-input .input {
308 border: 2px solid transparent;
309 border-radius: 3px;
310 background-color: var(--color--sidebar-input--bg);
311 color: var(--color--sidebar-input--fg);
312}
313
314.jump-to-input .input::placeholder {
315 color: var(--color--sidebar-input--ph-fg);
316}
317
318.input:not(:disabled):focus,
319.input:not(:disabled):hover {
320 border-color: var(--button-color);
321}
322
323#chat .userlist .count {
324 height: var(--dim--input--height);
325 background-color: var(--color--sidebar-input--bg);
326}
327
328textarea.input {
329 min-height: var(--dim--input--height);
330}
331
332/* HEADER */
333
334#chat .header {
335 position: relative;
336 z-index: 5;
337 border-bottom: 0;
338 background-color: var(--color--header--bg);
339 box-shadow: 0 0 2rem rgba(0, 0, 0, .25);
340}
341
342#chat button.mentions,
343#chat button.menu,
344#viewport .lt,
345#viewport .rt {
346 color: var(--color--header--fg);
347}
348
349#chat .date-marker::before {
350 border-color: var(--color--date-marker--border);
351}
352
353#chat .date-marker,
354#chat .unread-marker {
355 margin: var(--dim--spacing) 0;
356}
357
358/* USERLIST */
359
360#chat .userlist {
361 padding: var(--dim--container--pad);
362 border-left: 0;
363 background-color: var(--color--sidebar--bg);
364 line-height: inherit;
365}
366
367#chat .user-mode {
368 margin-top: var(--dim--spacing);
369 margin-bottom: 0;
370}
371
372#chat .userlist .names {
373 padding-bottom: 0;
374}
375
376#chat .user-mode::before,
377#chat .names .user {
378 padding: calc(var(--dim--btn--pad-v) * .5) var(--dim--btn--pad-h);
379}
380
381#chat .user-mode::before {
382 background-color: transparent;
383}
384
385#chat .names .user {
386 line-height: inherit;
387}
388
389#chat .userlist .user.active {
390 background-color: var(--color--sidebar-btn--bg);
391 color: var(--color--sidebar-btn--active-fg);
392}
393
394/* MESSAGE */
395
396#chat .messages {
397 display: flex;
398 flex-direction: column;
399 align-items: stretch;
400 padding: var(--dim--container-lg--pad);
401}
402
403#chat .msg {
404 display: grid;
405 align-self: flex-start;
406 grid-template-columns: auto auto 1fr;
407 grid-template-rows: auto;
408 grid-template-areas: "time user content";
409 margin-top: calc(var(--dim--spacing) * .5);
410}
411
412#chat .content,
413#chat .from,
414#chat .time {
415 align-self: baseline;
416 padding: 0;
417 font-size: 13px;
418}
419
420#chat .from,
421#chat .time {
422 width: auto;
423 margin-right: var(--dim--spacing);
424 color: var(--color--msg--meta-fg);
425}
426
427#chat .content {
428 grid-area: content;
429 overflow: visible;
430 border-left: 0;
431 color: var(--color--msg--action-fg);
432}
433
434#chat .from {
435 grid-area: user;
436 text-align: left;
437 mask-image: none;
438}
439
440#chat .time {
441 grid-area: time;
442 justify-self: flex-start;
443}
444
445#chat .from:empty,
446#chat .time:empty {
447 display: none;
448}
449
450#chat .msg[data-type="message"] {
451 min-width: 12rem;
452 max-width: 80%;
453 grid-template-columns: auto 1fr;
454 grid-template-areas: "user time" "content content";
455}
456
457#chat .msg[data-type="message"] .time {
458 margin-right: 0;
459}
460
461#chat .msg[data-type="message"] .content {
462 margin-top: calc(var(--dim--spacing) * .5);
463 padding: var(--dim--msg--pad-v) var(--dim--msg--pad-h);
464 background-color: var(--color--msg--bg);
465 color: var(--color--msg--fg);
466 font-size: 15px;
467}
468
469#chat .msg[data-type="message"],
470#chat .msg[data-type="message"] + .msg {
471 margin-top: calc(var(--dim--spacing) * 1.5);
472}
473
474#chat .self[data-type="message"] {
475 margin-left: auto;
476}
477
478#chat .self[data-type="message"] .content {
479 background-color: var(--color--msg--self-bg);
480 color: var(--color--msg--self-fg);
481}
482
483#chat .msg[data-type="condensed"] {
484 display: flex;
485 flex-direction: column;
486 width: 100%;
487}
488
489#chat .msg[data-type="away"] .content,
490#chat .msg[data-type="back"] .content,
491#chat .msg[data-type="condensed"] .content,
492#chat .msg[data-type="join"] .content,
493#chat .msg[data-type="kick"] .content,
494#chat .msg[data-type="mode"] .content,
495#chat .msg[data-type="nick"] .content,
496#chat .msg[data-type="part"] .content,
497#chat .msg[data-type="quit"] .content,
498#chat .msg[data-type="topic"] .content,
499#chat .msg[data-type="topic_set_by"] .content,
500#chat .count::before,
501#chat .msg-shown-in-active span::before,
502#chat .msg-statusmsg span::before,
503#chat .msg[data-command="help"] .from::before,
504#chat .msg[data-command="info"] .from::before,
505#chat .msg[data-command="motd"] .from::before,
506#chat .msg[data-type="action"] .from::before,
507#chat .msg[data-type="away"] .from::before,
508#chat .msg[data-type="back"] .from::before,
509#chat .msg[data-type="ctcp"] .from::before,
510#chat .msg[data-type="ctcp_request"] .from::before,
511#chat .msg[data-type="invite"] .from::before,
512#chat .msg[data-type="join"] .from::before,
513#chat .msg[data-type="kick"] .from::before,
514#chat .msg[data-type="mode"] .from::before,
515#chat .msg[data-type="mode_channel"] .from::before,
516#chat .msg[data-type="nick"] .from::before,
517#chat .msg[data-type="part"] .from::before,
518#chat .msg[data-type="plugin"] .from::before,
519#chat .msg[data-type="quit"] .from::before,
520#chat .msg[data-type="raw"] .from::before,
521#chat .msg[data-type="topic"] .from::before,
522#chat .msg[data-type="whois"] .from::before {
523 color: var(--color--msg--action-fg);
524}
525
526#chat .msg + .previous-source[data-type="message"] {
527 margin-top: calc(var(--dim--spacing) * .25);
528}
529
530#chat .msg + .previous-source[data-type="message"] .from,
531#chat .msg + .previous-source[data-type="message"] .time {
532 display: none;
533}
534
535#chat .msg + .previous-source[data-type="message"] .content {
536 margin-top: 0;
537}
538
539#chat .chat-view[data-type="channel"] .msg.highlight {
540 border-left: 0;
541 background-color: transparent;
542}
543
544#chat .chat-view[data-type="channel"] .msg.highlight .content {
545 background-color: var(--color--msg--self-bg);
546 box-shadow: -2px 0 var(--highlight-border-color);
547 color: var(--color--msg--self-fg);
548}
549
550#chat .preview {
551 margin: var(--dim--msg--pad-v) calc(var(--dim--msg--pad-h) * -1) calc(var(--dim--msg--pad-v) * -1);
552 border-top: 1px solid var(--color--msg--border);
553}
554
555#chat .preview::after {
556 content: "";
557 display: block;
558 width: 1px;
559 min-width: 0;
560}
561
562#chat .toggle-content {
563 flex: 0 0 auto;
564 margin: 0;
565 padding: var(--dim--msg--pad-h);
566 border-radius: 0;
567 background-color: transparent;
568 box-shadow: none;
569}
570
571#chat .toggle-content .toggle-text,
572#chat .toggle-type-error {
573 padding: 0 0 0 var(--dim--msg--pad-h);
574}
575
576#chat .toggle-text .body,
577#chat .toggle-type-error {
578 color: var(--color--msg--fg);
579}
580
581@media (max-width: 768px) {
582 #chat .msg[data-type="message"] {
583 max-width: none;
584 }
585}
586
587@media (max-width: 479px) {
588 #chat .messages {
589 padding: var(--dim--container--pad);
590 }
591
592 #chat .msg {
593 padding: 0;
594 }
595}
596
597/* SCROLL DOWN BUTTON */
598
599.scroll-down {
600 right: var(--dim--container-lg--pad);
601 bottom: 0;
602}
603
604@media (max-width: 479px) {
605 .scroll-down {
606 right: var(--dim--container--pad);
607 }
608}
609
610/* CHAT INPUT */
611
612#form {
613 margin: var(--dim--container-lg--pad);
614 border-top: 0;
615 background-color: var(--color--cform--bg);
616 box-shadow: 0 .5rem 2rem rgba(0, 0, 0, .25);
617 color: var(--color--cform--fg);
618}
619
620#form #nick {
621 background-color: var(--color--cform--nick-bg);
622 color: var(--color--cform--nick-fg);
623}
624
625#form #submit,
626#form #upload {
627 color: var(--color--cform--fg);
628}
629
630@media (max-width: 768px) {
631 .public #form #nick {
632 display: none;
633 }
634}
635
636@media (max-width: 479px) {
637 #form {
638 margin: var(--dim--container--pad);
639 }
640}
641
642/* POPUP */
643
644#context-menu,
645.mentions-popup,
646.textcomplete-menu {
647 z-index: 2000;
648 padding: var(--dim--popup--pad);
649 border: 0;
650 border-radius: 0;
651 background-color: var(--color--popup--bg);
652 box-shadow: 0 .3rem 1.5rem rgba(0, 0, 0, .4);
653 color: var(--color--popup--fg);
654}
655
656.context-menu-item,
657.textcomplete-item {
658 margin-top: 0;
659 margin-bottom: 0;
660 padding: var(--dim--popup--item-pad-v) var(--dim--popup--item-pad-h);
661 border-radius: 0;
662 color: var(--color--popup--fg);
663}
664
665.context-menu-item.active,
666.textcomplete-item:focus,
667.textcomplete-item:hover,
668.textcomplete-menu .active {
669 background-color: var(--color--popup--item-hover-bg);
670 color: var(--color--popup--item-hover-fg);
671}
672
673.context-menu-divider {
674 background-color: var(--color--popup--border);
675}
676
677/* MENTIONS POPUP */
678
679.mentions-popup {
680 padding: 0;
681}
682
683.mentions-popup > .mentions-popup-title {
684 align-items: center;
685 margin-bottom: 0;
686 padding: var(--dim--container--pad);
687 color: var(--color--popup--title-fg);
688 font-size: 1em;
689 font-weight: bold;
690}
691
692.mentions-popup .hide-all-mentions {
693 font-size: 11px;
694}
695
696.mentions-popup .from {
697 color: var(--color--popup--title-fg);
698 font-size: 13px;
699}
700
701.mentions-popup .time {
702 color: var(--color--popup--meta-fg);
703 font-size: 13px;
704}
705
706.mentions-popup .msg {
707 margin-bottom: 0;
708 padding: var(--dim--container--pad);
709 border-top: 1px solid var(--color--popup--border);
710}
711
712.mentions-popup .msg .content {
713 margin-top: calc(var(--dim--spacing) * .5);
714 padding: var(--dim--msg--pad-v) var(--dim--msg--pad-h);
715 border-radius: 0;
716 background-color: var(--color--popup--msg-bg);
717 color: var(--color--popup--msg-fg);
718}
719
720/* TOOLTIP */
721
722.tooltipped::after {
723 border-radius: 0;
724 background-color: var(--color--tooltip--bg);
725 color: var(--color--tooltip--fg);
726}
727
728.tooltipped-s::before,
729.tooltipped-se::before,
730.tooltipped-sw::before {
731 border-bottom-color: var(--color--tooltip--bg);
732}
733
734.tooltipped-e::before {
735 border-right-color: var(--color--tooltip--bg);
736}
737
738.tooltipped-w::before {
739 border-left-color: var(--color--tooltip--bg);
740}
741
742.tooltipped-n::before,
743.tooltipped-ne::before,
744.tooltipped-nw::before {
745 border-top-color: var(--color--tooltip--bg);
746}