aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Control/Button.vue
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.com>2024-02-15 14:01:30 +0000
committerLeonardo Bishop <me@leonardobishop.com>2024-02-15 14:01:30 +0000
commit2aca4247c5d0c7061a300517178dd31316b65fab (patch)
tree10e145c2b57d76c778bdf1a11191495dcfe191f3 /src/components/Control/Button.vue
Initial commit
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