# `Expresso.Element.List`
[🔗](https://github.com/rellen/expresso/blob/main/lib/expresso/element/list.ex#L1)

An element that shows a list of items

A list holds `item` entities, and an item holds text and nested lists. A
list can nest to each depth. The `ordered` option gives a
numbered list, and the default is a bulleted list.

The `reveal` option shows the items one after the other, one item at each
step. The transformer gives `at [from: :next]` to each item that has no `at`
option, as the `auto_reveal` option of a slide does for its elements. A list
with an absolute `at` option starts its items at its own first step, so no
item gets a step at which the list does not show.

The `dim` option gives each item the state `dim` from the first step of a
later item, so the newest item has the attention. `docs/overlays.md` gives
the rules.

# `t`

```elixir
@type t() :: %Expresso.Element.List{
  __spark_metadata__: term(),
  at: term(),
  class: term(),
  dim: term(),
  easing: term(),
  effect: term(),
  el: term(),
  elements: term(),
  morph: term(),
  on: term(),
  ordered: term(),
  reveal: term(),
  signature: term(),
  speed: term(),
  steps: term()
}
```

The struct of a list

# `get_assigns`

```elixir
@spec get_assigns(t()) :: map()
```

Make the assigns of the render function from the struct

The key `overlay` holds the attributes of the overlay contract, from
`Expresso.Overlay.Render.attributes/1`.

# `render`

```elixir
@spec render(map()) :: Phoenix.HTML.safe()
```

Make the HTML of a list

An ordered list is an `ol` element, and the other list is a `ul` element.

---

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