Design Tokens

All Tokens in Quanta CSS

Tokens are at the core of how Quanta works — defining spacing, colors, fonts, and behavior in one scalable system. Every utility and component pulls from these variables.

Spacing Scale

--quanta-space-0: 0rem;
--quanta-space-1: 0.25rem;
--quanta-space-2: 0.5rem;
--quanta-space-3: 0.75rem;
--quanta-space-4: 1rem;
--quanta-space-5: 1.25rem;
--quanta-space-6: 1.5rem;
--quanta-space-8: 2rem;
--quanta-space-10: 2.5rem;

Border Radius

--quanta-rounded-sm: 0.125rem;
--quanta-rounded: 0.25rem;
--quanta-rounded-md: 0.375rem;
--quanta-rounded-lg: 0.5rem;
--quanta-rounded-xl: 0.75rem;
--quanta-rounded-2xl: 1rem;
--quanta-rounded-full: 9999px;

Fonts

--quanta-font-inter: 'Inter', sans-serif;
--quanta-font-primary: 'Inter', sans-serif;
--quanta-font-secondary: 'Roboto', sans-serif;
--quanta-font-roboto-serif: 'Roboto Serif', serif;
--quanta-font-roboto-mono: 'Roboto Mono', monospace;

Breakpoints

--quanta-screen-sm: 640px;
--quanta-screen-md: 768px;
--quanta-screen-lg: 1024px;
--quanta-screen-xl: 1280px;
--quanta-screen-2xl: 1536px;

Transitions

--quanta-duration-fast: 150ms;
--quanta-duration-normal: 300ms;
--quanta-duration-slow: 500ms;
--quanta-ease-default: cubic-bezier(0.4, 0, 0.2, 1);

Z-Index

--quanta-z-xs: 10;
--quanta-z-sm: 100;
--quanta-z: 1000;
--quanta-z-lg: 10000;
--quanta-z-xl: 100000;

Shadows

--quanta-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
--quanta-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
--quanta-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
--quanta-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
--quanta-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
--quanta-shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.1);

Typography Scale

--quanta-text-xs: 0.75rem;
--quanta-text-sm: 0.875rem;
--quanta-text-base: 1rem;
--quanta-text-lg: 1.125rem;
--quanta-text-xl: 1.25rem;
--quanta-text-2xl: 1.5rem;
--quanta-text-3xl: 1.875rem;
--quanta-text-4xl: 2.25rem;
--quanta-text-5xl: 3rem;

Component Defaults

--quanta-border-width: 1px;
--quanta-ring-width: 2px;
--quanta-heading-size: var(--quanta-text-xl);
--quanta-subheading-size: var(--quanta-text-xl);
--quanta-body-size: var(--quanta-text-base);
--quanta-caption-size: var(--quanta-text-sm);

Light Theme Tokens

--quanta-bg-default: var(--quanta-grey-50);
--quanta-bg-secondary:      var(--quanta-slate-800);
--quanta-text-secondary:    var(--white);
--quanta-border-secondary:  var(--quanta-slate-800);
--quanta-secondary-hover:   var(--quanta-slate-700);

--quanta-bg-success:        var(--quanta-green-500);
--quanta-text-success:      var(--white);
--quanta-border-success:    var(--quanta-green-500);
--quanta-success-hover:     var(--quanta-green-600);

--quanta-bg-warning:        var(--quanta-orange-500);
--quanta-text-warning:      var(--white);
--quanta-border-warning:    var(--quanta-orange-500);
--quanta-warning-hover:     var(--quanta-orange-600);

--quanta-bg-danger:         var(--quanta-red-500);
--quanta-text-danger:       var(--white);
--quanta-border-danger:     var(--quanta-red-500);
--quanta-danger-hover:      var(--quanta-red-600);

--quanta-bg-info:           var(--quanta-cyan-500);
--quanta-text-info:         var(--white);
--quanta-border-info:       var(--quanta-cyan-500);
--quanta-info-hover:        var(--quanta-cyan-600);

--quanta-bg-neutral:        var(--quanta-grey-100);
--quanta-text-neutral:      var(--quanta-grey-700);
--quanta-border-neutral:    var(--quanta-grey-300);
--quanta-neutral-hover:     var(--quanta-grey-200);

--quanta-bg-accent:         var(--quanta-indigo-500);
--quanta-text-accent:       var(--white);
--quanta-border-accent:     var(--quanta-indigo-500);
--quanta-accent-hover:      var(--quanta-indigo-600);

--quanta-bg-ghost:          transparent;
--quanta-text-ghost:        var(--quanta-grey-600);
--quanta-border-ghost:      transparent;
--quanta-ghost-hover:       var(--quanta-grey-100);

--quanta-text-link:         var(--quanta-blue-600);
--quanta-link-hover:        var(--quanta-blue-700);

Dark Theme Tokens

html[data-theme="dark"] {
  --quanta-bg-default:        var(--quanta-slate-900);
  --quanta-text-default:      var(--quanta-grey-100);
  --quanta-border-color:      var(--quanta-slate-700);

  --quanta-primary:         #25C0D6;
  --quanta-primary-hover:   #34D0E5;
  --quanta-text-primary:    #ffffff;
  --quanta-border-primary:  #34D0E5;

  --quanta-bg-secondary:      var(--quanta-slate-500);
  --quanta-text-secondary:    var(--quanta-slate-100);
  --quanta-border-secondary:  var(--quanta-slate-500);
  --quanta-secondary-hover:   var(--quanta-slate-400);

  --quanta-bg-success:        var(--quanta-green-400);
  --quanta-text-success:      var(--quanta-grey-100);
  --quanta-border-success:    var(--quanta-green-400);
  --quanta-success-hover:     var(--quanta-green-300);

  --quanta-bg-warning:        var(--quanta-orange-400);
  --quanta-text-warning:      var(--white);
  --quanta-border-warning:    var(--quanta-orange-400);
  --quanta-warning-hover:     var(--quanta-orange-300);

  --quanta-bg-danger:         var(--quanta-red-400);
  --quanta-text-danger:       var(--white);
  --quanta-border-danger:     var(--quanta-red-400);
  --quanta-danger-hover:      var(--quanta-red-700);

  --quanta-bg-info:           var(--quanta-cyan-300);
  --quanta-text-info:         var(--quanta-grey-100);
  --quanta-border-info:       var(--quanta-cyan-300);
  --quanta-info-hover:        var(--quanta-cyan-200);

  --quanta-bg-neutral:        var(--quanta-grey-400);
  --quanta-text-neutral:      var(--quanta-grey-200);
  --quanta-border-neutral:    var(--quanta-grey-400);
  --quanta-neutral-hover:     var(--quanta-grey-200);

  --quanta-bg-accent:         var(--quanta-indigo-400);
  --quanta-text-accent:       var(--quanta-grey-100);
  --quanta-border-accent:     var(--quanta-indigo-400);
  --quanta-accent-hover:      var(--quanta-indigo-500);

  --quanta-bg-ghost:          transparent;
  --quanta-text-ghost:        var(--quanta-grey-300);
  --quanta-border-ghost:      transparent;
  --quanta-ghost-hover:       var(--quanta-grey-800);

  --quanta-text-link:         var(--quanta-blue-400);
  --quanta-link-hover:        var(--quanta-blue-300);
}