Skip to content

Introduction ​

Welcome to Galaxy UI - a universal component library that brings beautiful, accessible components to Vue, React, Angular, React Native, and Flutter.

What is Galaxy UI? ​

Galaxy UI is a collection of re-usable components that spans both web and mobile platforms. For web, components are built on top of Radix primitives and styled with Tailwind CSS. For mobile, React Native uses NativeWind v4 and Flutter uses Material Design 3. Unlike traditional component libraries, Galaxy UI follows the copy-paste philosophy pioneered by shadcn/ui.

Key Features ​

  • 🎨 Universal Platform Support - Vue 3.3+, React 18+, Angular 18+, React Native 0.74+, Flutter 3.24+
  • 📱 Web + Mobile - Framework-specific registries across five platforms, with coverage differences documented explicitly
  • ♿ Accessible - Built on Radix primitives (Radix UI, Radix Vue, Radix NG) with WAI-ARIA support
  • 🎭 Customizable - Tailwind CSS + CSS variables (web), NativeWind v4 (React Native), Material Design 3 (Flutter)
  • 📦 Copy-Paste - Full code ownership, type-safe props, no locked dependencies
  • 🌙 Dark Mode - CSS variables theming (web), system theme detection (mobile)
  • 🚀 CLI Tool - galaxy-design CLI with framework auto-detection
  • 📱 Mobile-First - Dedicated React Native and Flutter catalogs optimized for their runtimes
  • 🔧 TypeScript - Full type safety with inferred prop types across all frameworks

Why Copy-Paste? ​

Traditional Libraries ​

bash
npm install some-ui-library

Problems:

  • ❌ Version conflicts
  • ❌ Bundle size bloat
  • ❌ Limited customization
  • ❌ Breaking changes in updates

Galaxy UI Approach ​

bash
galaxy-design add button

Benefits:

  • ✅ Full code ownership
  • ✅ Complete customization
  • ✅ No version conflicts
  • ✅ Tree-shaking friendly

Platform Support ​

Galaxy UI provides the same beautiful components across five platforms:

Web Frameworks ​

Vue 3 ​

Built with Radix Vue primitives.

vue
<script setup lang="ts">
import { Button } from '@/components/ui/button'
</script>

<template>
  <Button>Click me</Button>
</template>

React ​

Built with Radix UI primitives.

tsx
import { Button } from "@/components/ui/button"

export default function App() {
  return <Button>Click me</Button>
}

Angular ​

Built with Radix NG primitives.

typescript
import { ButtonComponent } from '@/components/ui/button';

@Component({
  template: `<ui-button>Click me</ui-button>`
})
export class AppComponent {}

Mobile Platforms ​

React Native ​

Built with NativeWind v4 for styling.

tsx
import { Button, ButtonText } from '@/components/ui/button'

export default function App() {
  return (
    <Button variant="default">
      <ButtonText>Click me</ButtonText>
    </Button>
  )
}

Flutter ​

Built with Material Design 3 components.

dart
import 'package:your_app/components/ui/button.dart';

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Button(
      variant: ButtonVariant.defaultVariant,
      onPressed: () {},
      child: Text('Click me'),
    );
  }
}

How It Works ​

  1. Initialize your project with galaxy-design init
  2. Add components you need with galaxy-design add [component]
  3. Customize the copied code as needed
  4. Ship your application
bash
# Step 1: Initialize
galaxy-design init

# Step 2: Add components
galaxy-design add button input card

# Step 3: Use in your app
# Components are now in your src/components/ui folder

Architecture ​

Galaxy UI is built on three pillars:

1. Radix Primitives ​

Unstyled, accessible components that handle:

  • ♿ Accessibility (ARIA attributes)
  • ⌨️ Keyboard navigation
  • 🎯 Focus management
  • 📱 Touch/mouse interactions

2. Tailwind CSS ​

Utility-first CSS framework for:

  • 🎨 Styling components
  • 🌙 Dark mode
  • 📱 Responsive design
  • 🎭 Easy customization

3. Framework Wrappers ​

Thin wrappers around Radix primitives:

  • Vue 3 composables
  • React hooks
  • Angular services

Philosophy ​

Own Your Code ​

When you use Galaxy UI, you're not installing a black-box package. You're copying well-tested, production-ready code into your project.

Customize Without Limits ​

Every component is just TypeScript/JavaScript and Tailwind classes. Modify anything:

  • Change colors, spacing, borders
  • Add or remove features
  • Integrate with your state management
  • Adapt to your design system

Learn By Reading ​

The best way to learn is by reading code. With Galaxy UI, every component's source is in your project. Learn how things work!

What's Next? ​

Ready to get started? Follow our installation guide:

→ Installation Guide

Credits ​

Galaxy UI is inspired by and built upon the work of:

Released under the MIT License.