Skip to content

IconToggle

Toggles between two icons using smooth transitions. Useful for actions like "like/unlike", "show/hide", or "expand/collapse".

vue
<script setup lang="ts">
import { IconToggle } from '@/components/kuro/icon-toggle';
import { Eye, EyeOff } from 'lucide-vue-next'
</script>

<IconToggle variant="info" mode="click">
  <Eye />
  <template #alt>
    <EyeOff />
  </template>
</IconToggle>

Installation

bash
npx kuro-ui add icon-toggle
bash
npx github:Bartek-Nowak/Kuro add icon-toggle

Props

PropTypeDefaultDescription
v-modelbooleanfalseTwo-way binding for toggle state. Controls which icon is currently visible.
variant'default' | 'info' | 'success' | 'warning' | 'danger''default'Sets icon color using Tailwind utility classes.
mode'click' | 'hover''click'Determines whether toggle happens on click or hover.
classstring''Additional classes to apply to both icons.

Notes

  • The mode prop determines how the toggle is triggered:
    • 'click': toggles on click.
    • 'hover': toggles on mouseover/mouseout.
  • Uses Vue's v-model to control the active state.
  • variant is used to apply contextual color using Tailwind (e.g. text-blue-600, text-red-600).