ProComponents, templates & AI tooling
HeroUI
27.7k

CloseButton 关闭按钮

用于关闭对话框、模态框或收起内容的按钮组件。

引入

import { CloseButton } from "@heroui/react";

用法

import {CloseButton} from "@heroui/react";

export function Default() {
  return <CloseButton />;
}

自定义图标

自定义图标
备选图标
import {CircleXmark, Xmark} from "@gravity-ui/icons";
import {CloseButton} from "@heroui/react";

export function WithCustomIcon() {
  return (

交互

已点击:0
"use client";

import {CloseButton} from "@heroui/react";
import {useState} from "react";

样式

传入 Tailwind CSS 类

import {CloseButton} from "@heroui/react";

function CustomCloseButton() {
  return <CloseButton className="text-red-600 hover:bg-red-100">Close</CloseButton>;
}

自定义组件类

要自定义 CloseButton 的组件类,可使用 @layer components 指令。
了解更多.

@layer components {
  .close-button {
    @apply bg-red-100 text-red-800 hover:bg-red-200;
  }

  .close-button--custom {
    @apply rounded-full border-2 border-red-300;
  }
}

HeroUI 遵循 BEM 方法论,确保组件变体与状态可复用且易于自定义。

CSS 类

CloseButton 使用以下 CSS 类(查看源码样式):

基础类

  • .close-button - 组件基础样式

变体类

  • .close-button--default - 默认变体

交互状态

该组件同时支持 CSS 伪类与 data 属性,便于灵活编写样式:

  • 悬停:hover[data-hovered="true"]
  • 激活/按压:active[data-pressed="true"]
  • 聚焦:focus-visible[data-focus-visible="true"]
  • 禁用:disabled[aria-disabled="true"]

API 参考

CloseButton Props

Prop类型默认值描述
variant"default""default"按钮的视觉变体
childrenReactNode | function<CloseIcon />显示内容(默认为关闭图标)
onPress() => void-按钮按下时触发的事件处理函数
isDisabledbooleanfalse是否禁用按钮

React Aria Button Props

CloseButton 继承所有 React Aria Button props。常见 props 包括:

Prop类型描述
aria-labelstring提供给屏幕阅读器的无障碍标签
aria-labelledbystring用于标注按钮的元素 id
aria-describedbystring用于描述按钮的元素 id

RenderProps

使用渲染 prop 模式时,会提供以下值:

Prop类型描述
isHoveredboolean按钮是否处于悬停状态
isPressedboolean按钮是否处于按压状态
isFocusedboolean按钮是否处于聚焦状态
isDisabledboolean按钮是否禁用

本页目录