Merge dev into main for testing

This commit is contained in:
pewdiepie-archdaemon
2026-06-28 14:07:23 +00:00
236 changed files with 17610 additions and 9212 deletions
+85 -4
View File
@@ -114,6 +114,10 @@ body {
@font-face { font-family: 'Fira Code'; font-weight: 400; font-style: normal; font-display: swap; src: url('/static/fonts/FiraCode-Regular.woff2') format('woff2'); }
@font-face { font-family: 'Fira Code'; font-weight: 600; font-style: normal; font-display: swap; src: url('/static/fonts/FiraCode-SemiBold.woff2') format('woff2'); }
/* Self-hosted OpenDyslexic — dyslexia-friendly accessibility font option (SIL OFL 1.1) */
@font-face { font-family: 'OpenDyslexic'; font-weight: 400; font-style: normal; font-display: swap; src: url('/static/fonts/OpenDyslexic-Regular.woff2') format('woff2'); }
@font-face { font-family: 'OpenDyslexic'; font-weight: 700; font-style: normal; font-display: swap; src: url('/static/fonts/OpenDyslexic-Bold.woff2') format('woff2'); }
/* Code block baseline */
pre, code, .hljs {
font-size: 0.95em;
@@ -158,6 +162,39 @@ html {
:root.density-spacious .list-item { padding: 8px 12px; }
:root.density-spacious .sidebar .section { padding: 0; }
/* UI text-size scale (accessibility)
Density only changes the root font-size, which can't move the many
hard-coded px sizes. `zoom` scales the whole UI uniformly (px text
included) while keeping layout intact, unlike `transform: scale`. */
:root.ui-scale-125 { zoom: 1.25; }
/* `zoom` makes the 100dvh shell render taller than the real viewport, which
pushes the bottom-pinned sidebar account/settings row below the fold (and
body's overflow:hidden then clips it). Shrink the shell by the same factor
so it fits the viewport exactly. */
:root.ui-scale-125 body { height: calc(100dvh / 1.25); }
/* Modals/panels under the 1.25x scale: zoom renders a centred, viewport-sized
panel ~1.25x taller, pushing its draggable header + close button off-screen
(a catch-22 you can't reach the control to turn the size back down). Divide
each max-height by the same factor to keep the original on-screen footprint.
Desktop only the mobile `!important` full-sheet rules win on small screens
and stay top-anchored, so their headers are already visible. */
:root.ui-scale-125 .modal-content { max-height: calc(85dvh / 1.25); }
:root.ui-scale-125 .cal-modal-content { max-height: calc(88dvh / 1.25); }
:root.ui-scale-125 .settings-modal-content { max-height: calc(85dvh / 1.25); }
:root.ui-scale-125 #theme-popup { max-height: min(calc(85dvh / 1.25), 480px); }
/* Cookbook is the one modal that set its height inline (94vh), which beat the
.modal-content compensation above and overflowed the viewport at 1.25x
(header + close button pushed off-screen). Own its height here so the same
zoom compensation applies. */
#cookbook-modal .modal-content { height: 94vh; max-height: 94vh; }
:root.ui-scale-125 #cookbook-modal .modal-content { height: calc(94dvh / 1.25); max-height: calc(94dvh / 1.25); }
/* PDF export modal also set its height inline (86vh) at v1.0; that inline cap
beat the .modal-content compensation above and shifted ~1vh at Default when
removed. Own its height here so Default is byte-for-byte 86vh and the same
1.25x compensation applies. */
.pdf-export-overlay .modal-content { max-height: 86vh; }
:root.ui-scale-125 .pdf-export-overlay .modal-content { max-height: calc(86dvh / 1.25); }
/* ── Background Patterns ── */
:root { --bg-effect-intensity: 1; }
@@ -4036,6 +4073,31 @@ body.bg-pattern-sparkles {
@keyframes toastCheckDraw {
to { stroke-dashoffset: 0; }
}
.toast-close-btn {
margin-left: 8px;
padding: 0;
width: 22px;
height: 22px;
line-height: 1;
border: none;
background: none;
color: var(--fg);
opacity: 0.5;
cursor: pointer;
font-size: 16px;
border-radius: 50%;
display: inline-flex;
align-items: center;
justify-content: center;
pointer-events: auto;
flex-shrink: 0;
transition: transform 0.22s ease, opacity 0.15s ease, background 0.15s ease;
}
.toast-close-btn:hover {
opacity: 1;
transform: rotate(90deg);
background: color-mix(in srgb, var(--fg) 8%, transparent);
}
.toast.exiting {
opacity: 0;
transform: translateX(-120%);
@@ -8708,6 +8770,12 @@ button.hamburger {
/* Hide thinking sections globally via settings toggle */
body.hide-thinking .thinking-section { display: none !important; }
/* Widen chat area via settings toggle */
body.fullwidth-chat .chat-history {
padding-left: 0 !important;
padding-right: 12px !important;
}
/* Thinking process styles — colors follow theme accent */
.msg .body .stream-content {
width: 100%;
@@ -17120,7 +17188,8 @@ body:not(.email-doc-split-active) #email-lib-modal.email-lib-fullscreen:not(.mod
/* Kebab dropdown */
.skill-kebab-menu {
position: fixed;
z-index: 100002;
/* z-index is set inline via topPortalZ() at open time (#4720); a static
value here loses once the modal bring-to-front counter climbs past it. */
min-width: 150px;
padding: 4px;
background: var(--panel, var(--bg));
@@ -35063,7 +35132,7 @@ body.notes-mobile-mode.notes-drag-mode .note-card-pin.active {
word-break: break-all;
}
.note-link:hover { opacity: 0.8; }
.note-checkbox-rm {
.note-checkbox-edit, .note-checkbox-rm {
flex: 0 0 auto;
background: transparent;
border: none;
@@ -35075,13 +35144,25 @@ body.notes-mobile-mode.notes-drag-mode .note-card-pin.active {
display: flex;
align-items: center;
justify-content: center;
margin-left: auto;
margin-right: 0;
margin-left: 2px;
transition: opacity 0.12s, background 0.12s, color 0.12s;
}
.note-checkbox-rm { margin-left: auto; }
.note-checkbox-edit { margin-left: auto; }
.note-checkbox:hover .note-checkbox-edit,
.note-checkbox:hover .note-checkbox-rm { opacity: 0.55; }
.note-checkbox-rm:hover { opacity: 1 !important; color: var(--red); background: color-mix(in srgb, var(--red) 12%, transparent); }
.note-checkbox-edit:hover { opacity: 1 !important; color: var(--accent, var(--blue)); background: color-mix(in srgb, var(--accent, var(--blue)) 12%, transparent); }
.note-card-selectmode .note-checkbox-edit,
.note-card-selectmode .note-checkbox-rm { display: none; }
.note-check-text[contenteditable="true"] {
background: color-mix(in srgb, var(--fg) 8%, transparent);
outline: 1px solid var(--accent, var(--blue));
border-radius: 2px;
cursor: text;
padding: 0 2px;
margin: 0 -2px;
}
.note-check-dot {
width: 16px;
height: 16px;