Tooltip
Tooltipは、ユーザーが要素にカーソルを合わせた際に補足情報を表示するコンポーネントです。
<script lang="ts">
import Tooltip from '$lib/components/ui/atoms/Tooltip.svelte';
</script>
<Tooltip>ツールチップ</Tooltip>
インストールの手順
以下のコンポーネントのコードを、使いたいプロジェクトにコピー&ペーストします。
パスは実際のプロジェクトの構成にあわせて更新します。
atoms/Tooltip.svelte
<!--
@component
## 概要
- ユーザーが要素にカーソルを合わせた際に補足情報を表示するコンポーネントです
## 機能
- 補足情報を表示します
## Usage
```svelte
<Tooltip>ツールチップ</Tooltip>
```
-->
<script module lang="ts">
import type { Snippet } from 'svelte';
import type { ClassValue } from 'svelte/elements';
import { cva, type VariantProps } from 'class-variance-authority';
export const tooltipVariants = cva('inline-flex items-center px-3 py-1.5 bg-base-container-primary rounded-md shadow-md font-regular leading-none text-base-foreground-on-fill-inverse text-sm',
);
export type TooltipVariants = VariantProps<typeof tooltipVariants>;
export interface TooltipProps extends TooltipVariants {
/** クラス */
class?: ClassValue;
children?: Snippet<[]>;
}
</script>
<script lang="ts">
let { class: className, children }: TooltipProps = $props();
let tooltipVariantClass = $derived(tooltipVariants({ class: className }));
</script>
<div class={tooltipVariantClass}>
{@render children?.()}
</div>
使い方
<script lang="ts">
import Tooltip from '$lib/components/ui/atoms/Tooltip.svelte';
</script>
<Tooltip>ツールチップ</Tooltip>
サンプル
Default
補足情報を表示している状態です。
<script lang="ts">
import Tooltip from '$lib/components/ui/atoms/Tooltip.svelte';
</script>
<Tooltip>ツールチップ</Tooltip>
With Button
ボタンと組み合わせることもできます。
<script lang="ts">
import Button from '$lib/components/ui/atoms/Button.svelte';
import Tooltip from '$lib/components/ui/atoms/Tooltip.svelte';
import { Sparkles } from '@lucide/svelte';
</script>
<div class="relative">
<Button class="peer" size="small" isSquare>
<Sparkles size="1rem" />
</Button>
<div class="absolute transition-all -left-8 -top-5 opacity-0 whitespace-nowrap pointer-events-none peer-hover:-top-10 peer-hover:opacity-100">
<Tooltip>ツールチップ</Tooltip>
</div>
</div>