折叠面板
展开/折叠面板的交互式组件。导入
import { Collapsible, CollapsibleTrigger, CollapsibleContent } from "@resolid/react-ui";
Collapsible
: 折叠面板组件的包装器。CollapsibleTrigger
: 切换可折叠的按钮。CollapsibleContent
: 包含可折叠内容的组件。
基础
<Collapsible className={"w-80 mx-auto border rounded"}>
{({ opened }) => (<>
<CollapsibleTrigger className={"p-3 w-full flex flex-row justify-between items-center"}>
<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={"w-80 mx-auto flex flex-col gap-2"}>
{({opened})=> (
<>
<div className={"flex justify-between items-center"}>
<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 |