Spacing
Consistent spacing system based on a 4px grid for harmonious layouts
4px Grid System
Our spacing system is built on a 4px base unit, creating a consistent rhythm throughout the design. This mathematical approach ensures visual harmony and makes spacing decisions predictable and scalable.
Spacing Scale
Padding Examples
Padding Applications
Padding creates internal space within elements.
padding: var(--spacing-sm); (8px)
padding: var(--spacing-md); (16px)
padding: var(--spacing-lg); (24px)
padding: var(--spacing-xl); (32px)
Margin Examples
Margin Applications
Margin creates external space between elements.
Gap Spacing
Small Gap
gap: var(--spacing-sm);
Medium Gap
gap: var(--spacing-md);
Large Gap
gap: var(--spacing-lg);
Common Use Cases
Component Spacing
Buttons, inputs, and form elements typically use --spacing-md for internal padding and --spacing-sm to --spacing-md for gaps between elements.
Card Layouts
Cards use --spacing-xl for padding, creating comfortable reading space. Card grids use --spacing-lg to --spacing-xl for gaps.
Section Spacing
Major sections use --spacing-2xl to --spacing-3xl for vertical separation, creating clear content hierarchy.
Inline Elements
Icons and inline elements use --spacing-xs to --spacing-sm for subtle separation without breaking flow.
Navigation
Navigation items use --spacing-md for padding and --spacing-sm for gaps, balancing density with usability.
Modals & Overlays
Modal content uses --spacing-xl to --spacing-2xl for padding, creating focus and breathing room.
Implementation
Using Spacing Variables
Always use spacing variables instead of hardcoded pixel values for consistency.
Responsive Spacing
Adjust spacing for different screen sizes while maintaining proportions.
Best Practices
- Consistency: Use the same spacing values for similar elements throughout the application
- Hierarchy: Larger spacing for major sections, smaller for related elements
- Breathing Room: Don't be afraid of whitespace - it improves readability
- Touch Targets: Ensure interactive elements have at least
--spacing-xl(32px) tap area on mobile - Optical Adjustments: Sometimes visual balance requires slight adjustments to mathematical spacing
- Performance: Use CSS variables for easy theme switching and maintenance