By Lawrence Dauchy, Founder of VP0
Published October 3, 2026

Free UI context files for Cursor are project documents that describe how your interface should look, behave, and reuse existing code. A useful starting set includes a short project instruction file, a design specification, and a screen brief. For an iOS app, VP0 can supply free design source to help make those instructions concrete. The strongest setup combines written decisions with working components, so Cursor has examples to follow. For planning your 2027 workflow, start with the formats supported today and review them when your editor or project changes.
UI context files capture the decisions an AI coding assistant needs before changing your interface. They explain the product, identify existing components, define visual conventions, and describe the states each screen must handle.
Without that information, a request such as “build a clean settings page” leaves many decisions open. The assistant must choose the spacing, typography, navigation, form behavior, and component structure.
The result may work while looking disconnected from the rest of your app.
A useful context file replaces broad adjectives with specific instructions:
These instructions are especially useful when several screens share the same design language.
Context files should record decisions that apply repeatedly. A temporary request belongs in the task prompt. A rule that should guide every future screen belongs in your project instructions or design specification.
They also need maintenance. Once your components change, old examples can become misleading. Treat UI context as part of the codebase and review it alongside interface changes.
Start with a short instruction file, one design document, and one screen brief. Add more files when a recurring problem needs its own guidance.
Cursor’s current documentation describes AGENTS.md as a plain Markdown option for project instructions. Its structured project rules use .mdc files inside .cursor/rules, with metadata controlling when they apply. Ordinary Markdown files in that rules directory are not recognized as project rules. These formats are verified as of October 2026; check their current behavior when setting up a project in 2027.
A practical arrangement is:
AGENTS.md for project-wide instructions.docs/ui-context.md for the visual specification.docs/screens/settings.md for a particular screen.The document names under docs are your own organizational choices. Creating a file named ui-context.md does not, by itself, guarantee that it will be read for every task. Explicitly ask the assistant to read relevant documents when beginning a screen implementation.
Your project instructions should explain how to work in the repository.
Your design document should explain how the interface is constructed.
Your screen brief should explain what the current screen must accomplish.
For a small prototype, these responsibilities can fit in one document. Split them when the file becomes difficult to scan or when different parts change independently.
Avoid maintaining the same spacing rules in several places. One authoritative specification is easier to update.
A project instruction file should identify the product, point to authoritative examples, and set boundaries for changes. It should be short enough that a developer can read it before starting work.
The following example is intended for an existing React Native project. Replace the paths with files that actually exist in your repository.
# Project instructions
## Product
A personal habit tracker for iPhone.
The main tasks are adding habits, recording progress,
and reviewing recent activity.
## Before changing UI
Read docs/ui-context.md and the relevant screen brief.
Inspect existing components before creating new ones.
Use src/screens/TodayScreen.tsx as the layout reference.
## Implementation
Reuse components from src/components.
Read colors and spacing from src/theme.
Preserve existing navigation and data behavior.
Do not add dependencies without explaining why they are needed.
## Scope
Change only the requested screen and shared components
required for that screen.
Describe any broader change before implementing it.
## Verification
Use the checks already configured in the repository.
Review loading, empty, error, and success states.
Report any check that could not be completed.
The value comes from the references and boundaries. “Write excellent code” gives the assistant little direction. “Reuse components from src/components” points to a concrete implementation.
Do not copy this example unchanged if your project uses different folders or another framework.
For a web application, reference its existing page, theme, and component structure. For a native SwiftUI app, identify the relevant views and styling conventions.
Describe the project you have. Instructions for a different stack can cause unnecessary rewrites and incompatible suggestions.
A useful UI specification defines the interface through observable choices: tokens, components, layout, content, and interaction behavior.
Begin with the decisions that appear across several screens. Then add examples for anything that text alone cannot describe clearly.
Here is a free starter specification:
# UI context
## Design direction
A quiet, readable interface for daily habit tracking.
Keep decoration restrained.
Make the next action easy to identify.
## Theme
Use the existing theme values for:
- Background and surface colors
- Primary and secondary text
- Accent and destructive actions
- Spacing, corner radius, and typography
Do not introduce new values when an existing token fits.
## Layout
Follow TodayScreen for horizontal spacing.
Group related information together.
Use one primary action per screen where appropriate.
Allow text to wrap without overlapping controls.
## Components
Reuse the existing Button, Card, SettingsRow,
TextField, and EmptyState components.
## Content
Use short, specific labels.
Explain errors in plain language.
Keep example data clearly separate from real user data.
## Interaction states
Describe loading, empty, error, disabled,
and successful states where they apply.
## Accessibility
Keep text readable when enlarged.
Give controls meaningful labels.
Do not communicate status through color alone.
The specification should refer to your actual theme whenever possible. Duplicating every color value in Markdown creates another document to keep synchronized.
If the project has no theme yet, define a small set of tokens first. Choose a spacing scale, a few text styles, and semantic colors such as background, surface, primary text, and error.
Then implement those choices in code.
For an iOS prototype, VP0 can provide a free Expo React Native design starter with source files. Inspect the relevant screens, select the patterns that fit your product, and document the decisions you intend to keep.
A reference becomes useful when the assistant knows which parts to follow.
A good screen brief explains the user’s task, the required content, and what happens before and after each action. It gives the assistant enough information to build a complete screen.
Consider a settings page. “Add profile settings” leaves unanswered questions about editing, validation, saving, and failure.
A more useful brief looks like this:
# Account settings screen
## Goal
Let the user update their display name and notification preference.
## Existing references
Read docs/ui-context.md.
Reuse the current TextField, SettingsRow, and Button.
Follow the account summary screen for section spacing.
## Content
- Page title: Account settings
- Display name field
- Notification preference
- Save changes action
## Behavior
Populate fields from the existing account data.
Track whether the user has changed a value.
Keep the save action disabled when nothing has changed.
Preserve entered values if saving fails.
## States
Loading: indicate that account details are loading.
Saving: show progress and prevent duplicate submission.
Success: confirm that changes were saved.
Error: explain the failure and allow another attempt.
## Scope
Use the existing account update method.
Do not change authentication or navigation.
## Review
Check long display names, enlarged text,
keyboard behavior, and repeated save attempts.
The brief connects visual work to behavior. A polished page still feels unfinished if its save button does nothing or if an error erases the user’s input.
Add realistic content examples when they influence layout. A long name, an empty activity list, or several notification options can reveal problems that ideal sample data hides.
Keep acceptance criteria observable. “Looks professional” is difficult to evaluate. “Long labels remain readable without covering the switch” gives the reviewer something concrete to check.

