Spacing

Acua uses an 8px grid system with 4px as the base unit.

Spacing Scale

Tailwind ClassValueUsage
00pxReset
px1pxBorder offset
0.52pxMinimal gap
14pxIcon-text gap
1.56pxButton padding (vertical)
28pxBase gap, small gaps
2.510pxCheckbox/radio
312pxRelated elements
3.514pxInput field padding
416pxForm field gap
520pxMedium gap
624pxCard padding
728pxLarge gap
832pxSection gap
1040pxPage section gap
1248pxLarge page section gap
1664pxHero section

8px Grid System Benefits

  • Creates visual consistency and rhythm
  • Renders as whole pixels across devices
  • Easy communication between designers and engineers
  • Works well with design tools like Figma

Spacing Principles

Proximity Principle

Place related elements closer, unrelated elements farther apart.

Consistent Spacing Hierarchy

LevelGapUsage
Tight2-4pxIcon-text, inline badges
Default8-12pxWithin component elements
Relaxed16-24pxBetween fields, within sections
Loose32-48pxBetween sections, cards

Component Spacing Reference

Button

.button-sm { padding: 4px 12px; gap: 4px; }     /* py-1 px-3 */
.button-default { padding: 6px 16px; gap: 8px; } /* py-1.5 px-4 */
.button-lg { padding: 8px 24px; gap: 8px; }     /* py-2 px-6 */
.button-icon { padding: 8px; }                  /* p-2 */

Input

.input { padding: 8px 12px; height: 36px; }    /* py-2 px-3, h-9 */
.input-sm { padding: 4px 8px; height: 32px; }  /* py-1 px-2, h-8 */

Card

.card { padding: 24px; }                        /* p-6 */
.card-header { padding: 24px 24px 0; }         /* pt-6 px-6 */
.card-content { padding: 0 24px; }             /* px-6 */
.card-footer { padding: 0 24px 24px; }         /* pb-6 px-6 */

Dialog

.dialog-content { padding: 24px; max-width: 512px; }  /* p-6 max-w-lg */
.dialog-header { margin-bottom: 16px; }               /* mb-4 */
.dialog-footer { margin-top: 24px; gap: 8px; }       /* mt-6 gap-2 */

Table

.table-head { padding: 12px 16px; }            /* py-3 px-4 */
.table-cell { padding: 12px 16px; }            /* py-3 px-4 */
.table-cell-compact { padding: 8px 12px; }     /* py-2 px-3 */

Responsive Spacing

BreakpointPage PaddingSection GapCard Padding
sm (640px+)p-4 (16px)gap-4 (16px)p-4 (16px)
md (768px+)p-6 (24px)gap-6 (24px)p-6 (24px)
lg (1024px+)p-8 (32px)gap-8 (32px)p-6 (24px)
xl (1280px+)p-12 (48px)gap-8 (32px)p-6 (24px)