:root { --main-background: white; --main-color: black; --sidebar-background: #e3e3e3; --expander-background: #b5b5b5; --expander-background-hover: #a6a6a6; --expander-border: #6c6c6c; --button-color: #eff7ef; --button-background: #545499; --button-background-hover: #00007C; --button-border: #e3e3e3; --danger-button-color: #eff7ef; --danger-button-background: #db2626; --danger-button-background-hover: #B20000; --danger-button-border: #e3e3e3; --green: green; --gray: #4a4a4a; } @media (prefers-color-scheme: dark) { :root { --main-background: #212529; --main-color: #f8f9fa; --sidebar-background: #131618; --expander-background: #424446; --expander-background-hover: #2a2d2f; --button-background: #282879; --button-background-hover: #00007C; --button-border: #131618; --danger-button-background: #B20000; --danger-button-background-hover: red; --danger-button-border: #131618; --green: #53b266; --gray: #979797; --red: #fb615b; } } html { scrollbar-color: #8e8e8e transparent; } html, body { height: 100%; padding: 0; margin: 0; overflow: hidden; } body { display: grid; grid-template-rows: auto 1fr max-content; grid-template-columns: max-content 1fr max-content; font-family: monospace; } noscript { display: block; margin: 0 auto; max-width: 600px; grid-column-start: 2; } button { background: var(--button-background); transition: background 0.25s linear; color: var(--button-color); padding: 0.25rem 0.5rem; border-style: solid; border-color: var(--button-border); border-width: 1px; font-size: 0.8rem; cursor: pointer; } button:hover { background: var(--button-background-hover); } button.danger { background: var(--danger-button-background); color: var(--danger-button-color); border-color: var(--danger-button-border); } button.danger:hover { background: var(--danger-button-background-hover); } #buffer, #connect { color: var(--main-color); background: var(--main-background); width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto; } #buffer-list, #member-list { color: var(--main-color); background: var(--main-background); width: 100%; height: 100%; background-color: var(--sidebar-background); grid-column: 1; grid-row: 1 / 4; display: flex; flex-direction: row; } .expander { display: none; cursor: pointer; padding: 0; margin: 0; background: var(--expander-background); transition: background 0.2s linear; border: none; width: 10px; } .expander:hover { background: var(--expander-background-hover); } .expander span { display: block; width: 100%; height: 2px; margin-bottom: 2px; border-style: solid; border-width: 1px 0; border-color: var(--expander-border); } #buffer-list ul { list-style-type: none; margin: 0; padding: 0; flex: 1 0 auto; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; } #buffer-list li a { display: inline-block; width: 100%; padding: 2px 10px; box-sizing: border-box; } #buffer-list li.active a { color: white; background-color: var(--gray); } #buffer-list li.unread-message a { color: #b37400; } #buffer-list li.unread-highlight a { color: #22009b; } #buffer-list li:not(.type-server) a { padding-left: 20px; } #member-list-header { color: var(--main-color); background-color: var(--main-background); box-sizing: border-box; padding: 5px 10px; border-bottom: 1px solid var(--sidebar-background); } #buffer-header { color: var(--main-color); background-color: var(--main-background); box-sizing: border-box; border-bottom: 1px solid var(--sidebar-background); grid-row: 1; grid-column: 2; display: grid; grid-template-rows: 1fr auto; grid-template-columns: 1fr auto; } #buffer-header .title { display: none; padding: 5px 10px; font-weight: bold; grid-row: 1; grid-column: 1; } #buffer-header .description { padding: 5px 10px; grid-row: 2; grid-column: 1; max-height: 20vh; overflow-y: auto; word-break: break-word; } #buffer-header .actions { grid-row: 1 / 3; grid-column: 2; } #buffer-header .status-here { color: var(--green); } #buffer-header .status-gone { color: orange; } #buffer-header .status-offline { color: red; } .actions { display: flex; flex-direction: row; justify-content: center; } .actions button { border-width: 0 0 0px 1px; } #buffer { grid-row: 2; grid-column: 2; } #buffer:focus { outline: none; } #member-list { grid-row: 1 / 4; grid-column: 3; width: 100%; height: 100%; display: flex; flex-direction: row; } #member-list > section { display: flex; flex-direction: column; } #member-list-header { border-left: 1px solid var(--sidebar-background); } @media (max-width: 640px) { #buffer-list ul { width: 0px; } #buffer-list.expand { z-index: 999; grid-column: 1 / 4; } #buffer-list.expand ul { width: auto; } } #member-list ul { list-style-type: none; margin: 0; padding: 0; flex-grow: 1; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; } #member-list li a { display: inline-block; width: 100%; padding: 2px 10px; box-sizing: border-box; } #member-list li a.away { color: var(--gray); } .membership.owner { color: red; } .membership.admin { color: blue; } .membership.op { color: var(--green); } .membership.halfop { color: orange; } .membership.voice { color: yellow; } #composer { color: var(--main-color); background: var(--main-background); grid-row: 3; grid-column: 2 / 3; border-top: 1px solid var(--sidebar-background); } #composer input { display: block; height: 35px; width: 100%; box-sizing: border-box; padding: 10px; } #composer input, #composer input:focus { border: none; background: none; outline: none; } #composer.read-only { display: none; } #connect { position: absolute; top: 0; left: 0; height: 100%; } #connect form { margin: 0 auto; max-width: 350px; padding: 10px; box-sizing: border-box; } form input[type="text"], form input[type="username"], form input[type="password"], form input[type="url"], form input[type="email"] { box-sizing: border-box; width: 100%; } a { color: var(--green); } #buffer-list li a, a.timestamp, a.nick { color: var(--gray); text-decoration: none; } #buffer-list li a:hover, #buffer-list li a:active, a.timestamp:hover, a.timestamp:active, a.nick:hover, a.nick:active { text-decoration: underline; } details summary[role="button"] { user-select: none; cursor: pointer; } #buffer { box-sizing: border-box; color: var(--gray); word-wrap: break-word; } #buffer .logline-list { padding: 10px; } #buffer .logline { white-space: pre-wrap; } #buffer .talk, #buffer .motd { color: var(--main-color); } #buffer .error { color: red; } #buffer .me-tell { color: #b37400; } #buffer .highlight .nick { color: yellow; background-color: #c700ff; } #buffer .nick-1 { color: #f25e0d; } #buffer .nick-2 { color: #e43611; } #buffer .nick-3 { color: #f98a11; } #buffer .nick-4 { color: #b4a700; } #buffer .nick-5 { color: #89bd3b; } #buffer .nick-6 { color: #4ea847; } #buffer .nick-7 { color: #287e52; } #buffer .nick-8 { color: #117873; } #buffer .nick-9 { color: #0083a7; } #buffer .nick-10 { color: #2a6596; } #buffer .nick-11 { color: #385189; } #buffer .nick-12 { color: #434078; } #buffer .nick-13 { color: #5e4279; } #buffer .nick-14 { color: #7a447a; } #buffer .nick-15 { color: #e92980; } #buffer .nick-16 { color: #ec273e; } #buffer .separator { display: flex; align-items: center; text-align: center; text-transform: lowercase; font-variant: small-caps; } #buffer .separator::before, #buffer .separator::after { content: ""; flex: 1; border-bottom: 1px solid transparent; } #buffer .date-separator { color: #757575; } #buffer .date-separator::before, #buffer .date-separator::after { border-color: #ddd; } #buffer .unread-separator { color: #ff3535; } #buffer .unread-separator::before, #buffer .unread-separator::after { border-color: #ff3535; } #error-msg { color: white; background-color: red; position: fixed; bottom: 2rem; right: 0; padding: 0.5rem; margin: 0.5rem; } #error-msg button, .dialog button.dialog-close { border: none; background: transparent; color: inherit; font-size: inherit; padding: 0; } .error-text { color: red; } .dialog { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); overflow: auto; } .dialog .dialog-body { background-color: var(--main-background); color: var(--main-color); margin: 20px auto; max-width: 500px; padding: 15px; border: 1px solid rgba(0, 0, 0, 0.6); } .dialog .dialog-header { display: flex; flex-direction: row; align-items: center; margin-bottom: 1em; } .dialog .dialog-header h2 { flex-grow: 1; margin: 0; } .dialog .dialog-header button.dialog-close { font-size: 1.5em; padding: 0 5px; } .dialog h2 { margin-top: 0; } .dialog form button:not([type="button"]) { float: right; } .dialog form { overflow: auto; /* hack to clear floating elements */ } kbd { background-color: #f0f0f0; border: 1px solid #bfbfbf; box-shadow: inset 0 1px 0 0 #fff, inset 0 -2px 0 0 #d9d9d9; display: inline-block; font-size: 80%; margin: 3px; min-width: 1em; text-align: center; white-space: nowrap; padding: 2px 4px; font-family: monospace; border-radius: 3px; } @media (prefers-color-scheme: dark) { html { scrollbar-color: var(--gray) transparent; } #buffer-list li.active a { color: var(--sidebar-background); background-color: white; } #buffer-list li.unread-message a { color: var(--green); } #buffer-list li.unread-highlight a { color: #0062cc; } #buffer-header .status-gone { color: #fb885b; } #buffer-header .status-offline { color: var(--red); } form input[type="text"], form input[type="username"], form input[type="password"], form input[type="url"], form input[type="email"] { color: #ffffff; background: var(--sidebar-background); border: 1px solid #495057; padding: 0.25rem 0.375rem; } form input[type="text"]:focus, form input[type="username"]:focus, form input[type="password"]:focus, form input[type="url"]:focus, form input[type="email"]:focus { outline: 0; border-color: #3897ff; } #buffer-list li a, a.nick { color: var(--main-color); } #buffer { background: var(--main-background); } #buffer .error { color: var(--red); } #buffer .me-tell { color: #e16b97; } #buffer .highlight .nick { color: #1e0010; background-color: #0062cc; } #buffer .date-separator { color: #757575; } #buffer .date-separator::before, #buffer .date-separator::after { border-color: #373737; } #buffer .unread-separator { color: var(--green); } #buffer .unread-separator::before, #buffer .unread-separator::after { border-color: var(--green); } #error-msg { color: black; background-color: #efa3aa; } #error-msg a { color: black; } .error-text { color: #efa3aa; } #buffer .nick-8 { color: #6bccc7; } #buffer .nick-10 { color: #6296c1; } #buffer .nick-11 { color: #c6b5df; } #buffer .nick-12 { color: #9995df; } #buffer .nick-13 { color: #8b62b3; } #buffer .nick-15 { color: #e3418b; } kbd { --outline-color: #6e7681; background-color: transparent; border: 1px solid var(--outline-color); box-shadow: inset 0 -1px 0 var(--outline-color); } } @media (max-width: 640px) { .expander { display: block; } #buffer-list ul, #member-list > section { width: 0px; } #buffer-list.expand, #member-list.expand { z-index: 999; grid-column-start: 1; grid-column-end: 4; } #buffer-list.expand ul { width: auto; } #member-list.expand > section { width: 100%; } #member-list-header { border-left: none; } #buffer-header { grid-template-columns: 1fr min-content; } #buffer-header .title { display: block; } } @media (pointer: none), (pointer: coarse) { #buffer-list li a, #member-list li a { padding: 7px 10px; } }