Hello guys how are you? Welcome back to my blog. Today in this blog post I will show you Working demo of a multi-select tag input using Next.js and Tailwind CSS.
For react js new comers, please check the below links:
Guys here is the code snippet and please use carefully:
Step 1: Create a New Next.js Project
If you haven’t already, create a new Next.js project:
npx create-next-app@latest my-multiselect-demo cd my-multiselect-demo
Step 2: Install Necessary Dependencies
Install the necessary dependencies. For this example, we’ll use react-select, a popular library for creating multi-select components in React.
npm install react-select
Step 3: Create the Multi-Select Component
Create a new component called MultiSelect.js inside the components folder (you can create the folder if it doesn’t exist).
// components/MultiSelect.js
import React from 'react';
import Select from 'react-select';
const MultiSelect = ({ options, selectedOptions, onChange }) => {
return (
<Select
isMulti
value={selectedOptions}
onChange={onChange}
options={options}
className="w-full"
classNamePrefix="react-select"
/>
);
};
export default MultiSelect;
Step 4: Apply Tailwind CSS Styles
Add some custom styles for the react-select component in your globals.css or directly in a component file if you are using module-based styling.
/* global.css */
.react-select__control {
@apply border-gray-300 rounded-lg shadow-sm;
}
.react-select__multi-value {
@apply bg-blue-500 text-white;
}
.react-select__multi-value__remove {
@apply text-white hover:bg-blue-700;
}
Step 5: Use the Multi-Select Component in a Page
Open the page.js file and replace the content with the following code to use your MultiSelect component.
import { useState } from 'react';
import MultiSelect from '../components/MultiSelect';
export default function Home() {
const options = [
{ value: 'tag1', label: 'Tag 1' },
{ value: 'tag2', label: 'Tag 2' },
{ value: 'tag3', label: 'Tag 3' },
{ value: 'tag4', label: 'Tag 4' },
];
const [selectedOptions, setSelectedOptions] = useState([]);
const handleChange = (selected) => {
setSelectedOptions(selected);
};
return (
<div className="min-h-screen bg-gray-100 flex items-center justify-center">
<div className="w-full max-w-md mx-auto bg-white p-8 rounded-xl shadow-md">
<h1 className="text-2xl font-bold mb-4">Multi-Select Tags</h1>
<MultiSelect options={options} selectedOptions={selectedOptions} onChange={handleChange} />
<div className="mt-4">
<h2 className="text-lg font-semibold">Selected Tags:</h2>
<ul>
{selectedOptions.map((option) => (
<li key={option.value} className="mt-2">
{option.label}
</li>
))}
</ul>
</div>
</div>
</div>
);
}
Step 6: Run the Application
Finally, run your Next.js application:
npm run dev
Visit http://localhost:3000 in your browser to see the multi-select tags in action.

This setup provides a simple multi-select tag input using react-select styled with Tailwind CSS, integrated into a Next.js application. The component allows you to select multiple tags, and the selected options will be displayed below the multi-select input.
This is it guys and if you will have any kind of query, suggestion or requirement then feel free to comment below.
Thanks
Ajay
