The ornament and frame component set #54
Notifications
Due Date
No due date set.
Blocks
Depends on
#56 Page width and density system
ShadowsOverWestgate/sow-nodebb-theme
#57 The home board
ShadowsOverWestgate/sow-nodebb-theme
#58 Wiki page frame, reader and editor
ShadowsOverWestgate/sow-nodebb-theme
#63 Does the shared shell carry a status pip in the topbar
ShadowsOverWestgate/sow-nodebb-theme
#48 How game websites carry identity without art
ShadowsOverWestgate/sow-nodebb-theme
#49 North star and named rules for the noir re-tune
ShadowsOverWestgate/sow-nodebb-theme
#53 Palette candidates on a dense page
ShadowsOverWestgate/sow-nodebb-theme
Reference: ShadowsOverWestgate/sow-nodebb-theme#54
Reference in New Issue
Block a user
Part of #47
Question
What is the ornament and frame vocabulary, as a component set?
This is the spine of the map. The sites personality is carried by chrome rather than art, and chrome only reads as intentional if it is a small closed set of components reused everywhere — not per-page CSS. Get this wrong and every surface invents its own border.
Define and prototype:
GAME_ICONS.mdalready documents.Name each component, since later layout tickets will refer to them by name. Prototype them on a throwaway branch as a single specimen page plus one real surface, and link it here.
Resolution is the named component set with its rules — the thing every layout ticket downstream composes from.
Handed over from #53 (resolved)
The light surface (champagne
#EFE5D2, ink#351E28) is out of the app surfaces — onquoted material it became the brightest thing on the page and secondary content out-shouted the
reply containing it. It survives only as a possible showcase ornament, which is this ticket's
call: does a plain-paper plaque earn a place in the frame set, or does the ornament vocabulary
stay entirely dark?
Two constraints if it does land (from #50): no metal of any kind clears AA on either light tone,
and it forces a second, surface-aware focus-ring token (
#09080B).Prototype built — the component set, on a specimen page and one real surface
Branch
prototype/54-ornament-set(pushed, not for merge).prototype/ornament/README.mdreplays it. Palette is candidate B from #53, injected at runtime, so no rebuild is needed.
The stack is still up on http://localhost:4567 with the #53 seed, so the real surface can be
looked at live: open
/categories, then pasteprototype/ornament/real-surface.css(plusprototype/_base-plumnoir.cssandprototype/candidate-b.css) into devtools to toggle it.The named set — ten components, and no eleventh
inline-blockis the whole idea. Cinzel, tracked, uppercase, pewter edge. Optionally straddling its own panel edge as a legend.The divider inventory — four, and there is no fifth
A solid hairline running corner to corner is not on this list, and neither is
<hr>as shipped.The section header
Texture
Two, both inset, neither an asset: velvet sheen (inset plum bloom, α ≤ .11, dropped entirely at app density) and horizon. On a cheap panel there is no texture at all — that is the point of the cheap panel. No noise, no filigree, no images.
Ornament weight across the density boundary
Same rail, same components, same width. App density turns the set down: sheen off, rows tighter, icons one step smaller, headers reduced, plaques limited to one, lintel bleed cut from 32px to 18px. Nothing at app density is a different component.
What the pages showed
shots/categories-before-crop.pngvsshots/categories-after-crop.png.)saturate(0.62)are load-bearing. Removing them to "let pewter structure the plate" made every ACP colour candy-bright in one step. Two Metals reaches the plate's ring, not its wash. First cut of this prototype got that wrong and the screenshot showed it immediately.shots/specimen-full.pngcontains no image of any kind: every frame, rule, plaque, glow and icon is CSS or a mask over a token.One conflict found with an existing document
GAME_ICONS.mdmaps the Programming category togears.svg. #49's No Machines, Only Fittings forbids depicted machinery, and gears are the named example. That mapping has to be retired and replaced (spanner,anvilandpencil-rulerare fittings and tools, so they stay).Open question for the human
Does the panel keep its 8px radius, or go square? #48 found
border-radius: 0is the most common value in EVE's frame system, and Edges Fade points the same way — but the theme is 8px everywhere today and a square panel is a visible change to every surface. The prototype keeps 8px. Worth a look before it is locked.This ticket is HITL and stays open until the human has looked in a browser. The reads above are the prototype's, not the resolution.
Resolution
The ornament vocabulary is a closed set of twelve named components plus four dividers. Nothing outside this list may be invented on a surface; a surface that needs something new comes back here first. Every component stands with zero images.
Prototype: branch
prototype/54-ornament-set(prototype/ornament/) —specimen.html(every component, both densities, one page),real-surface.css+variant-tabular.css+variant-gold.css(the set mapped onto the live category list, topic and category pages),shots/. Judged in a browser on the live stack over palette B.The components
The dividers (the whole inventory)
No other divider exists. In particular there is no plain full-width hairline running corner to corner (Edges Fade).
Shape, weight and case
The ledger row (settled shape)
The category row is tabular + gold: prose on the left at a fixed measure, and the three right-hand readings — topics, posts, teaser — each in its own Well on a shared grid. Counts get fixed 6rem Wells; the teaser takes the rest. Stat labels are Cinzel small caps at 0.78rem (the DESIGN.md floor). Teaser prose is left-aligned, clamped to two lines, and fills its Well: even inset on all four sides, no wider gap horizontally than vertically.
Findings
GAME_ICONS.mdmaps Programming togears.svg, which breaks #49's No Machines, Only Fittings. Needs re-mapping wherever icon assignments are settled.border-radius: 8px !important, so squaring the shell is a specificity fight, not a one-liner. Real code should remove the radius at source rather than override it.line-clamp-sm-*clamps by a hardmax-heightsized to its own line-height. Any component that sets a taller line-height must clamp by line count instead, or the clamp shaves glyphs.Deferred
Well height with a short teaser, and the row's vertical rhythm generally, are spacing decisions owned by #56 Page width and density system.
Two findings from this ticket are filed as their own issues, since neither is a decision the map owes: #65 (Programming maps to
gears.svg, breaking No Machines Only Fittings) and #66 (removeborder-radius: 8px !importantat source rather than overriding it).