Skip to content

BasicButton (Vue Component)

BasicButton is a typed Vue wrapper around the button SCSS system. It supports variants, sizes, icons, and states while forwarding all native attributes ( aria-*, data-*, etc.) to the underlying <button> element.

Quick Start

Import

ts
import { BasicButton } from '@pharma4u/patternlab/vue'

Basic Usage

ts
<BasicButton variant="primary">
  Submit
</BasicButton>

Live Examples

Show Code
vue
<script setup lang="ts">
  import { BasicButton } from '@pharma4u/patternlab'
  
</script>
    <BasicButton variant="primary" size="small" iconClass="fas fa-save" iconPosition="left" @click="handleOnClick">
      Save
    </BasicButton>
    <BasicButton variant="secondary-outline" iconArrow iconPosition="right">
      Next step
    </BasicButton>
    <BasicButton variant="link" disabled>
      Link style (disabled)
    </BasicButton>

Props

PropTypeDefaultDescription
type'button' | 'submit' | 'reset''button'Native button type
variant'default' | 'primary' | 'primary-outline' | 'primarylight' | 'secondary' | 'secondary-outline' | 'light' | 'inverted' | 'link''default'Visual style
state'default' | 'success' | 'warning' | 'error''default'State modifier
size'default' | 'small' | 'medium' | 'large''default'Size
iconClassstring''Icon class (e.g. FontAwesome)
iconPosition'none' | 'left' | 'right' | 'up' | 'down''none'Icon position
iconButtonbooleanfalseIcon-only button
iconArrowbooleanfalseArrow styling
flatbooleanfalseFlat style
underlinebooleanfalseUnderline style
dropdownbooleanfalseDropdown style
filterbooleanfalseFilter style
fullWidthbooleanfalseFull width
blockbooleanfalseBlock display
disabledbooleanfalseDisabled state
modifiersstring | string[]Extra -modifier classes

Events

EventPayloadDescription
clickMouseEventFired on click (not emitted if disabled)

Slot

  • default — Button content

Common Patterns

TBD

Notes

  • Forwards all extra attributes (class, data-*, etc.) to <button>
  • disabled prevents interaction and click emission
  • modifiers are automatically prefixed with -