PXD

Button

One of the most basic components, it will help you complete the interaction.

Sizes

<template>
  <PStack align="center">
    <PButton size="sm">Small</PButton>
    <PButton size="md">Medium</PButton>
    <PButton size="lg">Large</PButton>
  </PStack>
</template>

Shape

<template>
  <PStack>
    <PButton shape="default"> click me </PButton>
    <PButton shape="rounded"> click me </PButton>
    <PButton shape="square"> click me </PButton>
  </PStack>
</template>

Variants

<template>
  <PStack>
    <PButton variant="default">default</PButton>
    <PButton variant="primary">primary</PButton>
    <PButton variant="success">success</PButton>
    <PButton variant="warning">warning</PButton>
    <PButton variant="error">error</PButton>
    <PButton variant="ghost">ghost</PButton>
  </PStack>
</template>

Disabled/Loading

<template>
  <PStack>
    <PButton disabled>disabled</PButton>
    <PButton loading>loading</PButton>

    <PButton variant="primary" disabled>disabled</PButton>
    <PButton variant="ghost" loading>loading</PButton>
  </PStack>
</template>

Icon

<script setup>
import HeartIcon from '@gdsicon/vue/heart-fill'
</script>

<template>
  <PStack>
    <PButton icon><HeartIcon /></PButton>
    <PButton icon variant="primary"><HeartIcon /></PButton>
    <PButton icon variant="success"><HeartIcon /></PButton>
    <PButton icon variant="error"><HeartIcon /></PButton>
    <PButton icon variant="ghost"><HeartIcon /></PButton>
  </PStack>
</template>

Full width

Set the full-width property to make the button exclusive to one line.

<template>
  <PButton full-width>Block Button </PButton>
</template>

Group

<script setup>
import ChevronDownIcon from '@gdsicon/vue/chevron-down'
</script>

<template>
  <PStack direction="vertical">
    <PButtonGroup>
      <PButton>Previous Page</PButton>
      <PButton>Next Page</PButton>
    </PButtonGroup>

    <PButtonGroup variant="primary">
      <PButton>Previous Page</PButton>
      <PButton>Next Page</PButton>
    </PButtonGroup>

    <PButtonGroup size="sm" disabled align="left" class="w-md">
      <PButton full-width>Previous Page</PButton>
      <PButton full-width>Next Page</PButton>
    </PButtonGroup>
  </PStack>
</template>

Props

NameTypeDefaultDescription
asstring | objectbuttonElement or component rendered instead of a native button
variant'default' | 'primary' | 'error' | 'warning' | 'success' | 'ghost' | 'simple' | 'link'-Colour scheme, one of primary, error, warning, success, ghost, simple or link
size'xs' | 'sm' | 'md' | 'lg'-Size preset controlling height, padding and font size
shape'default' | 'square' | 'rounded'defaultCorner radius, square removes it and rounded makes it fully round
align'left' | 'center' | 'right'-Content alignment, forced to center when icon is set
iconbooleanfalseRender as a square icon-only button with centered content
loadingboolean-Show a spinner and treat the button as disabled
disabledboolean-Disable the button, also implied by loading or a disabled group
full-widthboolean-Stretch the button to fill the whole line

ButtonGroup Props

NameTypeDefaultDescription
size'xs' | 'sm' | 'md' | 'lg'-Default size applied to child buttons
align'left' | 'center' | 'right'-Default content alignment for child buttons
variantButtonVariant-Default variant applied to child buttons
disabledboolean-Disable every child button at once

Slots

NameDescription
defaultDefault slot

Source

Source