# Docs - [Documentation](/docs): Everything you need to ship Camaleo — setup, the thirteen skins, every component and how to make it yours. Every example on every page wears the skin you pick in the bar above. - [Changelog](/docs/changelog): What changed in Camaleo, newest first. Nothing is published to npm yet; everything below leads up to 1.0. - [Theme customizer](/docs/customizer): Pick a skin, a brand color and a few tokens, watch real components change, then take the CSS, the provider and a JSON preset with you. - [Installation](/docs/installation): Two packages, one stylesheet per skin and a StyleProvider. Works with the Next.js App Router, Vite and any React 19 app. - Examples - [Examples](/docs/blocks): Examples are complete screens built only with Camaleo components. Each one is live in the skin, mode and brand of the preview bar, and its code is the file that runs: open one to try it at desktop, tablet and phone width, then copy it. - [Admin table](/docs/blocks/admin-table): A team members table with search, filters, sorting, row selection with bulk actions, pagination, a row menu, editing in a drawer and a delete confirmation. - [Sign in](/docs/blocks/auth): Sign in, sign up and password reset in one card, with password show and hide, validation, a one-time code step, a magic link and a passkey button. - [Checkout](/docs/blocks/checkout): A four-step checkout with an order summary, address validation, delivery options, card fields, a review step and a confirmation. - [Sales dashboard](/docs/blocks/dashboard): A store's sales dashboard: an app shell with a collapsible sidebar, stats with deltas, a revenue chart drawn with tokens, sales by channel and a sortable orders table with a channel filter. - [Inbox](/docs/blocks/inbox): A mail inbox with folders, unread state, multi-select with bulk actions, search, a reading pane, empty states and keyboard navigation. - [Product landing](/docs/blocks/landing): A product landing page: header with a menu that folds on small screens, hero with a product glimpse, logos and numbers, a features grid, a testimonial, a pricing teaser, an FAQ, a sign-up call to action and a footer. - [Pricing](/docs/blocks/pricing): A pricing page with a monthly or yearly switch that changes every price, three plans with the popular one highlighted, a comparison table and a billing FAQ. - [Account settings](/docs/blocks/settings): Account settings inside the app's shell, in four sections: a profile with photo upload and validation, notification switches, password change with two-factor setup, and a danger zone that asks for confirmation. - [Multi-step signup](/docs/blocks/signup): A three-step signup with a Stepper, validation on each step, an error summary that links to each field, a review step with edit links and a success state. - Components - **Actions** - [Button](/docs/components/button): Triggers an action. Four variants and four sizes, a loading state that keeps focus, and a look that comes entirely from the active skin. - [Toggle](/docs/components/toggle): A button that stays pressed, such as Bold in an editor. ToggleGroup joins several, with one or many pressed and arrow-key navigation. - [Spinner](/docs/components/spinner): Shows that something is loading when you can't say how long it will take. It announces its label to screen readers and inherits the text color and size. - **Forms** - [Field](/docs/components/field): Wraps a form control with its label, description and error, wires them together for assistive tech and tracks validity. Comes with Input, Textarea, Label and Fieldset. - [Select](/docs/components/select): Picks one option, or a few, from a list that stays closed until needed. The popup follows the skin through the portal and opens with the keyboard as well as the pointer. - [Native select](/docs/components/native-select): The browser's own select, styled by the skin. Best for long, familiar lists and on phones, where it opens the system picker. - [Combobox](/docs/components/combobox): A text input that filters a list as you type. Use it when there are too many options to scroll, or when people know the name of what they want. - [Checkbox](/docs/components/checkbox): Turns one option on or off, or picks any number from a list. CheckboxGroup holds the values as an array and can drive a "select all" box. - [Radio group](/docs/components/radio-group): One choice out of a few options that are all visible at once. The group is a single tab stop; the arrow keys move and select. - [Switch](/docs/components/switch): Turns a setting on or off, with the effect applied right away. For choices that wait for a Save button, use a Checkbox. - [Slider](/docs/components/slider): Sets a value, or a range, by dragging along a track. Best for approximate amounts where seeing the position matters more than typing an exact number. - [Number field](/docs/components/number-field): A number input with minus and plus buttons. Keeps the value within bounds, steps with the keyboard and formats it as currency, percent or a unit. - **Advanced forms** - [Input group](/docs/components/input-group): One field box around an input and the text, icons or buttons that belong to it. PasswordInput and SearchInput are ready-made groups for the two you build most. - [OTP field](/docs/components/otp-field): A one-time code split into one cell per character. Typing moves forward, Backspace goes back and a paste or SMS autofill fills every cell at once. - [TagsInput](/docs/components/tags-input): Several short values in one field, shown as removable chips. Use it for topics, labels, skills or email recipients, with or without a list of suggestions. - [File upload](/docs/components/file-upload): A drop area with a real file input behind a button, plus a list that shows each file's progress, result or error. It reports files; sending them is up to your app. - [Rating](/docs/components/rating): Stars for giving a score, or for showing an average. Interactive, it behaves like a radio group; read-only, it is one image with a text name and supports half stars. - [Chip](/docs/components/chip): Compact choices that filter a list, or small removable values like people and labels. ChipGroup gathers filter chips under one name with arrow-key navigation. - [Error summary](/docs/components/error-summary): Lists the invalid fields at the top of a form after a failed submit, each one a link that moves focus to its control. Use it for forms with more than a couple of fields. - **Dates** - [Calendar](/docs/components/calendar): Shows a month and lets people pick one day with the mouse, touch or keyboard. Use it when the date is near and seeing the week matters, such as an appointment or a delivery. - [Range calendar](/docs/components/range-calendar): Shows a month and lets people pick a start and an end day in two clicks. Use it for stays, trips, time off and report periods. - [Date picker](/docs/components/date-picker): A date input you can type into or fill from a calendar popup. Use it for dates close to today, like a delivery, a booking or a deadline. - [Date range picker](/docs/components/date-range-picker): A start and an end date in one field, typed or picked from a range calendar. Use it for stays, leave, reports and anything that lasts more than a day. - [Date field](/docs/components/date-field): Types a date into day, month and year segments in the order and format of the locale. For dates people already know, like a birthday or a contract start, with no calendar in the way. - [Time field](/docs/components/time-field): Types a time into hour, minute and AM/PM segments, on the locale's clock. Carries a time zone when the value has one, so a meeting at 2 PM means the same moment for everyone. - **Feedback** - [Alert](/docs/components/alert): A message that stays in the page until the situation changes. Use it for things people need to know or fix where they are working. - [Toast](/docs/components/toast): Short feedback after an action, shown in a corner and gone after a few seconds. Use it to confirm what happened without moving people away from their work. - [Progress](/docs/components/progress): Shows how far a task has gone, like an upload, an export or a setup flow. For a measurement that just sits in a range, such as storage used, use Meter. - [Meter](/docs/components/meter): Shows a measurement inside a known range, like storage used, seats taken or password strength. For a task that moves toward done, like an upload, use Progress. - [Skeleton](/docs/components/skeleton): A quiet placeholder in the shape of the content that is on its way. Use it when you know the layout, so the page doesn't jump when the data arrives. - [Tooltip](/docs/components/tooltip): A short label that appears when people hover or focus a control. Use it to name icon buttons and show shortcuts, never for information people need. - **Display** - [Badge](/docs/components/badge): A status, count or category in one or two words, next to a title or in a table row. It is text only; for something people click or remove, use a Chip. - [Avatar](/docs/components/avatar): A person's photo, or their initials when there is no photo. Use it next to names in comments, lists and profiles, so people recognize each other faster. - [Card](/docs/components/card): A box that groups one subject, like a plan, a project or a setting, with its title, content and actions. Use it when people compare or scan several of these side by side. - [Kbd](/docs/components/kbd): Shows a key or a keyboard shortcut, like Ctrl K, in the text, a menu or a tooltip. It only displays the keys; you wire the shortcut yourself. - [Table](/docs/components/table): Shows records in rows and columns so people can compare them, like invoices or stock. For sorting, filtering and pages of data, use Data table. - [Typography](/docs/components/typography): Headings and paragraphs in the skin's type. Heading sets the tag from the page outline and the size from the space it has, separately. - [Separator](/docs/components/separator): A thin line between groups of content or of buttons. Use it when spacing alone doesn't make the groups clear. - [Link](/docs/components/link): Takes people to another page, a part of this page or a file. For actions like saving, copying or deleting, use Button. - **Data display** - [DataTable](/docs/components/data-table): A table driven by data and column definitions, with sorting, row selection, pages and a loading state built in. For a static table you write by hand, use Table. - [DataList](/docs/components/data-list): Label and value pairs for the details of one record, like an order, a profile or a server. To compare several records, use a table. - [Stat](/docs/components/stat): Shows one key number, what it measures and how it changed, like revenue this month. Use a row of them at the top of a dashboard. - [Timeline](/docs/components/timeline): Lists events in the order they happened, like the steps of a delivery or the history of a ticket. Each event has a title, details and a time. - [Empty state](/docs/components/empty-state): Fills a page, card or list that has nothing to show yet. It says what is empty, why, and what to do next. - [Image](/docs/components/image): Shows a photo in a frame, with an optional caption, a loading skeleton and a fallback that keeps the layout when the file fails to load. - [ProgressCircle](/docs/components/progress-circle): A ring that shows how far a task has gone, sized for cards, tiles and toolbars. When there is room for a full-width bar, use Progress. - [CodeBlock](/docs/components/code-block): Shows a snippet of code with its file name, line numbers and a copy button, for install steps, API references and setup guides. - [TreeView](/docs/components/tree-view): Shows items that nest inside each other, like folders and files or categories, so people can open a branch and pick one item. For a flat list, use a list or a menu. - [Carousel](/docs/components/carousel): Shows one slide at a time from a short set, like news, tour steps or reviews, with previous and next buttons and a row of dots. Anything people must read belongs on the page, not on slide 3. - **Overlays** - [Dialog](/docs/components/dialog): A window over the page for one focused task, like editing a profile or inviting people. Focus moves in when it opens, stays inside, and goes back when it closes. - [AlertDialog](/docs/components/alert-dialog): Interrupts to confirm a decision that is hard to undo, like deleting a project or sending an email to thousands of people. Focus starts on the safe choice, and an outside click doesn't close it. - [Drawer](/docs/components/drawer): A panel that slides in from an edge of the screen for a task that keeps the page in view, like filters, details or a cart. It is modal; for a short decision, use a dialog. - [Popover](/docs/components/popover): A small panel that opens next to a button and holds interactive content, like a short form, a few settings or links. It doesn't block the page; for a plain label, use a tooltip. - [HoverCard](/docs/components/hover-card): A preview of what a link points to, shown when people hover or focus it. Use it for profiles and page previews, and keep everything it shows on the page the link opens. - [Toggletip](/docs/components/toggletip): A small button that shows a short explanation when clicked. Use it next to a label, a table header or a setting whose meaning isn't obvious; it works with touch, keyboard and screen readers. - [Menu](/docs/components/menu): A list of actions that opens from a button. Use it to tuck away secondary actions on a row, a card or a toolbar, not to navigate or to pick a value. - [Context menu](/docs/components/context-menu): The actions for one thing, opened with a right-click, a long press or the keyboard. It is a shortcut, so every action in it also needs a visible way in. - **Navigation** - [Tabs](/docs/components/tabs): Switches between views of the same thing, like the details, items and history of one order, without leaving the page. Only one panel shows at a time. - [Accordion](/docs/components/accordion): A stack of headings that each open a section in place, for long content people read one part of at a time, like an FAQ. Collapsible is the single version, for one show/hide. - [Breadcrumb](/docs/components/breadcrumb): Shows where the current page sits in the site's hierarchy and links to each level above it. It is a map of the structure, not a record of where people have been. - [Pagination](/docs/components/pagination): Moves through a long list one page at a time and shows where people are in it. Page numbers are links for pages a search engine should find, or buttons for a list that lives in the browser. - [Navigation menu](/docs/components/navigation-menu): The main links of a site, in a `