# Protokit > Prototype kits for mobile and web that coding agents build from. Two prototype kits on one set of design tokens: a native kit (Expo, React Native, NativeWind, react-native-reusables) and a web kit (Next.js, Tailwind 4, shadcn/ui). Each kit lists the only components a prototype may use. Start with the install guide. ## This site - [Install guide for agents](https://protokit-docs.empty-math-d572.workers.dev/install.md): pick a kit and a path, then the rules - [Everything in one file](https://protokit-docs.empty-math-d572.workers.dev/llms-full.txt) - [shadcn registry for Expo + react-native-reusables (@kit-native)](https://protokit-docs.empty-math-d572.workers.dev/r/native/registry.json) - [shadcn registry for Next.js + shadcn/ui (@kit)](https://protokit-docs.empty-math-d572.workers.dev/r/web/registry.json) ## Native kit > A brand-agnostic Expo + React Native prototype kit (Expo Router, NativeWind, react-native-reusables). > Screens are composed ONLY from the components listed below; nothing else exists. Generated by `npm run registry:build` from registry/components.ts — do not edit by hand. ### Read first - [AGENTS.md](https://github.com/itsHendri/protokit/blob/main/apps/mobile/AGENTS.md): stack, commands, how to build a prototype, gotchas - [DESIGN_SYSTEM.md](https://github.com/itsHendri/protokit/blob/main/apps/mobile/DESIGN_SYSTEM.md): tokens, the component registry, patterns, anti-patterns, the hallucination guard - [DESIGN.md](https://github.com/itsHendri/protokit/blob/main/apps/mobile/DESIGN.md): the design tokens in the DESIGN.md format ### Rules - Use only the components below, by their exact names. Missing something: stop and say so (the `add-component` skill adds it properly). - Style with semantic Tailwind classes only. No hex, no Tailwind palette colours, no StyleSheet colours. - Text through `` from components/ui/text; icons through `` (lucide). - Check every screen in light and dark. ### Components #### Actions - [Button](https://github.com/itsHendri/protokit/blob/main/apps/mobile/components/ui/button.tsx): `variant` default/secondary/outline/ghost/link/destructive · `size` sm/default/lg/icon · children are ``/`` — `` - [Toggle](https://github.com/itsHendri/protokit/blob/main/apps/mobile/components/ui/toggle.tsx): pressed two-state button — `` - [ToggleGroup](https://github.com/itsHendri/protokit/blob/main/apps/mobile/components/ui/toggle-group.tsx): `type` single/multiple — `` - [FloatingButton](https://github.com/itsHendri/protokit/blob/main/apps/mobile/components/kit/floating-button.tsx): floats OVER the scroll (a Button flows with it) · Material calls it a FAB · `icon label? variant position` · one per screen — `` - [IconBadge](https://github.com/itsHendri/protokit/blob/main/apps/mobile/components/kit/icon-badge.tsx): icon button with unread count/dot · always labelled — `` - [SwipeToConfirm](https://github.com/itsHendri/protokit/blob/main/apps/mobile/components/kit/swipe-to-confirm.tsx): drag past 85% commits · `tone` primary/destructive · reset via `key` — `` - [ActionGrid](https://github.com/itsHendri/protokit/blob/main/apps/mobile/components/kit/action-grid.tsx): the row of shortcuts under a screen hero · 3–4 `items`, one row only, last tile is "More" — `` #### Inputs & selection - [Input](https://github.com/itsHendri/protokit/blob/main/apps/mobile/components/ui/input.tsx): always with `Label` — `