Why we exist
Most component libraries make two decisions on your behalf. They decide how your site looks, by shipping a stylesheet. And they decide how your site is built, by rendering your content for you. Both are borrowed decisions, and both are expensive to undo two years later when you want something they did not anticipate.
Teasim tries to make neither.
How the split works
@teasim/astro renders markup and carries behaviour with it. It ships no
stylesheet at all; your own TeaCSS build generates exactly the classes your
markup used.
@teasim/aster arranges those elements into the page-level chrome a site
repeats — the shell, the header, the navigation, the table of contents. It owns
arrangement and never restates a surface.
@teasim/astra computes navigation, validates content, and serves the
machine-readable routes. It renders nothing.
No package knows what the others look like, and a project can take any of them on its own.
What we optimise for
The markup you would have written. An accordion is a details element. If
you inspect the DOM and find something you would not have written by hand, that
is a defect.
Behaviour without JavaScript first. The open state belongs to the browser. A runtime binds on top when there is one, and the page works when there is not.
Decisions that are written down. Where something looks like removable duplication and is not, the reason lives beside it, so the next reader does not have to rediscover it by breaking something.