# Max-Height and Min-Height

Constrain the maximum and minimum heights of widgets using the `max-h-*` and `min-h-*` utilities. Supports pixel-based, percentage-based, and viewport-relative 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)
- [Related Documentation](#related-documentation)

```dart
import 'package:fluttersdk_wind/fluttersdk_wind.dart';

WContainer(
  className: 'max-h-[200] bg-blue-500 dark:bg-blue-700',
  child: WText('Max height: 200px'),
)

WContainer(
  className: 'min-h-[100] bg-orange-500 dark:bg-orange-700',
  child: WText('Min height: 100px'),
)
```

## Basic Usage

Use `max-h-*` to prevent a widget from growing beyond a certain height. Use `min-h-*` to ensure it never shrinks below a minimum. Both accept the same value forms as the `h-*` utilities.

```dart
WContainer(
  className: 'max-h-16 bg-blue-500 dark:bg-blue-700',
  child: WText('Max height: 64px'), // 16 * 4 (Pixel Factor)
)

WContainer(
  className: 'min-h-10 bg-yellow-500 dark:bg-yellow-700',
  child: WText('Min height: 40px'), // 10 * 4 (Pixel Factor)
)
```

## Quick Reference

### Max-Height

| Class | Description | Example |
|:------|:------------|:--------|
| `max-h-{value}` | Maximum height in pixels (scaled by Pixel Factor) | `max-h-20` |
| `max-h-[{value}]` | Arbitrary maximum height in pixels | `max-h-[200]` |
| `max-h-full` | 100% of the parent's height | `max-h-full` |
| `max-h-screen` | 100% of the viewport height | `max-h-screen` |
| `max-h-{x}/{y}` | Percentage of the parent's height | `max-h-1/2` |
| `max-h-[{value}vh]` | Percentage of the viewport height | `max-h-[90vh]` |

### Min-Height

| Class | Description | Example |
|:------|:------------|:--------|
| `min-h-{value}` | Minimum height in pixels (scaled by Pixel Factor) | `min-h-20` |
| `min-h-[{value}]` | Arbitrary minimum height in pixels | `min-h-[200]` |
| `min-h-full` | 100% of the parent's height | `min-h-full` |
| `min-h-screen` | 100% of the viewport height | `min-h-screen` |
| `min-h-{x}/{y}` | Percentage of the parent's height | `min-h-1/2` |
| `min-h-[{value}vh]` | Percentage of the viewport height | `min-h-[90vh]` |

## How Values Are Calculated

### Predefined Sizes

Values are multiplied by the Pixel Factor.

- Example: `max-h-16` → 16 × 4 (Pixel Factor) = **64px**.
- Example: `min-h-10` → 10 × 4 (Pixel Factor) = **40px**.

### Special Keywords

| Value | Result |
|:------|:-------|
| `full` | `double.infinity` (100% of parent) |
| `screen` | Viewport height via `MediaQuery` |

### Fraction Syntax

Use `max-h-x/y` or `min-h-x/y` to express a fraction of the parent height.

- Example: `max-h-3/4` → 75% of the parent's height.

### Viewport Height

Append `vh` inside brackets for a percentage of the viewport.

- Example: `max-h-[90vh]` → 90% of the viewport height.

## Arbitrary Values

Use bracket notation for an exact pixel value, bypassing the Pixel Factor.

```dart
WContainer(
  className: 'max-h-[400] min-h-[100] bg-gray-200 dark:bg-gray-700',
  child: WText('Height stays between 100px and 400px.'),
)
```

## Responsive Design

Combine max/min height with breakpoint prefixes for responsive constraints.

```dart
WContainer(
  className: 'max-h-[300] md:max-h-[500] lg:max-h-screen bg-blue-500 dark:bg-blue-700',
  child: WText('Responsive max-height.'),
)
```

Available breakpoints: `sm`, `md`, `lg`, `xl`, `2xl`.

## Related Documentation

- [Height](https://anilcancakir.com/wind_kit/docs/v0.0/sizing/height.md) — control widget height directly.
- [Max-Width and Min-Width](https://anilcancakir.com/wind_kit/docs/v0.0/sizing/max-width-min-width.md) — constrain width bounds.
- [Width](https://anilcancakir.com/wind_kit/docs/v0.0/sizing/width.md) — control widget width directly.
- [Pixel Factor](https://anilcancakir.com/wind_kit/docs/v0.0/customization/pixel-factor.md) — configure the base unit.
- [WContainer](https://anilcancakir.com/wind_kit/docs/v0.0/widgets/wcontainer.md) — the primary container widget.
