Skip to content

Latest commit

 

History

57 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Radix-Leptos

High-performance, accessible UI components for Leptos with 57+ components and 1200+ tests

Crates.io Documentation License Rust

A Rust port of Radix UI primitives for Leptos, providing accessible, unstyled UI components with exceptional performance.

✨ Features

  • 🚀 High Performance: 538KB optimized WASM bundle (down from 5.8MB!)
  • ♿ Accessibility First: Built with ARIA compliance and keyboard navigation
  • 🎨 Unstyled Components: Clean, customizable components without opinionated styling
  • 🌐 SSR & Hydration: Full support for server-side rendering and hydration
  • 🧪 Comprehensive Testing: 1,792+ passing tests with TDD infrastructure, property-based testing, and mutation testing
  • 📱 Responsive Design: Mobile-first components with touch support
  • 🔧 Feature Flags: core, experimental, and full feature sets for optimal bundle sizes
  • 🔒 Type Safety: Full Rust type safety with excellent IDE support
  • ⚡ Zero Runtime: No JavaScript runtime overhead, pure WASM performance
  • 🧪 TDD Infrastructure: World-class Test-Driven Development with 1,792+ passing tests
  • 🔬 Property-Based Testing: Edge case detection with proptest
  • 🎯 Quality Gates: Automated compliance checking and mutation testing

🗺️ Roadmap

Radix-Leptos is on track to achieve complete parity with Radix UI Primitives:

📊 Current Progress: 95% Complete

  • 57 Components implemented with TDD
  • Complete TDD Infrastructure (100%)
  • 1,865+ Passing Tests across all crates
  • 🔄 3+ Components planned for v1.0.0

🚀 Recent Releases

  • v0.9.0 (January 2025): ✅ COMPLETE - Architecture Refactoring & Critical Fixes Release
    • 🏗️ Complete Architecture Refactoring (modular components)
    • 🔧 45 Critical Compilation Errors Fixed → 0 errors
    • 1,865 Tests Passing (100% Success Rate)
    • 🚀 Feature Gating System (core/experimental/full)
    • 📦 Full Backward Compatibility

🚀 Upcoming Releases

  • v0.3.0 (September 2025): ✅ COMPLETE - Core form components (Dialog, Form, Select, etc.)
  • v0.4.0 (September 2025): ✅ COMPLETE - Navigation and layout components
  • v0.5.0 (September 2025): ✅ COMPLETE - Advanced data visualization and specialized components
  • v0.6.0 (September 2025): ✅ COMPLETE - Enhanced components and advanced UI patterns
  • v1.0.0 (Q2 2026): Complete Radix UI parity

📋 View Full Roadmap | 📊 Component Progress

📦 Installation

[dependencies]
radix-leptos = "0.9.0"
leptos = "0.8.8"  # ✅ Full compatibility with latest Leptos!

# For minimal bundle size (recommended for production)
radix-leptos = { version = "0.8.5", features = ["core"] }

# For all components
radix-leptos = { version = "0.8.5", features = ["full"] }

# For experimental components (use with caution)
radix-leptos = { version = "0.8.5", features = ["experimental"] }

Leptos 0.8.8 Compatibility

Radix-Leptos v0.8.5 is fully compatible with Leptos 0.8.8!

Radix-Leptos Version Leptos Version Status
0.8.4 0.8.7 and earlier ✅ Compatible
0.8.4 0.8.8 Broken (compilation errors)
0.8.5 0.8.8 Compatible
0.8.5 0.8.7 and earlier Compatible

What's Fixed in v0.8.5

  • 4 Critical Compilation Errors resolved
  • Signal Attribute System updated for Leptos 0.8.8
  • Dark Mode Components fully functional
  • Theme Provider Components fully functional
  • Zero Breaking Changes to public API
  • Zero Migration Required for users

🚀 Quick Start

use leptos::*;
use radix_leptos::*;

#[component]
pub fn App() -> impl IntoView {
    view! {
        <div>
            <Button>Click me!</Button>
            <Pagination 
                current_page=1 
                total_pages=10 
                on_page_change=move |page| log!("Page changed to {}", page)
            />
        </div>
    }
}

🏗️ Module Structure & Feature Flags

Radix-Leptos is organized into a clean, modular architecture with feature flags for optimal bundle sizes:

📦 Core Modules

  • components/ - All UI components organized by functionality
  • theming/ - Theme system with prebuilt themes and customization
  • utils/ - Shared utilities (merge_classes, generate_id, etc.)

🔧 Feature Flags

Feature Description Components Included
core Production-ready components Button, Checkbox, Dialog, Form, Input, Select, etc.
experimental Incomplete/experimental components Chart, DataTable, VirtualList, RichTextEditor, etc.
full All components core + experimental

📁 Component Organization

components/
├── Core Components (always available)
│   ├── button.rs, checkbox.rs, dialog.rs
│   ├── form.rs, input.rs, select.rs
│   └── pagination/, form_validation/
├── Experimental Components (feature-gated)
│   ├── chart.rs, data_table.rs
│   ├── virtual_list.rs, rich_text_editor.rs
│   └── [Many more...]
└── mod.rs (with feature gating)

🎯 Usage Recommendations

  • Production: Use features = ["core"] for stable, tested components
  • Development: Use features = ["full"] for access to all components
  • Experimental: Use features = ["experimental"] to test incomplete components

📝 More Examples

Basic Button Component

use radix_leptos::Button;

#[component]
pub fn MyButton() -> impl IntoView {
    view! {
        <Button 
            on_click=move |_| log!("Button clicked!") 
            variant="primary"
            size="large"
        >
            "Click me!"
        </Button>
    }
}

Advanced Pagination

