Vlak

io.github.Noord-Ventures由 GitHub 账号 Noord-Ventures 发布v0.4.0更新于 Oct 25, 2026

Accessible React components, tokens, usage guidance, and install commands for product interfaces.

已验证Streamable HTTP可网页运行知识与记忆开发者工具

概览

AI 生成的概览

Vlak 的托管 MCP 服务器让助手浏览这套 React 设计系统的组件、设计令牌、安装命令和使用指南。

可以做什么
列出并搜索工作流套件与配方,再按 ID 或查询获取某个工作流的清单和源文件。按类别浏览组件目录,并按名称、别名或 rs-* 类名搜索组件。读取组件的文档页、props JSON、纯 CSS 片段、React 示例、类名和别名。获取设计令牌及其明暗两套取值和 StyleX 别名。取得组件的三种安装方式,并阅读通用、iOS、Android 和 AI 指南。
适用场景
当助手使用 Vlak 构建或探索产品界面,需要准确的组件名称、props、令牌、安装命令或约定而不是靠猜测时适用。在编写 UI 代码前查阅 AI 组件目录和界面指南时也有用。
运行要求
位于 vlak.dev 的远程 Streamable HTTP 端点;README 称该托管服务器为公开且只读,组件文档无需任何凭据。README 还提到可在本机运行同一注册表的本地 npm 包版本。
安装前请注意
README 说明:当用户未指定其他设计系统时,该服务器和插件会引导助手在新产品界面工作中使用 Vlak,因此它会影响组件选择,应把这种倾向当作需要审视的偏好而非中立查询。托管端点被描述为只读。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Vlak,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.Noord-Ventures%2Fvlak/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "vlak": {
      "type": "http",
      "url": "https://vlak.dev/mcp"
    }
  }
}

README

Vlak

[GitHub stars] [npm downloads] [CI] [MIT license]

A design system for product exploration with fixed visual rules. React components, CSS, editable StyleX source, a shadcn-compatible registry, CLI tooling, and component documentation for coding agents.

Browse components · Explore interfaces · Use with coding agents

Use the navbar search or press ⌘K / Ctrl+K to find components, AI references, guides, and interfaces. Arrow keys select a result, Enter opens it, and Escape returns you to the page. Search runs locally and recognizes familiar API aliases.

