button-group

Rating scale using numerical buttons

Rating scale using numerical buttons

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

src/button-group/c-button-group-25.vue

<script setup lang="ts">
import { ref } from "vue"
import { Button } from "@/components/ui/button"
import { ButtonGroup } from "@/components/ui/button-group"

const rating = ref<number | null>(null)
</script>

<template>
  <div class="space-y-3">
    <p class="text-sm font-medium">How likely are you to recommend us?</p>
    <ButtonGroup>
      <Button
        v-for="n in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
        :key="n"
        variant="outline"
        size="icon-sm"
        :class="
          rating === n &&
          'bg-primary hover:bg-primary hover:text-primary-foreground hover:border-primary text-primary-foreground border-primary'
        "
        @click="rating = n"
      >
        {{ n }}
      </Button>
    </ButtonGroup>
    <div class="text-muted-foreground flex justify-between text-xs">
      <span>Not likely</span>
      <span>Very likely</span>
    </div>
  </div>
</template>

Установка

npx shadcn-vue@latest add https://revueui.rootapi.dev/r/c-button-group-25.json

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

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