# `ExRatatui.Text.Line`
[🔗](https://github.com/mcass19/ex_ratatui/blob/v0.8.2/lib/ex_ratatui/text/line.ex#L1)

A single line of text composed of one or more `ExRatatui.Text.Span`s.

A line may carry its own style (merged over any parent `Text`/widget style)
and its own alignment, which overrides the widget's default alignment for
that line when set.

## Fields

  * `:spans` - list of `%ExRatatui.Text.Span{}`
  * `:style` - `%ExRatatui.Style{}` applied to the line (layered with Span styles)
  * `:alignment` - `:left`, `:center`, `:right`, or `nil` (inherit)

## Examples

    iex> alias ExRatatui.Text.{Line, Span}
    iex> alias ExRatatui.Style
    iex> Line.new([Span.new("Hello "), Span.new("world", style: %Style{fg: :green})])
    %ExRatatui.Text.Line{
      spans: [
        %ExRatatui.Text.Span{content: "Hello ", style: %ExRatatui.Style{}},
        %ExRatatui.Text.Span{
          content: "world",
          style: %ExRatatui.Style{fg: :green, bg: nil, modifiers: []}
        }
      ],
      style: %ExRatatui.Style{},
      alignment: nil
    }

    iex> alias ExRatatui.Text.{Line, Span}
    iex> alias ExRatatui.Style
    iex> Line.new([Span.new("centered")], style: %Style{modifiers: [:bold]}, alignment: :center)
    %ExRatatui.Text.Line{
      spans: [%ExRatatui.Text.Span{content: "centered", style: %ExRatatui.Style{}}],
      style: %ExRatatui.Style{fg: nil, bg: nil, modifiers: [:bold]},
      alignment: :center
    }

# `alignment`

```elixir
@type alignment() :: :left | :center | :right | nil
```

# `t`

```elixir
@type t() :: %ExRatatui.Text.Line{
  alignment: alignment(),
  spans: [ExRatatui.Text.Span.t()],
  style: ExRatatui.Style.t()
}
```

# `new`

```elixir
@spec new(
  [ExRatatui.Text.Span.t()],
  keyword()
) :: t()
```

Builds a `%Line{}` from a list of spans and options.

Options:

  * `:style` - a `%ExRatatui.Style{}` (default: `%Style{}`)
  * `:alignment` - `:left`, `:center`, `:right`, or `nil` (default: `nil`)

Raises `ArgumentError` for an invalid `:alignment` value.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
