game-views: replace CHAT with YARN (.fa-route) between SCROLL & POST; ATLAS timestamps match their source views
CHAT conceptually overlapped POST, so it's gone — replaced by a distinct YARN view (fa-route) shifted one slot left, between SCROLL and POST. Reelhouse order is now ATLAS | SCROLL | YARN | POST | PULSE. YARN is a stub (the shared [Feature forthcoming] partial in its .applet-scroll, like PULSE). Touched: the carousel + strip partials, the h2 reel words, the _base.scss data-active-view translateX reindex (yarn=-200%, post now -300%), room-views.js VIEW_ORDER, the Jasmine spec VIEWS, and the FT/IT order + stub assertions. The horizontal-wheel FT now expects scroll's neighbour to be YARN. ATLAS timestamps: the merged rows carry the ORIGINAL <time> from their source (.drama-event-time from SCROLL, .post-line-time from POST), but those source rules are feed/thread-scoped so the atlas copies rendered full-size inline. Made .atlas-row a flex row and restated the shared small / dim / right-aligned look on both source time classes so each timestamp reads the same as in the view it came from. Verified: 8 carousel FTs + carousel ITs + Jasmine (atlas merge + swipe machine) green. [[project-room-game-views-carousel]] Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -410,12 +410,12 @@ body {
|
||||
.gr-word--base { transform: translateY(-100%); } // up & out
|
||||
.gr-views-reel { transform: translateY(0); } // rises in
|
||||
}
|
||||
// Horizontal cell (VIEW_ORDER atlas|scroll|post|chat|pulse) —
|
||||
// Horizontal cell (VIEW_ORDER atlas|scroll|yarn|post|pulse) —
|
||||
// keyed on the active view ALONE so it holds at the hex too.
|
||||
&[data-active-view="atlas"] .gr-views-track { transform: translateX(0); }
|
||||
&[data-active-view="scroll"] .gr-views-track { transform: translateX(-100%); }
|
||||
&[data-active-view="post"] .gr-views-track { transform: translateX(-200%); }
|
||||
&[data-active-view="chat"] .gr-views-track { transform: translateX(-300%); }
|
||||
&[data-active-view="yarn"] .gr-views-track { transform: translateX(-200%); }
|
||||
&[data-active-view="post"] .gr-views-track { transform: translateX(-300%); }
|
||||
&[data-active-view="pulse"] .gr-views-track { transform: translateX(-400%); }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,13 +238,30 @@ html.sea-open #id_aperture_fill {
|
||||
flex-direction: column;
|
||||
|
||||
.atlas-row {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
gap: 0.4rem;
|
||||
padding: 0.3rem 0;
|
||||
font-size: 0.9rem;
|
||||
border-inline-start: 2px solid transparent;
|
||||
padding-inline-start: 0.5rem;
|
||||
|
||||
.atlas-row-time { font-size: 0.7rem; opacity: 0.5; margin-inline-start: 0.4rem; }
|
||||
.atlas-row-who { font-weight: bold; color: rgba(var(--quaUser), 1); margin-inline-end: 0.3rem; }
|
||||
.atlas-row-who { font-weight: bold; color: rgba(var(--quaUser), 1); flex-shrink: 0; }
|
||||
.atlas-row-body { flex: 1; min-width: 0; overflow-wrap: anywhere; }
|
||||
// The merged rows carry the ORIGINAL <time> from their source row
|
||||
// (.drama-event-time from SCROLL, .post-line-time from POST). Those
|
||||
// source rules are scoped to the feed/thread, so restate the shared
|
||||
// small / dim / right-aligned look here so each timestamp reads the
|
||||
// same as it does in the view it came from.
|
||||
.drama-event-time,
|
||||
.post-line-time {
|
||||
flex-shrink: 0;
|
||||
margin-inline-start: auto;
|
||||
font-size: 0.75rem;
|
||||
opacity: 0.5;
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
// Distinct per-source accent (border tint) — the styling hook the
|
||||
// contract reserves for end-of-sprint polish.
|
||||
|
||||
Reference in New Issue
Block a user