Skip to content

BasicButton

Button form-shaped — <button> native, tanpa href. Untuk aksi submit/reset/button biasa.

Bagian dari: vue-sabutton · Family: Basic


Import

ts
import { BasicButton } from '@bpmlib/vue-sabutton';

Instalasi: lihat Installation & Setup di halaman utama.


Usage

vue
<template>
  <BasicButton color="primary" @click="submitForm">Simpan</BasicButton>
  <BasicButton color="danger" outline @click="cancel">Batal</BasicButton>
</template>

API Reference

BasicButton

Cara Penggunaan:

Root element selalu <button>. @click tersedia lewat native attrs fallthrough — komponen ini tidak mendeklarasikan defineEmits, jadi click tidak muncul di tabel Events manapun, tapi listener @click tetap berfungsi normal.

Props

NameTypeDefaultDescription
color'primary' | 'secondary' | 'ternary' | 'success' | 'danger' | 'warning''secondary'Warna semantic dari tokens.css
outlinebooleanfalseFill transparan, border+text berwarna color, alih-alih fill solid
smallbooleanfalsePadding+font-size lebih kecil, mengikuti pasangan Bootstrap .btn-sm
expandedbooleanfalseButton melebar penuh (width: 100%)
disabledbooleanfalseMenonaktifkan button
iconstring | FaIconShape-SVG string mentah, atau object duck-typed { icon: [w,h,ligatures,unicode,svgPathData] }. Lihat Icon prop
onLoadingboolean | 'spinner' | 'dots' | 'cog'falsetrue default ke 'cog'. Mengganti icon dengan spinner berputar dan menonaktifkan button
type'button' | 'submit' | 'reset''button'Sengaja override default native <button> ('submit') — mencegah accidental form-submit
asSubmitbooleanfalseForce type="submit". Precedence: asSubmit > asReset > type
asResetbooleanfalseForce type="reset"
formstring-Attribute form native — submit ke form di luar DOM tree button ini
tooltipstring-Teks tooltip, muncul saat hover/focus
tooltipColorButtonColormengikuti colorWarna tooltip
pulseboolean | 'button' | 'pill'falseAnimasi echo ring — 'button' di seluruh root, 'pill' di badge saja (no-op + dev warning jika tidak ada badge)
pulseColorButtonColormengikuti colorWarna pulse echo
badgeboolean | string-true = dot kosong, string = pill berisi teks
badgeColorButtonColormengikuti colorWarna badge
badgePosition'tl' | 'tr' | 'bl' | 'br''tr'Posisi corner badge

Slots

NamePropsDescription
default-Isi teks/konten button. Kosong → button jadi icon-only (persegi, padding tipis)

Contoh:

vue
<BasicButton
  color="success"
  :icon="checkIcon"
  badge="3"
  tooltip="Simpan perubahan"
  @click="save"
>
  Simpan
</BasicButton>

Styling

Styling sepenuhnya self-contained — lihat Import CSS di halaman utama. Tidak ada class yang perlu didefinisikan sendiri oleh consumer.

CSS Variables

VariableDefaultDescription
--sa-bt--height2.25rem (normal)Tinggi button — sama di semua kombinasi icon-only/text/icon+text
--sa-bt--pulse-colormengikuti pulseColorWarna animasi pulse echo
--sa-bt--tooltip-pad0.25remPadding internal tooltip
--sa-bt--tooltip-z40Z-index tooltip (Teleported ke body)

Bagian dari family Basic:

  • LinkButton — versi navigation-shaped (href-driven) dari button ini