Skip to content
This repository was archived by the owner on Mar 7, 2026. It is now read-only.

etherisc/ui-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

166 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UI-Kit & Admin App

Compliance

Overview

Bare-metal React component library (@etherisc/ui-kit) providing 60+ UI primitives for the Etherisc SaaS platform. Built on Radix UI and Tailwind CSS v4, it serves as Layer 1 in the three-layer frontend architecture (ADR-0016). Domain apps consume it indirectly via @etherisc-saas/design.

Key technologies: Radix UI, Tailwind CSS v4, TanStack Table, React Hook Form + Zod, Storybook, Vitest, Playwright.

Installation

For Consumers (Using the UI Kit)

Install the UI kit package in your React project:

# From npm registry (recommended)
npm install @etherisc/ui-kit
# or
pnpm add @etherisc/ui-kit
# or
yarn add @etherisc/ui-kit

# From GitHub Packages (alternative)
npm install @etherisc/ui-kit --registry=https://npm.pkg.github.com

Peer Dependencies

Make sure you have the required peer dependencies installed:

npm install react@>=18.0.0 react-dom@>=18.0.0

Basic Usage

import { Button, TextInput, AppShell } from "@etherisc/ui-kit";
import "@etherisc/ui-kit/dist/style.css";

function App() {
  return (
    <AppShell>
      <div className="p-4">
        <h1>My App</h1>
        <TextInput label="Name" placeholder="Enter your name" />
        <Button variant="primary">Submit</Button>
      </div>
    </AppShell>
  );
}

Available Components

  • Form Components: Button, TextInput, NumberInput, Select, Checkbox, RadioGroup, DatePicker
  • Layout Components: AppShell, AuthShell, MainLayout
  • Data Components: DataTable with pagination and sorting
  • Feedback Components: Toast system, StatusBadge, ErrorBoundary
  • Editor Components: MarkdownEditor, CodeEditor

For complete documentation and examples, visit our Storybook.

Development

For Contributors (Developing the UI Kit)

Quick Start

Option 1: DevContainer (Recommended)

For the most consistent development experience:

  1. Install Docker Desktop and VS Code
  2. Install the Dev Containers extension
  3. Open project in VS Code and select "Reopen in Container"
  4. Everything is automatically set up! πŸš€

Option 2: Local Development

# Install dependencies
pnpm install

# Start development
pnpm dev

# Build library
pnpm build

# Run tests
pnpm test

See setup.md for detailed setup instructions and .devcontainer/README.md for DevContainer documentation.

Bundle Size Monitoring

The UI kit includes automated bundle size monitoring to ensure optimal performance:

# Check current bundle size
pnpm run size-limit

# Build and check size in one command
pnpm build && pnpm run size-limit

Size Limits

  • ES Module Bundle: 1 MB gzipped
  • CommonJS Bundle: 1.5 MB gzipped

The CI pipeline automatically checks bundle sizes on every PR and will fail if the limits are exceeded. This helps prevent bundle bloat and maintains fast loading times for applications using the UI kit.

Contributing

We welcome contributions to the UI Kit! Please read our Contributing Guidelines for detailed information about:

  • πŸš€ Getting Started: Development environment setup and quick start guide
  • πŸ”§ Development Workflow: Branch strategy, commit conventions, and PR process
  • πŸ“‹ Code Standards: TypeScript, React, and styling guidelines
  • πŸ§ͺ Testing: Unit tests, Storybook stories, and accessibility requirements
  • πŸ“š Documentation: How to document components and update guides

Quick Contributing Steps

  1. Fork and clone the repository
  2. Set up development environment (DevContainer recommended)
  3. Create a feature branch from develop
  4. Make your changes following our coding standards
  5. Test thoroughly with pnpm test && pnpm lint
  6. Submit a pull request using our PR template

For bug reports and feature requests, please use our GitHub Issues.

Code of Conduct

This project follows a Code of Conduct to ensure a welcoming environment for all contributors.

Architecture

The ui-kit is a pnpm monorepo with three packages:

  • packages/ui-kit β€” the published component library (@etherisc/ui-kit)
  • packages/showcase β€” demo/admin application for visual testing
  • packages/eslint-plugin-ui-kit-rules β€” custom ESLint rules for component quality

In the platform's three-layer architecture, ui-kit is Layer 1 (bare-metal atoms). It is consumed exclusively by @etherisc-saas/design (Layer 2, in platform-sdk/packages/design). Domain apps (Layer 3) never import from ui-kit directly.

Related Repos

  • platform-sdk β€” contains @etherisc-saas/design which wraps ui-kit
  • platform-app β€” primary domain app consuming the design package
  • saas-architecture β€” architectural governance and compliance rules

About

A comprehensive React UI component library built with TypeScript, Tailwind CSS, and DaisyUI. Features form components, layouts, data tables, and accessibility-first design with Storybook documentation.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors