LogoLogo
  • What is UDML?
  • Document structure
    • <components>
    • <imports>
    • <instructions>
    • <meta>
    • <styles>
    • <tokens>
    • <mappings>
    • <screens>
  • Directives
    • ai-hint
    • <data> Directive Specification
    • <interaction> Directive
    • <layer> Directive
    • <repeat> Directive
    • <responsive>
    • selection
    • <tracking> Directive
  • Components
    • Layout
      • <accordion> Component
      • <box> Component
      • <column> Component
      • <divider>
      • <grid> Component
      • <row> Component
    • Navigation
      • <breadcrumbs> Component
      • <pagination> Component
      • <tab> Component
      • <tabs> Component
    • Text & Display
      • <avatar>
      • <heading>
      • <icon>
      • <image>
      • <label>
      • <text>
      • <video>
    • Controls & Input
      • <button>
      • <checkbox>
      • <input> Component
      • <radio>
      • <select>
      • <slider>
      • <stepper>
      • <switch>
      • <textarea>
    • Forms
      • <form> Component
      • <formField> Component
      • <formGroup> Component
    • Data Collections
      • <dataColumn> Component
      • <dataTable> Component
      • <list> Component
      • <timeline> Component
      • <treeView> Component
    • Data Visualization
      • <chart> Component
      • <summary> Component
    • Modals
      • <dialog> Component
      • <modal> Component
      • <popover> Component
      • <toast> Component
      • <tooltip> Component
  • Prompting Guides
    • Prompting AI Developer Tools with UDML
    • Working with UDML in an Existing Codebase
  • Contributing to UDML
Powered by GitBook
On this page
  • A universal design language for the AI era β€” built in public, by the community
  • πŸ’‘ Let's see it!
  • Here's a Figma design based on Airbnb:
  • Here's how it looks in UDML:
  • And here's the AI-generated code:
  • πŸ’‘ Why UDML?
  • 🀝 Made to Be a Community Standard
  • πŸ” Quick Overview
  • βœ… What UDML Is:
  • 🚫 What It’s Not:
  • 🧠 Core Concepts
  • 1. Semantic UI
  • 2. AI-Oriented
  • 3. Modular & Reusable
  • 4. Open & Extensible
  • πŸ—‚ UDML Structure
  • πŸ”­ Roadmap
  • πŸͺͺ License
Edit on GitHub

What is UDML?

NextDocument structure

Last updated 2 months ago

A universal design language for the AI era β€” built in public, by the community

UDML (Universal Design Markup Language) is an open, semantic design language that describes user interfaces in a way that AI developer agents β€” like Cursor, Copilot, or Claude β€” can turn into fully functional applications across platforms and frameworks.

Unlike static design files, UDML is inherently semantic and machine-readable by default. But more importantly, it's meant to evolve with your input.


πŸ’‘ Let's see it!

Here's a Figma design based on Airbnb:

Airbnb Listing Card

Here's how it looks in UDML:

<Component name="ListingCard">
	<Column name="cardContainer" cornerRadius="lg" gap="med">
	<!-- Image Carousel -->
	<Column name="carouselContainer">
 		<Carousel height="200px" autoScroll="false" onHover=showArrows(leftArrow, RightArrow) dotIndicators="true">
			<repeat>
				<Image><Data description="listing image" limit=10/></Image>
			</repeat>
		</Carousel>

		<Badge layer=2 variant="highlight" margin="16px" position="top-left">Superhost</Badge>
		<IconButton layer=2 icon="heart" variant="ghost" onClick="toggleFavorite" position="top-right" />
		
		<!-- Scroll arrows (shown on hover) -->
		<IconButton name="leftArrow" layer=2 visibility="hidden" icon="chevron-left" onClick="previousSlide" position="center-left"/>
		<IconButton name="rightArrow" layer=2 visibility="hidden" icon="chevron-right" onClick="nextSlide" position="center-right"/>
		
		<Interaction name="showArrows>
			<Action type="setProperty" property="visibility" value="true">
		</Interaction>
	</Column>

	<!-- Property Details -->
	<Column name="listingDetails" padding="md" justify="space-between">
		<Row name="topRow" gap="auto">
			<Text variant="title-sm">Groveland, California</Text>
			<Row name="starRating" gap="xs" align="center">
				<Icon name="star" size="sm" />
				<Text variant="body-sm">4.91</Text>
			</Row>
		</Row>
		<Text variant="body-sm">Yosemite National Park</Text>
		<Text variant="body-sm"><Data description="date range"</Data></Text>
		<Text variant="body-bold">$289/night</Text>
	 </Column>

	 </Column>
</Component>

And here's the AI-generated code:

This was all generated in Claude 3.7 with a single prompt from the UDML above, except the image URLs which I pasted in.


πŸ’‘ Why UDML?

The way we design and build interfaces is changing β€” fast.

  • Design tools like Figma are visual, but not semantic.

  • AI tools are smart, but need structure and context to generate production-grade code.

  • Developers and designers still rely on handoff, rewrites, and tribal knowledge to ship UI.

UDML changes that by creating a shared language between humans and machines β€” one that describes intent, not just pixels.


🀝 Made to Be a Community Standard

UDML isn’t just a spec β€” it’s a conversation.

We’re building this in the open, and we need your help:

  • πŸ“ Suggest improvements to the language and naming

  • 🧩 Propose new components, behaviors, or interaction patterns

  • πŸ”Œ Share ideas for tooling, integrations, and real-world use

If you've ever wanted a better way to design for machines and people β€” you're in the right place.

Join the Discussions, open an Issue, or jump into a Pull Request. We’d love to hear from you.


πŸ” Quick Overview

βœ… What UDML Is:

  • XML-based and easy to parse

  • Describes structure, style, behavior, and intent

  • Designed for AI agents to generate UI across any environment

  • Modular, extensible, and reusable

🚫 What It’s Not:

  • A rendering engine

  • A replacement for Figma or code

  • A locked spec β€” we’re building this together


🧠 Core Concepts

1. Semantic UI

Everything in UDML maps to a real UI concept β€” not just a shape or layer.

2. AI-Oriented

You can embed plain language instructions to help AI understand the why behind your design.

3. Modular & Reusable

Use components, tokens, and imports to scale across teams and projects.

4. Open & Extensible

UDML can grow with your needs β€” define your own tokens, screens, and even new elements.


πŸ—‚ UDML Structure

<udml version="1.0">
  <instructions>...</instructions>    <!-- Human-readable goals for AI -->
  <meta>...</meta>                    <!-- Authoring and context metadata -->
  <tokens>...</tokens>                <!-- Global colors, spacing, typography -->
  <styles>...</styles>                <!-- Reusable visual styles -->
  <components>...</components>        <!-- Custom UI components -->
  <screens>...</screens>              <!-- Pages, views, or modals -->
  <imports>...</imports>              <!-- External libraries -->
</udml>

πŸ”­ Roadmap

We're actively working on:

  • βœ… Spec v0.1 (draft component definitions)

  • πŸ”„ Schema definition (XSD/JSON Schema)

  • πŸ”§ CLI for validation and conversion

  • 🧩 Figma exporter (WIP)

  • πŸ“˜ Public docs (via GitBook)

  • 🌱 A growing, open-source community


πŸͺͺ License

Open-source and free to use. Final license pending.


Want to shape the future of how humans and AI build software together?

πŸ‘‰ Start here