Commit Graph
24 Commits
Author SHA1 Message Date
ZacharyZhang-NYandClaude Opus 5.5 03e1f91706 Upgrade MyGo to v0.5.5
Elements are now pass-scoped value handles: tests that read bounds
after a frame bind a ui.Handle. pixel tells frames apart by the build
pass's root, since the Tester clock no longer moves on its own.

Fix the regressions the upgrade brought:
- Clipboard reads in input handlers go through c.Services().
- MyGo notes an overlay's opener after building it, so AutoFocus
  inside lost it; pixel.AutoFocus focuses through a Handle, and
  archtest bans the raw call. Dialogs hand the focus back again.
- Elements around a press stay hovered: Tooltip tells a press-given
  focus by focus arriving under the pointer.
- The web host moves the Tester clock with real time, at most 500 ms
  a call, and gives components the real clock.

The gallery's source index also accepts CRLF checkouts.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-17 01:31:08 -04:00
ZacharyZhang-NY 1f3d38110e One component per file; GAME OVER offers CONTINUE
PRD G1 asks for one component per file. Eight files held two or
three; their eleven extra components move to files of their own,
helpers stay where both sides use them, and an archtest now fails
any file that holds two.

PRD 4.4 and the request say an error always offers CONTINUE.
ErrorState's button read RETRY; it now reads CONTINUE, under the
CONTINUE? countdown, on the crash screen and the lost page alike.
2026-10-12 16:50:17 -04:00
ZacharyZhang-NY edee517e8d Write the README and third-party notices
The README says what 8bitMyGoUI is, in English with a Chinese
summary, and shows the gallery home in Winter Night. It covers
install, a first window, the eight palettes, the dot, locale and
Reduce Motion, the gallery and web commands, the showcase URL and
the 500 components by category. The example was compiled and
clicked headlessly in its own module; a gallery test keeps the
counts true to the registry.

THIRD_PARTY_NOTICES.md lists what the native gallery and the
showcase link, from go list -deps, each license copied verbatim:
MyGo, Ark Pixel Font, rsc.io/qr, go-text/typesetting,
golang.org/x/image, purego and Go itself.

AGENTS.md records the gallery sweeps, the console-error rule,
the budget test and what follows a third failed review.
2026-10-12 16:33:38 -04:00
ZacharyZhang-NY b4b4d67b92 Audit keyboard, focus, veils, motion and clocks across all 500
A cross-cutting pass, each fix with a test that failed first.

Veils: MyGo still hands a key to a base that turned off this frame,
so every element key now goes through pixel.Shortcut, which an
archtest enforces. Input handlers record and the build applies them
only while enabled; the editor turns away a veil-frame letter or
copy; value bases get a copy and keep only enabled turns. Popups
give a held focus back to their opener when the veil lifts.

Motion: S5 is enforced at the clock. Every Tick, Since, Step,
Toward and Shot runs at 4-15 fps; blinks keep 1 Hz on 4 fps steps,
fast animations step at 15, and drawn time is quantized to frames.

Clocks stepping back: Since holds at zero without overflow, and
k.Elapsed moves a stored start to now, so nothing goes negative,
runs backward or indexes out of range.

Also: logs count typed text instead of holding it, gallery names
use glyphs the font has, removable rows are keyed, components take
their own Options (archtest), and sweeps over all 508 demos check
veiled keys, clicks, wheels, the clock stepping back and names.
2026-10-12 16:03:04 -04:00
ZacharyZhang-NY 0e21870b64 Add media components 346-365; input.SlideBase, guarded Pad
An audio player with transport, scrubber and volume; an equalizer and
a visualizer; a playlist; a cassette, cartridge and record that turn
while they play and hold where they stop; piano keys, a step sequencer
and a tracker you can type into; a waveform, a 16:9 video frame, an
image compare, a gallery, a filmstrip, a record button and an FM tuner.

input exports SlideBase, the undrawn rail its sliders share; the
gallery treats exported Bases as building blocks, not components.
pixel's micro font gains '#' for notes like C#4. pixel.Pad and the
slide rail read input only while their base is enabled, so Inert or a
fresh Disabled stops a drag or a key already sent. AGENTS records why
a drawn container keeps the DISABLED description: MyGo paints a
disabled subtree at half opacity.
2026-10-12 06:17:12 -04:00
ZacharyZhang-NY 8be66c09f2 Add fx components 291-320 and the home scene; Kit.Shot, Kit.Toward
Palette cycling, sky, sun and moon, clouds, starfield, rain, snow,
petals, leaves, fireflies, waterfall, ocean, campfire, lava, aurora,
lightning, mountains and a season scene; scanlines, vignette, screen
shake, flash, dither fades, iris wipes, dissolves, mosaics, glitches,
sparkles, explosions and confetti. Home opens on a live scene in the
palette's season and a strip of all eight palettes.

pixel adds Canvas.Cycled, Sprite.At, SpriteOf, Kit.Toward and
Kit.Shot, which spends a cue under Reduce Motion so it never replays;
display exports Reduce. Gallery grids and the sidebar are one Tab
stop each.
2026-10-12 04:05:25 -04:00
ZacharyZhang-NY f48075230f Add game components 246-268; data.DrawSlot, Canvas.TextVeil
Health, mana and experience bars, quarter hearts, lives, a spinning
coin counter, score board, stage timer, minimap with fog, compass,
hotbar, paper-doll equipment, skill tree, skill buttons with cooldown
wipes, status effects, a boss bar, damage numbers, quest log and
tracker, party frames, character sheet, level-up screen and shop.
data exports DrawSlot so every slot looks alike; pixel adds TextVeil
for dissolving text. Messages the font cannot draw are fixed and
TestMessagesHaveGlyphs holds every message to the font.
2026-10-12 01:53:20 -04:00
ZacharyZhang-NY a2f2796455 Add datetime components 196-215; Kit.At; inert stepper arrows
Calendars, date and time inputs, pickers, clocks, timers, a sun dial,
a season wheel, an agenda and a day schedule. Kit.At rebuilds at a
moment (relative times, midnight). Stepper and NumberInput arrows stop
under Inert. DateInput parks a popup focus as its own.
2026-10-11 23:56:10 -04:00
ZacharyZhang-NY 5c3c883b7d Add overlay components 176-195; pixel Harbor and Kit.Cue
Dialogs on DialogBase with focusable panels that harbor parked focus,
popovers on PopoverBase, bubbles, drawers, sheets, a lightbox, an RPG
dialogue box, notifications, a pause menu and a dithered title card.
Kit.Cue moves from feedback to pixel.
2026-10-11 23:11:46 -04:00
ZacharyZhang-NY 03680980da Add data components 151-175; clear MyGo row highlights
Lists, tables, trees, grids, inventories and records in data/.
Outline and GridView build on ui.List: ui.Outline strokes its arrows
and ui.GridView spaces and tints items. The pixel theme keeps MyGo's
row highlights clear so scrolled rows stay on whole dots; off lists
take a veil against the wheel. Adds Canvas.Silhouette, SwitchOptions
Label and exports Rarity.Slot.
2026-10-11 22:29:07 -04:00
ZacharyZhang-NY f587d25a5a Add navigation components 131-150; pixel Pad, Finish, Park, Since 2026-10-11 21:27:09 -04:00
ZacharyZhang-NY bd3877e1b1 Add feedback components 106-130; inert scope, focus return, two-step deploy 2026-10-11 20:58:30 -04:00
ZacharyZhang-NY bce416182e Deploy in two steps so no page misses its files mid-rollout 2026-10-11 20:17:19 -04:00
ZacharyZhang-NY 03b789f533 Add input components 086-105; park focus off disabled controls 2026-10-11 20:13:21 -04:00
ZacharyZhang-NY 095eab2b4c Add input components 066-085; gallery chrome on real components; deploy warms the edge 2026-10-11 19:05:42 -04:00
ZacharyZhang-NY 0247a130f5 Add display components 041-065; move Icon into display; QR via rsc.io/qr 2026-10-11 18:37:54 -04:00
ZacharyZhang-NY 9a7f593892 Add layout components 001-020 with demos and behavior tests 2026-10-11 18:02:26 -04:00
ZacharyZhang-NY 3630bf2a27 Deploy to Cloudflare Workers: content-addressed assets, staged preview tests, rollback notes 2026-10-11 17:23:34 -04:00
ZacharyZhang-NY 83bc28c087 Add web host: wasm bridge, page shell, pixel GAME OVER, Playwright smoke tests 2026-10-11 17:15:37 -04:00
ZacharyZhang-NY d3b4adebb0 Add gallery app, native window and architecture tests 2026-10-11 16:45:34 -04:00
ZacharyZhang-NY a92829f353 Add pixel text editor and built-in messages 2026-10-11 16:15:27 -04:00
ZacharyZhang-NY 538031af31 Add pixel font, wrapping and micro font 2026-10-11 15:43:44 -04:00
ZacharyZhang-NY 1af6cd61bf Add palettes and frame settings 2026-10-11 15:31:34 -04:00
ZacharyZhang-NY 7dfb19d1a9 Bootstrap module, rules and license 2026-10-11 15:18:33 -04:00