# `GSWritingDirection`

*Structure*

The progression of glyphs and lines in text.

## Declaration

```swift
struct GSWritingDirection
```

```objc
enum GSWritingDirection : uint8_t;
```

```python
GSWritingDirection
```

## Overview

Writing directions use separate bits for bidirectional text, right-to-left glyph progression, vertical glyph progression, and left-to-right line progression. Use the following complete values for text layout:

| Direction | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
| --- | --- | --- | --- | --- |
| Left-to-right, top-to-bottom | 0 | 0 | 0 | 0 |
| Bidirectional | 0 | 0 | 0 | 1 |
| Right-to-left, top-to-bottom | 0 | 0 | 1 | 0 |
| Top-to-bottom, right-to-left | 0 | 1 | 0 | 0 |
| Top-to-bottom, left-to-right | 1 | 1 | 0 | 0 |

## Topics

### Enumeration Cases

- [`GSWritingDirection.GSWritingDirectionBIDI`](/Core/GlyphsCore/GSWritingDirection/GSWritingDirectionBIDI) — No inherent horizontal writing direction.
- [`GSWritingDirection.GSKerningTypeContext`](/Core/GlyphsCore/GSWritingDirection/GSKerningTypeContext) — Selects contextual kerning data.
- [`GSWritingDirection.GSWritingDirectionLeftToRight`](/Core/GlyphsCore/GSWritingDirection/GSWritingDirectionLeftToRight) — Glyphs advance left-to-right and lines advance top-to-bottom.
- [`GSWritingDirection.GSWritingDirectionLineToRight`](/Core/GlyphsCore/GSWritingDirection/GSWritingDirectionLineToRight) — Makes lines advance left-to-right in vertical text.
- [`GSWritingDirection.GSWritingDirectionRightToLeft`](/Core/GlyphsCore/GSWritingDirection/GSWritingDirectionRightToLeft) — Glyphs advance right-to-left and lines advance top-to-bottom.
- [`GSWritingDirection.GSWritingDirectionVertical`](/Core/GlyphsCore/GSWritingDirection/GSWritingDirectionVertical) — Glyphs advance top-to-bottom and lines advance right-to-left.

## See Also

### Writing Direction

- [`GSWritingDirectionValidate`](/Core/GlyphsCore/GSWritingDirectionValidate) — Whether a value contains only recognized writing-direction and kerning-selector bits.
- [`GSWritingDirectionValidateOrDefault`](/Core/GlyphsCore/GSWritingDirectionValidateOrDefault) — A value containing only recognized bits, or [`GSWritingDirection.GSWritingDirectionLeftToRight`](/Core/GlyphsCore/GSWritingDirection/GSWritingDirectionLeftToRight) when the value contains an unsupported bit.

