Design-to-Build Naming Conventions That Stop Handoff Rework
Written by AppWispr editorial
Return to blogDESIGN-TO-BUILD NAMING CONVENTIONS THAT STOP HANDOFF REWORK
If your team still loses time because filenames, tokens, and branches don’t match, this post gives a concrete, contractor-ready system you can copy. It covers Figma variables and layer names, image and asset filenames for mobile, API fixture naming, and git branch rules — plus a single-page acceptance checklist you can paste into every ticket. Follow this and you’ll stop most handoff rework before it starts.
Section 1
Principles: Why consistent naming ends rework
Handoff rework usually comes from three avoidable mismatches: semantic drift (design names mean something different to engineers), packaging drift (assets are exported with inconsistent sizes/formats), and version drift (branches and fixtures don’t track the same milestone). Naming conventions are the cheapest, highest-leverage defense against those gaps.
A practical rule: name for the consumer. Designers should name layers, tokens, and components the same way the code and backend expect them to be referenced. That means using the same token taxonomy in Figma variables as in your codebase and choosing filenames that map directly to asset keys the app reads at runtime.
bullets:[
Agree taxonomy first: primitives → aliases → components. Keep tokens at the primitive level (color, spacing, typography) and alias them for product variants.
Section 2
Figma: token, component and layer naming that maps to code
Structure Figma tokens to mirror your runtime design system: start with primitives (tokens like color.semantic.primary.100), then create aliases for product-level meanings (color.brand.primary). Use a predictable separator (dot or slash) and keep names copy-paste-safe (no emojis, no slashes that conflict with export paths). Figma’s own guidance and the Variables/Styles model favor this hierarchy because it maps directly to automated token exports.
For layers and components, adopt verb-noun or role-based naming that matches component APIs (e.g., Button/Primary/Default or Card/Product/Compact). Include a small, enforced suffix for dev-ready frames such as —dev or /dev so developers can filter live files to the production-ready subset. Put the design-to-build-naming-conventions-filenames-tokens-branch-rules token taxonomy on the root Design System page so it’s discoverable inside Figma.
bullets:[
Token format example: color.palette.gray.50 → color.semantic.surface → color.brand.primary. Use dots for programmatic friendliness.
Section 3
Assets & API fixtures: filenames that reduce ambiguity
Mobile asset names should be explicit about scale and role. Use a pattern: <component>__<role>__<variant>__<scale>.<ext>. Examples: avatar__user__default__3x.png or icon__tab__settings__1x.svg. That maps cleanly to both iOS/Android asset catalogs and web build pipelines. Keep names lowercase, underscore or double-underscore as separators, and avoid spaces or special characters.
For API fixtures and mock JSON used by contractors, name files to match endpoints and variant states: GET_users_200_primary.json, GET_users_200_empty_profile.json. Store fixtures in a fixtures/ directory and include the API path and HTTP status in the filename so engineers immediately know which response the fixture represents. This small discipline prevents accidental mismatches between the design preview and the backend contract.
bullets:[
Asset filename pattern: <component>__<role>__<variant>__<scale>.<ext> (e.g., card__thumbnail__error__2x.png).
Sources used in this section
Section 4
Git branches & release rules: name branches for handoff clarity
Adopt a concise branch prefix system that ties branches to tickets and handoff state. Use feature/<ticket>-<short> for new work, fix/<ticket>-<short> for bug fixes, and hotfix/<ticket> for urgent production patches. When a design is ready for development, create a dev-ready branch named devhand/<ticket>-<designerInitials>-vX and pin the Figma dev-ready frame and fixture commit to that branch.
Enforce two quick rules in pull requests: every PR must reference the Figma file ID and the design’s dev-ready frame (or include a link to the one-page acceptance checklist), and asset/fixture filenames in the diff must follow the naming patterns. This lets reviewers validate handoff compliance without opening Figma every time and reduces “it looked different on my machine” loops.
bullets:[
Branch naming: feature/1234-login-ui, fix/987-avatar-scaling, devhand/1234-JD-v1 for design-to-build ready branches.
Sources used in this section
Section 5
One-page acceptance checklist: paste into tickets and PRs
Use a single-page checklist that must be satisfied before a ticket moves from Design → Dev. It’s small enough to keep in the ticket template and enforceable in code review. Include items that can be checked off by either the designer or the reviewer — not vague items like “look good” — but technical checks like token usage and asset filenames.
Below is a compact contractor-ready acceptance checklist you can paste into any ticket or PR (make it a required checklist in your issue template):
bullets:[
Design file: Figma file ID and frame link included.
Sources used in this section
FAQ
Common follow-up questions
How do I choose dot vs slash vs underscore for tokens and filenames?
Choose separators by audience. Use dots (.) inside token names because many token export tools and CSS/JS variables map naturally to dot or camelCase. Use double-underscore (__) in filenames because it’s filesystem-friendly and works well with mobile asset import. The key is consistency and documenting the choice on the Design System page.
Should designers export assets or should engineers build them from SVGs?
Prefer providing production-ready exports for complex raster assets and icons in SVG for vector use. For simple UI icons, supplying a named SVG in the agreed filename pattern is enough. The mutual expectation should be: designers export and verify one representative device scale; engineers confirm the asset integrates and request additional scales only when necessary.
How strict should a small team be about these rules?
Start lightweight: enforce token and asset naming for public-facing screens and high-risk components. As the system proves its value, expand rules to more screens. The overhead of strict rules drops dramatically once templates and Figma libraries are in place and new hires follow the pattern.
Sources
Research used in this article
Each generated article keeps its own linked source list so the underlying reporting is visible and easy to verify.
Figma
Update 1: Tokens, variables, and styles – Figma Learn - Help Center
https://help.figma.com/hc/en-us/articles/18490793776023-Update-1-Tokens-variables-and-styles
Figma
The Designer's Handbook for Developer Handoff | Figma Blog
https://www.figma.com/blog/the-designers-handbook-for-developer-handoff/
Netguru
Design Token Naming Best Practices
https://www.netguru.com/blog/design-token-naming-best-practices
nvie.com
A Successful Git Branching Model (git-flow)
http://nvie.com/posts/a-successful-git-branching-model
DesignOps.tools
Design Handoff Checklist — DesignOps Tools
https://designops.tools/documents/handoff-checklist/
Figma
Optimize design files for developer handoff – Figma Help Center
https://help.figma.com/hc/en-us/articles/360040521453-Optimize-design-files-for-developer-handoff
Next step
Turn the idea into a build-ready plan.
AppWispr takes the research and packages it into a product brief, mockups, screenshots, and launch copy you can use right away.