Convert Figma logo to code with AI

tremorlabs logotremor-npm

React components to build charts and dashboards

16,352
470
16,352
62

Top Related Projects

79,097

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.

38,784

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:

  1. Install the package:

    npm install @tremor/react
    
  2. 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>
    );
    
  3. Wrap your app with the TremorProvider for theme support:

    import { TremorProvider } from "@tremor/react";
    
    const App = () => (
      <TremorProvider>
        {/* Your app components */}
      </TremorProvider>
    );
    

Competitor Comparisons

79,097

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.

38,784

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README



Tremor Logo



DocumentationWebsite


React components to build charts and dashboards

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.


Tremor Banner


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>
  );
}

Tremor Example

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

Apache License 2.0

Copyright © 2025 Tremor Labs, Inc. All rights reserved.

NPM DownloadsLast 30 Days