React List Group - Flowbite
Get started with the list group component to show a list of elements and menu items inside of an unordered list item built with React and Tailwind CSS
Table of Contents#
- Default list group
- List items as links
- List group with buttons
- List group with icons
- Theme
- References
Default list group#
Use the default example to create a simple list of items inside of a menu by using the ListGroup
component with ListGroup.Item
child components inside of it.
- React TypeScript
'use client';
import { ListGroup } from 'flowbite-react';
export default function DefaultListGroup() {
return (
<ListGroup>
<ListGroup.Item>
Profile
</ListGroup.Item>
<ListGroup.Item>
Settings
</ListGroup.Item>
<ListGroup.Item>
Messages
</ListGroup.Item>
<ListGroup.Item>
Download
</ListGroup.Item>
</ListGroup>
)
}
List items as links#
Convert the list items into links by adding the href
prop to the ListGroup.Item
component.
- React TypeScript
'use client';
import { ListGroup } from 'flowbite-react';
export default function ListGroupWithLinks() {
return (
<ListGroup>
<ListGroup.Item
active
href="/list-group"
>
<p>
Profile
</p>
</ListGroup.Item>
<ListGroup.Item href="/list-group">
Settings
</ListGroup.Item>
<ListGroup.Item href="/list-group">
Messages
</ListGroup.Item>
<ListGroup.Item href="/list-group">
Download
</ListGroup.Item>
</ListGroup>
)
}
List group with buttons#
To create custom actions inside of the list group, use the onClick
prop on the ListGroup.Item
component.
- React TypeScript
'use client';
import { ListGroup } from 'flowbite-react';
export default function ListGroupWithButtons() {
return (
<ListGroup>
<ListGroup.Item
active
onClick={()=>alert("Profile clicked!")}
>
<p>
Profile
</p>
</ListGroup.Item>
<ListGroup.Item>
Settings
</ListGroup.Item>
<ListGroup.Item>
Messages
</ListGroup.Item>
<ListGroup.Item>
Download
</ListGroup.Item>
</ListGroup>
)
}
List group with icons#
Add icons to the list group items by using the icon
prop on the ListGroup.Item
component.
- React TypeScript
'use client';
import { ListGroup } from 'flowbite-react';
import { HiCloudDownload, HiInbox, HiOutlineAdjustments } from 'react-icons/hi';
export default function ListGroupWithIcons() {
return (
<ListGroup>
<ListGroup.Item
active
icon={HiUserCircle}
>
<p>
Profile
</p>
</ListGroup.Item>
<ListGroup.Item icon={HiOutlineAdjustments}>
Settings
</ListGroup.Item>
<ListGroup.Item icon={HiInbox}>
Messages
</ListGroup.Item>
<ListGroup.Item icon={HiCloudDownload}>
Download
</ListGroup.Item>
</ListGroup>
)
}
Theme#
To learn more about how to customize the appearance of components, please see the Theme docs.
{
"root": {
"base": "list-none rounded-lg border border-gray-200 bg-white text-sm font-medium text-gray-900 dark:border-gray-600 dark:bg-gray-700 dark:text-white text-left"
},
"item": {
"base": "[&>*]:first:rounded-t-lg [&>*]:last:rounded-b-lg [&>*]:last:border-b-0",
"link": {
"base": "flex w-full border-b border-gray-200 py-2 px-4 dark:border-gray-600",
"active": {
"off": "hover:bg-gray-100 hover:text-cyan-700 focus:text-cyan-700 focus:outline-none focus:ring-2 focus:ring-cyan-700 dark:border-gray-600 dark:hover:bg-gray-600 dark:hover:text-white dark:focus:text-white dark:focus:ring-gray-500",
"on": "bg-cyan-700 text-white dark:bg-gray-800"
},
"href": {
"off": "",
"on": ""
},
"icon": "mr-2 h-4 w-4 fill-current"
}
}
}