Preview Updated 2026-05-10

Tooltip

Lightweight hint popup — 4 placements, auto-flip near viewport edges, hover and focus triggers.

Basic usage

Wrap any trigger element. Shows on hover or keyboard focus, hides on mouse leave or blur. The tooltip renders into <body> via Teleport / Portal so it isn’t clipped by parent overflow.

<script setup lang="ts">
import { CfButton, CfTooltip } from '@chufix-design/vue';
</script>

<template>
<CfTooltip content="Shown on hover or keyboard focus">
  <CfButton variant="tertiary">Hover me</CfButton>
</CfTooltip>
</template>
import { CfButton, CfTooltip } from '@chufix-design/react';

export default function Demo() {
return (
  <CfTooltip content="Shown on hover or keyboard focus">
    <CfButton variant="tertiary">Hover me</CfButton>
  </CfTooltip>
);
}

Placements

placement sets the preferred direction. When the preferred side doesn’t fit (near a viewport edge) it auto-flips to the opposite side.

<CfTooltip content="Top" placement="top"><CfButton>Top</CfButton></CfTooltip>
<CfTooltip content="Bottom" placement="bottom"><CfButton>Bottom</CfButton></CfTooltip>
<CfTooltip content="Left" placement="left"><CfButton>Left</CfButton></CfTooltip>
<CfTooltip content="Right" placement="right"><CfButton>Right</CfButton></CfTooltip>
<CfTooltip content="Top" placement="top"><CfButton>Top</CfButton></CfTooltip>
<CfTooltip content="Bottom" placement="bottom"><CfButton>Bottom</CfButton></CfTooltip>
<CfTooltip content="Left" placement="left"><CfButton>Left</CfButton></CfTooltip>
<CfTooltip content="Right" placement="right"><CfButton>Right</CfButton></CfTooltip>

Delay and long text

delay controls the wait before showing (ms). maxWidth caps the width and wraps overflow.

<CfTooltip content="0 delay" :delay="0">
<CfButton>No delay</CfButton>
</CfTooltip>

<CfTooltip content="500ms" :delay="500">
<CfButton>500ms</CfButton>
</CfTooltip>

<CfTooltip content="Long content wraps automatically..." :max-width="220">
<CfButton>Long text</CfButton>
</CfTooltip>
<CfTooltip content="0 delay" delay={0}>
<CfButton>No delay</CfButton>
</CfTooltip>

<CfTooltip content="500ms" delay={500}>
<CfButton>500ms</CfButton>
</CfTooltip>

<CfTooltip content="Long content wraps automatically..." maxWidth={220}>
<CfButton>Long text</CfButton>
</CfTooltip>

API

PropTypeDefaultDescription
contentstring (Vue) / ReactNode (React)Popup content; Vue also accepts #content slot
placement'top' | 'bottom' | 'left' | 'right''top'Preferred side; auto-flips on overflow
delaynumber100Show delay (ms)
hideDelaynumber80Hide delay to avoid flicker
disabledbooleanfalseHide entirely
offsetnumber8Gap between trigger and popup (px)
maxWidthnumber | stringCap the width; wrap overflow

反馈与讨论

Tooltip · Discussion

0
0 / 600
一键发送
正在加载评论...