use radix_leptos::pagination::*;

#[component]
pub fn MyPagination() -> impl IntoView {
    let (current_page, set_current_page) = signal(1);
    
    view! {
        <Pagination 
            current_page=current_page
            total_pages=25
            page_size=10
            on_page_change=move |page| set_current_page.set(page)
        >
            <PaginationContent>
                <PaginationItem>
                    <PaginationPrevious />
                </PaginationItem>
                <PaginationItem>
                    <PaginationNext />
                </PaginationItem>
            </PaginationContent>
        </Pagination>
    }
}

📦 Available Components

Core Components (Available with core feature)

  • Pagination: Page navigation with multiple variants and sizes
  • Navigation: Basic navigation utilities and patterns
  • Core Utilities: Essential traits and helper functions

Full Components (Available with full feature)

  • Form Components: Button, TextInput, Select, Checkbox, RadioGroup, Switch, Slider
  • Feedback Components: Toast, Alert, Badge, Avatar, Progress
  • Media Components: Image, Video, Audio, Carousel
  • Navigation Components: DropdownMenu, NavigationMenu, Menubar, HoverCard, Popover, ScrollArea, Toggle, ToggleGroup, Toolbar
  • Data Visualization: Chart, DataTable, VirtualList, SplitPane, LineChart, BarChart, PieChart, ScatterPlot
  • Advanced Components: DragDrop, RichTextEditor, ColorPicker, ImageViewer, CodeEditor, Timeline, Gauge, CommandPalette
  • Enhanced Components: Context Menu, Collapsible, Aspect Ratio, Calendar, Date Picker, File Upload, Search, Combobox, Avatar, Separator, Label, Toast

🧪 Testing & Examples

# Run comprehensive tests
pnpm run test:all

# Start development server
pnpm run start:dev

# Build production bundle
pnpm run build:prod

📊 Performance Metrics

Metric Before After Improvement
Bundle Size 5.8MB 538KB 92.7% reduction
Load Time ~15s ~130ms 98.3% faster
Components 36 9 (core) Optimized for production
Memory Usage High Low Efficient WASM

🆚 Why Choose Radix-Leptos?

Feature Radix-Leptos Traditional JS Other Rust UI
Bundle Size 538KB 2-5MB+ 1-3MB+
Performance Native WASM JavaScript WASM + JS
Type Safety Rust-level TypeScript Rust-level
Accessibility Built-in ARIA Varies Varies
Styling Unstyled Often opinionated Mixed
SSR Support Full Limited Limited
Memory Usage Low High Medium

🧪 Testing

# Run all tests
pnpm run test:all

# Run specific test categories
pnpm run test:comprehensive
pnpm run test:pagination
pnpm run test:performance
pnpm run test:cross-browser

# Manual testing
open http://localhost:8081/manual-test-suite.html

🏗️ Architecture

radix-leptos/
├── crates/                      # Core library crates
│   ├── radix-leptos-core/      # Core utilities and traits
│   ├── radix-leptos-primitives/ # UI component primitives
│   └── radix-leptos/           # Main library facade
├── examples/                    # Example applications
├── docs/                        # Documentation
│   ├── remediation/            # Remediation documentation
│   ├── releases/               # Release notes and changelogs
│   ├── developer-guide/        # Development guidelines
│   └── user-guide/             # User documentation
├── tests/                       # Comprehensive test suite
│   ├── unit/                   # Unit tests
│   ├── integration/            # Integration tests
│   ├── e2e/                    # End-to-end tests
│   └── performance/            # Performance tests
└── scripts/                     # Development scripts
    ├── remediation/            # Error fixing and remediation
    ├── maintenance/            # Build and deployment
    └── testing/                # Test automation

🛠️ Development Scripts

The project includes organized automation scripts for development and maintenance:

Remediation Scripts (scripts/remediation/)

  • Error fixing scripts for systematic code remediation
  • Phase execution scripts for organized error resolution
  • Complete remediation automation for large-scale fixes

Maintenance Scripts (scripts/maintenance/)

  • Build automation for development and production
  • Deployment scripts for automated releases
  • Test execution for comprehensive validation

Usage

# Run complete remediation
./scripts/remediation/run_full_remediation.sh

# Build for production
./scripts/maintenance/build-production.sh

# Run all tests
./scripts/maintenance/run-tests.sh

🔧 Feature Flags

Core Features (core)

  • Pagination components
  • Basic navigation
  • Essential utilities

Full Features (full)

  • All components
  • Advanced interactions
  • Extended functionality

📚 Documentation

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

📄 License

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

🙏 Acknowledgments

  • Radix UI for the original design system
  • Leptos for the amazing Rust web framework
  • The Rust community for continuous support

🚀 Roadmap

  • Core component library
  • Performance optimization
  • Comprehensive testing
  • Production deployment
  • Additional components
  • Theme system
  • Animation library
  • Component playground

📋 View Full Development Roadmap

🌟 Community & Support

🏆 Production Ready

Radix-Leptos is production-ready with:

  • Comprehensive Testing: 10+ Playwright tests
  • Performance Optimized: 538KB bundle size
  • Accessibility Compliant: WCAG guidelines
  • Cross-Browser: Chrome, Firefox, Safari, Edge
  • Mobile Support: Touch and responsive design
  • Type Safe: Full Rust type safety

Ready for production use with 538KB optimized bundle! 🎉

Latest Version: v0.8.5 - ✅ Leptos 0.8.8 Compatibility Release with 1,792+ passing tests!

About

High-performance, accessible UI components for Leptos - Rust port of Radix UI primitives with 57+ components, 1200+ tests, and 538KB optimized bundle

Resources

Stars

21 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages