Crystal

Crystal Design System

A gemstone-themed design system with 8 themes, Fibonacci spacing, and 60+ components.

Welcome to the Crystal Design System documentation.

Crystal is a multi-axis design system built for the ArtasceOne monorepo. It combines gemstone-inspired themes (Axis 1) with crystallization presets (Axis 2) to produce a wide range of visual identities from a single token system.

Quick Start

pnpm add @artasce/crystal-tokens @artasce/crystal-ui

Wrap your app with CrystalProvider:

import { CrystalProvider } from '@artasce/crystal-ui';

export default function Layout({ children }) {
  return (
    <CrystalProvider theme="diamond" crystallization="clean">
      {children}
    </CrystalProvider>
  );
}

Core Concepts

Architecture

Crystal is distributed as three packages:

PackagePurpose
@artasce/crystal-tokensDesign tokens via Style Dictionary v4 (CSS, JSON, Dart)
@artasce/crystal-uiReact components, shadcn/ui primitives, device mockups
@artasce/crystal-wordpressWordPress theme + plugin with Elementor widgets

Dual-Axis System

Crystal's power comes from combining two independent axes:

Axis 1 — Themes control color palettes: background, foreground, accent, border, and surface colors. Each theme is a complete palette.

Axis 2 — Crystallizations control shape and personality: border-radius, shadow depth, blur, border width, and motion timing. Five presets (Clean, Dream, Edge, Luxe, Bold) define different visual characters.

Any theme can be combined with any crystallization, producing 40+ unique visual combinations from just 13 variables.