Sanitized public release v1.0.3
Source-Tag: v1.0.3 Manifest-SHA256: b7b09bf48f9e092ed8ad82f99c0319d6c3837d0a1549bd0cc4a374276c0f3896
This commit is contained in:
@@ -0,0 +1,910 @@
|
||||
@font-face {
|
||||
font-family: "OpenDyslexic";
|
||||
src: url("../assets/fonts/OpenDyslexic-Regular.woff2") format("woff2");
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "OpenDyslexic";
|
||||
src: url("../assets/fonts/OpenDyslexic-Italic.woff2") format("woff2");
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "OpenDyslexic";
|
||||
src: url("../assets/fonts/OpenDyslexic-Bold.woff2") format("woff2");
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "OpenDyslexic";
|
||||
src: url("../assets/fonts/OpenDyslexic-BoldItalic.woff2") format("woff2");
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
:root {
|
||||
--neorelay-void: #07030d;
|
||||
--neorelay-ink: #0d0618;
|
||||
--neorelay-panel: #150a24;
|
||||
--neorelay-panel-raised: #211034;
|
||||
--neorelay-violet: #9d5cff;
|
||||
--neorelay-purple: #6f2cff;
|
||||
--neorelay-pink: #ff65c8;
|
||||
--neorelay-cyan: #55e7ff;
|
||||
--neorelay-acid: #b9ff4f;
|
||||
--neorelay-text: #f1eaff;
|
||||
--neorelay-muted: #a99abd;
|
||||
--neorelay-nick: #55e7ff;
|
||||
--neorelay-nick-other: #55e7ff;
|
||||
--neorelay-nick-self: #ff65c8;
|
||||
--neorelay-nick-op: #ff65c8;
|
||||
--neorelay-nick-halfop: #55e7ff;
|
||||
--neorelay-nick-voice: #b9ff4f;
|
||||
--neorelay-nick-away: #a99abd;
|
||||
--neorelay-chat-highlight: #ffff55;
|
||||
--neorelay-chat-highlight-bg: #aa00aa;
|
||||
--neorelay-chat-time: #f1eaff;
|
||||
--neorelay-line: rgba(157, 92, 255, 0.35);
|
||||
--neorelay-sidebar-preferred-width: 140px;
|
||||
--neorelay-sidebar-width: clamp(120px, var(--neorelay-sidebar-preferred-width), min(480px, 40vw));
|
||||
--neorelay-page-gutter: 5px;
|
||||
--neo-preferred-font: "OpenDyslexic", "Atkinson Hyperlegible", system-ui, sans-serif;
|
||||
--neo-preferred-font-size: 14px;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
background: var(--neorelay-void) !important;
|
||||
color: var(--neorelay-text) !important;
|
||||
font-family: "OpenDyslexic", "Atkinson Hyperlegible", system-ui, sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
background-image:
|
||||
linear-gradient(rgba(157, 92, 255, 0.035) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgba(157, 92, 255, 0.035) 1px, transparent 1px),
|
||||
radial-gradient(circle at 75% 5%, rgba(111, 44, 255, 0.2), transparent 34%) !important;
|
||||
background-size: 32px 32px, 32px 32px, auto !important;
|
||||
}
|
||||
|
||||
.favorite-font {
|
||||
font-family: "OpenDyslexic", "Atkinson Hyperlegible", monospace !important;
|
||||
}
|
||||
|
||||
body.neo-preferred-font {
|
||||
font-family: var(--neo-preferred-font) !important;
|
||||
font-size: var(--neo-preferred-font-size) !important;
|
||||
}
|
||||
|
||||
body.neo-preferred-font .content :not(.glyphicon):not(.neo-font-option),
|
||||
body.neo-preferred-font .gb-modal :not(.glyphicon):not(.neo-font-option),
|
||||
body.neo-preferred-font .neo-context-menu :not(.glyphicon):not(.neo-font-option),
|
||||
body.neo-preferred-font .neo-server-manager :not(.glyphicon):not(.neo-font-option) {
|
||||
font-family: inherit !important;
|
||||
font-size: inherit !important;
|
||||
}
|
||||
|
||||
a,
|
||||
.panel-title,
|
||||
.panel-title a {
|
||||
color: var(--neorelay-cyan);
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
color: var(--neorelay-acid);
|
||||
}
|
||||
|
||||
/* Logged-out identity */
|
||||
.login-shell {
|
||||
position: relative;
|
||||
width: min(1120px, calc(100% - 40px));
|
||||
margin: 0 auto;
|
||||
padding: 54px 0 72px;
|
||||
}
|
||||
|
||||
.login-shell::before {
|
||||
content: "{{RELAY_GATEWAY_LABEL}}";
|
||||
display: block;
|
||||
margin-bottom: 12px;
|
||||
color: var(--neorelay-muted);
|
||||
font: 700 10px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
letter-spacing: 0.24em;
|
||||
}
|
||||
|
||||
.login-hero {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(250px, 0.78fr) minmax(360px, 1.35fr);
|
||||
min-height: 390px;
|
||||
margin-bottom: 28px;
|
||||
overflow: hidden;
|
||||
border-top: 1px solid var(--neorelay-violet);
|
||||
border-bottom: 1px solid var(--neorelay-line);
|
||||
background:
|
||||
linear-gradient(115deg, rgba(22, 9, 40, 0.96), rgba(9, 3, 17, 0.78)),
|
||||
linear-gradient(90deg, transparent 49.8%, rgba(85, 231, 255, 0.12) 50%, transparent 50.2%);
|
||||
box-shadow: 20px 20px 0 rgba(72, 24, 122, 0.12);
|
||||
}
|
||||
|
||||
.login-portrait {
|
||||
position: relative;
|
||||
min-height: 390px;
|
||||
overflow: hidden;
|
||||
border-right: 1px solid var(--neorelay-line);
|
||||
}
|
||||
|
||||
.login-portrait::after {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
content: "";
|
||||
pointer-events: none;
|
||||
background:
|
||||
repeating-linear-gradient(0deg, transparent 0 4px, rgba(7, 3, 13, 0.16) 5px),
|
||||
linear-gradient(180deg, transparent 55%, rgba(7, 3, 13, 0.8));
|
||||
}
|
||||
|
||||
.login-portrait img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
min-height: 390px;
|
||||
object-fit: cover;
|
||||
object-position: 50% 27%;
|
||||
filter: saturate(1.12) contrast(1.04);
|
||||
}
|
||||
|
||||
.portrait-code {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
right: 14px;
|
||||
bottom: 12px;
|
||||
color: var(--neorelay-acid);
|
||||
font: 700 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
letter-spacing: 0.18em;
|
||||
}
|
||||
|
||||
.login-intro {
|
||||
position: relative;
|
||||
align-self: center;
|
||||
padding: 48px clamp(32px, 7vw, 86px);
|
||||
}
|
||||
|
||||
.login-intro::before {
|
||||
position: absolute;
|
||||
top: 28px;
|
||||
left: 0;
|
||||
width: 46px;
|
||||
height: 3px;
|
||||
content: "";
|
||||
background: var(--neorelay-pink);
|
||||
box-shadow: 19px 8px 0 var(--neorelay-cyan);
|
||||
}
|
||||
|
||||
.login-kicker {
|
||||
margin: 0 0 20px;
|
||||
color: var(--neorelay-acid);
|
||||
font: 700 11px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
letter-spacing: 0.2em;
|
||||
}
|
||||
|
||||
.login-intro h1 {
|
||||
margin: 0;
|
||||
color: var(--neorelay-text);
|
||||
font-family: "Arial Black", Impact, sans-serif;
|
||||
font-size: clamp(48px, 8vw, 92px);
|
||||
font-weight: 900;
|
||||
line-height: 0.78;
|
||||
letter-spacing: -0.08em;
|
||||
text-transform: uppercase;
|
||||
text-shadow: 4px 4px 0 rgba(111, 44, 255, 0.65);
|
||||
}
|
||||
|
||||
.login-intro h1 span {
|
||||
display: block;
|
||||
margin-left: 0.47em;
|
||||
color: transparent;
|
||||
-webkit-text-stroke: 1px var(--neorelay-pink);
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.login-deck {
|
||||
max-width: 520px;
|
||||
margin: 30px 0 25px;
|
||||
color: #cfc3dd;
|
||||
font-size: 15px;
|
||||
line-height: 1.75;
|
||||
}
|
||||
|
||||
.login-status {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.login-status span {
|
||||
padding: 7px 9px 6px;
|
||||
border: 1px solid rgba(85, 231, 255, 0.35);
|
||||
color: var(--neorelay-cyan);
|
||||
background: rgba(85, 231, 255, 0.04);
|
||||
font: 700 9px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
letter-spacing: 0.12em;
|
||||
}
|
||||
|
||||
.login-shell .panel-group {
|
||||
display: grid;
|
||||
grid-template-columns: 1.15fr 0.85fr;
|
||||
gap: 1px;
|
||||
padding: 1px;
|
||||
background: var(--neorelay-line);
|
||||
}
|
||||
|
||||
.login-shell .panel {
|
||||
margin: 0 !important;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
color: var(--neorelay-text);
|
||||
background: rgba(20, 9, 35, 0.97) !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.login-shell .panel:first-of-type,
|
||||
.login-shell .panel:nth-of-type(2) {
|
||||
grid-column: 1 / -1;
|
||||
}
|
||||
|
||||
.login-shell .panel-heading {
|
||||
padding: 17px 20px;
|
||||
border: 0;
|
||||
background: linear-gradient(90deg, rgba(111, 44, 255, 0.18), transparent);
|
||||
}
|
||||
|
||||
.login-shell .panel-title {
|
||||
color: var(--neorelay-text);
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.login-shell .panel[data-state=active] .panel-title::before {
|
||||
color: var(--neorelay-acid);
|
||||
}
|
||||
|
||||
.login-shell .panel[data-state=collapsed] .panel-title::before {
|
||||
color: var(--neorelay-pink);
|
||||
}
|
||||
|
||||
.login-shell .panel-body {
|
||||
padding: 24px 20px;
|
||||
border-color: var(--neorelay-line) !important;
|
||||
color: #c9bdd8;
|
||||
}
|
||||
|
||||
.connection-panel .panel-body {
|
||||
padding: clamp(18px, 4vw, 38px);
|
||||
}
|
||||
|
||||
.relay-terminal {
|
||||
border: 1px solid rgba(157, 92, 255, 0.5);
|
||||
background: rgba(5, 2, 10, 0.94);
|
||||
box-shadow: 12px 12px 0 rgba(111, 44, 255, 0.12);
|
||||
font: 700 clamp(12px, 1.8vw, 16px)/1.75 ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
}
|
||||
|
||||
.relay-terminal-bar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 10px 14px;
|
||||
border-bottom: 1px solid var(--neorelay-line);
|
||||
color: var(--neorelay-muted);
|
||||
font-size: 10px;
|
||||
letter-spacing: 0.08em;
|
||||
}
|
||||
|
||||
.relay-terminal-bar span {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background: var(--neorelay-pink);
|
||||
}
|
||||
|
||||
.relay-terminal-bar span:nth-child(2) { background: var(--neorelay-violet); }
|
||||
.relay-terminal-bar span:nth-child(3) { background: var(--neorelay-acid); }
|
||||
.relay-terminal-bar b { margin-left: 6px; font-weight: 700; }
|
||||
.relay-terminal-body { padding: clamp(20px, 4vw, 34px); }
|
||||
.relay-terminal-body p { margin: 0 0 8px; color: #c8c2cf; }
|
||||
.relay-prompt { color: var(--neorelay-violet); }
|
||||
|
||||
.relay-terminal dl {
|
||||
margin: 22px 0;
|
||||
border-top: 1px solid var(--neorelay-line);
|
||||
}
|
||||
|
||||
.relay-terminal dl div {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(100px, 0.35fr) 1fr;
|
||||
gap: 18px;
|
||||
padding: 10px 0;
|
||||
border-bottom: 1px solid rgba(157, 92, 255, 0.16);
|
||||
}
|
||||
|
||||
.relay-terminal dt {
|
||||
color: var(--neorelay-muted);
|
||||
font-size: 9px;
|
||||
letter-spacing: 0.14em;
|
||||
}
|
||||
|
||||
.relay-terminal dd {
|
||||
margin: 0;
|
||||
color: var(--neorelay-cyan);
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.relay-password-line {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 14px;
|
||||
margin-top: 22px;
|
||||
}
|
||||
|
||||
.relay-password-line label {
|
||||
flex: 0 0 auto;
|
||||
margin: 0;
|
||||
color: #c8c2cf;
|
||||
font: inherit;
|
||||
cursor: text;
|
||||
}
|
||||
|
||||
.relay-password-field {
|
||||
position: relative;
|
||||
display: block;
|
||||
flex: 1 1 auto;
|
||||
min-width: 180px;
|
||||
min-height: 31px;
|
||||
padding: 2px 10px;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid rgba(85, 231, 255, 0.34);
|
||||
color: var(--neorelay-acid);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.relay-password-field:focus-within {
|
||||
border-color: var(--neorelay-cyan);
|
||||
box-shadow: 0 5px 14px rgba(85, 231, 255, 0.08);
|
||||
}
|
||||
|
||||
.relay-password-placeholder { color: #71687d; font-weight: 400; }
|
||||
.relay-password-mask { letter-spacing: 0.14em; }
|
||||
|
||||
body .relay-password-field input[type="password"] {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0 !important;
|
||||
opacity: 0;
|
||||
cursor: text;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.relay-password-error { margin-top: 10px !important; color: var(--neorelay-pink) !important; }
|
||||
.relay-input-line { margin-top: 18px !important; }
|
||||
.relay-cursor { color: var(--neorelay-acid); animation: relay-blink 1s steps(1, end) infinite; }
|
||||
|
||||
.connection-options {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px 22px;
|
||||
margin: 30px 0 22px;
|
||||
color: #c9bdd8;
|
||||
font: 700 11px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
}
|
||||
|
||||
.connection-options label { margin: 0; cursor: pointer; }
|
||||
.connection-options input { margin: 0 7px 0 0; accent-color: var(--neorelay-pink); }
|
||||
.connection-options input:disabled { opacity: 1; cursor: default; }
|
||||
.relay-connect { min-width: 180px; }
|
||||
|
||||
.login-shell .form-control,
|
||||
body .form-control,
|
||||
body input[type="text"],
|
||||
body input[type="password"],
|
||||
body #sendMessage {
|
||||
border: 1px solid rgba(157, 92, 255, 0.38) !important;
|
||||
border-radius: 0 !important;
|
||||
color: var(--neorelay-text) !important;
|
||||
background: rgba(4, 1, 9, 0.65) !important;
|
||||
box-shadow: inset 3px 0 0 rgba(157, 92, 255, 0.25) !important;
|
||||
}
|
||||
|
||||
body .form-control:focus,
|
||||
body input:focus,
|
||||
body #sendMessage:focus {
|
||||
border-color: var(--neorelay-cyan) !important;
|
||||
box-shadow: inset 3px 0 0 var(--neorelay-cyan), 0 0 18px rgba(85, 231, 255, 0.12) !important;
|
||||
}
|
||||
|
||||
@keyframes relay-blink {
|
||||
50% { opacity: 0; }
|
||||
}
|
||||
|
||||
.btn-primary,
|
||||
.login-shell .btn-primary {
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
color: #09020f;
|
||||
background: linear-gradient(90deg, var(--neorelay-pink), var(--neorelay-violet));
|
||||
box-shadow: 6px 6px 0 rgba(85, 231, 255, 0.16);
|
||||
font-weight: 800;
|
||||
letter-spacing: 0.06em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus {
|
||||
color: #09020f;
|
||||
background: linear-gradient(90deg, var(--neorelay-acid), var(--neorelay-cyan));
|
||||
}
|
||||
|
||||
.alert {
|
||||
border: 1px solid currentColor;
|
||||
border-radius: 0;
|
||||
background: rgba(10, 4, 18, 0.95);
|
||||
}
|
||||
|
||||
.alert-danger {
|
||||
color: #ff8bcf !important;
|
||||
border-color: rgba(255, 101, 200, 0.55);
|
||||
background: rgba(83, 13, 60, 0.36) !important;
|
||||
}
|
||||
|
||||
/* Connected client */
|
||||
body #topbar {
|
||||
border-bottom: 1px solid var(--neorelay-violet);
|
||||
background: linear-gradient(90deg, #1b0a30, #0a0411 65%) !important;
|
||||
box-shadow: 0 8px 24px rgba(3, 0, 8, 0.45);
|
||||
}
|
||||
|
||||
body #topbar .brand img {
|
||||
border-radius: 50%;
|
||||
filter: saturate(1.15);
|
||||
}
|
||||
|
||||
body #topbar .actions {
|
||||
color: var(--neorelay-muted);
|
||||
background: rgba(23, 9, 38, 0.9) !important;
|
||||
}
|
||||
|
||||
body #sidebar,
|
||||
body #nicklist {
|
||||
border-color: var(--neorelay-line);
|
||||
background: rgba(12, 5, 21, 0.98) !important;
|
||||
}
|
||||
|
||||
body #sidebar { display:flex; flex-direction:column; overflow:hidden; }
|
||||
body #sidebar > ul.nav { flex:1 1 auto; min-height:0; margin-bottom:0; overflow-y:auto; }
|
||||
body #nicklist { right:var(--neorelay-page-gutter); box-sizing:border-box; }
|
||||
body #bufferlines.withnicklist { margin-right:105px !important; }
|
||||
body .footer.withnicklist { padding-right:105px; }
|
||||
body #bufferlines > table { width:calc(100% - 10px); margin-right:var(--neorelay-page-gutter); margin-left:var(--neorelay-page-gutter); }
|
||||
body .footer > [input-bar] { display:block; margin-right:var(--neorelay-page-gutter); margin-left:var(--neorelay-page-gutter); }
|
||||
|
||||
#sidebar-resizer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 969px) {
|
||||
body #sidebar {
|
||||
width: var(--neorelay-sidebar-width);
|
||||
}
|
||||
|
||||
body #topbar .title {
|
||||
left: calc(var(--neorelay-sidebar-width) + 5px);
|
||||
}
|
||||
|
||||
body .content[sidebar-state="visible"] #bufferlines {
|
||||
margin-left: calc(var(--neorelay-sidebar-width) + 5px);
|
||||
}
|
||||
|
||||
body .content[sidebar-state="visible"] .footer {
|
||||
padding-left: calc(var(--neorelay-sidebar-width) + 5px);
|
||||
}
|
||||
|
||||
body .content[sidebar-state="visible"] #sidebar-resizer {
|
||||
position: fixed;
|
||||
z-index: 3;
|
||||
top: 35px;
|
||||
bottom: 0;
|
||||
left: calc(var(--neorelay-sidebar-width) - 4px);
|
||||
display: block;
|
||||
width: 9px;
|
||||
cursor: col-resize;
|
||||
touch-action: none;
|
||||
}
|
||||
|
||||
body #sidebar .nav-pills > li.buffer > a {
|
||||
padding-top: 2.5px;
|
||||
padding-bottom: 2.5px;
|
||||
}
|
||||
|
||||
body.neorelay-sidebar-resizing,
|
||||
body.neorelay-sidebar-resizing * {
|
||||
cursor: col-resize !important;
|
||||
user-select: none !important;
|
||||
}
|
||||
|
||||
body.neorelay-sidebar-resizing #sidebar,
|
||||
body.neorelay-sidebar-resizing #bufferlines,
|
||||
body.neorelay-sidebar-resizing .footer {
|
||||
transition: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1400px) {
|
||||
:root {
|
||||
--neorelay-sidebar-preferred-width: 200px;
|
||||
}
|
||||
|
||||
body #sidebar .nav-pills > li.buffer > a {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
body #bufferlines.withnicklist { margin-right:145px !important; }
|
||||
body .footer.withnicklist { padding-right:153px !important; }
|
||||
}
|
||||
|
||||
body .nav-pills li:nth-child(2n) {
|
||||
background: rgba(157, 92, 255, 0.035);
|
||||
}
|
||||
|
||||
body .nav-pills > li > a {
|
||||
color: #cbbdde;
|
||||
}
|
||||
|
||||
body .nav-pills > li.active > a,
|
||||
body .nav-pills > li.active > a:hover {
|
||||
color: #fff;
|
||||
background: linear-gradient(90deg, rgba(111, 44, 255, 0.65), rgba(255, 101, 200, 0.15)) !important;
|
||||
box-shadow: inset 3px 0 0 var(--neorelay-pink);
|
||||
}
|
||||
|
||||
body .nav-pills > li.highlight > a,
|
||||
body .nav-pills > li.highlight > a span {
|
||||
color: #08030d;
|
||||
background: var(--neorelay-acid) !important;
|
||||
}
|
||||
|
||||
.sidebar-actions { position:static; flex:0 0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(48px,1fr)); gap:1px; margin-top:0; border-top:1px solid var(--neorelay-line); background:var(--neorelay-void); }
|
||||
.sidebar-actions button { min-width:0; padding:9px 3px; border:0; color:var(--neorelay-muted); background:rgba(21,10,36,.96); font:700 9px/1.2 ui-monospace,monospace; }
|
||||
.sidebar-actions button:hover { color:var(--neorelay-cyan); background:rgba(111,44,255,.28); }
|
||||
.sidebar-actions i,.sidebar-actions span { display:block; margin:auto; }
|
||||
.sidebar-actions span { margin-top:4px; }
|
||||
|
||||
.neo-context-menu { position:fixed; z-index:1200; display:grid; width:220px; overflow:hidden; border:1px solid var(--neorelay-violet); background:rgba(7,3,13,.96); box-shadow:10px 10px 24px rgba(0,0,0,.5); }
|
||||
.neo-context-menu button { padding:9px 12px; border:0; border-bottom:1px solid rgba(157,92,255,.15); color:var(--neorelay-text); text-align:left; background:transparent; }
|
||||
.neo-context-menu button:hover,.neo-context-menu button:focus { color:var(--neorelay-cyan); background:rgba(111,44,255,.35); outline:0; }
|
||||
.neo-context-menu button.destructive { color:var(--neorelay-pink); }
|
||||
|
||||
.neo-server-manager .modal-dialog { width:min(1100px,calc(100% - 24px)); }
|
||||
.neo-server-layout { display:grid; grid-template-columns:190px 1fr; gap:18px; max-height:72vh; overflow:auto; }
|
||||
.neo-server-layout aside { display:flex; flex-direction:column; gap:4px; }
|
||||
.neo-server-layout aside button { padding:8px; border:1px solid var(--neorelay-line); color:var(--neorelay-text); text-align:left; background:rgba(7,3,13,.7); }
|
||||
.neo-server-layout aside .neo-add-server { box-sizing:border-box; width:100%; min-height:38px; padding:8px 10px; border:1px solid var(--neorelay-cyan); color:var(--neorelay-void); text-align:center; white-space:normal; background:linear-gradient(90deg,var(--neorelay-pink),var(--neorelay-violet)); box-shadow:none; font-size:10px; line-height:20px; }
|
||||
.neo-server-layout aside .neo-add-server:hover,.neo-server-layout aside .neo-add-server:focus { color:var(--neorelay-void); background:linear-gradient(90deg,var(--neorelay-acid),var(--neorelay-cyan)); }
|
||||
.neo-server-options { display:grid; grid-template-columns:repeat(2,minmax(240px,1fr)); gap:8px 14px; margin-top:14px; }
|
||||
.neo-server-options label { display:grid; grid-template-columns:minmax(130px,.8fr) minmax(120px,1.2fr) auto; align-items:center; gap:8px; margin:0; color:var(--neorelay-muted); font:11px/1.3 ui-monospace,monospace; }
|
||||
.neo-server-manager,.neo-server-manager button,.neo-server-manager input,.neo-server-manager select { font-family:"OpenDyslexic","Atkinson Hyperlegible",system-ui,sans-serif; }
|
||||
.neo-server-manager .neo-server-control { box-sizing:border-box; width:100%; min-width:0; height:34px; min-height:34px; margin:0 !important; padding:6px 10px; border:1px solid var(--neorelay-line) !important; color:var(--neorelay-text); background:var(--neorelay-void); font-size:12px; line-height:20px; }
|
||||
.neo-server-manager .modal-footer .btn { min-width:92px; height:34px; padding:7px 13px; font-size:11px; line-height:20px; }
|
||||
.neo-server-manager .modal-footer .btn-default { border:1px solid var(--neorelay-line); color:var(--neorelay-text); background:var(--neorelay-panel-raised); }
|
||||
.neo-server-manager .modal-footer .btn-default:hover,.neo-server-manager .modal-footer .btn-default:focus { color:var(--neorelay-cyan); background:rgba(111,44,255,.28); }
|
||||
.neo-server-options .inherit { white-space:nowrap; }
|
||||
|
||||
#settingsModal .modal-dialog { width:min(900px,calc(100% - 24px)); }
|
||||
.neo-font-picker { position:relative; }
|
||||
.neo-font-trigger { display:flex; align-items:center; justify-content:space-between; width:100%; overflow:hidden; text-align:left; }
|
||||
.neo-font-value { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
||||
.neo-font-menu { position:absolute; z-index:1300; top:calc(100% + 4px); left:0; display:grid; width:max(100%,320px); padding:4px; border:1px solid var(--neorelay-violet); background:var(--neorelay-void); box-shadow:10px 10px 24px rgba(0,0,0,.55); }
|
||||
.neo-font-option { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:9px 11px; border:0; border-bottom:1px solid rgba(157,92,255,.18); color:var(--neorelay-text); background:transparent; font-size:16px !important; text-align:left; }
|
||||
.neo-font-option:last-child { border-bottom:0; }
|
||||
.neo-font-option:hover,.neo-font-option:focus { color:var(--neorelay-void); background:linear-gradient(90deg,var(--neorelay-cyan),var(--neorelay-acid)); outline:0; }
|
||||
.neo-font-option span { font-size:.88em !important; }
|
||||
.neo-font-preview { margin:8px 0 0; padding:9px 11px; border:1px solid var(--neorelay-line); color:var(--neorelay-text); background:rgba(7,3,13,.55); }
|
||||
.neo-settings-tabs { display:flex; gap:1px; margin:-15px -15px 18px; padding:1px; background:var(--neorelay-line); }
|
||||
.neo-settings-tabs button { flex:1 1 0; padding:11px 16px; border:0; color:var(--neorelay-muted); background:var(--neorelay-ink); font:800 11px/1 ui-monospace,monospace; letter-spacing:.08em; text-transform:uppercase; }
|
||||
.neo-settings-tabs button.active { color:var(--neorelay-void); background:linear-gradient(90deg,var(--neorelay-cyan),var(--neorelay-acid)); }
|
||||
.neo-settings-panel { margin:0; }
|
||||
.neo-colour-settings h5,.neo-weechat-settings h5 { margin:20px 0 9px; color:var(--neorelay-cyan); font:800 11px/1 ui-monospace,monospace; letter-spacing:.1em; text-transform:uppercase; }
|
||||
.neo-colour-settings p,.neo-weechat-settings p { color:var(--neorelay-muted); }
|
||||
.neo-settings-toolbar { display:flex; align-items:end; gap:10px; margin-bottom:12px; }
|
||||
.neo-settings-toolbar p { flex:1 1 auto; margin:0; }
|
||||
.neo-settings-toolbar label { flex:1 1 220px; margin:0; color:var(--neorelay-muted); font-size:11px; }
|
||||
.neo-settings-toolbar .form-control { height:34px; margin:4px 0 0 !important; }
|
||||
.neo-colour-grid { display:grid; grid-template-columns:repeat(2,minmax(250px,1fr)); gap:8px; }
|
||||
.neo-colour-grid label { display:grid; grid-template-columns:minmax(110px,1fr) minmax(120px,.8fr) 28px; align-items:center; gap:8px 10px; margin:0; padding:8px 10px; border:1px solid rgba(157,92,255,.2); background:rgba(7,3,13,.45); color:var(--neorelay-text); font-weight:600; }
|
||||
.neo-colour-grid .form-control { height:34px; margin:0 !important; }
|
||||
.neo-colour-grid code { grid-column:1 / -1; overflow:hidden; padding:0; color:var(--neorelay-muted); background:transparent; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
|
||||
.neo-colour-swatch { display:block; width:26px; height:26px; border:1px solid rgba(255,255,255,.45); box-shadow:inset 0 0 0 1px rgba(0,0,0,.35); }
|
||||
.neo-option-list { display:grid; gap:7px; max-height:55vh; overflow:auto; }
|
||||
.neo-option { display:grid; grid-template-columns:minmax(260px,1fr) minmax(160px,.65fr) auto; align-items:center; gap:10px; padding:10px; border:1px solid rgba(157,92,255,.2); background:rgba(7,3,13,.45); }
|
||||
.neo-option strong,.neo-option small { display:block; overflow-wrap:anywhere; }
|
||||
.neo-option strong { color:var(--neorelay-cyan); font:700 10px/1.3 ui-monospace,monospace; }
|
||||
.neo-option small { margin-top:3px; color:var(--neorelay-muted); font-size:9px; }
|
||||
.neo-option .form-control { height:34px; margin:0 !important; }
|
||||
.neo-option-actions { display:flex; gap:5px; }
|
||||
.neo-option-actions .btn { min-width:64px; height:34px; }
|
||||
.neo-palette-setting { display:grid; grid-template-columns:1fr auto; gap:8px; padding:10px; border:1px solid rgba(157,92,255,.2); background:rgba(7,3,13,.45); }
|
||||
.neo-palette-setting .form-control { height:34px; margin:0 !important; }
|
||||
.neo-palette-setting code { grid-column:1 / -1; color:var(--neorelay-muted); background:transparent; font-size:9px; }
|
||||
.neo-palette-preview { grid-column:1 / -1; display:flex; align-items:center; gap:3px; min-height:20px; overflow-x:auto; }
|
||||
.neo-palette-preview i { flex:0 0 20px; width:20px; height:20px; border:1px solid rgba(255,255,255,.4); box-shadow:inset 0 0 0 1px rgba(0,0,0,.3); }
|
||||
|
||||
body #nicklist a { cursor:text; }
|
||||
body .neo-nick { color:var(--neorelay-nick) !important; }
|
||||
body .neo-nick-op { color:var(--neorelay-nick-op) !important; }
|
||||
body .neo-nick-halfop { color:var(--neorelay-nick-halfop) !important; }
|
||||
body .neo-nick-voice { color:var(--neorelay-nick-voice) !important; }
|
||||
body .neo-nick-away { color:var(--neorelay-nick-away) !important; font-style:italic; opacity:.85; }
|
||||
body #nicklist .cof-chat_nick_self { color:var(--neorelay-nick-self) !important; font-style:normal; font-weight:900; opacity:1; text-shadow:1px 1px 0 var(--neorelay-purple),0 0 8px rgba(157,92,255,.45); }
|
||||
|
||||
body tr.bufferline:hover {
|
||||
background: rgba(157, 92, 255, 0.08) !important;
|
||||
}
|
||||
|
||||
body #bufferlines tr.bufferline:has(td.prefix .highlight) {
|
||||
background: var(--neorelay-chat-highlight-bg) !important;
|
||||
box-shadow: inset 3px 0 0 var(--neorelay-pink);
|
||||
}
|
||||
|
||||
body #bufferlines td.prefix .highlight {
|
||||
color: var(--neorelay-chat-highlight) !important;
|
||||
font-weight: 900;
|
||||
text-shadow: 0 0 8px rgba(255, 101, 200, 0.48);
|
||||
}
|
||||
|
||||
body td.prefix {
|
||||
border-color: rgba(157, 92, 255, 0.2);
|
||||
}
|
||||
|
||||
body .footer {
|
||||
bottom: 5px;
|
||||
padding-bottom: 0;
|
||||
border-top: 1px solid rgba(157, 92, 255, 0.35);
|
||||
background: var(--neorelay-ink);
|
||||
}
|
||||
|
||||
body #bufferlines { bottom:40px; }
|
||||
|
||||
.command-menu {
|
||||
position: absolute;
|
||||
z-index: 5;
|
||||
right: 0;
|
||||
bottom: calc(100% + 4px);
|
||||
left: 0;
|
||||
max-height: min(40dvh, 20rem);
|
||||
overflow-y: auto;
|
||||
border: 1px solid var(--neorelay-line);
|
||||
background: rgba(7, 3, 13, 0.90);
|
||||
box-shadow: 8px -8px 24px rgba(3, 0, 8, 0.45);
|
||||
overscroll-behavior: contain;
|
||||
}
|
||||
|
||||
.command-menu-item {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(9rem, 0.3fr) minmax(12rem, 0.7fr) minmax(14rem, 1fr);
|
||||
gap: 12px;
|
||||
width: 100%;
|
||||
padding: 7px 10px;
|
||||
border: 0;
|
||||
border-bottom: 1px solid rgba(157, 92, 255, 0.14);
|
||||
color: var(--neorelay-text);
|
||||
text-align: left;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.command-menu-item:hover,
|
||||
.command-menu-item.selected {
|
||||
background: linear-gradient(90deg, rgba(111, 44, 255, 0.55), rgba(255, 101, 200, 0.08));
|
||||
box-shadow: inset 3px 0 0 var(--neorelay-cyan);
|
||||
}
|
||||
|
||||
.command-menu-name {
|
||||
color: var(--neorelay-cyan);
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.command-menu-args {
|
||||
color: #8f8699;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.command-menu-description {
|
||||
overflow: hidden;
|
||||
color: var(--neorelay-muted);
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.command-menu-empty {
|
||||
padding: 10px;
|
||||
color: var(--neorelay-muted);
|
||||
}
|
||||
|
||||
body .modal-content,
|
||||
body .dropdown-menu {
|
||||
border: 1px solid var(--neorelay-line);
|
||||
border-radius: 0;
|
||||
color: var(--neorelay-text);
|
||||
background: var(--neorelay-panel) !important;
|
||||
box-shadow: 12px 12px 0 rgba(111, 44, 255, 0.15);
|
||||
}
|
||||
|
||||
body .badge.danger,
|
||||
body .danger {
|
||||
color: #09020f;
|
||||
background: var(--neorelay-pink) !important;
|
||||
}
|
||||
|
||||
body #readmarker {
|
||||
border-top-color: var(--neorelay-pink);
|
||||
border-bottom-color: var(--neorelay-cyan);
|
||||
}
|
||||
|
||||
.neorelay-core-title {
|
||||
color: var(--neorelay-text);
|
||||
font: 800 12px/35px "OpenDyslexic", ui-monospace, monospace;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.neorelay-core-title small {
|
||||
margin-left: 8px;
|
||||
color: var(--neorelay-acid);
|
||||
font: 700 9px/35px ui-monospace, SFMono-Regular, Menlo, monospace;
|
||||
letter-spacing: 0.14em;
|
||||
}
|
||||
|
||||
.core-login-hero {
|
||||
width: min(960px, calc(100% - 32px));
|
||||
margin: 6vh auto 60px;
|
||||
}
|
||||
|
||||
body .cof-chat_nick,
|
||||
body .cof-chat_host,
|
||||
body .cof-chat_value {
|
||||
color: var(--neorelay-nick);
|
||||
}
|
||||
|
||||
body .cof-chat_nick_other { color:var(--neorelay-nick-other); }
|
||||
|
||||
body .cof-chat_prefix_join,
|
||||
body .cof-chat_nick_prefix {
|
||||
color: var(--neorelay-acid);
|
||||
}
|
||||
|
||||
body .cof-chat_nick_self {
|
||||
color: var(--neorelay-nick-self);
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
opacity: 1;
|
||||
text-shadow: 1px 1px 0 var(--neorelay-purple), 0 0 8px rgba(157, 92, 255, 0.45);
|
||||
}
|
||||
|
||||
body .cof-chat_time { color:var(--neorelay-chat-time); }
|
||||
|
||||
body .cof-chat_prefix_network,
|
||||
body .cof-chat_prefix_more,
|
||||
body .cof-chat_read_marker {
|
||||
color: var(--neorelay-pink);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track-piece {
|
||||
background: var(--neorelay-void) !important;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: linear-gradient(var(--neorelay-purple), var(--neorelay-pink)) !important;
|
||||
}
|
||||
|
||||
@media (max-width: 760px) {
|
||||
.login-shell {
|
||||
width: min(100% - 24px, 560px);
|
||||
padding-top: 28px;
|
||||
}
|
||||
|
||||
.neo-server-layout { grid-template-columns:1fr; }
|
||||
.neo-server-options { grid-template-columns:1fr; }
|
||||
.neo-colour-grid { grid-template-columns:1fr; }
|
||||
.neo-settings-toolbar { align-items:stretch; flex-direction:column; }
|
||||
.neo-settings-toolbar label { width:100%; flex-basis:auto; }
|
||||
.neo-option { grid-template-columns:1fr; }
|
||||
.neo-option-actions .btn { flex:1 1 auto; }
|
||||
|
||||
.login-hero {
|
||||
grid-template-columns: 1fr;
|
||||
box-shadow: 10px 10px 0 rgba(72, 24, 122, 0.12);
|
||||
}
|
||||
|
||||
.login-portrait,
|
||||
.login-portrait img {
|
||||
min-height: 300px;
|
||||
max-height: 380px;
|
||||
}
|
||||
|
||||
.login-portrait {
|
||||
border-right: 0;
|
||||
border-bottom: 1px solid var(--neorelay-line);
|
||||
}
|
||||
|
||||
.login-intro {
|
||||
padding: 42px 24px 36px;
|
||||
}
|
||||
|
||||
.login-intro h1 {
|
||||
font-size: clamp(48px, 18vw, 76px);
|
||||
}
|
||||
|
||||
.login-shell .panel-group {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.login-shell .panel + .panel {
|
||||
border-top: 1px solid var(--neorelay-line);
|
||||
}
|
||||
|
||||
.connection-panel .panel-body { padding: 14px; }
|
||||
.relay-terminal { box-shadow: 8px 8px 0 rgba(111, 44, 255, 0.1); }
|
||||
.relay-password-line { display: block; }
|
||||
.relay-password-field { margin-top: 5px; }
|
||||
.connection-options { display: grid; }
|
||||
.relay-connect { width: 100%; }
|
||||
|
||||
.command-menu {
|
||||
max-height: min(35dvh, 16rem);
|
||||
}
|
||||
|
||||
.command-menu-item {
|
||||
grid-template-columns: minmax(8rem, 0.45fr) 1fr;
|
||||
min-height: 44px;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
.command-menu-description {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.neorelay-core-title small {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.core-login-hero {
|
||||
margin: 32px 12px 60px;
|
||||
width: calc(100% - 24px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 968px) {
|
||||
body .footer.withnicklist { padding-right:113px !important; }
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
scroll-behavior: auto !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
animation-duration: 0.01ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user