[React+Tailwind] Flowbite で Spinner を表示してみる | 心を無にして始める React
準備
Flowbite が使えるプロジェクトを準備します。
Spinner コンポーネントをつくる
./src/components 配下に Spinner.js を作ります。
import React, { forwardRef } from 'react';
import {
Spinner as FlowbiteSpinner,
} from 'flowbite-react';
const Spinner = forwardRef((
{
children,
color,
light,
size,
...otherProps
},
ref,
) => {
return (
<FlowbiteSpinner
color={color}
light={light}
size={size}
ref={ref}
{...otherProps}
>
{children}
</FlowbiteSpinner>
);
});
export default Spinner;
Spinner コンポーネントをつかう
いつものように App.js を編集していきます。
import { ArrowDownTrayIcon, CheckIcon, ChevronDoubleDownIcon, ChevronDoubleUpIcon, ChevronDownIcon, ChevronUpIcon, CubeIcon } from '@heroicons/react/24/solid';
import './App.css';
import Spinner from './components/Spinner';
function App() {
return (
<div className="min-h-screen w-full gap-4 flex flex-col justify-center items-center dark:text-white dark:!bg-gray-900">
<div className="flex gap-4">
<Spinner
color="info"
aria-label="Info spinner example"
/>
<Spinner
color="success"
aria-label="Success spinner example"
/>
<Spinner
color="failure"
aria-label="Failure spinner example"
/>
<Spinner
color="warning"
aria-label="Warning spinner example"
/>
<Spinner
color="pink"
aria-label="Pink spinner example"
/>
<Spinner
color="purple"
aria-label="Purple spinner example"
/>
</div>
<div className="flex gap-4">
<Spinner
aria-label="Extra small spinner example"
size="xs"
/>
<Spinner
aria-label="Small spinner example"
size="sm"
/>
<Spinner
aria-label="Medium sized spinner example"
size="md"
/>
<Spinner
aria-label="Large spinner example"
size="lg"
/>
<Spinner
aria-label="Extra large spinner example"
size="xl"
/>
</div>
</div>
);
}
export default App;
結果
はい、できました。