Visual system reference plus eight screens for the .pepe name manager: Discover, My Names, DNS, SSL (issued + empty), Add/Edit record modals, and first-run consent. Swamp-dark pepe palette (#191A16 surfaces, #77C25B accent green, #9CB856 olive status, #D97757 danger); Patrick Hand for UI voice, Space Mono for data. Screens drawn at 920×660. Static mockups — no interactivity wired. See README.md for implementation notes.
Visual system — palette, type, shapes on #191A16
Discover · generated identicon art (no site fetch) · description from owner TXT (2-line clamp) · name-only / lapsed / info-only states · health in the balance dropdown · degraded note in status bar
My Names · DNS + SSL per row (approved) · a queued op temporarily changes the badge & disables actions · sticky bar carries Renew / Transfer / Release via overflow · op readout in status bar
DNS (per-name) · edit = overwrite (delete lives in the edit modal) · _443._tcp TLSA row greyed / system-managed · TXT _site holds the Discover description · status in footer
SSL (per-name) · a certificate LIST, not one cert · default apex entry (gm.pepe + *.gm.pepe) + per-subdomain entries · each entry has its own pin strip (3 states), KEY PIN (TLSA 3 1 1) & Export bundle · self-signed · DANE · Create free & auto-publishes the pin
SSL · empty state (no cert yet) · Create panel is the page focus · Active panel shows a dashed placeholder
Add record · live PREVIEW dry-run · inline VALUE validation error · passive over-80-byte hint · SRV tucked under “more…”
Edit record · same modal, pre-filled · edit = overwrite (latest wins) · delete = publish empty record, destructive action bottom-left
First-run consent · one admin prompt · scope promise (.pepe ONLY) · what it installs (root · resolver · port redirect) · “skip for now” path