mcpField
B
b24-ui-nuxt

b24-ui-nuxt

github.com/bitrix24Design & UI4488 installsUpdated 2w ago
Repository

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

  1. 01Component-selection guidance
  2. 02Design-system and coding conventions
  3. 03Page layouts and task recipes
  4. 04Reference routing by UI task
  5. 05Installation guidance for supported setups

Use cases

  1. 01Build a dashboard or landing page
  2. 02Create forms, tables, or navigation
  3. 03Add dialogs, editors, or chat UI
  4. 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-nuxt

After installing, type/b24-ui-nuxtin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
components.md
references/guidelines/
component-selection.md
conventions.md
design-system.md
forms.md
icons.md
references/layouts/
dashboard.md
landing.md
references/recipes/
card-pickers.md
data-tables.md
detail-panel.md
navigation.md
overlays.md
settings.md
task-form.md

Details

From the project README

Bitrix24 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)

  1. Always wrap the app in B24App — required for toasts, tooltips, and programmatic overlays. Accepts a locale prop for i18n.
  2. Always use semantic colors — text-description, bg-elevated, border-muted, etc. Never use raw Tailwind palette colors like text-gray-500.
  3. 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.
  4. Override priority (highest wins): b24ui prop / class prop → global config → theme defaults.
  5. 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 b24ui prop
  • 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 card variant 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
TaskLoad these references
Build application for Bitrix24 / a dashboard / admin UIconventions, component-selection, dashboard
Build a landing pagedesign-system, conventions, landing
Add a settings pageconventions, 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 screenshotsconventions, settings
Create a login / signup formconventions, forms, component-selection
Display data in a tableconventions, component-selection, data-tables
Add a chat interfaceconventions, components (§ Chat)
Add a modal, slideover, or drawerconventions, component-selection, overlays
Build site navigationconventions, component-selection, navigation
Render markdowncomponent-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 stepconventions, component-selection, card-pickers
Add a rich text editorconventions, components (§ Editor)
Build a task / issue form with a rich-text description, assignees and a due dateconventions, 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 stateicons
General UI workconventions, 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"> in index.html. For Inertia: use b24ui({ router: 'inertia' }) in vite.config.ts.

Comments

Markdown supported