JSPM

  • Created
  • Published
  • Downloads 50
  • Score
    100M100P100Q101994F
  • License MIT

Cross-platform React components with beautiful themes and OKLCH color sciences

Package Exports

  • @voilajsx/uikit
  • @voilajsx/uikit/accordion
  • @voilajsx/uikit/adapters
  • @voilajsx/uikit/admin
  • @voilajsx/uikit/alert
  • @voilajsx/uikit/auth
  • @voilajsx/uikit/avatar
  • @voilajsx/uikit/badge
  • @voilajsx/uikit/blank
  • @voilajsx/uikit/breadcrumb
  • @voilajsx/uikit/button
  • @voilajsx/uikit/calendar
  • @voilajsx/uikit/card
  • @voilajsx/uikit/checkbox
  • @voilajsx/uikit/collapsible
  • @voilajsx/uikit/command
  • @voilajsx/uikit/container
  • @voilajsx/uikit/data-table
  • @voilajsx/uikit/detail-page
  • @voilajsx/uikit/dialog
  • @voilajsx/uikit/dropdown-menu
  • @voilajsx/uikit/footer
  • @voilajsx/uikit/form
  • @voilajsx/uikit/header
  • @voilajsx/uikit/hover-card
  • @voilajsx/uikit/input
  • @voilajsx/uikit/label
  • @voilajsx/uikit/menubar
  • @voilajsx/uikit/motion
  • @voilajsx/uikit/page
  • @voilajsx/uikit/pagination
  • @voilajsx/uikit/platform
  • @voilajsx/uikit/popover
  • @voilajsx/uikit/popup
  • @voilajsx/uikit/progress
  • @voilajsx/uikit/radio-group
  • @voilajsx/uikit/select
  • @voilajsx/uikit/separator
  • @voilajsx/uikit/sheet
  • @voilajsx/uikit/skeleton
  • @voilajsx/uikit/slider
  • @voilajsx/uikit/styles
  • @voilajsx/uikit/switch
  • @voilajsx/uikit/table
  • @voilajsx/uikit/tabs
  • @voilajsx/uikit/textarea
  • @voilajsx/uikit/theme-provider
  • @voilajsx/uikit/themes
  • @voilajsx/uikit/toast
  • @voilajsx/uikit/toggle
  • @voilajsx/uikit/tooltip
  • @voilajsx/uikit/utils
  • @voilajsx/uikit/wrapper

Readme

@voilajsx/uikit

React UI framework that gets out of your way. Build beautiful applications with 37 components, 5 layouts, and 5 themes. Zero configuration, zero complexity.

npx uikit create myapp --spa --theme elegant
cd myapp && npm run dev

What You Get

🎨 5 Professional Themes - From minimal to luxury, pick your style
🏗️ 5 Layout Systems - Admin, Auth, Page, Popup, Blank
🧩 37 UI Components - Forms, tables, navigation, overlays
Instant Setup - From idea to running app in 30 seconds
🎯 Developer First - TypeScript, hot reload, minimal API

Built on Tailwind CSS + Radix UI with OKLCH color science for perfect accessibility.

Quick Start

# Create your app (no installation needed)
npx uikit create myapp --multi --theme elegant
cd myapp && npm run dev

Done. Your app is running with routing, layouts, and the elegant theme.

Framework Overview

@voilajsx/uikit is a complete React framework with three main parts:

1. Components (37 total)

import { Button, Card, DataTable, AdminLayout } from '@voilajsx/uikit';

function Dashboard() {
  return (
    <AdminLayout>
      <Card>
        <Button>Click me</Button>
        <DataTable data={users} />
      </Card>
    </AdminLayout>
  );
}

2. Layouts (5 types)

<AdminLayout>     {/* Sidebar + header for dashboards */}
<AuthLayout>      {/* Login/signup forms */}
<PageLayout>      {/* Marketing pages with header/footer */}
<PopupLayout>     {/* Browser extensions */}
<BlankLayout>     {/* Clean pages */}

