Files
fnx_web/svelte/src/layout/Button.svelte

71 lines
1.2 KiB
Svelte
Raw Normal View History

2023-11-16 12:17:36 +01:00
<script>
export let highlight = false;
export let red = false;
export let round = false;
export let flat = false;
export let disabled = false;
2023-11-16 12:17:36 +01:00
export let icon = ""
export let icon_small = false;
export let label = ""
export let title = ""
2023-11-16 12:17:36 +01:00
export let link_href = ""
export let link_target = ""
export let click = e => {}
export let style = ""
export let type = ""
export let form = ""
</script>
{#if link_target === ""}
<button
on:click={click}
class="button"
class:button_highlight={highlight}
class:button_red={red}
class:round
class:flat
title={title}
2023-11-16 12:17:36 +01:00
style={style}
type={type}
form={form}
disabled={disabled ? "disabled":""}
2023-11-16 12:17:36 +01:00
>
{#if icon !== ""}
<i class="icon" class:small={icon_small}>{icon}</i>
{/if}
{#if label !== ""}
<span>{label}</span>
{/if}
</button>
{:else}
<a
href="{link_href}"
target={link_target}
class="button"
class:button_highlight={highlight}
class:button_red={red}
class:round
class:flat
title={title}
2023-11-16 12:17:36 +01:00
style={style}
disabled={disabled ? "disabled":""}
2023-11-16 12:17:36 +01:00
>
{#if icon !== ""}
<i class="icon" class:small={icon_small}>{icon}</i>
{/if}
{#if label !== ""}
<span>{label}</span>
{/if}
</a>
{/if}
<style>
.button {
flex: 0 0 content;
}
.flat {
background: none;
margin: 0;
}
</style>