|
| 1 | +# Gonzo UI Manifest — fear and loathing of traditional chrome |
| 2 | + |
| 3 | +**Status:** Constitutional design notes for MicropolisCore UI modules |
| 4 | +**Monorepo:** MicropolisCore |
| 5 | +**Companion docs:** [classical-hci-vs-aesthetic-ui.md](classical-hci-vs-aesthetic-ui.md) · [designing-inward-miyamoto-principles.md](designing-inward-miyamoto-principles.md) · [piecraft/README.md](piecraft/README.md) · [../notes/PIE-TAB-WINDOWS.md](../notes/PIE-TAB-WINDOWS.md) · [virtual-pointer-and-pie-cursors.md](virtual-pointer-and-pie-cursors.md) · [map-compositing-and-measurement.md](map-compositing-and-measurement.md) · [ui-frame-nine-slice.md](ui-frame-nine-slice.md) · [simcity-tool-palette-design.md](simcity-tool-palette-design.md) |
| 6 | + |
| 7 | +> *Gonzo Interface Design* — UI that reports from **inside** the interaction: subjective, stunt-capable, sincerely weird. Journalism’s immersion crossed with stagecraft’s commitment. No borrowed trademarks. No borrowed mascots. Nap left on the felt. |
| 8 | +
|
| 9 | +--- |
| 10 | + |
| 11 | +## Why this file exists |
| 12 | + |
| 13 | +MicropolisCore’s interaction stack — pie menus, tabbed stacks, tile views, overlays, measures, direct manipulation — inherits two shop names and one method: |
| 14 | + |
| 15 | +1. **Shop name (history).** Inside *The Sims* Framework, the Windows UI shell was codenamed **Gonzo** (`gonzo.h`, `Gonzo::Main`, Win32 class `"Gonzo"`, `GZ*` types; companion umbrella **Rizzo**). It was never a consumer SKU. Reusing the word here reclaims an insider label the way **Micropolis** reclaimed the city sim after **SimCity** stayed trademarked — different legal story, same instinct: keep the name that meant something in the room. |
| 16 | +2. **Method (HST).** [Gonzo journalism](https://en.wikipedia.org/wiki/Gonzo_journalism) puts the reporter *in* the story; subjectivity is the instrument. Gonzo UI puts the **designer and the user’s nervous system** in the chrome — splash text, honest errors, present-tense mess — instead of fake-objective system voice. |
| 17 | +3. **Stagecraft (felt creatures).** Handmade performance that invites empathy: soft edges, visible seams, earnest absurdity. **Felt creatures** is the K-line — *felt* the material and *felt* the verb. The audience completes the creature. Sims diamonds and need bars already run on that economy. Gonzo UI refuses to sand the nap off until feelings can’t stick. |
| 18 | + |
| 19 | +This manifesto does **not** ship Muppet characters, logos, or likenesses. The inheritance is craft energy, not franchise IP. |
| 20 | + |
| 21 | +Gonzo UI is **not** an excuse to abandon classical HCI. It sits *beside* Shneiderman / Tog / Weiser: [classical-hci-vs-aesthetic-ui.md](classical-hci-vs-aesthetic-ui.md) keeps **visible state, feedback, reversibility**. Aesthetic-minimalist UI hid state and called it calm. Gonzo UI makes state *felt* — legible *and* inhabited. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +## Fear and loathing of traditional UI design |
| 26 | + |
| 27 | +What we refuse (the Las Vegas of chrome): |
| 28 | + |
| 29 | +| Traditional habit | Why we loathe it | |
| 30 | +|-------------------|------------------| |
| 31 | +| Invisible “professional” chrome | Lies about authorship; trains users that software has no taste | |
| 32 | +| Objective system voice | “An error has occurred” — the computer gaslights while drowning | |
| 33 | +| Usability as sterilization | Removes every cue that would let empathy and muscle memory grow | |
| 34 | +| Retro in quotation marks | Irony-poisoned nostalgia; costume without commitment | |
| 35 | +| Screenshot-first design | Ships the Q3 keynote still; users inherit the hangover | |
| 36 | +| Hidden gesture modes | Modes without handles; calm tech misread as illegibility | |
| 37 | +| Dashboard voyeurism | Watching numbers instead of grabbing the world | |
| 38 | +| Error shame | Red banners that punish exploration | |
| 39 | + |
| 40 | +**Fear:** shipping another strip of flat blue pills that could belong to any SaaS. |
| 41 | +**Loathing:** pretending the city under the cursor is a spreadsheet with a theme pack. |
| 42 | + |
| 43 | +--- |
| 44 | + |
| 45 | +## The muppetry of Gonzo UI (no trademarks) |
| 46 | + |
| 47 | +Stagecraft rules we *do* keep: |
| 48 | + |
| 49 | +- **Commitment to the bit.** If the shell is playful, go all the way — splash text, nine-slice frames, talking pie labels — no apologetic “ironically retro.” |
| 50 | +- **Stunt affordances.** Pie menus are the high-dive: showy, learnable, a little dangerous, memorable when you stick the landing ([gesture-space-and-pie-menus.md](gesture-space-and-pie-menus.md)). |
| 51 | +- **Category refusal.** A toolkit that is theme *and* holodeck *and* fan-culture joke without needing a solemn product category first. |
| 52 | +- **Failure as entertainment.** Missed slices, invalid placement bounce, comic empty cards — charm, not shame. |
| 53 | +- **Felt creatures.** Leave nap. Sparse signals, fat projection. The user finishes the feeling. |
| 54 | + |
| 55 | +--- |
| 56 | + |
| 57 | +## Constitutional directives |
| 58 | + |
| 59 | +1. **LEAN INTO the hands.** Design inward from the gesture (Miyamoto / [designing-inward-miyamoto-principles.md](designing-inward-miyamoto-principles.md)); Gonzo adds: the face in the splash text is allowed to smirk. |
| 60 | +2. **Visible state, inhabited.** Classical HCI visibility + subjective host voice. Never hide a scrollbar to look modern. |
| 61 | +3. **Direct manipulation first.** Continuous representation, rapid reversible incremental feedback ([Shneiderman](https://en.wikipedia.org/wiki/Direct_manipulation_interface)). Gonzo means the *feedback has character* — bounce, blink, label — not that we replace DM with forms. |
| 62 | +4. **Pies saturate gesture space.** Prefer self-revealing radials over blind multitouch counts ([automotive-touch-ui-vs-pie-menus.md](automotive-touch-ui-vs-pie-menus.md)). |
| 63 | +5. **Tabs and stacks are HyperCard with nap.** Cards on any edge; pie on the tab without raising the wrong overlay ([PIE-TAB-WINDOWS.md](../notes/PIE-TAB-WINDOWS.md)). |
| 64 | +6. **Maps are places, not charts.** Zoom, pan, and overlays should feel like moving a camera through a city — measures are costumes the world wears ([map-compositing-and-measurement.md](map-compositing-and-measurement.md)). |
| 65 | +7. **No EA assets in the kit.** Themes may *evoke* Sims-era shell language; ship no copyrighted art. Users bring their own game files and screenshots. |
| 66 | +8. **Name decompresses.** *Gonzo Pie Menus*, *Gonzo Tabbed Windows* — HST + shop history. Package ids may stay `gonzo-*` / `GZ` without requiring a Disney story. |
| 67 | + |
| 68 | +--- |
| 69 | + |
| 70 | +## Applied: fear/loathing vs Gonzo, by module |
| 71 | + |
| 72 | +### Direct manipulation |
| 73 | + |
| 74 | +| Fear & loathing | Gonzo | |
| 75 | +|-----------------|--------| |
| 76 | +| Property sheets for everything that should be a drag | Grab the object; the world answers under the cursor | |
| 77 | +| Commit dialogs for incremental edits | Continuous representation; undo is the safety net | |
| 78 | +| Ghosts that lie about validity | Invalid placement *bounces* with a readable reason | |
| 79 | + |
| 80 | +### Pie menus |
| 81 | + |
| 82 | +| Fear & loathing | Gonzo | |
| 83 | +|-----------------|--------| |
| 84 | +| Linear menus that waste gesture space | Radial slices; angle-at-release; mouse-ahead rehearsal | |
| 85 | +| Icons without rehearsal path | Self-revealing wedges; talking labels when voice helps | |
| 86 | +| Patent FUD paralysis | Ship the interaction; see [pie-menu-patent-fud.md](pie-menu-patent-fud.md) | |
| 87 | + |
| 88 | +Modules: `PieMenu.svelte`, PieCraft model, holodeck pie plugin, [virtual-pointer-and-pie-cursors.md](virtual-pointer-and-pie-cursors.md). |
| 89 | + |
| 90 | +### Tabbed windows / stacks / cards |
| 91 | + |
| 92 | +| Fear & loathing | Gonzo | |
| 93 | +|-----------------|--------| |
| 94 | +| Single top tab strip as religion | Tabs on **any** edge; stacks that float and dock | |
| 95 | +| Modal dialogs that trap the city | Cards that peel into overlay floats and return | |
| 96 | +| Chrome that ignores the chat nexus | Chat + sim messages as actionable navigation | |
| 97 | + |
| 98 | +See [PIE-TAB-WINDOWS.md](../notes/PIE-TAB-WINDOWS.md). |
| 99 | + |
| 100 | +### Tile views / mapping / zoom / scroll |
| 101 | + |
| 102 | +| Fear & loathing | Gonzo | |
| 103 | +|-----------------|--------| |
| 104 | +| Zoom that loses the cursor’s meaning | Zoom around the point of interest; tile-frame cursor stays honest | |
| 105 | +| Scrollbars deleted for “clean” | Scrollbars as felt handles; autoscroll that respects the pie | |
| 106 | +| Minimap as unread decoration | Minimap rectangles you can drag — cameras you can grab | |
| 107 | + |
| 108 | +`TileView`, editor vs map cards, pinned live views (helicopter/monster). |
| 109 | + |
| 110 | +### Overlays / data visualization |
| 111 | + |
| 112 | +| Fear & loathing | Gonzo | |
| 113 | +|-----------------|--------| |
| 114 | +| Detached chart dashboards | Metrics as **costumes on the map** — MOP/color planes composited in place | |
| 115 | +| Legend in a PDF | Legend as cursor/palette language ([ui-frame-nine-slice.md](ui-frame-nine-slice.md), tool palette borders) | |
| 116 | +| One overlay to rule them all | Stackable planes; measures as bindable JSON props | |
| 117 | + |
| 118 | +See [map-compositing-and-measurement.md](map-compositing-and-measurement.md), sprite overlay playbooks. |
| 119 | + |
| 120 | +### Tool palettes / cursors |
| 121 | + |
| 122 | +| Fear & loathing | Gonzo | |
| 123 | +|-----------------|--------| |
| 124 | +| Flat icon grids with no cost language | Totem-pole palette; icon size ↔ cost; border = cursor legend | |
| 125 | +| System arrow for every tool | Tool cursors as characters in the scene | |
| 126 | + |
| 127 | +See [simcity-tool-palette-design.md](simcity-tool-palette-design.md). |
| 128 | + |
| 129 | +--- |
| 130 | + |
| 131 | +## Naming |
| 132 | + |
| 133 | +| Use | Form | |
| 134 | +|-----|------| |
| 135 | +| Manifest / philosophy | **Gonzo UI**, *Gonzo Interface Design* | |
| 136 | +| Features | Gonzo Pie Menus, Gonzo Tabbed Windows, Gonzo Tile Views | |
| 137 | +| Code / packages | `gonzo-*`, `GZ` prefix where it echoes Framework history | |
| 138 | +| Public story | HST method + Maxis shop codename + felt-creature craft | |
| 139 | +| Never | Muppet characters, logos, “official” franchise cosplay | |
| 140 | + |
| 141 | +Micropolis renamed the *city* product. Gonzo names the *hands* — the shell you feel with. |
| 142 | + |
| 143 | +--- |
| 144 | + |
| 145 | +## Relationship to other constitutions |
| 146 | + |
| 147 | +```text |
| 148 | +Miyamoto (hands/face inward) ──┐ |
| 149 | +Classical HCI (visible state) ─┼──► Gonzo UI (inhabited, stunt-capable chrome) |
| 150 | +Felt-creature stagecraft ──────┘ |
| 151 | + │ |
| 152 | + ▼ |
| 153 | + PieCraft · PIE-TAB-WINDOWS · TileView · Overlays · Holodeck |
| 154 | +``` |
| 155 | + |
| 156 | +If a change makes the city harder to *feel with*, it fails this manifest even if it screenshots cleaner. |
| 157 | + |
| 158 | +--- |
| 159 | + |
| 160 | +## K-lines |
| 161 | + |
| 162 | +- **GONZO-UI** — invoke this file |
| 163 | +- **FELT CREATURES** — material *and* empathy; leave nap |
| 164 | +- **FEAR AND LOATHING** — refuse sterilized chrome and gaslight errors |
| 165 | +- **STUNT AFFORDANCE** — pies, bounce, talking labels |
| 166 | +- **INHABITED CHROME** — authorship visible; splash text allowed to smirk |
0 commit comments