3. Themes (5 presets)

<ThemeProvider theme="elegant" mode="dark">
  <App />
</ThemeProvider>

Themes: baseelegantmetrostudiovivid

Project Types

Choose your app structure:

# Theme showcase (37 components demo)
npx uikit create myapp

# Single-page app with routing  
npx uikit create myapp --spa --theme metro

# Multi-page app with layouts
npx uikit create myapp --multi --theme vivid

Development Commands

npx uikit serve     # Start dev server
npx uikit build     # Production build  
npx uikit bundle    # Rebuild themes
npx uikit deploy    # Static site deploy
npx uikit deploy --github  # Deploy to GitHub Pages

Theme System

5 professional themes that work in light and dark mode:

  • base - Clean metallic black, System UI fonts
  • elegant - Professional blue, Montserrat fonts
  • metro - Modern green, clean typography
  • studio - Bold black/orange, artistic fonts
  • vivid - Luxury purple/orange, serif fonts

Basic Usage

import { ThemeProvider, useTheme } from '@voilajsx/uikit';

function App() {
  return (
    <ThemeProvider theme="elegant" mode="dark">
      <MyApp />
    </ThemeProvider>
  );
}

function ThemeSwitcher() {
  const { theme, setTheme, toggleMode } = useTheme();
  return (
    <div>
      <select onChange={(e) => setTheme(e.target.value)}>
        <option value="base">Base</option>
        <option value="elegant">Elegant</option>
        <option value="metro">Metro</option>
        <option value="studio">Studio</option>
        <option value="vivid">Vivid</option>
      </select>
      <button onClick={toggleMode}>Toggle Dark Mode</button>
    </div>
  );
}

Custom Themes

// src/themes/presets/my-theme.js
export default {
  id: 'my-theme',
  name: 'My Custom Theme',
  light: {
    background: '#FFFFFF',
    foreground: '#111111',
    primary: '#3B82F6',
    // ... more colors
  },
  dark: {
    background: '#111111',
    foreground: '#FFFFFF',
    primary: '#60A5FA',
    // ... more colors
  }
};
npx uikit bundle  # Rebuild CSS

Component Examples

Forms & Inputs

import { Button, Input, Label, Card, Form } from '@voilajsx/uikit';

function LoginForm() {
  return (
    <Card>
      <Form>
        <Label>Email</Label>
        <Input type="email" />
        <Button>Sign In</Button>
      </Form>
    </Card>
  );
}

Data Tables

import { DataTable } from '@voilajsx/uikit';

function UserList() {
  return (
    <DataTable 
      data={users}
      columns={[
        { key: 'name', label: 'Name' },
        { key: 'email', label: 'Email' },
        { key: 'role', label: 'Role' }
      ]}
    />
  );
}

Layout Examples

// Admin dashboard
<AdminLayout>
  <AdminLayout.Sidebar navigation={nav} />
  <AdminLayout.Header title="Dashboard" />
  <AdminLayout.Content>
    <DataTable data={users} />
  </AdminLayout.Content>
</AdminLayout>

// Auth pages  
<AuthLayout scheme="hero" imageUrl="/hero.jpg">
  <LoginForm />
</AuthLayout>

// Marketing pages
<PageLayout>
  <PageLayout.Header logo="MyApp" navigation={nav} />
  <PageLayout.Content>
    <Hero />
  </PageLayout.Content>
  <PageLayout.Footer />
</PageLayout>

Key Concepts

Semantic Colors - Use bg-primary, text-foreground, bg-background for theme compatibility
TypeScript First - Full type safety with IntelliSense
Zero Config - Works out of the box, customize when needed
Accessible - Built on Radix UI primitives

Installation

Only when using in existing projects:

npm install @voilajsx/uikit react react-dom

Resources


Built with @voilajsx/uikit