jramke/fluid-primitives

The headless component library for TYPO3 Fluid

Maintainers

Package info

github.com/jramke/fluid-primitives

Type:typo3-cms-extension

pkg:composer/jramke/fluid-primitives

Statistics

Installs: 71

Dependents: 0

Suggesters: 0

Stars: 8

Open Issues: 5

0.17.2 2026-03-22 21:31 UTC

README

The headless component library for TYPO3 Fluid

Fluid Primitives

Unstyled, flexible and accessible UI Primitives that provide a foundation for building your own component library in Fluid.

Fluid Primitives brings modern component patterns to TYPO3. Build accessible, composable UI components with the same developer experience you'd expect from React libraries like Radix or Base UI - but for Fluid templates.

Full documentation can be found at fluid-primitives.com.

What You Get

Accessible by default. Every interactive component handles keyboard navigation, focus management, and ARIA attributes automatically via Zag.js state machines.

Composable API. No more prop drilling. Build complex UIs by composing small, focused parts that work together.

Unstyled. Zero design opinions. Use Tailwind, vanilla CSS, or any styling approach. You control every pixel.

Server-rendered. Components render on the server with PHP/Fluid, then hydrate on the client. No layout shift, great for SEO.

Quick Example

A tooltip with full accessibility support in just a few lines:

<ui:tooltip.root>
    <ui:tooltip.trigger>Hover me</ui:tooltip.trigger>
    <ui:tooltip.content>Tooltip content here</ui:tooltip.content>
</ui:tooltip.root>

That's it. Keyboard support, focus handling, proper ARIA attributes - all handled.

Why This Exists

TYPO3 Fluid lacked an elegant solution for building robust, interactive components. The typical approach leads to bloated templates with complex conditional logic, poor accessibility, and custom JavaScript that's hard to maintain.

Fluid Primitives solves this by bringing proven patterns from the modern frontend ecosystem to TYPO3, while respecting its server-first architecture.

Acknowledgments

Built on the shoulders of giants:

  • Zag.js - The state machine foundation
  • Radix UI - API design inspiration
  • Base UI - Component behavior patterns
  • Ark UI - Zag.js integration patterns

Documentation

The full documentation can be found at fluid-primitives.com.

Development

See github.com/jramke/fluid-primitives.com monorepo for the development setup.