Alune 组件

CommandButton

带可访问名称与 Tooltip 的原生图标按钮。

使用方式

label 提供可访问名称与 Tooltip,children 放入图标。不要仅用色彩或图形表达操作语义。

import { CommandButton } from '@alune/ui';

接入要求见快速开始,选择依据见 交互与无障碍规范。

运行示例

运行与复制源码来自同一 TSX 文件。浮层、状态和主题独立于文档;所有回调只更新本地模拟数据。

真实示例 TSX 独立预览 ↗
查看运行源码
源码文件
import { useState } from 'react';
import { ToolbarButton, StatusButton, CommandButton, DialogIcon, Space } from '@alune/ui';

export default function Example() {
  const [active, setActive] = useState('files');
  const [count, setCount] = useState(0);
  return (
    <div className="example">
      <section className="example-group">
        <h2 className="example-title">视图切换</h2>
        <Space wrap size="middle">
          <ToolbarButton
            label="文件"
            active={active === 'files'}
            onClick={() => setActive('files')}
          >
            <DialogIcon name="folder" />
            文件
          </ToolbarButton>
          <ToolbarButton
            label="历史"
            active={active === 'history'}
            onClick={() => setActive('history')}
          >
            <DialogIcon name="clock" />
            历史
          </ToolbarButton>
        </Space>
      </section>
      <section className="example-group">
        <h2 className="example-title">操作与连接状态</h2>
        <Space wrap size="middle">
          <ToolbarButton
            label="拉取"
            variant="action"
            text="拉取"
            count={2}
            countTone="behind"
            onClick={() => setCount((n) => n + 1)}
          >
            <DialogIcon name="cloud-down" />
          </ToolbarButton>
          <ToolbarButton
            label="运行示例"
            variant="primary"
            text="运行"
            count={count || undefined}
            onClick={() => setCount((n) => n + 1)}
          />
          <ToolbarButton label="不可用操作" variant="action" disabled>
            不可用
          </ToolbarButton>
          <StatusButton label="状态" active>
            已连接
          </StatusButton>
          <CommandButton label="刷新示例" onClick={() => setCount((n) => n + 1)}>
            <DialogIcon name="refresh" />
          </CommandButton>
        </Space>
      </section>
      <p className="example-status" role="status">
        当前:{active} · 操作次数:{count}
      </p>
    </div>
  );
}

API

CommandButton

label 提供可访问名称与 Tooltip,children 放入图标。不要仅用色彩或图形表达操作语义。

查看 CommandButton 实现 ↗

CommandButtonProps

属性 / 方法 类型 默认值 必填 说明
label string — 是 可访问名称或展示文案。
children ReactNode — 是 渲染的子内容。
danger boolean false 否 危险操作样式。
onClick (() => void) — 否 点击回调,由宿主执行操作。
disabled boolean — 否 禁用操作。

查看 CommandButtonProps 实现 ↗

交互与使用限制

为每个操作提供可访问名称,为输入关联 label;使用语义化组件和清晰焦点。不要只靠颜色传达状态,禁用与等待时避免重复执行。

label 提供可访问名称与 Tooltip,children 放入图标。不要仅用色彩或图形表达操作语义。

键盘、焦点、风险确认与通知策略的完整约定见交互规范。