# @colineapp/ui
The Coline design system for tier-2 (React) Coline Apps — the same components
the Coline platform itself uses, themed live by the host workspace. Your app
automatically matches the user's theme, including dark mode and brand
accents, with no theme code of your own.
```tsx
import {
Button,
Card,
ColineAppProvider,
Input,
useColine,
useColineQuery,
} from "@colineapp/ui";
import "@colineapp/ui/styles.css";
function NotesList() {
const coline = useColine();
const notes = useColineQuery(
(c) => c.files.list({ typeKey: "notes.note" }),
[],
);
return (
{notes.data?.files.map((file) => (
))}
);
}
export default function App() {
return (
);
}
```
## What's inside
- 21 components: Button, Card, Dialog, Input, Select, Checkbox, Switch,
Tabs, Table, Badge, Tooltip, DropdownMenu, and more — Radix-based,
accessible, keyboard-friendly.
- `ColineAppProvider` — connects the sandbox bridge and provides context.
- Hooks: `useColine` (the capability API), `useColineContext` (workspace /
surface / file context), `useColineQuery` (data fetching with
loading/error state), `useColorScheme`.
- `styles.css` — the compiled stylesheet; theme tokens are overridden at
runtime by the host, so one CSS file serves every workspace theme.
Used inside a Coline App's react-tier surface (`{ tier: "react", entry:
"main.tsx" }` in the manifest). Scaffold a working app with
`npx create-coline-app my-app`.
## Docs
Full guides at [coline.app/developers/docs](https://coline.app/developers/docs).
MIT © Coline