diff infinite_canvas/README.md @ 278:8d560f50ed4c

Improve infinite canvas interactions and browser chrome Render Lucide icons directly with Raylib, add searchable icon browsing, robust text editing, entity lifecycle animations, z-order-safe input, semantic themes, and animated editable browser controls. Document rendering, pinning, context, and component extension for future agents. Co-authored-by: Copilot <[email protected]> Copilot-Session: f68442b1-fa8f-46a0-9689-81710613bbd4
author MrJuneJune <me@mrjunejune.com>
date Mon, 17 Aug 2026 22:16:14 -0700
parents b55c22cff335
children 49e9e591c9bb
line wrap: on
line diff
--- a/infinite_canvas/README.md	Mon Aug 17 17:01:40 2026 -0700
+++ b/infinite_canvas/README.md	Mon Aug 17 22:16:14 2026 -0700
@@ -35,15 +35,21 @@
 ## Controls
 
 - Middle-mouse drag, or Space + left-mouse drag: pan
-- Mouse wheel: zoom around the cursor
+- Mouse wheel: scroll vertically
+- Ctrl/Cmd + mouse wheel: zoom around the cursor
 - WASD or arrow keys: pan (disabled while a text area has keyboard focus)
 - Left-mouse drag on an entity: select and move it
 - `P`: pin or unpin the selected entity in screen space so it remains visible
-  while the camera pans and zooms; pinned entities show a blue pin badge
+  while the camera pans and zooms; pinned entities show a Lucide pin glyph
+- `Delete`/`Backspace`: fade out and remove the selected entity
 - Development toolbar: spawn/clear entities, reset the camera, or restore the
-  deterministic demo scene
+  deterministic demo scene; spawned entities fade in and Clear fades all
+  entities out before removal
 - `View camera context`: open a live, scrollable snapshot of entities
   intersecting the camera viewport and their current semantic values
+- `Lucide icon gallery`: create or revisit a dedicated canvas region containing
+  the complete searchable, scrollable Lucide 1.31.0 icon set and fit the camera
+  to it
 - `10 browser stress scene`: lay out ten compact independent browser views for
   performance testing
 - `White`/`Grid`: toggle the optional grid; the default canvas is pure white
@@ -58,8 +64,13 @@
 `https://www.google.com` in a CEF off-screen browser whose pixel buffer is
 uploaded into a Raylib texture. It remains inside the canvas and participates
 in pan, zoom, clipping, and entity dragging on Windows, macOS, and Linux. Web
-views have no simulated browser toolbar: drag their narrow outer edge to move
-them and drag the bottom-right handle to resize them. Multiple web entities have independent
+views show a Raylib-rendered Lucide back/forward toolbar and current URL only
+while selected. The toolbar eases open by pushing the page viewport downward
+and reverses the transition when deselected. Click the URL field to edit it;
+Enter navigates, Escape cancels, and standard Ctrl/Cmd clipboard and selection
+shortcuts work. Drag the remaining outer edge to move the view and drag the
+bottom-right handle to resize it. Embedded pages inherit the selected canvas
+light or dark color scheme where the browser backend supports it. Multiple web entities have independent
 browser instances, URLs, focus, input, and rendering. Browser resources are
 assigned only to visible entities, off-screen views are suspended, and the
 native CEF pool supports up to twelve live browsers. Small background views
@@ -70,6 +81,12 @@
 64-pixel buckets, capped at 1280x800, so resized views become sharper without
 reallocating continuously during a drag.
 
+The Lucide gallery is one scalable Raylib-rendered canvas entity rather than
+thousands of individual scene entities or an embedded browser. Reopening it
+reuses the existing entity and moves the camera back to its fitted bounds. Its
+ISC-licensed vector data is generated from Lucide 1.31.0 and the visible grid
+rows are drawn directly with Raylib primitives.
+
 Tables support row selection, and notifications behave as bottom-right toast
 cards: multiple toasts overlap compactly, fan into a spaced stack on hover,
 and slide/fade away from either Undo or close. Position, size, stack expansion,
@@ -87,7 +104,10 @@
 
 Buttons animate on hover/press and toggle when clicked. Dropdowns open a real
 option menu with hover and selection states. Selected text areas accept typing,
-Enter, and Backspace. Dragging still moves every primitive.
+wrap text, support click/drag selection and scrolling, and provide
+Ctrl/Cmd+A/C/X/V clipboard shortcuts plus Shift selection, word navigation,
+Home/End, Backspace, and Delete. Drag a text area's narrow outer padding to
+move it without changing the selection.
 
 Camera context is derived from the visible world rather than a hidden
 conversation store. Panning entities outside the viewport removes them;
@@ -100,6 +120,9 @@
 
 The prototype uses the Inter variable font under the SIL Open Font License.
 
+Agent-oriented architecture and extension notes live in
+[`docs/README.md`](docs/README.md).
+
 ## Memory ownership
 
 The application creates one Dowa arena. Application state and the fixed-capacity