offline-style-guide

@offlinemediainc/offline-ui

Offline Media design system components built with React, Radix UI, and Tailwind CSS.

Installation

pnpm add @offlinemediainc/offline-ui

Setup

1. Import the styles

Add the theme CSS to your app’s entry point:

// app/layout.tsx or _app.tsx
import '@offlinemediainc/offline-ui/styles.css';

2. Configure Tailwind (if using Tailwind CSS v4)

Add the package to your CSS source scanning:

@import "tailwindcss";
@source "../node_modules/@offlinemediainc/offline-ui/dist/**/*.js";

3. Use components

import { Button, Card, Dialog, Badge } from '@offlinemediainc/offline-ui';

export function MyComponent() {
  return (
    <Card>
      <Badge variant="success">Active</Badge>
      <Button>Click me</Button>
    </Card>
  );
}

Components

Core Components

Next.js Components

The following components require Next.js (uses next/image, next/link, next/navigation):

import { OfflineSidebar } from '@offlinemediainc/offline-ui';
import { LayoutDashboard, Settings } from 'lucide-react';

export default function Layout({ children }) {
  return (
    <OfflineSidebar
      workspace=
      user=
      navGroups={[
        {
          label: "Main",
          items: [
            { title: "Dashboard", url: "/dashboard", icon: LayoutDashboard },
            { title: "Settings", url: "/settings", icon: Settings },
          ]
        }
      ]}
      onLogout={() => signOut()}
    >
      {children}
    </OfflineSidebar>
  );
}

Utilities

Storybook

View the component documentation: Storybook


Development

Quick Start

# Install dependencies
pnpm install

# Start Storybook
pnpm storybook

Storybook will be available at http://localhost:6006

Build the library

pnpm build:lib

Project Structure

offline-style-guide/
├── src/                 # Library source (published to npm)
│   ├── components/      # UI components
│   ├── hooks/           # React hooks
│   ├── lib/             # Utilities
│   └── styles/          # Theme CSS
├── components/ui/       # Original components + stories
├── stories/theme/       # Theme documentation stories
├── .storybook/          # Storybook configuration
├── dist/                # Built library output
└── app/                 # Next.js demo app

Tech Stack