:root { --main-background: white; --main-color: black; --sidebar-background: #e3e3e3; --green: green; --gray: #4a4a4a; } @media (prefers-color-scheme: dark) { :root { --main-background: #212529; --main-color: #f8f9fa; --sidebar-background: #131618; --green: #53b266; --red: #fb615b; } } 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; } #buffer-list, #buffer, #connect, #member-list { color: var(--main-color); background: var(--main-background); width: 100%; height: 100%; overflow-x: hidden; overflow-y: auto; } #buffer-list { background-color: var(--sidebar-background); grid-column: 1; grid-row: 1 / 4; display: flex; flex-direction: column; } #buffer-list ul { list-style-type: none; margin: 0; padding: 0; flex: 1 0 auto; } #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; } #buffer-header, #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 { grid-row: 1; grid-column: 2; } #buffer-header .status-here { color: var(--green); } #buffer-header .status-gone { color: orange; } #buffer-header .status-offline { color: red; } #buffer-header .actions { float: right; } #buffer { grid-row: 2; grid-column: 2; } #member-list-header { grid-row: 1; grid-column: 3; border-left: 1px solid var(--sidebar-background); } #member-list { grid-row: 2; grid-column: 3; border-left: 1px solid var(--sidebar-background); } #member-list ul { list-style-type: none; margin: 0; padding: 0; } #member-list li a { display: inline-block; width: 100%; padding: 2px 10px; box-sizing: border-box; } #composer { color: var(--main-color); background: var(--main-background); grid-row: 3; grid-column: 2 / 4; 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: 300px; } 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 { cursor: default; } #buffer { box-sizing: border-box; color: var(--gray); word-wrap: break-word; } #buffer .logline-list { padding: 10px; } #buffer .talk { color: black; } #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 a { color: white; text-decoration: none; } .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 a.dialog-close { float: right; text-decoration: none; font-size: 1.5em; color: inherit; } .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) { #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.timestamp, a.nick { color: var(--main-color); } #buffer { color: var(--main-color); background: var(--main-background); } #buffer .talk { color: var(--main-color); } #buffer .error { color: var(--red); } #buffer .me-tell { color: #c42560; } #buffer .highlight .nick { color: #1e0010; background-color: #0062cc; } #buffer .date-separator { color: #757575; } #buffer .date-separator::before, #buffer .date-separator::after { border-color: white; } #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; } kbd { --outline-color: #6e7681; background-color: transparent; border: 1px solid var(--outline-color); box-shadow: inset 0 -1px 0 var(--outline-color); } }