buridan
Use the buridan CLI to add components, apply themes, and manage your Buridan UI project.
All commands must be run from your Reflex project root, where rxconfig.py is located.
Installation
Add buridan to your pyproject.toml:
dependencies = ["buridan=={current version}"]
Then sync your environment with uv:
uv sync
See the Installation page for the full setup guide.
create
Open the Buridan UI theme builder in your browser. Use it to customize your design system and generate a unique preset ID.
buridan create
init
Initialize Buridan UI in your project. This command sets up CSS utilities (shimmer, scrollbar) in assets/globals.css and updates rxconfig.py with the required Tailwind configuration.
buridan init
apply
Apply a theme preset to your project. Generates :root and .dark CSS variable blocks in assets/globals.css based on the preset ID from the theme builder, and records the applied theme in components.json.
buridan apply --preset <ID>
Arguments:
--preset: The theme preset ID from the Buridan UI theme builder. Useb0for the default theme.
Example:
buridan apply --preset b0
buridan apply --preset b2D0wqNxT
Re-running buridan apply with a different preset overwrites the theme section of components.json and the generated CSS variables — it does not touch any components you've already added.
add
Add components and their dependencies to your project.
buridan add <name>
You can add multiple components at once:
buridan add button input select
Blocks (charts, dashboards, etc.) can be added the same way:
buridan add line_chart_01
Components are placed in components/, blocks in blocks/. Dependencies are resolved and added automatically. Every install updates the components section of components.json with the name and version of each installed component.
Note: Components require a theme to render correctly. Run
buridan applybefore using components.
Versioning
Some components have more than one published version. By default, add installs the latest available version:
buridan add button
To pin a specific version, append @<version> to the component name:
buridan add button@1.0.0
Version pins you specify explicitly always take priority over versions pulled in automatically by another component's dependencies. For example, if you run:
buridan add card button@1.0.0
and card normally depends on the latest button, your explicit button@1.0.0 pin wins — card will be installed against button@1.0.0, not whatever the latest version happens to be.
If you pin the same component to two different versions in one command (or the CLI otherwise detects a genuine conflict it can't resolve), it prints a warning and keeps the first version it resolved:
buridan add button@1.0.0 button@2.0.0
# Warning: 'button' requested at both 1.0.0 and 2.0.0; keeping 1.0.0.
list
Display all available components and blocks. If a component has multiple published versions, each version is listed separately (e.g. button@1.0.0, button@2.0.0).
buridan list
Recommended workflow
buridan create
buridan init
buridan apply --preset <ID>
buridan add button input select