ICEN UI 折叠面板
Docs ⌘K
Core · 稳定

折叠面板

手风琴:分区展开收起,支持单开模式。

Preview
数据展示 accordion
icen.ai 生态的统一设计系统:设计 tokens + 无框架组件 CSS + 行为 JS,所有前端从这里取设计资产。
预设类挂在 html 上:modern 现代(默认)/ dongyun 东韵 / jugou 巨构 / piano 钢琴 / monet 莫奈 / vangogh 梵高;明暗用 data-icen-theme,原语用 data-icen-style="modern|chinese|soviet|pixel",两轴独立。
不可以。组件 CSS 只消费 --icen-token-* 变量,语义色仅绿 / 黄 / 红 + 品牌 accent 四档。
html
<div class="accordion" data-icen-single>  <div class="icen-accordion-item is-open">    <button class="icen-accordion-trigger" type="button" aria-expanded="true"><span>什么是 @icen.ai/ui?</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" focusable="false" class="icen-symbol icen-accordion-chevron" aria-hidden="true"><path d="M5.5 7.75 10 12.25l4.5-4.5"></path></svg></button>    <div class="icen-accordion-panel"><div class="icen-accordion-panel-inner">icen.ai 生态的统一设计系统:设计 tokens + 无框架组件 CSS + 行为 JS,所有前端从这里取设计资产。</div></div>  </div>  <div class="icen-accordion-item">    <button class="icen-accordion-trigger" type="button" aria-expanded="false"><span>如何切换色彩预设?</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" focusable="false" class="icen-symbol icen-accordion-chevron" aria-hidden="true"><path d="M5.5 7.75 10 12.25l4.5-4.5"></path></svg></button>    <div class="icen-accordion-panel"><div class="icen-accordion-panel-inner">预设类挂在 html 上:modern 现代(默认)/ dongyun 东韵 / jugou 巨构 / piano 钢琴 / monet 莫奈 / vangogh 梵高;明暗用 data-icen-theme,原语用 data-icen-style="modern|chinese|soviet|pixel",两轴独立。</div></div>  </div>  <div class="icen-accordion-item">    <button class="icen-accordion-trigger" type="button" aria-expanded="false"><span>组件可以直接写死颜色吗?</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" focusable="false" class="icen-symbol icen-accordion-chevron" aria-hidden="true"><path d="M5.5 7.75 10 12.25l4.5-4.5"></path></svg></button>    <div class="icen-accordion-panel"><div class="icen-accordion-panel-inner">不可以。组件 CSS 只消费 --icen-token-* 变量,语义色仅绿 / 黄 / 红 + 品牌 accent 四档。</div></div>  </div></div>

特性

接口

初始化
initAccordion()(kit 一行入口可直接命名导入)
导出
initAccordion
事件
icen:accordion-toggle detail 契约见 IcenEventMap
类型
dist/behaviors/accordion.d.mts(随 npm 包发布,含全部 JSDoc 约束)

安装

bun add @icen.ai/ui

一行引入该组件(CSS 与 behavior 自动带上,无需关心内部 CSS 文件名):

js
import { initAccordion } from '@icen.ai/ui/kit/accordion';initAccordion();

也可以用脚手架直接打印引入行:

bash
bunx --bun @icen.ai/ui add accordion

Astro 项目注意:kit 入口里的 CSS import 在页面 <script> 里会被 Astro 的 client bundle 摇掉——请改在布局 frontmatter 里引 CSS(import '@icen.ai/ui/components/content.css';),JS 行为仍可走 kit。Vite SPA / webpack 项目无此问题。

用法

js
import { initAccordion } from '@icen.ai/ui/behaviors/accordion';initAccordion();// 容器带 data-icen-single 时展开一项会收起其余