How We Work
One diagram per DryUI package and app. Each flow is grounded in the real source so you can see exactly how every module plugs into the agent-driven UI loop.
@dryui/primitives
Zero-dependency headless Svelte 5 primitives built on native browser APIs. Focus traps, popovers, dismiss handlers, color, and date utilities feed the rest of the stack.
@dryui/ui
Styled compound components that layer primitives and theme tokens into Root, Trigger, and Content pairs the app can drop in.
@dryui/theme-wizard
An interactive theme studio. User input derives the full --dry-* token map, injects it live, and exports a theme.css for the project.
@dryui/lint
A Svelte preprocessor that enforces DryUI layout, markup, and CSS rules. Strict mode blocks the build on any violation.
@dryui/feedback
The in-app annotation widget. A keyboard shortcut opens a canvas over the running app, captures a screenshot and drawings, and posts the submission.
@dryui/feedback-server
The bridge between the widget and the agent. HTTP receives submissions, an MCP server exposes them to Claude, and SSE delivers replies back to the dashboard.
@dryui/mcp
The MCP surface for agents. ask returns component, recipe, list, and setup guidance; check validates a file, theme, or workspace against DryUI rules.
@dryui/cli
The command-line entry to DryUI. Parses a command, detects the project, plans the install, and prints a TOON-rendered plan.
@dryui/plugin
The AI tooling bundle for Claude Code, Codex, Copilot CLI, and Gemini. Ships skills, hooks, and the dryui plus dryui-feedback MCP servers ready to load.
apps/docs
The SvelteKit docs site. The component catalog powers slug routes that render live demos, props tables, CSS var references, and examples.