UNPKG

46 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 {
632 width: 18px;
633 height: 18px;
634 display: none;
635 transition: opacity 0.2s, background-color 0.2s;
636}
637
638#sidebar .close::before {
639 font-size: 20px;
640 font-weight: normal;
641 display: inline-block;
642 line-height: 16px;
643 text-align: center;
644 content: "×";
645 color: #fff;
646}
647
648#sidebar .lobby .add-channel {
649 border-radius: 3px;
650 width: 18px;
651 height: 18px;
652 opacity: 0.4;
653 transition: opacity 0.2s, background-color 0.2s, transform 0.2s;
654}
655
656#sidebar .lobby .add-channel::before {
657 font-size: 20px;
658 font-weight: normal;
659 display: inline-block;
660 line-height: 16px;
661 text-align: center;
662 content: "+";
663 color: #fff;
664}
665
666#sidebar .lobby .add-channel:hover {
667 opacity: 1;
668}
669
670#sidebar .lobby .add-channel.opened {
671 /* translateZ(0) enables hardware acceleration, this is to avoid jittering when animating */
672 transform: rotate(45deg) translateZ(0);
673}
674
675#sidebar .chan.active .close {
676 opacity: 0.4;
677 display: unset;
678}
679
680#sidebar .chan.active .close:hover {
681 opacity: 1;
682}
683
684#sidebar .tse-scrollbar {
685 top: 2px;
686 right: 3px;
687}
688
689#footer {
690 background: rgba(0, 0, 0, 0.06);
691 bottom: 0;
692 height: 45px;
693 left: 0;
694 font-size: 14px;
695 line-height: 45px;
696 position: absolute;
697 text-align: center;
698 width: 220px;
699}
700
701#footer button.active {
702 color: #fff;
703}
704
705#footer .icon {
706 color: #9ca5b4;
707 display: inline-block;
708 line-height: 34px;
709 padding: 0 12px;
710 transition: color 0.2s;
711}
712
713#footer .icon:hover {
714 color: #fff;
715}
716
717.signed-out #footer .sign-in {
718 display: inline-block;
719}
720
721.signed-out #footer .connect,
722.signed-out #footer .sign-out {
723 display: none;
724}
725
726.public #footer .sign-in,
727.public #footer .sign-out {
728 display: none;
729}
730
731#footer .sign-in {
732 display: none;
733}
734
735#main {
736 bottom: 0;
737 left: 220px;
738 position: absolute;
739 right: 0;
740 top: 0;
741 display: -webkit-flex;
742 display: flex;
743 -webkit-flex-direction: column;
744 flex-direction: column;
745}
746
747.signed-out #main {
748 left: 0; /* Hide the sidebar when user is signed out */
749}
750
751#header {
752 display: none;
753 height: 40px;
754 position: absolute;
755 top: 0;
756 width: 100%;
757}
758
759#windows li,
760#windows p,
761#windows label,
762#settings .error {
763 font-size: 14px;
764}
765
766.input {
767 background-color: white;
768 border: 1px solid #cdd3da;
769 border-radius: 2px;
770 color: #222;
771 font-size: 14px;
772 margin: 2px 0;
773 margin-bottom: 10px;
774 outline: 0;
775 padding: 8px 10px;
776 transition: border-color 0.2s;
777 width: 100%;
778}
779
780.input:disabled {
781 background-color: #ddd;
782}
783
784.input:not(:disabled):hover,
785.input:not(:disabled):focus {
786 border-color: #79838c;
787}
788
789#windows select.input {
790 height: 35px;
791}
792
793#user-specified-css-input {
794 resize: vertical;
795}
796
797#windows .window {
798 background: #fff;
799 bottom: 0;
800 display: none;
801 left: 0;
802 position: absolute;
803 right: 0;
804 top: 0;
805 overflow-y: auto;
806 -webkit-overflow-scrolling: touch;
807}
808
809#windows .window h1 {
810 font-size: 36px;
811}
812
813#windows .window h2 {
814 border-bottom: 1px solid #7f8c8d;
815 color: #7f8c8d;
816 font-size: 22px;
817 margin: 30px 0 10px;
818 padding-bottom: 7px;
819}
820
821#windows .window h2 small {
822 color: inherit;
823 line-height: 30px;
824}
825
826#windows .window h3 {
827 color: #7f8c8d;
828 font-size: 18px;
829 margin: 20px 0 10px;
830}
831
832#windows .active {
833 display: block;
834}
835
836#windows .header {
837 border-bottom: 1px solid #e7e7e7;
838 line-height: 48px;
839 height: 48px;
840 padding: 0 20px;
841 overflow: hidden;
842}
843
844#windows .header .title {
845 font-size: 15px;
846}
847
848#windows .header .topic {
849 color: #777;
850 margin-left: 8px;
851 word-break: break-all;
852}
853
854#windows .window .header {
855 display: none;
856}
857
858#chat-container,
859#chat .chan {
860 position: absolute;
861 top: 0;
862 right: 0;
863 bottom: 0;
864 left: 0;
865}
866
867#windows #chat-container.active {
868 display: -webkit-flex;
869 display: flex;
870 -webkit-flex-direction: column;
871 flex-direction: column;
872}
873
874#chat {
875 position: relative;
876 overflow: hidden;
877 -webkit-flex: 1;
878 flex: 1;
879}
880
881#chat .chan {
882 display: none;
883}
884
885#chat .chan.active {
886 display: block;
887}
888
889#chat .condensed {
890 flex-wrap: wrap;
891}
892
893#chat .condensed .content {
894 flex: 1;
895}
896
897/* Ensures expanded status messages always take up the full width */
898#chat .condensed .msg {
899 flex-basis: 100%;
900}
901
902#chat .condensed-summary .content {
903 display: block;
904 cursor: pointer;
905 transition: opacity 0.2s;
906 -webkit-user-select: none;
907 -moz-user-select: none;
908 -ms-user-select: none;
909 user-select: none;
910}
911
912#chat .condensed-summary {
913 display: none;
914}
915
916#chat.condensed-status-messages .condensed-summary {
917 display: flex;
918}
919
920#chat .condensed-summary .content:hover {
921 opacity: 0.6;
922}
923
924#chat .condensed-summary .toggle-button:hover {
925 opacity: 1;
926}
927
928#chat.condensed-status-messages .condensed.closed .msg {
929 display: none;
930}
931
932#chat .condensed-summary .time {
933 visibility: hidden;
934}
935
936#windows #form .input,
937#windows .header .topic,
938.messages .msg,
939.sidebar {
940 font-size: 14px;
941 line-height: 1.4;
942}
943
944#windows #chat .header {
945 display: block;
946}
947
948#chat .chat,
949#chat .sidebar {
950 top: 48px;
951}
952
953#chat .chat {
954 bottom: 0;
955 left: 0;
956 right: 0;
957 overflow: auto;
958 will-change: transform, scroll-position;
959 -webkit-overflow-scrolling: touch;
960 position: absolute;
961 display: flex;
962 flex-direction: column;
963}
964
965#chat .channel .chat {
966 right: 180px;
967}
968
969#viewport.rt .chat {
970 right: 0;
971}
972
973#chat .sidebar {
974 background: #fff;
975 border-left: 1px solid #e7e7e7;
976 bottom: 0;
977 position: absolute;
978 right: 0;
979 width: 180px;
980 transition: right 0.4s;
981 touch-action: pan-y;
982}
983
984/**
985 * Toggled via JavaScript
986 */
987#sidebar .join-form {
988 display: none;
989}
990
991#sidebar .join-form .input {
992 display: block;
993 margin-left: auto;
994 margin-right: auto;
995 margin-top: 5px;
996 margin-bottom: 5px;
997 width: 80%;
998}
999
1000#sidebar .join-form .btn {
1001 display: block;
1002 width: 80%;
1003 margin: auto;
1004}
1005
1006#sidebar .add-channel-tooltip {
1007 float: right;
1008}
1009
1010#chat .show-more {
1011 display: none;
1012 padding: 10px;
1013 padding-bottom: 0;
1014 width: 100%;
1015}
1016
1017#chat .show-more-button {
1018 background: #f4f4f4;
1019 background-image: linear-gradient(#f4f4f4, #ececec);
1020 border: 1px solid #d7d7d7;
1021 border-bottom-color: #b7b7b7;
1022 border-radius: 2px;
1023 color: #555;
1024 font-size: 12px;
1025 height: 34px;
1026 line-height: 0;
1027 width: 100%;
1028}
1029
1030#chat .show-more-button:hover {
1031 opacity: 1;
1032}
1033
1034#chat .messages {
1035 padding: 10px 0;
1036 touch-action: pan-y;
1037}
1038
1039#chat .chan:not(.special) .messages {
1040 margin-top: auto;
1041}
1042
1043#chat .msg {
1044 word-wrap: break-word;
1045 word-break: break-word; /* Webkit-specific */
1046 display: flex;
1047 overflow: hidden;
1048 position: relative;
1049}
1050
1051#chat .unread-marker {
1052 position: relative;
1053 text-align: center;
1054 margin: 0 10px;
1055 z-index: 0;
1056 font-weight: bold;
1057 font-size: 12px;
1058}
1059
1060#chat .unread-marker::before {
1061 position: absolute;
1062 z-index: -1;
1063 content: "";
1064 left: 0;
1065 right: 0;
1066 top: 50%;
1067 border-top: 1px solid rgba(231, 76, 60, 0.5);
1068}
1069
1070#chat .unread-marker-text::before {
1071 content: "New messages";
1072 background-color: white;
1073 color: rgba(231, 76, 60, 0.5);
1074 padding: 0 10px;
1075}
1076
1077#chat .unread-marker:last-child {
1078 display: none;
1079}
1080
1081#chat .date-marker {
1082 position: relative;
1083 text-align: center;
1084 margin: 0 10px;
1085 z-index: 0;
1086 font-weight: bold;
1087 font-size: 12px;
1088}
1089
1090#chat .date-marker::before {
1091 position: absolute;
1092 z-index: -1;
1093 content: "";
1094 left: 0;
1095 right: 0;
1096 top: 50%;
1097 border-top: 1px solid rgba(0, 107, 59, 0.5);
1098}
1099
1100#chat .date-marker-text::before {
1101 content: attr(data-label);
1102 background-color: white;
1103 color: rgba(0, 107, 59, 0.5);
1104 padding: 0 10px;
1105}
1106
1107.inline-channel {
1108 cursor: pointer;
1109}
1110
1111.inline-channel:hover {
1112 opacity: 0.6;
1113}
1114
1115#chat .time,
1116#chat .from,
1117#chat .content {
1118 padding: 3px 0;
1119 flex: 0 0 auto;
1120}
1121
1122#chat .time {
1123 color: #ddd;
1124 padding-left: 10px;
1125 width: 55px;
1126}
1127
1128#chat.show-seconds .time {
1129 width: 75px;
1130}
1131
1132#chat .from {
1133 border-right: 1px solid #f6f6f6;
1134 color: #b1c3ce;
1135 padding-right: 10px;
1136 text-align: right;
1137 width: 134px;
1138 overflow: hidden;
1139 white-space: nowrap;
1140 position: relative;
1141}
1142
1143#chat .content {
1144 flex: 1 1 auto;
1145 min-width: 0;
1146 padding-left: 10px;
1147 padding-right: 6px;
1148}
1149
1150#loading a,
1151#chat .special .time,
1152#chat .special .from {
1153 display: none;
1154}
1155
1156#chat .special .date-marker-container,
1157#chat .special .unread-marker {
1158 display: none;
1159}
1160
1161#chat .special table th {
1162 word-break: normal;
1163}
1164
1165/* Nicknames */
1166
1167#chat .user {
1168 cursor: pointer;
1169 color: #50a656;
1170}
1171
1172#chat .user:hover {
1173 opacity: 0.6;
1174}
1175
1176#chat.colored-nicks .user.color-1 { color: #1396cf; }
1177#chat.colored-nicks .user.color-2 { color: #ffcf89; }
1178#chat.colored-nicks .user.color-3 { color: #00dc5f; }
1179#chat.colored-nicks .user.color-4 { color: #ff5bc8; }
1180#chat.colored-nicks .user.color-5 { color: #ff0e1b; }
1181#chat.colored-nicks .user.color-6 { color: #000094; }
1182#chat.colored-nicks .user.color-7 { color: #006441; }
1183#chat.colored-nicks .user.color-8 { color: #00566e; }
1184#chat.colored-nicks .user.color-9 { color: #ff0078; }
1185#chat.colored-nicks .user.color-10 { color: #15d5a3; }
1186#chat.colored-nicks .user.color-11 { color: #006b3b; }
1187#chat.colored-nicks .user.color-12 { color: #00c5ba; }
1188#chat.colored-nicks .user.color-13 { color: #00465b; }
1189#chat.colored-nicks .user.color-14 { color: #ffafce; }
1190#chat.colored-nicks .user.color-15 { color: #ff3b12; }
1191#chat.colored-nicks .user.color-16 { color: #16cc6a; }
1192#chat.colored-nicks .user.color-17 { color: #ff0072; }
1193#chat.colored-nicks .user.color-18 { color: #ff5877; }
1194#chat.colored-nicks .user.color-19 { color: #ff1753; }
1195#chat.colored-nicks .user.color-20 { color: #007a56; }
1196#chat.colored-nicks .user.color-21 { color: #095092; }
1197#chat.colored-nicks .user.color-22 { color: #000bde; }
1198#chat.colored-nicks .user.color-23 { color: #00bca9; }
1199#chat.colored-nicks .user.color-24 { color: #00367d; }
1200#chat.colored-nicks .user.color-25 { color: #009ec4; }
1201#chat.colored-nicks .user.color-26 { color: #006119; }
1202#chat.colored-nicks .user.color-27 { color: #008bb8; }
1203#chat.colored-nicks .user.color-28 { color: #469c00; }
1204#chat.colored-nicks .user.color-29 { color: #ff0f95; }
1205#chat.colored-nicks .user.color-30 { color: #ff7615; }
1206#chat.colored-nicks .user.color-31 { color: #ff4846; }
1207#chat.colored-nicks .user.color-32 { color: #ff199b; }
1208
1209#chat .self .text {
1210 color: #999;
1211}
1212
1213#chat .msg.channel_list_loading .text {
1214 color: #999;
1215 font-style: italic;
1216 padding-left: 20px;
1217}
1218
1219#chat .msg.channel_list_truncated .text {
1220 color: #f00;
1221 padding-left: 20px;
1222}
1223
1224#chat table.channel-list,
1225#chat table.ban-list {
1226 margin: 5px 10px;
1227 width: calc(100% - 30px);
1228}
1229
1230#chat table.channel-list th,
1231#chat table.ban-list th,
1232#chat table.channel-list td,
1233#chat table.ban-list td {
1234 padding: 5px;
1235 vertical-align: top;
1236 border-bottom: #eee 1px solid;
1237}
1238
1239#chat table.channel-list .channel {
1240 width: 80px;
1241}
1242
1243#chat table.channel-list .channel,
1244#chat table.channel-list .topic,
1245#chat table.ban-list .hostmask,
1246#chat table.ban-list .banned_by,
1247#chat table.ban-list .banned_at {
1248 text-align: left;
1249}
1250
1251#chat table.channel-list .users {
1252 text-align: center;
1253 width: 50px;
1254}
1255
1256#chat table.channel-list td.channel .inline-channel {
1257 color: #428bca;
1258}
1259
1260#chat table.channel-list td {
1261 color: #555;
1262}
1263
1264#chat.hide-status-messages .condensed,
1265#chat.hide-motd .motd {
1266 display: none !important;
1267}
1268
1269#chat .condensed .content,
1270#chat .away .content,
1271#chat .back .content,
1272#chat .join .content,
1273#chat .kick .content,
1274#chat .mode .content,
1275#chat .nick .content,
1276#chat .part .content,
1277#chat .quit .content,
1278#chat .topic .content,
1279#chat .topic_set_by .content {
1280 color: #999;
1281}
1282
1283#chat .action .from,
1284#chat .action .text,
1285#chat .action .user {
1286 color: #f39c12;
1287}
1288
1289#chat .notice .time,
1290#chat .notice .text,
1291#chat .chan .notice .user {
1292 color: #0074d9 !important;
1293}
1294
1295#chat .notice .user::before {
1296 content: "Notice: ";
1297}
1298
1299#chat .error,
1300#chat .error .from,
1301#chat .channel .highlight .from,
1302#chat .channel .highlight .text,
1303#chat .channel .highlight .user {
1304 color: #f00;
1305}
1306
1307#chat .toggle-button.opened, /* Thumbnail toggle */
1308#chat .msg.condensed:not(.closed) .toggle-button { /* Expanded status message toggle */
1309 transform: rotate(90deg);
1310}
1311
1312#chat .toggle-content {
1313 background: #f5f5f5;
1314 border-radius: 2px;
1315 display: none;
1316 color: #222;
1317 max-width: 100%;
1318 margin: 0;
1319 margin-top: 6px;
1320 overflow: hidden;
1321}
1322
1323#chat .toggle-content img {
1324 max-width: 100%;
1325 max-height: 128px;
1326 display: block;
1327}
1328
1329#chat .toggle-content .thumb {
1330 max-width: 48px;
1331 max-height: 38px;
1332}
1333
1334#chat .toggle-thumbnail {
1335 padding: 6px;
1336}
1337
1338#chat .toggle-text {
1339 padding: 6px;
1340 min-width: 0;
1341 display: flex;
1342 flex-direction: column;
1343 white-space: nowrap;
1344 color: inherit;
1345}
1346
1347#chat .toggle-text:not(:first-child) {
1348 padding-left: 0;
1349}
1350
1351#chat .toggle-content .head,
1352#chat .toggle-content .body {
1353 text-overflow: ellipsis;
1354 overflow: hidden;
1355 color: inherit;
1356}
1357
1358#chat .toggle-content .head {
1359 font-weight: bold;
1360}
1361
1362#chat .toggle-content .body {
1363 color: #999;
1364}
1365
1366#chat .toggle-content.show {
1367 display: inline-flex !important;
1368}
1369
1370#chat audio {
1371 width: 600px;
1372 max-width: 100%;
1373}
1374
1375/* Do not display an empty div when there are no previews. Useful for example in
1376part/quit messages where we don't load previews (adds a blank line otherwise) */
1377#chat .preview:empty {
1378 display: none;
1379}
1380
1381#chat .count {
1382 background: #fafafa;
1383 height: 48px;
1384 left: 0;
1385 position: absolute;
1386 right: 0;
1387 top: 0;
1388}
1389
1390#chat .search {
1391 color: #222;
1392 border: 0;
1393 background: none;
1394 font: inherit;
1395 outline: 0;
1396 padding: 18px 16px;
1397 position: relative;
1398 width: 100%;
1399}
1400
1401#chat .names {
1402 bottom: 0;
1403 overflow: auto;
1404 overflow-x: hidden;
1405 will-change: transform, scroll-position;
1406 -webkit-overflow-scrolling: touch;
1407 padding-bottom: 10px;
1408 position: absolute;
1409 top: 48px;
1410 width: 100%;
1411 touch-action: pan-y;
1412}
1413
1414#chat .names-filtered {
1415 display: none;
1416}
1417
1418#chat .names .user {
1419 display: block;
1420 line-height: 1.6;
1421 padding: 0 16px;
1422 white-space: nowrap;
1423}
1424
1425#chat .user-mode::before {
1426 content: "";
1427 border-bottom: 1px solid #eee;
1428 display: block;
1429 line-height: 1.6;
1430 padding: 12px 16px 10px;
1431 margin-bottom: 10px;
1432}
1433
1434#chat .user-mode.owner::before {
1435 content: "Owners";
1436}
1437
1438#chat .user-mode.admin::before {
1439 content: "Administrators";
1440}
1441
1442#chat .user-mode.op::before {
1443 content: "Operators";
1444}
1445
1446#chat .user-mode.half-op::before {
1447 content: "Half-Operators";
1448}
1449
1450#chat .user-mode.voice::before {
1451 content: "Voiced";
1452}
1453
1454#chat .user-mode.normal::before {
1455 content: "Users";
1456}
1457
1458#chat .user-mode-search::before {
1459 content: "Search Results";
1460}
1461
1462#loading {
1463 font-size: 14px;
1464 z-index: 1;
1465}
1466
1467#loading p {
1468 margin-top: 10px;
1469}
1470
1471#loading-slow,
1472#loading-reload {
1473 display: none;
1474}
1475
1476#loading-reload {
1477 margin-top: 15px;
1478}
1479
1480#loading summary {
1481 outline: none;
1482 cursor: pointer;
1483}
1484
1485#loading pre {
1486 white-space: normal;
1487}
1488
1489#sign-in label {
1490 display: block;
1491 margin-top: 10px;
1492}
1493
1494#sign-in .btn {
1495 margin-top: 25px;
1496}
1497
1498#sign-in .error {
1499 color: #e74c3c;
1500 margin-top: 1em;
1501}
1502
1503#connect label {
1504 display: block;
1505 margin-top: 11px;
1506}
1507
1508#connect .port::before {
1509 content: ":";
1510 margin: 9px 0 0 -17px;
1511 position: absolute;
1512}
1513
1514#connect .tls {
1515 float: left;
1516 margin-top: 6px;
1517}
1518
1519#connect .tls input {
1520 float: left;
1521 margin: 3px 10px 0 0;
1522}
1523
1524#connect .btn {
1525 float: left;
1526 margin-top: 30px;
1527}
1528
1529#settings .opt {
1530 display: block;
1531 padding: 5px 0 5px 1px;
1532}
1533
1534#settings .opt input {
1535 margin-right: 6px;
1536}
1537
1538#settings .extra-help,
1539#settings #play {
1540 color: #7f8c8d;
1541}
1542
1543#settings .extra-help {
1544 cursor: help;
1545}
1546
1547#settings h2 .extra-help {
1548 font-size: 0.8em;
1549}
1550
1551#settings #play {
1552 font-size: 14px;
1553 transition: opacity 0.2s;
1554}
1555
1556#settings #play:hover {
1557 opacity: 0.8;
1558}
1559
1560#settings #change-password .error,
1561#settings #change-password .success {
1562 margin-bottom: 1em;
1563}
1564
1565#settings #change-password .error {
1566 color: #e74c3c;
1567}
1568
1569#settings #change-password .success {
1570 color: #2ecc40;
1571}
1572
1573#settings .error {
1574 color: #e74c3c;
1575 margin-top: 0.2em;
1576}
1577
1578#help .help-item {
1579 display: table-row;
1580 font-size: 14px;
1581}
1582
1583#help .help-item .subject,
1584#help .help-item .description {
1585 display: table-cell;
1586 padding-bottom: 15px;
1587}
1588
1589#help .help-item .subject {
1590 white-space: nowrap;
1591 padding-right: 15px;
1592}
1593
1594#help .help-item .description p {
1595 margin-bottom: 0;
1596}
1597
1598.is-apple #help .key-all,
1599#help .key-apple {
1600 display: none;
1601}
1602
1603.is-apple #help .key-apple {
1604 display: inline-block;
1605}
1606
1607.whois {
1608 display: -ms-grid; /* Edge 15- */
1609 display: grid;
1610 -ms-grid-template-columns: max-content auto;
1611 grid-template-columns: max-content auto;
1612 margin: 0;
1613}
1614
1615.whois dt {
1616 -ms-grid-column-start: 1;
1617 grid-column-start: 1;
1618 margin-right: 20px;
1619}
1620
1621.whois dd {
1622 -ms-grid-column-start: 2;
1623 grid-column-start: 2;
1624}
1625
1626.changelog-text {
1627 line-height: 1.5;
1628}
1629
1630.changelog-text p {
1631 margin-bottom: 16px;
1632}
1633
1634.window#changelog h3 {
1635 font-size: 20px;
1636 border-bottom: 1px solid #7f8c8d;
1637 color: #7f8c8d;
1638 margin: 30px 0 10px;
1639 padding-bottom: 7px;
1640}
1641
1642#version-checker {
1643 display: flex;
1644 align-items: center;
1645 padding: 10px;
1646 margin-bottom: 16px;
1647 border-radius: 2px;
1648 transition: color 0.2s, background-color 0.2s;
1649}
1650
1651#version-checker p,
1652#version-checker button {
1653 margin-bottom: 0;
1654}
1655
1656#version-checker p {
1657 flex: 1;
1658 padding-top: 6px;
1659 padding-bottom: 6px;
1660}
1661
1662#version-checker::before {
1663 margin-left: 6px;
1664 margin-right: 12px;
1665 font-size: 1.2em;
1666}
1667
1668#version-checker.loading {
1669 background-color: #d9edf7;
1670 color: #31708f;
1671}
1672
1673#version-checker.loading::before {
1674 content: "\f250"; /* http://fontawesome.io/icon/hourglass-o/ */
1675}
1676
1677#version-checker.new-version {
1678 color: #8a6d3b;
1679 background-color: #fcf8e3;
1680}
1681
1682#version-checker.new-version::before {
1683 content: "\f087"; /* http://fontawesome.io/icon/thumbs-o-up/ */
1684}
1685
1686#version-checker.error {
1687 color: #a94442;
1688 background-color: #f2dede;
1689}
1690
1691#version-checker.error::before {
1692 content: "\f06a"; /* http://fontawesome.io/icon/exclamation-circle/ */
1693}
1694
1695#version-checker.up-to-date {
1696 background-color: #dff0d8;
1697 color: #3c763d;
1698}
1699
1700#version-checker.up-to-date #check-now {
1701 /* "Check now" button is hidden until data expires */
1702 display: none;
1703}
1704
1705#version-checker.up-to-date::before {
1706 content: "\f00c"; /* http://fontawesome.io/icon/check/ */
1707}
1708
1709#form {
1710 background: #eee;
1711 border-top: 1px solid #ddd;
1712 -webkit-flex: 0 0 auto;
1713 flex: 0 0 auto;
1714 padding: 5px;
1715}
1716
1717#windows #form .input {
1718 border: 1px solid #ddd;
1719 border-radius: 2px;
1720 margin: 0;
1721 padding: 0;
1722 background: white;
1723 display: -webkit-flex;
1724 display: flex;
1725 -webkit-align-items: flex-end;
1726 align-items: flex-end;
1727}
1728
1729#connection-error {
1730 font-size: 12px;
1731 line-height: 36px;
1732 font-weight: bold;
1733 letter-spacing: 1px;
1734 word-spacing: 3px;
1735 text-transform: uppercase;
1736 background: #e74c3c;
1737 color: #fff;
1738 text-align: center;
1739 display: none;
1740}
1741
1742#connection-error.shown {
1743 display: block;
1744}
1745
1746[contenteditable]:focus {
1747 outline: none;
1748}
1749
1750[contenteditable="true"] {
1751 -webkit-user-select: text;
1752 -moz-user-select: text;
1753 -ms-user-select: text;
1754 user-select: text;
1755 cursor: text;
1756}
1757
1758/* Nick editor */
1759
1760#form #nick {
1761 background: #f6f6f6;
1762 color: #666;
1763 font: inherit;
1764 font-size: 13px;
1765 margin: 4px;
1766 line-height: 22px;
1767 height: 24px;
1768 padding-left: 9px;
1769 padding-right: 5px;
1770 border-radius: 2px;
1771 -webkit-flex: 0 0 auto;
1772 flex: 0 0 auto;
1773 border: 1px solid transparent;
1774 transition: border-color 0.2s;
1775}
1776
1777#form #nick-value {
1778 padding-right: 5px;
1779}
1780
1781#form #nick.editable {
1782 border-color: black;
1783}
1784
1785#nick button#set-nick,
1786#nick button#submit-nick,
1787#nick button#cancel-nick {
1788 color: #aaa;
1789 width: 18px;
1790}
1791
1792#nick.editable button#set-nick,
1793#nick.editable #set-nick-tooltip,
1794#nick button#submit-nick,
1795#nick:not(.editable) #save-nick-tooltip,
1796#nick button#cancel-nick,
1797#nick:not(.editable) #cancel-nick-tooltip {
1798 display: none;
1799}
1800
1801#nick.editable button#submit-nick,
1802#nick.editable button#cancel-nick {
1803 display: inline-block;
1804}
1805
1806/* End nick editor */
1807
1808#form #input {
1809 background: transparent;
1810 border: none;
1811 font: inherit;
1812 min-height: 19px; /* Required when computing input height at char deletion */
1813 height: 19px;
1814 max-height: 95px; /* min-height/height x number of lines maximum */
1815 line-height: 1.4;
1816 outline: none;
1817 margin: 5px;
1818 padding: 0;
1819 resize: none;
1820 -webkit-flex: 1 0 auto;
1821 flex: 1 0 auto;
1822 align-self: center;
1823 touch-action: pan-y;
1824}
1825
1826#form #submit {
1827 color: #9ca5b4;
1828 font-size: 14px;
1829 height: 32px;
1830 transition: opacity 0.2s;
1831 width: 32px;
1832 -webkit-flex: 0 0 auto;
1833 flex: 0 0 auto;
1834}
1835
1836#context-menu-container {
1837 display: none;
1838 position: absolute;
1839 top: 0;
1840 left: 0;
1841 width: 100%;
1842 height: 100%;
1843 z-index: 1000;
1844 background: transparent;
1845}
1846
1847#context-menu,
1848.textcomplete-menu {
1849 position: absolute;
1850 list-style: none;
1851 margin: 0;
1852 padding: 0;
1853 min-width: 160px;
1854 font-size: 14px;
1855 background-color: #fff;
1856 box-shadow: 0 3px 12px rgba(0, 0, 0, 0.15);
1857 border: 1px solid rgba(0, 0, 0, 0.15);
1858 border-radius: 2px;
1859}
1860
1861.context-menu-divider {
1862 height: 1px;
1863 margin: 6px 0;
1864 background-color: rgba(0, 0, 0, 0.1);
1865}
1866
1867.context-menu-item,
1868.textcomplete-item {
1869 cursor: pointer;
1870 display: block;
1871 padding: 4px 8px;
1872 color: #333;
1873 margin-top: 6px;
1874 margin-bottom: 6px;
1875 line-height: 1.4;
1876 transition: background-color 0.2s;
1877}
1878
1879.context-menu-item:hover,
1880.textcomplete-item:hover,
1881.textcomplete-menu .active {
1882 background-color: #f6f6f6;
1883 transition: none;
1884}
1885
1886.context-menu-item::before,
1887.textcomplete-item::before {
1888 width: 20px;
1889 display: inline-block;
1890}
1891
1892.textcomplete-item a {
1893 color: #333;
1894}
1895
1896.textcomplete-item a:hover {
1897 opacity: 1;
1898}
1899
1900.emoji {
1901 display: inline-block;
1902 font-size: 1.4em;
1903 vertical-align: bottom;
1904 line-height: 1;
1905}
1906
1907.topic .emoji {
1908 vertical-align: middle;
1909}
1910
1911.textcomplete-item .emoji {
1912 width: 32px;
1913 text-align: center;
1914}
1915
1916.textcomplete-item .irc-bg {
1917 display: block;
1918}
1919
1920/**
1921 * IRC Message Styling
1922 * Colours are credit to http://clrs.cc/
1923 */
1924.irc-fg0 { color: #fff; }
1925.irc-fg1 { color: #000; }
1926.irc-fg2 { color: #001f3f; }
1927.irc-fg3 { color: #2ecc40; }
1928.irc-fg4 { color: #ff4136; }
1929.irc-fg5 { color: #85144b; }
1930.irc-fg6 { color: #b10dc9; }
1931.irc-fg7 { color: #ff851b; }
1932.irc-fg8 { color: #ffdc00; }
1933.irc-fg9 { color: #01ff70; }
1934.irc-fg10 { color: #39cccc; }
1935.irc-fg11 { color: #7fdbff; }
1936.irc-fg12 { color: #0074d9; }
1937.irc-fg13 { color: #f012be; }
1938.irc-fg14 { color: #aaa; }
1939.irc-fg15 { color: #ddd; }
1940.irc-bg0 { background: #fff; }
1941.irc-bg1 { background: #000; }
1942.irc-bg2 { background: #001f3f; }
1943.irc-bg3 { background: #2ecc40; }
1944.irc-bg4 { background: #ff4136; }
1945.irc-bg5 { background: #85144b; }
1946.irc-bg6 { background: #b10dc9; }
1947.irc-bg7 { background: #ff851b; }
1948.irc-bg8 { background: #ffdc00; }
1949.irc-bg9 { background: #01ff70; }
1950.irc-bg10 { background: #39cccc; }
1951.irc-bg11 { background: #7fdbff; }
1952.irc-bg12 { background: #0074d9; }
1953.irc-bg13 { background: #f012be; }
1954.irc-bg14 { background: #aaa; }
1955.irc-bg15 { background: #ddd; }
1956
1957/* https://modern.ircdocs.horse/formatting.html#colors-16-98 */
1958.irc-fg16 { color: #470000; }
1959.irc-fg17 { color: #472100; }
1960.irc-fg18 { color: #474700; }
1961.irc-fg19 { color: #324700; }
1962.irc-fg20 { color: #004700; }
1963.irc-fg21 { color: #00472c; }
1964.irc-fg22 { color: #004747; }
1965.irc-fg23 { color: #002747; }
1966.irc-fg24 { color: #000047; }
1967.irc-fg25 { color: #2e0047; }
1968.irc-fg26 { color: #470047; }
1969.irc-fg27 { color: #47002a; }
1970.irc-fg28 { color: #740000; }
1971.irc-fg29 { color: #743a00; }
1972.irc-fg30 { color: #747400; }
1973.irc-fg31 { color: #517400; }
1974.irc-fg32 { color: #007400; }
1975.irc-fg33 { color: #007449; }
1976.irc-fg34 { color: #007474; }
1977.irc-fg35 { color: #004074; }
1978.irc-fg36 { color: #000074; }
1979.irc-fg37 { color: #4b0074; }
1980.irc-fg38 { color: #740074; }
1981.irc-fg39 { color: #740045; }
1982.irc-fg40 { color: #b50000; }
1983.irc-fg41 { color: #b56300; }
1984.irc-fg42 { color: #b5b500; }
1985.irc-fg43 { color: #7db500; }
1986.irc-fg44 { color: #00b500; }
1987.irc-fg45 { color: #00b571; }
1988.irc-fg46 { color: #00b5b5; }
1989.irc-fg47 { color: #0063b5; }
1990.irc-fg48 { color: #0000b5; }
1991.irc-fg49 { color: #7500b5; }
1992.irc-fg50 { color: #b500b5; }
1993.irc-fg51 { color: #b5006b; }
1994.irc-fg52 { color: #f00; }
1995.irc-fg53 { color: #ff8c00; }
1996.irc-fg54 { color: #ff0; }
1997.irc-fg55 { color: #b2ff00; }
1998.irc-fg56 { color: #0f0; }
1999.irc-fg57 { color: #00ffa0; }
2000.irc-fg58 { color: #0ff; }
2001.irc-fg59 { color: #008cff; }
2002.irc-fg60 { color: #00f; }
2003.irc-fg61 { color: #a500ff; }
2004.irc-fg62 { color: #f0f; }
2005.irc-fg63 { color: #ff0098; }
2006.irc-fg64 { color: #ff5959; }
2007.irc-fg65 { color: #ffb459; }
2008.irc-fg66 { color: #ffff71; }
2009.irc-fg67 { color: #cfff60; }
2010.irc-fg68 { color: #6fff6f; }
2011.irc-fg69 { color: #65ffc9; }
2012.irc-fg70 { color: #6dffff; }
2013.irc-fg71 { color: #59b4ff; }
2014.irc-fg72 { color: #5959ff; }
2015.irc-fg73 { color: #c459ff; }
2016.irc-fg74 { color: #f6f; }
2017.irc-fg75 { color: #ff59bc; }
2018.irc-fg76 { color: #ff9c9c; }
2019.irc-fg77 { color: #ffd39c; }
2020.irc-fg78 { color: #ffff9c; }
2021.irc-fg79 { color: #e2ff9c; }
2022.irc-fg80 { color: #9cff9c; }
2023.irc-fg81 { color: #9cffdb; }
2024.irc-fg82 { color: #9cffff; }
2025.irc-fg83 { color: #9cd3ff; }
2026.irc-fg84 { color: #9c9cff; }
2027.irc-fg85 { color: #dc9cff; }
2028.irc-fg86 { color: #ff9cff; }
2029.irc-fg87 { color: #ff94d3; }
2030.irc-fg88 { color: #000; }
2031.irc-fg89 { color: #131313; }
2032.irc-fg90 { color: #282828; }
2033.irc-fg91 { color: #363636; }
2034.irc-fg92 { color: #4d4d4d; }
2035.irc-fg93 { color: #656565; }
2036.irc-fg94 { color: #818181; }
2037.irc-fg95 { color: #9f9f9f; }
2038.irc-fg96 { color: #bcbcbc; }
2039.irc-fg97 { color: #e2e2e2; }
2040.irc-fg98 { color: #fff; }
2041.irc-bg16 { background-color: #470000; }
2042.irc-bg17 { background-color: #472100; }
2043.irc-bg18 { background-color: #474700; }
2044.irc-bg19 { background-color: #324700; }
2045.irc-bg20 { background-color: #004700; }
2046.irc-bg21 { background-color: #00472c; }
2047.irc-bg22 { background-color: #004747; }
2048.irc-bg23 { background-color: #002747; }
2049.irc-bg24 { background-color: #000047; }
2050.irc-bg25 { background-color: #2e0047; }
2051.irc-bg26 { background-color: #470047; }
2052.irc-bg27 { background-color: #47002a; }
2053.irc-bg28 { background-color: #740000; }
2054.irc-bg29 { background-color: #743a00; }
2055.irc-bg30 { background-color: #747400; }
2056.irc-bg31 { background-color: #517400; }
2057.irc-bg32 { background-color: #007400; }
2058.irc-bg33 { background-color: #007449; }
2059.irc-bg34 { background-color: #007474; }
2060.irc-bg35 { background-color: #004074; }
2061.irc-bg36 { background-color: #000074; }
2062.irc-bg37 { background-color: #4b0074; }
2063.irc-bg38 { background-color: #740074; }
2064.irc-bg39 { background-color: #740045; }
2065.irc-bg40 { background-color: #b50000; }
2066.irc-bg41 { background-color: #b56300; }
2067.irc-bg42 { background-color: #b5b500; }
2068.irc-bg43 { background-color: #7db500; }
2069.irc-bg44 { background-color: #00b500; }
2070.irc-bg45 { background-color: #00b571; }
2071.irc-bg46 { background-color: #00b5b5; }
2072.irc-bg47 { background-color: #0063b5; }
2073.irc-bg48 { background-color: #0000b5; }
2074.irc-bg49 { background-color: #7500b5; }
2075.irc-bg50 { background-color: #b500b5; }
2076.irc-bg51 { background-color: #b5006b; }
2077.irc-bg52 { background-color: #f00; }
2078.irc-bg53 { background-color: #ff8c00; }
2079.irc-bg54 { background-color: #ff0; }
2080.irc-bg55 { background-color: #b2ff00; }
2081.irc-bg56 { background-color: #0f0; }
2082.irc-bg57 { background-color: #00ffa0; }
2083.irc-bg58 { background-color: #0ff; }
2084.irc-bg59 { background-color: #008cff; }
2085.irc-bg60 { background-color: #00f; }
2086.irc-bg61 { background-color: #a500ff; }
2087.irc-bg62 { background-color: #f0f; }
2088.irc-bg63 { background-color: #ff0098; }
2089.irc-bg64 { background-color: #ff5959; }
2090.irc-bg65 { background-color: #ffb459; }
2091.irc-bg66 { background-color: #ffff71; }
2092.irc-bg67 { background-color: #cfff60; }
2093.irc-bg68 { background-color: #6fff6f; }
2094.irc-bg69 { background-color: #65ffc9; }
2095.irc-bg70 { background-color: #6dffff; }
2096.irc-bg71 { background-color: #59b4ff; }
2097.irc-bg72 { background-color: #5959ff; }
2098.irc-bg73 { background-color: #c459ff; }
2099.irc-bg74 { background-color: #f6f; }
2100.irc-bg75 { background-color: #ff59bc; }
2101.irc-bg76 { background-color: #ff9c9c; }
2102.irc-bg77 { background-color: #ffd39c; }
2103.irc-bg78 { background-color: #ffff9c; }
2104.irc-bg79 { background-color: #e2ff9c; }
2105.irc-bg80 { background-color: #9cff9c; }
2106.irc-bg81 { background-color: #9cffdb; }
2107.irc-bg82 { background-color: #9cffff; }
2108.irc-bg83 { background-color: #9cd3ff; }
2109.irc-bg84 { background-color: #9c9cff; }
2110.irc-bg85 { background-color: #dc9cff; }
2111.irc-bg86 { background-color: #ff9cff; }
2112.irc-bg87 { background-color: #ff94d3; }
2113.irc-bg88 { background-color: #000; }
2114.irc-bg89 { background-color: #131313; }
2115.irc-bg90 { background-color: #282828; }
2116.irc-bg91 { background-color: #363636; }
2117.irc-bg92 { background-color: #4d4d4d; }
2118.irc-bg93 { background-color: #656565; }
2119.irc-bg94 { background-color: #818181; }
2120.irc-bg95 { background-color: #9f9f9f; }
2121.irc-bg96 { background-color: #bcbcbc; }
2122.irc-bg97 { background-color: #e2e2e2; }
2123.irc-bg98 { background-color: #fff; }
2124
2125.irc-bold {
2126 font-weight: bold;
2127}
2128
2129.irc-underline {
2130 text-decoration: underline;
2131}
2132
2133.irc-strikethrough {
2134 text-decoration: line-through;
2135}
2136
2137.irc-italic {
2138 font-style: italic;
2139}
2140
2141.tooltipped::after {
2142 font-size: 12px;
2143}
2144
2145@media (min-width: 480px) {
2146 /* Fade out for long usernames */
2147
2148 #chat .from {
2149 padding-left: 10px;
2150 }
2151
2152 #chat .from::after {
2153 position: absolute;
2154 right: 0;
2155 bottom: 0;
2156 width: 10px;
2157 height: 100%;
2158 background: linear-gradient(to right, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 1) 100%);
2159 content: " ";
2160 }
2161
2162 /* End fade out for long usernames */
2163}
2164
2165@media (max-width: 768px) {
2166 /**
2167 * TODO Replace this with `@media (hover: hover)` when Firefox supports it
2168 * See:
2169 * - http://stackoverflow.com/a/28058919/1935861
2170 * - http://caniuse.com/#feat=css-media-interaction
2171 * - https://www.w3.org/TR/mediaqueries-4/
2172 * - https://developer.mozilla.org/en-US/docs/Web/CSS/@media/hover
2173 */
2174 .tooltipped-no-touch:hover::before,
2175 .tooltipped-no-touch:hover::after {
2176 visibility: hidden;
2177 opacity: 0;
2178 }
2179
2180 .container {
2181 margin-top: 60px !important;
2182 }
2183
2184 #sidebar button,
2185 #sidebar .chan,
2186 #sidebar .sign-out,
2187 #sidebar .empty,
2188 #windows label,
2189 #windows .header .topic,
2190 #settings .error,
2191 #help .help-item,
2192 #loading,
2193 #context-menu,
2194 #form #input,
2195 .textcomplete-menu,
2196 .messages .msg {
2197 font-size: 15px;
2198 }
2199
2200 #viewport {
2201 height: 100%;
2202 transition: transform 160ms, -webkit-transform 160ms;
2203 -webkit-transform: translateZ(0);
2204 transform: translateZ(0);
2205 }
2206
2207 #viewport.menu-open {
2208 -webkit-transform: translate3d(220px, 0, 0);
2209 transform: translate3d(220px, 0, 0);
2210 }
2211
2212 #viewport.menu-dragging {
2213 transition: none !important;
2214 }
2215
2216 #viewport.menu-open .messages {
2217 pointer-events: none;
2218 }
2219
2220 #sidebar,
2221 #footer {
2222 left: -220px;
2223 }
2224
2225 #sidebar .empty::before {
2226 margin-top: 0;
2227 }
2228
2229 #main {
2230 left: 0;
2231 }
2232
2233 #chat .chat {
2234 right: 0;
2235 }
2236
2237 #viewport .lt,
2238 #viewport .channel .rt {
2239 display: block;
2240 }
2241
2242 #windows .window .header {
2243 display: block;
2244 }
2245
2246 #chat .channel .chat {
2247 right: 0;
2248 }
2249
2250 #chat .sidebar {
2251 right: -180px;
2252 }
2253
2254 #viewport.rt #chat .sidebar {
2255 right: 0;
2256 }
2257
2258 #chat .title::before {
2259 display: none;
2260 }
2261}
2262
2263@media (max-width: 479px) {
2264 .container {
2265 margin: 10px 0 !important;
2266 }
2267
2268 #connect .tls {
2269 margin: 20px 0;
2270 }
2271
2272 #windows .input {
2273 margin-bottom: 2px;
2274 }
2275
2276 #chat .messages {
2277 display: block;
2278 padding: 5px 10px;
2279 }
2280
2281 #chat .msg {
2282 display: block;
2283 padding: 2px 0;
2284 }
2285
2286 #chat .time,
2287 #chat .from,
2288 #chat .content {
2289 border: 0;
2290 display: inline;
2291 padding: 0;
2292 }
2293
2294 #chat .condensed-summary .time,
2295 #chat .condensed-summary .from {
2296 display: none;
2297 }
2298
2299 #chat .date-marker,
2300 #chat .unread-marker {
2301 margin: 0;
2302 }
2303
2304 #help .help-item .subject {
2305 display: inline-block;
2306 padding-bottom: 4px;
2307 }
2308
2309 #help .help-item .description {
2310 display: block;
2311 }
2312}
2313
2314::-webkit-scrollbar {
2315 width: 8px;
2316 background-color: rgba(0, 0, 0, 0);
2317}
2318
2319::-webkit-scrollbar:hover {
2320 background-color: rgba(0, 0, 0, 0.09);
2321}
2322
2323::-webkit-scrollbar-thumb:vertical {
2324 background: rgba(0, 0, 0, 0.5);
2325 border-radius: 100px;
2326}
2327
2328::-webkit-scrollbar-thumb:vertical:active {
2329 background: rgba(0, 0, 0, 0.6);
2330}
2331
2332/* Image viewer */
2333
2334#image-viewer,
2335#image-viewer .close-btn {
2336 /* Vertically and horizontally center stuff */
2337 display: flex;
2338 flex-direction: column;
2339 align-items: center;
2340 justify-content: center;
2341}
2342
2343#image-viewer {
2344 position: fixed;
2345 top: 0;
2346 bottom: 0;
2347 left: 0;
2348 right: 0;
2349 background: black;
2350 visibility: hidden;
2351 opacity: 0;
2352 transition: opacity 0.2s, visibility 0.2s;
2353 z-index: 999;
2354}
2355
2356#image-viewer.opened {
2357 visibility: visible;
2358 opacity: 1;
2359}
2360
2361#image-viewer .close-btn,
2362#image-viewer .previous-image-btn,
2363#image-viewer .next-image-btn {
2364 position: fixed;
2365 top: 0;
2366 width: 2em;
2367 font-size: 36px;
2368 color: white;
2369 opacity: 0.6;
2370 transition: 0.2s opacity;
2371}
2372
2373#image-viewer .close-btn {
2374 right: 0;
2375 height: 2em;
2376 z-index: 1002;
2377}
2378
2379#image-viewer .close-btn::before {
2380 content: "×";
2381}
2382
2383#image-viewer .previous-image-btn,
2384#image-viewer .next-image-btn {
2385 bottom: 0;
2386 z-index: 1001;
2387}
2388
2389#image-viewer .previous-image-btn {
2390 left: 0;
2391}
2392
2393#image-viewer .next-image-btn {
2394 right: 0;
2395}
2396
2397#image-viewer .close-btn:hover,
2398#image-viewer .previous-image-btn:hover,
2399#image-viewer .next-image-btn:hover {
2400 opacity: 1;
2401}
2402
2403#image-viewer .image-link {
2404 margin: 10px;
2405}
2406
2407#image-viewer .image-link:hover {
2408 opacity: 1;
2409}
2410
2411#image-viewer .image-link img {
2412 max-width: 100%;
2413
2414 /* Top/Bottom margins + button height + image/button margin */
2415 max-height: calc(100vh - 2 * 10px - 37px - 10px);
2416
2417 /* Checkered background for transparent images */
2418 background-position: 0 0, 10px 10px;
2419 background-size: 20px 20px;
2420 background-image:
2421 linear-gradient(45deg, #eee 25%, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 0) 75%, #eee 75%, #eee 100%),
2422 linear-gradient(45deg, #eee 25%, #fff 25%, #fff 75%, #eee 75%, #eee 100%);
2423}
2424
2425#image-viewer .open-btn {
2426 margin: 0 auto 10px;
2427}
2428
2429/* Correctly handle multiple successive whitespace characters.
2430 For example: user has quit ( ===> L O L <=== ) */
2431
2432#windows .header .topic,
2433#chat .message .text,
2434#chat .motd .text,
2435#chat .notice .text,
2436#chat .ctcp-message,
2437#chat .part-reason,
2438#chat .quit-reason,
2439#chat .new-topic,
2440#chat .action .text,
2441#chat table.channel-list .topic {
2442 white-space: pre-wrap;
2443}