v0.32.2
This commit is contained in:
1 parent
bb025dcf44
commit
b0f211555a
74 files changed
+6089
-556
No files matched your search
+521
-5
@@ -132,6 +132,135 @@ html[data-theme="light"] {
|
||||
--scrollbar-thumb-hover: #879684
|
||||
}
|
||||
|
||||
|
||||
/* Optional AMOLED palette: near-black surfaces, readable borders and restrained
|
||||
mint/coral emphasis. Does not change the established dark appearance. */
|
||||
html[data-theme="ultra_dark"] {
|
||||
color-scheme: dark;
|
||||
--bg: #030404;
|
||||
--panel: #0b0d0e;
|
||||
--panel2: #121516;
|
||||
--line: #292f30;
|
||||
--muted: #a4afb0;
|
||||
--text: #f1f4f2;
|
||||
--accent: #93dfc8;
|
||||
--logo-accent: #f69b74;
|
||||
--logo-secondary: #cfe0ac;
|
||||
--green: #b1dcb0;
|
||||
--red: #ff9899;
|
||||
--sidebar-bg: #000000;
|
||||
--brand-secondary: #a9cfb5;
|
||||
--nav-active-bg: #172422;
|
||||
--nav-hover-bg: #121819;
|
||||
--text-subtle: #879695;
|
||||
--separator: #526261;
|
||||
--border-hover: #7c9f96;
|
||||
--field-bg: #090b0c;
|
||||
--field-line: #445352;
|
||||
--placeholder: #879593;
|
||||
--row-line: #202627;
|
||||
--outline-line: #79968f;
|
||||
--chart-grid: #303839;
|
||||
--code-bg: #0e1313;
|
||||
--code-alt-bg: #101a1d;
|
||||
--code-alt-text: #d5eae9;
|
||||
--nav-selected-bg: #213730;
|
||||
--accent-ink: #071814;
|
||||
--accent-hover: #b6f2dd;
|
||||
--selected-ink: #071814;
|
||||
--notice-text: #e6c99c;
|
||||
--notice-line: #66533a;
|
||||
--notice-bg: #201a11;
|
||||
--pill-line: #625544;
|
||||
--pill-live-line: #506c59;
|
||||
--toast-bg: #bcf3da;
|
||||
--toast-text: #10221a;
|
||||
--toast-line: #d8ffe8;
|
||||
--toast-error-bg: #ffd5d0;
|
||||
--toast-error-line: #ff9c96;
|
||||
--toast-error-text: #472625;
|
||||
--danger-line: #754245;
|
||||
--danger-line-strong: #965257;
|
||||
--warn-line: #89754c;
|
||||
--blue: #8bbdfb;
|
||||
--transform-chart: #cfaeff;
|
||||
--backdrop: rgb(0 0 0 / .86);
|
||||
--backdrop-soft: rgb(0 0 0 / .77);
|
||||
--shadow-mid: rgb(0 0 0 / .64);
|
||||
--shadow-strong: rgb(0 0 0 / .84);
|
||||
--neutral-soft: rgb(132 171 158 / .045);
|
||||
--scrollbar-track: #060808;
|
||||
--scrollbar-thumb: #364243;
|
||||
--scrollbar-thumb-hover: #617373;
|
||||
}
|
||||
|
||||
/* Warm, muted ivory. No pure-white canvas; numeric values and charts retain
|
||||
clear contrast against their slightly lighter, neutral card surfaces. */
|
||||
html[data-theme="cream"] {
|
||||
color-scheme: light;
|
||||
--bg: #f2ede3;
|
||||
--panel: #fcf9f2;
|
||||
--panel2: #eae3d6;
|
||||
--line: #d5cabb;
|
||||
--muted: #6b6257;
|
||||
--text: #302c27;
|
||||
--accent: #8c5942;
|
||||
--green: #5e7655;
|
||||
--red: #a54645;
|
||||
--sidebar-bg: #eae2d5;
|
||||
--brand-secondary: #668367;
|
||||
--nav-active-bg: #e0d3c0;
|
||||
--nav-hover-bg: #e6dccc;
|
||||
--text-subtle: #786e61;
|
||||
--separator: #afa494;
|
||||
--border-hover: #968776;
|
||||
--field-bg: #fffcf7;
|
||||
--field-line: #baad9a;
|
||||
--placeholder: #807466;
|
||||
--row-line: #e2d9cb;
|
||||
--outline-line: #9c8d7c;
|
||||
--chart-grid: #ddd3c4;
|
||||
--code-bg: #f0e8da;
|
||||
--code-alt-bg: #e7ebe9;
|
||||
--code-alt-text: #364f4e;
|
||||
--nav-selected-bg: #d9cbb7;
|
||||
--accent-ink: #ffffff;
|
||||
--accent-hover: #774632;
|
||||
--selected-ink: #ffffff;
|
||||
--notice-text: #765e40;
|
||||
--notice-line: #d9c3a1;
|
||||
--notice-bg: #f8efdf;
|
||||
--pill-line: #c2a78d;
|
||||
--pill-live-line: #b0bd9d;
|
||||
--toast-bg: #d6ead2;
|
||||
--toast-text: #263d29;
|
||||
--toast-line: #b8d5b6;
|
||||
--toast-error-bg: #f8ded7;
|
||||
--toast-error-line: #dca99c;
|
||||
--toast-error-text: #60352f;
|
||||
--danger-line: #d2a29a;
|
||||
--danger-line-strong: #b97870;
|
||||
--warn-line: #b49c6b;
|
||||
--blue: #4d7292;
|
||||
--transform-chart: #83659a;
|
||||
--backdrop: rgb(37 27 16 / .44);
|
||||
--backdrop-soft: rgb(47 35 21 / .48);
|
||||
--shadow-mid: rgb(64 49 34 / .13);
|
||||
--shadow-strong: rgb(64 49 34 / .24);
|
||||
--neutral-soft: rgb(104 91 69 / .045);
|
||||
--scrollbar-track: #ece4d7;
|
||||
--scrollbar-thumb: #b5a997;
|
||||
--scrollbar-thumb-hover: #978a76;
|
||||
}
|
||||
|
||||
/* Theme palettes change color only; corners are controlled independently. */
|
||||
html[data-theme="ultra_dark"] :is(.card, .stat, dialog) {
|
||||
box-shadow: 0 6px 24px rgb(0 0 0 / .18);
|
||||
}
|
||||
html[data-theme="cream"] :is(.card, .stat, dialog) {
|
||||
box-shadow: 0 6px 20px rgb(78 58 38 / .055);
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
|
||||
@@ -198,7 +327,7 @@ html:not(.app-loading) .app-startup {
|
||||
}
|
||||
|
||||
.app-startup-brand span {
|
||||
color: var(--accent, #65cfa2)
|
||||
color: var(--logo-secondary, var(--accent, #65cfa2))
|
||||
}
|
||||
|
||||
.app-startup-spinner {
|
||||
@@ -361,8 +490,8 @@ h2 {
|
||||
|
||||
.brand-mark {
|
||||
font: 700 33px var(--mono);
|
||||
border: 1px solid var(--accent);
|
||||
color: var(--accent);
|
||||
border: 1px solid var(--logo-accent, var(--accent));
|
||||
color: var(--logo-accent, var(--accent));
|
||||
place-content: center;
|
||||
position: relative
|
||||
}
|
||||
@@ -371,7 +500,7 @@ h2 {
|
||||
font-size: 22px;
|
||||
left: 29px;
|
||||
top: 19px;
|
||||
color: var(--brand-secondary)
|
||||
color: var(--logo-secondary, var(--brand-secondary))
|
||||
}
|
||||
|
||||
.edition {
|
||||
@@ -10175,4 +10304,391 @@ html[data-chart-style] :is(#workspace, dialog) svg polyline {
|
||||
#panel-overview .stats-grid {
|
||||
grid-template-columns: repeat(6, minmax(0, 1fr));
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Optional HTTP backend mode distribution (configured modes, not negotiated ALPN). */
|
||||
#panel-overview .backend-mode-bar {
|
||||
display: flex;
|
||||
height: 7px;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
gap: 2px;
|
||||
border-radius: 5px;
|
||||
background: var(--line);
|
||||
margin: 7px 0 5px;
|
||||
}
|
||||
#panel-overview .backend-mode-bar span { min-width: 0; }
|
||||
#panel-overview .backend-mode-h1 { background: var(--traffic-h1); }
|
||||
#panel-overview .backend-mode-auto { background: var(--traffic-h2); }
|
||||
#panel-overview .backend-mode-compat { background: var(--traffic-h2); opacity: .5; }
|
||||
#panel-overview .backend-mode-h2 { background: var(--traffic-h3); }
|
||||
|
||||
#panel-overview .backend-mode-bar[aria-label] { background-clip: padding-box; }
|
||||
.vh-origin-protocol-info { color: var(--muted); }
|
||||
.vh-origin-protocol-warning { color: var(--muted); }
|
||||
|
||||
/* Overview arrangement dialog: visual clones never participate in metric updates. */
|
||||
.overview-layout-dialog {
|
||||
width: min(1180px, calc(100vw - 24px));
|
||||
max-height: calc(100dvh - 24px);
|
||||
overflow: auto;
|
||||
}
|
||||
.overview-layout-dialog > .window-heading {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
background: var(--bg);
|
||||
border-bottom: 1px solid var(--line);
|
||||
}
|
||||
.overview-layout-body { display: grid; gap: 16px; padding: 14px; }
|
||||
.overview-layout-body h3 { font-size: 14px; margin: 0 0 10px; }
|
||||
.overview-layout-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ui-gap, 10px); }
|
||||
.overview-layout-tile { min-width: 0; border: 1px solid var(--line); background: var(--panel); cursor: grab; }
|
||||
.overview-layout-tile:active { cursor: grabbing; }
|
||||
.overview-layout-tile.is-dragging { opacity: .4; }
|
||||
.overview-layout-tile.is-drop-target { outline: 2px solid var(--accent); outline-offset: -2px; }
|
||||
.overview-layout-tile-toolbar { display: flex; align-items: center; gap: 3px; padding: 4px; border-bottom: 1px solid var(--line); }
|
||||
.overview-layout-tile-toolbar button { min-height: 28px; min-width: 28px; padding: 3px 7px; }
|
||||
.overview-layout-grip { padding: 0 5px; color: var(--muted); user-select: none; }
|
||||
.overview-layout-hide { margin-inline-start: auto; font-size: 11px; }
|
||||
.overview-layout-grid .stat { border: 0; padding: 12px; min-height: 98px; pointer-events: none; }
|
||||
.overview-layout-grid .stat > span { font-size: 11px; }
|
||||
.overview-layout-grid .stat strong { font-size: 24px; margin-top: 7px; overflow-wrap: anywhere; }
|
||||
.overview-layout-grid .stat small { display: block; font-size: 10px; line-height: 1.4; overflow-wrap: anywhere; }
|
||||
.overview-layout-grid .stat svg { width: 100%; height: 53px; }
|
||||
.overview-layout-grid .stat-chart-legend { display: flex; flex-wrap: wrap; gap: 8px; }
|
||||
.overview-layout-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
|
||||
.overview-layout-section-heading input { max-width: 230px; }
|
||||
.overview-layout-hidden-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
|
||||
.overview-layout-hidden-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid var(--line); padding: 8px; background: var(--panel); min-width: 0; }
|
||||
.overview-layout-hidden-item span { font-size: 12px; min-width: 0; overflow-wrap: anywhere; }
|
||||
.overview-layout-hidden-item button { flex-shrink: 0; }
|
||||
.overview-layout-footer { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 12px; border-top: 1px solid var(--line); background: var(--bg); z-index: 2; }
|
||||
.overview-layout-footer p { margin: 0 auto 0 0; font-size: 11px; overflow-wrap: anywhere; }
|
||||
.dashboard-layout-open-settings { margin: 5px 0; justify-self: start; }
|
||||
@media (max-width: 850px) {
|
||||
.overview-layout-grid, .overview-layout-hidden-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
||||
}
|
||||
@media (max-width: 550px) {
|
||||
.overview-layout-grid, .overview-layout-hidden-list { grid-template-columns: minmax(0, 1fr); }
|
||||
.overview-layout-section-heading { align-items: stretch; flex-direction: column; }
|
||||
.overview-layout-section-heading input { max-width: none; width: 100%; }
|
||||
.overview-layout-footer { flex-wrap: wrap; }
|
||||
.overview-layout-footer p { width: 100%; }
|
||||
}
|
||||
|
||||
/* One rearrangeable Overview canvas. Existing large charts, diagnostics and the
|
||||
backend table keep their original nodes/IDs and their data update handlers. */
|
||||
#panel-overview .dashboard-overview-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(6, minmax(0, 1fr));
|
||||
gap: var(--ui-gap);
|
||||
align-items: stretch;
|
||||
}
|
||||
#panel-overview .dashboard-overview-grid > [data-dashboard-widget] { min-width: 0; }
|
||||
#panel-overview .dashboard-overview-grid > [hidden] { display: none !important; }
|
||||
#panel-overview .dashboard-overview-grid > .card:not(.pool-card) { grid-column: span 2; }
|
||||
#panel-overview .dashboard-overview-grid > .pool-card { grid-column: 1 / -1; margin-bottom: 0; }
|
||||
#panel-overview .dashboard-overview-grid > .activity-card svg { min-width: 0; }
|
||||
@media (max-width: 1200px) {
|
||||
#panel-overview .dashboard-overview-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
|
||||
#panel-overview .dashboard-overview-grid > .stat { grid-column: span 2; }
|
||||
#panel-overview .dashboard-overview-grid > .card:not(.pool-card) { grid-column: span 2; }
|
||||
}
|
||||
@media (max-width: 850px) {
|
||||
#panel-overview .dashboard-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
||||
#panel-overview .dashboard-overview-grid > .stat { grid-column: span 1; }
|
||||
#panel-overview .dashboard-overview-grid > .card:not(.pool-card) { grid-column: 1 / -1; }
|
||||
}
|
||||
@media (max-width: 550px) {
|
||||
#panel-overview .dashboard-overview-grid { grid-template-columns: minmax(0, 1fr); }
|
||||
#panel-overview .dashboard-overview-grid > .stat { grid-column: 1; }
|
||||
}
|
||||
.overview-layout-tile.is-panel { grid-column: span 2; }
|
||||
.overview-layout-grid .overview-layout-panel-preview {
|
||||
display: grid;
|
||||
gap: 7px;
|
||||
padding: 12px;
|
||||
min-height: 98px;
|
||||
background: var(--panel);
|
||||
pointer-events: none;
|
||||
}
|
||||
.overview-layout-panel-preview > strong { font-size: 13px; }
|
||||
.overview-layout-panel-preview svg { width: 100%; height: 80px; }
|
||||
.overview-layout-panel-preview small { color: var(--muted); }
|
||||
.overview-layout-footer #overview-layout-default { margin-right: auto; }
|
||||
.overview-reset-confirm { width: min(460px, calc(100vw - 24px)); padding: 16px; }
|
||||
.overview-reset-confirm > p { line-height: 1.5; }
|
||||
@media (max-width: 850px) { .overview-layout-tile.is-panel { grid-column: span 2; } }
|
||||
@media (max-width: 550px) { .overview-layout-tile.is-panel { grid-column: span 1; } }
|
||||
|
||||
/* Overview block kinds come from the same server-validated registry as the
|
||||
saved order. Labels distinguish numbers, plots, tables and diagnostic panels. */
|
||||
.overview-widget-type {
|
||||
display: inline-block;
|
||||
width: fit-content;
|
||||
max-width: 100%;
|
||||
padding: 2px 6px;
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 4px;
|
||||
background: var(--panel2);
|
||||
color: var(--muted);
|
||||
font-size: 10px;
|
||||
line-height: 1.25;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
.dashboard-widget-setting .dashboard-widget-toggle { flex-wrap: wrap; }
|
||||
.dashboard-widget-setting .overview-widget-type { margin-left: 15px; }
|
||||
.overview-layout-tile-toolbar .overview-widget-type { margin-left: 3px; }
|
||||
.overview-layout-hidden-item .overview-widget-type { flex: 0 0 auto; }
|
||||
.overview-layout-filters { display: flex; flex-wrap: wrap; gap: 8px; }
|
||||
.overview-layout-filters select, .overview-layout-filters input { width: min(220px, 100%); max-width: 100%; }
|
||||
|
||||
/* Inline editing of the actual Overview blocks; live charts and original DOM
|
||||
IDs remain in place. Dragging is enabled only on the explicit grip button. */
|
||||
.overview-inline-actions { display: inline-flex; gap: 7px; align-items: center; flex-wrap: wrap; }
|
||||
.overview-inline-actions[hidden], .overview-inline-hint[hidden] { display: none !important; }
|
||||
.overview-inline-hint { margin: 0 0 10px; }
|
||||
#panel-overview .dashboard-overview-grid.is-unlocked > [data-dashboard-widget] {
|
||||
position: relative;
|
||||
outline: 1px dashed var(--accent);
|
||||
outline-offset: -2px;
|
||||
padding-top: 66px;
|
||||
}
|
||||
#panel-overview .dashboard-overview-grid.is-unlocked > .is-overview-dragging { opacity: .45; }
|
||||
#panel-overview .dashboard-overview-grid.is-unlocked > .is-overview-drop-before {
|
||||
box-shadow: inset 4px 0 var(--accent);
|
||||
}
|
||||
#panel-overview .dashboard-overview-grid.is-unlocked > .is-overview-drop-after {
|
||||
box-shadow: inset -4px 0 var(--accent);
|
||||
}
|
||||
.overview-inline-toolbar {
|
||||
position: absolute;
|
||||
top: 3px;
|
||||
left: 4px;
|
||||
right: 4px;
|
||||
z-index: 4;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 3px;
|
||||
pointer-events: auto;
|
||||
}
|
||||
#panel-overview .overview-inline-toolbar button {
|
||||
min-width: 28px;
|
||||
min-height: 27px;
|
||||
padding: 2px 7px;
|
||||
font-size: 12px;
|
||||
}
|
||||
#panel-overview .overview-inline-toolbar .overview-inline-grip { cursor: grab; user-select: none; }
|
||||
#panel-overview .overview-inline-toolbar .overview-inline-grip:active { cursor: grabbing; }
|
||||
#panel-overview .overview-inline-toolbar .overview-widget-type { margin-left: auto; }
|
||||
@media (max-width: 600px) {
|
||||
.overview-layout-hidden-item { flex-wrap: wrap; }
|
||||
.overview-layout-filters select, .overview-layout-filters input { width: 100%; }
|
||||
#panel-overview .dashboard-overview-grid.is-unlocked > [data-dashboard-widget] { padding-top: 68px; }
|
||||
}
|
||||
|
||||
|
||||
/* Direct Overview editing: hide is reversible until Save and remains
|
||||
recoverable later from the block selector or the compact hidden shelf. */
|
||||
#panel-overview .overview-inline-toolbar .overview-inline-hide {
|
||||
color: var(--red);
|
||||
border: 1px solid var(--danger-line);
|
||||
background: var(--panel);
|
||||
/* Use the same .quiet radius/corner preset as the arrow buttons. */
|
||||
font-size: 18px;
|
||||
line-height: 1;
|
||||
}
|
||||
#panel-overview .overview-inline-toolbar .overview-inline-hide:hover,
|
||||
#panel-overview .overview-inline-toolbar .overview-inline-hide:focus-visible {
|
||||
border-color: var(--danger-line-strong);
|
||||
background: var(--notice-bg);
|
||||
}
|
||||
.overview-inline-hidden {
|
||||
margin: 0 0 10px;
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 9px;
|
||||
background: var(--panel);
|
||||
color: var(--text);
|
||||
}
|
||||
.overview-inline-hidden > summary {
|
||||
padding: 9px 12px;
|
||||
cursor: pointer;
|
||||
color: var(--muted);
|
||||
font-size: 12px;
|
||||
}
|
||||
.overview-inline-hidden > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
||||
.overview-inline-hidden-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 7px;
|
||||
max-height: min(30vh, 240px);
|
||||
overflow-y: auto;
|
||||
padding: 10px 12px;
|
||||
border-top: 1px solid var(--line);
|
||||
}
|
||||
.overview-inline-hidden-item {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 7px;
|
||||
max-width: 100%;
|
||||
padding: 4px 7px;
|
||||
border: 1px solid var(--line);
|
||||
border-radius: 7px;
|
||||
color: var(--text);
|
||||
background: var(--panel2);
|
||||
font-size: 12px;
|
||||
}
|
||||
.overview-inline-hidden-item > span:not(.overview-widget-type) { overflow-wrap: anywhere; }
|
||||
.overview-inline-hidden-item > button {
|
||||
flex: 0 0 auto;
|
||||
min-width: 27px;
|
||||
min-height: 27px;
|
||||
padding: 1px 7px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid var(--field-line);
|
||||
color: var(--green);
|
||||
background: var(--panel);
|
||||
}
|
||||
.overview-inline-hidden-item > button:hover { border-color: var(--accent); }
|
||||
@media (max-width: 600px) {
|
||||
#panel-overview .dashboard-overview-grid.is-unlocked > [data-dashboard-widget] { padding-top: 82px; }
|
||||
.overview-inline-hidden-item { max-width: 100%; }
|
||||
}
|
||||
|
||||
/* The original fixed Overview grid, also used for personalized layouts.
|
||||
Metrics, wide charts, diagnostic panels and tables are separate rows;
|
||||
every tile in a row stretches to the SAME height. This intentionally
|
||||
favors symmetry over masonry or floating short cards beside tall panels.
|
||||
Existing density controls define the identical horizontal/vertical gap. */
|
||||
#panel-overview { container: overview-canvas / inline-size; }
|
||||
#panel-overview .dashboard-overview-grid.is-aligned {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(12, minmax(0, 1fr));
|
||||
grid-auto-flow: row;
|
||||
grid-auto-rows: auto;
|
||||
align-items: stretch;
|
||||
align-content: start;
|
||||
gap: var(--ui-gap);
|
||||
}
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > [data-dashboard-widget] {
|
||||
grid-column: auto / span 2;
|
||||
grid-row: auto;
|
||||
align-self: stretch;
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
min-width: 0;
|
||||
box-sizing: border-box;
|
||||
margin-block: 0;
|
||||
position: relative;
|
||||
}
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > .card:not(.pool-card) { grid-column: auto / span 4; }
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > .card.overview-wide-chart { grid-column: auto / span 6; }
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > .pool-card { grid-column: 1 / -1; }
|
||||
/* Each size category starts at the first track, even after drag/drop. */
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > .overview-row-start,
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > .card.overview-row-start { grid-column-start: 1; }
|
||||
@container overview-canvas (max-width: 1080px) {
|
||||
#panel-overview .dashboard-overview-grid.is-aligned { grid-template-columns: repeat(6, minmax(0, 1fr)); }
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > [data-dashboard-widget].stat { grid-column: auto / span 2; }
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > .card:not(.pool-card) { grid-column: auto / span 3; }
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > .card.overview-wide-chart,
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > .pool-card { grid-column: 1 / -1; }
|
||||
}
|
||||
@container overview-canvas (max-width: 700px) {
|
||||
#panel-overview .dashboard-overview-grid.is-aligned { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > [data-dashboard-widget].stat { grid-column: auto / span 1; }
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > .card:not(.pool-card) { grid-column: 1 / -1; }
|
||||
}
|
||||
@container overview-canvas (max-width: 440px) {
|
||||
#panel-overview .dashboard-overview-grid.is-aligned { grid-template-columns: minmax(0, 1fr); }
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > [data-dashboard-widget].stat { grid-column: 1; }
|
||||
}
|
||||
/* Keep category boundaries intact at every responsive breakpoint. */
|
||||
#panel-overview .dashboard-overview-grid.is-aligned > [data-dashboard-widget].overview-row-start { grid-column-start: 1; }
|
||||
|
||||
/* Full-size optional charts: static SVG geometry and bounded historical data. */
|
||||
#panel-overview .overview-wide-chart { padding: 15px; overflow: hidden; }
|
||||
#panel-overview .overview-wide-chart .card-heading { min-width: 0; align-items: baseline; gap: 10px; }
|
||||
#panel-overview .overview-wide-chart h2 { min-width: 0; overflow-wrap: anywhere; }
|
||||
#panel-overview .overview-wide-summary { color: var(--accent); font: 500 12px var(--mono); white-space: nowrap; }
|
||||
#panel-overview .overview-wide-svg { display: block; width: 100%; height: clamp(125px, 13vw, 190px); margin-block: 13px 9px; }
|
||||
#panel-overview .overview-wide-svg .chart-grid { stroke: var(--line); fill: none; stroke-width: 1; opacity: .6; }
|
||||
#panel-overview .overview-wide-series { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
|
||||
#panel-overview .overview-wide-series-0 { stroke: var(--chart-accent); }
|
||||
#panel-overview .overview-wide-series-1 { stroke: var(--chart-secondary); }
|
||||
#panel-overview .overview-wide-series-2 { stroke: var(--chart-tertiary); }
|
||||
#panel-overview .overview-wide-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; color: var(--muted); font-size: 11px; }
|
||||
#panel-overview .overview-wide-legend > span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
|
||||
#panel-overview .overview-wide-legend i { width: 8px; height: 8px; border-radius: 100%; background: var(--chart-accent); }
|
||||
#panel-overview .overview-wide-legend .overview-wide-key-1 { background: var(--chart-secondary); }
|
||||
#panel-overview .overview-wide-legend .overview-wide-key-2 { background: var(--chart-tertiary); }
|
||||
#panel-overview .overview-wide-legend b { font: 500 11px var(--mono); color: var(--text); }
|
||||
/* Block metadata stays to the left of every action group. */
|
||||
.dashboard-widget-setting .dashboard-widget-toggle { flex-wrap: nowrap; }
|
||||
.dashboard-widget-setting .dashboard-widget-toggle .overview-widget-type { margin: 0 0 0 auto; flex: 0 0 auto; }
|
||||
.dashboard-widget-setting .dashboard-widget-setting-actions { justify-self: end; flex-shrink: 0; }
|
||||
.overview-layout-tile-toolbar { flex-wrap: wrap; }
|
||||
.overview-layout-tile-toolbar .overview-widget-type { margin: 0; }
|
||||
.overview-layout-tile-toolbar .overview-layout-controls { display: inline-flex; align-items: center; gap: 3px; margin-left: auto; }
|
||||
.overview-layout-hidden-item > button { margin-left: auto; }
|
||||
.overview-layout-hidden-item > .overview-widget-type { margin: 0; }
|
||||
#panel-overview .overview-inline-toolbar .overview-widget-type { margin: 0 auto 0 0; }
|
||||
#panel-overview .overview-inline-toolbar .overview-inline-hide { margin-left: 0; }
|
||||
.overview-inline-hidden-item > .overview-widget-type { margin-right: 0; }
|
||||
.overview-inline-hidden-item > .overview-inline-restore { order: 3; margin-left: auto; }
|
||||
|
||||
/* Appearance selector: always show the block-kind label, independently from
|
||||
the visibility button, with actions pinned to the right edge. */
|
||||
.dashboard-widget-list {
|
||||
grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
|
||||
}
|
||||
.dashboard-widget-setting {
|
||||
grid-template-columns: minmax(0, 1fr) auto;
|
||||
gap: 6px;
|
||||
}
|
||||
.dashboard-widget-setting .dashboard-widget-toggle {
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
min-width: 0;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
.dashboard-widget-setting .dashboard-widget-setting-label {
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
}
|
||||
.dashboard-widget-setting > .overview-widget-type {
|
||||
flex: none;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
overflow-wrap: normal;
|
||||
}
|
||||
.dashboard-widget-setting > .dashboard-widget-setting-actions {
|
||||
justify-self: end;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* Global shape preference. "default" applies NO overrides so existing dark,
|
||||
light, cream and Ultra Dark keep the same established corner geometry.
|
||||
Circular status dots, spinners, switches and chart markers retain their
|
||||
semantic shape; underline tabs and navigation accent strips stay intact. */
|
||||
html[data-corner-style="square"] { --rp-radius-surface: 0px; --rp-radius-control: 0px; }
|
||||
html[data-corner-style="subtle"] { --rp-radius-surface: 5px; --rp-radius-control: 4px; }
|
||||
html[data-corner-style="rounded"] { --rp-radius-surface: 12px; --rp-radius-control: 8px; }
|
||||
html[data-corner-style="extra"] { --rp-radius-surface: 18px; --rp-radius-control: 12px; }
|
||||
html:is([data-corner-style="square"], [data-corner-style="subtle"], [data-corner-style="rounded"], [data-corner-style="extra"]) :is(
|
||||
.card, .stat, dialog, .login-card, .appearance-section, .settings-tabs,
|
||||
.dashboard-widget-setting, .overview-layout-tile, .overview-layout-hidden-item,
|
||||
.overview-inline-hidden-item, .notice, .toast,
|
||||
.chart-style-choice, .stream-dashboard-card, .pool-card,
|
||||
.file-log-advanced-parser, .table-container, .metric-info-popover
|
||||
) { border-radius: var(--rp-radius-surface) !important; }
|
||||
html:is([data-corner-style="square"], [data-corner-style="subtle"], [data-corner-style="rounded"], [data-corner-style="extra"]) :is(
|
||||
button:not(.nav):not(.file-log-tab), input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
|
||||
select, textarea, .pill, .overview-widget-type, .badge, .quiet, .outline, .primary,
|
||||
.code, .command, .dashboard-widget-toggle, .settings-tabs button,
|
||||
.overview-inline-hidden-toggle, .overview-inline-restore
|
||||
) { border-radius: var(--rp-radius-control) !important; }
|
||||
|
||||
/* Appearance stays badge-free; badges remain useful in the visual editor. */
|
||||
#settings-page-appearance .dashboard-widget-setting .overview-widget-type { display: none; }
|
||||
Reference in new issue
Block a user