# Customizing Shadows

Manage shadow sizes through `WindTheme`: pre-defined keys, arbitrary values, and runtime customization.

- [Default Shadow Sizes](#default-shadow-sizes)
- [Arbitrary Shadow Values](#arbitrary-shadow-values)
- [Managing Shadows](#managing-shadows)
- [Related Documentation](#related-documentation)

```dart
WindTheme.setShadowSize('custom', 10);
double size = WindTheme.getShadowSize('xl'); // 12
```

## Default Shadow Sizes

`WindTheme` includes default shadow sizes mapped to descriptive keys. Each value is an elevation in px.

| Key | Value (px) | Description |
|:---|:---|:---|
| `none` | `0` | No shadow |
| `sm` | `1` | Small shadow |
| `default` | `2` | Default shadow size |
| `md` | `4` | Medium shadow |
| `lg` | `8` | Large shadow |
| `xl` | `12` | Extra large shadow |
| `2xl` | `16` | Very large shadow |
| `3xl` | `24` | Extra extra large shadow |
| `inner` | `1` | Inner shadow effect |

For example:

- `shadow-sm` applies a shadow with an elevation of **1px**.
- `shadow-lg` applies a shadow with an elevation of **8px**.

## Arbitrary Shadow Values

For sizes outside the scale, use the `shadow-[value]` syntax, where value is the desired elevation in px.

- `shadow-[8]` applies a shadow with an elevation of **8px**.
- `shadow-[20]` applies a shadow with an elevation of **20px**.

## Managing Shadows

`WindTheme` provides methods to check, retrieve, customize, and remove shadow sizes at runtime.

```dart
// Check whether a shadow size exists
bool exists = WindTheme.hasShadowSize('lg');
print(exists); // Output: true
```

```dart
// Retrieve a shadow size value
double size = WindTheme.getShadowSize('xl');
print(size); // Output: 12
```

```dart
// Add a custom shadow size
WindTheme.setShadowSize('custom', 10);

// Update an existing shadow size
WindTheme.setShadowSize('lg', 6);
```

```dart
// Remove a shadow size
WindTheme.removeShadowSize('sm');
```

## Related Documentation
- [Shadow Utilities](https://anilcancakir.com/wind_kit/docs/v0.0/effects/shadow.md) — apply shadows with `shadow-*`
- [Rounded Corners](https://anilcancakir.com/wind_kit/docs/v0.0/customization/rounded-corners.md) — customize corner radii
- [Colors](https://anilcancakir.com/wind_kit/docs/v0.0/customization/colors.md) — the palette behind surface styling
