____ ____ _
/ ___| / ___|| |
\___ \| | | |
___) | |___ | |___
|____/ \____||_____|
SIMSIES COMPONENT LIBRARY
"because copy-pasting is for normies"
A BASED React component library that doesn't suck. Built on shadcn/ui, Radix primitives, and Tailwind CSS because I'm not a masochist who writes CSS from scratch anymore.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β > npm install @drjoshcsimmons/scl β
β β
β [ββββββββββββββββββββββββββββββββββββββββ] 100% β
β β
β β installed 1 package β
β β your code now has TASTE β
β β maidens acquired β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
It's my personal component library. I got tired of copy-pasting the same damn components between projects, so I made this. Now I just npm install and get on with my life like a functional adult.
βββββββββββββββββββββββ
β VIRGIN DEVS: β
β "Let me just β
β copy this file β
β real quick..." β
βββββββββββ¬ββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β *3 hours later* β
β "Why doesn't this β
β work anymore" β
βββββββββββββββββββββββ
vs.
βββββββββββββββββββββββ
β CHAD SCL USERS: β
β npm install β
β *ships product* β
β *goes outside* β
βββββββββββββββββββββββ
npm install @drjoshcsimmons/scl
# or
pnpm add @drjoshcsimmons/scl
# or
yarn add @drjoshcsimmons/scl
# (we don't discriminate against package managers here)import { Button, Card, Input } from "@drjoshcsimmons/scl";
import "@drjoshcsimmons/scl/globals.css"; // Don't forget this or everything looks like shit
function App() {
return (
<Card>
<Input placeholder="Type some crap..." />
<Button>Do the thing</Button>
</Card>
);
}ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β COMPONENT ARSENAL β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββ LAYOUT ββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Accordion β’ Card β’ Collapsible β’ Scroll Area β β
β β Separator β’ Sheet β’ Tabs β’ Resizable β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββ FORMS βββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Button β’ Checkbox β’ Input β’ Label β’ Radio Group β β
β β Select β’ Slider β’ Switch β’ Textarea β’ Toggle β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββ DATA DISPLAY ββββββββββββββββββββββββββββββββββββββββββββ β
β β Avatar β’ Badge β’ Progress β’ Skeleton β’ Table β’ Tooltip β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββ FEEDBACK ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Alert β’ Alert Dialog β’ Dialog β’ Popover β’ Dropdown Menu β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββ WEIRD CUSTOM SHIT βββββββββββββββββββββββββββββββββββββββ β
β β Dithered Image β’ Statusline β’ Terminal Textarea β β
β β Code Editor (with VIM MODE because we're not animals) β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Install dependencies
pnpm install
# Run Storybook (this is where the magic happens)
pnpm dev
# Run tests (yes I actually write tests, fuck off)
pnpm test
# Build the library
pnpm build
# Type check (for the paranoid)
pnpm typecheckCheck out the components at jcpsimmons.github.io/scl
βββββββββββββββββββββββββββββββββββββββ
β β
β STORYBOOK PREVIEW: β
β β
β βββββββββββββββββββββββββββββββ β
β β [=========] Button β β
β β [ β ] Toggle β β
β β [βββββββββ] Progress β β
β β βββββββββββ Card β β
β β β Content β β β
β β βββββββββββ β β
β βββββββββββββββββββββββββββββββ β
β β
β (but cooler because retro theme) β
β β
βββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β This library has a RETRO TERMINAL AESTHETIC because: β
β β
β β’ No border-radius (corners are for cowards) β
β β’ No shadows (we live in FLATLAND) β
β β’ BigBlueTerm437 monospace font (embrace the CRT vibes) β
β β’ CSS variables for theming (HSL colors because we're not β
β savages who use hex in 2099) β
β β’ Dark mode (obviously) β
β β
β If you want rounded corners and drop shadows, Material UI is β
β ββββββββββββββββββββββββββββββββββββββββββββββ> that way β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
It's my name. Well, part of it. Don't overthink it.
___________________
< Simmons -> Simsies >
-------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β React βββββββββββββββΊ Because it's 2099 β
β β β
β βΌ β
β Radix UI βββββββββββΊ Accessibility handled β
β β β
β βΌ β
β Tailwind CSS βββββββΊ Utility classes go brrrr β
β β β
β βΌ β
β CVA βββββββββββββββββΊ Variants without the pain β
β β β
β βΌ β
β TypeScript ββββββββββΊ Red squiggles save lives β
β β β
β βΌ β
β Vite ββββββββββββββββΊ Fast AF builds β
β β β
β βΌ β
β Vitest ββββββββββββββΊ Tests that don't take forever β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β 1. Fork the repo β
β 2. Make your changes β
β 3. Write tests (non-negotiable) β
β 4. Open a PR β
β 5. ??? β
β 6. Profit β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββ
MIT - Do whatever the fuck you want with it.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β "I used to copy-paste components like a peasant. β
β Now I npm install SCL and actually touch grass." β
β β
β - Some developer, probably β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Made with β and mass quantities of mass quantities by @jcpsimmons