Package Exports
- @bcc-code/design-tokens/bcc/cdn
- @bcc-code/design-tokens/bcc/cdn/dark
- @bcc-code/design-tokens/bcc/cdn/light
- @bcc-code/design-tokens/bcc/primevue
- @bcc-code/design-tokens/bcc/tailwind
- @bcc-code/design-tokens/bcc/tailwind/dark
- @bcc-code/design-tokens/bcc/tailwind/light
- @bcc-code/design-tokens/bcc/tailwind/utilities
Readme
@bcc-code/design-tokens
A comprehensive design token package with CSS variables, Tailwind v4 integration, and framework presets for BCC projects.
🚀 Features
- CSS Variables: Ready-to-use CSS custom properties for any project
- Tailwind v4 Integration: Native support with
@themeand custom utilities - PrimeVue Presets: Seamless integration with PrimeVue components
- Dark Mode: Automatic switching via CSS media queries or class-based control
- CDN Support: Direct CSS imports for WordPress and static sites
- Framework Ready: Extensible architecture for multiple UI libraries
📦 Installation
npm install @bcc-code/design-tokens📁 Package Structure
Understanding the import paths:
@bcc-code/design-tokens/{group}/{format}/{file}{group}- Design system variant (currentlybcc, future:events,members){format}- Distribution format (cdn,tailwind,presets){file}- Specific file (variables.css,index.css, etc.)
Examples:
./bcc/cdn/variables.css- BCC brand CSS variables for CDN/WordPress./bcc/tailwind/index.css- BCC brand Tailwind integration./bcc/primevue/index.js- BCC brand PrimeVue preset
🎯 Usage
CSS Variables (WordPress, Static Sites)
CDN (Recommended):
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@bcc-code/design-tokens@latest/build/bcc/cdn/variables.css">NPM:
import '@bcc-code/design-tokens/bcc/cdn';Usage in CSS:
.my-component {
background-color: var(--color-elevation-surface-default);
color: var(--color-text-default);
padding: var(--space-300);
border-radius: var(--border-radius-lg);
font: var(--heading-lg);
}
.my-button:hover {
background-color: var(--color-background-brand-hover);
}Tailwind CSS v4
1. Install Tailwind CSS:
npm install tailwindcss2. Import in your main CSS:
@import "@bcc-code/design-tokens/bcc/tailwind";3. Use in your components:
<div class="bg-surface p-spacing-300 rounded-lg">
<h2 class="heading-lg text-semantic-default mb-spacing-150">Card Title</h2>
<p class="body-md text-semantic-subtle">Card content with BCC design tokens.</p>
<button class="bg-brand hover:bg-brand-hover text-semantic-inverse px-spacing-300 py-spacing-150 rounded-md">
Action Button
</button>
</div>PrimeVue Integration
1. Install dependencies:
npm install primevue @primevue/themes2. Import CSS and preset:
import '@bcc-code/design-tokens/bcc/cdn';
import BCCPreset from '@bcc-code/design-tokens/bcc/primevue';3. Configure PrimeVue:
import { createApp } from 'vue';
import PrimeVue from 'primevue/config';
const app = createApp(App);
app.use(PrimeVue, {
theme: {
preset: BCCPreset,
options: {
darkModeSelector: '.dark' // or 'system' for auto-detection
}
}
});4. Use PrimeVue components:
<template>
<Card>
<template #title>Welcome</template>
<template #content>
<p>This card uses BCC design tokens automatically!</p>
<Button label="Primary Action" />
<Button label="Secondary" severity="secondary" />
</template>
</Card>
</template>🌙 Dark Mode
Automatic (CSS Media Query)
Works out of the box with user's system preferences:
/* Light mode */
:root {
--color-text-default: #1e242d;
}
/* Dark mode - automatically applied */
@media (prefers-color-scheme: dark) {
:root {
--color-text-default: #dee4ea;
}
}Manual (Class-based)
Control dark mode programmatically:
// Toggle dark mode
document.documentElement.classList.toggle('dark');
// Enable dark mode
document.documentElement.classList.add('dark');
// Disable dark mode
document.documentElement.classList.remove('dark');For PrimeVue projects:
app.use(PrimeVue, {
theme: {
preset: BCCPreset,
options: {
darkModeSelector: '.dark' // Class-based
// or
darkModeSelector: 'system' // Automatic
}
}
});📋 Available Tokens
Colors
- Brand:
--color-bcc-*(100-1000) - Neutral:
--color-neutral-*(0-1100) - Semantic:
--color-text-*,--color-background-*,--color-border-* - Elevation:
--color-elevation-surface-*
Typography
- Headings:
--heading-xsthrough--heading-3xl - Body:
--body-sm,--body-md,--body-lg - Font Properties:
--font-size-*,--font-weight-*,--line-height-*
Spacing
- Scale:
--space-*(0, 25, 50, 75, 100, 150, 200, 250, 300, 400, 500, 600, 800, 1000) - Negative:
--space-negative-*for negative margins
Border Radius
- Scale:
--border-radius-*(none, xs, sm, md, lg, xl, 2xl, full)
Tailwind-specific
- Spacing:
--spacing-*(mapped from space tokens) - Text Sizes:
--text-*(mapped from font-size tokens) - Radius:
--radius-*(mapped from border-radius tokens)
🎨 Framework Support
Current
- ✅ CSS Variables - Universal support
- ✅ Tailwind CSS v4 - Native integration
- ✅ PrimeVue v4 - Complete preset
Planned
- 🔄 Coming soon
🛠️ Development
Building from Source
git clone https://github.com/bcc-code/bcc-tokens.git
npm install
npm run buildProject Structure
├── tokens/ # Source design tokens (from Figma Token Studio)
│ ├── primitives/ # Base tokens (colors, typography, spacing)
│ ├── semantic/ # Semantic tokens (light/dark themes)
│ ├── $themes.json # Theme configuration
│ └── $metadata.json # Token metadata
├── build/ # Generated CSS, Tailwind, and manual presets
│ └── bcc/ # BCC brand group (future: events/, members/)
│ ├── cdn/ # Generated: CDN-ready CSS files
│ ├── tailwind/ # Generated: Tailwind v4 integration
│ └── primevue/ # Manual: PrimeVue preset
├── demos/ # Usage examples
└── build.js # Build system (Style Dictionary)Build System Flow
- Figma Token Studio →
tokens/directory (JSON files) - Style Dictionary processes tokens via
build.js - Generated files output to
build/bcc/cdn/andbuild/bcc/tailwind/ - Manual presets created in
build/bcc/primevue/(protected from build clean)
📄 License
MIT © BCC Code
Made with ❤️ by BCC Code