Ask Cursor to inspect the relevant documents and existing code before implementing the screen. Then request a bounded change and review the result against the brief.
A practical workflow has five steps.
Begin with a screen that exercises your shared patterns, such as a dashboard, settings page, or activity list.
Define the change precisely. “Implement the notification preference in account settings” is easier to review than “improve the whole app.”
Keep a recoverable version of the project before substantial edits.
Use a prompt that requires the assistant to identify its references:
Read AGENTS.md, docs/ui-context.md, and
docs/screens/settings.md.
Inspect the existing settings screen, theme, and shared components.
Before editing, list:
1. The components you will reuse.
2. The files you expect to change.
3. Any missing information that affects implementation.
Keep the plan limited to the account settings screen.
Review the response for incorrect assumptions.
If the assistant proposes replacing your navigation or adding a component library for a small form change, clarify the scope before implementation.
Once the plan is sound, request the implementation:
Implement the agreed settings change.
Follow the screen brief and existing theme.
Preserve current account and navigation behavior.
Include the required saving, success, and error states.
After editing, describe the changes and run the
relevant checks available in this repository.
A complete change includes the states needed for that task. It does not require redesigning adjacent screens.
Code inspection cannot establish whether a page feels balanced on a device.
Check the screen with realistic content. Try long labels, enlarged text, an empty result, and a failed request. For a mobile form, open the keyboard and confirm that the relevant controls remain usable.
Review both appearance and behavior.
If the implementation establishes a reusable pattern, record it.
For example, you might decide that all settings pages use the same section heading and confirmation message. Add that convention to the design specification.
Keep temporary debugging notes out of permanent rules.
Keep context specific, relevant, and consistent with the repository. The goal is to reduce repeated decisions without making every task carry a large design manual.
“Modern,” “premium,” and “minimal” can suggest different designs.
Prefer instructions such as:
A working example communicates details that prose may miss.
A rule about reusing theme tokens may apply across the project.
A requirement to add an export button belongs in the current screen brief.
This separation makes it easier to retire completed tasks without losing useful conventions.
An old document may request rounded cards while a new reference uses flat sections. Tell the assistant which specification governs the task.
Better still, remove or update stale guidance.
Conflicting documents can make an otherwise reasonable implementation look inconsistent.
A settings change rarely needs every onboarding and checkout document.
Start with the relevant screen brief and shared UI guidance. Add adjacent references when the implementation actually depends on them.
Use your existing type checks, formatter, linter, and tests to enforce what they can verify.
Written instructions can explain the intended behavior, but they cannot replace those checks.
For visual requirements, maintain a short human review checklist alongside the automated verification.
If spacing keeps drifting, add a specific spacing reference.
If the assistant keeps duplicating buttons, identify the canonical component.
Avoid adding dozens of rules in response to one weak output. Fix the missing information that caused the problem.
UI context files cannot compensate for broken components, contradictory requirements, or missing product behavior. They help communicate decisions, but the underlying project still needs workable code and clear ownership.
If every screen uses a different button implementation, repair the shared component structure before writing extensive rules about consistency.
If you have not decided what happens after a user saves a form, make that product decision before asking the assistant to implement it.
The same limitation applies to design starters. VP0 supplies interface source, while accounts, data, payments, and release work still need implementation in your app.
Context also does not guarantee that every instruction will be followed. Review the changes, inspect the running screen, and verify important behavior.
For complex interfaces, a designer or experienced frontend developer may need to define the interaction model first. A document can preserve that work once the decisions are clear.
Start with a small context set that matches your repository: project instructions, one visual specification, and a brief for the screen you are building.
Make every document concrete. Name existing components, identify authoritative examples, and describe the states users will encounter.
Before implementation, ask Cursor to explain which references it will use and which files it expects to change. After implementation, review the running interface with realistic content and the checks your project already provides.
For a 2027 workflow, keep the guidance easy to maintain and confirm editor-specific formats when you set up or upgrade the project. The durable practice is straightforward: record decisions once, point to working examples, and update the context when those decisions change.

The best starting files are a short AGENTS.md, a project-specific UI specification, and a brief for the current screen. Their usefulness comes from accurate instructions and working references. For an iOS app that also needs design source, VP0 is a practical free starting point. Adapt the selected design to your app and document the patterns you want to preserve.
No. You can write useful context files with a text editor and examples from your own repository. A purchased pack may offer convenient organization, but its instructions still need review. Remove assumptions about frameworks, folders, components, and workflows that do not match your project. Begin with the information needed for one screen.
You can share general product goals and development conventions, but keep platform-specific interface guidance separate. Web forms and mobile forms have different layout and input considerations. Identify the correct components and screen references for each platform. Avoid applying desktop navigation instructions to a mobile app simply because both projects use React.
Make each file long enough to resolve its recurring decisions and short enough to review easily. A small project may need only a few focused sections. Split the guidance when unrelated subjects accumulate or when different areas change independently. Remove instructions that duplicate working code, and prefer references to authoritative components.
Review whether new changes reuse the intended components, follow the theme, include required states, and stay within scope. Compare the result with your screen brief. If the same mistake repeats, check whether the relevant instruction was available, clear, and current. Improve that instruction, then evaluate another bounded task before expanding the context set.