Tessli

Guided research path

Open-source UI libraries

Goal

Open-source component systems and primitives for building accessible, composable, and implementation-ready web interfaces.

Audience

React product teams selecting primitives, copyable components, or higher-level UI building blocks.

Expected decision

A component-library strategy that balances accessibility, styling ownership, speed, animation needs, and long-term maintenance.

Save sources here, then use Boards to record the choices you want to carry into your project.

Ordered research sequence

Inspect one stage at a time

Start with the first stage, inspect each source against its prompt, and save the references that help you make the decision.

Stage 1

Choose the foundation

Inspect
Compare accessible primitives, hooks, and copy-owned components before evaluating visual libraries.
Decision supported
Decide how much behavior, styling, and source ownership the team wants.
  1. Role — Why included
    shadcn/ui demonstrates copy-owned React components built on accessible primitives.
    Inspect
    Compare accessible primitives, hooks, and copy-owned components before evaluating visual libraries.
    Decision prompt
    Decide how much behavior, styling, and source ownership the team wants.
  2. Role — Why included
    Radix UI represents unstyled accessible primitives with strong behavior ownership.
    Inspect
    Compare accessible primitives, hooks, and copy-owned components before evaluating visual libraries.
    Decision prompt
    Decide how much behavior, styling, and source ownership the team wants.
  3. Role — Why included
    Headless UI offers an alternative unstyled model across React and Vue.
    Inspect
    Compare accessible primitives, hooks, and copy-owned components before evaluating visual libraries.
    Decision prompt
    Decide how much behavior, styling, and source ownership the team wants.

Stage 2

Accelerate common UI

Inspect
Inspect styled and composable component sets that can extend the chosen foundation.
Decision supported
Decide which higher-level components are safe to adopt rather than rebuild.
  1. Role — Why included
    React Aria provides accessibility-focused hooks and components for teams needing deeper behavior control.
    Inspect
    Inspect styled and composable component sets that can extend the chosen foundation.
    Decision prompt
    Decide which higher-level components are safe to adopt rather than rebuild.
  2. Role — Why included
    Park UI shows a styled system built on headless primitives.
    Inspect
    Inspect styled and composable component sets that can extend the chosen foundation.
    Decision prompt
    Decide which higher-level components are safe to adopt rather than rebuild.
  3. Role — Why included
    Kibo UI extends shadcn-oriented projects with more composable application components.
    Inspect
    Inspect styled and composable component sets that can extend the chosen foundation.
    Decision prompt
    Decide which higher-level components are safe to adopt rather than rebuild.

Stage 3

Add expression carefully

Inspect
Review community, interactive, and motion-heavy components only after the accessibility and ownership boundary is fixed.
Decision supported
Choose where expressive components add value without fragmenting the system.
  1. Role — Why included
    Float UI supplies responsive Tailwind sections and components for faster assembly.
    Inspect
    Review community, interactive, and motion-heavy components only after the accessibility and ownership boundary is fixed.
    Decision prompt
    Choose where expressive components add value without fragmenting the system.
  2. Role — Why included
    Uiverse provides community-made visual elements that require selective quality review.
    Inspect
    Review community, interactive, and motion-heavy components only after the accessibility and ownership boundary is fixed.
    Decision prompt
    Choose where expressive components add value without fragmenting the system.
  3. Role — Why included
    React Bits adds animated and interactive React components for targeted expressive moments.
    Inspect
    Review community, interactive, and motion-heavy components only after the accessibility and ownership boundary is fixed.
    Decision prompt
    Choose where expressive components add value without fragmenting the system.
  4. Role — Why included
    Motion Primitives focuses specifically on reusable animated interface building blocks.
    Inspect
    Review community, interactive, and motion-heavy components only after the accessibility and ownership boundary is fixed.
    Decision prompt
    Choose where expressive components add value without fragmenting the system.