# `Plushie.Type.Shadow`
[🔗](https://github.com/plushie-ui/plushie-elixir/blob/v0.6.0/lib/plushie/type/shadow.ex#L1)

Shadow type for widget styling.

Used in `container` and other widgets via the `shadow` prop.
The renderer parses shadow into `iced::Shadow`.

## Wire format

    %{color: "#00000080", offset: [4, 4], blur_radius: 8.0}

The `offset` is an `[x, y]` list. `color` is a hex string (see `Plushie.Type.Color`).

## Example

    shadow = Plushie.Type.Shadow.new()
             |> Plushie.Type.Shadow.color("#00000040")
             |> Plushie.Type.Shadow.offset(2, 2)
             |> Plushie.Type.Shadow.blur_radius(6)

# `t`

```elixir
@type t() :: %Plushie.Type.Shadow{
  blur_radius: number(),
  color: Plushie.Type.Color.t(),
  offset_x: number(),
  offset_y: number()
}
```

# `blur_radius`

```elixir
@spec blur_radius(shadow :: t(), r :: number()) :: t()
```

Sets the shadow blur radius in pixels.

# `color`

```elixir
@spec color(shadow :: t(), color :: Plushie.Type.Color.input()) :: t()
```

Sets the shadow color. Accepts a hex string or named color atom.

# `from_opts`

```elixir
@spec from_opts(opts :: keyword()) :: t()
```

Constructs a `Shadow` from a keyword list.

# `new`

```elixir
@spec new() :: t()
```

Creates a new shadow with default values.

# `offset`

```elixir
@spec offset(shadow :: t(), x :: number(), y :: number()) :: t()
```

Sets the shadow offset in pixels.

---

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