introduce nimmerworld/style/ — visual-language as its own typed contract Style is a cross-cutting concern (trait-palette touches at minimum 5 of the 9 architecture domains); it deserves its own typed-contract surface, mirroring the architecture-index → 9 domain files pattern.

This commit is contained in:
2026-04-26 02:21:50 +02:00
parent 0dd1087b2f
commit 0de5e6f047
2 changed files with 173 additions and 0 deletions

61
style/style-index.md Normal file
View File

@@ -0,0 +1,61 @@
# Nimmerworld — Style Index
> *Visual language is its own typed contract. This file is the cross-domain index of all visual / aesthetic / UI decisions, pointing at canonical sub-guides and enforcing consistency across the architecture's nine domain files.*
>
> *Companion to: [`../architecture-index.md`](../architecture-index.md). Sub-guides live alongside this file in `nimmerworld/style/`.*
---
## Spine rule — the achromatic / chromatic discipline
**The 8 trait-palette is exclusively chromatic. Achromatic colors are reserved for UI / environment / decay.** This is the load-bearing constraint that makes diegetic text rendering possible without overlay-boxes:
| Palette | Reserved for |
|---|---|
| **8 saturated chromatic hues** (the trait-wheel) | The 8 traits — and only the 8 traits |
| **White** | Text and pure-light UI overlay |
| **Black** | Shadows, voids, the imperial-net's deep-strip |
| **Greys** | Neutral defaults — NPCs without active trait-pulse, ambient surfaces |
| **Browns / earth tones** | Aged surfaces, decayed materials, the rust-and-patina layer |
**Why this matters.** Color is *vocabulary*; reserving it for *information* (trait-state) keeps the achromatic palette free for the *medium* that carries the information (text, neutral environment, depth). Most games end up with textbox-everywhere because they let saturated colors leak into environmental art, forcing text-on-box for legibility. Nimmerworld doesn't need the textbox because nothing is competing for white's luminance slot — *white means one thing: you're being told something*.
**This rule propagates everywhere.** Any new visual element must respect it:
- A new mod-class CANNOT introduce a saturated chromatic accent unrelated to a trait-coordinate
- A new faction's heraldry CANNOT use a chromatic color outside the trait-palette
- A new shader register CANNOT use saturated chromatic tones for environmental fidelity
- Decorative environmental color MUST be muted (browns / greys / desaturated tones) to keep the trait-wheel's meaning intact
When in doubt, ask: *does this color carry trait-information, or is it decorative?* If decorative, desaturate. If trait-information, use the canonical wheel-position from [`trait-palette.md`](./trait-palette.md).
## Sub-guides
| Sub-guide | What it covers | Status |
|---|---|---|
| [`trait-palette.md`](./trait-palette.md) | The 8 traits on the color wheel, 4 oppositional pairs at 180°, schoolchild-descriptions, motion-signatures | ✓ canonical (v0.1) |
| `typography.md` | Text rendering, hierarchy, no-textbox commitment, the white-as-text-only semantic-slot | TODO |
| `shaders-by-register.md` | Three-shader philosophy: gameworld PBR / liminal blur / imperial-net emission; clasp candlelight-in-fog override; clasp color-merge | TODO |
| `body-feedback.md` | NPC body-pulse rules during gesture-alignment; trait-flash event-vocabulary; cross-cycle trait-drift rendering | TODO |
| `ui-elements.md` | Gesture-circle UI styling, universal-translator tokenizer-view, profile-switch indicator, hardstop visual-distinct treatment | TODO |
| `relays.md` | Diegetic-relay visual vocabulary, pulse-pattern lexicon (slow / fast / irregular / cross-district shimmer / dark) | TODO |
| `asset-aesthetic.md` | Base-limb texture rules, mod aesthetic registers per faction, muted-melancholic environmental treatment | TODO |
Sub-guides will be filled out as visual decisions land. The skeleton plus `trait-palette.md` is the v0.1 spine; everything else grows from there.
## Cross-references into architecture domain files
The trait-palette is referenced from many architectural primitives. When `trait-palette.md` changes, these sections may need updates too (or they may reference back into here for canonical definitions):
| What | Where it's referenced architecturally |
|---|---|
| Trait-color rendering on NPC bodies | [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Color-language |
| Trait-color flashes on gesture-alignment | [`../runtime-engine/architecture.md`](../runtime-engine/architecture.md) §Phase-locked overlay-loop ladder + §Gesture-alignment as recursive-lemniscate |
| Gesture-circle UI placement of trait-sectors | [`../player-experience/architecture.md`](../player-experience/architecture.md) §The trait-circle as gestural primary modality |
| Color-coding of mod-classes | [`../identity-and-personhood/architecture.md`](../identity-and-personhood/architecture.md) §Mods as trait-bearers |
| Color-coding in three-shader philosophy | [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Visual rendering |
| Faction color-politics | [`../topology-and-rendering/architecture.md`](../topology-and-rendering/architecture.md) §Color-language → Faction color-politics table |
---
**Version:** 0.1 | **Created:** 2026-04-26 | **Updated:** 2026-04-26