Top Related Projects
Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.
Radix Primitives is an open-source UI component library for building high-quality, accessible design systems and web apps. Maintained by @workos.
Chakra UI is a component system for building products with speed ⚡️
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Bootstrap components built with React
Quick Overview
Tremor is a React library for building dashboards and data visualization applications. It provides a collection of customizable, composable components that make it easy to create beautiful and interactive charts, graphs, and other data visualizations.
Pros
- Extensive set of pre-built components for various chart types and UI elements
- Highly customizable with a consistent API across components
- Built with TypeScript, offering strong type safety and better developer experience
- Responsive design and dark mode support out of the box
Cons
- Learning curve for developers new to data visualization libraries
- Limited animation options compared to some other charting libraries
- Documentation could be more comprehensive, especially for advanced use cases
- Relatively new project, which may lead to more frequent breaking changes
Code Examples
Creating a simple line chart:
import { LineChart } from "@tremor/react";
const chartdata = [
{ date: "Jan 22", Sales: 2890 },
{ date: "Feb 22", Sales: 1890 },
// ... more data
];
const Chart = () => (
<LineChart
data={chartdata}
index="date"
categories={["Sales"]}
colors={["blue"]}
yAxisWidth={40}
/>
);
Creating a card with a metric:
import { Card, Metric, Text } from "@tremor/react";
const MetricCard = () => (
<Card>
<Text>Sales</Text>
<Metric>$ 71,465</Metric>
</Card>
);
Using a donut chart with custom colors:
import { DonutChart } from "@tremor/react";
const cities = [
{ name: "New York", sales: 9800 },
{ name: "London", sales: 4567 },
{ name: "Hong Kong", sales: 3908 },
];
const DonutChartExample = () => (
<DonutChart
data={cities}
category="sales"
index="name"
colors={["slate", "violet", "indigo"]}
/>
);
Getting Started
To start using Tremor in your React project:
-
Install the package:
npm install @tremor/react
-
Import and use Tremor components in your React components:
import { Card, Text, Metric } from "@tremor/react"; const MyComponent = () => ( <Card> <Text>Total Revenue</Text> <Metric>$ 34,743</Metric> </Card> );
-
Wrap your app with the
TremorProvider
for theme support:import { TremorProvider } from "@tremor/react"; const App = () => ( <TremorProvider> {/* Your app components */} </TremorProvider> );
Competitor Comparisons
Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
Pros of shadcn-ui
- Highly customizable and flexible component system
- Supports multiple themes and easy styling
- Provides a CLI for easy component installation
Cons of shadcn-ui
- Requires more setup and configuration
- Less opinionated, which may lead to inconsistencies
- Steeper learning curve for beginners
Code Comparison
shadcn-ui:
import { Button } from "@/components/ui/button"
export function ButtonDemo() {
return <Button variant="outline">Click me</Button>
}
tremor:
import { Button } from "@tremor/react"
export function ButtonDemo() {
return <Button variant="secondary">Click me</Button>
}
Both libraries offer similar component usage, but shadcn-ui provides more customization options through its theming system and utility classes. Tremor, on the other hand, offers a more opinionated and consistent design out of the box.
shadcn-ui is better suited for projects requiring extensive customization and flexibility, while Tremor is ideal for quickly building dashboards and data-heavy applications with a consistent look and feel.
Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.
Pros of Headless UI
- More flexible and customizable, allowing for greater control over styling and behavior
- Broader range of components, including complex UI elements like comboboxes and dialogs
- Stronger TypeScript support and better type definitions
Cons of Headless UI
- Requires more effort to style and implement, as it provides unstyled components
- Steeper learning curve, especially for developers new to headless UI concepts
- Less out-of-the-box visual consistency compared to Tremor's pre-styled components
Code Comparison
Headless UI (Menu component):
import { Menu } from '@headlessui/react'
function MyMenu() {
return (
<Menu>
<Menu.Button>Options</Menu.Button>
<Menu.Items>
<Menu.Item>
{({ active }) => (
<a className={`${active && 'bg-blue-500'}`} href="/account">
Account
</a>
)}
</Menu.Item>
{/* More items... */}
</Menu.Items>
</Menu>
)
}
Tremor (Select component):
import { Select, SelectItem } from "@tremor/react";
function MySelect() {
return (
<Select value="option1" onValueChange={(value) => console.log(value)}>
<SelectItem value="option1">Option 1</SelectItem>
<SelectItem value="option2">Option 2</SelectItem>
<SelectItem value="option3">Option 3</SelectItem>
</Select>
);
}
Radix Primitives is an open-source UI component library for building high-quality, accessible design systems and web apps. Maintained by @workos.
Pros of Primitives
- Highly customizable and flexible, allowing for more granular control over UI components
- Extensive set of accessible and unstyled components, providing a solid foundation for various design systems
- Strong focus on accessibility and keyboard navigation out-of-the-box
Cons of Primitives
- Requires more setup and configuration to achieve desired styling and functionality
- Steeper learning curve due to its low-level nature and extensive API
- May require additional styling libraries or custom CSS for a polished look
Code Comparison
Primitives example:
import * as Checkbox from '@radix-ui/react-checkbox';
const MyCheckbox = () => (
<Checkbox.Root className="CheckboxRoot" defaultChecked id="c1">
<Checkbox.Indicator className="CheckboxIndicator">
<CheckIcon />
</Checkbox.Indicator>
</Checkbox.Root>
);
Tremor example:
import { Checkbox } from "@tremor/react";
const MyCheckbox = () => (
<Checkbox id="c1" defaultChecked>
Label
</Checkbox>
);
Summary
Primitives offers more flexibility and customization but requires more setup, while Tremor provides a quicker start with pre-styled components. Primitives is better suited for projects needing fine-grained control, whereas Tremor is ideal for rapid development with consistent styling.
Chakra UI is a component system for building products with speed ⚡️
Pros of Chakra UI
- More comprehensive component library with a wider range of UI elements
- Stronger community support and ecosystem, with more resources and third-party extensions
- Better accessibility features out-of-the-box
Cons of Chakra UI
- Steeper learning curve due to its larger API surface
- Potentially larger bundle size, which may impact performance for smaller projects
- Less focused on data visualization and dashboard-specific components
Code Comparison
Chakra UI example:
import { Box, Button, Text } from "@chakra-ui/react"
function Example() {
return (
<Box>
<Text>Hello, Chakra UI!</Text>
<Button colorScheme="blue">Click me</Button>
</Box>
)
}
Tremor example:
import { Card, Text, Button } from "@tremor/react"
function Example() {
return (
<Card>
<Text>Hello, Tremor!</Text>
<Button>Click me</Button>
</Card>
)
}
Both libraries offer a similar component-based approach, but Chakra UI provides more styling options out-of-the-box, while Tremor focuses on simplicity and data-centric components. Chakra UI's ecosystem is more extensive, but Tremor excels in creating dashboards and data visualizations with less complexity.
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Pros of Material-UI
- Extensive component library with a wide range of UI elements
- Strong community support and regular updates
- Highly customizable with theming capabilities
Cons of Material-UI
- Steeper learning curve due to its comprehensive nature
- Larger bundle size, which may impact performance in some cases
- Opinionated design system that may not fit all project aesthetics
Code Comparison
Material-UI:
import { Button, TextField } from '@mui/material';
function MyComponent() {
return (
<>
<TextField label="Name" variant="outlined" />
<Button variant="contained" color="primary">Submit</Button>
</>
);
}
Tremor:
import { Button, TextInput } from '@tremor/react';
function MyComponent() {
return (
<>
<TextInput placeholder="Name" />
<Button>Submit</Button>
</>
);
}
Key Differences
- Material-UI offers more built-in variants and customization options
- Tremor focuses on simplicity and ease of use for data-driven UIs
- Material-UI has a more extensive ecosystem and third-party integrations
- Tremor provides a more streamlined API for common data visualization components
Both libraries offer React components for building user interfaces, but they cater to different needs. Material-UI is a comprehensive UI library suitable for various applications, while Tremor specializes in creating dashboards and data-heavy interfaces with less complexity.
Bootstrap components built with React
Pros of React Bootstrap
- Mature and widely adopted library with a large community and extensive documentation
- Comprehensive set of components covering most common UI needs
- Seamless integration with Bootstrap's CSS framework for consistent styling
Cons of React Bootstrap
- Heavier bundle size due to its extensive component library
- Less focus on data visualization and analytics-specific components
- May require additional customization for modern, unique designs
Code Comparison
React Bootstrap:
import { Button, Alert } from 'react-bootstrap';
function MyComponent() {
return (
<div>
<Button variant="primary">Click me</Button>
<Alert variant="success">Success message</Alert>
</div>
);
}
Tremor:
import { Button, Card } from '@tremor/react';
function MyComponent() {
return (
<Card>
<Button>Click me</Button>
<p className="text-success">Success message</p>
</Card>
);
}
Key Differences
- Tremor focuses on data-rich interfaces and analytics components
- React Bootstrap provides a wider range of general-purpose UI components
- Tremor offers a more modern, minimalist design approach
- React Bootstrap closely follows Bootstrap's design patterns and classes
Both libraries aim to simplify React development, but they cater to different use cases. Tremor is better suited for data-centric applications, while React Bootstrap excels in creating traditional web interfaces with a familiar Bootstrap look and feel.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Tremor NPM 20+ open-source components built on top of Tailwind CSS to make visualizing data simple again. Fully open-source, made by data scientists and software engineers with a sweet spot for design.
Getting Started
See our Installation Guide. To make use of the library we also need Tailwind CSS setup in the project.
Example
With Tremor creating an analytical interface is easy.
"use client";
import { AreaChart, Card } from "@tremor/react";
const chartdata = [
{
date: "Jan 23",
"Route Requests": 289,
"Station Requests": 233,
},
// ...
{
date: "Oct 23",
"Route Requests": 283,
"Station Requests": 247,
},
];
export default function Example() {
return (
<Card className="max-w-4xl">
<span className="text-tremor-default text-tremor-content dark:text-dark-tremor-content">
Total Requests
</span>
<p className="text-tremor-metric font-semibold text-tremor-content-strong dark:text-dark-tremor-content-strong">
6,568
</p>
<AreaChart
className="mt-2 h-80"
data={chartdata}
index="date"
categories={["Route Requests", "Station Requests"]}
colors={["indigo", "rose"]}
yAxisWidth={33}
/>
</Card>
);
}

Community and Contribution
We are always looking for new ideas or other ways to improve Tremor NPM. If you have developed anything cool or found a bug, send us a pull request. Check out our Contributor License Agreement here.
License
Copyright © 2025 Tremor Labs, Inc. All rights reserved.
Top Related Projects
Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
Completely unstyled, fully accessible UI components, designed to integrate beautifully with Tailwind CSS.
Radix Primitives is an open-source UI component library for building high-quality, accessible design systems and web apps. Maintained by @workos.
Chakra UI is a component system for building products with speed ⚡️
Material UI: Comprehensive React component library that implements Google's Material Design. Free forever.
Bootstrap components built with React
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot