npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

daub-react

v0.3.1

Published

React components for DAUB UI — typed JSX wrappers around CSS classes

Readme

daub-react

Typed React components for DAUB UI — the considered CSS component library.

Thin JSX wrappers around DAUB's CSS classes. Full TypeScript, IDE autocomplete, zero runtime overhead.

Install

npm install daub-react daub-ui

Include DAUB CSS in your app (layout, _app.tsx, or index.html):

import "daub-ui/daub.css";

Usage

import { Button, Card, Stack, Badge, ThemeProvider } from "daub-react";

function App() {
  return (
    <ThemeProvider theme="bone">
      <Stack direction="vertical" gap={4}>
        <Card title="Welcome" description="Get started with DAUB React">
          <Stack direction="horizontal" gap={2}>
            <Button variant="primary">Get Started</Button>
            <Button variant="ghost">Learn More</Button>
          </Stack>
        </Card>
        <Badge variant="success">Live</Badge>
      </Stack>
    </ThemeProvider>
  );
}

Components (59)

Layout

Stack Grid Surface Container Separator ScrollArea AspectRatio

Controls

Button ButtonGroup Input Textarea Field InputGroup InputIcon Search Select Label Kbd Checkbox Radio RadioGroup Switch Slider Toggle ToggleGroup InputOTP CustomSelect

Data Display

Card Badge Avatar AvatarGroup Alert Progress Skeleton EmptyState Spinner StatCard ChartCard Chart Image List Table DataTable Chip Prose Calendar Carousel

Navigation

Breadcrumbs Pagination NavMenu BottomNav Stepper Navbar Tabs HoverCard

Overlays (coming soon)

Modal, Sheet, Drawer, Tooltip, Popover, DropdownMenu, Toast

Compound

Accordion Collapsible DatePicker

Provider

ThemeProvider

Hooks

useControllable

Design Principles

  • Thin wrappers — props map to db-* CSS classes. No runtime styling.
  • Native HTML — every component extends its native element's props via ComponentProps<"div">.
  • Refs forwardedforwardRef on all components.
  • Controlled & uncontrolled — form components support both value+onChange and defaultValue.
  • className merge — your className always wins (applied last).
  • Zero dependencies — only react and react-dom as peer deps.
  • Tree-shakeable — ESM + CJS with splitting.

Themes

DAUB ships 20 theme families (40 light/dark variants). Apply via ThemeProvider or data-theme:

<ThemeProvider theme="dracula">
  <App />
</ThemeProvider>

Available: default dark bone bone-dark ink ink-light ember ember-light grunge-light grunge-dark solarized solarized-dark dracula dracula-light nord nord-light one-dark one-dark-light monokai monokai-light gruvbox gruvbox-light night-owl night-owl-light github github-dark catppuccin catppuccin-dark tokyo-night tokyo-night-light material material-light synthwave synthwave-light shades-of-purple shades-of-purple-light ayu ayu-dark horizon horizon-light

TypeScript

All props are fully typed. Import types directly:

import type { ButtonVariant, Size, ChipColor, GapToken } from "daub-react";

Links

License

MIT