All docs

Code Generation

7 platform renderers, 4 token writers, 2 test generators — from one document.

Overview

@uix/codegen transforms a UIXDocument into production-ready code for 7 platforms, design token files for 4 formats, and test suites for 2 frameworks.

Quick start

typescript
import { UIXCodegen } from '@uix/codegen';

const codegen = new UIXCodegen();
const result = codegen.generate(document, {
  target: 'react',
  styleStrategy: 'tailwind',
});

// result.files — array of generated files
// result.manifest — checksums, warnings, metadata

Platform renderers

PlatformOutputFeatures
React.tsx functional componentHooks, typed props, token refs
Vue.vue SFC<script setup>, scoped styles
Angular.ts @ComponentTypeScript, template string
HTML.html semantic markupInline styles, accessibility
React Native.tsx RN componentStyleSheet, flexbox layout
Flutter.dart StatelessWidgetMaterial, custom themes
SwiftUI.swift ViewModifiers, color extensions

Multi-platform generation

typescript
const result = codegen.generateMulti(document, ['react', 'flutter', 'swiftui']);
// Generates all three in one pass

Token writers

FormatFileUse case
Tailwindtailwind.config.tsWeb (React, Vue, Angular)
CSS Variablesvariables.cssAny web project
Darttokens.dartFlutter
SwiftTokens.swiftSwiftUI / iOS

Test generators

  • Playwright — integration tests with semantic selectors
  • Accessibility — a11y audit tests (ARIA roles, contrast, keyboard navigation)

Animation codegen

Animations defined in the UIXDocument are translated to platform-native code:

  • Web — CSS @keyframes with reduced-motion media queries
  • React Native — Animated.timing / Animated.spring
  • Flutter — AnimationController + Tween
  • SwiftUI — .animation() modifier

Style strategies

StrategyDescription
tailwindTailwind CSS utility classes
css-modulesScoped CSS module files
css-varsCSS custom properties
inlineInline style objects