Serafim

Tag Selector

Forms 50

About

A versatile component for selecting and creating multiple tags with search functionality and keyboard navigation support.

Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Tag Selector to your project and fits it to your theme.

Code

How Tag Selector is used: the demo's code. The component's own source comes with a free account.

Usage.tsx

import { useState } from "react"
import { TagSelector } from "@/components/ui/tag-selector"

interface Tag {
  id: string
  label: string
}

function TagSelectorDefault() {
  const availableTags: Tag[] = [
    { id: "1", label: "React" },
    { id: "2", label: "TypeScript" },
    { id: "3", label: "JavaScript" },
    { id: "4", label: "Next.js" },
  ]

  const [selectedTags, setSelectedTags] = useState<Tag[]>([])

  return (
    <TagSelector
      className="max-w-[400px]"
      availableTags={availableTags}
      selectedTags={selectedTags}
      onChange={setSelectedTags}
      getValue={(tag) => tag.id}
      getLabel={(tag) => tag.label}
      createTag={(label) => ({ id: crypto.randomUUID(), label })}
    />
  )
}

function TagSelectorWithPreselected() {
  const availableTags: Tag[] = [
    { id: "1", label: "React" },
    { id: "2", label: "TypeScript" },
    { id: "3", label: "JavaScript" },
    { id: "4", label: "Next.js" },
  ]

  const [selectedTags, setSelectedTags] = useState<Tag[]>([
    availableTags[0],
    availableTags[1],
  ])

  return (
    <TagSelector
      className="max-w-[400px]"
      availableTags={availableTags}
      selectedTags={selectedTags}
      onChange={setSelectedTags}
      getValue={(tag) => tag.id}
      getLabel={(tag) => tag.label}
      createTag={(label) => ({ id: crypto.randomUUID(), label })}
    />
  )
}

export default {
  TagSelectorDefault,
  TagSelectorWithPreselected,
}

Dependencies

More by Serafim

View all
  • Spline Scene

    Spline Scene

    9.7K
  • Testimonials with Marquee

    Testimonials with Marquee

    2.4K
  • Gradient Button

    Gradient Button

    2K
  • Pixel Canvas

    Pixel Canvas

    923
  • Animated Blur Number

    Animated Blur Number

    832
  • Empty State

    Empty State

    794
  • Balloons

    Balloons

    786
  • Status Badge

    Status Badge

    683

More in Forms

View all
  • Contact Card

    Contact Card

    1.1K
  • Premium Auth

    Premium Auth

    551
  • Login 1

    Login 1

    60
  • Form

    Form

    17
  • Form

    Form

    16
  • Book A Demo 1

    Book A Demo 1

    84
  • Card Studio

    Card Studio

    46
  • Login 2

    Login 2

    10