feat: use <button> to improve a11y and keyboard navigation experience (#74)

This commit is contained in:
George Chen
2025-01-12 01:35:19 +08:00
committed by GitHub
parent 11283f6f94
commit 78fa350ced
9 changed files with 28 additions and 16 deletions

View File

@@ -89,9 +89,9 @@ const filteredRecipes = computedAsync(async () => {
@click="keyword = ''"
/>
</div>
<div op="70" ml-2 inline-flex cursor-pointer text-base @click="closeModal">
<button op="70" ml-2 inline-flex cursor-pointer text-base @click="closeModal">
取消
</div>
</button>
</DialogTitle>
<div flex="~ col grow" overflow="auto" class="mt-2" text-xs>
<DishTag v-for="item, i in filteredRecipes" :key="i" :dish="item" />

View File

@@ -0,0 +1,11 @@
<template>
<div
class="rounded pureTag tagSize"
p="x-2"
border="~ yellow-200 dark:yellow-800"
:bg="'yellow-300 opacity-20'"
:text="'yellow-800 dark:yellow-200'"
>
<slot />
</div>
</template>

View File

@@ -5,12 +5,12 @@ defineProps<{
</script>
<template>
<span
<button
class="meat-tag rounded tag" p="x-2"
border="~ red-200 dark:red-800"
:bg="active ? 'red-500 opacity-90' : 'red-300 opacity-20'"
:text="active ? 'red-100' : 'red-800 dark:red-200'"
>
<slot />
</span>
</button>
</template>

View File

@@ -5,11 +5,11 @@ defineProps<{
</script>
<template>
<span
<button
class="rounded tag" p="x-2" border="~ yellow-200 dark:yellow-800"
:bg="active ? 'yellow-500 dark:yellow-600 opacity-100' : 'yellow-300 opacity-20'"
:text="active ? 'yellow-100' : 'yellow-800 dark:yellow-200'"
>
<slot />
</span>
</button>
</template>

View File

@@ -5,12 +5,12 @@ defineProps<{
</script>
<template>
<span
<button
class="rounded tag" p="x-2"
border="~ stone-200 dark:stone-600"
:bg="active ? 'stone-600 opacity-100' : 'stone-300 opacity-5'"
:text="active ? 'stone-100' : 'stone-800 dark:stone-200'"
>
<slot />
</span>
</button>
</template>

View File

@@ -5,12 +5,12 @@ defineProps<{
</script>
<template>
<span
<button
class="vegetable-tag rounded tag" p="x-2"
border="~ green-200 dark:green-800"
:bg="active ? 'green-600 opacity-90' : 'green-300 opacity-20'"
:text="active ? 'green-100' : 'green-800 dark:green-200'"
>
<slot />
</span>
</button>
</template>