Introduction

Corvu is a collection of open source UI primitives for SolidJS that are unstyled, accessible and aim to be highly customizable while providing a delightful developer experience.

🚧 Corvu is still under heavy development and in its very early stages🐣. Please be aware of that while using it. New primitives will be available soon. Stay tuned!

Features

Unstyled

Primitives do not provide any styling, allowing you to bring your own and style them according to your preferences or style guidelines. You can use TailwindCSS, any CSS-in-JS library or plain old CSS to style it. We provide a small TailwindCSS plugin which makes it easy to style components based on their current state. Read more in Styling.

Unopinionated

Corvu allows you to customize almost every aspect of all primitives while providing great defaults. There is an API section for every primitive describing all the available props and their default values. Read more in State.

Corvu also provides a set of utilities like createFocusTrap, createPresence and <Polymorphic> that can be used to build your own accessible primitives.

Accessible

All primitives have been developed with accessibility in mind. They strictly adhere to the WAI-ARIA guidelines and take care of all the complex stuff like aria attributes, focus management and keyboard interactions. The documentation describes the accessibility features implemented for each primitive and how to change them according to your needs.

SSR

Corvu provides a solid export for SSR and works out of the box with SolidStart.

Community

If you have any questions, feature requests or just want to write a kind message, feel free to head over to the discussions tab on the GitHub repository. We are always happy to help and love to hear from you.

Inspiration & Credits

We love open source and collaborative work. While developing corvu, we were inspired by many other open source projects and authors and we thank them for their work.

Some of the projects that have inspired corvu, in no particular order:

Additional thanks

  • Fabio Spampinato for helping me understand the nitty-gritty parts of SolidJS
  • Solid Primitives for awesome, high-quality reactivity primitives which make working with SolidJS a breeze
  • Ryan Carniato for his highly educational Friday streams
corvu@0.2.3

Developed and designed by Jasmin