// Auto-generated by designlang. Do not edit by hand.
// Re-extract with `npx designlang <url>` to refresh.
//
// Import next to your token JSON to get type-safe access:
//
//   import type { ColorToken, SpacingToken } from './<host>-tokens';
//   import tokens from './<host>-design-tokens.json';
//
// Source: https://vercel.com
// Generated: 2026-05-17T21:16:17.783Z

export type Hex = `#${string}`;
export type Px  = `${number}px`;
export type Ms  = `${number}ms`;

export type ColorRole = 'primary' | 'secondary' | 'accent';
export type ColorHex  = '#171717' | '#ebebeb' | '#4d4d4d' | '#ffffff' | '#666666' | '#000000' | '#7d7d7d' | '#a8a8a8' | '#8f8f8f' | '#0068d6' | '#52aeff' | '#0070f3' | '#e5484d' | '#45dec5' | '#bd2864' | '#ebf5ff' | '#ffb224' | '#297a3a' | '#7820bc' | '#cce6ff' | '#ea3e83' | '#067a6e' | '#bf89ec' | '#398e4a' | '#ff990a' | '#6cda75' | '#ffc96b';
export type ColorToken = ColorRole | ColorHex;

export type FontFamilyToken = 'Geist' | 'Geist Mono';
export type FontSizeToken   = never;
export type FontWeightToken = '400' | '500' | '600' | '700';

export type SpacingToken = '1px' | '24px' | '32px' | '36px' | '40px' | '44px' | '48px' | '85px' | '90px' | '96px' | '135px' | '144px' | '161px';

export type RadiusToken = '2px' | '5px' | '8px' | '16px' | '32px' | '50px' | '64px' | '99px' | '9999px';

export type DurationToken = '90ms' | '160ms' | '300ms';
export type EasingToken   = never;

export type MaterialLanguage = 'material-you';

export interface DesignTokens {
  color: { [role in ColorRole]: ColorHex };
  typography: {
    family: FontFamilyToken;
    size: FontSizeToken;
    weight: FontWeightToken;
  };
  spacing: ReadonlyArray<SpacingToken>;
  radius:  ReadonlyArray<RadiusToken>;
  motion: {
    duration: ReadonlyArray<DurationToken>;
    easing:   ReadonlyArray<EasingToken>;
  };
}

declare const tokens: DesignTokens;
export default tokens;
