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

A part of a diagram

The `part` entity takes the `id` of an element of the SVG file as its first
argument, and its `at` option gives the steps that show that element.
`Expresso.Element.Diagram` gives the rules.

A `copy` entity of a part goes into `copies`. `Expresso.Element.Copy.expand/1`
gives each copy its own part, with the source in `copy_of` and the target in
`copy_to`. A copy of a copy has the target of its source in `copy_start`.

In a formula, `each` names a symbol and `within` names the part that holds
its occurrences. With `bare`, the base of a symbol with an index is not an
occurrence. `Expresso.Element.Math.Each` gives the occurrences the class of
the part. The copy of a link between the lines of a formula has `covers`, and it hides its
target.

# `t`

```elixir
@type t() :: %Expresso.Element.Part{
  __spark_metadata__: term(),
  at: term(),
  bare: term(),
  copies: term(),
  copy_of: term(),
  copy_start: term(),
  copy_to: term(),
  covers: term(),
  each: term(),
  easing: term(),
  effect: term(),
  el: term(),
  id: term(),
  morph: term(),
  on: term(),
  signature: term(),
  speed: term(),
  steps: term(),
  within: term()
}
```

The struct of a part

---

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