Add 7.41e patch notes with a hand-authored reading sidebar.

Ship Climperor Web 0.6.13: latest-patch summary panel, icon/innate fallbacks, and layout/scroll fixes; keep shared ability badges in git.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
voson
2026-07-31 10:06:09 +08:00
co-authored by Cursor
parent a257f96d94
commit 30218790ce
18 changed files with 2169 additions and 63 deletions
+184 -6
View File
@@ -1675,7 +1675,7 @@ body.detail-drawer-open {
display: block;
}
.skill-icon img.missing {
visibility: hidden;
display: none;
}
/* Circular triggers: talent tree + innate (official dota2.com order). */
.skill-icon.talent-trigger,
@@ -2833,17 +2833,32 @@ body:has(#items-view:not(.hidden)) {
}
.patches-board {
display: flex;
flex-direction: column;
align-items: center;
overflow-x: hidden;
overflow-y: auto;
}
/* Center only the changelog column; summary hangs in the right gutter. */
.patches-cluster {
display: flex;
justify-content: center;
width: 100%;
box-sizing: border-box;
padding: 0 24px;
}
.patches-center-wrap {
position: relative;
width: min(var(--content-read), calc(100% - 48px));
flex: 0 0 auto;
}
.patches-main {
width: 100%;
min-width: 0;
}
.patches-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--space-lg);
width: min(var(--content-read), 92%);
width: 100%;
padding: var(--space-xl) 0 10px;
}
.patches-title {
@@ -2881,9 +2896,169 @@ body:has(#items-view:not(.hidden)) {
cursor: pointer;
}
.patches-detail {
width: min(var(--content-read), 92%);
width: 100%;
padding: 6px 0 64px;
}
.patches-aside {
position: absolute;
left: calc(100% + var(--aside-gap));
top: 0;
bottom: 0;
width: 280px;
pointer-events: none;
box-sizing: border-box;
}
.patches-aside[hidden] {
display: none !important;
}
/* Cap to the visible board (below .topbar), not raw 100vh — otherwise the
sticky box hangs past the viewport and the last lines stay unreachable. */
.patch-summary {
position: sticky;
top: 20px;
align-self: start;
width: 100%;
height: fit-content;
max-height: calc(100dvh - 9rem);
overflow-x: hidden;
overflow-y: auto;
overscroll-behavior: contain;
pointer-events: auto;
display: flex;
flex-direction: column;
gap: var(--space-lg);
box-sizing: border-box;
padding-bottom: calc(var(--space-lg) + 8px);
}
.patch-summary-head {
display: flex;
flex-direction: column;
gap: 4px;
}
.patch-summary-title {
margin: 0;
font-size: var(--fs-body-lg);
font-weight: var(--fw-black);
color: var(--text);
letter-spacing: 0.02em;
line-height: var(--lh-tight);
}
.patch-summary-disclaimer {
margin: 0;
font-size: var(--fs-label);
font-weight: var(--fw-medium);
color: var(--muted);
line-height: 1.35;
}
.patch-summary-headline {
margin: 0;
font-size: var(--fs-body-sm);
font-weight: var(--fw-medium);
color: var(--text);
line-height: var(--lh-body);
}
.patch-summary-section {
display: flex;
flex-direction: column;
gap: 8px;
}
.patch-summary-section-title {
margin: 0;
font-size: var(--fs-label);
font-weight: var(--fw-semibold);
color: var(--muted);
letter-spacing: 0.08em;
line-height: var(--lh-title);
}
.patch-summary-list {
margin: 0;
padding-left: 1.15em;
display: flex;
flex-direction: column;
gap: 6px;
font-size: var(--fs-body-sm);
color: var(--text);
line-height: 1.45;
}
.patch-summary-chips {
display: flex;
flex-direction: column;
gap: 8px;
}
.patch-summary-chip {
display: flex;
align-items: flex-start;
gap: 8px;
width: 100%;
margin: 0;
padding: 0;
border: 0;
background: transparent;
color: inherit;
font: inherit;
text-align: left;
}
button.patch-summary-chip.is-clickable {
cursor: pointer;
border-radius: var(--radius-sm);
}
button.patch-summary-chip.is-clickable:hover .patch-summary-chip-name {
color: var(--sel);
}
.patch-summary-icon {
flex-shrink: 0;
margin-top: 2px;
background: var(--panel);
border-radius: 3px;
}
.patch-summary-icon--hero {
width: 32px;
height: 18px;
object-fit: cover;
}
.patch-summary-icon--item {
width: 22px;
height: 22px;
object-fit: contain;
}
.patch-summary-chip-body {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.patch-summary-chip-name {
font-size: var(--fs-body-sm);
font-weight: var(--fw-semibold);
color: var(--text);
line-height: 1.3;
}
.patch-summary-chip-note {
font-size: var(--fs-label);
font-weight: var(--fw-medium);
color: var(--muted);
line-height: 1.4;
}
/* Need ~820 main + 300 aside gutter on each side of optical center. */
@media (max-width: 1440px) {
.patches-center-wrap {
display: flex;
flex-direction: column;
width: min(var(--content-read), 100%);
}
.patches-aside {
position: static;
width: 100%;
pointer-events: auto;
order: -1;
padding: 0 0 8px;
}
.patch-summary {
position: static;
max-height: none;
overflow: visible;
}
}
.patches-empty,
.rankings-empty,
.streamers-empty {
@@ -3384,6 +3559,9 @@ body:has(#items-view:not(.hidden)) {
height: 48px;
margin-top: 2px;
}
.patch-ability-icon.missing {
display: none;
}
.patch-name {
display: block;
margin-bottom: 4px;