You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A premium React component library with a Soft Metallic design system. 22 production-ready components with TypeScript support, accessible markup, and zero CSS-in-JS dependencies.
Soft Metallic design system — gradient accents, 3D metallic effects, crisp lines, and rounded corners
TypeScript-first — full type definitions for every component and prop
Pure CSS — no runtime overhead from CSS-in-JS; just import one stylesheet
Accessible — ARIA attributes, keyboard navigation, focus-visible states
Tiny footprint — only clsx as a runtime dependency
Tree-shakeable — ESM and CJS builds with per-component imports
Design tokens included — CSS custom properties + TypeScript exports for colors, spacing, typography, shadows, and transitions
Quick Start
Install
npm install @jaylabs/ui
Import styles (once, in your app's entry point)
import'@jaylabs/ui/dist/index.css';
Use components
import{Button,Card,CardBody,Input}from'@jaylabs/ui';functionApp(){return(<Cardvariant="gradient"hoverable><CardBody><Inputlabel="Email"placeholder="you@example.com"fullWidth/><Buttonvariant="gradient"fullWidth>
Get Started
</Button></CardBody></Card>);}
<Inputlabel="Email Address"placeholder="you@example.com"size="sm"|"md"|"lg"error="Invalid email"helperText="We'll never share your email"leftIcon={<MailIcon/>}rightIcon={<CheckIcon/>}fullWidth={false}isRequired={false}/>
<Textarealabel="Message"placeholder="Write your message..."size="sm"|"md"|"lg"resize="none"|"vertical"|"horizontal"|"both"error="Too short"helperText="Minimum 20 characters"fullWidth={false}rows={4}/>
Checkbox
<Checkboxlabel="I agree to the terms"size="sm"|"md"|"lg"checked={true}indeterminate={false}error="You must agree"helperText="Required"/>
Radio / RadioGroup
<RadioGroupname="plan"label="Select a plan"value={selected}onChange={setSelected}orientation="vertical"|"horizontal"><Radiovalue="free"label="Free"/><Radiovalue="pro"label="Pro"/><Radiovalue="enterprise"label="Enterprise"/></RadioGroup>
Toggle
<Togglelabel="Dark mode"size="sm"|"md"|"lg"checked={isDark}onChange={handleToggle}helperText="Enable dark theme"/>
DatePicker
<DatePickerlabel="Start Date"value={date}onChange={setDate}placeholder="MM/DD/YYYY"minDate={newDate('2024-01-01')}maxDate={newDate('2025-12-31')}size="sm"|"md"|"lg"fullWidth={false}error="Date is required"/>
<EnvelopeCardfrom="Jay Larson"to="editor@nytimes.com"subject="Exclusive: New Product Launch"status="draft"|"queued"|"sent"|"opened"|"replied"|"bounced"date="Feb 19, 2026"isOpen={false}onToggle={handleToggle}><p>Email body content shown when expanded...</p></EnvelopeCard>
TaskCard
<TaskCardtitle="Complete quarterly report"description="Summarize Q4 metrics for the board meeting"priority="low"|"medium"|"high"|"urgent"xp={50}isComplete={false}dueDate="Feb 20"streak={7}tags={['work','reports']}onToggle={handleToggle}/>
<CallerCardphoneNumber="(555) 123-4567"callerName="Acme Corp"callerType="person"|"business"|"spam"|"unknown"|"scam"carrier="Verizon"location="New York, NY"riskScore={25}reportCount={3}lineType="mobile"|"landline"|"voip"|"toll-free"/>