Skip to content

Jacksonmills/jem-ui

Repository files navigation

JEM/UI

A component registry built with Base UI primitives and powered by shadcn/ui.

Simple to try

If you're already using shadcn/ui but have been looking to explore Base UI without the hassle of ripping out Radix UI, JEM/UI makes it easy! Just initialize your project like any shadcn/ui setup and seamlessly add Base UI-powered components with the shadcn CLI.

Table of Contents

Introduction

JEM/UI simplifies your development workflow by integrating Base UI primitives directly into a streamlined shadcn/ui registry. It leverages shadcn CLI commands, enabling you to quickly scaffold fully-styled, type-safe components directly into your project.

Features

  • Seamless integration of Base UI primitives
  • Type-safe components built with TypeScript
  • Easy customization and extensibility
  • Complete documentation and component API references

Quick Start

Use the shadcn CLI to directly add components to your project:

With pnpm (recommended)

pnpm dlx shadcn@latest add https://jem-ui.vercel.app/ui/accordion

Alternative package managers

  • npm
npx shadcn@latest add https://jem-ui.vercel.app/ui/accordion
  • bun
bunx --bun shadcn@latest add https://jem-ui.vercel.app/ui/accordion

Usage

Once you've added a component using the shadcn CLI, it's ready to use in your project like any other shadcn/ui component.

import {
  Accordion,
  AccordionContent,
  AccordionItem,
  AccordionTrigger,
} from "@/components/ui/accordion";

export function AccordionDemo() {
  return (
    <Accordion className="w-full">
      <AccordionItem>
        <AccordionTrigger>Is it accessible?</AccordionTrigger>
        <AccordionContent>
          Yes. It adheres to the WAI-ARIA design pattern.
        </AccordionContent>
      </AccordionItem>
      <AccordionItem>
        <AccordionTrigger>Is it styled?</AccordionTrigger>
        <AccordionContent>
          {`Yes. It comes with default styles that matches the other
          components&apos; aesthetic.`}
        </AccordionContent>
      </AccordionItem>
      <AccordionItem>
        <AccordionTrigger>Is it animated?</AccordionTrigger>
        <AccordionContent>
          {`Yes. It's animated by default, but you can disable it if you prefer.`}
        </AccordionContent>
      </AccordionItem>
    </Accordion>
  );
}

Bugged using calendar/command inside a Base UI popover:

TODO: Report these to Base UI:

  • Date Picker
  • Combobox

TODO: Either these components do not use Radix or Base UI primitives, or they are not yet supported and need a custom implementation:

  • Form
  • Input OTP
  • Navigation Menu
  • Resizable
  • Sidebar
  • Skeleton
  • Sonner
  • Table

Full Documentation

Visit the shadcn documentation to view the full documentation.

License

JEM/UI is licensed under the MIT License.

About

A shadcn based custom registry for using Base UI components.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published