Documentation
svelterm renders Svelte components to a terminal cell grid with real
HTML and CSS semantics. The rule: any feature with a
sensible meaning on a grid of character cells works the way a browser
author expects; anything pixel-derived parses and is silently dropped,
and you style each mode on its own terms with @media (display-mode: terminal | browser).
How it works
No DOM anywhere: a Svelte custom renderer, a CSS engine over character cells, and a diffed ANSI painter.
Getting started
Install the renderer branch, configure the compiler, run your first component, write for both targets.
Terminal CSS
The cell unit, box-drawing borders, the colour model, dark/light schemes, display-mode targeting.
Layout
Box model on cells, flexbox, grid with named areas, full table layout, positioning, scrolling.
Selectors
Attribute operators, structural and state pseudo-classes, ::before/::after, the cascade.
Elements & input
What HTML renders to, form controls and their glyphs, focus, keyboard, mouse, and the event model.
Motion
Keyframe animations, transitions, what interpolates on a grid and what steps.
Inline mode
Render at the shell cursor like a CLI tool — streaming frames archive into real terminal scrollback.
Terminal support
Capability detection, colour degradation from truecolor to NO_COLOR, selection, clipboard, cursor shapes.
Compatibility
The three buckets: implemented, approximated with documented deviations, and deliberately ignored.
Shipping apps
Run the demos in your real terminal via curl, bundle your own app, and distribute across runtimes and platforms.
Reference matrix
The whole surface on one page — elements, selectors, properties, units — with MDN links.