Ivy.DesignSystem
1.1.0
See the version list below for details.
dotnet add package Ivy.DesignSystem --version 1.1.0
NuGet\Install-Package Ivy.DesignSystem -Version 1.1.0
<PackageReference Include="Ivy.DesignSystem" Version="1.1.0" />
<PackageVersion Include="Ivy.DesignSystem" Version="1.1.0" />
<PackageReference Include="Ivy.DesignSystem" />
paket add Ivy.DesignSystem --version 1.1.0
#r "nuget: Ivy.DesignSystem, 1.1.0"
#:package Ivy.DesignSystem@1.1.0
#addin nuget:?package=Ivy.DesignSystem&version=1.1.0
#tool nuget:?package=Ivy.DesignSystem&version=1.1.0
Ivy Design System
Modular multi-product token-based design system for Ivy products
A centralized design token system that provides consistent styling across Ivy-Web, Ivy-Framework, and future Ivy products. Built with TypeScript, generates CSS variables, Tailwind configs, and JavaScript/TypeScript exports.
Features
- 🎨 260+ Design Tokens - Colors, typography, spacing, shadows, and more
- 🏢 Multi-Product Support - Product-specific variants for Ivy-Web and Ivy-Framework
- 🌗 Light/Dark Themes - Built-in theme support
- 📦 Multiple Formats - CSS variables, Tailwind configs, JS/TS exports
- 🔒 Type-Safe - Full TypeScript support with autocomplete
- 🎯 Framework Agnostic - Use with any framework or vanilla CSS
Installation
Frontend (npm)
npm install ivy-design-system
Backend (.NET)
dotnet add package Ivy.DesignSystem
Quick Start
CSS Variables
Import the CSS file for your product:
/* For Ivy-Web */
@import 'ivy-design-system/css/ivy-web';
@import 'ivy-design-system/css/light'; /* or dark */
/* For Ivy-Framework */
@import 'ivy-design-system/css/ivy-framework';
@import 'ivy-design-system/css/light'; /* or dark */
/* Use tokens in your CSS */
.my-component {
background-color: var(--color-brand-primary);
padding: var(--spacing-unit);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-md);
}
Tailwind Configuration
Extend your Tailwind config with design tokens:
// tailwind.config.js
import ivyTokens from 'ivy-design-system/tailwind/ivy-web';
export default {
...ivyTokens,
content: ['./src/**/*.{js,jsx,ts,tsx}'],
plugins: [],
};
Then use in your components:
<div className="bg-color-brand-primary text-color-text-primary p-spacing-unit rounded-radius-lg shadow-shadow-md">
Hello Ivy!
</div>
JavaScript/TypeScript
Import tokens directly in your code:
import { tokens } from 'ivy-design-system';
const styles = {
backgroundColor: tokens['color-brand-primary'],
padding: tokens['spacing-unit'],
borderRadius: tokens['radius-lg'],
};
With full TypeScript autocomplete:
import type { TokenName } from 'ivy-design-system';
const tokenName: TokenName = 'color-brand-primary'; // ✅ Autocomplete works!
const invalidToken: TokenName = 'not-a-token'; // ❌ TypeScript error
C# / ASP.NET
Use design tokens in your .NET backend:
using Ivy.Themes;
// Access tokens via static properties
var primaryColor = CoreTokens.Color.BrandPrimary;
var spacing = CoreTokens.Spacing.Unit;
// Generate CSS for embedding in pages
string css = CoreTokens.GenerateCSS();
// Get a specific token by name
var token = CoreTokens.GetToken("color-brand-primary");
// Get all tokens as a dictionary
var allTokens = CoreTokens.GetAllTokens();
Product-specific tokens:
// Ivy-Framework tokens
var frameworkColor = IvyFrameworkTokens.Color.BrandPrimary;
// Ivy-Web tokens
var webColor = IvyWebTokens.Color.BrandPrimary;
// Theme tokens
var lightBg = LightThemeTokens.Color.Background;
var darkBg = DarkThemeTokens.Color.Background;
Available Exports
Frontend (npm)
| Export Path | Description |
|---|---|
ivy-design-system |
JavaScript/TypeScript token exports |
ivy-design-system/css/core |
Core design tokens (shared across products) |
ivy-design-system/css/ivy-web |
Ivy-Web specific tokens |
ivy-design-system/css/ivy-framework |
Ivy-Framework specific tokens |
ivy-design-system/css/light |
Light theme tokens |
ivy-design-system/css/dark |
Dark theme tokens |
ivy-design-system/tailwind/core |
Core Tailwind config |
ivy-design-system/tailwind/ivy-web |
Ivy-Web Tailwind config |
ivy-design-system/tailwind/ivy-framework |
Ivy-Framework Tailwind config |
ivy-design-system/tokens |
Raw JSON tokens |
Backend (.NET)
| Namespace | Description |
|---|---|
Ivy.Themes.CoreTokens |
Core design tokens (shared across products) |
Ivy.Themes.IvyFrameworkTokens |
Ivy-Framework specific tokens |
Ivy.Themes.IvyWebTokens |
Ivy-Web specific tokens |
Ivy.Themes.LightThemeTokens |
Light theme tokens |
Ivy.Themes.DarkThemeTokens |
Dark theme tokens |
Token Categories
Colors
- Brand Colors: Primary teal palette, mint accents
- Semantic Colors: Surface, text, border, status colors
- Extended Palette (Ivy-Framework): 20+ colors with variants
- Shadcn Tokens (Ivy-Web): OKLch color system for Shadcn UI
Typography
- Font Families: Geist, Geist Mono, IBM Plex Mono
- Font Sizes: 5px to 60px scale
- Line Heights: 12px to 60px
- Letter Spacing: -5% to 14%
- Tracking: Tighter to widest
Spacing & Layout
- Spacing Unit: Base spacing (0.27rem)
- Border Radius: sm, md, lg, xl variants
- Breakpoints: sm, md, lg, xl, 2xl (responsive)
Effects
- Shadows: 2xs, xs, sm, md, lg, xl, 2xl
- Animations: Duration and easing tokens
Product-Specific Tokens
Ivy-Web
- OKLch color system for modern color spaces
- IBM Plex Mono font
- Shadcn UI semantic tokens
- Optimized for Next.js 15 + Tailwind 4.0
Ivy-Framework
- Extended 20+ color palette with variants
- Geist font system
- 10-color chart palette
- Comprehensive typography scale
- Optimized for Vite + React 19
Documentation
- Getting Started - Detailed setup guide
- Migration Guide - Migrate from inline tokens
- Token Reference - Complete token catalog
Development
# Clone the repository
git clone git@github.com:Ivy-Interactive/Ivy-Design-System.git
cd Ivy-Design-System
# Install dependencies
npm install
# Build the package
npm run build
# Watch mode (auto-rebuild on changes)
npm run dev
# Clean build artifacts
npm run clean
Project Structure
Ivy-Design-System/
├── tokens/ # Source of truth (JSON)
│ ├── core/ # Shared tokens
│ ├── products/ # Product-specific tokens
│ └── themes/ # Light/dark themes
├── scripts/ # Build tooling
├── dist/ # Generated outputs
│ ├── css/ # CSS variables
│ ├── tailwind/ # Tailwind configs
│ ├── js/ # JS/TS exports
│ └── tokens/ # Raw JSON
└── docs/ # Documentation
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b my-feature - Make your changes to the JSON token files in
tokens/ - Run
npm run buildto generate outputs - Commit your changes:
git commit -m 'Add my feature' - Push to the branch:
git push origin my-feature - Submit a pull request
Versioning
This project follows Semantic Versioning:
- Major: Breaking changes to token names or structure
- Minor: New tokens or non-breaking enhancements
- Patch: Bug fixes or documentation updates
License
MIT © Ivy Interactive
Publishing
This package is published to both npm and NuGet registries. See PUBLISHING.md for details.
Automated Publishing:
- Push a version tag (e.g.,
v1.0.0) to trigger automatic publishing to both registries - GitHub Actions handles building, testing, and publishing
Manual Version Updates:
npm run sync-version 1.0.1
git add package.json Ivy.DesignSystem.csproj
git commit -m "chore: bump version to 1.0.1"
git tag v1.0.1
git push && git push --tags
Links
Made with ❤️ by the Ivy team
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Ivy.DesignSystem:
| Package | Downloads |
|---|---|
|
Ivy
Build Internal Applications with AI and Pure C# |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.17 | 74 | 12/27/2025 |
| 1.1.16 | 45 | 12/27/2025 |
| 1.1.12 | 365 | 12/18/2025 |
| 1.1.11 | 2,469 | 12/11/2025 |
| 1.1.9 | 419 | 12/8/2025 |
| 1.1.8 | 408 | 12/8/2025 |
| 1.1.7 | 177 | 11/26/2025 |
| 1.1.6 | 175 | 11/26/2025 |
| 1.1.5 | 4,639 | 11/18/2025 |
| 1.1.4 | 400 | 11/18/2025 |
| 1.1.3 | 390 | 11/18/2025 |
| 1.1.2 | 275 | 11/12/2025 |
| 1.1.1 | 1,149 | 11/11/2025 |
| 1.1.0 | 278 | 11/10/2025 |
| 1.0.0 | 175 | 11/26/2025 |