- đ Web standards with custom HTML elements
- âī¸ React-like API
- âī¸ Declarative templating with JSX (no additional parsing)
- đĨ Fine-grained reactivity with signals
- đ Type-safe components out of the box with TypeScript
- đĒļ Lightweight (~4KB minified and compressed)
import { Component, useSignal } from "sinho";
class MyCounter extends Component() {
render() {
const [value, setValue] = useSignal(0);
return (
<>
<p>Counter: {value}</p>
<p>
<button onclick={() => setValue((n) => n + 1)}>Increment</button>{" "}
<button onclick={() => setValue((n) => n - 1)}>Decrement</button>
</p>
</>
);
}
}