---
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 }
}
```