Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dxu/wobbui

wobbui is a collection of React components based off of shadcn/ui, exported as an npm package.
https://github.com/dxu/wobbui

component-library components javascript react shadcn shadcn-ui tailwind tailwindcss typescript

Last synced: 13 days ago
JSON representation

wobbui is a collection of React components based off of shadcn/ui, exported as an npm package.

Awesome Lists containing this project

README

        

# wobbui

`wobbui` is a collection of React components based off of
[`shadcn/ui`](https://github.com/shadcn-ui/ui) exported as an npm package.

[Demo](https://dxu.github.io/wobbui/)

## Installation

### Dependencies

Install Tailwind CSS:

```bash
pnpm i -D autoprefixer postcss tailwindcss tailwindcss-animate
npx tailwindcss init -p
```

Point Tailwind CSS to files you have `className=".."` in:

```javascript
module.exports = {
content: ["./src/**/*.{js,jsx,ts,tsx}" /* src folder, for example */],
theme: {
extend: {},
},
plugins: [],
};
```

Add Tailwind CSS to a CSS file:

```css
@tailwind base;
@tailwind components;
@tailwind utilities;
```

### Install wobbui

1. Install wobbui:

```bash
pnpm i wobbui
```

2. Add the wobbui plugin to `tailwind.config.js`, and include content from
`wobbui`:

```javascript
import wobbui from "wobbui/plugin";

export default {
content: [
...,
'node_modules/wobbui/**/*.{js,jsx,ts,tsx}'
],
plugins: [
...,
require('wobbui/plugin'),
// required for animations
require('tailwindcss-animate')
],
...
}
```

## Customization

In your global css file, make sure to include these CSS variables used by
`wobbui`:

```css
:root {
--background-color: #fff;
--text-color: #111;
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;

--card: 0 0% 100%;
--card-foreground: 222.2 84% 4.9%;

--popover: 0 0% 100%;
--popover-foreground: 222.2 84% 4.9%;

--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;

--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;

--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;

--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;

--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;

--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;

--radius: 0.5rem;
}

.dark {
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;

--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;

--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;

--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;

--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;

--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;

--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;

--destructive: 0 62.8% 30.6%;
--destructive-foreground: 210 40% 98%;

--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;
--ring: hsl(212.7, 26.8%, 83.9);
}
```