TypeScript-first
Typed props make each component predictable to use and easy to maintain.
Lightweight User Interface
A small TypeScript component library for JSX and TemplateResult values — no framework runtime required.
Typed props make each component predictable to use and easy to maintain.
Compose views with familiar JSX while keeping output explicit.
Use only the small rendering boundary your interface needs.
Components return TemplateResult values without a virtual DOM layer.
Template values keep dynamic content escaped by default.
Semantic tokens carry the interface from light to dark mode.
Build consistently with a small, adaptable token foundation.
Render strings at the boundary for servers, tools, and browsers.
Quick start
git clone https://github.com/zoxon/lui.gitpnpm installpnpm devimport '@zoxon/lui/index.css'import { render } from '@zoxon/mater'
import { Button } from '@zoxon/lui/components/index.js'
const view = <Button label="Save" />
const htmlString = render(view)