diff options
Diffstat (limited to 'client/public/style.css')
| -rw-r--r-- | client/public/style.css | 1164 |
1 files changed, 1164 insertions, 0 deletions
diff --git a/client/public/style.css b/client/public/style.css new file mode 100644 index 0000000..f2cbd93 --- /dev/null +++ b/client/public/style.css @@ -0,0 +1,1164 @@ +:root { + --bg: #0c0b0a; + --surface: #141311; + --surface-raise: #1a1815; + --border: #221f1c; + --border-bright: #312d29; + --fg: #f5f0ea; + --fg-dim: #6e6760; + --fg-dimmer: #2e2a26; + --in-color: #ff2eb8; + --in-glow: rgba(255, 46, 184, .10); + --out-color: #39ff7a; + --out-glow: rgba(57, 255, 122, .10); + --all-color: #ffcc00; + --all-glow: rgba(255, 204, 0, .10); + --accent: #ff5533; + --radius: 6px; + --font-mono: 'Berkeley Mono', 'Courier New', monospace; + --font-display: 'Syne', sans-serif; +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +html, +body { + background: var(--bg); + color: var(--fg); + font-family: var(--font-mono); + font-size: 13px; + line-height: 1.6; + height: 100%; +} + +body { + display: flex; + flex-direction: column; + min-height: 100vh; +} + +body::before { + content: ''; + position: fixed; + inset: 0; + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.02'/%3E%3C/svg%3E"); + pointer-events: none; + z-index: 0; +} + +.header { + padding: 18px 24px 14px; + flex-shrink: 0; + display: flex; + align-items: center; + gap: 10px; + border-bottom: 1px solid var(--border); + position: relative; + z-index: 400; +} + +.header-text { + font-family: var(--font-mono); + font-weight: 700; + font-size: 15px; + letter-spacing: .08em; + text-transform: lowercase; +} + +.header-badge { + margin-left: auto; + font-size: 10px; + color: var(--fg-dim); + letter-spacing: .12em; + display: flex; + align-items: center; + gap: 5px; +} + +.header-badge span { + display: inline-block; + width: 7px; + height: 7px; + border-radius: 50%; +} + +.dot-live { + background: #ff5533; + box-shadow: 0 0 7px #ff5533; + animation: pulse 2s ease-in-out infinite; +} + +.dot-connecting { + background: var(--all-color); + box-shadow: 0 0 7px var(--all-color); + animation: pulse .8s ease-in-out infinite; +} + +.dot-initializing { + background: var(--in-color); + box-shadow: 0 0 7px var(--in-color); + animation: pulse 1.2s ease-in-out infinite; +} + +.dot-disconnected { + background: #cc2233; + box-shadow: 0 0 7px #cc2233; +} + +@keyframes pulse { + + 0%, + 100% { + opacity: 1 + } + + 50% { + opacity: .3 + } +} + +#sidebar-toggle { + display: none; + align-items: center; + justify-content: center; + width: 30px; + height: 30px; + background: transparent; + border: none; + border-radius: var(--radius); + color: var(--fg-dim); + cursor: pointer; + flex-shrink: 0; + transition: color .15s, background .15s; +} + +#sidebar-toggle:hover { + background: rgba(255, 255, 255, .05); + color: var(--fg); +} + +#sidebar-toggle svg { + width: 13px; + height: 13px; + display: block; +} + +.layout { + display: flex; + flex: 1; + min-height: 0; + overflow: hidden; + position: relative; +} + +sidebar { + width: 22%; + min-width: 200px; + max-width: 280px; + background: var(--surface); + border-right: 1px solid var(--border); + display: flex; + flex-direction: column; + flex-shrink: 0; + overflow: hidden; + position: relative; + z-index: 503 !important; +} + +sidebar::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 1px; + background: linear-gradient(90deg, transparent, rgba(255, 85, 51, .22) 50%, transparent); + pointer-events: none; +} + +s-head { + display: flex; + align-items: center; + justify-content: space-between; + padding: 13px 14px 10px; + border-bottom: 1px solid var(--border); + flex-shrink: 0; + font-size: 10px; + letter-spacing: .16em; + text-transform: uppercase; + color: var(--fg-dim); +} + +s-head button { + display: none; + background: none; + border: 1px solid transparent; + border-radius: 4px; + color: var(--fg-dim); + font-size: 13px; + cursor: pointer; + padding: 2px 6px; + line-height: 1; + transition: color .15s, border-color .15s, background .15s; +} + +s-head button:hover { + color: var(--fg); + border-color: var(--border-bright); + background: rgba(255, 255, 255, .04); +} + +s-body { + display: flex; + flex-direction: column; + flex: 1; + overflow-y: auto; + padding: 10px 8px; + gap: 2px; + scrollbar-width: thin; + scrollbar-color: var(--border-bright) transparent; + padding-top: 20px; +} + +s-body::-webkit-scrollbar { + width: 3px; +} + +s-body::-webkit-scrollbar-thumb { + background: var(--border-bright); + border-radius: 2px; +} + +s-cat { + display: block; + font-size: 9px; + letter-spacing: .18em; + text-transform: uppercase; + color: var(--fg-dimmer); + padding: 10px 8px 3px; +} + +s-cat:first-child { + padding-top: 3px; +} + +s-item { + display: flex; + align-items: center; + gap: 6px; + padding: 7px 10px; + border-radius: var(--radius); + border: 1px solid transparent; + cursor: pointer; + color: var(--fg-dim); + font-size: 12px; + transition: background .12s, border-color .12s, color .12s; + user-select: none; + position: relative; +} + +s-item::before { + font-size: 11px; + opacity: .55; + flex-shrink: 0; + width: 12px; + text-align: center; + transition: opacity .12s; +} + +s-item[channel]::before { + content: '#'; +} + +s-item[dm]::before { + content: '@'; +} + +s-item[archived]::before { + content: 'ยท'; +} + +s-item[badge]::after { + content: attr(badge); + margin-left: auto; + font-size: 9px; + padding: 1px 6px; + border-radius: 10px; + background: rgba(255, 85, 51, .15); + border: 1px solid rgba(255, 85, 51, .25); + color: var(--accent); + text-shadow: 0 0 6px rgba(255, 85, 51, .4); + flex-shrink: 0; + align-self: center; +} + +s-item:hover { + background: rgba(255, 255, 255, .03); + border-color: var(--border); + color: var(--fg); +} + +s-item:hover::before { + opacity: 1; +} + +s-item[active] { + background: rgba(255, 85, 51, .07); + border-color: rgba(255, 85, 51, .18); + color: var(--fg); +} + +s-item[active]::before { + opacity: 1; + color: var(--accent); + text-shadow: 0 0 8px rgba(255, 85, 51, .6); +} + +/* s-item[archived] { + opacity: .5; +} */ + +s-dot { + display: inline-block; + width: 5px; + height: 5px; + border-radius: 50%; + flex-shrink: 0; + margin-left: auto; + margin-right: 7px; + align-self: center; +} + +s-dot[online] { + background: var(--out-color); + box-shadow: 0 0 5px rgba(57, 255, 122, .7); +} + +s-dot[away] { + background: var(--all-color); + box-shadow: 0 0 5px rgba(255, 204, 0, .7); +} + +s-dot[offline] { + background: var(--fg-dimmer); +} + +s-foot { + display: flex; + align-items: center; + gap: 9px; + padding: 10px 12px; + border-top: 1px solid var(--border); + flex-shrink: 0; +} + +s-avatar { + display: flex; + align-items: center; + justify-content: center; + width: 28px; + height: 28px; + border-radius: 5px; + background: linear-gradient(135deg, rgba(255, 85, 51, .3), rgba(255, 46, 184, .3)); + border: 1px solid rgba(255, 85, 51, .2); + flex-shrink: 0; + font-size: 11px; + color: var(--accent); + text-shadow: 0 0 8px rgba(255, 85, 51, .6); + + transform: scale(80%); +} + +s-user { + display: flex; + flex-direction: column; + flex: 1; + min-width: 0; +} + +s-name { + display: block; + font-size: 12px; + color: var(--fg); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +s-status { + display: block; + font-size: 10px; + color: var(--fg-dim); + letter-spacing: .06em; +} + +.main { + display: flex; + flex-direction: column; + flex: 1; + min-width: 0; + overflow: hidden; +} + +container { + display: flex; + flex-direction: column; + gap: 8px; + flex: 1; + min-height: 0; + overflow-y: auto; + padding: 16px; + scrollbar-width: thin; + scrollbar-color: var(--border-bright) transparent; +} + +container::-webkit-scrollbar { + width: 4px; +} + +container::-webkit-scrollbar-thumb { + background: var(--border-bright); + border-radius: 2px; +} + +box { + flex-shrink: 0; + padding: 12px 16px 16px; + border-top: 1px solid var(--border); + display: flex; + gap: 8px; + align-items: center; +} + +.msg-row { + display: flex; + align-items: flex-start; + gap: 8px; + align-self: flex-start; + max-width: 85%; + animation: slideIn .2s ease-out both; +} + +@keyframes slideIn { + from { + opacity: 0; + transform: translateY(5px) + } + + to { + opacity: 1; + transform: translateY(0) + } +} + +m-in, +m-out, +m-all, +m-system { + display: block; + padding: 9px 13px; + border-radius: var(--radius); + font-size: 13px; + line-height: 1.55; + border: 1px solid transparent; + transition: background .15s, border-color .15s; +} + +m-in { + color: var(--in-color); + background: var(--in-glow); + border-color: rgba(255, 46, 184, .12); + text-shadow: 0 0 14px rgba(255, 46, 184, .55); +} + +m-in:hover { + background: rgba(255, 46, 184, .15); + border-color: rgba(255, 46, 184, .25); +} + +m-out { + color: var(--out-color); + background: var(--out-glow); + border-color: rgba(57, 255, 122, .12); + text-shadow: 0 0 14px rgba(57, 255, 122, .55); +} + +m-out:hover { + background: rgba(57, 255, 122, .15); + border-color: rgba(57, 255, 122, .25); +} + +m-all { + color: var(--all-color); + background: var(--all-glow); + border-color: rgba(255, 204, 0, .12); + border-style: dashed; + text-shadow: 0 0 14px rgba(255, 204, 0, .55); +} + +m-all:hover { + background: rgba(255, 204, 0, .15); + border-color: rgba(255, 204, 0, .28); +} + +m-system { + color: var(--fg-dim); + background: rgba(110, 103, 96, .07); + border-color: rgba(110, 103, 96, .10); +} + +m-system:hover { + background: rgba(110, 103, 96, .12); + border-color: rgba(110, 103, 96, .20); +} + +.msg-prefix { + opacity: .45; + font-size: 11px; + margin-right: 3px; +} + +blob { + display: block; + width: 38px; + height: 38px; + min-width: 38px; + border-radius: var(--radius); + /* border: 1px solid red; */ + overflow: hidden; + flex-shrink: 0; +} + +/* .msg-row:has(m-in) blob { + border-color: rgba(255, 46, 184, .15); +} + +.msg-row:has(m-out) blob { + border-color: rgba(57, 255, 122, .15); +} + +.msg-row:has(m-all) blob { + border-color: rgba(255, 204, 0, .15); + border-style: dashed; +} */ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: var(--font-mono); + font-weight: 700; + line-height: 1.2; + letter-spacing: .04em; + color: var(--fg); +} + +h1 { + font-size: 28px; + letter-spacing: .06em; + text-transform: lowercase; +} + +h2 { + font-size: 20px; + letter-spacing: .05em; + text-transform: lowercase; +} + +h3 { + font-size: 16px; +} + +h4 { + font-size: 14px; + font-family: var(--font-mono); + letter-spacing: .08em; + text-transform: uppercase; + color: var(--fg-dim); +} + +h5 { + font-size: 12px; + font-family: var(--font-mono); + letter-spacing: .10em; + text-transform: uppercase; + color: var(--fg-dim); +} + +h6 { + font-size: 11px; + font-family: var(--font-mono); + letter-spacing: .12em; + text-transform: uppercase; + color: var(--fg-dimmer); +} + +h1::after, +h2::after { + content: ''; + display: block; + margin-top: 6px; + height: 1px; + width: 2em; + background: var(--accent); + box-shadow: 0 0 8px var(--accent); +} + +strong, +b { + font-weight: 700; + color: var(--fg); + text-shadow: 0 0 10px rgba(245, 240, 234, .18); +} + +a { + color: var(--accent); + text-decoration: none; + border-bottom: 1px dashed rgba(255, 85, 51, .4); + transition: color .15s, border-color .15s, text-shadow .15s; +} + +a:hover { + color: #ff7755; + border-color: rgba(255, 119, 85, .7); + text-shadow: 0 0 10px rgba(255, 85, 51, .5); +} + +a:visited { + color: #cc4422; + border-color: rgba(204, 68, 34, .4); +} + +.btn { + display: inline-flex; + align-items: center; + gap: 6px; + font-family: var(--font-mono); + font-size: 12px; + letter-spacing: .06em; + padding: 8px 16px; + border-radius: var(--radius); + border: 1px solid transparent; + cursor: pointer; + transition: background .15s, border-color .15s, transform .1s, box-shadow .15s; + white-space: nowrap; + user-select: none; + text-decoration: none; +} + +.btn:active { + transform: scale(.97); +} + +.btn:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; +} + +.btn:disabled { + opacity: .32; + cursor: not-allowed; + pointer-events: none; + filter: grayscale(.5); +} + +.btn-primary { + background: rgba(255, 85, 51, .12); + border-color: rgba(255, 85, 51, .4); + color: #ff7755; + text-shadow: 0 0 8px rgba(255, 85, 51, .5); +} + +.btn-secondary { + background: rgba(49, 45, 41, .5); + border-color: var(--border-bright); + color: var(--fg-dim); +} + +.btn-danger { + background: rgba(255, 34, 68, .10); + border-color: rgba(255, 34, 68, .35); + color: #ff4466; + text-shadow: 0 0 8px rgba(255, 34, 68, .4); +} + +.btn-warn { + background: rgba(255, 170, 0, .10); + border-color: rgba(255, 170, 0, .35); + color: #ffbb33; + text-shadow: 0 0 8px rgba(255, 170, 0, .4); +} + +.btn-success { + background: rgba(57, 255, 122, .08); + border-color: rgba(57, 255, 122, .30); + color: var(--out-color); + text-shadow: 0 0 8px rgba(57, 255, 122, .4); +} + +.btn-primary:hover { + background: rgba(255, 85, 51, .22); + border-color: rgba(255, 85, 51, .7); + box-shadow: 0 0 12px rgba(255, 85, 51, .2); +} + +.btn-secondary:hover { + background: rgba(49, 45, 41, .9); + border-color: rgba(110, 103, 96, .5); + color: var(--fg); +} + +.btn-danger:hover { + background: rgba(255, 34, 68, .20); + border-color: rgba(255, 34, 68, .65); + box-shadow: 0 0 12px rgba(255, 34, 68, .2); +} + +.btn-warn:hover { + background: rgba(255, 170, 0, .20); + border-color: rgba(255, 170, 0, .60); + box-shadow: 0 0 12px rgba(255, 170, 0, .2); +} + +.btn-success:hover { + background: rgba(57, 255, 122, .16); + border-color: rgba(57, 255, 122, .55); + box-shadow: 0 0 12px rgba(57, 255, 122, .2); +} + +.send-btn { + background: rgba(255, 85, 51, .08); + border: 1px solid rgba(255, 85, 51, .28); + border-radius: var(--radius); + color: #ff7755; + font-family: var(--font-mono); + font-size: 12px; + letter-spacing: .06em; + padding: 9px 16px; + cursor: pointer; + white-space: nowrap; + text-shadow: 0 0 8px rgba(255, 85, 51, .5); + transition: background .15s, border-color .15s, transform .1s; +} + +.send-btn:hover { + background: rgba(255, 85, 51, .16); + border-color: rgba(255, 85, 51, .5); +} + +.send-btn:active { + transform: scale(.97); +} + +input[type="text"], +input[type="email"], +input[type="password"], +input[type="search"], +input[type="number"] { + background: var(--surface); + border: 1px solid var(--border-bright); + border-radius: var(--radius); + color: var(--fg); + font-family: var(--font-mono); + font-size: 13px; + padding: 9px 13px; + outline: none; + width: 100%; + transition: border-color .15s, box-shadow .15s, background .15s; +} + +input::placeholder { + color: var(--fg-dimmer); +} + +input:focus { + border-color: rgba(255, 85, 51, .45); + box-shadow: 0 0 0 3px rgba(255, 85, 51, .07); + background: var(--surface-raise); +} + +input:disabled { + opacity: .35; + cursor: not-allowed; +} + +textarea { + background: var(--surface); + border: 1px solid var(--border-bright); + border-radius: var(--radius); + color: var(--fg); + font-family: var(--font-mono); + font-size: 13px; + padding: 9px 13px; + outline: none; + width: 100%; + resize: none; + min-height: 80px; + transition: border-color .15s, box-shadow .15s, background .15s; +} + +textarea::placeholder { + color: var(--fg-dimmer); +} + +textarea:focus { + border-color: rgba(255, 85, 51, .45); + box-shadow: 0 0 0 3px rgba(255, 85, 51, .07); + background: var(--surface-raise); +} + +textarea:disabled { + opacity: .35; + cursor: not-allowed; +} + +field { + display: flex; + flex-direction: column; + gap: 5px; +} + +field>label { + font-size: 10px; + letter-spacing: .12em; + text-transform: uppercase; + color: var(--fg-dim); + cursor: default; +} + +label:has(input[type="radio"]), +label:has(input[type="checkbox"]) { + display: inline-flex; + align-items: center; + gap: 9px; + cursor: pointer; + font-size: 13px; + color: var(--fg-dim); + user-select: none; + transition: color .15s; +} + +label:has(input[type="radio"]):hover, +label:has(input[type="checkbox"]):hover, +label:has(input[type="radio"]:checked), +label:has(input[type="checkbox"]:checked) { + color: var(--fg); +} + +label>input[type="radio"], +label>input[type="checkbox"] { + display: none; +} + +indicator { + display: flex; + align-items: center; + justify-content: center; + width: 14px; + height: 14px; + border-radius: 50%; + border: 1px solid var(--border-bright); + background: var(--surface); + flex-shrink: 0; + transition: border-color .15s, box-shadow .15s; +} + +indicator::after { + content: ''; + width: 6px; + height: 6px; + border-radius: 50%; + background: var(--accent); + box-shadow: 0 0 6px rgba(255, 85, 51, .8); + opacity: 0; + transform: scale(0); + transition: opacity .15s, transform .15s; +} + +label:has(input[type="checkbox"]) indicator { + border-radius: 3px; +} + +label:has(input[type="checkbox"]) indicator::after { + width: 5px; + height: 5px; + border-radius: 1px; +} + +label:has(input[type="radio"]:checked) indicator, +label:has(input[type="checkbox"]:checked) indicator { + border-color: rgba(255, 85, 51, .6); + box-shadow: 0 0 0 3px rgba(255, 85, 51, .08); +} + +label:has(input[type="radio"]:checked) indicator::after, +label:has(input[type="checkbox"]:checked) indicator::after { + opacity: 1; + transform: scale(1); +} + +row { + display: flex; + align-items: center; + gap: 10px; +} + +val { + min-width: 32px; + text-align: right; + font-size: 11px; + color: var(--accent); + text-shadow: 0 0 6px rgba(255, 85, 51, .5); + letter-spacing: .06em; + flex-shrink: 0; +} + +input[type="range"] { + -webkit-appearance: none; + appearance: none; + flex: 1; + height: 4px; + border-radius: 2px; + background: var(--border-bright); + outline: none; + cursor: pointer; +} + +input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + width: 14px; + height: 14px; + border-radius: 50%; + background: var(--accent); + border: 1px solid rgba(255, 85, 51, .5); + box-shadow: 0 0 8px rgba(255, 85, 51, .55); + transition: box-shadow .15s, transform .1s; +} + +input[type="range"]::-webkit-slider-thumb:active { + transform: scale(1.2); +} + +input[type="range"]::-moz-range-thumb { + width: 14px; + height: 14px; + border-radius: 50%; + background: var(--accent); + border: 1px solid rgba(255, 85, 51, .5); + box-shadow: 0 0 8px rgba(255, 85, 51, .55); + cursor: pointer; +} + +pill { + display: inline-flex; + align-items: stretch; + border: 1px solid var(--border-bright); + border-radius: 40px; + overflow: hidden; + background: var(--surface); + font-size: 12px; + transition: border-color .15s; +} + +pill[full] { + display: flex; + width: 100%; +} + +pill:focus-within { + border-color: rgba(255, 85, 51, .4); + box-shadow: 0 0 0 3px rgba(255, 85, 51, .07); +} + +pill>p { + display: flex; + align-items: center; + padding: 5px 12px 5px 13px; + color: var(--fg-dim); + letter-spacing: .08em; + font-size: 11px; + text-transform: uppercase; + border-right: 1px solid var(--border-bright); + white-space: nowrap; + background: rgba(49, 45, 41, .4); + margin: 0; +} + +pill>elm { + display: flex; + align-items: center; + gap: 6px; + padding: 5px 13px 5px 11px; + color: var(--fg); + flex: 1; + min-width: 0; +} + +pill>elm input, +pill>elm select { + border: none; + background: transparent; + box-shadow: none; + padding: 0; + margin: 0; + font-size: 12px; + color: var(--fg); + width: 100%; + min-width: 0; + outline: none; +} + +.modal-backdrop { + position: fixed; + inset: 0; + background: rgba(12, 11, 10, .82); + backdrop-filter: blur(4px); + z-index: 1000; + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + pointer-events: none; + transition: opacity .2s ease; +} + +.modal-backdrop.modal-open { + opacity: 1; + pointer-events: all; +} + +.modal { + background: var(--surface); + border: 1px solid var(--border-bright); + border-radius: 8px; + min-width: 340px; + max-width: min(560px, calc(100vw - 40px)); + max-height: calc(100vh - 80px); + overflow-y: auto; + position: relative; + box-shadow: 0 0 0 1px rgba(255, 255, 255, .03), 0 24px 60px rgba(0, 0, 0, .6); + transform: translateY(10px) scale(.98); + transition: transform .22s ease; + scrollbar-width: thin; + scrollbar-color: var(--border-bright) transparent; + + padding: 10px; +} + +.modal-backdrop.modal-open .modal { + transform: translateY(0) scale(1); +} + +.modal::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 1px; + background: linear-gradient(90deg, transparent 10%, rgba(255, 85, 51, .3) 50%, transparent 90%); + pointer-events: none; +} + +.modal-header { + display: flex; + align-items: center; + padding: 14px 18px; + border-bottom: 1px solid var(--border); + gap: 8px; +} + +.modal-title { + font-family: var(--font-mono); + font-size: 14px; + font-weight: 700; + letter-spacing: .06em; + text-transform: lowercase; + flex: 1; +} + +.modal-close { + background: none; + border: 1px solid transparent; + border-radius: 4px; + color: var(--fg-dim); + font-size: 14px; + cursor: pointer; + padding: 2px 6px; + line-height: 1; + transition: color .15s, border-color .15s, background .15s; +} + +.modal-close:hover { + color: var(--fg); + border-color: var(--border-bright); + background: rgba(255, 255, 255, .04); +} + +.modal-body { + padding: 18px; +} + +.modal-footer { + display: flex; + justify-content: flex-end; + gap: 8px; + padding: 14px 18px; + border-top: 1px solid var(--border); +} + +#sidebar-backdrop { + display: none; + position: fixed; + inset: 0; + background: rgba(12, 11, 10, .8); + z-index: 500; + opacity: 0; + pointer-events: none; + transition: opacity .25s ease; + backdrop-filter: blur(4px); +} + +#sidebar-backdrop.open { + opacity: 1; + pointer-events: all; +} + +@media (max-width: 680px) { + #sidebar-toggle { + display: inline-flex; + } + + s-head button { + display: block; + } + + sidebar { + position: fixed; + top: 0; + left: 0; + bottom: 0; + width: 72% !important; + max-width: 320px; + transform: translateX(-110%); + transition: transform .28s cubic-bezier(.4, 0, .2, 1); + box-shadow: 8px 0 40px rgba(0, 0, 0, .5); + border-right: 1px solid var(--border-bright); + } + + sidebar.open { + transform: translateX(0); + } + + #sidebar-backdrop { + display: block; + } +}
\ No newline at end of file |
