diff --git a/README.md b/README.md index 238164d..7c0d800 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ An open-source MCP server that turns your AI coding agent into a capable UI desi ### What an agent actually ships -Every screen below was built end-to-end by an agent with framesmith's own vocabulary — one `generate_design_system` call each (a seed color + a personality), stamped patterns, real controls, and every quality gate cleared (score ≥ 95, states designed, stress-tested, both themes): +Every screen below was built end-to-end by an agent with framesmith's own vocabulary — one `generate_design_system` call each (a seed color + a personality), stamped patterns, real controls, and every quality gate cleared (score ≥ 95, stress-tested, both themes, and every state the evaluator demands designed): ![A customer-support dashboard built by an agent in framesmith, light theme: sidebar with grouped navigation and an account row, four KPI cards (tickets resolved, first reply, SLA breaches, CSAT) with sparklines and tinted delta pills, a tickets-per-day bar chart with a highlighted day and a floating tooltip, a data-bound tickets-by-channel donut with a center total and legend, an agent-workload table with tinted status chips, and a top-performers panel. Generated from one seed (#2563EB) on the "technical" personality.](https://raw.githubusercontent.com/vicmaster/framesmith/master/docs/framesmith-support-dashboard.png?v=2.0) @@ -24,6 +24,10 @@ Every screen below was built end-to-end by an agent with framesmith's own vocabu > Not every screen is a dashboard. This checkout carries the `commerce` genre — the transactional counterpart to `data` — so the evaluator reads its line prices and total as the design rather than as fabricated data. It still cleared the same bar as the two screens above, including designed **empty-basket** and **loading** states. +![A trail-running app's home screen built by an agent in framesmith, one phone screen shown in light and dark side by side: a status bar, a "Good morning, Fiona" large title with a notifications bell, a This week card reading 42.8 km with a progress bar toward a 55 km goal, a two-by-two grid of Start run, Routes, Plan and Gear buttons, a daily-distance bar chart with Saturday highlighted, the start of a recent-runs list, and a pinned tab bar with a raised centre start-run button above the home indicator.](https://raw.githubusercontent.com/vicmaster/framesmith/master/docs/framesmith-mobile.png?v=2.4) + +> Not every screen is a web page either. This one is declared `type: "mobile"`, so it is judged as a phone screen: a 44px tap target on every button, row and tab, content clear of the status bar and home indicator, and a minimum body size. It started from the `dashboard` structure, which stamps its phone version on a mobile canvas, and is built from the phone primitives (status bar, nav bar, buttons, list rows, tab bar) with no hand-built device chrome, in 33 nodes. framesmith's test suite rebuilds it on every run. + ``` MCP Client → stdio → framesmith server ↓ diff --git a/docs/framesmith-mobile.png b/docs/framesmith-mobile.png new file mode 100644 index 0000000..8ff93a2 Binary files /dev/null and b/docs/framesmith-mobile.png differ diff --git a/package-lock.json b/package-lock.json index ddfc05b..b702efc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "framesmith", - "version": "2.3.0", + "version": "2.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "framesmith", - "version": "2.3.0", + "version": "2.4.0", "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "^0.96.0", diff --git a/package.json b/package.json index c86d9fc..1276461 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "framesmith", - "version": "2.3.0", + "version": "2.4.0", "description": "Open-source MCP server that turns your AI coding agent into a UI designer: a visual canvas, vetted design patterns, and a quality gate every design must pass before you see it. HTML/CSS, open JSON, any MCP client.", "type": "module", "bin": { diff --git a/src/index.ts b/src/index.ts index 3068469..8198c20 100644 --- a/src/index.ts +++ b/src/index.ts @@ -93,7 +93,7 @@ Gotchas (current sharp edges): const server = new McpServer({ name: 'framesmith', - version: '2.3.0', + version: '2.4.0', }, { instructions: INSTRUCTIONS, });