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

@devup-ui/react

v1.0.43

Published

Zero Config, Zero FOUC, Zero Runtime, CSS in JS Preprocessor

Readme



English | 한국어

Install

npm install @devup-ui/react

# on next.js
npm install @devup-ui/next-plugin

# on vite
npm install @devup-ui/vite-plugin

# on rsbuild
npm install @devup-ui/rsbuild-plugin

# on webpack
npm install @devup-ui/webpack-plugin

Features

  • Preprocessor
  • Zero Config
  • Zero FOUC
  • Zero Runtime
  • RSC Support
  • Must not use JavaScript, client-side logic, or hybrid solutions
  • Support Library mode
  • Zero Cost Dynamic Theme Support based on CSS Variables
  • Theme with Typing
  • Smallest size, fastest speed

Inspirations

  • Styled System
  • Chakra UI
  • Theme UI
  • Vanilla Extract
  • Rainbow Sprinkles
  • Kuma UI

Comparison Benchmarks

Latest CI benchmark on ubuntu-latest. All Next.js builds use the native TypeScript 7 CLI for type checking.

Webpack values are one cold build:

| Library | Version | Build Time | Build Size | | --------------------------- | ------- | ---------- | ----------------- | | tailwindcss | 4.3.3 | 15.55s | 66,479,450 bytes | | styleX | 0.19.0 | 34.27s | 95,417,163 bytes | | vanilla-extract | 1.21.2 | 14.91s | 67,711,539 bytes | | kuma-ui | 1.6.4 | 16.43s | 74,774,187 bytes | | panda-css | 1.12.0 | 16.82s | 70,983,831 bytes | | chakra-ui | 3.37.0 | 24.79s | 206,598,161 bytes | | mui | 9.4.0 | 17.12s | 100,621,370 bytes | | devup-ui (per-file CSS) | 1.0.40 | 13.43s | 66,577,087 bytes | | devup-ui (single CSS) | 1.0.40 | 13.37s | 66,564,796 bytes |

Turbopack values are medians of six cold builds in alternating order:

| Library | Version | Median Build Time | Build Size | | -------------------------------------- | ------- | ----------------- | -------------------- | | tailwindcss | 4.3.3 | 6.55s | 38,386,955 bytes | | devup-ui (direct APIs, single CSS) | 1.0.40 | 6.54s | 36,519,234 bytes | | devup-ui (static .css.ts) | 1.0.40 | 6.47s | 36,550,197 bytes |

The Turbopack ranges overlap, so the direct-API result is effectively parity with Tailwind on this fixture. The static .css.ts row uses the lite WASM fast path; dynamic .css.ts modules use the full Boa evaluator and are not represented by that median.

How it works

Devup UI is a CSS in JS preprocessor that does not require runtime. Devup UI eliminates the performance degradation of the browser through the CSS in JS preprocessor. We develop a preprocessor that considers all grammatical cases.

const before = <Box bg="red" />

const after = <div className="d0" />

Variables are fully supported.

const before = <Box bg={colorVariable} />

const after = (
  <div
    className="d0"
    style={{
      '--d0': colorVariable,
    }}
  />
)

Various expressions and responsiveness are also fully supported.

const before = <Box bg={['red', 'blue', a > b ? 'yellow' : variable]} />

const after = (
  <div
    className={`d0 d1 ${a > b ? 'd2' : 'd3'}`}
    style={{
      '--d2': variable,
    }}
  />
)

Support Theme with Typing

devup.json

{
  "theme": {
    "colors": {
      "default": {
        "text": "#000"
      },
      "dark": {
        "text": "white"
      }
    }
  }
}
// Type Safe
<Text color="$text" />

Custom Shorthand Types

Build plugins accept a shorthands option separately from devup.json. After the plugin runs, it augments DevupCustomShorthands in df/theme.d.ts so the configured names are available on DevupProps and nested selector props.

DevupUI({
  shorthands: {
    insetX: ['left', 'right'],
  },
})
<Box
  insetX={[0, null, 'auto']}
  _hover={{ insetX: 4 }}
  selectors={{ '& > *': { insetX: 2 } }}
/>

Restart the build plugin after changing shorthand configuration so the generated declaration is refreshed. If tsconfig.json only includes src, add df/*.d.ts (or your plugin's custom distDir) to include.

Support Responsive And Pseudo Selector

You can use responsive and pseudo selector.

// Responsive with Selector
const box = <Box _hover={{ bg: ['red', 'blue'] }} />

// Same
const box = <Box _hover={[{ bg: 'red' }, { bg: 'blue' }]} />