Spacing System
Consistent spacing scale with semantic variables for perfect visual rhythm.
OxyMade’s Spacing System provides a consistent, mathematical spacing scale for margins, padding, and gaps throughout your designs.
Overview
The spacing system includes:
- 24 numeric spacing values - A comprehensive scale from tiny to large
- 8 semantic section spacings - Named sizes for page sections
- 7 border radius values - Consistent rounded corners
- CSS variables - Use anywhere in your styles
Spacing Scale
Numeric Spacing Values
All spacing values are available as CSS variables:
| Variable | Description |
|---|---|
--s1 | Smallest spacing |
--s2 | Extra tiny |
--s3 | Tiny |
--s4 | Extra small |
--s5 | Small |
--s6 | Small-medium |
--s7 | Medium-small |
--s8 | Medium |
--s9 | Medium |
--s10 | Medium-large |
--s12 | Large |
--s14 | Large |
--s16 | Extra large |
--s20 | 2x large |
--s24 | 2x large |
--s28 | 3x large |
--s32 | 3x large |
--s36 | 4x large |
--s40 | 4x large |
--s44 | 5x large |
--s48 | 5x large |
--s56 | 6x large |
--s64 | 6x large |
--s72 | Maximum |
Usage
.card {
padding: var(--s6);
margin-bottom: var(--s8);
}
.gap-large {
gap: var(--s12);
}
Section Spacing
Semantic spacing for page sections:
| Variable | Name | Usage |
|---|---|---|
--ss-none | None | No spacing |
--ss-xxs | XXS | Minimal section gap |
--ss-xs | XS | Tight sections |
--ss-sm | SM | Compact sections |
--ss-md | MD | Standard sections |
--ss-lg | LG | Spacious sections |
--ss-xl | XL | Large section gaps |
--ss-xxl | XXL | Maximum separation |
Usage
.section {
padding-top: var(--ss-lg);
padding-bottom: var(--ss-lg);
}
.hero-section {
padding-top: var(--ss-xl);
padding-bottom: var(--ss-xl);
}
Border Radius
Consistent border radius values:
| Variable | Description |
|---|---|
--radius-sm | Small radius |
--radius-md | Medium radius |
--radius-lg | Large radius |
--radius-xl | Extra large |
--radius-2xl | 2x large |
--radius-3xl | 3x large |
--radius-full | Fully rounded (pill) |
Usage
.card {
border-radius: var(--radius-lg);
}
.button {
border-radius: var(--radius-md);
}
.avatar {
border-radius: var(--radius-full);
}
Utility Classes
OxyMade generates utility classes for common spacing applications.
Padding Classes
Apply padding with utility classes:
<div class="p-4">Padding all sides</div>
<div class="px-6">Horizontal padding</div>
<div class="py-8">Vertical padding</div>
<div class="pt-4">Top padding only</div>
<div class="pb-4">Bottom padding only</div>
<div class="pl-4">Left padding only</div>
<div class="pr-4">Right padding only</div>
Margin Classes
Apply margins similarly:
<div class="m-4">Margin all sides</div>
<div class="mx-auto">Center horizontally</div>
<div class="my-8">Vertical margin</div>
<div class="mt-4">Top margin only</div>
<div class="mb-4">Bottom margin only</div>
Gap Classes
For flexbox and grid gaps:
<div class="flex gap-4">Flex with gap</div>
<div class="grid gap-6">Grid with gap</div>
Responsive Spacing
Apply different spacing at breakpoints:
<div class="p-4 lg-p-8 xl-p-12">
Responsive padding
</div>
Breakpoint prefixes:
sm-- Phone portraitmd-- Phone landscapelg-- Tablet portraitxl-- Tablet landscape
Oxygen Integration
Using in Oxygen
After syncing, spacing variables appear in Oxygen’s variable picker:
- Select any spacing property (padding, margin, gap)
- Click the variable icon
- Find OxyMade spacing variables
Or type directly:
{var-s8}
{var-ss-lg}
{var-radius-md}
Selector Collections
Spacing selectors are organized in collections:
- OxyMade Spacing - Numeric spacing utilities
- OxyMade Section Spacing - Section padding utilities
- OxyMade Radius - Border radius utilities
Best Practices
Use the Scale
Stick to scale values for consistency:
/* Good - using scale */
.element {
padding: var(--s6);
margin-bottom: var(--s8);
}
/* Avoid - arbitrary values */
.element {
padding: 23px;
margin-bottom: 37px;
}
Semantic Spacing
Use section spacing for page-level layout:
/* Good - semantic naming */
.hero {
padding: var(--ss-xl) 0;
}
.content-section {
padding: var(--ss-lg) 0;
}
/* Less ideal - numeric for sections */
.hero {
padding: var(--s24) 0;
}
Consistent Gaps
Use consistent gaps in grids and flex containers:
.card-grid {
display: grid;
gap: var(--s6);
}
.button-group {
display: flex;
gap: var(--s3);
}
Relationship Between Elements
Create visual relationships:
.card {
padding: var(--s6);
}
.card-title {
margin-bottom: var(--s3); /* Smaller gap = related */
}
.card-body {
margin-bottom: var(--s6); /* Larger gap = separate */
}
Configuration
Default Values
Spacing values are defined in your design set. The Layers design set includes:
{
"s1": "0.25rem",
"s2": "0.5rem",
"s3": "0.75rem",
"s4": "1rem",
"s5": "1.25rem",
"s6": "1.5rem",
...
}
Custom Spacing
To add custom spacing values:
- Go to OxyMade > Settings
- Navigate to Spacing configuration
- Add custom variables
- Re-sync with Oxygen
Troubleshooting
Variables Not Available
- Verify variables are installed (check setup status)
- Re-run the variables sync
- Clear Oxygen’s cache
Inconsistent Spacing
- Check you’re using the correct variable names
- Verify no conflicting styles override values
- Use browser dev tools to inspect computed values
Section Spacing Too Large/Small
- Review your section spacing values
- Consider adjusting the scale
- Use numeric spacing if semantic doesn’t fit