Button
Basic
I am a link
svelte
<script lang="ts">
import { Button } from 'stwui';
</script>
<Button on:click={() => console.log("I've been clicked!")}>Default button</Button>
<Button type="primary">I am primary</Button>
<Button type="danger">I am scary</Button>
<Button type="ghost">Boo I am a ghost</Button>
<Button type="link" href="https://google.com">I am a link</Button>Loading
<script lang="ts">
import { Button } from 'stwui';
</script>
<Button loading>Default button</Button>
<Button type="primary" loading>I am primary</Button>
<Button type="danger" loading>I am scary</Button>
<Button type="ghost" loading>Boo I am a ghost</Button>
<Button type="link" loading>I am a link</Button>Disabled
<script lang="ts">
import { Button } from 'stwui';
</script>
<Button disabled>Default button</Button>
<Button type="primary" disabled>I am primary</Button>
<Button type="danger" disabled>I am scary</Button>
<Button type="ghost" disabled>Boo I am a ghost</Button>
<Button type="link" disabled>I am a link</Button>Leading & Trailing
<script lang="ts">
import { Button } from 'stwui';
const home = "svg-path";
</script>
<Button>
<Button.Leading data={home} slot="leading" />
Default button
</Button>
<Button type="primary">
<Button.Leading data={home} slot="leading" />
I am primary
</Button>
<Button type="danger">
I am scary
<Button.Trailing data={home} slot="trailing" />
</Button>
<Button type="ghost">
Boo I am a ghost
<Button.Trailing data={home} slot="trailing" />
</Button>
<Button type="link">
I am a link
<Button.Trailing data={home} slot="trailing" />
</Button>Shape
<script lang="ts">
import { Button } from 'stwui';
const home = "svg-path";
</script>
<Button shape="circle">
<Button.Icon data={home} slot="icon" />
</Button>
<Button type="primary" shape="square">I am primary</Button>
<Button type="danger" shape="rounded">I am scary</Button>
<Button type="ghost">Boo I am a ghost</Button>
<Button type="link">I am a link</Button>Swap Icon
<script lang="ts">
import { Button, Swap } from 'stwui';
let loading = false;
function toggleLoading() {
loading = !loading;
}
</script>
<Button shape="circle" on:click={toggleLoading}>
<Swap slot="icon" {loading}>
<Button.Icon data={menu} slot="on" />
<Button.Icon data={close} slot="off" />
</Swap>
</Button>
<Button type="primary">
<Swap {loading} slot="leading">
<Button.Icon data={menu} slot="on" />
<Button.Icon data={close} slot="off" />
</Swap>
I am primary
</Button>Sizes
Button Props
| disabled | boolean | false |
| htmlType | 'button' | 'submit' | 'reset' | button |
| loading | boolean | false |
| defaultLoading | boolean | true |
| type | 'default'| 'primary' | 'danger' | 'ghost' | 'link' | 'text' | 'dark' | undefined | |
| shape | 'square' | 'circle' | 'rounded' | 'pill' | rounded |
| size | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'fab' | md |
| disableHover | boolean | false |
| ariaLabel | string | undefined | |
| href | string | undefined |
Button Slots
| leading | <Button.Leading slot="leading" /> |
| icon | <Button.Icon slot="icon" /> |
| default | |
| trailing | <Button.Trailing slot="trailing" /> |
Button.Leading Props
| data | string (IconData) | |
| viewBox | string | 0 0 24 24 |
| size | string | 24px |
| width | string | 24px |
| height | string | 24px |
| color | string | currentColor |
| stroke | string | undefined | |
| fill | string | currentColor |
Button.Icon Props
| data | string (IconData) | |
| viewBox | string | 0 0 24 24 |
| size | string | 24px |
| width | string | 24px |
| height | string | 24px |
| color | string | currentColor |
| stroke | string | undefined | |
| fill | string | currentColor |
Button.Trailing Props
| data | string (IconData) | |
| viewBox | string | 0 0 24 24 |
| size | string | 24px |
| width | string | 24px |
| height | string | 24px |
| color | string | currentColor |
| stroke | string | undefined | |
| fill | string | currentColor |
