Overview
Quick start
Install ferry-ui, add its styles and show your first component.
ferry-ui is one package. It needs React 19.
$ npm install ferry-uiYour bundle contains only the components that your app imports.
Your app uses Tailwind CSS v4? Import the theme of ferry-ui after Tailwind.
@import "tailwindcss";
@import "ferry-ui/fonts.css"; /* optional: Inter and Source Code Pro */
@import "ferry-ui/theme.css";Your app does not use Tailwind? Import the compiled stylesheet at the root of the app.
import 'ferry-ui/styles.css'
import 'ferry-ui/fonts.css' // optionalMount the providers one time, at the root of the app.
import type { ReactNode } from 'react'
import { ThemeProvider, Toaster, TooltipProvider } from 'ferry-ui'
export function Providers({ children }: { children: ReactNode }) {
return (
<ThemeProvider defaultTheme="system">
<TooltipProvider>
{children}
<Toaster />
</TooltipProvider>
</ThemeProvider>
)
}| Provider | Role |
|---|---|
ThemeProvider | Applies the light theme or the dark theme. |
TooltipProvider | Gives one delay to all the tooltips. |
Toaster | Shows the messages of toast(). |
Import each component from the package root. This example shows an empty list with one action.
No projects yet
import { Button, EmptyState, toast } from 'ferry-ui'
import { FolderKanban, Plus } from 'lucide-react'
export default function NoProjects() {
return (
<EmptyState
icon={<FolderKanban />}
title="No projects yet"
description="Projects group your invoices, members and API keys."
actions={
<Button variant="primary" icon={<Plus />} onClick={() => toast.success('Project created')}>
New project
</Button>
}
/>
)
}Each page has a View as Markdown link. Give this link to your assistant.
The file llms.txt lists all the pages. The repository also has an AGENTS.md file with the rules, the tokens and the full catalog.