
Company News
/Security News
Socket Selected for OpenAI's Cybersecurity Grant Program
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.
A modern, accessible UI component library for Nuxt 4 with custom CSS architecture
A modern, accessible UI component library for Nuxt 4 with custom CSS architecture (no Tailwind).
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 |
# Using pnpm (recommended)
pnpm add urkit-ui
# Using npm
npm install urkit-ui
# Using yarn
yarn add urkit-ui
Add urkit-ui to your nuxt.config.ts:
export default defineNuxtConfig({
modules: ['urkit-ui']
})
That's it! Components are now auto-imported with the Ur prefix.
<template>
<div>
<UrButton variant="primary">Click Me</UrButton>
<UrInput
v-model="email"
type="email"
label="Email"
placeholder="Enter your email"
/>
</div>
</template>
<script setup lang="ts">
const email = ref('')
</script>
Full-featured button component with multiple variants, sizes, and states.
<UrButton
variant="primary"
mode="filled"
size="md"
icon="icons:plus"
:loading="false"
>
Click Me
</UrButton>
Variants: primary, error, success, neutral
Modes: filled, stroke, lighter, ghost
Sizes: sm, md, lg, xlg
Comprehensive input component with validation, icons, and advanced features.
<UrInput
v-model="value"
type="text"
label="Label"
placeholder="Placeholder"
icon="icons:search"
/>
Features:
Alert component for displaying important messages and notifications.
<UrAlert
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, feature
Features:
Badge component for labels and status indicators.
<UrBadge
variant="filled"
size="medium"
color="blue"
>
New
</UrBadge>
Variants: filled, light, lighter, stroke
Sizes: small, medium, large
Colors: gray, blue, orange, red, green, yellow, purple, sky, pink, teal
Urkit includes a flexible icon system with namespace support and automatic caching.
📘 Complete Icon Documentation - Usage, custom icons, and advanced configuration
The module includes essential icons to get you started:
Alert Icons (Outlined style):
icons:alert-error - Error alert iconicons:alert-warning - Warning alert iconicons:alert-success - Success alert iconicons:alert-info - Information alert iconicons: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)<!-- Use included icons -->
<UrIcon name="icons:search" :size="24" />
<UrIcon name="icons:alert-success" :size="20" />
<UrIcon name="icons:close" :size="16" />
💡 All icons use currentColor for dynamic theming. See ICONS.md for complete documentation.
Place SVG files in your project's public/assets/icons/ directory:
your-app/
└── public/
└── assets/
└── icons/
└── custom-icon.svg ← Overrides module's icon
// 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: <UrIcon name="custom:my-icon" />
Customize Urkit UI in your nuxt.config.ts:
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'
}
}
})
Urkit UI uses a purple theme by default. Easily customize to match your brand:
// 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.
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
This section is for contributors developing the Urkit UI module itself.
# Install dependencies
pnpm install
# Prepare module
pnpm run dev:prepare
# Start playground
pnpm run dev
# Build the module
pnpm run prepack
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
FAQs
A modern, accessible UI component library for Nuxt 4 with custom CSS architecture
The npm package urkit-ui receives a total of 3 weekly downloads. As such, urkit-ui popularity was classified as not popular.
We found that urkit-ui demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.

Security News
Socket CEO Feross Aboukhadijeh joins 10 Minutes or Less, a podcast by Ali Rohde, to discuss the recent surge in open source supply chain attacks.

Research
/Security News
Campaign of 108 extensions harvests identities, steals sessions, and adds backdoors to browsers, all tied to the same C2 infrastructure.