slider

Rating slider with emoji feedback

Rating slider with emoji feedback

Загрузка превью…

src/slider/c-slider-12.vue

<script setup lang="ts">
import { ref, computed } from "vue"
import { Label } from "@/components/ui/label"
import { Slider } from "@/components/ui/slider"

const emojis = ["😡", "🙁", "😐", "🙂", "😍"]
const labels = ["Awful", "Poor", "Okay", "Good", "Amazing"]

const value = ref(3)
const emoji = computed(() => emojis[value.value - 1])
const label = computed(() => labels[value.value - 1])
</script>

<template>
  <div class="mx-auto grid w-full max-w-sm gap-3">
    <Label class="text-sm font-medium">Rate your experience</Label>
    <div class="flex items-center gap-3">
      <Slider :model-value="[value]" :min="1" :max="5" :step="1" />
      <span class="text-2xl" aria-hidden="true">{{ emoji }}</span>
    </div>
    <span class="text-muted-foreground text-center text-xs font-medium">{{ label }}</span>
  </div>
</template>

Установка

npx shadcn-vue@latest add https://revueui.rootapi.dev/r/c-slider-12.json

Зависимости реестра

Источник: порт из ReUI (Keenthemes, MIT)