QiuYe UI
选择与切换

Dual State Toggle

双状态切换按钮:基于 shadcn/ui Button,内置点击缩放 + 图标切换动画(opacity + blur),支持 5 种过渡效果预设与自定义过渡配置。

togglebuttoniconanimationswitchdual-statemotionshadcn

快速预览

查看 Dual State Toggle 组件的基本效果

基本用法

使用 Dual State Toggle 组件的基础示例

导入组件

1import { DualStateToggle } from "@/components/qiuye-ui/dual-state-toggle";
2import { useState } from "react";
3import { Menu, X } from "lucide-react";

使用组件

1const [isOpen, setIsOpen] = useState(false);
2
3return (
4 <DualStateToggle
5 active={isOpen}
6 onToggle={setIsOpen}
7 activeIcon={<X />}
8 inactiveIcon={<Menu />}
9 activeLabel="关闭"
10 inactiveLabel="打开"
11 effect="rotate"
12 />
13);

组件演示

查看组件的各种使用方式和效果

基础用法
默认 fade 效果,点击在两种状态间切换
当前状态:未激活
过渡效果预设
5 种内置过渡效果:fade、rotate、slide-up、slide-down、scale
faderotateslide-upslide-downscale
fade
rotate
slide-up
slide-down
scale
按钮变体
支持 shadcn/ui Button 的所有 variant
defaultsecondaryoutlineghost
default
secondary
outline
ghost
按钮形状
方形(square)与圆形(circle)两种形状
square
circle
自定义过渡效果
传入自定义 initial / animate / exit 对象,与基础 opacity + blur 合并
rotate(-180°→0°→180°) + scale(0.6→1→0.6) + blur(4px)
常见场景
播放/暂停、显示/隐藏、通知开关等典型图标切换场景
播放
可见
通知开