diff --git a/css/changelog.css b/css/changelog.css index 985958c..7cd15b6 100644 --- a/css/changelog.css +++ b/css/changelog.css @@ -165,10 +165,17 @@ .changelog-date-header { display: flex; align-items: center; - justify-content: space-between; + gap: 0.75rem; padding-bottom: 0.75rem; - margin-bottom: 0.75rem; + margin-bottom: 0; border-bottom: 1px solid var(--border); + cursor: pointer; + user-select: none; + transition: all 0.2s ease; +} + +.changelog-date-header:hover { + border-bottom-color: var(--status-green-dim); } .changelog-date-header .changelog-date { @@ -187,6 +194,50 @@ letter-spacing: 1px; } +.changelog-date-summary { + font-family: var(--font-mono); + font-size: 0.7rem; + color: var(--text-muted); + letter-spacing: 1px; + margin-left: auto; +} + +/* ─── Toggle Arrow ───────────────────────────────────── */ +.changelog-toggle-arrow { + font-size: 0.65rem; + color: var(--status-green); + transition: transform 0.3s ease; + display: inline-block; + width: 0.8rem; + flex-shrink: 0; +} + +.changelog-entry:not(.collapsed) .changelog-toggle-arrow { + transform: rotate(90deg); +} + +/* ─── Collapsible Content ────────────────────────────── */ +.changelog-content { + max-height: 2000px; + overflow: hidden; + transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.3s ease; + opacity: 1; + margin-top: 0.75rem; +} + +.changelog-entry.collapsed .changelog-content { + max-height: 0; + opacity: 0; + margin-top: 0; +} + +.changelog-entry.collapsed .changelog-date-header { + border-bottom-color: transparent; + margin-bottom: 0; + padding-bottom: 0; +} + + /* ─── Sub-entry within date group ────────────────────── */ .changelog-sub-entry { padding: 0.6rem 0; diff --git a/js/changelog.js b/js/changelog.js index c4ab57b..ff2f09c 100644 --- a/js/changelog.js +++ b/js/changelog.js @@ -60,22 +60,32 @@ // Timeline — grouped by date html += `