Velvet Thunder

Button

Variants

<DemoSpaceX>
  <VelvetButton @variant="primary">Button</VelvetButton>
  <VelvetButton @variant="secondary">Button</VelvetButton>
  <VelvetButton @variant="ghost">Button</VelvetButton>
</DemoSpaceX>

Sizes

<DemoSpaceX>
  <VelvetButton @size="xs">Button</VelvetButton>
  <VelvetButton @size="sm">Button</VelvetButton>
  <VelvetButton @size="md">Button</VelvetButton>
  <VelvetButton @size="lg">Button</VelvetButton>
</DemoSpaceX>

Pill

<DemoSpaceX>
  <VelvetButton @isPill={{true}} @variant="primary">Button</VelvetButton>
  <VelvetButton @isPill={{true}} @variant="secondary">Button</VelvetButton>
  <VelvetButton @isPill={{true}} @variant="ghost">Button</VelvetButton>
</DemoSpaceX>

Disabled

<DemoSpaceX>
  <VelvetButton @isDisabled={{true}} @variant="primary">Button</VelvetButton>
  <VelvetButton @isDisabled={{true}} @variant="secondary">Button</VelvetButton>
  <VelvetButton @isDisabled={{true}} @variant="ghost">Button</VelvetButton>
</DemoSpaceX>

Loading

<DemoSpaceX>
  <VelvetButton @isLoading={{true}} @variant="primary">Button</VelvetButton>
  <VelvetButton @isLoading={{true}} @variant="secondary">Button</VelvetButton>
  <VelvetButton @isLoading={{true}} @variant="ghost">Button</VelvetButton>
</DemoSpaceX>

Disclosure

<DemoSpaceX>
  <VelvetButton @isDisclosure={{true}} @variant="primary">
    Button
  </VelvetButton>
  <VelvetButton @isDisclosure={{true}} @variant="secondary">
    Button
  </VelvetButton>
  <VelvetButton @isDisclosure={{true}} @variant="ghost">
    Button
  </VelvetButton>
</DemoSpaceX>

Expanded

<DemoSpaceX>
  <VelvetButton @isDisclosure={{true}} @isExpanded={{true}} @variant="primary">
    Button
  </VelvetButton>
  <VelvetButton
    @isDisclosure={{true}}
    @isExpanded={{true}}
    @variant="secondary"
  >
    Button
  </VelvetButton>
  <VelvetButton @isDisclosure={{true}} @isExpanded={{true}} @variant="ghost">
    Button
  </VelvetButton>
</DemoSpaceX>

Renderless

<DemoSpaceX>
  <VelvetButton @isRenderless={{true}} @variant="primary" as |button|>
    <a class={{button.class}} href="#renderless">Link</a>
  </VelvetButton>
  <VelvetButton @isRenderless={{true}} @variant="secondary" as |button|>
    <a class={{button.class}} href="#renderless">Link</a>
  </VelvetButton>
  <VelvetButton @isRenderless={{true}} @variant="ghost" as |button|>
    <a class={{button.class}} href="#renderless">Link</a>
  </VelvetButton>
</DemoSpaceX>

Examples

Handle Click Events

Edit this demo

Use the @onClick argument to handle click events.

<VelvetButton @onClick={{this.onClick}}>
  Click Me!
</VelvetButton>

Signature

Element

HTMLButtonElement

Blocks

NameDescriptionType
:default *The content of the button.[{ class: string; }]
Blocks marked with * are required.

Arguments

NameDescriptionTypeDefault Value
@isDisabledIndicate if the button is disabled.booleanfalse
@isDisclosureIndicate if the button discloses content.booleanfalse
@isExpandedIndicate if the button's disclosed content is expanded.booleanfalse
@isLoadingIndicate if the button should render a loading state.booleanfalse
@isPillIndicate if the button is pill shaped.booleanfalse
@isRenderlessMake the button renderless.booleanfalse
@onClickHandle the button's `click` event.(event: MouseEvent) => voidundefined
@sizeThe size of the button."xs" | "sm" | "md" | "lg""md"
@typeThe type of the button."button" | "reset" | "submit""button"
@variantThe appearance of the button.string | "primary""primary"
Arguments marked with * are required.
Avatar
Checkbox