Elevation
Windmill uses a minimal elevation system based on surface colors and strategic shadows. We prioritize clarity and simplicity over complex layering effects.
Elevation Principles
- Surface colors create depth: Darker surfaces appear deeper than lighter ones
- Shadows only for overlays and movement: Not for making elements stand out
- Light borders for grouping: Preferred over shadows for content separation
- Use sparingly: Limit elevation to avoid visual noise
Surface Depth System
We use surface colors from our color system to create depth hierarchy:
surface-primary(#FBFBFD): Default elevation, main backgroundssurface-secondary(#EFEFF4): Sunken surfaces, recessed areassurface-tertiary(#FFFFFF): Elevated cards and content areas
Shadow Usage
When to Use Shadows
✅ Use shadows for:
- Overlays: Modals, dropdowns, tooltips (
shadow-lg) - Moving elements: Drag and drop, active states (
shadow-md)
❌ Don't use shadows for:
- Making buttons or elements stand out
- Content grouping or separation
- Decorative purposes
- Permanent interface elements
Shadow Specifications
shadow-md: For moving elements and temporary elevationshadow-lg: For overlays and floating content- Light borders:
border-light(#E5E7EB) for grouping instead of shadows
Examples
Overlay Elevation
Modals, dropdowns, and floating content use shadow-lg with light borders:
Sunken Surface
Recessed areas use surface-secondary to appear deeper than the main background:
Do's and Don'ts
✅ Do
- Use
surface-secondaryfor sunken or recessed areas - Apply
shadow-lgonly to overlays (modals, dropdowns) - Use
shadow-mdfor elements being moved or dragged - Prefer light borders (
border-light) for content grouping - Keep elevation simple and purposeful
- Use
surface-tertiaryfor elevated cards when needed
❌ Don't
- Use shadows to make buttons or static elements stand out
- Combine multiple elevation techniques unnecessarily
- Create custom shadow values outside the system
- Use elevation purely for decoration
- Apply heavy shadows that distract from content
- Overuse elevation effects throughout the interface
Remember: Elevation should enhance usability, not create visual complexity. When in doubt, use surface colors instead of shadows for depth.