h2 padding-inline boundary between the two spans (BILL | BOARD natural gap) + landscape inherits portrait flex split (45/55 vertical, with padding-inline-end on first span = visual break between rotated words)
- portrait h2 spans get padding-inline-end / padding-inline-start (0.4em each) at the 45/55 boundary; box-sizing: border-box keeps the flex basis honest. Solves the "B I L L B O A R D" run-together where the L of BILL touches the B of BOARD. - landscape h2 drops the `display: block` override + the > span resets that nuked text-align: justify and flex. Now inherits the portrait flex 45/55 + per-span justify + padding-inline. With writing-mode: vertical-rl, the flex axis runs vertically (45% bottom for BILL post-rotate, 55% top for POST/BOARD/etc.); padding-inline-end resolves to the bottom edge of the first span = natural gap between the two rotated words. - Explicit h2 height: 80vh in landscape so the flex 45/55 percentages have a defined basis to resolve against (block height isn't auto-derived in writing-mode: vertical-rl). - 8 layout/navbar FTs still green; assertions are categorical (position: fixed, etc.) not exact-px. Code architected by Disco DeDisco <discodedisco@outlook.com> Git commit message Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -214,13 +214,20 @@ body {
|
||||
text-align: justify;
|
||||
text-align-last: justify;
|
||||
text-justify: inter-character;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
// Padding-inline (logical) creates the natural visual gap
|
||||
// between the two words at the 45/55 boundary — works for
|
||||
// both portrait (horizontal) AND the landscape rotated
|
||||
// wordmark (vertical-rl writing mode).
|
||||
> span:first-child {
|
||||
flex: 0 0 45%;
|
||||
padding-inline-end: 0.4em;
|
||||
color: rgba(var(--quaUser), 0.75);
|
||||
}
|
||||
> span:last-child {
|
||||
flex: 0 0 55%;
|
||||
padding-inline-start: 0.4em;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -355,24 +362,20 @@ body {
|
||||
left: var(--sidebar-w);
|
||||
width: var(--h2-col-w);
|
||||
top: 50%;
|
||||
height: 80vh; // explicit height so the flex 45/55 % basis resolves
|
||||
transform: translateY(-50%) rotate(180deg);
|
||||
writing-mode: vertical-rl;
|
||||
display: block; // override portrait flex
|
||||
writing-mode: vertical-rl; // inline axis becomes top-to-bottom; flex stacks on it
|
||||
font-size: 3rem; // rem-fluid → no min-height jumps
|
||||
letter-spacing: 0.4em;
|
||||
margin: 0;
|
||||
z-index: 85;
|
||||
pointer-events: none;
|
||||
|
||||
> span {
|
||||
// Reset portrait justify; the rotated wordmark is one continuous
|
||||
// line, not a two-column split.
|
||||
text-align: initial;
|
||||
text-align-last: initial;
|
||||
text-justify: initial;
|
||||
flex: initial;
|
||||
display: inline;
|
||||
}
|
||||
// Inherits display: flex + the per-span flex 45/55 + padding-inline
|
||||
// boundary from the portrait base. With writing-mode: vertical-rl the
|
||||
// flex axis runs vertically, so first-span (BILL) takes 45% of the
|
||||
// height (becomes bottom 45% after rotate(180deg)) and second-span
|
||||
// (POST) takes the upper 55%. padding-inline-end resolves to the
|
||||
// bottom edge of the first span — natural break between words.
|
||||
}
|
||||
|
||||
// Footer → fixed right sidebar (mirrors navbar approach — explicit right boundary)
|
||||
|
||||
Reference in New Issue
Block a user