FAQ

Nothing new invented for this page -- every answer below is repackaged from this project's own README or existing copy elsewhere on this site, as a zero-JS Details/Summary accordion.

Why no live charting library -- Chart.js, D3, Plotly?

Not a current gap -- a permanent design choice. Accepting arbitrary JS/HTML is a hard non-goal of ARKlight (confirmed directly against arklight.ir.schema.SCHEMA), so this site's own charts are pre-rendered matplotlib PNGs, generated by a step outside ARKlight and embedded like any other image.

Can Site.style() define hover or focus states?

No. Custom class names are validated against ^[a-zA-Z_]\w*$ (letters, digits, underscore, hyphen only) -- a name like cta:hover is rejected before it reaches the generated stylesheet. Per-node style={...} has no such limit, but inline styles can't express pseudo-classes either; there's currently no ARKlight-native way to style :hover.

Does ARKlight support @media queries yet?

Not yet -- v0.048 is designed but not implemented. Today's responsive layout is intrinsic-only: .stack/.switcher/.grid adapt from a container's own available width via flexbox/grid sizing keywords, with no breakpoint tied to a device or screen size at all.

Can one on_click fire more than one Action?

No -- on_click takes a single ActionRef or a single behavior string, never a list, verified directly against arklight/ir/validate.py's _validate_action. This is why /playground (Stage 8, PLAN.md Section 9) builds independent per-card toggles instead of a mutually-exclusive tab switcher.

Is there a pip install arklight package?

No -- there is no published arklight package on PyPI as of this writing. The only real install path is cloning ARKlight's own repository (alpha or main) and running pip install -e . inside it. See the Methodology page for what installing the alpha branch vs. the (nonexistent) PyPI release actually looks like, including a license-acceptance gate found in main that alpha doesn't have.

What broke while building this site?

One non-obvious bug specific to ARKlight's two-phase execution model: `from data import X` inside a page function behaved differently than the same import at module level, because a site file's top-level code and its page functions run in different compiler stages. Nothing about knowing Python in general predicts that -- it came from reading the traceback and reasoning about ARKlight's loader specifically.

Is /playground's interactivity actually real, or simulated?

Real. Each framework card gets its own State("show_detail_<key>", False), a Button with on_click=Action.toggle_bool(...), and bind_class=Bind.when(...) on the detail panel -- compiled to a data-ark-bind-class attribute the shipped runtime keeps in sync via classList.toggle(...) on every store change, not a hand-simulated demo. Verified end-to-end in a headless browser click-through, not just visually.