# Customizing Letter Spacing

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

- [Default Letter Spacings](#default-letter-spacings)
- [Arbitrary Letter Spacings](#arbitrary-letter-spacings)
- [Managing Letter Spacings](#managing-letter-spacings)
- [Related Documentation](#related-documentation)

```dart
WindTheme.setLetterSpacing('extra-wide', 0.15);
double spacing = WindTheme.getLetterSpacing('wide'); // 0.025
```

## Default Letter Spacings

`WindTheme` defines several pre-defined letter spacings mapped to descriptive keys. Values are in em units.

| Key | Value (em) | Description |
|:---|:---|:---|
| `tighter` | `-0.05` | Very tight spacing |
| `tight` | `-0.025` | Tight spacing |
| `normal` | `0` | Default spacing |
| `wide` | `0.025` | Wide spacing |
| `wider` | `0.05` | Very wide spacing |
| `widest` | `0.1` | Extremely wide spacing |

For example:

- `tracking-tight` applies a letter spacing of **-0.025em**.
- `tracking-wide` applies a letter spacing of **0.025em**.

## Arbitrary Letter Spacings

For values outside the scale, use the `tracking-[value]` syntax, where value is the desired spacing in em units.

- `tracking-[0.1]` applies a letter spacing of **0.1em**.
- `tracking-[0.3]` applies a letter spacing of **0.3em**.

## Managing Letter Spacings

`WindTheme` provides methods to check, retrieve, add, and remove letter spacings at runtime.

```dart
// Check whether a letter spacing exists
bool exists = WindTheme.hasLetterSpacing('normal');
print(exists); // Output: true
```

```dart
// Retrieve a letter spacing value
double spacing = WindTheme.getLetterSpacing('wide');
print(spacing); // Output: 0.025
```

```dart
// Add a custom letter spacing
WindTheme.setLetterSpacing('extra-wide', 0.15);

// Update an existing letter spacing
WindTheme.setLetterSpacing('wide', 0.03);
```

```dart
// Remove a letter spacing
WindTheme.removeLetterSpacing('extra-wide');
```

## Related Documentation
- [Letter Spacing Utilities](https://anilcancakir.com/wind_kit/docs/v0.0/typography/letter-spacing.md) — apply spacing with `tracking-*`
- [Line Height](https://anilcancakir.com/wind_kit/docs/v0.0/customization/line-height.md) — customize line height keys
- [Font Size](https://anilcancakir.com/wind_kit/docs/v0.0/customization/font-size.md) — customize the typographic scale
