A modern, accessible UI component library for Nuxt 4 with custom CSS architecture
npm install urkit-uiA modern, accessible UI component library for Nuxt 4 with custom CSS architecture (no Tailwind).



- šØ Custom CSS Architecture - Beautiful components without Tailwind dependency
- š Nuxt 4 Ready - Built specifically for Nuxt 4
- āæ Accessible - WCAG compliant components
- š Customizable - Flexible theming and icon system
- š¦ Zero Config - Works out of the box with sensible defaults
- š§ TypeScript - Full TypeScript support
- šÆ Auto-Import - Components automatically available in your app
Currently available components in v0.2.0:
| Component | Description | Status |
|-----------|-------------|--------|
| UrButton | Full-featured button with variants, sizes, loading states, and icons | ā
Stable |
| UrInput | Comprehensive input component with validation, password toggle, icons, and select | ā
Stable |
| UrIcon | Flexible icon system with namespace support | ā
Stable |
| UrAlert | Alert component for messages and notifications with multiple variants and statuses | ā
Stable |
| UrBadge | Badge component for labels and status indicators with colors and variants | ā
Stable |
- ⨠UrCard - Card container component
- ⨠UrModal - Modal/dialog component
- ⨠UrToast - Toast notification system
- ⨠UrCheckbox - Checkbox input component
- ⨠UrRadio - Radio button component
- ⨠UrSelect - Dropdown select component
- ⨠UrTextarea - Multi-line text input
- And more...
``bashUsing pnpm (recommended)
pnpm add urkit-ui
$3
Add
urkit-ui to your nuxt.config.ts:`typescript
export default defineNuxtConfig({
modules: ['urkit-ui']
})
`That's it! Components are now auto-imported with the
Ur prefix.$3
`vue
Click Me v-model="email"
type="email"
label="Email"
placeholder="Enter your email"
/>
`š Components
$3
Full-featured button component with multiple variants, sizes, and states.
`vue
variant="primary"
mode="filled"
size="md"
icon="icons:plus"
:loading="false"
>
Click Me
`Variants:
primary, error, success, neutral
Modes: filled, stroke, lighter, ghost
Sizes: sm, md, lg, xlg$3
Comprehensive input component with validation, icons, and advanced features.
`vue
v-model="value"
type="text"
label="Label"
placeholder="Placeholder"
icon="icons:search"
/>
`Features:
- Text, password, email, number inputs
- Password toggle with requirements validation
- Icons and affixes (prefix/suffix)
- Button integration
- Select dropdown
- Disabled and error states
$3
Alert component for displaying important messages and notifications.
`vue
status="success"
title="Success!"
description="Your changes have been saved."
:dismissable="true"
@dismiss="handleDismiss"
/>
`Variants:
filled, light, lighter, stroke
Sizes: xsmall, small, large
Statuses: error, warning, success, information, featureFeatures:
- Multiple variants and sizes
- 5 status types with unique icons
- Optional description and action buttons
- Dismissable with close button
- Slots for custom content
$3
Badge component for labels and status indicators.
`vue
variant="filled"
size="medium"
color="blue"
>
New
`Variants:
filled, light, lighter, stroke
Sizes: small, medium, large
Colors: gray, blue, orange, red, green, yellow, purple, sky, pink, tealšØ Icon System
Urkit includes a flexible icon system with namespace support and automatic caching.
š Complete Icon Documentation - Usage, custom icons, and advanced configuration
$3
The module includes essential icons to get you started:
Alert Icons (Outlined style):
- šØ
icons:alert-error - Error alert icon
- ā ļø icons:alert-warning - Warning alert icon
- ā
icons:alert-success - Success alert icon
- ā¹ļø icons:alert-info - Information alert icon
- ⨠icons:alert-feature - Feature announcement iconUI Icons (Outlined style):
- ā
icons:close - Close/dismiss icon (16Ć16)
- š icons:search - Search icon (24Ć24)
- šļø icons:show - Show password icon (24Ć24)
- š icons:hide - Hide password icon (24Ć24)`vue
`š” All icons use
currentColor for dynamic theming. See ICONS.md for complete documentation.$3
#### Method 1: Override Built-in Icons
Place SVG files in your project's
public/assets/icons/ directory:`
your-app/
āāā public/
āāā assets/
āāā icons/
āāā custom-icon.svg ā Overrides module's icon
`#### Method 2: Add Custom Namespace
`typescript
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['urkit-ui'], urkit: {
iconNamespaces: {
icons: '/assets/icons', // Default
logos: '/assets/logos', // Default
custom: '/custom/icons' // Your custom namespace
}
}
})
`Then use:
āļø Configuration
Customize Urkit UI in your
nuxt.config.ts:`typescript
export default defineNuxtConfig({
modules: ['urkit-ui'], urkit: {
// Customize component prefix (default: 'Ur')
prefix: 'Ur',
// Customize brand colors
colors: {
primary: {
500: '#0ea5e9', // Your brand color
600: '#0284c7',
700: '#0369a1'
}
},
// Customize icon namespaces
iconNamespaces: {
icons: '/assets/icons',
logos: '/assets/logos',
social: '/custom/social-icons'
}
}
})
`šØ Color Customization
Urkit UI uses a purple theme by default. Easily customize to match your brand:
`typescript
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['urkit-ui'], urkit: {
colors: {
primary: {
50: '#f0f9ff',
500: '#0ea5e9', // Main brand color
600: '#0284c7', // Hover
700: '#0369a1' // Active
},
neutral: {
1: '#fafafa',
7: '#737373',
12: '#171717'
}
}
}
})
`See COLORS.md for complete customization guide, examples, and color scales.
š Documentation
- Complete Usage Guide - Detailed component documentation and examples
- Icon System Guide - Icon usage, custom icons, and namespaces
- Color Customization - Brand color customization guide
- Architecture - Technical architecture and asset management
š§ Requirements
- Nuxt 4.0.0 or later
- Node.js 18 or later
š License
MIT
š¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
š¬ Support
- š¦ NPM Package
- š Report Issues
- š¬ Discussions
- š Documentation
---
---
šØāš» Development
This section is for contributors developing the Urkit UI module itself.
$3
`bash
Install dependencies
pnpm installPrepare module
pnpm run dev:prepareStart playground
pnpm run dev
`$3
`bash
Build the module
pnpm run prepack
`$3
`
urkit-ui/
āāā src/
ā āāā module.ts # Module configuration
ā āāā runtime/
ā āāā assets/css/ # CSS files
ā āāā components/ # Vue components
ā āāā composables/ # Composables
ā āāā public/ # Public assets (icons, logos)
āāā playground/ # Testing playground
āāā USAGE.md # Usage documentation
āāā ARCHITECTURE.md # Architecture documentation
``