Overview
Lumen Blocks is an open-source Rust UI component library I created to improve the developer experience of building interfaces with a Rust framework called Dioxus. The project is inspired by the ergonomics and composability of shadcn UI, but adapted to the Rust and Dioxus ecosystem.
The library provides styled, opinionated, ARIA-accessible components on top of Dioxus Primitives (a library of unstyled components), along with a documentation site containing interactive demos. It is both a product in itself and an exploration of what a polished component ecosystem could look like in Rust-based frontend development.
What it is
- Accessible, styled, opinionated UI components for Dioxus.
- Built on top of Dioxus Primitives, which provide lower-level unstyled building blocks.
- Inspired by the developer experience and structure of shadcn UI.
- Designed to make Rust UI development more composable, ergonomic, and consistent.
- Includes a documentation and preview site for a nice developer experience.
Why I built it
Frustrated with issues in the Javascript ecosystem, I wanted to develop full-stack web applications using Rust — a language that I really enjoy using. Given my previous experience with React, the Dioxus framework felt like a good fit. However, once I started using it, I quickly noticed there was no UI component library similar to shadcn/ui.
And so I created Lumen Blocks, an open-source UI component library for Dioxus styled with Tailwind CSS, and inspired by shadcn/ui. I wanted the library to feel genuinely useful, so I not only worked on the components themselves, but also on creating a great documentation website containing extensive documentation and live previews.
Highlights
Working in an emerging ecosystem
Dioxus is not a mainstream frontend stack, which makes this project a good example of my willingness to work effectively in smaller or emerging ecosystems. I don't mind quickly learning new tools — and contributing to the ecosystem when possible — when those tools are best-suited for a particular project.
Developer tooling taste
Lumen Blocks reflects my interest in building opinionated tools that bring a good sense of taste, great packaging, and good developer ergonomics. Building a good product is not only about whether the core functionality works, but everything around it that makes up the user experience: How it feels to discover, adopt, extend, and build with.
A beautiful documentation site designed as part of the product
One of the important engineering aspects of Lumen Blocks is that the documentation site is treated as part of the product rather than an afterthought. The project includes a dedicated docs and preview environment, which makes the library easier to explore, evaluate, and adopt.