# Sizing Utilities for setting the width and height of elements. - [Basic Usage](#basic-usage) - [Quick Reference](#quick-reference) - [Width](#width) - [Height](#height) - [Min & Max Dimensions](#min--max-dimensions) - [Responsive Design](#responsive-design) - [Dark Mode](#dark-mode) - [Arbitrary Values](#arbitrary-values) - [Customizing Theme](#customizing-theme) - [Related Documentation](#related-documentation) ```dart // Fixed width and height WDiv(className: 'w-64 h-32 bg-blue-500') // Percentage based WDiv(className: 'w-1/2 h-full bg-green-500') // Viewport relative WDiv(className: 'w-screen h-screen bg-gray-900') ``` ## Basic Usage Use `w-{size}` and `h-{size}` to set fixed dimensions based on the global spacing scale, or use fraction/percentage utilities like `w-1/2` or `w-full`. ```dart WDiv( className: 'w-full max-w-md mx-auto p-6 bg-white rounded-lg shadow-lg', child: WText('Centered Content'), ) ``` ## Quick Reference ### Fixed Sizes Values follow the global spacing scale (1 unit = 4px). | Class | Value | Description | |:------|:------|:------------| | `w-0` / `h-0` | 0px | Zero width/height | | `w-px` / `h-px` | 1px | 1px width/height | | `w-1` / `h-1` | 4px | Tiny | | `w-4` / `h-4` | 16px | Small | | `w-16` / `h-16` | 64px | Medium | | `w-96` / `h-96` | 384px | Large | ### Percentages & Viewport | Class | Value | Description | |:------|:------|:------------| | `w-full` / `h-full` | 100% | Full parent width/height | | `w-screen` / `h-screen` | 100vw / 100vh | Full viewport width/height | | `w-1/2` / `h-1/2` | 50% | Half parent size | | `w-1/3` / `h-1/3` | 33.33% | Third parent size | | `w-2/3` / `h-2/3` | 66.66% | Two-thirds parent size | | `w-1/4` / `h-1/4` | 25% | Quarter parent size | | `w-3/4` / `h-3/4` | 75% | Three-quarters parent size | ## Width Set the width of an element using `w-{number}` or `w-{fraction}`. ```dart // Fixed width (128px) WDiv(className: 'w-32 bg-blue-200') // Fractional width (50%) WDiv(className: 'w-1/2 bg-blue-300') // Full width (100%) WDiv(className: 'w-full bg-blue-400') ``` ## Height Set the height of an element using `h-{number}`, `h-{fraction}`, or `h-screen`. ```dart // Fixed height (64px) WDiv(className: 'h-16 bg-red-200') // Full screen height WDiv(className: 'h-screen bg-red-300') ``` ## Min & Max Dimensions Constrain the size of elements using `min-w`, `max-w`, `min-h`, and `max-h` utilities. ### Max-Width Scale Wind includes a comprehensive max-width scale, perfect for keeping text readable ("measure") or constraining layout width. | Class | Value | |:------|:------| | `max-w-0` | 0px | | `max-w-none` | No limit (Infinity) | | `max-w-xs` | 320px | | `max-w-sm` | 384px | | `max-w-md` | 448px | | `max-w-lg` | 512px | | `max-w-xl` | 576px | | `max-w-2xl` | 672px | | `max-w-3xl` | 768px | | `max-w-4xl` | 896px | | `max-w-5xl` | 1024px | | `max-w-6xl` | 1152px | | `max-w-7xl` | 1280px | | `max-w-full` | 100% | | `max-w-screen` | 100vw | | `max-w-prose` | 65ch (~1040px) | ```dart // Constrain content width and center it WDiv( className: 'max-w-2xl mx-auto p-4', child: WText('Readable content...'), ) ``` ### Other Constraints | Class | Value | |:------|:------| | `min-w-0` | 0px | | `min-w-full` | 100% | | `min-w-screen` | 100vw | | `min-h-0` | 0px | | `min-h-full` | 100% | | `min-h-screen` | 100vh | | `max-h-full` | 100% | | `max-h-screen` | 100vh | ## Responsive Design Apply different sizing utilities at different breakpoints using standard prefixes. ```dart // Full width on mobile, 50% on tablet, 33% on desktop WDiv(className: 'w-full md:w-1/2 lg:w-1/3') ``` ## Dark Mode While sizing rarely changes based on theme, you can use `dark:` modifiers if needed. ```dart WDiv(className: 'w-64 dark:w-full') ``` ## Arbitrary Values Use square brackets to apply specific values that aren't in the theme scale. ```dart // Specific pixels WDiv(className: 'w-[350px] h-[50px]') // Specific percentage WDiv(className: 'w-[33%] h-[45%]') ``` ## Customizing Theme To extend the sizing scale, modify the `spacing` section of your `WindThemeData`. This affects width, height, padding, margin, and positioning. ```dart WindThemeData( spacing: { '128': 512.0, // Adds w-128, h-128, p-128... }, ) ``` ## Related Documentation - [Padding & Margin](./spacing.md) - [Flexbox & Grid](./flexbox.md) - [Aspect Ratio](./aspect_ratio.md)