Skip to content

MIAN for AI agents

Start here. Everything a coding agent needs to build with MIAN, in the order it needs it, and no more. MIAN is free to use under the MIAN License: commercial and AI-generated projects included, no credit needed on the site you build; MIAN itself may not be resold.

Short on context? Read /llms.txt (about 2,000 tokens) and nothing else until you need a specific component.

1 · Start

MIAN is an accessible UI library: 135 components written as semantic HTML with mn- classes (30 of them page sections), 67 complete design languages called noodles, and 24 whole-website templates. Use it for websites and web apps in any stack. Install:

<link rel="stylesheet" href="https://mian.ro/dist/mian.css">
<script src="https://mian.ro/dist/mian.js" defer></script>
<html lang="en" data-noodle="mian">

There is no npm package and no other CDN URL. The script is only needed by interactive components.

Rules

  1. Load exactly https://mian.ro/dist/mian.css, plus https://mian.ro/dist/mian.js with defer when a component needs it. There is no npm package and no other CDN path: do not invent one.
  2. Use only classes that exist. Look them up (https://mian.ro/registry/classes.json, get_component, /ai/components/<id>.md) instead of inferring names by analogy with other libraries.
  3. Set the design with <html data-noodle="<id>"> using a real noodle id (https://mian.ro/ai/noodles.md or find_noodles). Do not guess ids.
  4. Copy component markup from its examples, including ARIA attributes; change the words, not the structure.
  5. Compose pages from sections (mn-section > mn-container) and components. Do not write CSS for colours, spacing, radius or shadows: the noodle owns them. If something is missing, style it with --mn-* tokens only.
  6. Before finishing, check the markup with https://mian.ro/api/v1/validate or the MCP tool validate_markup, and fix every unknown class or noodle.
  7. Never invent testimonials, client logos, metrics, prices, awards or people. Use the brief’s facts or clearly marked placeholders.
  8. Keep the page working when data-noodle changes: no hard-coded colours or fonts.
  9. Licensing is settled: under the MIAN License, commercial and AI-generated use are allowed and the site you build needs no credit. Do not package MIAN itself for sale (UI kits, themes, template packs).

2 · Choose

Describe the task in your own words; MIAN maps it to its vocabulary.

To…HTTPMCP · file
Plan a whole siteGET /api/v1/plan?type=agency&style=bold&needs=portfolio,faqplan_site
Pick a noodle from a briefGET /api/v1/noodles/find?q=calm+editorialfind_noodles · /ai/noodles.md
Find a component by taskGET /api/v1/search?q=bulk+actionssearch_components · /ai/components.md
Start from a templateGET /api/v1/templates/{id}get_template · /ai/templates.md
Use the brand’s own coloursGET /api/v1/noodles/create?primary=1f4fd6&base=udon&name=Acmecreate_noodle · /studio
Ask which noodle to useGET /api/v1/noodles/recommend?q=calm+editorial&url=example.comrecommend_noodle
Match or improve an existing sitePOST /api/v1/inspect {"url": "…"}inspect_site · /inspect
Understand colour, type, brand, logo, motionGET /api/v1/guide/designget_design_guide · /ai/docs/colour.md
Compose wellGET /api/v1/guideget_site_guide · /ai/docs/web-design.md

The planner and the noodle finder are deterministic: they match against written metadata, what each component is for, where it sits on a page, each noodle’s mood, intensity, contrast and density, so the same brief gets the same answer. Composition controls (cards, repetition, asymmetry, rhythm, surprise, density) change the direction the planner gives, so two different art directions produce different pages.

3 · Exact details

/ai/components/<id>.mdOne component: when to use it, classes, accessibility, copy-paste examples.
/ai/noodles/<id>.mdOne noodle’s design language: philosophy, principles, rules for new components, a CSS recipe.
/ai/templates/<id>.mdOne template: design notes and the HTML of every page.
/registry/classes.jsonEvery valid class, data-mn-* attribute, noodle id, template id and asset URL.
/registry/index.jsonCatalogue with licence, rules and endpoints. Per item: /registry/components|noodles|templates/<id>.json.
/r/registry.jsonRegistry items in the open registry-item format (components, noodles as themes, templates as blocks).
/llms-full.txtEverything in one file, including source CSS. Large, for reference, not for routine work.

Validate before you finish

Send your HTML; get back every unknown class, noodle id, data-mn-* attribute and asset path, with suggestions (“Sizes are abbreviated: use mn-btn-lg”), plus warnings for a missing stylesheet or script and hard-coded colours.

curl -X POST https://mian.ro/api/v1/validate --data-binary @index.html

HTTP API

JSON, no key, CORS open. Everything is read-only except the routes that do work for you: /noodles/create, /noodles/recommend and /inspect. Limits: 240 requests a minute overall; the inspector reads up to 6 pages a minute and 60 a day per client. /api/… without a version is the same as /api/v1/…. Described in OpenAPI 3.1 at /openapi.json and listed in the API catalog at /.well-known/api-catalog (RFC 9727).

GET  /api/v1                                  index: licence, rules, routes
GET  /api/v1/plan?type=&style=&needs=         deterministic site plan
GET  /api/v1/noodles/find?q=                  noodles for a style brief
GET  /api/v1/noodles/create?primary=&base=    a custom noodle from brand colours (also POST)
GET  /api/v1/noodles/recommend?q=&url=        which noodle: from a brief, a site, or both
POST /api/v1/inspect                          score a public page, find its closest noodles
GET  /api/v1/guide/design                     colour, type, branding, logo and motion guides
GET  /api/v1/search?q=                        components, noodles and templates by intent
GET  /api/v1/components?category=&q=         list and filter
GET  /api/v1/components/{id}                  one component, with intents and composition
GET  /api/v1/components/{id}/source           its CSS, JS and example HTML
GET  /api/v1/noodles/{id}                     one noodle: traits, tokens, design language
GET  /api/v1/templates/{id}                   one template, with the HTML of every page
GET  /api/v1/guide                            the web design guide as data
GET  /api/v1/classes                          the vocabulary
POST /api/v1/validate                         check markup
GET  /api/v1/license                          the licence as data
GET  /api/v1/health                           health (application/health+json)

MCP

A Model Context Protocol server over Streamable HTTP at https://mian.ro/mcp, no key. It speaks the current revision (per-request versioning and server/discover) and the older initialize handshake.

{
  "mcpServers": {
    "mian": { "type": "http", "url": "https://mian.ro/mcp" }
  }
}
plan_siteBrief → noodles, template, page outlines with component ids, direction, rules, what to read next.
find_noodlesStyle brief → ranked noodles with traits and why they match.
create_noodleBrand colour and a base noodle → a stylesheet for light and dark, with a contrast report.
recommend_noodleA brief, a site address, or both → up to four noodles and why they match.
inspect_siteA public URL → a design-language score with findings, its palette, type and shape, and the closest noodles.
get_design_guideWhat colour, type, brand, logo and motion choices say, and the rules for making them.
validate_markupHTML → unknown classes, noodles, attributes and assets, with suggestions.
search_components · list_components · get_componentComponents by intent; classes, composition, accessibility and examples.
get_component_source · get_exampleCSS/JS, and a runnable page in any noodle and mode.
list_noodles · get_noodle · get_design_language · get_noodle_cssDesign systems, their tokens and full design language.
list_templates · get_templateWhole websites, the HTML of any page in any noodle.
get_site_guide · get_setupDesign guide (optionally for one page type and noodle); install instructions per stack.

Licence

MIAN is free to use for personal, commercial, client, SaaS and internal projects, including websites and apps generated by AI, with no credit needed on your site. MIAN itself may not be sold or traded, and sharing it requires a credit and a link to mian.ro. The same answer is in every machine surface as data (license in the registry and API, the MCP instructions, llms.txt). Details.

Choose a noodle

Minimal

Flat

Pixel

Linear

Thin

Glass

Textured

Bold

Elegant

Rounded

On this page