---
title: "openvibe-sdk/design · OpenVibe.Services"
canonical: "https://openvibe.services/docs/sdk/design"
updated: null
---

# openvibe-sdk/design · OpenVibe.Services

HTML: [openvibe-sdk/design · OpenVibe.Services](https://openvibe.services/docs/sdk/design)

# `openvibe-sdk/design`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

From `types/design.d.ts` (server only). Declarations are shown verbatim.

## type GlyphStyle

~~~~
export type GlyphStyle = 'thin' | 'light' | 'regular' | 'bold' | 'solid' | 'duotone';
~~~~

## interface DesignGlyph

~~~~
export interface DesignGlyph { name: string; style: GlyphStyle; svg: string; solid: string; strokeWidth: number | null; underlay: string; underlayOpacity: number; }
~~~~

## interface DesignGlyphReference

~~~~
export interface DesignGlyphReference { name: string; set: string; setName: string; author: string; license: string; licenseUrl: string; preview: string; }
~~~~

## interface DesignGlyphDraft

~~~~
export interface DesignGlyphDraft { id: string; name: string; svg: string; solid_svg: string | null; styles: GlyphStyle[]; references: DesignGlyphReference[]; status: string; }
~~~~

## interface DesignGlyphSuggestion

~~~~
export interface DesignGlyphSuggestion { name: string; score: number; tags: string[]; why: string[]; }
~~~~

## interface DesignGlyphSuggestionResult

~~~~
export interface DesignGlyphSuggestionResult {
  label: string;
  context: string;
  glyphs: DesignGlyphSuggestion[];
  new: boolean;
  ranked: boolean;
  model: string | null;
  cached?: boolean;
  draft_price?: { usd: number | null; model: string | null; provider: string | null; tokens: { in: number; out: number }; note: string };
}
~~~~

## interface DesignComponent

~~~~
export interface DesignComponent {
  schema: 'design.component@1';
  name: string;
  title: string;
  summary: string;
  anatomy: Array<{ part: string; role: string }>;
  props: Record<string, string>;
  states: string[];
  tokens: string[];
  behaviors: { keyboardAware: boolean; outsideTapCloses: boolean; scrollLock: boolean; reducedMotion: string };
  accessibility: { name: string; target: string; focus: string };
  platforms: {
    web: { module: string; markup: string; demo: string };
    android: { toolkit: 'Jetpack Compose'; material3: string; specification: string };
    ios: { toolkit: 'SwiftUI'; specification: string };
  };
  examples: Array<{ title: string; props: Record<string, unknown> }>;
}
~~~~

## function createDesignClient

accessToken is needed for icons.draft only; suggest, get, search and the component registry are public.

~~~~
export declare function createDesignClient(options?: { accessToken?: string; baseUrl?: string; fetchImpl?: typeof fetch; timeoutMs?: number }): {
    icons: {
        draft(input: { name: string; sentence?: string; styles?: GlyphStyle[]; sourceSvg?: string }, opts?: { signal?: AbortSignal }): Promise<{ kept: DesignGlyphDraft[]; refused: string[] }>;
        get(name: string, opts?: { style?: GlyphStyle; signal?: AbortSignal }): Promise<DesignGlyph>;
        search(q: string, opts?: { limit?: number; signal?: AbortSignal }): Promise<{ query: string; glyphs: DesignGlyph[] }>;
        suggest(label: string, opts?: { context?: string; limit?: number; rank?: boolean; signal?: AbortSignal }): Promise<DesignGlyphSuggestionResult>;
    };
    components(opts?: { signal?: AbortSignal }): Promise<{ schema: 'design.component@1'; components: DesignComponent[]; kitComponents: unknown[] }>;
    component(name: string, opts?: { signal?: AbortSignal }): Promise<{ schema: 'design.component@1'; component: DesignComponent; examples: DesignComponent['examples'] } | null>;
};
~~~~

## const DEFAULT\_DESIGN\_URL

~~~~
export declare const DEFAULT_DESIGN_URL: string;
~~~~
