Components
Zebflow includes a built-in UI component library under components/ui/.
Using UI components
import Button from "@/components/ui/button";
import Input from "@/components/ui/input";
import Card from "@/components/ui/card";
import { Field, Label } from "@/components/ui/field";
export default function FormPage() {
return (
<Card>
<Field>
<Label>Name</Label>
<Input placeholder="Enter your name" />
</Field>
<Button>Submit</Button>
</Card>
);
}
Available components
button— buttons with variants andasprop for element typeinput— text inputscheckbox— checkboxes with labelsselect— dropdown selectsfield/label— form field wrapperscard— content cardsdialog— modal dialogsbadge— status badgesseparator— visual dividerstabs-*— tab navigationdropdown-*— dropdown menuskbd— keyboard shortcut displaymarkdown— markdown renderercode-editor— CodeMirror editor
Zeb libraries
Specialized libraries for rich functionality:
| Library | Import | Purpose |
|---|---|---|
| CodeMirror | "zeb/codemirror" | Code editor |
| Three.js | "zeb/threejs" | 3D rendering |
| deck.gl | "zeb/deckgl" | Geospatial visualization |
| D3 | "zeb/d3" | Data visualization |
| ProseMirror | "zeb/prosemirror" | Rich text editor |
| Markdown | "zeb/markdown" | Markdown rendering |
"zeb/pdf" | PDF viewing | |
| LiveGeo | "zeb/livegeo" | Live geolocation |
| Icons | "zeb/icons" | Icon set |
Rules
- Always use
components/ui/components — never raw<input>,<button>, etc. with manual classes - Never use inline
style=attributes - Never use
document.*methods in TSX files - Never build HTML strings in behavior files — all rendering is React JSX