Project dashboard
Design
Design checks that your project's screens follow one standard and work for everyone: on a phone, with a keyboard, with a screen reader, in low light. The yardstick is the project's design.md, the guide with your colors, fonts and components, along with a quality floor that applies to every screen (contrast, touch target size, states, focus and motion).
design.md
design.md is your project's design guide, a text file in the code folder. It says which colors, fonts and components to use and what to avoid. With it, the agent stops inventing a new style for every screen.
To create one, run /faundr:design in a project without a design.md. The agent:
- collects the colors, fonts and components your code already uses;
- asks up to 4 questions: which screen is the reference, the colors, the typography and the product's personality, then the scope (mobile, product type, theme, motion);
- writes design.md only after you approve.
From then on, Faundr tells the agent to follow the guide on every new screen, and the checks compare your screens against it.
How screens are checked
| Check | When | How |
|---|---|---|
| Automatic | At the start of every session and at the end of responses that touched screens | No AI, on your computer, with dozens of rules: colors outside the palette, repeated styles that should be a component, menus that open clipped, contrast, motion, copy and states. |
| Quick review | At the end of responses that touched screens, if the project has a design.md | The agent reviews only the screen files it edited, without opening the browser, and lists new issues. |
| Full audit | When you ask, with /faundr:design | The agent goes through every screen, area by area. If the dev server is running, it measures each screen in the browser at 4 widths (375, 768, 1024 and 1440 pixels), from phone to large monitor. If the app has light and dark themes, it measures both (the second theme on phone and desktop). |
A finding from the automatic check closes on its own once the check stops finding it. Folders listed in .faundrignore (third-party code, generated files) are left out of the check.
Supported languages
The automatic check works without installing anything on screens built with JavaScript and TypeScript (React, Next.js, Vue, Angular, Svelte, Astro and React Native), Flutter, PHP, HTML, CSS (including Sass and Less) and Tailwind. For Android screens written in Kotlin, only the AI audit checks them, by reading the screens. In languages without screens (a Go server, for example), design doesn't apply. The full table is in Supported languages.
Tabs
Issues
The D-n findings. A card at the top shows whether the project has a design.md, how many screen files were checked and when.
Filter by type (only types with findings appear):
| Type | What it catches |
|---|---|
| Visual bugs | Clipped menus, overlapping elements, overflowing text. |
| Responsive | Screens that break on a phone or scroll sideways. |
| Accessibility | Low contrast, buttons without a name, small touch targets, invisible focus. |
| Off design | A color, font or spacing that isn't in design.md. |
| Repetition | The same style hand-written in several places when it should be a component. |
| Motion | Animations that run too long or ignore the reduced-motion setting. |
| Content and states | Screens without a loading, empty or error state; confusing copy. |
| App identity | Favicon, tab title and other app branding. |
| Best practices | The rest of the quality floor. |
In apps with light and dark themes, the automatic check also flags palette colors hard-coded in the code (they look the same in both themes), a browser bar color (theme-color) that's the same in both themes, and an app that doesn't start in the device's theme.
You can also filter by status: Open, Resolved or Archived.
A finding's detail shows what's wrong, the file and line (or the screen, width and theme, when it was measured in the browser), the source (automatic check, AI audit or reported by you) and the rule. The buttons:
- Fix with your AI agent copies
/faundr:design-fix D-n. The agent fixes it following design.md, verifies the fix and marks it resolved. - Mark as resolved, when you fixed it yourself.
- Archive, when the issue doesn't apply to this project. See below.
Report issue records something you saw on screen: what's wrong, where, the type and the severity. It becomes a D-n like the others. From the agent: /faundr:design-report the list menu opens hidden.
Archive findings and turn off rules
Not every rule fits every project. When you archive a finding, pick a reason (Doesn't apply to this project, False alarm or Design decision) and a scope:
- Only this issue;
- Stop checking this rule in the project, which also archives the other open findings for that rule;
- Stop checking anything of this type in the project.
Disabled rules appear under Guide → Design scope, with a Turn back on button.
When the agent archives a finding, it's labeled "Archived by the agent" along with the reason, and you can reopen it.
To skip one specific piece of code, add a comment on the line above it: // faundr-ignore <rule>: <reason>.
Coverage
What the last full audit checked, area by area: responsive, accessibility, content and states, visual bugs, consistency with design.md, motion and identity. Each area has:
- a result: Passed, Failed, Partial, Not checked, Never checked or Off;
- a score from 0 to 4;
- how it was checked: from the code, measured in the browser or on a device.
The bars show how scores trend between audits. Below them, the Measured responsiveness grid crosses screens with the 4 widths. Each cell says "OK" or how many issues it has; click to see them. When the app has both themes, the Dark theme / Light theme button at the top switches the grid, and each measured finding says which theme it appeared in.
Guide (design.md)
It opens with the Design scope card, which tells Faundr what to check (the same card is under Settings → Design):
| Question | Options |
|---|---|
| Does it need to work on phones? | Yes / Desktop only / Built for mobile. "Desktop only" turns off the responsive rules. |
| Product type | App or dashboard / Website or landing page / Both. |
| Theme | Dark / Light / Light and dark. With a single theme, Faundr doesn't measure the other one and turns off the two-theme rules. If you don't answer, it figures it out from the code. |
| Motion | No animation / Subtle / Expressive. |
Below it are the Approved exceptions (a technique and the reason, like "rounded buttons — part of the brand") and the Disabled rules. After that comes the text of the project's design.md. To change the guide, edit the file in the project or ask the agent.
Showcase
A zoomable, draggable canvas with:
- the design tokens: colors, typography, radii and shadows;
- replicas of your components (buttons, inputs, cards, menus, tags…), with their variants side by side.
The agent draws the replicas with /faundr:design-showcase, from design.md and each component's code. When a component's file changes, its replica gets an Out of date tag. Run the command again to redo only the outdated ones.
Click an element in a replica to open the inspector: classes, size, padding, colors with their token names, border, corner radius and font. It's handy when you're talking to a designer or checking whether a component follows the guide.
Fix order
With many open findings, /faundr:design-fix without a number fixes them in order of importance and pauses after each stage:
- anything that breaks usability or accessibility;
- states and content;
- responsive layout and flow;
- deviations from design.md;
- polish.
To fix everything in one go without pausing between stages, use /faundr:design-fix --all. The agent fixes findings one at a time, shows progress (D-15 resolved (3/30)) and doesn't stop to ask. Anything that needs your OK (redoing a whole screen, changing navigation or a form) gets skipped and listed at the end under "Waiting on you". The same --all works with /faundr:quality-fix, /faundr:security-fix, /faundr:error-fix and /faundr:tests-fix.
Commands
Design compares your screens against the project's design.md. Run these commands in your AI agent, from the folder linked to the project.
The check without AI runs automatically, and if the agent changes screens, it reviews those files at the end of the response.
/faundr:designCreates the design.md (asking what you want) or runs a full audit of the screens, opening them in the browser.
/faundr:design-fix [D-<n> | --all]Fixes a design issue following the design.md and marks it as resolved after verifying. Without a number, fixes the open ones in order of importance, pausing after each stage. With --all, fixes them all without stopping and lists at the end what needs your input.
e.g. /faundr:design-fix --all
/faundr:design-report <what you saw>Logs a design issue you spotted on screen. It becomes a D-n here.
e.g. /faundr:design-report the list menu opens hidden
/faundr:design --files <files>Quick audit of only the given files (without opening the browser).
e.g. /faundr:design --files src/routes/index.tsx
/faundr:design-showcase [component]The agent reads the design.md and each component's code and draws replicas with their variants under Design → Showcase. Without an argument, it redraws only the outdated ones and adds the missing ones.
!faundr design-scope [--mobile sim|desktop|celular] [--disable rule] [--enable rule]Shows or changes the design Scope: whether it must work on mobile (sim = yes, celular = mobile-first), product type, theme, motion, exceptions and turned-off rules. "--mobile desktop" stops the responsiveness checks. You can also change it under Design → Guide.
e.g. !faundr design-scope --mobile desktop
!faundr design-archive D-<n> --reason not-applicable|false-alarm|design-decision --note "<why>"Archives an issue that doesn't apply to this project (it moves to Archived and won't come back). From the dashboard: open the issue and click Archive.
e.g. !faundr design-archive D-7 --reason design-decision --note "rounded buttons are part of the brand"
!faundr design-lintRuns the check without AI on the screens now (about 45 rules: identity, mobile, accessibility, contrast, motion, states, colors outside the palette and repeated styles). It already runs on its own.
!faundr design-show [D-<n>]Without a number, shows the fix order of the open issues in 5 stages, from what breaks usage to polish. With a number, shows the details.
e.g. !faundr design-show D-4
!faundr design-resolve [D-<n>]Marks an issue as resolved. Without a number, lists the open ones.
e.g. !faundr design-resolve D-4
!faundr design-reopen D-<n>Reopens an archived or resolved issue.
e.g. !faundr design-reopen D-7
!faundr design-coverageShows what the last full audit checked and the score for each topic.
// faundr-ignore <rule>: <reason>A code comment on the line above a snippet that breaks an automatic rule on purpose. The check skips that snippet (faundr-ignore-file applies to the whole file).
e.g. // faundr-ignore responsivo/largura-fixa: board inside a zoomable canvas