# PUNK ROCK TOOLBOX — CHANGELOG

All notable changes to the Punk Rock Toolbox are documented here.
Format: `[version] — date — description`

---

## [0.10] — 2026-10-06 — Collage + Mobile Print

**New: [07] Collage (desktop)**
- Cut-and-paste collage from public-domain / CC0 archives (Wikimedia Commons + Openverse), or your own scans. Cutting is by hand or procedural only — lasso/polygon, key out a colour, multiply, drop white/black, torn / deckle / scissor / stamp edges. No AI.
- 10 looks from the shared Collage Studio engine (Xerox Zine, Scrapbook, Gilliam, Monty Python Sky, Riso Poster, Newsprint Ransom, Archive Film, Cyanotype Dream, Postal, VHS Bootleg).
- Prints through the shared PRINT section: flyer on Letter / A4 / A5 / 11×17 at 300 dpi, HOME PRINTER or PRINT SHOP (pieces run into the bleed, crop + registration marks), PDF + PNG, copy-shop 2/4/8-up sheets, QR code; 8-page zine in printer order, reading order or one-sheet mini-zine.
- PRINT DOTS: halftone and riso dots print at 45 / 55 / 65 lpi (default 55) instead of the ~14 lpi screen dots; AS ON SCREEN keeps the old look.
- Riso separations: one PNG per ink at real page size, marks on every plate, overprint preview.
- Credit line for archive images on the flyer / zine back page (on by default) and in the PDF properties; credits list as .txt.
- Pipes in and out: Xerox, Flyer BG, Zine; Ransom and Xerox output come back in as pieces.
- Engine copied from Collage Studio (draw / fx / hand only) with `scripts/export-engine.js --files draw.js,fx.js,hand.js`. Desktop page grows to ~700 KB.

