Make info panels collapsible with remembered state
Each main section with a data-panel key can now be folded by clicking its heading (rotating chevron, keyboard-accessible via role/tabindex/aria-expanded and Enter/Space). Collapsed keys are persisted in localStorage and restored on load, so the layout stays how you left it across reloads. State is device-global like the theme (a single non-namespaced key, not per-user data), and only collapsed panels are stored — so any panel added later defaults to open.
This commit is contained in:
@@ -756,3 +756,24 @@ input.switch:checked::after { transform: translateX(18px); }
|
||||
.chart-svg .hm-poo { fill: var(--poo); }
|
||||
.chart-svg .hm-eat { fill: var(--eat); }
|
||||
|
||||
/* ---------- collapsible panels ---------- */
|
||||
section.collapsible > h2 {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
padding-right: 20px;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
section.collapsible > h2::after {
|
||||
content: "▾";
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
transition: transform 0.15s ease;
|
||||
color: var(--muted);
|
||||
font-size: 0.85em;
|
||||
}
|
||||
section.collapsed > h2::after { transform: translateY(-50%) rotate(-90deg); }
|
||||
section.collapsed > h2 { margin-bottom: 0; }
|
||||
section.collapsed > :not(h2) { display: none; }
|
||||
|
||||
Reference in New Issue
Block a user