@vimeo/iris
Version:
Vimeo Design System
23 lines (22 loc) • 751 B
TypeScript
import { FlattenSimpleInterpolation } from 'styled-components';
export interface ThemeObject {
theme: Mode;
}
export interface Mode {
name: string;
type: 'THEME' | 'DEVICE';
[key: string]: unknown;
}
export type TokenValue = string | number | FlattenSimpleInterpolation;
export type TokenProxy = (grade: number) => TokenProxy | TokenPrimitive;
export type TokenPrimitive = (grade: number) => TokenValue;
type TokenType = 'COLOR' | 'SIZE' | 'MOTION' | 'LAYOUT';
export interface Token {
default?: string;
type: TokenType;
modes: {
[mode: string]: TokenPrimitive | TokenValue;
};
}
export declare function readToken(token: Token, grade?: number): TokenValue | (({ theme }: ThemeObject) => TokenValue);
export {};