Current section

Files

Jump to
mbta_metro lib mbta_metro components button.ex
Raw

lib/mbta_metro/components/button.ex

defmodule MbtaMetro.Components.Button do
@moduledoc false
use Phoenix.Component
use CVA.Component
attr :class, :string, default: ""
attr :rest, :global
slot :inner_block, required: true
variant :variant,
[
primary: "button-primary",
secondary: "button-secondary"
],
default: :primary
variant :size,
[
default: "text-lg",
small: "text-sm"
],
default: :default
@doc """
Button styles in primary and secondary variants, and small and regular sizing.
"""
def button(assigns) do
~H"""
<button class={"#{@cva_class} #{@class}"} {@rest}>
<%= render_slot(@inner_block) %>
</button>
"""
end
end