1
0
Fork 0
mirror of synced 2024-07-30 10:36:28 +12:00
budibase/packages/standard-components/src/Button.svelte

65 lines
1.2 KiB
Svelte
Raw Normal View History

2019-08-20 08:18:23 +12:00
<script>
2020-02-03 22:50:30 +13:00
export let className = "default"
export let disabled = false
2020-05-09 07:29:15 +12:00
export let text
2020-02-03 22:50:30 +13:00
export let _bb
let theButton
2020-02-26 04:21:23 +13:00
$: if (_bb.props._children && _bb.props._children.length > 0)
theButton && _bb.attachChildren(theButton)
2020-02-03 22:50:30 +13:00
const clickHandler = () => {
2020-09-11 08:11:05 +12:00
_bb.call("onClick")
2020-02-03 22:50:30 +13:00
}
2019-08-20 08:18:23 +12:00
</script>
2020-02-03 22:50:30 +13:00
<button
bind:this={theButton}
2020-06-04 09:49:55 +12:00
class="default"
2020-02-03 22:50:30 +13:00
disabled={disabled || false}
2020-10-17 10:46:15 +13:00
on:click|once={clickHandler}>
2020-05-22 01:28:32 +12:00
{#if !_bb.props._children || _bb.props._children.length === 0}{text}{/if}
2019-08-27 18:32:56 +12:00
</button>
<style>
2020-02-03 22:50:30 +13:00
.default {
2020-06-04 09:49:55 +12:00
align-items: center;
padding: var(--spacing-s) var(--spacing-l);
2020-02-03 22:50:30 +13:00
box-sizing: border-box;
2020-06-04 09:49:55 +12:00
border-radius: 4px;
2020-02-03 22:50:30 +13:00
outline: none;
2020-06-04 09:49:55 +12:00
cursor: pointer;
transition: all 0.2s ease 0s;
overflow: hidden;
outline: none;
user-select: none;
white-space: nowrap;
text-align: center;
2020-02-03 22:50:30 +13:00
}
.border {
border: var(--border);
}
.color {
color: var(--color);
}
.background {
background: var(--background);
}
.hoverBorder:hover {
border: var(--hoverBorder);
}
.hoverColor:hover {
color: var(--hoverColor);
}
.hoverBack:hover {
background: var(--hoverBackground);
}
</style>