Status: v0.5 — widgets + modal focus + live regions + class/scroll/grid
Name: Argus
Backend: DOM presentment (not Skia)
Layout:Hanka
Frontend track:FRONTEND_ROADMAP.md— done
What Argus is
Thin reactive patcher: dirty node → surgical DOM update.
Hanka / PLACE → Argus tree → paint → lukejs embedder → DOM
a11y
- Default roles +
aria-label - Modal show/hide — trap on
OPEN THE MODAL, not on mount (CLOSE/HIDErestore) TRAP FOCUS IN/RESTORE FOCUS/ANNOUNCEstatementsSLOT TEXT … ANNOUNCE/ANNOUNCE URGENT→aria-livepolite/assertive (text updates announce automatically)
Class hatch (Tailwind interop)
WEAR "px-5 bg-indigo-600" → argus_js_class → class="…".
Hanka owns layout via inline styles; Tailwind owns skin.
luke PUBLISH WEB app.luke --tailwind input.css runs Tailwind JIT over .luke content when present.
Breakpoints
- Container:
STACK BELOW/WRAP BELOW(re-layout vialuke_viewport_relayouton resize) - Predicate:
WHEN THE VIEWPORT IS BELOW|ABOVE n - matchMedia:
AT LEAST/UNDER/BETWEEN