**Mobile catches up**
- Zine: real 300 dpi export (not the preview blown up), cover image upload, SPREADS, PDF on Letter / A4 in printer order, reading order or mini-zine, long-edge option.
- Flyer: PRINT · 300 DPI panel (Letter / A4 / A5 / 11×17 — 11×17 at 250 dpi on phones), home printer or print shop with bleed + crop marks, QR code, copy-shop sheets, social 1080 sizes.
- Xerox: 2× / 3× re-dithered at the bigger size, 2-plate screen-print separations.
- Venue Vision: looping GIF export, small by default (320 px, one beat).
- Remembers each tool's last image and the flyer header / background after the phone reloads the tab; ⚙ Reset forgets them.
- English / Español switch in ⚙ Settings (follows the phone's language the first time).
- Stencil: SVG export (with a too-detailed guard) and settings that survive a reload.
- Xerox → FLYER BG pipe; the hub labels HEADER vs BG.
- ↓ ALL exports every tool at once (one iPhone share sheet when supported), skipping empty tools.
- PDF and GIF libraries load only on first use, with a clear message when offline; iPhone saves use the share sheet, with a one-tap SAVE bar if a slow export loses the tap.
- Every export stays under iPhone's ~16.7 MP canvas limit.
- Diagnostics shows language, remembered-image size, size cap, loaded libraries and the last export.

**Zine text (desktop + mobile)**
- Page text wraps to the page, keeps your line breaks, splits overlong words and shrinks to fit (down to 7 pt); the editor warns when text is cut off.
- Page numbers moved to a tab in the bottom outer corner, clear of the text.
- No more grey outline on printed pages (it's a screen guide only).
- Headings print in the font's real bold; fonts are loaded before every export.
- XEROX cover prints sharp at 300 dpi.
- MASTER and SPREADS export at the real page size and chosen dpi.
- Mini-zine: page numbers, text and the cover sit ≥0.27" from the sheet edges so home printers don't clip them.
- Mobile: a page can hold a picture and text together.

**Fixes**
- [05] Flyer now really prints in Courier Prime (the font was never loaded, so it fell back to Courier New).
- Venue Vision SWEEP no longer errors at the start and end of each beat (mobile).

**Known gaps**
- [07] Collage is desktop-only, and its panel text is English-only.
- Museum archives (Art Institute of Chicago, Met, Cleveland, NASA) stay off: their images can't be used in a browser without a proxy, which isn't shipped.
- jsPDF still loads from a CDN, so the first PDF needs a connection.
- Not yet checked on a real iPhone / Android or on paper.

---

## [0.9] — 2026-10-06 — Print-Ready

**Fixes**
- Desktop start-up crash: `applyLang()` wrote to the removed `#gateLangBtn`, so everything after it in BOOT never ran (blank ransom/flyer previews, dead COPY buttons, empty pipe hub, no slider fills). Also ships the `znMasterTimer` fix that was on main but never deployed.
- Venue Vision GIF export: gifenc now loads from jsDelivr (`gifenc.esm.js` 1.0.3); the old unpkg URL 404'd.
- Xerox → STENCIL and → ZINE send buttons added on desktop (the receivers already existed).
- Removed the "works offline / install to home screen" claims — no service worker is registered yet.

**[05] Punk Flyer — print**
- PRINT · 300 DPI: Letter, A4, A5, 11×17. HOME PRINTER (¼" safe edge) or PRINT SHOP (⅛" / 3 mm bleed + crop and registration marks). PDF at true page size and 300-dpi PNG. Re-rendered at print size, not upscaled.
- QR code (tickets / Bandcamp): offline, inlined qrcode-generator 1.4.4 (MIT); size warning under 0.8".
- Copy-shop sheet: 2 / 4 / 8 up on Letter or A4 with cut marks.
- Social: 1080×1350, 1080×1440, 1080×1920.

**[06] Zine-Math — print**
- PDF honours the 150 / 200 / 300 DPI picker (was always 96) and adds Letter alongside A4.
- PDF ORDER: PRINTER ORDER (fold + staple, duplex short edge; long-edge option), READING ORDER, and one-sheet MINI-ZINE with cut/fold guides.

**Desktop layout**
- PIPES button floats again; tooltips styled; value boxes fixed width; all six Xerox tabs visible; riso chips/dither grid/sliders fit the card; [02]/[03] side by side only from 1200px; WCAG AA text contrast; lime keyboard focus ring; missing XEROX.WARP label (EN/ES).

**Mobile**
- Venue Vision (`mblEmpty`) and Zine (`mznSheet`) crashes fixed; ZINE/FLYER/VENUE → XEROX pipes go to the right place.
- iPhone saves open the share sheet (Save Image → Photos); COPY falls back to a PNG save; COPY on Ransom and Stencil.
- Keyboard no longer reshuffles Ransom; nav hides while typing; slider work capped per frame; unreadable files show an error.
- 44px tap targets, 16px inputs (no iOS zoom), notch-safe top bar; pop-up notes restyled so they don't look like buttons.
- ⚙ Settings: Reset mobile settings + Diagnostics (copyable).

**Known gaps**
- Mobile still lacks GIF, Xerox plates/2×/3×, Stencil SVG, Zine spreads/cover/PDF, EN/ES, Export All. The 0.8 note below overstated mobile parity.
- jsPDF still loads from a CDN, so PDF export needs a connection.

---

## [0.8] — 2026-05-01 — Mobile Feature Parity

Mobile now matches the desktop tool feature-for-feature across all 6 tools. The mobile build is no longer a stripped-down subset.

**[02] Xerox Processor**
- 9 dither modes (was 5) — added STUCKI, BURKES, SIERRA, ORDERED
- 11 paper textures — NONE / NEWS / XEROX / RISO / KRAFT / LINED / GRAPH / LEDGER / HALFTONE / BLEACH / RISO-GRAIN
- 6 RISO ink presets as tappable chips — FLURO PINK, FEDERAL BLUE, HUNTER GREEN, SUNFLOWER, SOY, BRICK RED
- 14 duotone palette pairs as tappable chips — VIOLET NOIR, KRAFT · FLUO, FOREST · MINT, etc.
- Full duotone panel — ink1 / ink2 color pickers + density slider
- Tint blend modes — PAPER / INK / WASH
- Process additions — EXPOSURE, EDGE CRUNCH, WARP AMP, WARP FREQ + Liquid Wave preset
- Effects expansion — scanline spacing/opacity sliders, hard-scan toggle, slits, streaks
- Pipeline order matches desktop byte-for-byte

**[05] Punk Flyer**
- Two new layouts — RIOT (diagonal band name + accent stripe) and BROADSIDE (3-zone letterpress)
- Typography panel — band-name size multiplier, accent color picker, uppercase toggle
- Dark / light paper toggle
- Background image upload (full-bleed, dimmed)
- Extra info field

**[01] Bar-Light / Venue Vision**
- Beam width slider (sweep animation)
- Scan width slider (scan animation)
- All settings persist across reloads

**[03] Ransom Note Engine**
- Format selector — WIDE / SQUARE / TALL (changes canvas aspect)
- Independent text fields per mode (LETTER vs WORD)

**[06] Zine-Math**
- Per-page font size — SMALL / MEDIUM / LARGE
- Per-page text alignment — LEFT / CENTER / RIGHT
- Export DPI selector — 72 SCREEN / 150 PRINT / 300 HD

**[04] Stencil Press** — already at parity, unchanged.

**Project housekeeping**
- Centralized into `LAHACIENDA TOOLS/PUNK ROCK TOOLBOX/` (was top-level `PUNK ROCK TOOLKIT`)
- Skill docs + LAB project + launch.json updated
- Stopped maintaining the legacy iCloud mirror

---

## [0.7] — 2026-04-30 — Mobile Portrait Pass

- New 3-state bottom sheet — **PEEK / HALF / FULL** — drag handle or tap to cycle
- HALF is the default — all controls visible (RISO, dither, blend modes, animations, etc. — nothing hidden)
- Always-visible **primary controls** strip at the top of every sheet: Bar-Light (color + opacity), Xerox (dither + threshold), Ransom (text), Stencil (threshold + bridge), Flyer (band name), Zine (cover style) — most-used controls now sit above the scroll instead of buried
- PEEK state available on demand for canvas-heavy editing — drag handle down or tap to cycle
- Shrunken chrome in portrait — top bar 36→30px, bottom nav 60→52px
- Sheet state persists per tool in `localStorage` (`prtb_m_sheet_<tool>`)
- Live rotation handling — primary stays accessible in landscape; portrait state preference preserved across orientation changes
- Coral handle indicator at PEEK to signal "drag up for more"

---

## [0.6] — 2026-04-29 — Alpha Launch
**🚀 Deployed to [punkrocktoolbox.netlify.app](https://punkrocktoolbox.netlify.app)**

- Gate removed — open access, no email or key required
- Interactive landing page with live demos for all 6 tools
- `netlify.toml` with security headers + aggressive asset caching
- Short URL redirects: `/app`, `/desktop`, `/mobile`, `/m`
- OG image (1200×630) for social sharing
- PWA manifest for mobile home screen install
- `robots.txt`, `sitemap.xml`, `404.html`

---

## [0.5] — 2026-04-28 — Interactive Landing Page

- New `index.html` — single-page landing with 6 live tool demos
- [01] Venue Vision: cursor-tracked spotlight on real ZETA flyers
- [02] Xerox: direct dither controls + 4 RISO ink palettes, concert photo source
- [03] Ransom Note: type-anything live preview with randomize
- [04] Stencil: drag-threshold with real concert photo, click to upload
- [05] Flyer: 4-layout live builder with download
- [06] Zine: full fold-layout spread mockup (4 or 8 pages)
- All assets centralised in `/Users/gonz/GONZ:CLAUDE CODE/PUNK ROCK TOOLKIT/`
- Netlify deploy infrastructure set up

---

## [0.4] — 2026-04-27 — Mobile Version

- New `punk-rock-toolbox-mobile.html` — dedicated mobile-first file
- Full-screen canvas per tool, bottom-sheet controls, drag handle
- 7-tab bottom nav (6 tools + PIPES)
- Camera capture (`capture="environment"`) on Xerox, Stencil, Venue Vision
- ⎘ COPY to clipboard on all tools
- Per-tool sheet default heights via `data-sheet-height`
- PWA meta tags, safe-area padding for iPhone home indicator
- Tool fade transitions, pipe dots on nav tabs

---

## [0.3] — 2026-04-25 — Tropical Punk Design System

- Full design system migration: Space Grotesk + Epilogue fonts
- Color system: coral `#ff5f49`, lime `#c8cf00`, dark `#131313`
- Section heads with coral left border + lime `[NN]` numbers
- Nav bar: single scrollable row, lime underline active state
- Collapsible header on scroll, section open/close indicators
- CRT scanline overlay, input focus flicker, button jitter animations
- Gate screen redesigned: grain texture, coral stripes, lime badge
- Dark-first by default (`persistGet('darkMode', true)`)
- ⎘ COPY buttons on all tool exports
- `safeLoadImage()` — validates 8MB limit, downscales > 1600px

---

## [0.2] — 2026-04-20 — Six Tools

- **[01] Venue Vision** — Bar-Light Stress Tester with BPM, 5 animation modes, animated GIF export
- **[04] Stencil Press** — 1-bit threshold, bridge algorithm, SVG export
- **[06] Zine-Math Template** — 4 cover styles, 4/8-page layout, spreads PNG + PDF
- Pipe system expanded: 12 routes connecting all 6 tools
- Xerox: Void Dot halftone mode, Exposure slider, Riso Grain texture
- Flyer: RIOT + BROADSIDE layouts, font size multiplier, accent colour picker
- Ransom Note: WIDE / SQUARE / TALL canvas formats
- Bar-Light preset bank (3 slots)
- Zine stats panel (word count, pages filled)

---

## [0.1] — 2026-02-01 — Initial Build

- **[02] Xerox Processor** — 8 dither modes (1-BIT, Floyd-Steinberg, Atkinson, Stucki, Burkes, Sierra, Bayer 8×8, Ordered 4×4), grain, scan lines, toner streaks, duotone, RISO ink presets, 10 paper textures
- **[03] Ransom Note Engine** — letter/word randomisation, rotation, size variation, colour modes
- **[05] Punk Flyer Quick-Build** — Classic, Minimal, Chaotic layouts, venue/date/support fields
- Pipe system: XEROX ↔ FLYER ↔ RANSOM
- LocalStorage persistence with `prtb_` namespace
- Bilingual EN/ES support
- Gate screen (email or Patreon key access)
- Dark mode (D key toggle)
- Keyboard shortcuts overlay
- Export PNG at 1×/2×/3× scale, PLATES screen-print export
