--- id: kw-component name: component category: structure kind: keyword tokens: component sig: component Name[(states)] { prop p: T = v, state s: T = v, function ..., on e(...) { } } tip: A UI component: its props, state, functions and events, beside Name.xml and Name.lss. order: 70 --- A component is a piece of interface: the code file declares its props (handed in by its parent), its own state, the functions its template calls and the events it handles with on; Name.xml beside it is its template and Name.lss its styles. The states named in its header are supplied by the runtime and never seen by the template. ```ludic # doc-check: skip — a component needs its template beside it component Counter { prop step: int = 1 state count: int = 0 on add() { count = count + step } } ```