Mosaic Logo

A Leptos component library built with Tailwind CSS v4, designed to work exclusively with Leptos islands architecture. Components use feature flags for selective inclusion and compile styles at build time.

Architecture

  • • Built on Leptos 0.8 for server-side rendering and reactive web applications
  • • Styled with Tailwind CSS v4 utility classes
  • • Feature flags enable opt-in component inclusion
  • • CSS bundling happens at build time via build.rs
  • • ThemeProvider component injects bundled styles (always available, not a feature flag)

Component Structure

Each component consists of a Rust module and dedicated CSS file:

src/components/[component_name]/
├── mod.rs              # Component implementation
└── [component_name].css # Tailwind CSS styles

Usage

Components are enabled via Cargo features. Wrap your Router with ThemeProvider to load styles:

use leptos::prelude::*;
use leptos_router::components::{Router, Routes, Route};
use mosaic_tiles::{ThemeProvider, Button};

#[component]
pub fn App() -> impl IntoView {
    view! {
        <ThemeProvider>
            <Router>
                <main>
                    <Routes fallback=|| "Not found".into_view()>
                        <Route path=StaticSegment("") view=HomePage />
                    </Routes>
                </main>
            </Router>
        </ThemeProvider>
    }
}

Available Components

Use the navigation above to explore component examples and API documentation.