Commit Graph

8 Commits

Author SHA1 Message Date
evan 4b89b27947 feat(ui): size a grid to the app's box, not the panel
Chrome takes the top of the panel before an app builds anything, and layout
has not run yet when it does, so ui.frame() reports what the mount left it.
2026-08-04 21:15:21 -04:00
evan 3f26c4ff10 feat(ui): one mounted tree instead of a screen object per build
Chrome and the app now share a tree, so a screen is no longer something an
app constructs and holds: ui.mount() takes the function that builds the
whole thing and ui.rebuild() runs it again. Building a node after layout
is refused rather than silently resetting the arena under the panel.
2026-08-04 20:53:15 -04:00
evan e85adfa757 feat(settings): persist the theme through the settings binding
The palette lives in Lua, so C++ stores the name only and ui.setTheme()
writes through here before rebuilding and repainting.
2026-08-04 20:44:08 -04:00
evan 291f0f20b5 build: add a format target and one shared editor config
The Lua modules were split between tabs and spaces because nothing pinned a
style; .editorconfig is what lua-language-server reads on save, so the editor
and the tree now agree. clang-format already had a config and left native/
unchanged. Embedded modules regenerate from the reformatted ui.lua.
2026-08-04 13:19:58 -04:00
evan 3416f54c83 feat(ui): widen cards to a 2/3 column grid and add a disabled role
Two columns portrait and three landscape read better than 3/4 on a 320x480
panel. The new disabled palette role sits between face and muted, for a
control that is present but inactive.
2026-08-04 13:10:05 -04:00
evan 2255fe214e feat(ui): let a widget opt out of the pressed style
A custom node that paints its own key highlight does not want the whole
node marked dirty on every press.
2026-08-03 18:24:51 -04:00
evan 40f7a3e4ca feat(ui): add cardSide grid helper
Square-card grids reflow on rotation, and the arithmetic is the same in
every app that draws one.
2026-08-03 18:18:02 -04:00
evan 95fa512047 initial commit 2026-08-03 17:46:14 -04:00