YaVendio Registry
Design System

Spacing

Spacing guidelines and Tailwind utilities for consistent layout in the YaVendio Design System

YaVendio components use Tailwind CSS utilities for spacing, ensuring consistency and compatibility with standard Tailwind projects.

Spacing Scale

Components follow Tailwind's spacing scale (base 4px):

0 (0px)
gap-0, p-0
0.5 (2px)
gap-0.5, p-0.5
1 (4px)
gap-1, p-1
2 (8px)
gap-2, p-2
3 (12px)
gap-3, p-3
4 (16px)
gap-4, p-4
6 (24px)
gap-6, p-6
8 (32px)
gap-8, p-8
12 (48px)
gap-12, p-12

Spacing Reference

ValuePixelsTailwind ClassUsage
00pxgap-0, p-0No spacing
0.52pxgap-0.5, p-0.5Icon/text spacing
14pxgap-1, p-1Minimal spacing
1.56pxgap-1.5, p-1.5Compact elements
28pxgap-2, p-2Default element spacing
2.510pxgap-2.5, p-2.5Medium compact
312pxgap-3, p-3Buttons, small padding
416pxgap-4, p-4Section internal
624pxgap-6, p-6Card content
832pxgap-8, p-8Section spacing
1040pxgap-10, p-10Page sections
1248pxgap-12, p-12Large sections

Border Radius

Components use Tailwind's border radius utilities extended with YaVendio custom values.

The rounded-xs class is a custom extension defined in globals.css as --radius-xs. Tailwind CSS v4 does not include this class by default.

XS (2px)rounded-xs
SM (4px)rounded-sm
MD (8px)rounded-md
LG (12px)rounded-lg
XL (16px)rounded-xl
Fullrounded-full
Tailwind ClassCSS VariablePixelsUsage
rounded-xs--radius-xs2pxSubtle rounding, small elements (custom)
rounded-sm--radius-sm4pxSmall badges, tags
rounded-md--radius-md6pxButtons, inputs
rounded-lg--radius-lg8pxCards
rounded-xl--radius-xl12pxLarge cards, modals
rounded-full9999pxPill badges, avatars

Custom Radius Configuration

YaVendio extends Tailwind's default border radius scale in globals.css:

@theme inline {
  --radius-xs: calc(var(--radius) - 6px);  /* 2px - Custom extension */
  --radius-sm: calc(var(--radius) - 4px);  /* 4px */
  --radius-md: calc(var(--radius) - 2px);  /* 6px */
  --radius-lg: var(--radius);              /* 8px (base) */
  --radius-xl: calc(var(--radius) + 4px);  /* 12px */
}

The base --radius value is 0.5rem (8px), defined in :root.

Usage Examples

// Button with standard spacing
<YaButton className="px-4 py-2 gap-2">
  Save Changes
</YaButton>

// Card with padding
<div className="p-6 space-y-4">
  <h2>Card Title</h2>
  <p>Card content</p>
</div>
// Section spacing
<section className="py-12 px-6">
  <h1 className="mb-6">Section Title</h1>
  <div className="space-y-8">
    {/* Cards with gaps */}
  </div>
</section>

// Grid with gaps
<div className="grid grid-cols-3 gap-4">
  <Card />
  <Card />
  <Card />
</div>

// Flex with consistent gaps
<div className="flex items-center gap-2">
  <Icon />
  <span>Text</span>
</div>
// Responsive spacing
<div className="p-4 md:p-6 lg:p-12">
  <div className="space-y-4 md:space-y-6">
    {/* Content */}
  </div>
</div>

// Responsive gaps
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 md:gap-6">
  {/* Items */}
</div>

Best Practices

Migration from Custom Tokens

If you were using --ya-space-* tokens before:

Old Custom TokenNew Tailwind Utility
px-[var(--ya-space-1)]px-1
gap-[var(--ya-space-2)]gap-2
py-[var(--ya-space-3)]py-3
p-[var(--ya-space-4)]p-4
gap-[var(--ya-space-6)]gap-6
rounded-[var(--ya-radius-md)]rounded-md
rounded-[var(--ya-radius-pill)]rounded-full

On this page