PUDGE/UI v0.2.1 2025-07
  • + 5 new hardware compositions: Walkman Deck (Sony WM-D6C), Game Boy (Nintendo DMG-01), DJ Controller Deck (Pioneer DDJ), Synthesizer Panel (Roland SH-101 / Moog Minimoog)
  • + Changelog page at /changelog with full version history
  • + Animated NEW badge on recently added specs and compositions
  • + LCD-style version update banner with per-version dismiss
composition phosphor-screen

Camera Viewfinder HUD

M SS 1/250 F f/2.8 ISO ISO 800
REC
EV ±0
AF ●
TC 00:00:00

Description

Full-frame camera electronic viewfinder overlay. Components are positioned absolutely over a dark background, simulating the heads-up display (HUD) seen through a mirrorless camera EVF (Electronic Viewfinder). All readouts float over the live image without obscuring it.

Reference Devices

Sony Alpha A7 III/IV EVF, Nikon Z6/Z8 EVF, Canon EOS R5 EVF, Fujifilm X-T4 EVF.

Layout

┌─────────────────────────────────────────────┐
│ [mode-badge:M] [readout:SS] [readout:F] [readout:ISO]  [status-chip:REC] [battery] │
│                                             │
│                                             │
│              [focus-brackets]               │
│                  [grid-overlay]             │
│                                             │
│                                             │
│ [exposure-scale ─────●─────]  [timecode:00:12:34] │
└─────────────────────────────────────────────┘

Assembly Rules

  1. Container: Use .panel with phosphor-screen material (background: linear-gradient(180deg, #080808, #111)). Padding: 0. Overflow: hidden.

  2. Top status bar: Horizontal flex row with justify-content: space-between. Contains:

    • Left group: mode badge (compact, padding: 3px 8px), camera readouts (.inline variant, padding: 3px 8px)
    • Right group: status chip (.active, small font 8px), battery icon
    • Separated by border-bottom: 1px solid #222
  3. Viewfinder area: Relative positioned div, minimum height 180px, background: #1a1a1a. Contains:

    • Grid overlay lines at 33.3% and 66.6% (vertical and horizontal)
    • Grid center dot
    • Focus brackets positioned within the area
  4. Bottom bar: Horizontal flex row with justify-content: space-between. Contains:

    • Exposure scale (compact, width: 120px)
    • Timecode display (compact, padding: 3px 10px, font-size: 14px)
    • Separated by border-top: 1px solid #222
  5. All readouts use .inline variant — horizontal layout for compact display

  6. Focus brackets default to one acquiring + one locked for visual variety

Component Configuration

Component Variant Size Override
mode-badge compact font-size: 16px on mode letter, padding: 3px 8px
camera-readout .inline font-size: 12px on value, font-size: 7px on label
status-chip .active font-size: 8px, padding: 2px 6px
battery-icon default width: 20px, height: 10px on body
exposure-scale compact width: 120px
timecode-display compact font-size: 14px on segments, padding: 3px 10px
focus-brackets mixed One .acquiring, one .locked

Constraints

  1. MUST render in landscape — a portrait viewfinder is physically impossible for a camera HUD.
  2. Focus brackets MUST be visible over the scene area — they are the primary interaction element.
  3. REC indicator MUST blink when recording — a static REC chip reads as inactive.

Interactivity

  1. REC button: Click to toggle recording state on/off. When recording: REC chip blinks, timecode auto-increments every second, a thin red border appears around the viewfinder area.
  2. Mode badge: Click to cycle through shooting modes: M (Manual) → A (Aperture Priority) → S (Shutter Priority) → P (Program).
  3. Shutter speed (SS) readout: Click to cycle through common shutter speeds: 1/30 → 1/60 → 1/125 → 1/250 → 1/500 → 1/1000.
  4. Aperture (F) readout: Click to cycle: f/1.8 → f/2.8 → f/4 → f/5.6 → f/8.
  5. Focus brackets: Click anywhere in the viewfinder area to reposition the center focus brackets to the clicked location. Triggers a brief "acquiring" animation (amber pulse) followed by "locked" state (green, solid).
  6. Exposure scale: Click left/right of center to shift EV value (−2 to +2), updating the indicator position and EV label.

Components Used

Hand it to your agent

This is a multi-component assembly spec — pass it to your coding agent along with the foundation specs to build the complete interface in any framework.

Compositions show how components assemble. Give the full spec to your agent.

Pudge