aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Control/Button.vue
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/Control/Button.vue')
-rw-r--r--src/components/Control/Button.vue54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/components/Control/Button.vue b/src/components/Control/Button.vue
new file mode 100644
index 0000000..044cca1
--- /dev/null
+++ b/src/components/Control/Button.vue
@@ -0,0 +1,54 @@
+<script setup lang="ts">
+defineProps({
+ type: {
+ type: String,
+ required: false,
+ default: 'text',
+ },
+ label: String,
+ icon: Array<String>,
+});
+</script>
+
+<template>
+ <a id="button" :class="{text: type === 'text', solid: type === 'solid'}" >
+ <font-awesome-icon :icon="icon" />
+ {{ label }}
+ </a>
+</template>
+
+<style scoped>
+#button {
+ display: flex;
+ align-items: center;
+ gap: 0.25rem;
+ user-select: none;
+}
+
+.text {
+ background-color: transparent;
+ color: var(--color-text-primary);
+ transition: color 0.3s;
+ font-weight: 700;
+ cursor: pointer;
+}
+
+.solid {
+ background-color: var(--color-primary);
+ transition: background-color 0.3s;
+ color: var(--color-text);
+ padding: 0.25rem 0.5rem;
+ border-radius: 4px;
+ font-weight: 700;
+ cursor: pointer;
+}
+
+.text:hover {
+ color: var(--color-primary-dark);
+}
+
+.solid:hover {
+ background-color: var(--color-primary-dark);
+}
+
+</style> \ No newline at end of file