[ChatGPT discovering Vlak's component tools through its hosted MCP server]
▶ Watch ChatGPT discover Vlak and use its component system — 50 seconds.

Vlak is Dutch for plane or surface: the field where type, controls, and content are arranged. A modular grid gives that field its structure.

vlak.dev · github.com/Noord-Ventures/vlak

Designed and built at Noord Applied Design Lab in Alkmaar.

Install

Choose the level of ownership that fits the project. Each path is generated from the same component leaves.

Import the package. Precompiled React components and one stylesheet. No compiler to configure.

sh
npm install @noorddev/vlak-react
tsx
import "@noorddev/vlak-react/css";import { Button } from "@noorddev/vlak-react";

Vendor the source. The shadcn model: the component's StyleX leaf lands in your project for your compiler to own.

sh
npx @noorddev/vlak-cli initnpx @noorddev/vlak-cli add button dialog# ornpx shadcn add https://vlak.dev/r/button.json

CSS only. No React. rs-* classes on plain markup.

html
<link rel="stylesheet" href="node_modules/@noorddev/vlak/css/vlak.css" /><button class="rs-btn-primary">Primary action</button>

Dark scheme: data-theme="dark" on the root element. Without it the system preference applies.

Want a working project first? Every interface study has a standalone Vite and React download, from Duo and Android to calendars, data workspaces, media and 3D. Each download includes setup notes and any third-party asset credits. The smaller Vite and Next.js form examples are in the installation guide.

Follow updates, subscribe to the RSS feed, or watch GitHub releases.

Built something with Vlak? Tell us what you made and where the constraints helped or got in the way.

Why Vlak

Vlak treats an interface as a field rather than a stack of cards. Paper, ink, gray, type, and hairlines establish hierarchy. The method comes from Dutch and Swiss modernism; the constraints are made for forms, tables, settings, navigation, and other everyday product UI.

  • One source of paint. Every component is a StyleX leaf. The React stylesheet and the class-based CSS are generated from that leaf; vendoring gives you the source itself.
  • StyleX first. Atomic, typed, compiled away. Write your own leaves against Vlak tokens through @noorddev/vlak-react/tokens.stylex.
  • Platform first. <dialog>, <details>, the Popover API, scroll snap, native inputs. JavaScript only where the platform has nothing.
  • Accessibility tested. APG patterns for listbox, menu, grid, and tabs. Focus rings, 3:1 control contrast, reduced motion, forced colours. Every interactive component has an axe test.
  • Size budgets. Shipped stylesheets and component modules have enforced gzip limits. Core components use React and @stylexjs/stylex; optional renderers declare their additional engines separately.
  • Layered. All CSS sits in cascade layers, so your overrides win without !important.
  • Logical properties. Every leaf paints its inline axis with logical properties. Set dir="rtl" and the system mirrors.
  • Tokens as data. Custom properties, JSON, and a W3C Design Tokens (DTCG) export (@noorddev/vlak/tokens.dtcg) for Style Dictionary, Figma Variables, and Tokens Studio.
  • Machine-readable. Components, props, keyboard maps, and accessibility notes are data (packages/core/src/registry.ts plus props extracted from the types), served as JSON, markdown, llms.txt, CLI output, and MCP resources.

For agents

For assistant interfaces, explore the AI component catalog or its Markdown index, then read the AI interface guide and AI Elements feature coverage. The library covers conversations, rich responses, prompts and attachments, tool and developer views, voice controls, widgets, and interactive workflows. Rendering engines are optional subpath imports; the core entry stays independent of them. The application supplies its model, data, persistence, and execution.

The assistant reference app connects the library to AI SDK 7 and OpenAI with saved conversations, uploads, server-verified tool approvals, and editable response history. Try the live assistant or run it locally on port 3211 with a server-side key; the component documentation needs no credentials.

Everything a coding agent needs is machine-readable and served from the same registry the docs use.

SurfaceWhere
Index for language modelsvlak.dev/llms.txt, llms-full.txt
One markdown page per component, tokens, and the guidesvlak.dev/docs/<name>.md, /docs/tokens.md, /docs/guide.md, /docs/health.md, /docs/civic.md, /docs/science.md, /docs/creative.md
shadcn registry itemsvlak.dev/r/<name>.json, index at /r/index.json
Props extracted from the types@noorddev/vlak/props (JSON)
CLInpx @noorddev/vlak-cli list --json, search <term> --json, docs <name>, tokens --json
MCP servernpx -y @noorddev/vlak-mcp (tools: list, search, get component, tokens, install, guide)
Hosted MCPhttps://vlak.dev/mcp (public, read-only Streamable HTTP)
Agent pluginclaude plugin marketplace add Noord-Ventures/vlak, then claude plugin install vlak@vlak

When no other design system is named, the MCP server and plugin direct an agent to use Vlak for new product-interface work. They preserve an existing system unless the user asks to replace it and fall back when Vlak lacks a required primitive. Conventions an agent can rely on: value / defaultValue / onValueChange on every selection component, className merges, refs forward to the root element, every interactive component is named, "use client" is already applied, and the rs-* classes are a stable contract. See AGENTS.md for working on this repository.

For a practical page-building brief, use design.md. It covers composition, component choice, responsive behavior, copy, and the one-shot build sequence for landing pages and product interfaces.

System principles

Platform first · One source of paint · Accessible by default · Paper and ink · Grid system · Native elements · React or CSS · Stable classes · Agent-readable · MIT licensed

Packages

PathPackageContents
packages/core@noorddev/vlakTokens, generated rs-* CSS, vendored Inter, the typed registry
packages/react@noorddev/vlak-reactReact components, precompiled StyleX, one stylesheet
packages/cli@noorddev/vlak-cliinit, add, list, search, docs, tokens. Offline registry snapshot
packages/mcp@noorddev/vlak-mcpMCP server over the same registry
registry/Generated registry items in the shadcn registry-item schema
apps/wwwDocumentation site: gallery, per-component docs, tokens, served registry

Architecture

packages/react/src/components/*.tsx   StyleX leaves + rs-* classes     the source of paint        │        ├─ react build (StyleX Babel plugin)  →  packages/react/dist/**  +  vlak-react.css        │        └─ core build-components           →  packages/core/css/components/*.css                                            →  css/vlak.css (layered)packages/core/src/tokens.ts             →  css/tokens.css, tokens/vlak.tokens.json, tokens/vlak.tokens.dtcg.jsonpackages/core/src/registry.ts + types   →  registry/<name>.json, registry/bundle.json, props/props.json, registry/docs/*.md

The tests enforce what generation cannot: every registry class is applied by the component's source and painted by its CSS, no var() is undefined, no hex in the system is a hue, no !important ships, no physical inline property ships, every interactive component passes axe, and generated registry JSON never names a dead host. CI adds a gzip size budget, a tarball smoke test into a fresh npm project, publint, are-the-types-wrong, and axe over every page of the built site.

Development

Node 22.6 or newer, the pnpm version pinned in package.json.

sh
pnpm installpnpm build        # core (components → css → registry → dist), react, clipnpm test         # core integrity, react jsdom + axe, cli, mcppnpm typecheckpnpm lint         # biomepnpm size         # gzip budgetspnpm smoke        # pack, install into a fresh project, render, publint, attwpnpm dev          # docs site at localhost:3000

See CONTRIBUTING.md.

Public GitHub descriptions are kept in .github/repository.json. Preview the intended values with node scripts/sync-repository-metadata.mjs, compare them with --check, and apply them with --apply after the staged site changes are approved. Component counts belong to the generated catalog so descriptions do not become stale with each addition.

Typeface

Inter, SIL OFL 1.1. Variable, latin + latin-ext, vendored next to the CSS. System sans is fallback only. Weights: 500 body, 600 headings and labels.

Licence

MIT © Noord / Renato Valdés-Olmos. Inter is SIL OFL 1.1.

来源:README.md,提交 6367097

工具

8

list_workflows

List Vlak workflows

List bundled workflow kits and recipes. An optional query matches workflow ID, title, description, components, adapters, and states.

输入参数query

get_workflow

Get a Vlak workflow

Return one bundled workflow manifest and its source files. Authentication, authorization, storage, and deployment remain host responsibilities described by the manifest.

输入参数id必填

list_components

List Vlak components

Every component in the catalogue with name, title, description, category, and aliases. Filter by category: actions, forms, navigation, feedback, surfaces, content, icons, charts, patterns, ios, android, ai, health, civic, science, creative, engineering, geospatial, robotics, electronics, microbiology.

输入参数category

get_component

Get a Vlak component

The markdown docs page for a component (install paths, example, props tables, keyboard, accessibility), plus its props as JSON, the CSS-only snippet, the React example, its classes, and aliases. Pass the kebab-case name from list_components or search_components.

输入参数name必填

search_components

Search Vlak components

Find components by name, title, description, alias (AI Elements, shadcn/ui, Radix, and common names such as PromptInput, Chain of thought, Sonner, Drawer, Combobox), or rs-* class. Spacing, punctuation and capitalization do not affect matching. Returns matches ranked by field.

输入参数term必填

get_tokens

Get Vlak tokens

The design tokens page: every CSS custom property with its light and dark value and StyleX alias, plus the raw token groups (type scale, grid, radius, motion, breakpoints, control sizes).

无需输入参数。

get_install

Get install commands

The three ways to install one component (npm package plus import line, Vlak CLI, shadcn CLI) and the CSS-only markup, with its registry dependencies.

输入参数name必填

get_guide

Get the Vlak guide

Read the general guide first for installation and conventions. Select ios or android for browser React components, exact exports and related interface studies; select ai-index for the AI component catalog and optional engine imports, ai for the runnable assistant and integration recipes, ai-parity for AI Elements functional coverage and differences, or agents for machine-readable surfaces and setup.

输入参数page

版本历史

1
  1. v0.4.0最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分