UNPKG

46.2 kBCSSView Raw
1@font-face {
2 font-family: "FontAwesome";
3 font-weight: normal;
4 font-style: normal;
5 src:
6 url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),
7 url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff");
8}
9
10html,
11body {
12 height: 100%;
13}
14
15body {
16 background: #455164;
17 color: #222;
18 font: 16px -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
19 margin: 0;
20 -webkit-user-select: none;
21 -moz-user-select: none;
22 -ms-user-select: none;
23 user-select: none;
24 cursor: default;
25 touch-action: none;
26
27 /**
28 * Disable pull-to-refresh on mobile that conflicts with scrolling the message list.
29 * See http://stackoverflow.com/a/29313685/1935861
30 */
31 overflow-y: hidden;
32}
33
34a,
35a:hover,
36a:focus {
37 color: #50a656;
38}
39
40a {
41 transition: opacity 0.2s;
42}
43
44a:hover {
45 text-decoration: none;
46 opacity: 0.8;
47}
48
49/**
50 * From Normalize. See https://github.com/thelounge/lounge/pull/1217
51 * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
52 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
53 */
54
55abbr[title] {
56 border-bottom: none; /* 1 */
57 text-decoration: underline; /* 2 */
58 text-decoration: underline dotted; /* 2 */
59}
60
61h1,
62h2,
63h3 {
64 font: inherit;
65 line-height: inherit;
66 margin: 0;
67}
68
69input {
70 outline: 0;
71}
72
73button {
74 border: none;
75 background: none;
76 margin: 0;
77 outline: none;
78 padding: 0;
79}
80
81code,
82kbd,
83pre,
84.irc-monospace,
85textarea#user-specified-css-input {
86 font-family: Consolas, Menlo, Monaco, "Lucida Console", "DejaVu Sans Mono", "Courier New", monospace;
87}
88
89code {
90 font-size: 12px;
91 padding: 2px 4px;
92 color: #e74c3c;
93 background-color: #f9f2f4;
94 border-radius: 2px;
95}
96
97pre {
98 display: block;
99 padding: 9.5px;
100 margin: 0 0 10px;
101 font-size: 13px;
102 line-height: 1.42857143;
103 color: #333;
104 word-break: break-all;
105 word-wrap: break-word;
106 background-color: #f5f5f5;
107 border-radius: 4px;
108}
109
110kbd {
111 display: inline-block;
112 font-size: 11px;
113 line-height: 10px;
114 padding: 3px 5px;
115 color: #555;
116 vertical-align: middle;
117 background-color: #fcfcfc;
118 border: solid 1px #ccc;
119 border-bottom-color: #bbb;
120 border-radius: 3px;
121 box-shadow: inset 0 -1px 0 #bbb;
122}
123
124.btn {
125 border: 2px solid #84ce88;
126 border-radius: 3px;
127 color: #84ce88;
128 display: inline-block;
129 font-size: 12px;
130 font-weight: bold;
131 letter-spacing: 1px;
132 margin-bottom: 10px;
133 padding: 9px 17px;
134 text-transform: uppercase;
135 transition: background 0.2s, border-color 0.2s, color 0.2s;
136 word-spacing: 3px;
137 cursor: pointer; /* This is useful for `<button>` elements */
138}
139
140.btn-small {
141 padding: 5px 13px;
142}
143
144.btn:disabled,
145.btn:hover,
146.btn:focus {
147 background: #84ce88;
148 color: #fff;
149 opacity: 1;
150}
151
152.btn:active {
153 box-shadow: none;
154 opacity: 0.8;
155}
156
157.btn:disabled {
158 opacity: 0.6;
159}
160
161.btn-sm {
162 padding: 4px 8px;
163 border-width: 1px;
164 letter-spacing: 0;
165 word-spacing: 0;
166 text-transform: none;
167}
168
169.container {
170 margin: 80px auto;
171 max-width: 480px;
172 touch-action: pan-y;
173}
174
175#help .container,
176#changelog .container {
177 max-width: 600px;
178}
179
180::-moz-placeholder {
181 color: rgba(0, 0, 0, 0.35);
182 opacity: 1;
183}
184
185::-webkit-input-placeholder {
186 color: rgba(0, 0, 0, 0.35);
187}
188
189:-ms-input-placeholder {
190 color: rgba(0, 0, 0, 0.35) !important;
191}
192
193#js-copy-hack,
194#loading pre,
195#help,
196#windows .header .title,
197#windows .header .topic,
198#chat .messages {
199 -webkit-user-select: text;
200 -moz-user-select: text;
201 -ms-user-select: text;
202 user-select: text;
203 cursor: text;
204}
205
206#js-copy-hack {
207 position: absolute;
208 left: -999999px;
209}
210
211#chat #js-copy-hack .condensed:not(.closed) .msg,
212#chat #js-copy-hack > .msg {
213 display: block;
214}
215
216/* Icons */
217
218#viewport .lt::before,
219#viewport .rt::before,
220#chat button.menu::before,
221#sidebar .chan::before,
222#chat .title::before,
223#footer .icon,
224#chat .count::before,
225#settings .extra-help,
226#settings #play::before,
227#form #submit::before,
228#chat .away .from::before,
229#chat .back .from::before,
230#chat .invite .from::before,
231#chat .join .from::before,
232#chat .kick .from::before,
233#chat .part .from::before,
234#chat .quit .from::before,
235#chat .topic .from::before,
236#chat .mode .from::before,
237#chat .ctcp .from::before,
238#chat .whois .from::before,
239#chat .nick .from::before,
240#chat .action .from::before,
241#chat .toggle-button::after,
242#version-checker::before,
243.context-menu-item::before,
244#help .website-link::before,
245#help .documentation-link::before,
246#help .report-issue-link::before,
247#nick button::before,
248#image-viewer .previous-image-btn::before,
249#image-viewer .next-image-btn::before {
250 font: normal normal normal 14px/1 FontAwesome;
251 font-size: inherit; /* Can't have font-size inherit on line above, so need to override */
252 -webkit-font-smoothing: antialiased;
253 -moz-osx-font-smoothing: grayscale;
254}
255
256#viewport .lt::before { content: "\f0c9"; /* http://fontawesome.io/icon/bars/ */ }
257#viewport .rt::before { content: "\f0c0"; /* http://fontawesome.io/icon/users/ */ }
258#chat button.menu::before { content: "\f142"; /* http://fontawesome.io/icon/ellipsis-v/ */ }
259
260.context-menu-join::before { content: "\f067"; /* http://fontawesome.io/icon/plus/ */ }
261.context-menu-user::before { content: "\f007"; /* http://fontawesome.io/icon/user/ */ }
262.context-menu-close::before { content: "\f00d"; /* http://fontawesome.io/icon/times/ */ }
263.context-menu-list::before { content: "\f03a"; /* http://fontawesome.io/icon/list/ */ }
264.context-menu-action-whois::before { content: "\f05a"; /* http://fontawesome.io/icon/info-circle/ */ }
265.context-menu-action-kick::before { content: "\f05e"; /* http://fontawesome.io/icon/ban/ */ }
266
267.context-menu-network::before,
268#sidebar .chan.lobby::before,
269#chat .lobby .title::before { content: "\f0a0"; /* http://fontawesome.io/icon/hdd-o/ */ }
270
271.context-menu-query::before,
272.context-menu-action-query::before,
273#sidebar .chan.query::before,
274#chat .query .title::before { content: "\f0e5"; /* http://fontawesome.io/icon/comment-o/ */ }
275
276.context-menu-chan::before,
277#sidebar .chan.channel::before,
278#chat .channel .title::before { content: "\f086"; /* http://fontawesome.io/icon/comments/ */ }
279
280#sidebar .chan.special::before,
281#chat .special .title::before { content: "\f03a"; /* http://fontawesome.io/icon/list/ */ }
282
283#footer .sign-in::before { content: "\f023"; /* http://fontawesome.io/icon/lock/ */ }
284#footer .connect::before { content: "\f067"; /* http://fontawesome.io/icon/plus/ */ }
285#footer .settings::before { content: "\f013"; /* http://fontawesome.io/icon/cog/ */ }
286#footer .help::before { content: "\f059"; /* http://fontawesome.io/icon/question/ */ }
287#footer .sign-out::before { content: "\f011"; /* http://fontawesome.io/icon/power-off/ */ }
288
289#form #submit::before { content: "\f1d8"; /* http://fontawesome.io/icon/paper-plane/ */ }
290
291#chat .away .from::before,
292#chat .back .from::before {
293 content: "\f017"; /* http://fontawesome.io/icon/clock-o/ */
294 color: #7f8c8d;
295}
296
297#help .website-link::before,
298#help .documentation-link::before,
299#help .report-issue-link::before,
300#chat .toggle-button {
301 display: inline-block;
302 margin-right: 5px;
303
304 /* These 2 directives are loosely taken from .fa-fw */
305 width: 1.35em;
306 text-align: center;
307}
308
309#help .website-link::before { content: "\f0ac"; /* http://fontawesome.io/icon/globe/ */ }
310#help .documentation-link::before { content: "\f19d"; /* http://fontawesome.io/icon/graduation-cap/ */ }
311#help .report-issue-link::before { content: "\f188"; /* http://fontawesome.io/icon/bug/ */ }
312
313.session-list strong {
314 display: block;
315}
316
317.session-list p {
318 margin-bottom: 10px;
319}
320
321#chat .invite .from::before {
322 content: "\f003"; /* http://fontawesome.io/icon/envelope-o/ */
323 color: #2ecc40;
324}
325
326#chat .part .from::before,
327#chat .quit .from::before {
328 content: "\f08b"; /* http://fontawesome.io/icon/sign-out/ */
329 color: #ff4136;
330 display: inline-block;
331 -webkit-transform: rotate(180deg);
332 transform: rotate(180deg);
333}
334
335#chat .topic .from::before {
336 content: "\f0a1"; /* http://fontawesome.io/icon/bullhorn/ */
337 color: #2ecc40;
338}
339
340#chat .mode .from::before {
341 content: "\f05a"; /* http://fontawesome.io/icon/info-circle/ */
342 color: #2ecc40;
343}
344
345#chat .ctcp .from::before {
346 content: "\f0f6"; /* http://fontawesome.io/icon/file-text-o/ */
347}
348
349#chat .whois .from::before {
350 content: "\f007"; /* http://fontawesome.io/icon/user/ */
351 color: #2ecc40;
352}
353
354#chat .nick .from::before {
355 content: "\f007"; /* http://fontawesome.io/icon/user/ */
356 color: #2ecc40;
357}
358
359#chat .join .from::before {
360 content: "\f090"; /* http://fontawesome.io/icon/sign-in/ */
361 color: #2ecc40;
362}
363
364#chat .kick .from::before {
365 content: "\f05e"; /* http://fontawesome.io/icon/ban/ */
366 color: #ff4136;
367}
368
369#chat .action .from::before {
370 content: "\f005"; /* http://fontawesome.io/icon/star/ */
371}
372
373#chat .toggle-button {
374 display: inline-block;
375 transition: opacity 0.2s, transform 0.2s;
376
377 /* These 2 directives are loosely taken from .fa-fw */
378 width: 1.35em;
379 text-align: center;
380}
381
382#chat .toggle-button::after {
383 content: "\f0da"; /* http://fontawesome.io/icon/caret-right/ */
384}
385
386#chat .count::before {
387 color: #cfcfcf;
388 content: "\f002"; /* http://fontawesome.io/icon/search/ */
389 position: absolute;
390 right: 18px;
391 font-size: 14px;
392 line-height: 50px;
393}
394
395#settings .extra-help::before {
396 content: "\f059"; /* http://fontawesome.io/icon/question-circle/ */
397}
398
399#settings #play::before {
400 content: "\f028"; /* http://fontawesome.io/icon/volume-up/ */
401 margin-right: 9px;
402}
403
404#set-nick::before {
405 content: "\f040"; /* http://fontawesome.io/icon/pencil/ */
406}
407
408#submit-nick::before {
409 content: "\f00c"; /* http://fontawesome.io/icon/check/ */
410}
411
412#cancel-nick::before {
413 content: "\f00d"; /* http://fontawesome.io/icon/times/ */
414}
415
416#image-viewer .previous-image-btn::before {
417 content: "\f104"; /* http://fontawesome.io/icon/angle-left/ */
418}
419
420#image-viewer .next-image-btn::before {
421 content: "\f105"; /* http://fontawesome.io/icon/angle-right/ */
422}
423
424/* End icons */
425
426#wrap {
427 height: 100%;
428 overflow: hidden;
429}
430
431#chat button,
432#form button,
433#chat .user {
434 transition: opacity 0.2s;
435}
436
437#chat button:hover,
438#form button:hover {
439 opacity: 0.6;
440}
441
442#viewport .lt,
443#viewport .rt,
444#chat button.menu {
445 color: #ccc;
446 display: none;
447 float: left;
448 font-size: 14px;
449 line-height: 1;
450 height: 36px;
451 margin: 6px 12px 0 -12px;
452 width: 36px;
453}
454
455#viewport .lt {
456 position: relative;
457}
458
459/* Notification dot on the top right corner of the menu icon */
460#viewport .lt::after {
461 content: "";
462 position: absolute;
463 top: 9px;
464 right: 7px;
465 background-color: #e74c3c;
466 width: 10px;
467 height: 10px;
468 border-radius: 50%;
469 border: 2px solid white;
470 opacity: 0;
471 transition: opacity 0.2s;
472}
473
474#viewport .lt.notified::after {
475 opacity: 1;
476}
477
478#viewport .rt-tooltip {
479 float: right;
480}
481
482#viewport .rt {
483 display: block;
484 margin: 6px -12px 0 0;
485}
486
487#chat button.menu {
488 display: block;
489 float: right;
490 margin: 6px -8px 0 12px;
491}
492
493#viewport.rt #chat .sidebar {
494 right: -180px;
495}
496
497#sidebar {
498 bottom: 45px;
499 left: 0;
500 overflow: auto;
501 overflow-x: hidden;
502 -webkit-overflow-scrolling: touch;
503 position: absolute;
504 top: 0;
505 width: 220px;
506}
507
508#viewport.menu-open #sidebar {
509 will-change: transform;
510}
511
512#sidebar .chan,
513#sidebar .sign-out,
514#sidebar .empty {
515 color: #99a2b4;
516 font-size: 14px;
517}
518
519#sidebar button,
520#sidebar .chan,
521#sidebar .sign-out {
522 cursor: pointer;
523}
524
525#sidebar button:hover,
526#sidebar .chan:hover,
527#sidebar .active {
528 color: #fff;
529}
530
531#sidebar .networks {
532 padding-top: 20px;
533 touch-action: pan-y;
534}
535
536#sidebar .networks:empty {
537 padding: 0;
538}
539
540#sidebar .network,
541#sidebar .network-placeholder {
542 margin-bottom: 30px;
543 touch-action: pan-y;
544}
545
546#sidebar .empty {
547 line-height: 1.6;
548 padding: 40px 20px;
549 text-align: center;
550}
551
552#sidebar .chan,
553#sidebar .chan-placeholder {
554 display: block;
555 padding: 8px 25px;
556 transition: color 0.2s;
557 width: 100%;
558}
559
560#sidebar .chan:first-child {
561 color: #84ce88;
562 font-size: 15px;
563 font-weight: bold;
564}
565
566#sidebar .chan:first-child:hover,
567#sidebar .chan:first-child.active {
568 color: #c0f8c3;
569}
570
571#sidebar .chan::before,
572#chat .title::before {
573 margin-right: 12px;
574}
575
576#sidebar .chan::before {
577 float: left;
578 line-height: 18px;
579}
580
581#chat .title::before {
582 margin-top: 17px;
583}
584
585#sidebar .chan .name {
586 position: relative;
587 z-index: 0;
588 display: block;
589 overflow: hidden;
590 white-space: nowrap;
591 margin-right: 5px;
592}
593
594#sidebar .chan .name::after {
595 position: absolute;
596 top: 0;
597 right: 0;
598 bottom: 0;
599 width: 20px;
600 background: linear-gradient(to right, rgba(69, 81, 100, 0) 0%, rgba(69, 81, 100, 1) 100%);
601 content: " ";
602}
603
604#sidebar .badge,
605#sidebar .add-channel,
606#sidebar .close {
607 float: right;
608 margin-left: 5px;
609 margin-right: -5px;
610}
611
612#sidebar .badge {
613 background: rgba(255, 255, 255, 0.06);
614 border-radius: 3px;
615 color: #afb6c0;
616 font-size: 10px;
617 margin-top: 1px;
618 padding: 3px 6px;
619 transition: background-color 0.2s, color 0.2s;
620}
621
622#sidebar .badge:empty {
623 display: none;
624}
625
626#sidebar .badge.highlight {
627 background: #fff;
628 color: #49505a;
629}
630
631#sidebar .close-tooltip {
632 float: right;
633}
634
635#sidebar .leave,
636#sidebar .close {
637 width: 18px;
638 height: 18px;
639 display: none;
640 transition: opacity 0.2s, background-color 0.2s;
641}
642
643#sidebar .leave::before,
644#sidebar .close::before {
645 font-size: 20px;
646 font-weight: normal;
647 display: inline-block;
648 line-height: 16px;
649 text-align: center;
650 content: "×";
651 color: #fff;
652}
653
654#sidebar .lobby .add-channel {
655 border-radius: 3px;
656 width: 18px;
657 height: 18px;
658 opacity: 0.4;
659 transition: opacity 0.2s, background-color 0.2s, transform 0.2s;
660}
661
662#sidebar .lobby .add-channel::before {
663 font-size: 20px;
664 font-weight: normal;
665 display: inline-block;
666 line-height: 16px;
667 text-align: center;
668 content: "+";
669 color: #fff;
670}
671
672#sidebar .lobby .add-channel:hover {
673 opacity: 1;
674}
675
676#sidebar .lobby .add-channel.opened {
677 /* translateZ(0) enables hardware acceleration, this is to avoid jittering when animating */
678 transform: rotate(45deg) translateZ(0);
679}
680
681#sidebar .chan.active .close {
682 opacity: 0.4;
683 display: unset;
684}
685
686#sidebar .chan.active .leave:hover,
687#sidebar .chan.active .close:hover {
688 opacity: 1;
689}
690
691#sidebar .tse-scrollbar {
692 top: 2px;
693 right: 3px;
694}
695
696#footer {
697 background: rgba(0, 0, 0, 0.06);
698 bottom: 0;
699 height: 45px;
700 left: 0;
701 font-size: 14px;
702 line-height: 45px;
703 position: absolute;
704 text-align: center;
705 width: 220px;
706}
707
708#footer button.active {
709 color: #fff;
710}
711
712#footer .icon {
713 color: #9ca5b4;
714 display: inline-block;
715 line-height: 34px;
716 padding: 0 12px;
717 transition: color 0.2s;
718}
719
720#footer .icon:hover {
721 color: #fff;
722}
723
724.signed-out #footer .sign-in {
725 display: inline-block;
726}
727
728.signed-out #footer .connect,
729.signed-out #footer .sign-out {
730 display: none;
731}
732
733.public #footer .sign-in,
734.public #footer .sign-out {
735 display: none;
736}
737
738#footer .sign-in {
739 display: none;
740}
741
742#main {
743 bottom: 0;
744 left: 220px;
745 position: absolute;
746 right: 0;
747 top: 0;
748 display: -webkit-flex;
749 display: flex;
750 -webkit-flex-direction: column;
751 flex-direction: column;
752}
753
754.signed-out #main {
755 left: 0; /* Hide the sidebar when user is signed out */
756}
757
758#header {
759 display: none;
760 height: 40px;
761 position: absolute;
762 top: 0;
763 width: 100%;
764}
765
766#windows li,
767#windows p,
768#windows label,
769#settings .error {
770 font-size: 14px;
771}
772
773.input {
774 background-color: white;
775 border: 1px solid #cdd3da;
776 border-radius: 2px;
777 color: #222;
778 font-size: 14px;
779 margin: 2px 0;
780 margin-bottom: 10px;
781 outline: 0;
782 padding: 8px 10px;
783 transition: border-color 0.2s;
784 width: 100%;
785}
786
787.input:disabled {
788 background-color: #ddd;
789}
790
791.input:not(:disabled):hover,
792.input:not(:disabled):focus {
793 border-color: #79838c;
794}
795
796#windows select.input {
797 height: 35px;
798}
799
800#user-specified-css-input {
801 resize: vertical;
802}
803
804#windows .window {
805 background: #fff;
806 bottom: 0;
807 display: none;
808 left: 0;
809 position: absolute;
810 right: 0;
811 top: 0;
812 overflow-y: auto;
813 -webkit-overflow-scrolling: touch;
814}
815
816#windows .window h1 {
817 font-size: 36px;
818}
819
820#windows .window h2 {
821 border-bottom: 1px solid #7f8c8d;
822 color: #7f8c8d;
823 font-size: 22px;
824 margin: 30px 0 10px;
825 padding-bottom: 7px;
826}
827
828#windows .window h2 small {
829 color: inherit;
830 line-height: 30px;
831}
832
833#windows .window h3 {
834 color: #7f8c8d;
835 font-size: 18px;
836 margin: 20px 0 10px;
837}
838
839#windows .active {
840 display: block;
841}
842
843#windows .header {
844 border-bottom: 1px solid #e7e7e7;
845 line-height: 48px;
846 height: 48px;
847 padding: 0 20px;
848 overflow: hidden;
849}
850
851#windows .header .title {
852 font-size: 15px;
853}
854
855#windows .header .topic {
856 color: #777;
857 margin-left: 8px;
858 word-break: break-all;
859}
860
861#windows .window .header {
862 display: none;
863}
864
865#chat-container,
866#chat .chan {
867 position: absolute;
868 top: 0;
869 right: 0;
870 bottom: 0;
871 left: 0;
872}
873
874#windows #chat-container.active {
875 display: -webkit-flex;
876 display: flex;
877 -webkit-flex-direction: column;
878 flex-direction: column;
879}
880
881#chat {
882 position: relative;
883 overflow: hidden;
884 -webkit-flex: 1;
885 flex: 1;
886}
887
888#chat .chan {
889 display: none;
890}
891
892#chat .chan.active {
893 display: block;
894}
895
896#chat .condensed {
897 flex-wrap: wrap;
898}
899
900#chat .condensed .content {
901 flex: 1;
902}
903
904/* Ensures expanded status messages always take up the full width */
905#chat .condensed .msg {
906 flex-basis: 100%;
907}
908
909#chat .condensed-summary .content {
910 display: block;
911 cursor: pointer;
912 transition: opacity 0.2s;
913 -webkit-user-select: none;
914 -moz-user-select: none;
915 -ms-user-select: none;
916 user-select: none;
917}
918
919#chat .condensed-summary {
920 display: none;
921}
922
923#chat.condensed-status-messages .condensed-summary {
924 display: flex;
925}
926
927#chat .condensed-summary .content:hover {
928 opacity: 0.6;
929}
930
931#chat .condensed-summary .toggle-button:hover {
932 opacity: 1;
933}
934
935#chat.condensed-status-messages .condensed.closed .msg {
936 display: none;
937}
938
939#chat .condensed-summary .time {
940 visibility: hidden;
941}
942
943#windows #form .input,
944#windows .header .topic,
945.messages .msg,
946.sidebar {
947 font-size: 14px;
948 line-height: 1.4;
949}
950
951#windows #chat .header {
952 display: block;
953}
954
955#chat .chat,
956#chat .sidebar {
957 top: 48px;
958}
959
960#chat .chat {
961 bottom: 0;
962 left: 0;
963 right: 0;
964 overflow: auto;
965 will-change: transform, scroll-position;
966 -webkit-overflow-scrolling: touch;
967 position: absolute;
968 display: flex;
969 flex-direction: column;
970}
971
972#chat .channel .chat {
973 right: 180px;
974}
975
976#viewport.rt .chat {
977 right: 0;
978}
979
980#chat .sidebar {
981 background: #fff;
982 border-left: 1px solid #e7e7e7;
983 bottom: 0;
984 position: absolute;
985 right: 0;
986 width: 180px;
987 transition: right 0.4s;
988 touch-action: pan-y;
989}
990
991/**
992 * Toggled via JavaScript
993 */
994#sidebar .join-form {
995 display: none;
996}
997
998#sidebar .join-form .input {
999 display: block;
1000 margin-left: auto;
1001 margin-right: auto;
1002 margin-top: 5px;
1003 margin-bottom: 5px;
1004 width: 80%;
1005}
1006
1007#sidebar .join-form .btn {
1008 display: block;
1009 width: 80%;
1010 margin: auto;
1011}
1012
1013#sidebar .add-channel-tooltip {
1014 float: right;
1015}
1016
1017#chat .show-more {
1018 display: none;
1019 padding: 10px;
1020 padding-bottom: 0;
1021 width: 100%;
1022}
1023
1024#chat .show-more-button {
1025 background: #f4f4f4;
1026 background-image: linear-gradient(#f4f4f4, #ececec);
1027 border: 1px solid #d7d7d7;
1028 border-bottom-color: #b7b7b7;
1029 border-radius: 2px;
1030 color: #555;
1031 font-size: 12px;
1032 height: 34px;
1033 line-height: 0;
1034 width: 100%;
1035}
1036
1037#chat .show-more-button:hover {
1038 opacity: 1;
1039}
1040
1041#chat .messages {
1042 padding: 10px 0;
1043 touch-action: pan-y;
1044}
1045
1046#chat .chan:not(.special) .messages {
1047 margin-top: auto;
1048}
1049
1050#chat .msg {
1051 word-wrap: break-word;
1052 word-break: break-word; /* Webkit-specific */
1053 display: flex;
1054 align-items: flex-start;
1055 position: relative;
1056}
1057
1058#chat .unread-marker {
1059 position: relative;
1060 text-align: center;
1061 margin: 0 10px;
1062 z-index: 0;
1063 font-weight: bold;
1064 font-size: 12px;
1065}
1066
1067#chat .unread-marker::before {
1068 position: absolute;
1069 z-index: -1;
1070 content: "";
1071 left: 0;
1072 right: 0;
1073 top: 50%;
1074 border-top: 1px solid rgba(231, 76, 60, 0.5);
1075}
1076
1077#chat .unread-marker-text::before {
1078 content: "New messages";
1079 background-color: white;
1080 color: rgba(231, 76, 60, 0.5);
1081 padding: 0 10px;
1082}
1083
1084#chat .unread-marker:last-child {
1085 display: none;
1086}
1087
1088#chat .date-marker {
1089 position: relative;
1090 text-align: center;
1091 margin: 0 10px;
1092 z-index: 0;
1093 font-weight: bold;
1094 font-size: 12px;
1095}
1096
1097#chat .date-marker::before {
1098 position: absolute;
1099 z-index: -1;
1100 content: "";
1101 left: 0;
1102 right: 0;
1103 top: 50%;
1104 border-top: 1px solid rgba(0, 107, 59, 0.5);
1105}
1106
1107#chat .date-marker-text::before {
1108 content: attr(data-label);
1109 background-color: white;
1110 color: rgba(0, 107, 59, 0.5);
1111 padding: 0 10px;
1112}
1113
1114.inline-channel {
1115 cursor: pointer;
1116}
1117
1118.inline-channel:hover {
1119 opacity: 0.6;
1120}
1121
1122#chat .time,
1123#chat .from,
1124#chat .content {
1125 padding: 3px 0;
1126 flex: 0 0 auto;
1127}
1128
1129#chat .time {
1130 color: #ddd;
1131 padding-left: 10px;
1132 width: 55px;
1133}
1134
1135#chat.show-seconds .time {
1136 width: 75px;
1137}
1138
1139#chat .from {
1140 color: #b1c3ce;
1141 padding-right: 10px;
1142 text-align: right;
1143 width: 134px;
1144 overflow: hidden;
1145 white-space: nowrap;
1146 position: relative;
1147}
1148
1149#chat .content {
1150 flex: 1 1 auto;
1151 min-width: 0;
1152 padding-left: 10px;
1153 padding-right: 6px;
1154 border-left: 1px solid #f6f6f6;
1155 overflow: hidden; /* Prevents Zalgo text to expand beyond messages */
1156}
1157
1158#loading a,
1159#chat .special .time,
1160#chat .special .from {
1161 display: none;
1162}
1163
1164#chat .special .date-marker-container,
1165#chat .special .unread-marker {
1166 display: none;
1167}
1168
1169#chat .special table th {
1170 word-break: normal;
1171}
1172
1173/* Nicknames */
1174
1175#chat .user {
1176 cursor: pointer;
1177 color: #50a656;
1178}
1179
1180#chat .user:hover {
1181 opacity: 0.6;
1182}
1183
1184#chat.colored-nicks .user.color-1 { color: #1396cf; }
1185#chat.colored-nicks .user.color-2 { color: #ffcf89; }
1186#chat.colored-nicks .user.color-3 { color: #00dc5f; }
1187#chat.colored-nicks .user.color-4 { color: #ff5bc8; }
1188#chat.colored-nicks .user.color-5 { color: #ff0e1b; }
1189#chat.colored-nicks .user.color-6 { color: #000094; }
1190#chat.colored-nicks .user.color-7 { color: #006441; }
1191#chat.colored-nicks .user.color-8 { color: #00566e; }
1192#chat.colored-nicks .user.color-9 { color: #ff0078; }
1193#chat.colored-nicks .user.color-10 { color: #15d5a3; }
1194#chat.colored-nicks .user.color-11 { color: #006b3b; }
1195#chat.colored-nicks .user.color-12 { color: #00c5ba; }
1196#chat.colored-nicks .user.color-13 { color: #00465b; }
1197#chat.colored-nicks .user.color-14 { color: #ffafce; }
1198#chat.colored-nicks .user.color-15 { color: #ff3b12; }
1199#chat.colored-nicks .user.color-16 { color: #16cc6a; }
1200#chat.colored-nicks .user.color-17 { color: #ff0072; }
1201#chat.colored-nicks .user.color-18 { color: #ff5877; }
1202#chat.colored-nicks .user.color-19 { color: #ff1753; }
1203#chat.colored-nicks .user.color-20 { color: #007a56; }
1204#chat.colored-nicks .user.color-21 { color: #095092; }
1205#chat.colored-nicks .user.color-22 { color: #000bde; }
1206#chat.colored-nicks .user.color-23 { color: #00bca9; }
1207#chat.colored-nicks .user.color-24 { color: #00367d; }
1208#chat.colored-nicks .user.color-25 { color: #009ec4; }
1209#chat.colored-nicks .user.color-26 { color: #006119; }
1210#chat.colored-nicks .user.color-27 { color: #008bb8; }
1211#chat.colored-nicks .user.color-28 { color: #469c00; }
1212#chat.colored-nicks .user.color-29 { color: #ff0f95; }
1213#chat.colored-nicks .user.color-30 { color: #ff7615; }
1214#chat.colored-nicks .user.color-31 { color: #ff4846; }
1215#chat.colored-nicks .user.color-32 { color: #ff199b; }
1216
1217#chat .self .text {
1218 color: #999;
1219}
1220
1221#chat .msg.channel_list_loading .text {
1222 color: #999;
1223 font-style: italic;
1224 padding-left: 20px;
1225}
1226
1227#chat .msg.channel_list_truncated .text {
1228 color: #f00;
1229 padding-left: 20px;
1230}
1231
1232#chat table.channel-list,
1233#chat table.ban-list {
1234 margin: 5px 10px;
1235 width: calc(100% - 30px);
1236}
1237
1238#chat table.channel-list th,
1239#chat table.ban-list th,
1240#chat table.channel-list td,
1241#chat table.ban-list td {
1242 padding: 5px;
1243 vertical-align: top;
1244 border-bottom: #eee 1px solid;
1245}
1246
1247#chat table.channel-list .channel {
1248 width: 80px;
1249}
1250
1251#chat table.channel-list .channel,
1252#chat table.channel-list .topic,
1253#chat table.ban-list .hostmask,
1254#chat table.ban-list .banned_by,
1255#chat table.ban-list .banned_at {
1256 text-align: left;
1257}
1258
1259#chat table.channel-list .users {
1260 text-align: center;
1261 width: 50px;
1262}
1263
1264#chat table.channel-list td.channel .inline-channel {
1265 color: #428bca;
1266}
1267
1268#chat table.channel-list td {
1269 color: #555;
1270}
1271
1272#chat.hide-status-messages .condensed,
1273#chat.hide-motd .motd {
1274 display: none !important;
1275}
1276
1277#chat .condensed .content,
1278#chat .away .content,
1279#chat .back .content,
1280#chat .join .content,
1281#chat .kick .content,
1282#chat .mode .content,
1283#chat .nick .content,
1284#chat .part .content,
1285#chat .quit .content,
1286#chat .topic .content,
1287#chat .topic_set_by .content {
1288 color: #999;
1289}
1290
1291#chat .action .from,
1292#chat .action .text,
1293#chat .action .user {
1294 color: #f39c12;
1295}
1296
1297#chat .notice .time,
1298#chat .notice .text,
1299#chat .chan .notice .user {
1300 color: #0074d9 !important;
1301}
1302
1303#chat .notice .user::before {
1304 content: "Notice: ";
1305}
1306
1307#chat .error,
1308#chat .error .from,
1309#chat .channel .highlight .from,
1310#chat .channel .highlight .text,
1311#chat .channel .highlight .user {
1312 color: #f00;
1313}
1314
1315#chat .toggle-button.opened, /* Thumbnail toggle */
1316#chat .msg.condensed:not(.closed) .toggle-button { /* Expanded status message toggle */
1317 transform: rotate(90deg);
1318}
1319
1320#chat .toggle-content {
1321 background: #f5f5f5;
1322 border-radius: 2px;
1323 display: none;
1324 color: #222;
1325 max-width: 100%;
1326 margin: 0;
1327 margin-top: 6px;
1328 overflow: hidden;
1329}
1330
1331#chat .toggle-content img {
1332 max-width: 100%;
1333 max-height: 128px;
1334 display: block;
1335}
1336
1337#chat .toggle-content .thumb {
1338 max-width: 48px;
1339 max-height: 38px;
1340}
1341
1342#chat .toggle-thumbnail {
1343 padding: 6px;
1344}
1345
1346#chat .toggle-text {
1347 padding: 6px;
1348 min-width: 0;
1349 display: flex;
1350 flex-direction: column;
1351 white-space: nowrap;
1352 color: inherit;
1353}
1354
1355#chat .toggle-text:not(:first-child) {
1356 padding-left: 0;
1357}
1358
1359#chat .toggle-content .head,
1360#chat .toggle-content .body {
1361 text-overflow: ellipsis;
1362 overflow: hidden;
1363 color: inherit;
1364}
1365
1366#chat .toggle-content .head {
1367 font-weight: bold;
1368}
1369
1370#chat .toggle-content .body {
1371 color: #999;
1372}
1373
1374#chat .toggle-content.show {
1375 display: inline-flex !important;
1376}
1377
1378#chat audio {
1379 width: 600px;
1380 max-width: 100%;
1381}
1382
1383/* Do not display an empty div when there are no previews. Useful for example in
1384part/quit messages where we don't load previews (adds a blank line otherwise) */
1385#chat .preview:empty {
1386 display: none;
1387}
1388
1389#chat .count {
1390 background: #fafafa;
1391 height: 48px;
1392 left: 0;
1393 position: absolute;
1394 right: 0;
1395 top: 0;
1396}
1397
1398#chat .search {
1399 color: #222;
1400 border: 0;
1401 background: none;
1402 font: inherit;
1403 outline: 0;
1404 padding: 18px 16px;
1405 position: relative;
1406 width: 100%;
1407}
1408
1409#chat .names {
1410 bottom: 0;
1411 overflow: auto;
1412 overflow-x: hidden;
1413 will-change: transform, scroll-position;
1414 -webkit-overflow-scrolling: touch;
1415 padding-bottom: 10px;
1416 position: absolute;
1417 top: 48px;
1418 width: 100%;
1419 touch-action: pan-y;
1420}
1421
1422#chat .names-filtered {
1423 display: none;
1424}
1425
1426#chat .names .user {
1427 display: block;
1428 line-height: 1.6;
1429 padding: 0 16px;
1430 white-space: nowrap;
1431}
1432
1433#chat .user-mode::before {
1434 content: "";
1435 border-bottom: 1px solid #eee;
1436 display: block;
1437 line-height: 1.6;
1438 padding: 12px 16px 10px;
1439 margin-bottom: 10px;
1440}
1441
1442#chat .user-mode.owner::before {
1443 content: "Owners";
1444}
1445
1446#chat .user-mode.admin::before {
1447 content: "Administrators";
1448}
1449
1450#chat .user-mode.op::before {
1451 content: "Operators";
1452}
1453
1454#chat .user-mode.half-op::before {
1455 content: "Half-Operators";
1456}
1457
1458#chat .user-mode.voice::before {
1459 content: "Voiced";
1460}
1461
1462#chat .user-mode.normal::before {
1463 content: "Users";
1464}
1465
1466#chat .user-mode-search::before {
1467 content: "Search Results";
1468}
1469
1470#loading {
1471 font-size: 14px;
1472 z-index: 1;
1473}
1474
1475#loading p {
1476 margin-top: 10px;
1477}
1478
1479#loading-slow,
1480#loading-reload {
1481 display: none;
1482}
1483
1484#loading-reload {
1485 margin-top: 15px;
1486}
1487
1488#loading summary {
1489 outline: none;
1490 cursor: pointer;
1491}
1492
1493#loading pre {
1494 white-space: normal;
1495}
1496
1497#sign-in label {
1498 display: block;
1499 margin-top: 10px;
1500}
1501
1502#sign-in .btn {
1503 margin-top: 25px;
1504}
1505
1506#sign-in .error {
1507 color: #e74c3c;
1508 margin-top: 1em;
1509}
1510
1511#connect label {
1512 display: block;
1513 margin-top: 11px;
1514}
1515
1516#connect .port::before {
1517 content: ":";
1518 margin: 9px 0 0 -17px;
1519 position: absolute;
1520}
1521
1522#connect .tls {
1523 float: left;
1524 margin-top: 6px;
1525}
1526
1527#connect .tls input {
1528 float: left;
1529 margin: 3px 10px 0 0;
1530}
1531
1532#connect .btn {
1533 float: left;
1534 margin-top: 30px;
1535}
1536
1537#settings .opt {
1538 display: block;
1539 padding: 5px 0 5px 1px;
1540}
1541
1542#settings .opt input {
1543 margin-right: 6px;
1544}
1545
1546#settings .extra-help,
1547#settings #play {
1548 color: #7f8c8d;
1549}
1550
1551#settings .extra-help {
1552 cursor: help;
1553}
1554
1555#settings h2 .extra-help {
1556 font-size: 0.8em;
1557}
1558
1559#settings #play {
1560 font-size: 14px;
1561 transition: opacity 0.2s;
1562}
1563
1564#settings #play:hover {
1565 opacity: 0.8;
1566}
1567
1568#settings #change-password .error,
1569#settings #change-password .success {
1570 margin-bottom: 1em;
1571}
1572
1573#settings #change-password .error {
1574 color: #e74c3c;
1575}
1576
1577#settings #change-password .success {
1578 color: #2ecc40;
1579}
1580
1581#settings .error {
1582 color: #e74c3c;
1583 margin-top: 0.2em;
1584}
1585
1586#help .help-item {
1587 display: table-row;
1588 font-size: 14px;
1589}
1590
1591#help .help-item .subject,
1592#help .help-item .description {
1593 display: table-cell;
1594 padding-bottom: 15px;
1595}
1596
1597#help .help-item .subject {
1598 white-space: nowrap;
1599 padding-right: 15px;
1600}
1601
1602#help .help-item .description p {
1603 margin-bottom: 0;
1604}
1605
1606.is-apple #help .key-all,
1607#help .key-apple {
1608 display: none;
1609}
1610
1611.is-apple #help .key-apple {
1612 display: inline-block;
1613}
1614
1615.whois {
1616 display: -ms-grid; /* Edge 15- */
1617 display: grid;
1618 -ms-grid-template-columns: max-content auto;
1619 grid-template-columns: max-content auto;
1620 margin: 0;
1621}
1622
1623.whois dt {
1624 -ms-grid-column-start: 1;
1625 grid-column-start: 1;
1626 margin-right: 20px;
1627}
1628
1629.whois dd {
1630 -ms-grid-column-start: 2;
1631 grid-column-start: 2;
1632}
1633
1634.changelog-text {
1635 line-height: 1.5;
1636}
1637
1638.changelog-text p {
1639 margin-bottom: 16px;
1640}
1641
1642.window#changelog h3 {
1643 font-size: 20px;
1644 border-bottom: 1px solid #7f8c8d;
1645 color: #7f8c8d;
1646 margin: 30px 0 10px;
1647 padding-bottom: 7px;
1648}
1649
1650#version-checker {
1651 display: flex;
1652 align-items: center;
1653 padding: 10px;
1654 margin-bottom: 16px;
1655 border-radius: 2px;
1656 transition: color 0.2s, background-color 0.2s;
1657}
1658
1659#version-checker p,
1660#version-checker button {
1661 margin-bottom: 0;
1662}
1663
1664#version-checker p {
1665 flex: 1;
1666 padding-top: 6px;
1667 padding-bottom: 6px;
1668}
1669
1670#version-checker::before {
1671 margin-left: 6px;
1672 margin-right: 12px;
1673 font-size: 1.2em;
1674}
1675
1676#version-checker.loading {
1677 background-color: #d9edf7;
1678 color: #31708f;
1679}
1680
1681#version-checker.loading::before {
1682 content: "\f250"; /* http://fontawesome.io/icon/hourglass-o/ */
1683}
1684
1685#version-checker.new-version {
1686 color: #8a6d3b;
1687 background-color: #fcf8e3;
1688}
1689
1690#version-checker.new-version::before {
1691 content: "\f087"; /* http://fontawesome.io/icon/thumbs-o-up/ */
1692}
1693
1694#version-checker.error {
1695 color: #a94442;
1696 background-color: #f2dede;
1697}
1698
1699#version-checker.error::before {
1700 content: "\f06a"; /* http://fontawesome.io/icon/exclamation-circle/ */
1701}
1702
1703#version-checker.up-to-date {
1704 background-color: #dff0d8;
1705 color: #3c763d;
1706}
1707
1708#version-checker.up-to-date #check-now {
1709 /* "Check now" button is hidden until data expires */
1710 display: none;
1711}
1712
1713#version-checker.up-to-date::before {
1714 content: "\f00c"; /* http://fontawesome.io/icon/check/ */
1715}
1716
1717#form {
1718 background: #eee;
1719 border-top: 1px solid #ddd;
1720 -webkit-flex: 0 0 auto;
1721 flex: 0 0 auto;
1722 padding: 5px;
1723}
1724
1725#windows #form .input {
1726 border: 1px solid #ddd;
1727 border-radius: 2px;
1728 margin: 0;
1729 padding: 0;
1730 background: white;
1731 display: -webkit-flex;
1732 display: flex;
1733 -webkit-align-items: flex-end;
1734 align-items: flex-end;
1735}
1736
1737#connection-error {
1738 font-size: 12px;
1739 line-height: 36px;
1740 font-weight: bold;
1741 letter-spacing: 1px;
1742 word-spacing: 3px;
1743 text-transform: uppercase;
1744 background: #e74c3c;
1745 color: #fff;
1746 text-align: center;
1747 display: none;
1748}
1749
1750#connection-error.shown {
1751 display: block;
1752}
1753
1754[contenteditable]:focus {
1755 outline: none;
1756}
1757
1758[contenteditable="true"] {
1759 -webkit-user-select: text;
1760 -moz-user-select: text;
1761 -ms-user-select: text;
1762 user-select: text;
1763 cursor: text;
1764}
1765
1766/* Nick editor */
1767
1768#form #nick {
1769 background: #f6f6f6;
1770 color: #666;
1771 font: inherit;
1772 font-size: 13px;
1773 margin: 4px;
1774 line-height: 22px;
1775 height: 24px;
1776 padding-left: 9px;
1777 padding-right: 5px;
1778 border-radius: 2px;
1779 -webkit-flex: 0 0 auto;
1780 flex: 0 0 auto;
1781 border: 1px solid transparent;
1782 transition: border-color 0.2s;
1783}
1784
1785#form #nick-value {
1786 padding-right: 5px;
1787}
1788
1789#form #nick.editable {
1790 border-color: black;
1791}
1792
1793#nick button#set-nick,
1794#nick button#submit-nick,
1795#nick button#cancel-nick {
1796 color: #aaa;
1797 width: 18px;
1798}
1799
1800#nick.editable button#set-nick,
1801#nick.editable #set-nick-tooltip,
1802#nick button#submit-nick,
1803#nick:not(.editable) #save-nick-tooltip,
1804#nick button#cancel-nick,
1805#nick:not(.editable) #cancel-nick-tooltip {
1806 display: none;
1807}
1808
1809#nick.editable button#submit-nick,
1810#nick.editable button#cancel-nick {
1811 display: inline-block;
1812}
1813
1814/* End nick editor */
1815
1816#form #input {
1817 background: transparent;
1818 border: none;
1819 font: inherit;
1820 min-height: 19px; /* Required when computing input height at char deletion */
1821 height: 19px;
1822 max-height: 95px; /* min-height/height x number of lines maximum */
1823 line-height: 1.4;
1824 outline: none;
1825 margin: 5px;
1826 padding: 0;
1827 resize: none;
1828 -webkit-flex: 1 0 auto;
1829 flex: 1 0 auto;
1830 align-self: center;
1831 touch-action: pan-y;
1832}
1833
1834#form #submit {
1835 color: #9ca5b4;
1836 font-size: 14px;
1837 height: 32px;
1838 transition: opacity 0.2s;
1839 width: 32px;
1840 -webkit-flex: 0 0 auto;
1841 flex: 0 0 auto;
1842}
1843
1844#context-menu-container {
1845 display: none;
1846 position: absolute;
1847 top: 0;
1848 left: 0;
1849 width: 100%;
1850 height: 100%;
1851 z-index: 1000;
1852 background: transparent;
1853}
1854
1855#context-menu,
1856.textcomplete-menu {
1857 position: absolute;
1858 list-style: none;
1859 margin: 0;
1860 padding: 0;
1861 min-width: 160px;
1862 font-size: 14px;
1863 background-color: #fff;
1864 box-shadow: 0 3px 12px rgba(0, 0, 0, 0.15);
1865 border: 1px solid rgba(0, 0, 0, 0.15);
1866 border-radius: 2px;
1867}
1868
1869.context-menu-divider {
1870 height: 1px;
1871 margin: 6px 0;
1872 background-color: rgba(0, 0, 0, 0.1);
1873}
1874
1875.context-menu-item,
1876.textcomplete-item {
1877 cursor: pointer;
1878 display: block;
1879 padding: 4px 8px;
1880 color: #333;
1881 margin-top: 6px;
1882 margin-bottom: 6px;
1883 line-height: 1.4;
1884 transition: background-color 0.2s;
1885}
1886
1887.context-menu-item:hover,
1888.textcomplete-item:hover,
1889.textcomplete-menu .active {
1890 background-color: #f6f6f6;
1891 transition: none;
1892}
1893
1894.context-menu-item::before,
1895.textcomplete-item::before {
1896 width: 20px;
1897 display: inline-block;
1898}
1899
1900.textcomplete-item a {
1901 color: #333;
1902}
1903
1904.textcomplete-item a:hover {
1905 opacity: 1;
1906}
1907
1908.emoji {
1909 display: inline-block;
1910 font-size: 1.4em;
1911 vertical-align: bottom;
1912 line-height: 1;
1913}
1914
1915.topic .emoji {
1916 vertical-align: middle;
1917}
1918
1919.textcomplete-item .emoji {
1920 width: 32px;
1921 text-align: center;
1922}
1923
1924.textcomplete-item .irc-bg {
1925 display: block;
1926}
1927
1928/**
1929 * IRC Message Styling
1930 * Colours are credit to http://clrs.cc/
1931 */
1932.irc-fg0 { color: #fff; }
1933.irc-fg1 { color: #000; }
1934.irc-fg2 { color: #001f3f; }
1935.irc-fg3 { color: #2ecc40; }
1936.irc-fg4 { color: #ff4136; }
1937.irc-fg5 { color: #85144b; }
1938.irc-fg6 { color: #b10dc9; }
1939.irc-fg7 { color: #ff851b; }
1940.irc-fg8 { color: #ffdc00; }
1941.irc-fg9 { color: #01ff70; }
1942.irc-fg10 { color: #39cccc; }
1943.irc-fg11 { color: #7fdbff; }
1944.irc-fg12 { color: #0074d9; }
1945.irc-fg13 { color: #f012be; }
1946.irc-fg14 { color: #aaa; }
1947.irc-fg15 { color: #ddd; }
1948.irc-bg0 { background: #fff; }
1949.irc-bg1 { background: #000; }
1950.irc-bg2 { background: #001f3f; }
1951.irc-bg3 { background: #2ecc40; }
1952.irc-bg4 { background: #ff4136; }
1953.irc-bg5 { background: #85144b; }
1954.irc-bg6 { background: #b10dc9; }
1955.irc-bg7 { background: #ff851b; }
1956.irc-bg8 { background: #ffdc00; }
1957.irc-bg9 { background: #01ff70; }
1958.irc-bg10 { background: #39cccc; }
1959.irc-bg11 { background: #7fdbff; }
1960.irc-bg12 { background: #0074d9; }
1961.irc-bg13 { background: #f012be; }
1962.irc-bg14 { background: #aaa; }
1963.irc-bg15 { background: #ddd; }
1964
1965/* https://modern.ircdocs.horse/formatting.html#colors-16-98 */
1966.irc-fg16 { color: #470000; }
1967.irc-fg17 { color: #472100; }
1968.irc-fg18 { color: #474700; }
1969.irc-fg19 { color: #324700; }
1970.irc-fg20 { color: #004700; }
1971.irc-fg21 { color: #00472c; }
1972.irc-fg22 { color: #004747; }
1973.irc-fg23 { color: #002747; }
1974.irc-fg24 { color: #000047; }
1975.irc-fg25 { color: #2e0047; }
1976.irc-fg26 { color: #470047; }
1977.irc-fg27 { color: #47002a; }
1978.irc-fg28 { color: #740000; }
1979.irc-fg29 { color: #743a00; }
1980.irc-fg30 { color: #747400; }
1981.irc-fg31 { color: #517400; }
1982.irc-fg32 { color: #007400; }
1983.irc-fg33 { color: #007449; }
1984.irc-fg34 { color: #007474; }
1985.irc-fg35 { color: #004074; }
1986.irc-fg36 { color: #000074; }
1987.irc-fg37 { color: #4b0074; }
1988.irc-fg38 { color: #740074; }
1989.irc-fg39 { color: #740045; }
1990.irc-fg40 { color: #b50000; }
1991.irc-fg41 { color: #b56300; }
1992.irc-fg42 { color: #b5b500; }
1993.irc-fg43 { color: #7db500; }
1994.irc-fg44 { color: #00b500; }
1995.irc-fg45 { color: #00b571; }
1996.irc-fg46 { color: #00b5b5; }
1997.irc-fg47 { color: #0063b5; }
1998.irc-fg48 { color: #0000b5; }
1999.irc-fg49 { color: #7500b5; }
2000.irc-fg50 { color: #b500b5; }
2001.irc-fg51 { color: #b5006b; }
2002.irc-fg52 { color: #f00; }
2003.irc-fg53 { color: #ff8c00; }
2004.irc-fg54 { color: #ff0; }
2005.irc-fg55 { color: #b2ff00; }
2006.irc-fg56 { color: #0f0; }
2007.irc-fg57 { color: #00ffa0; }
2008.irc-fg58 { color: #0ff; }
2009.irc-fg59 { color: #008cff; }
2010.irc-fg60 { color: #00f; }
2011.irc-fg61 { color: #a500ff; }
2012.irc-fg62 { color: #f0f; }
2013.irc-fg63 { color: #ff0098; }
2014.irc-fg64 { color: #ff5959; }
2015.irc-fg65 { color: #ffb459; }
2016.irc-fg66 { color: #ffff71; }
2017.irc-fg67 { color: #cfff60; }
2018.irc-fg68 { color: #6fff6f; }
2019.irc-fg69 { color: #65ffc9; }
2020.irc-fg70 { color: #6dffff; }
2021.irc-fg71 { color: #59b4ff; }
2022.irc-fg72 { color: #5959ff; }
2023.irc-fg73 { color: #c459ff; }
2024.irc-fg74 { color: #f6f; }
2025.irc-fg75 { color: #ff59bc; }
2026.irc-fg76 { color: #ff9c9c; }
2027.irc-fg77 { color: #ffd39c; }
2028.irc-fg78 { color: #ffff9c; }
2029.irc-fg79 { color: #e2ff9c; }
2030.irc-fg80 { color: #9cff9c; }
2031.irc-fg81 { color: #9cffdb; }
2032.irc-fg82 { color: #9cffff; }
2033.irc-fg83 { color: #9cd3ff; }
2034.irc-fg84 { color: #9c9cff; }
2035.irc-fg85 { color: #dc9cff; }
2036.irc-fg86 { color: #ff9cff; }
2037.irc-fg87 { color: #ff94d3; }
2038.irc-fg88 { color: #000; }
2039.irc-fg89 { color: #131313; }
2040.irc-fg90 { color: #282828; }
2041.irc-fg91 { color: #363636; }
2042.irc-fg92 { color: #4d4d4d; }
2043.irc-fg93 { color: #656565; }
2044.irc-fg94 { color: #818181; }
2045.irc-fg95 { color: #9f9f9f; }
2046.irc-fg96 { color: #bcbcbc; }
2047.irc-fg97 { color: #e2e2e2; }
2048.irc-fg98 { color: #fff; }
2049.irc-bg16 { background-color: #470000; }
2050.irc-bg17 { background-color: #472100; }
2051.irc-bg18 { background-color: #474700; }
2052.irc-bg19 { background-color: #324700; }
2053.irc-bg20 { background-color: #004700; }
2054.irc-bg21 { background-color: #00472c; }
2055.irc-bg22 { background-color: #004747; }
2056.irc-bg23 { background-color: #002747; }
2057.irc-bg24 { background-color: #000047; }
2058.irc-bg25 { background-color: #2e0047; }
2059.irc-bg26 { background-color: #470047; }
2060.irc-bg27 { background-color: #47002a; }
2061.irc-bg28 { background-color: #740000; }
2062.irc-bg29 { background-color: #743a00; }
2063.irc-bg30 { background-color: #747400; }
2064.irc-bg31 { background-color: #517400; }
2065.irc-bg32 { background-color: #007400; }
2066.irc-bg33 { background-color: #007449; }
2067.irc-bg34 { background-color: #007474; }
2068.irc-bg35 { background-color: #004074; }
2069.irc-bg36 { background-color: #000074; }
2070.irc-bg37 { background-color: #4b0074; }
2071.irc-bg38 { background-color: #740074; }
2072.irc-bg39 { background-color: #740045; }
2073.irc-bg40 { background-color: #b50000; }
2074.irc-bg41 { background-color: #b56300; }
2075.irc-bg42 { background-color: #b5b500; }
2076.irc-bg43 { background-color: #7db500; }
2077.irc-bg44 { background-color: #00b500; }
2078.irc-bg45 { background-color: #00b571; }
2079.irc-bg46 { background-color: #00b5b5; }
2080.irc-bg47 { background-color: #0063b5; }
2081.irc-bg48 { background-color: #0000b5; }
2082.irc-bg49 { background-color: #7500b5; }
2083.irc-bg50 { background-color: #b500b5; }
2084.irc-bg51 { background-color: #b5006b; }
2085.irc-bg52 { background-color: #f00; }
2086.irc-bg53 { background-color: #ff8c00; }
2087.irc-bg54 { background-color: #ff0; }
2088.irc-bg55 { background-color: #b2ff00; }
2089.irc-bg56 { background-color: #0f0; }
2090.irc-bg57 { background-color: #00ffa0; }
2091.irc-bg58 { background-color: #0ff; }
2092.irc-bg59 { background-color: #008cff; }
2093.irc-bg60 { background-color: #00f; }
2094.irc-bg61 { background-color: #a500ff; }
2095.irc-bg62 { background-color: #f0f; }
2096.irc-bg63 { background-color: #ff0098; }
2097.irc-bg64 { background-color: #ff5959; }
2098.irc-bg65 { background-color: #ffb459; }
2099.irc-bg66 { background-color: #ffff71; }
2100.irc-bg67 { background-color: #cfff60; }
2101.irc-bg68 { background-color: #6fff6f; }
2102.irc-bg69 { background-color: #65ffc9; }
2103.irc-bg70 { background-color: #6dffff; }
2104.irc-bg71 { background-color: #59b4ff; }
2105.irc-bg72 { background-color: #5959ff; }
2106.irc-bg73 { background-color: #c459ff; }
2107.irc-bg74 { background-color: #f6f; }
2108.irc-bg75 { background-color: #ff59bc; }
2109.irc-bg76 { background-color: #ff9c9c; }
2110.irc-bg77 { background-color: #ffd39c; }
2111.irc-bg78 { background-color: #ffff9c; }
2112.irc-bg79 { background-color: #e2ff9c; }
2113.irc-bg80 { background-color: #9cff9c; }
2114.irc-bg81 { background-color: #9cffdb; }
2115.irc-bg82 { background-color: #9cffff; }
2116.irc-bg83 { background-color: #9cd3ff; }
2117.irc-bg84 { background-color: #9c9cff; }
2118.irc-bg85 { background-color: #dc9cff; }
2119.irc-bg86 { background-color: #ff9cff; }
2120.irc-bg87 { background-color: #ff94d3; }
2121.irc-bg88 { background-color: #000; }
2122.irc-bg89 { background-color: #131313; }
2123.irc-bg90 { background-color: #282828; }
2124.irc-bg91 { background-color: #363636; }
2125.irc-bg92 { background-color: #4d4d4d; }
2126.irc-bg93 { background-color: #656565; }
2127.irc-bg94 { background-color: #818181; }
2128.irc-bg95 { background-color: #9f9f9f; }
2129.irc-bg96 { background-color: #bcbcbc; }
2130.irc-bg97 { background-color: #e2e2e2; }
2131.irc-bg98 { background-color: #fff; }
2132
2133.irc-bold {
2134 font-weight: bold;
2135}
2136
2137.irc-underline {
2138 text-decoration: underline;
2139}
2140
2141.irc-strikethrough {
2142 text-decoration: line-through;
2143}
2144
2145.irc-italic {
2146 font-style: italic;
2147}
2148
2149.tooltipped::after {
2150 font-size: 12px;
2151}
2152
2153@media (min-width: 480px) {
2154 /* Fade out for long usernames */
2155
2156 #chat .from {
2157 padding-left: 10px;
2158 }
2159
2160 #chat .from::after {
2161 position: absolute;
2162 right: 0;
2163 bottom: 0;
2164 width: 10px;
2165 height: 100%;
2166 background: linear-gradient(to right, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 1) 100%);
2167 content: " ";
2168 }
2169
2170 /* End fade out for long usernames */
2171}
2172
2173@media (max-width: 768px) {
2174 /**
2175 * TODO Replace this with `@media (hover: hover)` when Firefox supports it
2176 * See:
2177 * - http://stackoverflow.com/a/28058919/1935861
2178 * - http://caniuse.com/#feat=css-media-interaction
2179 * - https://www.w3.org/TR/mediaqueries-4/
2180 * - https://developer.mozilla.org/en-US/docs/Web/CSS/@media/hover
2181 */
2182 .tooltipped-no-touch:hover::before,
2183 .tooltipped-no-touch:hover::after {
2184 visibility: hidden;
2185 opacity: 0;
2186 }
2187
2188 .container {
2189 margin-top: 60px !important;
2190 }
2191
2192 #sidebar button,
2193 #sidebar .chan,
2194 #sidebar .sign-out,
2195 #sidebar .empty,
2196 #windows label,
2197 #windows .header .topic,
2198 #settings .error,
2199 #help .help-item,
2200 #loading,
2201 #context-menu,
2202 #form #input,
2203 .textcomplete-menu,
2204 .messages .msg {
2205 font-size: 15px;
2206 }
2207
2208 #viewport {
2209 height: 100%;
2210 transition: transform 160ms, -webkit-transform 160ms;
2211 -webkit-transform: translateZ(0);
2212 transform: translateZ(0);
2213 }
2214
2215 #viewport.menu-open {
2216 -webkit-transform: translate3d(220px, 0, 0);
2217 transform: translate3d(220px, 0, 0);
2218 }
2219
2220 #viewport.menu-dragging {
2221 transition: none !important;
2222 }
2223
2224 #viewport.menu-open .messages {
2225 pointer-events: none;
2226 }
2227
2228 #sidebar,
2229 #footer {
2230 left: -220px;
2231 }
2232
2233 #sidebar .empty::before {
2234 margin-top: 0;
2235 }
2236
2237 #main {
2238 left: 0;
2239 }
2240
2241 #chat .chat {
2242 right: 0;
2243 }
2244
2245 #viewport .lt,
2246 #viewport .channel .rt {
2247 display: block;
2248 }
2249
2250 #windows .window .header {
2251 display: block;
2252 }
2253
2254 #chat .channel .chat {
2255 right: 0;
2256 }
2257
2258 #chat .sidebar {
2259 right: -180px;
2260 }
2261
2262 #viewport.rt #chat .sidebar {
2263 right: 0;
2264 }
2265
2266 #chat .title::before {
2267 display: none;
2268 }
2269}
2270
2271@media (max-width: 479px) {
2272 .container {
2273 margin: 10px 0 !important;
2274 }
2275
2276 #connect .tls {
2277 margin: 20px 0;
2278 }
2279
2280 #windows .input {
2281 margin-bottom: 2px;
2282 }
2283
2284 #chat .messages {
2285 display: block;
2286 padding: 5px 10px;
2287 }
2288
2289 #chat .msg {
2290 display: block;
2291 padding: 2px 0;
2292 }
2293
2294 #chat .time,
2295 #chat .from,
2296 #chat .content {
2297 border: 0;
2298 display: inline;
2299 padding: 0;
2300 }
2301
2302 #chat .condensed-summary .time,
2303 #chat .condensed-summary .from {
2304 display: none;
2305 }
2306
2307 #chat .date-marker,
2308 #chat .unread-marker {
2309 margin: 0;
2310 }
2311
2312 #help .help-item .subject {
2313 display: inline-block;
2314 padding-bottom: 4px;
2315 }
2316
2317 #help .help-item .description {
2318 display: block;
2319 }
2320}
2321
2322::-webkit-scrollbar {
2323 width: 8px;
2324 background-color: rgba(0, 0, 0, 0);
2325}
2326
2327::-webkit-scrollbar:hover {
2328 background-color: rgba(0, 0, 0, 0.09);
2329}
2330
2331::-webkit-scrollbar-thumb:vertical {
2332 background: rgba(0, 0, 0, 0.5);
2333 border-radius: 100px;
2334}
2335
2336::-webkit-scrollbar-thumb:vertical:active {
2337 background: rgba(0, 0, 0, 0.6);
2338}
2339
2340/* Image viewer */
2341
2342#image-viewer,
2343#image-viewer .close-btn {
2344 /* Vertically and horizontally center stuff */
2345 display: flex;
2346 flex-direction: column;
2347 align-items: center;
2348 justify-content: center;
2349}
2350
2351#image-viewer {
2352 position: fixed;
2353 top: 0;
2354 bottom: 0;
2355 left: 0;
2356 right: 0;
2357 background: black;
2358 visibility: hidden;
2359 opacity: 0;
2360 transition: opacity 0.2s, visibility 0.2s;
2361 z-index: 999;
2362}
2363
2364#image-viewer.opened {
2365 visibility: visible;
2366 opacity: 1;
2367}
2368
2369#image-viewer .close-btn,
2370#image-viewer .previous-image-btn,
2371#image-viewer .next-image-btn {
2372 position: fixed;
2373 top: 0;
2374 width: 2em;
2375 font-size: 36px;
2376 color: white;
2377 opacity: 0.6;
2378 transition: 0.2s opacity;
2379}
2380
2381#image-viewer .close-btn {
2382 right: 0;
2383 height: 2em;
2384 z-index: 1002;
2385}
2386
2387#image-viewer .close-btn::before {
2388 content: "×";
2389}
2390
2391#image-viewer .previous-image-btn,
2392#image-viewer .next-image-btn {
2393 bottom: 0;
2394 z-index: 1001;
2395}
2396
2397#image-viewer .previous-image-btn {
2398 left: 0;
2399}
2400
2401#image-viewer .next-image-btn {
2402 right: 0;
2403}
2404
2405#image-viewer .close-btn:hover,
2406#image-viewer .previous-image-btn:hover,
2407#image-viewer .next-image-btn:hover {
2408 opacity: 1;
2409}
2410
2411#image-viewer .image-link {
2412 margin: 10px;
2413}
2414
2415#image-viewer .image-link:hover {
2416 opacity: 1;
2417}
2418
2419#image-viewer .image-link img {
2420 max-width: 100%;
2421
2422 /* Top/Bottom margins + button height + image/button margin */
2423 max-height: calc(100vh - 2 * 10px - 37px - 10px);
2424
2425 /* Checkered background for transparent images */
2426 background-position: 0 0, 10px 10px;
2427 background-size: 20px 20px;
2428 background-image:
2429 linear-gradient(45deg, #eee 25%, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 0) 75%, #eee 75%, #eee 100%),
2430 linear-gradient(45deg, #eee 25%, #fff 25%, #fff 75%, #eee 75%, #eee 100%);
2431}
2432
2433#image-viewer .open-btn {
2434 margin: 0 auto 10px;
2435}
2436
2437/* Correctly handle multiple successive whitespace characters.
2438 For example: user has quit ( ===> L O L <=== ) */
2439
2440#windows .header .topic,
2441#chat .message .text,
2442#chat .motd .text,
2443#chat .notice .text,
2444#chat .ctcp-message,
2445#chat .part-reason,
2446#chat .quit-reason,
2447#chat .new-topic,
2448#chat .action .text,
2449#chat table.channel-list .topic {
2450 white-space: pre-wrap;
2451}