[React+Tailwind] Flowbite で Tooltip を表示してみる | 心を無にして始める React
準備
Flowbite が使えるプロジェクトを準備します。
Tooltip コンポーネントをつくる
./src/components 配下に Tooltip.js を作ります。
import React, { forwardRef } from 'react';
import {
Tooltip as FlowbiteTooltip,
} from 'flowbite-react';
const Tooltip = forwardRef((
{
animation = 'duration-300',
arrow = true,
children,
content,
placement = 'auto',
trigger = 'hover',
style = 'auto',
...otherProps
},
ref,
) => {
return (
<FlowbiteTooltip
animation={animation}
arrow={arrow}
content={content}
placement={placement}
trigger={trigger}
style={style}
{...otherProps}
>
{children}
</FlowbiteTooltip>
);
});
export default Tooltip;
Tooltip コンポーネントをつかう
いつものように App.js を編集していきます。
import './App.css';
import Tooltip from './components/Tooltip';
import Button from './components/Button';
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-2">
<Tooltip
content="Tooltip content"
trigger="hover"
>
<Button>
Tooltip hover
</Button>
</Tooltip>
<Tooltip
content="Tooltip content"
trigger="click"
>
<Button>
Tooltip click
</Button>
</Tooltip>
</div>
<div className="flex gap-2">
<Tooltip
content="Tooltip content"
placement="top"
>
<Button>
Tooltip top
</Button>
</Tooltip>
<Tooltip
content="Tooltip content"
placement="right"
>
<Button>
Tooltip right
</Button>
</Tooltip>
<Tooltip
content="Tooltip content"
placement="bottom"
>
<Button>
Tooltip bottom
</Button>
</Tooltip>
<Tooltip
content="Tooltip content"
placement="left"
>
<Button>
Tooltip left
</Button>
</Tooltip>
</div>
</div>
);
}
export default App;
結果
はい、できました。