# Padding Apply inner spacing to widgets using the `p-*` utilities. Values are multiplied by the Pixel Factor or used directly as arbitrary pixel values. - [Basic Usage](#basic-usage) - [Quick Reference](#quick-reference) - [How Values Are Calculated](#how-values-are-calculated) - [Arbitrary Values](#arbitrary-values) - [Responsive Design](#responsive-design) - [Customizing Theme](#customizing-theme) - [Related Documentation](#related-documentation) ```dart import 'package:fluttersdk_wind/fluttersdk_wind.dart'; WContainer( className: 'p-4 bg-gray-200 dark:bg-gray-700', child: WText('This container has 16px padding.'), ) ``` ## Basic Usage Padding is applied by adding a `p-*` class to any `WContainer` or widget that accepts `className`. The value is scaled by the Pixel Factor (default 4), so `p-4` produces 16px of padding on all sides. ```dart WContainer( className: 'pt-4 pr-[8] pl-2 pb-[12] bg-gray-200 dark:bg-gray-700', child: WText('Custom side-specific padding applied.'), ) ``` **Note:** As of version 0.0.3, if the resolved padding is 0 on all sides, the `PaddingParser` will not wrap the widget with a `Padding` widget at all. This reduces unnecessary widget nesting. ## Quick Reference | Class | Description | Example | |:------|:------------|:--------| | `p-{value}` | Padding on all sides | `p-4`, `p-[6]` | | `px-{value}` | Horizontal padding (left + right) | `px-4`, `px-[6]` | | `py-{value}` | Vertical padding (top + bottom) | `py-4`, `py-[6]` | | `pt-{value}` | Top padding | `pt-4`, `pt-[6]` | | `pb-{value}` | Bottom padding | `pb-4`, `pb-[6]` | | `pl-{value}` | Left padding | `pl-4`, `pl-[6]` | | `pr-{value}` | Right padding | `pr-4`, `pr-[6]` | ## How Values Are Calculated ### Predefined Sizes Padding is calculated using the size value multiplied by the Pixel Factor. - Example: `p-4` → 4 (size) × 4 (Pixel Factor) = **16px**. ### Arbitrary Values Arbitrary sizes wrapped in brackets bypass the Pixel Factor and use the value directly in pixels. - Example: `p-[6]` → **6px**. ```dart WContainer( className: 'p-[10] bg-gray-200 dark:bg-gray-700', child: WText('This container has 10px padding.'), ) ``` ## Arbitrary Values Use bracket notation to apply any pixel value directly without scaling. The bracket form expects a unitless integer or decimal. ```dart WContainer( className: 'pt-[24] pb-[8] px-[16] bg-white dark:bg-gray-800', child: WText('Custom arbitrary padding on each axis.'), ) ``` ## Responsive Design Prefix any padding class with a breakpoint to apply it only at that screen size and above. ```dart WContainer( className: 'p-2 md:p-4 lg:p-8 bg-gray-100 dark:bg-gray-800', child: WText('Responsive padding.'), ) ``` Available breakpoints: `sm`, `md`, `lg`, `xl`, `2xl`. ## Customizing Theme Padding values are scaled by the Pixel Factor. Adjust the Pixel Factor to change the base unit for all predefined padding values. ```dart WindTheme.setPixelFactor(3); // p-4 now produces 12px instead of 16px ``` See [Pixel Factor](../customization/pixel-factor.md) for full details. ## Related Documentation - [Margin](./margin.md) — apply outer spacing to widgets. - [Pixel Factor](../customization/pixel-factor.md) — configure the base unit used by spacing utilities. - [Width](../sizing/width.md) — control widget width. - [Height](../sizing/height.md) — control widget height. - [WContainer](../widgets/wcontainer.md) — the primary container widget that accepts padding classes.