diff --git a/styles/dark-crystal.md b/styles/dark-crystal.md new file mode 100644 index 0000000..77069c7 --- /dev/null +++ b/styles/dark-crystal.md @@ -0,0 +1,76 @@ +# Dark Crystal Style Guide + +## Overview + +`dark-crystal` and `dark-crystal-chaos` are the project-signature style pair for **Dark Crystal**, Kris's hackathon app (`~/Code/dark-crystal`, private repo). The brand is a neo-noir "obsidian + punk collage" identity built around a faceted black-glass crystal with blood-red light trapped inside — and a deliberate **Order ↔ Chaos** duality that the product's own UI toggle enacts. The design practices what the product preaches: order is glossy and restrained, chaos is handmade and scarred, and both share one locked palette. + +**`dark-crystal` vs `dark-crystal-chaos`:** `dark-crystal` is the Order pole — calm, aligned, film-grain only. `dark-crystal-chaos` is an *additive* Chaos layer — fractures, collage, and glitch on top of the same form and palette. Use `dark-crystal` alone for calm/high-end shots, `dark-crystal-chaos` alone for pure-chaos facets, or compose `dark-crystal+dark-crystal-chaos` for a single frame that shows the tension between both poles. + +**Locked-palette signature, not general-purpose:** like `n5orange`/`nardwuar`/`china-creek` (VANCOUVER MADE), this is a project-specific style with a hard-locked color set — it isn't a substitute for `zine`, `cmvan`, or `kk-glitch` on other work, and those generic house styles shouldn't be substituted back in here (their palettes — newsprint yellow, hot magenta, CMYK — break the Dark Crystal lock). + +## Color Palette + +| Token | Hex | Role | +|---|---|---| +| `obsidian-0` | `#05060A` | page void — the deepest dark | +| `obsidian-1` | `#0C0E14` | panel layer (dark-on-dark) | +| `obsidian-2` | `#14171F` | raised surface (dark-on-dark) | +| `bone` | `#E8E4DA` | off-white text/highlight — never pure white | +| `ash` | `#8A8F9A` | muted secondary | +| `blood` | `#E10600` | the ONE accent — rare, violent, load-bearing | +| `blood-deep` | `#7A0A0A` | the crystal's inner glow | +| `steel` | `#B8C0CC` | cold reflective edge-highlight on facets | + +Rule: red is punctuation, not paint. Layer the darks (obsidian-0/1/2) rather than using one flat black. No colors outside this table — no purple-blue gradients, no CMYK, no hot pink. + +## Key Motifs + +- **Faceted obsidian glass** — a polyhedron or plane of black glass facets, the recurring "object" across every asset +- **Trapped red light** — blood-red light held inside the core, or leaking along a seam/crack; never a full-frame red wash +- **Steel edge-reflections** — cold, precise highlights along facet edges, never warm +- **Order:** facets aligned, razor-straight seams, near-still, one restrained accent +- **Chaos (additive):** facets fracture/shard, red flares wider, xerox halftone grain, torn-paper collage edges, ransom-note type, RGB glitch/scanline tears + +## Tone + +Neo-noir. Restrained-until-violent. Order reads as "polished in the sense that cohesive and well thought out" — gallery-grade calm. Chaos reads as handmade and scarred — "assembled at midnight" — but deliberately, not sloppily; it's the same discipline turned inside out, and it's literally the project's anti-slop stance made visual. + +## Avoid-Clauses (Critical) + +| Concept | Avoid | +|---|---| +| Palette drift | Any color outside the locked table, pure white, CMYK, hot pink/magenta, generic zine/cmvan hues | +| Generic AI look | Purple-blue glassmorphism, AI-brochure gradients, generic dark-mode SaaS panels | +| Stock tech clichés | Glowing brains, circuit boards, humanoid robots, fake dashboards/UI | +| Illustration drift | Cartoon, flat-vector illustration, clip-art | +| Text/marks | Baked-in text or logo marks — these get composited after generation in a separate pass (image models don't render small text/logos reliably) | +| People | Photo-realistic people/faces in the abstract crystal style (documentary-photo companion prompts are a separate, explicitly-real-not-fantasy track — see `dark-crystal`'s own `design/rafiki/RAFIKI.md`) | + +## When to Use + +- Dark Crystal logo lockups (icon, wordmark, horizontal, stacked) +- Facet/section backgrounds for the app and hero art +- Album cover art (the companion concept album) +- Pitch-deck and social assets specific to this project + +## When NOT to Use + +- Any other client's dark-mode or noir work — use `kk`, `bcai`, or `mac` instead +- Public assets without checking against BRAND.md's anti-slop discipline first + +## Example CLI Commands + +```bash +# Order pole — logo icon +python generate.py -p "faceted obsidian glass crystal, blood-red light trapped in the core, full-bleed pure black, minimal, film grain, centered in a square frame" --style dark-crystal -m flash + +# Chaos pole alone — a fractured facet background +python generate.py -p "vast field of fractured obsidian black-glass facets, blood-red seam cracking wide open, landscape orientation, no text, no people" --style dark-crystal-chaos -m flash + +# Composed — order giving way to chaos in one frame +python generate.py -p "obsidian black-glass facets, ordered and aligned on one side giving way to fractured chaos on the other, a blood-red seam running the full diagonal connecting both halves" --style dark-crystal+dark-crystal-chaos -m flash +``` + +## Source Material + +Full brand spec lives in the Dark Crystal repo itself: `~/Code/dark-crystal/design/BRAND.md` (palette, motifs, type, texture/motion rules) and `~/Code/dark-crystal/design/rafiki/RAFIKI.md` (proven Rafiki recipes, facet→style map, workflow notes). `design/rafiki/image-prompts.md` has a full ready-to-run prompt set for logo lockups, facet backgrounds, and album covers. diff --git a/styles/styles.yaml b/styles/styles.yaml index 5e3a061..d8c0aa2 100644 --- a/styles/styles.yaml +++ b/styles/styles.yaml @@ -144,3 +144,19 @@ styles: description: "Counter-FIFA home kit defending public space — concrete-grey city-pride gloss over skatepark bowls, griptape and the city's own NO SKATEBOARDING bylaw; criminalize-then-monetize critique" suffix: | Style guidelines: VANCOUVER MADE "China Creek" protest-kit visual language — a counterfeit-official FIFA-style host-city home kit that defends public space and skate/DIY culture against the criminalize-then-monetize playbook. THE METHOD: mimic the official polish, invert the payload, bake in the receipt; the home ground was never the gift, it was the fight. REGISTER: high-end and refined FIRST, defiant underneath — a premium, badass, editorial sports-fashion kit that reads as a covetable design object you'd actually want to wear; the protest lands quietly through restrained marks, never clutter; the bite is aimed at the bylaw, developers, redevelopment and the tourism/Olympic monetization of a subculture the city first policed. WORDMARK RULE: the front/chest reads exactly VANCOUVER (a bold host-city wordmark — the single word VANCOUVER, NO year, NO '26, NO numbers beside it), NEVER "China Creek" across the chest; the CHINA CREEK / LOCAL identity lives ONLY in the crest, badges, back nameplate and hem; any MADE ON / Vancouver Made branding stays small on tags and neck labels. THE TWO-DISTANCE TRICK is mandatory — at TV distance it reads as a premium, high-end, broadcast-ready city-pride home kit led by ONE hero element: an elegant tonal all-over pattern of nested skatepark bowl contours and coping curves; up close that pattern resolves into the defended-public-space payload, carried by small restrained marks (a tiny bylaw patch, a hem line, a tag), never a busy chest sticker. Strict palette: concrete grey #9aa0a3 (raw skatepark concrete), marker black #0a0a0a, caution yellow #f4c20d (city signage, the bylaw mark), creek teal #1f9e8a (coping line, accent) — plus brochure cream and gold for the "Skate Tourism" third kit only; no other colours. Texture register: premium high-end technical athletic apparel, editorial sports-fashion lookbook polish, refined and restrained with clean negative space; only a whisper of skate-concrete grit underneath (subtle griptape / concrete tone), never busy. HERO MOTIF (carries the whole kit): an elegant tonal all-over pattern of nested skatepark bowl contours and coping curves, thin caution-yellow and creek-teal line-art on the body. SUPPORTING MOTIFS, used SMALL and SPARINGLY: a clean bowl-and-coping crest; a discreet woven "NO SKATEBOARDING" bylaw patch (sleeve or tag, NEVER a large chest sticker); numbers built from coping curves; a small parks-permit closure-notice tag; a subtle skateboard-deck or bowl-coping trophy-misuse mark. Keep skateboard stickers, spray-stencil and zine collage to a MINIMUM — quiet accents only, never the focus. FIGURES: on flats and graphic elements, NO human figures — garments and objects only. On-body LOOKBOOK shots MAY show real models including faces, catalogue style; never a recognizable likeness of a specific named real person. ALWAYS punch UP at the bylaw, developers and monetization, never down at skaters, builders or youth. EVOKE the tournament and Olympic systems (host-city shield, broadcast/credential language, the trophy) but NEVER reproduce real FIFA marks, Olympic rings, real sponsor logos or any actual trademark. Avoid: busy sticker collage, competing graphics, newsprint chaos, cluttered surfaces, too many marks; also photo-realism, cartoon, clip-art, rainbow palettes. + + # --- Dark Crystal (hackathon project — neo-noir obsidian + punk collage, Order/Chaos duality) --- + # Locked-palette project signature style. Two composable poles: dark-crystal (Order, base) + # and dark-crystal-chaos (Chaos, additive variant — compose as dark-crystal+dark-crystal-chaos). + + dark-crystal: + name: "Dark Crystal (Order)" + description: "Obsidian neo-noir signature style, Order pole — glossy faceted black glass, blood-red trapped light, steel reflections, restrained" + suffix: | + Style guidelines: Dark Crystal Order-pole visual language — a faceted obsidian black-glass polyhedron or plane, aligned razor-straight facets, with blood-red light trapped inside the core or along a single seam, and cold steel highlights catching the facet edges. Strict locked palette only: obsidian-0 #05060A (deepest void), obsidian-1 #0C0E14, obsidian-2 #14171F (layered dark-on-dark, never a flat single black), bone #E8E4DA (off-white — never pure #fff), ash #8A8F9A (muted secondary), blood #E10600 (the ONE accent, rare and load-bearing — if everything is red, nothing is), blood-deep #7A0A0A (inner glow only), steel #B8C0CC (cold reflective edge highlight only). Composition: calm, precise, restrained, generous negative space, one strong focal form, near-still confidence. Texture: subtle film grain only — no collage, no halftone, no torn paper in this pole. Tone: neo-noir, premium, gallery-grade, "polished in the sense that cohesive and well thought out." Avoid: purple-blue glassmorphism or AI-brochure gradients, generic dark-mode SaaS panels, stock-tech clichés (glowing brains, circuit boards, robots, dashboards), cartoon or flat-vector illustration, any color outside the locked palette, pure white, baked-in text or logo marks, photo-realism of people. + + dark-crystal-chaos: + name: "Dark Crystal (Chaos)" + description: "Obsidian neo-noir signature style, Chaos pole (composable additive) — fractured facets, xerox collage, ransom-note type, RGB glitch, same locked palette" + suffix: | + Style guidelines: Dark Crystal Chaos-pole additive layer — the same faceted obsidian black-glass form now fractures: facets crack and shard, blood-red light flares wider and more violent through the breaks. Layer on analog-anarchy punk-collage texture: photocopy/xerox grain and halftone dot breakup, torn-paper and cut-paper collage edges with visible tape or glue, ransom-note / cut-and-mixed typography energy (only where text is requested), and digital-glitch artifacts — RGB channel split, scanline tears, tracking errors — cutting across the glass. Same strict locked palette as the Order pole ONLY: obsidian-0/1/2 near-blacks, bone (never pure white), ash, blood #E10600, blood-deep, steel — do NOT introduce hot pink, cyan, CMYK process colors, or any hue outside this set; this is not the general zine/cmvan palette, it stays inside Dark Crystal's own colors even at maximum chaos. Tone: handmade, scarred, urgent, "assembled at midnight," but never sloppy-random — the chaos is deliberate, the same discipline as the Order pole turned inside out. Compose with `dark-crystal` for full order-giving-way-to-chaos tension in one frame, or use alone for a pure-chaos facet/moment. Avoid: any color outside the locked palette, pure white, cartoon or flat-vector illustration, baked-in text or logo marks, generic zine/cmvan tropes (newsprint yellow, hot magenta) that break the Dark Crystal palette lock.