Production-ready React component library with 100% Apple Human Interface Guidelines compliance. iOS 17/macOS 14 calibrated design tokens with 48 accessible components (WCAG 2.1 AA certified). Features Apple-standard spring animations, 6-level elevation sy
npm install liquidify-reactProduction-ready React component library with 100% Apple Human Interface Guidelines compliance.
iOS 17 / macOS 14 calibrated design tokens β’ 48 accessible components β’ WCAG 2.1 AA certified







Website β’ Documentation β’ npm Package β’ GitHub
---
LiqUIdify is the only React component library calibrated to Apple's exact iOS 17 and macOS 14 design standards. While Material UI, Chakra UI, and Radix UI offer excellent components, none are built specifically for Apple-quality web applications.
| Feature | LiqUIdify | Material UI | Chakra UI | Radix UI |
|---------|-----------|-------------|-----------|----------|
| Apple HIG Compliance | β
100% | β Material Design | β Custom System | β Unstyled |
| iOS 17/macOS 14 Calibrated | β
Exact values | β | β | β |
| 44px Touch Targets | β
HIG Standard | β οΈ Varies | β οΈ Varies | β οΈ Unstyled |
| Spring Animations | β
Apple physics | β οΈ Custom | β οΈ Custom | β None |
| Elevation System | β
6-level (iOS) | β οΈ Material | β οΈ Custom | β None |
| Reduced Motion | β
Full support | β οΈ Partial | β οΈ Partial | β None |
| Liquid Glass Effects | β
Native-like blur | β | β | β |
| WCAG 2.1 AA | β
Certified | β
| β
| β οΈ Varies |
Choose LiqUIdify if:
- You're building for Apple platforms (iOS, macOS, iPadOS, visionOS web experiences)
- You need pixel-perfect alignment with Apple's design language
- You want users to feel native quality in web apps
- You require production-ready accessibility out of the box
---
- iOS 17 Animation System: Spring physics (mass: 1, stiffness: 180, damping: 20) with Apple-standard timing (0.15s instant, 0.3s quick, 0.5s flow, 0.6s bounce)
- macOS 14 Elevation: 6-level shadow system (0dp β 24dp) matching iOS depth standards
- Touch Targets: All interactive elements meet 44Γ44pt minimum (Apple HIG requirement)
- Border Radii: iOS 17 calibrated (16px cards, 10px controls, 12px fields)
- SF Pro Typography: Complete dynamic type scale (caption2 β largeTitle) with HIG-exact line heights
- 4.5:1 contrast for body text, 3:1 for large text and UI components
- Keyboard navigation with visible focus states on all interactive elements
- Screen reader optimized with proper ARIA labels and live regions
- Reduced motion support via prefers-reduced-motion (all animations disabled or instant)
- High contrast mode via prefers-contrast (enhanced borders and text)
- Reduced transparency support for users with vestibular disorders
- 48 Components: Forms, navigation, feedback, advanced interactions
- TypeScript-first: Complete type safety with auto-completion
- Tree-shakeable: Subpath imports minimize bundle size (base: 28KB gzipped)
- Zero runtime errors: Comprehensive test coverage with Vitest
- SSR/RSC safe: Works with Next.js, Remix, and all React frameworks
- Peer dependencies: React, Ark UI, Framer Motion kept as peers to prevent duplicates
- Glassmorphism effects: Native-like blur with backdrop-filter
- Dynamic accent colors: Runtime theming with CSS custom properties
- Vibrancy modes: Light and dark themes with automatic color adaptation
- Responsive tokens: Design scales beautifully from mobile to desktop
- Panda CSS integration: Atomic styles with recipes for customization
- 433KB CSS (base stylesheet, includes all tokens and resets)
- 28KB JS (tree-shaken main bundle, gzipped)
- Subpath imports: import { Button } from "liquidify-react/button" for granular control
- No global CSS conflicts: Panda CSS generates scoped atomic classes
- Lazy-loadable: Import components on-demand for code-splitting
---
Install LiqUIdify and peer dependencies in one command:
``bashBun (recommended)
bun add liquidify-react react react-dom @ark-ui/react framer-motion lucide-react
$3
Import the CSS once at your app entry point, then use components immediately:
`tsx
// main.tsx or App.tsx (import CSS once)
import "liquidify-react/styles";
import { Button, Card, Switch } from "liquidify-react";function App() {
return (
Welcome to LiqUIdify
100% Apple HIG compliant components, zero configuration.
);
}
export default App;
`> π‘ CSS Import Required: The
"liquidify-react/styles" import loads design tokens, resets, and base styles. Import it once at your app root.$3
Use subpath imports for granular control:
`tsx
import { Button } from "liquidify-react/button";
import { Card } from "liquidify-react/card";
// Only Button and Card code is bundled
`$3
Add runtime theme and accent color control with
ThemeProvider:`tsx
import "liquidify-react/styles";
import { ThemeProvider, useTheme, Button } from "liquidify-react";function ThemeToggle() {
const { theme, setTheme, accent, setAccent } = useTheme();
return (
);
}export default function App() {
return (
);
}
`Accent color formats:
- Hex:
#007AFF, #34C759
- RGB: rgb(0, 122, 255)
- HSL: hsl(211, 100%, 50%)
- OKLCH: oklch(62% 0.2 236) (recommended for perceptual uniformity)
- CSS variables: var(--brand-accent)$3
LiqUIdify includes 47+ Ark UI headless components for complex interactions. Import them via nested paths:
`tsx
// ESM imports
import * as Dialog from "liquidify-react/ark-ui/dialog";
import * as Tooltip from "liquidify-react/ark-ui/tooltip";
import * as Select from "liquidify-react/ark-ui/select";
import * as DatePicker from "liquidify-react/ark-ui/datePicker";// CJS requires (also supported)
const Accordion = require("liquidify-react/ark-ui/accordion");
const Carousel = require("liquidify-react/ark-ui/carousel");
`Available Ark UI components (all with TypeScript types):
- Form controls:
checkbox, switch, radioGroup, select, combobox, slider
- Input helpers: datePicker, colorPicker, fileUpload, pinInput, tagsInput
- Navigation: tabs, menu, pagination, steps, carousel
- Overlays: dialog, popover, tooltip, hoverCard, toast
- Containers: accordion, collapsible, splitter, treeView
- Feedback: progress, progressCircular, progressLinear, ratingGroup
- Advanced: signaturePad, qrCode, timer, tour, clipboard$3
The Button component supports Apple HIG-compliant variants and tones:
`tsx
import { Button } from "liquidify-react";// Variants (visual weight)
// Solid background
// Subtle background
// Transparent
// Tones (semantic meaning)
// Blue (default)
// Gray
// Red
// Combining variant + tone
// Sizes (all meet 44px minimum touch target)
// 44px height
// 44px height (default)
// 52px height
// States
// Icons
} iconPosition="start">
Confirm
} aria-label="Delete" /> {/ Icon-only /}
// Polymorphic (renders as different elements)
`Legacy variant mapping (for backward compatibility):
-
primary β filled + accent
- secondary β tinted + neutral
- ghost β plain + neutral
- danger β filled + destructive---
ποΈ Architecture
$3
LiqUIdify's design system is calibrated to Apple's exact iOS 17 and macOS 14 specifications:
`tsx
// Animation durations (Apple HIG standard)
durations: {
instant: "0.15s", // Tooltips, switches, immediate feedback
quick: "0.3s", // Standard transitions, buttons, tabs
flow: "0.5s", // Sheets, modals, page transitions
bounce: "0.6s" // Playful spring physics elements
}// Spring animation physics (Apple standard)
spring: {
mass: 1,
stiffness: 180,
damping: 20
}
// Elevation system (iOS 17 shadows)
elevation: {
0: "none", // Flat surfaces
1: "0 1px 2px rgba(0,0,0,0.06), ...", // Base elevation
4: "0 4px 12px rgba(0,0,0,0.08), ...", // Raised elements
8: "0 8px 24px rgba(0,0,0,0.12), ...", // Floating panels
16: "0 16px 32px rgba(0,0,0,0.16), ...", // Modals
24: "0 24px 48px rgba(0,0,0,0.20), ..." // Priority overlays
}
// Border radii (iOS 17 roles)
radii: {
button: "9999px", // Full capsule
buttonCompact: "10px",
control: "10px", // Switches, checkboxes
field: "12px", // Input fields
card: "16px", // Cards and surfaces
sheet: "16px", // Modals and sheets
pill: "9999px" // Badges and tags
}
// Touch targets (Apple HIG requirement)
minTouchTarget: "44px" // All interactive elements
`$3
All animations respect user preferences and follow Apple's motion guidelines:
`tsx
// Reduced motion compliance
@media (prefers-reduced-motion: reduce) {
* {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}// Standard button interaction
button: {
transition: "all 0.3s cubic-bezier(0.25, 0.1, 0.25, 1.0)",
_hover: { transform: "scale(1.02)" }, // Subtle growth
_active: { transform: "scale(0.97)" } // Press feedback
}
// Modal entrance
modal: {
animation: "slideUp 0.5s cubic-bezier(0.25, 0.1, 0.25, 1.0)"
}
`$3
- Headless primitives: Powered by Ark UI for robust, accessible behavior
- Style recipes: Panda CSS recipes attach atomic styles at runtime
- Composition: All components expose slots for deep customization
- Type safety: Full TypeScript support with generics where needed
---
π Components (48 Total)
$3
Button β’ IconButton β’ Checkbox β’ RadioGroup β’ Switch β’ Slider β’ AngleSlider β’ NumberInput β’ PasswordInput β’ PinInput β’ TagsInput β’ Select β’ Combobox β’ DatePicker β’ FileUpload$3
Tabs β’ Accordion β’ Collapsible β’ Menu β’ Pagination β’ Steps β’ Splitter$3
Toast β’ Dialog β’ Modal β’ Popover β’ Tooltip β’ HoverCard β’ Progress (Linear/Circular) β’ Avatar β’ Badge β’ Card β’ ScrollArea β’ FloatingPanel β’ SymbolTile$3
TreeView β’ ColorPicker β’ SignaturePad β’ Carousel β’ RatingGroup β’ SegmentGroup β’ Toggle β’ ToggleGroup β’ QRCode β’ Timer β’ Tour β’ Editable β’ Clipboardβ View all components with live examples
---
π¨ Theming & Customization
$3
Override design tokens globally:
`css
:root {
/ Accent color /
--ui-accent: #34C759; / Mint green / / Border radii /
--radii-card: 20px;
/ Animation durations /
--durations-quick: 0.2s;
/ Elevation /
--shadows-elevation-4: 0 4px 16px rgba(0,0,0,0.1);
}
`$3
Extend styles with Panda CSS recipes:
`tsx
import { css } from "liquidify-react/css";
import { Button } from "liquidify-react";const customButton = css({
background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
_hover: { boxShadow: "0 8px 24px rgba(102,126,234,0.4)" }
});
`$3
Customize specific parts of components:
`tsx
{/ options /}
`---
β‘ Performance
$3
- Base CSS: 433KB (includes all tokens, resets, and component styles)
- Main JS: 28KB (gzipped, tree-shaken)
- Individual component: ~2-5KB (when using subpath imports)
$3
`tsx
// Full import: ~28KB (all 48 components)
import { Button, Card, Switch } from "liquidify-react";// Subpath import: ~6KB (only what you use)
import { Button } from "liquidify-react/button";
import { Card } from "liquidify-react/card";
import { Switch } from "liquidify-react/switch";
`$3
1. Use subpath imports for production builds
2. Import CSS once at app root (not per-component)
3. Leverage code-splitting with dynamic imports for large component sets
4. Enable Brotli compression on your server (reduces CSS to ~40KB)
---
π§ͺ Framework Compatibility
$3
`tsx
// main.tsx
import "liquidify-react/styles";
import { createRoot } from "react-dom/client";
import App from "./App";createRoot(document.getElementById("root")!).render( );
`$3
`tsx
// app/layout.tsx
import "liquidify-react/styles";export default function RootLayout({ children }) {
return (
{children}
);
}
`$3
`tsx
// app/root.tsx
import liquidifyStyles from "liquidify-react/styles?url";export const links = () => [
{ rel: "stylesheet", href: liquidifyStyles }
];
`SSR/RSC Safety: LiqUIdify has no window access at import time. All components render safely on the server.
---
π οΈ Development
$3
`bash
Clone repository
git clone https://github.com/tuliopc23/LiqUIdify.git
cd LiqUIdifyInstall dependencies
bun installBuild library
bun run build:libRun type checking
bun run type-checkRun tests
bun test --runRun linting
bun run lint
`$3
-
bun run dev - Start development server
- bun run build:lib - Build library to libs/components/dist
- bun run type-check - TypeScript compilation check
- bun run lint - Biome linting and formatting
- bun run test - Run Vitest test suite
- bun run prepublishOnly` - Pre-publish validation (type-check + build)---
Contributions are welcome! Please read our Contributing Guide before submitting PRs.
1. Fork the repository and create a feature branch
2. Make your changes following our code style (Biome)
3. Add tests for new functionality
4. Update documentation if needed
5. Submit a PR with a clear description
- GitHub Discussions: Ask questions, share ideas
- Issues: Report bugs or request features
- Discord: Join our community (coming soon)
---
- π Website - Landing page and showcase
- π Documentation - Complete API reference and guides
- π¦ npm Package - Install instructions
- π οΈ GitHub Repository - Source code
- π Issues & Feedback - Bug reports and feature requests
- π Changelog - Release history
- π Apple HIG - Design guidelines reference
---
MIT Β© Tulio Pinheiro Cunha
---
LiqUIdify is open source and free to use. If you're using it in production, consider sponsoring development to support continued maintenance and new features.
---
Built with β₯οΈ for the Apple ecosystem