Files
ui/docs/app/components/theme-picker/ThemePickerButton.vue
2025-02-15 18:25:19 +01:00

34 lines
817 B
Vue

<script setup lang="ts">
defineProps<{
label: string
icon?: string
chip?: string
selected?: boolean
}>()
</script>
<template>
<UButton
size="sm"
color="neutral"
variant="outline"
:icon="icon"
:label="label"
class="capitalize ring-(--ui-border) rounded-[calc(var(--ui-radius))] text-[11px]"
:class="[selected ? 'bg-(--ui-bg-elevated)' : 'hover:bg-(--ui-bg-elevated)/50']"
>
<template v-if="chip" #leading>
<slot name="leading">
<span
class="inline-block size-2 rounded-full"
:class="`bg-(--color-light) dark:bg-(--color-dark)`"
:style="{
'--color-light': `var(--color-${chip}-500)`,
'--color-dark': `var(--color-${chip}-400)`
}"
/>
</slot>
</template>
</UButton>
</template>