Packages
moon
2.87.8
2.90.5
retired
2.90.4
2.90.3
2.90.2
2.90.1
2.90.0
2.89.4
2.89.1
2.89.0
2.88.0
2.87.11
2.87.10
2.87.9
2.87.8
2.87.7
2.87.6
2.87.5
2.87.4
2.87.3
2.87.2
2.87.1
2.87.0
2.86.1
2.86.0
2.85.1
2.85.0
2.84.0
2.83.0
2.82.0
2.81.4
2.81.3
2.81.2
2.81.1
2.81.0
2.80.2
2.80.1
2.80.0
2.79.13
2.79.12
2.79.11
2.79.10
2.79.9
2.79.8
2.79.7
2.79.6
2.79.5
2.79.4
2.79.3
2.79.2
2.79.1
2.79.0
2.78.4
2.78.3
2.78.2
2.78.1
2.78.0
2.77.0
2.76.5
2.76.4
2.76.3
2.76.2
2.76.1
2.76.0
2.75.0
2.74.1
2.74.0
2.73.8
2.73.7
2.73.6
2.73.5
2.73.4
2.73.3
2.73.2
2.73.1
2.73.0
2.72.5
2.72.4
2.72.3
2.72.2
2.72.1
2.72.0
2.71.1
2.71.0
2.70.0
2.69.2
2.69.1
2.69.0
2.68.11
2.68.10
Components-based design system written in elixir
Current section
Files
Jump to
Current section
Files
lib/moon/design/button/icon_button_properties.ex
defmodule Moon.Design.Button.IconButtonProperties do
@moduledoc "Module for putting button properties in one place"
defmacro __using__(_opts \\ []) do
quote do
@doc "Visual/Logical variant of button"
prop(variant, :string,
values: ["fill", "outline", "ghost", "primary", "secondary", "tertiary"],
default: "fill"
)
@doc "Size of button"
prop(size, :string, values: ["xs", "sm", "md", "lg", "xl"], default: "md")
@doc "Rendered HTML element"
prop(as, :string, values!: ~w(a button), default: "button")
@doc "A href attribute when prop as=\"a\""
prop(href, :string)
@doc "Disabled button"
prop(disabled, :boolean)
@doc "Animation of button"
prop(animation, :string, values: ~w(progress success error pulse))
@doc "Additional Tailwind classes"
prop(class, :css_class)
@doc "Icon. To be deprecated. Use prop \"icon\" instead."
prop(icon_only, :string)
@doc "Icon"
prop(icon, :string)
@doc "Additional Tailwind classes for hover background"
prop(hover_bg_class, :css_class)
@doc "Type attribute for DOM element"
prop(type, :string, default: "button")
@doc "Form attribute for DOM element"
prop(form, :string)
@doc "On click event"
prop(on_click, :event)
@doc "list of additional values to associate with the DOM element"
prop(values, :keyword, default: [])
@doc "Value attribute for DOM element"
prop(value, :string)
@doc "Id attribute for DOM element"
prop(id, :string)
@doc "Data-testid attribute for DOM element"
prop(testid, :string)
@doc "Additional attributes for DOM element"
prop(attrs, :keyword, default: [])
@doc "Aria label attribute for DOM element"
prop(aria_label, :string)
@doc "Target attribute for DOM element"
prop(target, :string)
@doc "Rel attribute for DOM element"
prop(rel, :string)
@doc "Slot for customizations"
slot(default)
end
end
end