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 -