Skip to content

Ohh-889/skyroc-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Skyroc UI

Skyroc UI License TypeScript React Tailwind CSS

A modern React UI component library monorepo built with Radix UI and Tailwind CSS.

English | ็ฎ€ไฝ“ไธญๆ–‡

Overview

Skyroc UI is a comprehensive monorepo containing a modern React UI component library along with its supporting toolchain. The monorepo structure allows for better development experience, shared configurations, and seamless integration between packages.

Why a Monorepo?

  • Unified Development - All packages share the same development environment and tooling
  • Seamless Integration - Components, plugins, and utilities work together out of the box
  • Consistent Quality - Shared ESLint, TypeScript, and testing configurations
  • Simplified Maintenance - Single repository for issues, PRs, and releases
  • Better DX - Easy cross-package development and testing

Packages

Core Packages

Package Description npm
skyroc-ui Core UI component library with 50+ components npm
@skyroc/tailwind-plugin Tailwind CSS plugin for theming and design tokens npm
@skyroc/color Color system utilities for palette generation npm

Primitives

Package Description npm
@skyroc/form Advanced form handling with type-safe field management npm
@skyroc/utils Utility functions and helpers npm
@skyroc/type-utils Advanced TypeScript utility types npm
@skyroc/virtualizer Headless virtualizer for large lists and grids npm

Developer Tools

Package Description npm
@skyroc/cli CLI for git commits, changelog, and releases npm
create-skyroc Project scaffolding tool npm
@skyroc/eslint-config ESLint flat config for React, Vue, Next.js npm

Documentation (Internal)

Package Description
@skyroc/next-docs-plugin MDX plugin for documentation
@skyroc/next-docs-themes Theme components for documentation

Development Projects

This monorepo includes two essential development projects for working with and showcasing the component library:

๐ŸŽฎ Playground

An interactive component showcase and testing environment built with Next.js. The playground allows you to:

  • Browse all components - Explore 50+ components with live examples
  • Test interactions - Try different component states and variants
  • View source code - See implementation details for each demo
  • Develop new components - Test components in isolation during development

Quick start:

cd playground
pnpm dev
# Open http://localhost:3000

๐Ÿ“– View Playground README

๐Ÿ“š Documentation Site

A comprehensive documentation website built with Next.js and MDX, featuring:

  • Complete API documentation - Detailed component APIs and props
  • Usage guides - Step-by-step tutorials and best practices
  • Live code previews - Interactive examples with editable code
  • Search functionality - Quick access to any component or guide

Quick start:

cd docs
pnpm dev
# Open http://localhost:3000

๐Ÿ“– View Docs README

Features

  • Modern Design - Beautiful and clean design with light/dark theme support
  • 50+ Components - Comprehensive collection of high-quality React components
  • Highly Customizable - Built with Tailwind CSS, supports theme customization
  • Responsive - Mobile-first design that works on all devices
  • Accessible - Built on Radix UI, follows WAI-ARIA standards
  • TypeScript - Full TypeScript support with excellent DX
  • Powerful Forms - Built-in form system with validation and state management
  • Tree Shaking - Optimized bundle size with tree-shaking support
  • SSR Ready - Perfect support for Next.js and other SSR frameworks

Quick Start

Using the Scaffolding Tool

npx create-skyroc my-app
cd my-app
npm run dev

Manual Installation

# Install the UI library
npm install skyroc-ui

# Install the Tailwind plugin
npm install @skyroc/tailwind-plugin

Configure Tailwind CSS:

// tailwind.config.js
import { skyrocUIPlugin } from '@skyroc/tailwind-plugin'

export default {
  content: [
    './src/**/*.{js,ts,jsx,tsx}',
    './node_modules/skyroc-ui/dist/**/*.{js,ts,jsx,tsx}'
  ],
  plugins: [skyrocUIPlugin()]
}

Use components:

import { Button, Card, Input } from 'skyroc-ui'

function App() {
  return (
    <Card>
      <Card.Header>
        <Card.Title>Welcome to Skyroc UI</Card.Title>
      </Card.Header>
      <Card.Content className="space-y-4">
        <Input placeholder="Enter text" />
        <Button>Submit</Button>
      </Card.Content>
    </Card>
  )
}

Project Structure

skyroc-ui/
โ”œโ”€โ”€ packages/                 # Published packages
โ”‚   โ”œโ”€โ”€ ui/                  # Core UI component library
โ”‚   โ”œโ”€โ”€ tailwind-plugin/     # Tailwind CSS plugin
โ”‚   โ”œโ”€โ”€ color/               # Color system utilities
โ”‚   โ”œโ”€โ”€ eslint-config/       # ESLint configuration
โ”‚   โ”œโ”€โ”€ next-docs-plugin/    # Documentation MDX plugin
โ”‚   โ””โ”€โ”€ next-docs-themes/    # Documentation themes
โ”œโ”€โ”€ primitives/              # Low-level primitives
โ”‚   โ”œโ”€โ”€ filed-form/          # Form handling system
โ”‚   โ”œโ”€โ”€ utils/               # Utility functions
โ”‚   โ”œโ”€โ”€ type-utils/          # TypeScript utilities
โ”‚   โ””โ”€โ”€ virtualizer/         # Virtual scrolling
โ”œโ”€โ”€ internal/                # Internal tools
โ”‚   โ”œโ”€โ”€ cli/                 # CLI tool
โ”‚   โ””โ”€โ”€ create-skyroc/       # Project scaffolding
โ”œโ”€โ”€ playground/              # Component demos and testing
โ””โ”€โ”€ docs/                    # Documentation site

Development

Prerequisites

  • Node.js >= 18
  • pnpm >= 9.0.0

Setup

# Clone the repository
git clone https://github.com/Ohh-889/skyroc-ui.git
cd skyroc-ui

# Install dependencies
pnpm install

# Start development
pnpm dev

# Build all packages
pnpm build

# Run linting
pnpm lint

Scripts

Command Description
pnpm dev Start development server
pnpm build Build all packages
pnpm lint Run ESLint
pnpm format Format code
pnpm deploy:playground Deploy playground

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting a PR.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Contact


If this project helps you, please give it a star!

About

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages