Margin

The margin utility in Wind allows you to define spacing outside a widget dynamically. Margins can be applied to all sides or specific sides using predefined class prefixes. Margin values are calculated using the Pixel Factor in the WindTheme. For more details, see the Pixel Factor documentation page.

Syntax

Margins are applied using the following class prefixes:

Class Description Example
m-[value] Margin on all sides. m-4 or m-[6]
mx-[value] Margin on the horizontal sides (left, right). mx-4 or mx-[6]
my-[value] Margin on the vertical sides (top, bottom). my-4 or my-[6]
mt-[value] Margin on the top side. mt-4 or mt-[6]
mb-[value] Margin on the bottom side. mb-4 or mb-[6]
ml-[value] Margin on the left side. ml-4 or ml-[6]
mr-[value] Margin on the right side. mr-4 or mr-[6]

How Values Are Calculated

Predefined Sizes

Dynamic margin is calculated using the size value multiplied by the Pixel Factor.

  • Example: m-4 → 4 (size) * 4 (Pixel Factor) = 16px.

Arbitrary Values

Arbitrary sizes bypass the Pixel Factor and use the specified value directly.

  • Example: m-[6]6px.

Examples

Applying Margin with Pixel Factor

WContainer(
  className: 'm-4 bg-gray-200',
  child: WText('This container has 16px margin.'),
)

In this example, the margin is set to 16px using the m-4 class.

Using Arbitrary Margin Values

WContainer(
  className: 'm-[10] bg-gray-200',
  child: WText('This container has 10px margin.'),
)

Here, the margin is directly set to 10px, bypassing the Pixel Factor.

Applying Specific Side Margin

WContainer(
  className: 'mt-4 mr-[8] ml-2 mb-[12] bg-gray-200',
  child: WText('Custom side-specific margin applied.'),
)

In this example:

  • mt-4 sets the top margin to 16px.
  • mr-[8] sets the right margin to 8px.
  • ml-2 sets the left margin to 8px.
  • mb-[12] sets the bottom margin to 12px.