Start with Framer's documented surfaces
A design-system decision can appear in several parts of Framer. Its official AI page says the canvas can refine typography, components, breakpoints, spacing, color, effects, and layouts. The page also describes AI-authored code components and connections to external agents. Across the broader platform, design, code, collaboration, and publishing share one working environment.
Those capabilities tell you what can be edited. On their own, they don't decide where a rule should originate or what wins when two layers disagree. The responsibility and precedence model below is a working contract for teams, not a Framer-native standard.
Documented capability versus recommended governance
Framer documents editable project surfaces and agent workflows. This guide recommends an ownership matrix, handoff record, and verification sequence for governing those surfaces.
Give each decision one authoritative home
Choose the authority based on the decision's scope. A rule that should survive a change of page, agent, or implementation tool belongs in portable guidance such as DESIGN.md. Implement a reusable value inside the Framer project as a shared style. When a decision defines a recurring unit with structure or behavior, put that implementation in a component.
| Owns | Should not own | |
|---|---|---|
| DESIGN.md | Portable intent, semantic roles, layout principles, component guidance, motifs, constraints, and permitted exceptions | Framer object IDs, undocumented observations, or claims that a mapping has been tested when it hasn't |
| Shared styles | Reusable Framer color and text values that implement named roles | One-off page fixes or the rationale for why a role exists |
| Components | Recurring structure, variants, states, properties, and interaction behavior | Global values that should come from shared styles or isolated exceptions for one page |
| Breakpoints | Intentional responsive changes to layout, sizing, visibility, and arrangement | Unexplained repairs that compensate for a weak base component |
| Generated code | Custom behavior or rendering that Framer's visual layers do not express adequately | A silent duplicate of token values or rules already owned elsewhere |
| Page-level overrides | Named, narrow exceptions with a reason and review condition | Default styling, reusable behavior, or a convenient escape from updating the source layer |
A mapping isn't a second authority. For example, DESIGN.md may specify that muted text uses a semantic foreground role. A Framer text style can implement that role under a project-specific name. The written rule owns the meaning, while the Framer style owns the local reusable value. The handoff record connects them.
Use a conflict-precedence rule
When two layers disagree, don't accept whichever one renders last. Trace the decision to its declared authority, check whether the downstream mapping is current, and classify any deviation as an approved exception or a defect.
- Check the authoritative decision and its scope.
- Check the recorded mapping to the Framer style, component, breakpoint, or code component.
- Check whether a narrower exception was explicitly permitted.
- If the authority is ambiguous, pause the change and assign it before editing more surfaces.
- Update the owning layer first, then update affected mappings and record the observed evidence.
Local correctness can hide system drift
A page-level override may make one screen look right while shared styles, components, and other breakpoints remain wrong. Treat it as an exception only when its scope and reason are recorded.
Copy this branch-change brief
An agent needs more than a design request. Give it a short acceptance record that names the authoritative decision, intended consumers, unchanged surfaces, and evidence required for review.
change_id: nav-muted-text
objective: Align secondary navigation text with the declared muted-text role.
source:
authority: DESIGN.md > Color roles > Muted content
owner: Design systems owner
decision: Secondary navigation labels use the muted foreground role.
targets:
framer_styles:
- Secondary / Navigation
components:
- Site Header
- Footer Navigation
representative_pages:
- Home
- Pricing
breakpoints:
- Desktop
- Smallest supported phone width
allowed_exceptions:
- Active navigation item uses the primary foreground role.
must_remain_unchanged:
- Primary navigation labels
- Button labels
- CMS article body text
- Header spacing and interaction behavior
agent_context:
include:
- Relevant DESIGN.md color-role section
- Target text style
- Site Header and Footer Navigation components
- Home and Pricing pages
exclude:
- Unrelated pages, CMS content, and global layout changes
evidence:
intended_change:
- Before and after capture for each representative page and breakpoint
unrelated_drift:
- Comparison of named unchanged surfaces
unresolved:
- Record any mapping or behavior that could not be inspected
disposition: pass | revise | block
reviewer:
reviewed_at:The record separates intention from observation. A target listed under framer_styles is expected to change. Its presence there isn't evidence that the mapping exists or that the result matches the source. Fill the evidence section only after inspection.
Representative pages should exercise real reuse. Choose at least one page where the target is prominent and another where it appears in a different composition. For breakpoints, cover the responsive condition most likely to change the component instead of checking every arbitrary canvas width.
Bound the agent context before editing
Framer describes project context, editable styles and assets, external-agent connections, and agent-authored changes. More context isn't automatically better. A bounded context makes it easier to see whether the agent followed the intended rule and whether unrelated work slipped into the branch.
- 1
Select the source decision
Provide the relevant DESIGN.md section or other declared authority. Don't send an entire library when only one color role or component rule is in scope.
- 2
Name the Framer consumers
Identify the shared styles, components, pages, layers, and breakpoints expected to implement the decision. Mark unknown mappings as unknown instead of guessing their names.
- 3
State the non-goals
List nearby surfaces the agent must not redesign, rename, restructure, or restyle. Include unrelated components that share the page.
- 4
Define observable acceptance
Describe what a reviewer must see on representative pages and small breakpoints. Name the unrelated surfaces that should remain unchanged.
- 5
Open a bounded branch change
Ask for the named change only. If the agent finds a missing mapping or ambiguous authority, require it to report the gap instead of inventing a new system.
Treat unknown as a valid evidence state
Unknown is more useful than an invented style name or an assumed import result. It tells the reviewer which mapping must be established before the change can pass.
Start from a complete source artifact
If your Framer handoff lacks portable roles and usage rules, inspect a public kit and its DESIGN.md before creating local mappings. Keep the Framer implementation separate from the source artifact.
Verify one controlled change on a branch
A good-looking desktop canvas is weak evidence. Review the intended change wherever it's reused, inspect a smaller breakpoint, and check named unrelated surfaces for drift. The goal is traceability, not a claim that one review certifies the whole site.
- 1
Confirm the source and mapping
Verify that the branch brief points to the current authoritative decision and intended Framer consumers. If either is missing, revise the brief before judging the rendering.
- 2
Inspect the primary representative page
Check the intended style or component on the page where its effect is easiest to see. Record what changed instead of relying on memory.
- 3
Inspect another real consumer
Open a second representative page or composition that uses the same style or component. A mismatch often reveals a detached local value or duplicated component.
- 4
Check the responsive adaptation
Inspect the smallest named breakpoint and any breakpoint where arrangement, visibility, or sizing intentionally changes. Confirm that the base rule still holds unless the brief permits an adaptation.
- 5
Look for unrelated drift
Compare the surfaces listed under
must_remain_unchanged. Check the style values, component structure, layout, content, and interactions relevant to the branch scope. - 6
Assign a disposition
Pass when the intended mappings match and no in-scope drift remains. Revise for a correctable mismatch. Block when authority is ambiguous, required evidence is unavailable, or the branch changes protected non-goals.
What a pass means
Pass means the bounded change met its declared contract on the inspected surfaces. It doesn't mean the entire Framer site is accessible, responsive, performant, or ready to publish.
Diagnose inconsistency in ownership order
When a Framer page looks inconsistent, another broad prompt often makes the evidence harder to interpret. Walk through the layers in ownership order and stop at the first unsupported or contradictory mapping.
- Source decision: Is the intended role or rule explicit, current, and owned?
- Selected context: Did the agent receive the relevant rule, targets, exceptions, and non-goals?
- Shared style mapping: Does the target element use the Framer style mapped to the source role?
- Component use: Is the page using the shared component and intended variant, or a detached copy?
- Breakpoint adaptation: Does a responsive override intentionally change the value or structure?
- Generated code: Does a code component contain a duplicated value or behavior that conflicts with the source?
- Page-level override: Is there a local value masking the shared implementation?
Fix the owning layer, not the first visible symptom. If a component uses the wrong shared style, correct the component mapping. If the source rule is genuinely wrong, change it through the team's normal design-system process and then update every affected consumer. Don't rewrite the source merely to legitimize an accidental local value.
Consistency check · Ad-hoc colors
The same plan card, built two ways in Ambient Sage.
Pricing
Everything a small team needs to ship a branded UI.
Pricing
Everything a small team needs to ship a branded UI.
Ambient Sage as an evidence-state example
The public Ambient Sage kit works as an example because its source facts are inspectable. Its published page provides a DESIGN.md, semantic light and dark tokens, a 31-color palette, and typography roles. Plus Jakarta Sans is used for headings and body, while JetBrains Mono fills the mono role. The kit also describes warm sage surfaces, tonal cards, and a restrained yellow accent.
Token specimen · real values
Ambient Sage
Live renderAmbient Sage's actual tokens — the same values its exports use.
Color tokens
Ambient Sage
Core
background
H 72 · C0, 0, 2, 4
foreground
H 84 · C7, 0, 18, 89
card
H 70 · C0, 0, 3, 10
muted
H 80 · C1, 0, 3, 7
border
H 69 · C0, 0, 3, 15
Brand
primary
H 53 · C0, 8, 68, 0
primary-fg
H 84 · C7, 0, 18, 89
secondary
H 70 · C0, 0, 3, 10
accent
H 52 · C0, 8, 60, 3
ring
H 53 · C0, 8, 68, 0
Semantic
destructive
H 6 · C0, 70, 78, 25
destructive-fg
H 0 · C0, 0, 0, 0
success
H 130 · C61, 0, 51, 55
warning
H 35 · C0, 38, 91, 21
muted-fg
H 84 · C2, 0, 6, 66
Charts
chart-1
H 53 · C0, 8, 68, 0
chart-2
H 210 · C65, 33, 0, 17
chart-3
H 142 · C44, 0, 28, 25
chart-4
H 340 · C0, 48, 32, 12
chart-5
H 33 · C0, 30, 68, 9
Typography
Ambient Sage
Scale: compact-product
Density: balanced
Heading · Plus Jakarta Sans · 1.875rem
Sample headline
Subheading · Plus Jakarta Sans · 1.375rem
A warm-sage neutral-surface mobile kit with a single vivid yellow accent, flat tonal cards, and oversized display numerals.
Body · Plus Jakarta Sans · 1rem
Ambient Sage uses a near-white warm-sage canvas (#f3f4ef) with card panels distinguished only by a tonal shift to #e5e6e0, never by shadows or borders. A single vivid yellow (#fee951) is the only saturated color and appears sparingly at component scale as orbs, button fills, and focus rings. Primary data values render as oversized bold hero numerals with a small superscript unit. Typography is a friendly rounded geometric (Plus Jakarta Sans) with no uppercase and no tight tracking, while JetBrains Mono is reserved for hex codes and technical strings. Generous rounding and luminance-only contrast give the whole system a calm, minimal feel.
Mono · JetBrains Mono · 0.8125rem
npx shadcn add ambientsage.json
Aa
Plus Jakarta Sans · Heading
Aa
Plus Jakarta Sans · Body
ABCDEFGHIJKLM NOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789 & @ # % →
Tokens
Ambient Sage primitives
Radius scale
Component radius
Elevation
Spacing · base 4px
| Ambient Sage example | What remains unresolved | |
|---|---|---|
| Available from source | DESIGN.md, semantic light and dark tokens, typography roles, spacing guidance, motifs, and public exports | Nothing in this state proves how Framer represents those decisions |
| Implemented in Framer | A team could create named Framer styles and component mappings from the source | Actual style names, component associations, code behavior, and breakpoint adaptations remain unknown until they're implemented and recorded |
| Observed on pages | A reviewer could inspect representative pages and breakpoints after a bounded branch change | No frozen test establishes import behavior, visual parity, responsive completeness, or unchanged-surface results |
A handoff might map the kit's background role to a Framer color style, its body role to a text style using Plus Jakarta Sans, and its tonal-card guidance to a reusable card component. These are example mappings, not facts about an existing Framer project. The project owner must choose the actual names and verify the resulting pages.
No native integration or parity claim
The available evidence shows that Framer can use references such as DESIGN.md and that Ambient Sage exposes portable artifacts. It doesn't show an automatic Identity Forge import, automatic style creation, or tested parity between the kit and a Framer project.
Know what this workflow cannot certify
The responsibility map and branch record improve traceability. They don't replace specialist review or prove that the result is good. A consistent implementation can still apply a poor design decision consistently.
- It does not certify accessibility conformance, including contrast, keyboard behavior, focus treatment, semantics, or assistive-technology support.
- It does not prove every page, content state, locale, or viewport is responsive.
- It does not assess generated-code quality, runtime behavior, performance, security, or maintainability outside the declared change.
- It does not prove that a source artifact was imported automatically or reproduced with visual parity.
- It does not authorize publication. The branch still needs the project's normal review and release process.
Keep separate evidence tracks when the risk requires them. Design-system conformance asks whether the implementation follows its declared source. Accessibility, resilience, behavior, and production readiness require their own checks.
Make one decision traceable today
Choose one existing decision that appears on more than one Framer page, such as muted navigation text or card surface color. Declare its authoritative source, record the exact Framer style or component mapping, name two representative pages and one small breakpoint, then test one bounded branch change. Expand the system only when the record is clear enough for another reviewer to reproduce.
Sources
- AI Website Builder for Designers & Teams | Framer: Framer documents AI-created editable pages and the ability to refine layouts, typography, components, breakpoints, spacing, color, effects, and code components within the project.
- Framer: AI website builder for professional sites: Framer presents agents, design, code, collaboration, and publishing as parts of the same website-building platform.
- Web Design Tools in Framer: The captured design overview describes layer styling, grids, stacks, responsive screen adaptation, built-in fonts, and breakpoint-oriented collaboration surfaces.
- Ambient Sage Design Kit: The public Ambient Sage kit provides a DESIGN.md, semantic light and dark tokens, Plus Jakarta Sans typography, JetBrains Mono, and several developer export formats.
- How to generate a DESIGN.md (and what it is): Identity Forge defines DESIGN.md as a written design brief covering intent, tokens, typography, layout, component treatments, motifs, and explicit usage rules for coding agents.
- AI UI review checklist: test generated interfaces before you ship: The review guide separates task, design-system, resilience, and accessibility evidence and recommends testing representative states and controlled changes before release.