Improved theme banner consistency across themes.

This commit is contained in:
2026-08-25 22:29:28 +00:00
parent a21f919601
commit 3173a113b6
8 changed files with 48 additions and 37 deletions
+6 -3
View File
@@ -122,7 +122,8 @@ body {
display: flex;
flex-direction: column;
justify-content: flex-end;
min-height: 11rem;
height: 13rem;
box-sizing: content-box;
background: linear-gradient(135deg, var(--surface), var(--bg));
border-bottom: 1px solid var(--line);
}
@@ -287,7 +288,8 @@ body.editing #sidebar {
The panel scrolls internally. */
.editor-host {
position: fixed;
top: 0; /* main.js: banner bottom while visible, else 0 */
top: 0;
/* main.js: banner bottom while visible, else 0 */
bottom: 0;
left: 0;
width: var(--editor-w);
@@ -894,6 +896,7 @@ article h2 {
(explicit img widths still shrink-wrap), while .wide keeps its full
viewport bleed. */
@media (max-width: 48rem) {
/* Nav type shrinks fluidly as space runs out. The nav font-size is
em-based both in base and in every theme override, so scaling the
banner's font-size (nothing else in the banner is em-sized — brand and
@@ -938,7 +941,7 @@ article h2 {
/* Only the main level becomes a horizontal wrapping strip; submenus stay
vertical blocks attached under their parent item. */
#sidebar > ul {
#sidebar>ul {
flex-direction: row;
flex-wrap: wrap;
gap: 0.3rem 0.75rem;
-5
View File
@@ -3,11 +3,6 @@
SVG from the active palette (var(--accent)), so one SVG serves light
and dark — and other themes too. */
#banner {
min-height: 15rem;
border-bottom: none;
}
/* Artwork colors, light mode */
.cb-bg0 {
stop-color: #ffffff;
+1 -1
View File
@@ -43,7 +43,7 @@
font-size: clamp(4rem, 11vw, 8.5rem);
font-weight: 800;
letter-spacing: -0.04em;
line-height: 1;
line-height: 1.1;
white-space: nowrap;
color: var(--accent2);
filter: drop-shadow(0 0.4rem 1.4rem rgb(10 92 255 / 0.3));
-4
View File
@@ -1,7 +1,3 @@
/* Eyes banner design: a canvas critter watching the cursor from the
grass (banner.html — markup + styles + script inlined by the backend
into #page-banner). Fixed-height stage matching the canvas. */
#banner {
height: 240px;
}
+1 -1
View File
@@ -5,7 +5,6 @@
/* Bezier-swept banner with wide orange stripes (inlined SVG), separated
from the page by a straight orange blade. */
#banner {
height: 13rem;
border-bottom: 4px solid var(--accent);
}
@@ -44,6 +43,7 @@
}
@media (prefers-color-scheme: dark) {
/* Banner dark tones tinted to the same violet family as the page. */
.nb-base {
fill: #100d18;
-4
View File
@@ -15,7 +15,3 @@
.banner-fade {
stop-color: var(--bg);
}
#banner {
min-height: 13rem;
}
-4
View File
@@ -1,7 +1,3 @@
/* Stars banner design: a drifting starfield (banner.html — canvas + script
inlined by the backend into #page-banner). Fixed-height stage matching
the canvas. */
#banner {
height: 240px;
}
+40 -15
View File
@@ -2,10 +2,6 @@
backend into #page-banner) — rolling hills, leafy bushes, swaying
flowers, drifting clouds and a sun that rises as you scroll. */
#banner {
min-height: 15rem;
}
/* The artwork fades into the page background at its bottom edge. */
.summer-fade {
stop-color: var(--bg);
@@ -44,9 +40,17 @@
animation: summer-sun 9s ease-in-out infinite alternate;
}
#page-banner .cloud-a { animation: summer-drift 56s ease-in-out infinite alternate; }
#page-banner .cloud-b { animation: summer-drift 73s ease-in-out infinite alternate-reverse; }
#page-banner .cloud-c { animation: summer-drift 64s ease-in-out infinite alternate; }
#page-banner .cloud-a {
animation: summer-drift 56s ease-in-out infinite alternate;
}
#page-banner .cloud-b {
animation: summer-drift 73s ease-in-out infinite alternate-reverse;
}
#page-banner .cloud-c {
animation: summer-drift 64s ease-in-out infinite alternate;
}
#page-banner .flower {
transform-box: fill-box;
@@ -55,21 +59,42 @@
}
/* Stagger the sway so the meadow doesn't move in lockstep. */
#page-banner .flower:nth-child(3n) { animation-delay: -1.7s; }
#page-banner .flower:nth-child(3n + 1) { animation-delay: -3.1s; animation-duration: 6s; }
#page-banner .flower:nth-child(3n) {
animation-delay: -1.7s;
}
#page-banner .flower:nth-child(3n + 1) {
animation-delay: -3.1s;
animation-duration: 6s;
}
}
@keyframes summer-sun {
from { opacity: 0.22; }
to { opacity: 0.38; }
from {
opacity: 0.22;
}
to {
opacity: 0.38;
}
}
@keyframes summer-drift {
from { transform: translateX(-1.6%); }
to { transform: translateX(1.6%); }
from {
transform: translateX(-1.6%);
}
to {
transform: translateX(1.6%);
}
}
@keyframes summer-sway {
from { transform: rotate(-2.6deg); }
to { transform: rotate(2.6deg); }
from {
transform: rotate(-2.6deg);
}
to {
transform: rotate(2.6deg);
}
}