ADD: Key press preview
This commit is contained in:
@@ -1,14 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
<button
|
<button
|
||||||
v-for="(color, key) in keys"
|
v-for="(keyObject, key) in keys"
|
||||||
:key="key"
|
:key="key"
|
||||||
:class="{
|
:class="{
|
||||||
'outline outline-white ': key === selected,
|
'outline outline-white ': key === selected,
|
||||||
'outline-zinc-400 hover:outline': key !== selected
|
'outline-zinc-400 hover:outline': key !== selected,
|
||||||
|
'bg-black/20': keyObject.pressed
|
||||||
}"
|
}"
|
||||||
class="flex aspect-square flex-1 items-center justify-center rounded-[2px] outline-2 transition-all"
|
class="flex aspect-square flex-1 items-center justify-center rounded-[2px] outline-2 transition-all"
|
||||||
:style="`box-shadow: 0 3px 20px -2px ${color.hex()}`"
|
:style="`box-shadow: 0 3px 20px -2px ${keyObject.color.hex()}`"
|
||||||
@click="$emit('select', key)"
|
@click="$emit('select', key)"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
@@ -27,10 +28,22 @@ defineProps({
|
|||||||
keys: {
|
keys: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => ({
|
default: () => ({
|
||||||
a: Color.hsl(265, 100, 50),
|
a: {
|
||||||
b: Color.hsl(280, 100, 50),
|
color: Color.hsl(265, 100, 50),
|
||||||
c: Color.hsl(300, 100, 50),
|
pressed: false
|
||||||
d: Color.hsl(330, 100, 50)
|
},
|
||||||
|
b: {
|
||||||
|
color: Color.hsl(0, 100, 50),
|
||||||
|
pressed: false
|
||||||
|
},
|
||||||
|
c: {
|
||||||
|
color: Color.hsl(120, 100, 50),
|
||||||
|
pressed: false
|
||||||
|
},
|
||||||
|
d: {
|
||||||
|
color: Color.hsl(60, 100, 50),
|
||||||
|
pressed: false
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
selected: {
|
selected: {
|
||||||
|
|||||||
@@ -126,10 +126,22 @@ const { keyColor } = storeToRefs(deviceStore)
|
|||||||
|
|
||||||
const keyColors = computed(() => {
|
const keyColors = computed(() => {
|
||||||
return {
|
return {
|
||||||
a: Color(keyColor.value('a', deviceStore.keyStates.a)),
|
a: {
|
||||||
b: Color(keyColor.value('b', deviceStore.keyStates.b)),
|
color: Color(keyColor.value('a', deviceStore.keyStates.a)),
|
||||||
c: Color(keyColor.value('c', deviceStore.keyStates.c)),
|
pressed: deviceStore.keyStates.a
|
||||||
d: Color(keyColor.value('d', deviceStore.keyStates.d))
|
},
|
||||||
|
b: {
|
||||||
|
color: Color(keyColor.value('b', deviceStore.keyStates.b)),
|
||||||
|
pressed: deviceStore.keyStates.b
|
||||||
|
},
|
||||||
|
c: {
|
||||||
|
color: Color(keyColor.value('c', deviceStore.keyStates.c)),
|
||||||
|
pressed: deviceStore.keyStates.c
|
||||||
|
},
|
||||||
|
d: {
|
||||||
|
color: Color(keyColor.value('d', deviceStore.keyStates.d)),
|
||||||
|
pressed: deviceStore.keyStates.d
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user