Package Exports
- passport-ui/accordion
- passport-ui/alert
- passport-ui/alert-dialog
- passport-ui/analytics
- passport-ui/animated-background
- passport-ui/aspect-ratio
- passport-ui/avatar
- passport-ui/badge
- passport-ui/blockquote
- passport-ui/blur-in
- passport-ui/breadcrumb
- passport-ui/bullet-list
- passport-ui/button
- passport-ui/calendar
- passport-ui/card
- passport-ui/carousel
- passport-ui/checkbox
- passport-ui/chunk-3HNEZ72K
- passport-ui/chunk-46YVCT7M
- passport-ui/chunk-6RUUFOQA
- passport-ui/chunk-A2DGQUNJ
- passport-ui/chunk-DVFISRDY
- passport-ui/chunk-HKK3G2HZ
- passport-ui/chunk-JKDAFZ2I
- passport-ui/chunk-JZBF5N2N
- passport-ui/chunk-R4WFJOCP
- passport-ui/chunk-VV2YVULU
- passport-ui/chunk-Y6R2RCYY
- passport-ui/code-block
- passport-ui/collapsible
- passport-ui/combobox
- passport-ui/command
- passport-ui/components.json
- passport-ui/content-container
- passport-ui/context-menu
- passport-ui/date-picker
- passport-ui/dialog
- passport-ui/drawer
- passport-ui/dropdown-menu
- passport-ui/empty-state
- passport-ui/footer-container
- passport-ui/form
- passport-ui/header-container
- passport-ui/hljs-themes.css
- passport-ui/hover-card
- passport-ui/input
- passport-ui/input-otp
- passport-ui/label
- passport-ui/live-region
- passport-ui/markdown
- passport-ui/menubar
- passport-ui/mobile-sidebar-trigger
- passport-ui/navigation-menu
- passport-ui/page-layout
- passport-ui/pagination
- passport-ui/popover
- passport-ui/prefetch-link
- passport-ui/progress
- passport-ui/radio-group
- passport-ui/resizable
- passport-ui/scroll-area
- passport-ui/select
- passport-ui/separator
- passport-ui/sequential-reveal
- passport-ui/sheet
- passport-ui/sidebar
- passport-ui/sidebar-container
- passport-ui/skeleton
- passport-ui/slider
- passport-ui/sonner
- passport-ui/structured-data
- passport-ui/styles.css
- passport-ui/switch
- passport-ui/table
- passport-ui/tabs
- passport-ui/tailwind-colors.css
- passport-ui/textarea
- passport-ui/theme-button
- passport-ui/theme-provider
- passport-ui/theme-toggle
- passport-ui/toggle
- passport-ui/toggle-select
- passport-ui/tooltip
- passport-ui/typewriter-text
- passport-ui/utils
- passport-ui/visually-hidden
Readme
Passport UI

A React UI component library with motion primitives and theme support built with TypeScript, Tailwind CSS v4, and shadcn/ui components.
View components and documentation at storybook.passportui.com. Installation guide available at passportui.com.
Installation
npm install passport-uiUsing PostCSS
Add the PostCSS plugin to your postcss.config.mjs:
export default {
plugins: ["@tailwindcss/postcss"],
};Import Styles
Import the library styles in your main CSS file:
@source "../../node_modules/passport-ui/src"
@import "passport-ui/styles.css";
/* Optional styles based on requirement */
@import "passport-ui/hljs-themes.css"; /* Optional: for code highlighting */
@import "passport-ui/tailwind-colors.css"; /* Optional: dynamic usage of tailwind colors */- For themed syntax highlighting in
CodeBlockandMarkdowncomponents, import the theme styles. - For dynamic usage of tailwind colors, import the tailwind colors styles.
Import Pattern
Passport UI uses individual component exports for optimal tree-shaking and React Server Components compatibility. Import components individually:
import { Button } from "passport-ui/button";
import { Card, CardContent } from "passport-ui/card";
function App() {
return (
<Card>
<CardContent>
<Button>Click me</Button>
</CardContent>
</Card>
);
}With Theme Support
import { ThemeButton } from "passport-ui/theme-button";
import { ThemeProvider } from "passport-ui/theme-provider";
function App() {
return (
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
<div className="min-h-screen bg-background text-foreground">
<ThemeButton />
{/* Your app content */}
</div>
</ThemeProvider>
);
}Available Themes
Light- Light themeDark- Dark themeSystem- System theme
Use ThemeProvider to wrap your app and ThemeButton to toggle between themes.
Available Components
Layout Containers
Providers
Components
AccordionAlertAlertDialogAnalyticsAspectRatioAvatarBadgeBlockquoteBreadcrumbBulletListButtonCalendarCardCarouselCheckboxCodeBlockCollapsibleComboboxCommandContextMenuDatePickerDialogDrawerDropdownMenuFormHoverCardInputInputOTPLabelLiveRegionMarkdownMenubarPaginationPopoverPrefetchLinkProgressRadioGroupResizableScrollAreaSelectSeparatorSheetSidebarSkeletonSliderSonnerStructuredDataSwitchTableTabsTextareaToggleToggleSelectTooltipVisuallyHidden