[React+Tailwind] Flowbite で Badge を表示してみる | 心を無にして始める React
準備
Flowbite が使えるプロジェクトを準備します。
Badge コンポーネントをつくる
./src/components 配下に Badge.js を作ります。
import { forwardRef } from 'react';
import { Badge as FlowbiteBadge } from 'flowbite-react';
const Badge = forwardRef((
{
children,
color = "info",
href,
icon,
size,
...otherProps
},
ref,
) => {
return (
<FlowbiteBadge
color={color}
href={href}
icon={icon}
ref={ref}
size={size}
{...otherProps}
>
{children}
</FlowbiteBadge>
);
});
export default Badge;
Badge コンポーネントをつかう
いつものように App.js を編集していきます。
import { CheckIcon, ClockIcon } from '@heroicons/react/24/solid'
import Badge from './components/Badge';
import './App.css';
function App() {
return (
<div className="dark">
<div className="h-screen p-8 flex flex-col justify-center items-center dark:!bg-gray-900">
<div className="flex gap-3">
<Badge color="info">
Default
</Badge>
<Badge color="gray" size="sm">
Dark
</Badge>
<Badge color="failure">
Failure
</Badge>
<Badge color="success" size="sm">
Success
</Badge>
<Badge color="warning" href="#">
Warning
</Badge>
<Badge color="indigo" href="#" size="sm">
Indigo
</Badge>
<Badge color="purple" href="#">
Purple
</Badge>
<Badge color="pink" href="#" size="sm">
Pink
</Badge>
</div>
<div className="mt-4 flex gap-3">
<Badge icon={CheckIcon}>
2 minutes ago
</Badge>
<Badge icon={ClockIcon} color="gray">
3 days ago
</Badge>
</div>
<div className="mt-4 flex gap-3">
<Badge icon={CheckIcon} />
<Badge icon={CheckIcon} color="gray" />
</div>
</div>
</div>
);
}
export default App;
結果
はい、できました。