折叠面板
展开/折叠面板的交互式组件。导入
import { Collapsible, CollapsibleTrigger, CollapsibleContent } from "@resolid/react-ui";
Collapsible
: 折叠面板组件的包装器。CollapsibleTrigger
: 切换可折叠的按钮。CollapsibleContent
: 包含可折叠内容的组件。
基础
<Collapsible className={"mx-auto w-80 rounded border"}>
{({ opened }) => (
<>
<CollapsibleTrigger className={"flex w-full flex-row items-center justify-between p-3"}>
<h6 className={"font-medium"}>Resolid Remix 是什么?</h6>
<span className={`transition-transform duration-[250] ${opened ? "rotate-180" : ""}`}>
<svg width={"1.5em"} height={"1.5em"} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path
fill="currentColor"
d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71L8.46 9.17a1 1 0 0 0-1.41 0a1 1 0 0 0 0 1.42l4.24 4.24a1 1 0 0 0 1.42 0L17 10.59a1 1 0 0 0 0-1.42"
/>
</svg>
</span>
</CollapsibleTrigger>
<CollapsibleContent className={"border-t"}>
<p className={"p-3"}>
Resolid Remix 是使用 Remix 驱动的全栈网站,旨在展示使用 Remix、React、Tailwind CSS、Vite、Drizzle
ORM、PostgreSQL、Hono、Node.js 和 Vercel 等现代 Web 技术构建高性能、可扩展和用户友好的 Web
应用程序的最佳实践。
</p>
</CollapsibleContent>
</>
)}
</Collapsible>
复杂
Resolid 项目拥有 7 个子项目
@resolid/config - 通用配置
@resolid/framework - 核心框架
<Collapsible className={"mx-auto flex w-80 flex-col gap-2"}>
{({ opened }) => (
<>
<div className={"flex items-center justify-between"}>
<h4 className="font-bold">Resolid 项目拥有 7 个子项目</h4>
<CollapsibleTrigger asChild>
<Button size={"xs"} square color={"neutral"} variant={"ghost"}>
{opened ? (
<SpriteIcon size={"1.25rem"} name={"close"} />
) : (
<svg width={"1.5em"} height={"1.5em"} xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path
fill="currentColor"
d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71L8.46 9.17a1 1 0 0 0-1.41 0a1 1 0 0 0 0 1.42l4.24 4.24a1 1 0 0 0 1.42 0L17 10.59a1 1 0 0 0 0-1.42"
/>
</svg>
)}
</Button>
</CollapsibleTrigger>
</div>
<div className={"rounded border px-3 py-2"}>@resolid/config - 通用配置</div>
<div className={"rounded border px-3 py-2"}>@resolid/framework - 核心框架</div>
<CollapsibleContent className={"flex flex-col gap-2"}>
<div className={"rounded border px-3 py-2"}>@resolid/react-ui - UI 组件</div>
<div className={"rounded border px-3 py-2"}>@resolid/mdx-plugins - MDX 插件</div>
<div className={"rounded border px-3 py-2"}>@resolid/remix-plugins - Remix 插件</div>
<div className={"rounded border px-3 py-2"}>@resolid/tailwind - TailwindCSS 预设</div>
<div className={"rounded border px-3 py-2"}>@resolid/utils - 基础工具</div>
</CollapsibleContent>
</>
)}
</Collapsible>
属性
属性 | 类型 | 默认值 | 必须 |
---|---|---|---|
属性open | 类型boolean | 默认值- | 必须false |
属性defaultOpen | 类型boolean | 默认值false | 必须false |
属性disabled | 类型boolean | 默认值false | 必须false |
属性onOpen | 类型() => void | 默认值- | 必须false |
属性onClose | 类型() => void | 默认值- | 必须false |
属性duration | 类型number | 默认值'250' | 必须false |