Skip to main content

Getting started

Welcome to LibDev UI – a lightweight, flexible and fully themeable component library built with Emotion, Framer Motion, and native HTML elements. Perfect for rapid UI development with full design control.


Installation​

To use LibDev UI, simply install the package:

pnpm add @libdev-ui/base

or

npm install @libdev-ui/base

Import components​

You can import any component directly from the library:

import { Button } from "@libdev-ui/base";

export default function Example() {
return <Button>Click me</Button>;
}

Each component is tree-shakable and independently importable.


Global styles​

To apply theming and variables, include the following in your global CSS file (e.g. global.css or _app.css):

:root {
--color-primary: #4f46e5;
--color-secondary: #9333ea;
--color-danger: #ef4444;
--color-success: #22c55e;
--color-warning: #f59e0b;

--text-color: #111827;
--bg-color: #ffffff;

--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 12px;

--font-size-sm: 0.875rem;
--font-size-md: 1rem;
--font-size-lg: 1.25rem;
}

These variables are used across all components for consistent theming.


Usage example​

import { Button } from "@libdev-ui/base";

export default function Demo() {
return (
<Button variant="primary" size="md" radius="md">
Primary Button
</Button>
);
}

You can pass animation props from Framer Motion like:

<Button whileHover={{ scale: 1.05 }} whileTap={{ scale: 0.95 }}>
Animated
</Button>

Component list​

ComponentDescription
ButtonThemeable button with motion support
AutoSuggestCustom autocomplete with keyboard nav
InputBasic styled input (coming soon)
CheckboxThemeable checkbox (coming soon)

Roadmap​

  • ✅ Base styling via CSS variables
  • ✅ Buttons, AutoSuggest
  • 🚧 Inputs, Selects, Switches
  • 🚀 Fully customizable themes
  • 🎨 Dark mode support

Feedback & Contributions​

If you'd like to request a component or suggest a feature, feel free to open an issue or contribute directly via pull request.