Process Overview
Our development process ensures that what's designed is what gets built. Work flows through three distinct stages with clear deliverables and responsibilities at each step.
Workflow Stages
Each stage builds on the previous one, ensuring alignment from concept to code.
UX Discovery
The UX stage establishes the foundation for everything that follows. Clear requirements at this stage prevent costly changes later.
Required Deliverables
Goal and Scope
MUST define:
Business objective - What problem are we solving?
Target user - Who is this for?
Success metrics - How do we measure success?
Constraints - Technical, timeline, or resource limitations
Example:
Interaction Flows
MUST map end-to-end user journeys:
All use cases - Primary and secondary user paths
Edge cases - Empty states, first-time users, errors
Alternate paths - Different ways to accomplish goals
Visual aids - Wireframes or flow diagrams when helpful
Example:
UI States
SHOULD specify all component states:
Idle - Default state
Loading - Data fetching or processing
Error - Failed operations
Empty - No data available
Success - Successful operations
Disabled - Unavailable actions
SHOULD outline error recovery:
What happens when an error occurs?
How can users retry or resolve it?
What information do users need?
Analytics Tracking
MUST agree on tracking at this stage:
Events - What actions to track
Properties - What data to capture
User properties - Relevant user attributes
Conversion goals - Key success metrics
Example:
Recommended Deliverables
Accessibility Intent
SHOULD describe:
Keyboard flows - Tab order and shortcuts
Focus order - Logical focus progression
Screen reader labels - ARIA labels and descriptions
Alternative content - Text for images, icons, graphs
Example:
Accessibility Readability
SHOULD ensure:
Color contrast - Minimum WCAG AA ratios
Normal text: 4.5:1
Large text (18pt+): 3:1
UI components: 3:1
Text sizing - Readable at default sizes
Interactive targets - Minimum 44×44px touch targets
UI Interactive Elements
SHOULD define states for all interactive elements:
Enabled - Default interactive state
Disabled - Non-interactive state
Hover - Mouse over (desktop)
Pressed/Active - During interaction
Focus - Keyboard focus state
SHOULD specify user feedback:
Visual changes on interaction
Loading indicators
Success/error messages
Haptic feedback (mobile)
Figma Design
Designers MUST start from our Figma library, which mirrors Material UI components and uses the Decentraland theme defined in UI2.
Special colors, sizes, or styles SHOULD NOT be used. Exceptions may exist but MUST be justified in the spec and approved during review.
Required Standards
Use Decentraland Figma Library
MUST use MUI components when an equivalent exists:
Check MUI component library first
Use Decentraland variants and styles
Don't create custom versions of existing components
If a required UI element doesn't exist:
Check if it can be composed from existing components
If not, propose a custom component (see Custom Components)
Document the rationale in the spec
Get approval during design review
Colors
MUST match Figma color styles to UI2 theme names:
Source of truth: colors.ts
Typography
MUST use defined variants:
Available variants:
h1,h2,h3,h4,h5,h6- Headingssubtitle1,subtitle2- Subheadingsbody1,body2- Body textbutton- Button textcaption- Captionsoverline- Overline text
References:
Example mapping:
Breakpoints
MUST design for these breakpoints:
xs
768px
Mobile
sm
991px
Tablet
md
1024px
Small Desktop
lg
1280px
Desktop
xl
1500px
Large Desktop
Source: index.ts
Best practices:
Design mobile-first (start at
xs)Show key breakpoints in Figma frames
Document responsive behavior
Test at viewport edges (767px, 768px, etc.)
Border Radius and Palettes
MUST use theme-defined values:
Don't introduce new border radius values
Don't create new palette roles
Exceptions require spec justification and approval
Theme values:
Color Schemes
If the screen supports multiple color schemes:
MUST provide:
Which scheme applies (see colorSchemes.ts)
Light mode preview
Dark mode preview
Documentation on switching schemes in Storybook
Example:
Component Selection
SHOULD reuse prepared components:
Check MUI first - Does MUI have this component?
Check UI2 - Is there a Decentraland variant?
Compose if possible - Can you combine existing components?
Custom as last resort - Follow Custom Components process
dApp Implementation
Developers implement designs using UI2 components and following our Styling & Theming standards.
Implementation Checklist
Component Implementation Flow
Quality Gates
Before marking implementation complete:
Visual match - Matches Figma pixel-perfect at key breakpoints
Theme compliance - All values from UI2 theme
States implemented - All UX-specified states work
Accessibility - Keyboard nav, focus states, ARIA labels
Analytics - Events fire as specified
Responsive - Works at all breakpoints
Performance - No unnecessary re-renders
Tests - Component tests pass
Storybook - Stories added (if reusable)
Code review - Approved by maintainers
Handoff Best Practices
From UX to Design
Clear requirements document
User flows with annotations
State diagrams for complex interactions
Analytics event specifications
From Design to Development
Figma file with dev mode enabled
Component specifications
Responsive behavior notes
Color and typography token mapping
Accessibility annotations
Link to UX requirements
During Implementation
Regular check-ins between designer and developer
Early feedback on technical constraints
Iterative reviews at key milestones
Final review before merging
Next Steps
Learn about Custom Components for creating new components
Review Styling & Theming for implementation details
See Migration Guide if working with UI1 components
Last updated