Button

Trigger actions with accessible button styles and states.

Button

Default

The buttons are a fundamental part of any project, with Sax Design you can add a great button with a single line of code

the buttons have all the states as active, focus, hover, to make its implementation simpler and speed up the work

Code copied

Flat

You can change the full style towards flat of a button with the flat property that its value is a boolean, so just adding it will change the styles

Code copied

Border

You can change the full style towards border of a button with the border property that its value is a boolean so just adding it will change the styles

Code copied

Gradient

You can change the full style towards Gradient of a button with the gradient property that its value is a boolean, so just adding it will change the styles

Gradient Auto Color

Gradient colors are automatically generated by the color property which in this example is the primary color

Code copied

Relief

Change the style of the button to a relief aspect with the relief property, the property is a boolean so you can add it without any value.

Code copied

Transparent

Change the style of the button with the transparent property, the property is a boolean so you can add it without any value.

Code copied

Shadow

Change the style of the button with the shadow property, the property is a boolean so you can add it without any value.

Code copied

Color

Change the color of the Button component with the color property and the color value for example (#fff, rgba (100,10,5) or the main colors of Sax Design), this will only affect the component and its value can be dynamic

Allowed values

The color prop supports the Sax Design theme colors: primary, success, danger, warn, dark
Custom RGB and HEX colors are also supported.

Boolean color props (optional)

Theme colors can also be enabled directly through Boolean props.
For example, add warn to use the warning color.

Code copied

Icon

If you need an icon-only button use the icon property, the property is a boolean so you can add it without any value.

This property makes the button have a specific size making it the same width and height, do not use when it is icon and text

Default icons

Sax Design Vue renders build-time Iconify SVG data. Built-in controls, such as close buttons in Alert or Popup, use SVG icons and require no external icon font. Use the #icon slot when a product needs another icon.

Find and use icons

Search Boxicons for a collection and copy its prefix:name value into SIcon.

Code copied

Icon - Text

If you need a button with text and icon you can do them by adding them in the slot default.

Code copied

Circle

You can completely round the corners with the circle property, the property is a boolean so you can add it without any value.

Code copied

Square

You can make all the corners completely straight with the Square property, the property is a boolean so you can add it without any value.

Code copied

Size

Change the size of the entire button including padding, font-size and border with the size property

values:

  • xl
  • l
  • default
  • small
  • mini
Code copied

Loading

Use loading while an action is running. Select pulse, ripple, or shimmer with loading-type; each preset keeps the original label and icon recognizable, preserves button size, and prevents clicks. ripple uses two clear pulsing waves. Implementation keeps one loading element and switches only the root state class. Use #loading for fully custom content.

Code copied

Click rate limiting

debounce and throttle limit emitted click events without changing button layout. debounce uses a trailing invocation and defaults to 50ms. throttle emits the first click immediately; set debounce="false" before assigning a numeric throttle delay. If both props are numbers, the component logs an error and applies only debounce.

Code copied

Upload

Now you can add a status of sending or uploading data to the server with the upload property, the property is a boolean so you can add it without any value.

Code copied

Block

You can make the button have the full width allowed with the block property, the property is a boolean so you can add it without any value.

Code copied

Animate

You can create an animation to the component by adding template ``#animate `and the content will be the one that appears when the component is animated

You can also change the type of animation with the animation-type property and the allowed values ​​are ( vertical, scale, rotate)

Code copied

Social

Using the colors of social networks is very common in a project either a login button or a share button so Sax Design makes it easy for you to search for each color and just by putting the name of the network you already change the whole style of the component

Supported colors: (facebook, twitter, youtube, pinterest, linkedin, snapchat, whatsapp, tumblr, reddit, spotify, amazon, medium, vimeo, skype, dribbble, slack, yahoo, twitch, discord, telegram, google-plus, messenger)

Code copied

Floating

You can make a float style button easily with the Floating property, the property is a boolean so you can add it without any value.

these buttons usually do an important action in specific and go with a fixed position in the lower corner

Code copied

Group

If you need to make a group of buttons you can use the sub-component <s-button-group> </s-button-group> and inside the default slot put the buttons you want to group

Code copied

Toggle

This is an example of what you can achieve with simple logic and few lines of code.

Code copied

Ripple New

You can change ripple style of a button with the ripple property and the allowed values are

  • reverse
  • cut
Code copied

API

PROPS

PropertyTypeValuesDescriptiondefaultExampleMore
color StringprimarysuccessdangerwarningdarkRGBHEXChange the color of the component and some of its sub components.primary
Usage
style buttonPropflatbordergradienttransparentdashedshadowrelieffloatingChange the style of the component and its states.
Usage
activeBooleantruefalseDetermine if the component is active and change its style to that state.
Usage
loadingBooleantruefalseKeep the button content visible, show the selected loading preset, preserve its size, and prevent interaction.
Usage
loading-typeStringpulserippleshimmerChoose the class-driven loading preset without changing the button markup.pulse
Usage
disabledBooleantruefalseDisable the button and prevent user interaction.
Usage
debounceNumber | falsenumberfalseDebounce emitted click events in milliseconds. When both click limiters are numbers, debounce wins and an error is logged.50
Usage
throttleNumber | falsenumberfalseThrottle emitted click events in milliseconds. Set debounce to false to enable it.
Usage
uploadBooleantruefalseDetermine if the component has the upload status active by changing the style and adding the animation.
Usage
toStringurl - vue-routerAdd the functionality of vue-router to the button, clicking it will redirect to the last route.
Usage
hrefStringhref - linkAdd an href of an external link to add the functionality by clicking on the component.
Usage
blankBooleantruefalseas in an html element `a` determines whether a new window is opened or the current one is replaced.
Usage
iconBooleantruefalseDetermine if the component contains only one icon, by adding this property the component has an equal width and height.
Usage
circleBooleantruefalseChange the border radius to give a circle style.
Usage
squareBooleantruefalseChange the border radius to give a rectangle style.
Usage
blockBooleantruefalseChange the width of the component to the possible total determined by the parent element.
Usage
animationTypeBooleantruefalseChange the type of animation, this property only works if you have the slot animate.
Usage
animateInactiveBooleantruefalseDetermine if the animation is active for the user when hovering.
Usage
RippleStringreversecutChange ripple style of a button with the `ripple` propertyundefined
Usage
No matching data

SLOTS

PropertyTypeValuesDescriptiondefaultExampleMore
loadingslotReplace the selected loading preset with custom loading content.
Usage
animateslotSlot To add the element that will be displayed in the animation.
Usage
No matching data
Last Updated: 2026-08-17, 08:33:54