About b24-ui-nuxt
b24-ui-nuxt is a component library for building Vue interfaces with Reka UI, Tailwind CSS, and Tailwind Variants. This skill helps coding agents choose components and apply Bitrix24 UI conventions across Nuxt, Vue, Laravel, and AdonisJS projects.
Key features
- 01Component-selection guidance
- 02Design-system and coding conventions
- 03Page layouts and task recipes
- 04Reference routing by UI task
- 05Installation guidance for supported setups
Use cases
- 01Build a dashboard or landing page
- 02Create forms, tables, or navigation
- 03Add dialogs, editors, or chat UI
- 04Choose settings controls and card pickers
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ bitrix24/ b24ui --skill b24-ui-nuxtAfter installing, type/b24-ui-nuxtin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/components.mdreferences/guidelines/component-selection.mdconventions.mddesign-system.mdforms.mdicons.mdreferences/layouts/dashboard.mdlanding.mdreferences/recipes/card-pickers.mddata-tables.mddetail-panel.mdnavigation.mdoverlays.mdsettings.mdtask-form.mdDetails
From the project READMEBitrix24 UI
Vue component library built on Reka UI + Tailwind CSS + Tailwind Variants. Works with Nuxt, Vue (Vite), Laravel (Vite + Inertia), and AdonisJS (Vite + Inertia).
LLMs.txt
When you need to know what a component accepts or how its API works — props, slots, events, full documentation, examples — use the Bitrix24 UI documentation; if it is not already configured, add it. This skill teaches you when to use which component and how to build well.
Core rules (always apply)
- Always wrap the app in
B24App— required for toasts, tooltips, and programmatic overlays. Accepts alocaleprop for i18n. - Always use semantic colors —
text-description,bg-elevated,border-muted, etc. Never use raw Tailwind palette colors liketext-gray-500. - Read generated theme files for slot names — Nuxt:
.nuxt/b24ui/<component>.ts, Vue:node_modules/.b24ui-nuxt/b24ui/<component>.ts. These show every slot, variant, and default class for any component. - Override priority (highest wins):
b24uiprop /classprop → global config → theme defaults. - Find icons through the icons guideline — it maps a plain-language request to the right import.
How to use this skill
Based on the task, load the relevant reference files before writing any code. Don't load everything — only what's needed.
Reference files
Guidelines — design decisions and conventions:
- design-system — semantic colors, theming, brand customization, variants, the
b24uiprop - component-selection — decision matrices: when to use Modal vs Slideover, Select vs SelectMenu, Toast vs Alert, etc.
- conventions — coding patterns, slot naming, items arrays, composables, keyboard shortcuts
- forms — form validation, field layout, error handling, Standard Schema
- icons — import icon and use it
Layouts — full page structure patterns:
Recipes — complete patterns for common tasks:
- data-tables — tables with filters, pagination, sorting, selection
- overlays — modals, slideovers, drawers, command palette, info popovers
- navigation — headers, sidebars, breadcrumbs, tabs
- card-pickers — icon-and-description card grids for picking a setting variant or toggling capabilities (
B24PageCardGroup) - settings — settings layouts: when to use Switch vs Radio vs Checkbox vs PageCardGroup, plus the rich
cardvariant recipe with preview image, description and "Learn more" link - detail-panel — entity info sidebars: metadata, togglable settings and grouped content sections beside a main view
- task-form — a single-column task/issue form combining
B24Editor, assignee fields, a date picker and a wrap row of secondary actions
Quick reference:
- components — categorized component index for finding the right component name
Routing table
| Task | Load these references |
|---|---|
| Build application for Bitrix24 / a dashboard / admin UI | conventions, component-selection, dashboard |
| Build a landing page | design-system, conventions, landing |
| Add a settings page | conventions, forms, settings |
| Pick one option / toggle several where each option deserves a preview image, multi-line description and an inline "Learn more" link — layout chooser, plan picker with screenshots | conventions, settings |
| Create a login / signup form | conventions, forms, component-selection |
| Display data in a table | conventions, component-selection, data-tables |
| Add a chat interface | conventions, components (§ Chat) |
| Add a modal, slideover, or drawer | conventions, component-selection, overlays |
| Build site navigation | conventions, component-selection, navigation |
| Render markdown | component-selection, components (§ Prose and § Content) |
| Pick one option (or toggle several) from a small set where each option needs an icon and a sentence — settings variants, capability flags, "what do you want to build?" wizard step | conventions, component-selection, card-pickers |
| Add a rich text editor | conventions, components (§ Editor) |
| Build a task / issue form with a rich-text description, assignees and a due date | conventions, forms, task-form |
| Build an entity info sidebar — channel info, CRM record detail, "about this item" | conventions, component-selection, detail-panel |
| Find an icon for a button, item or empty state | icons |
| General UI work | conventions, component-selection |
Installation
Nuxt
pnpm add @bitrix24/b24ui-nuxt @bitrix24/b24icons-vue tailwindcss
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@bitrix24/b24ui-nuxt'],
css: ['~/assets/css/main.css']
})
/* app/assets/css/main.css */
@import "tailwindcss";
@import "@bitrix24/b24ui-nuxt";
<!-- app.vue -->
<template>
<B24App>
<NuxtPage />
</B24App>
</template>
Vue (Vite)
pnpm add @bitrix24/b24ui-nuxt @bitrix24/b24icons-vue tailwindcss
// vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import bitrix24UIPluginVite from '@bitrix24/b24ui-nuxt/vite'
export default defineConfig({
plugins: [
vue(),
bitrix24UIPluginVite()
]
})
// src/main.ts
import './assets/main.css'
import { createApp } from 'vue'
import { createRouter, createWebHistory } from 'vue-router'
import b24UiPlugin from '@bitrix24/b24ui-nuxt/vue-plugin'
import App from './App.vue'
const app = createApp(App)
const router = createRouter({
routes: [],
history: createWebHistory()
})
app.use(router)
app.use(b24UiPlugin)
app.mount('#app')
/* src/assets/css/main.css */
@import "tailwindcss";
@import "@bitrix24/b24ui-nuxt";
<!-- src/App.vue -->
<template>
<B24App>
<RouterView />
</B24App>
</template>
Add
class="isolate"to your root<div id="app">inindex.html. For Inertia: useb24ui({ router: 'inertia' })invite.config.ts.