01Fomantic UI 设计系统界面预览
筛选三条原创阅读推荐,通过星级或方向键评分,并将其加入讨论候选清单。
Fomantic UI 2.9.4 CSS/modules,搭配 jQuery 3.7.1。封面插画和评分键盘增强功能均为原创。·
实现参考 直接检查了 Fomantic UI 2.9.4 的编译默认值 CSS。这些是基于 Less 的主题中选择器级别的默认值,并非虚构的运行时 CSS 令牌。原创封面颜色和应用尺寸则单独标出。
| 名称 / 规则 | 值 / 配置 | 用途 |
|---|
html font-size | 14px | 默认 rem 基准值。 |
body font-family | Lato, system-ui, platform and emoji fallbacks | 预览包含本地 Lato 字体数据。 |
body line-height | 1.4285em | 在默认的 14px 字号下约为 20px。 |
body text color | rgba(0, 0, 0, 0.87) | 默认的高强调度文本。 |
h1 / h2 / h3 | 2rem / 1.71428571rem / 1.28571429rem | 应用原创页面样式覆盖前的默认标题字号。 |
heading line-height | 1.28571429em | 默认标题节奏。 |
| 名称 / 规则 | 值 / 配置 | 用途 |
|---|
.ui.button background | #e0e1e2 | 默认中性按钮。 |
.ui.button border-radius | 0.28571429rem | 使用默认根字号时约为 4px。 |
.ui.teal.button background | #00b5ad | 候选清单中使用的原生青绿色操作颜色。 |
.ui.teal.button:hover | #009c95 | 原生青绿色悬停状态。 |
.ui.teal.button:focus | #008c86 | 原生青绿色焦点背景。 |
.ui.teal.button:active | #00827c | 原生青绿色按下背景。 |
.ui.primary.button background | #2185d0 | 主蓝色与命名的青绿色变体相互独立。 |
| 名称 / 规则 | 值 / 配置 | 用途 |
|---|
.ui.card width | 290px | 默认固定宽度;流式变化会填满此应用网格。 |
.ui.card border-radius | 0.28571429rem | 使用默认根字号时约为 4px。 |
.ui.card box-shadow | 0 1px 3px 0 #d4d4d5, 0 0 0 1px #d4d4d5 | 默认阴影和轮廓。 |
.ui.card margin | 1em 0 | 原创网格将其覆盖为零,以对齐卡片。 |
.ui.card transition | box-shadow 0.1s ease, transform 0.1s ease | 默认卡片动效。 |
| 名称 / 规则 | 值 / 配置 | 用途 |
|---|
maxRating | 4 by default; 5 in this example | 明确设置的五分制与无障碍滑块的最大值一致。 |
initialRating | 0 | 用户交互前未评分。 |
clearable | auto by default; true in this example | 允许清除现有评分。 |
interactive | true | 已启用鼠标交互。 |
onRate(value) | Callback after a rating is selected | 同步文本输出和无障碍值。 |
| 名称 / 规则 | 值 / 配置 | 用途 |
|---|
Page padding | 36px 28px / 24px 18px mobile | 原创布局间距。 |
Grid gap | 22px | 原创三栏阅读书架。 |
Page heading | 34px / 1.15; 29px mobile | 原创标题样式覆盖。 |
Cover height | 175px / 155px mobile | 原创 CSS 书籍封面插画。 |
Layout breakpoint | 760px | 原创样式切换为单列卡片。 |
03Fomantic UI 设计系统完整指南
实用指南,介绍如何为真实界面选择、应用和评审此系统。
DESIGN-fomantic-ui.md完整指导、实现起点和源代码链接。
下载指南Fomantic UI 设计系统:使用 jQuery 模块的 A CSS 词汇体系
CSS 设计系统:搭配 jQuery 模块的术语体系
Fomantic UI 将语义化类名字符串与可选的有状态模块结合使用。阅读书架使用 ui fluid card、ui teal button 和 ui basic label 设置外观。下拉菜单和评分功能则通过 jQuery 显式初始化。仅加载样式表可以渲染卡片,但无法提供相同的交互功能。
此示例固定使用 Fomantic UI 2.9.4 和 jQuery 3.7.1。它先加载 transition 模块,再加载 dropdown,最后加载 rating。明确展示这些依赖,比放上一排静态星星并称之为交互式库示例更有参考价值。只有在卡片标记存在后,原创应用模块才会运行。
阅读配套规范
Fomantic UI 设计系统:编译后的默认值并非运行时令牌名称
编译后的默认值并非运行时令牌名称
Fomantic 的默认主题通过 Less 构建。因此,参考资料记录了青绿色按钮背景、卡片圆角等实际选择器值,不会凭空编造编译包并未提供的 --fomantic-primary 令牌 API。如需大幅更改主题,应使用文档说明的主题构建方式和变量文件。
命名的青绿色变体与主蓝色变体相互独立。在此阅读书架中,候选清单操作使用青绿色,而原创封面插画采用纸色、鼠尾草绿和暖陶土色。这些封面是应用插画,并非官方调色板色样。按钮的悬停、焦点和按下状态均使用 Fomantic 原生默认值。
阅读配套规范
Fomantic UI 设计系统:14 像素的 rem 会改变几何尺寸
14 像素的 rem 会改变几何尺寸
默认网站样式表将根字号和正文文字设为 14 像素。因此,按钮和卡片的 0.28571429rem 圆角约为 4 像素。若将此 rem 值复制到根字号为 16 像素的其他项目中,得到的尺寸就会不同。因此,参考资料会注明根字号,而不是只列出一个来历不明的圆角值。
Lato 是首选字体系列,编译后的程序包包含本地字体资源。此独立预览直接嵌入这些字体资源,不会向网络字体服务发起请求。页面标题是自定义的 34 像素样式覆盖;卡片描述保留紧凑的正文文本,同时采用更宽松的应用行高。
阅读配套规范
Fomantic UI 设计系统卡片结构:明确区分内容与操作
卡片结构让内容与操作各自分明
每张原生卡片都包含装饰性封面、用于显示主题和描述的内容区块、用于显示评分的另一个内容区块,以及用于显示待选清单操作的额外内容区块。流式卡片填满原有的三列网格,而非使用程序包默认的 290px 宽度。页面移除了各卡片的单独外边距,由网格提供一致的间距。
这些提示对应不同的阅读任务:比较字间距、移除一个元素以观察留白,以及观察颜色如何随上下文变化。它们的封面通过字体、矩形和叠加色块,在视觉上呼应这些练习。这些提示明确为原创内容,不代表任何出版方的背书。
阅读配套规范
Fomantic UI 设计系统:所有输入方式都调用原生评分行为
所有输入方式均调用原生评分行为
评分模块配置为最高五分,并启用清除功能。onRate 接收当前数值,并同步更新可见评分和滑块的无障碍值。“清除评分”操作会调用模块的 clear rating 行为,而不是手动移除激活状态类。
原生星级模块支持鼠标交互,但此示例还添加了明确的键盘操作。评分容器是一个带标签的滑块,取值范围为零到五。方向键每次调整一级,Home 键清除评分,End 键选择五分。每种操作路径都会调用 set rating,确保显示的星级和应用输出共用模块状态。
- 按 Tab 键将焦点移至评分项,然后按两次右方向键,选择五分中的两分。
- 按 End 键选择五分,然后按 Home 键将评分重置为“未评分”。
- 点击一颗星,确认文本输出和无障碍值同时更新。
阅读配套规范
Fomantic UI 设计系统:下拉筛选会保留隐藏项的状态
下拉筛选会保留隐藏状态
通过下拉菜单初始化器,将主题选择框转换为原生 Fomantic 下拉菜单。其 onChange 回调会隐藏主题与所选值不匹配的卡片,并更新可见提示的数量。“所有主题”选项会恢复显示完整列表。此组件使用 transition 模块控制菜单动画。
筛选不会销毁并重新创建卡片。卡片隐藏时,原有评分和待选清单状态仍保留在对应记录中。这是有意为之:缩小列表范围只是查看操作,并不意味着要抹去用户先前的选择。因此,摘要中可能会提及当前筛选范围之外的项目。
阅读配套规范
Fomantic UI 设计系统:加入待选清单无需评分
候选清单独立于评分
评分用零到五分表示兴趣程度,而是否加入待选清单则是独立的是非决定。用户可以先将提示留待讨论,再进行评分。待选清单按钮通过 aria-pressed 暴露选中状态,并在“添加”和“移除”标签之间切换。摘要根据稳定的主题 ID 集合生成名称。
状态区域会说明已选提示,但不会声称已将列表保存到远程位置。重新加载浏览器后,此示例中的数据会清除。真正的共享阅读清单需要持久化、用户身份识别和冲突处理;仅仅为卡片添加一个类并不会带来这些能力。
阅读配套规范
Fomantic UI 设计系统:为装饰性星星保留数值含义
为装饰性星星保留数值含义
星形图标对辅助技术隐藏,因为父级滑块会提供数值和标签。显示“未评分”或分数值,可以传达同样的含义,无需读者数彩色图标。仅在聚焦时显示的轮廓会标记当前激活的滑块,“清除”按钮则会将焦点返回到该控件。
书封图形同样仅作装饰。卡片内仍以文本形式显示真实的提示标题、时长和描述。在原有的 760px 断点下,窄屏会将卡片堆叠排列。此示例将编译后页面正文的视口高度重置为自动,并移除隐藏水平溢出的设置,使嵌入内容能够采用实际高度,同时避免掩盖布局缺陷。
- 同时通过文本和无障碍值公开当前数值。
- 使用原生按钮清除评分和更改待选清单状态。
- 网格变为单列时,仍保留标签和完整描述。
阅读配套规范
Fomantic UI 设计系统:将字体与样式一同交付或打包
将字体与样式一同发布,或将字体打包
在常规项目中,应复制完整的 fomantic-ui-css 目录,而不是只提取 semantic.css,却遗漏其 themes 资源。编译后的样式通过相对路径引用 Lato 和图标字体文件。以下设置会保留这些路径,并在程序包模块之前加载 jQuery。
本地预览只使用所需的组件样式和脚本,然后将其引用的资源嵌入同一文档中,不会发起外部字体请求。生产环境中的打包工具可能会以不同方式处理这些资源,但仍需在最终交付的页面中测试字体路径和模块顺序,不能仅凭 npm install 成功就想当然。
阅读配套规范
Fomantic UI 设计系统组件示例
由三张卡片组成的阅读列表
原生卡片、标签、按钮、下拉菜单标记和评分容器。
html
<main class="reading-room"><header><div><p class="kicker">FOMANTIC UI · READING ROOM</p><h1>Make a shelf worth returning to.</h1><p class="intro">Rate three original reading prompts and build a local discussion shortlist.</p></div><span class="ui teal basic label">Local collection</span></header><div class="toolbar"><label for="topic">Show topic</label><select id="topic" class="ui selection dropdown"><option value="all">All topics</option><option value="type">Typography</option><option value="space">Space & rhythm</option><option value="color">Color</option></select><span id="visible-count">3 prompts</span></div><div class="book-grid"><article class="ui fluid card" data-topic="type" data-name="Letters in the margins"><div class="book-cover type-cover" aria-hidden="true"><span>Aa</span><small>FORM / COUNTERFORM</small></div><div class="content"><div class="meta">TYPOGRAPHY · 18 MIN</div><h2 class="header">Letters in the margins</h2><div class="description">Compare a narrow editorial column with a generous display line. Find where the rhythm changes.</div></div><div class="content"><label class="rating-label" id="label-type">Your interest</label><div class="ui huge star rating" data-rating="0" data-max-rating="5" role="slider" tabindex="0" aria-labelledby="label-type" aria-valuemin="0" aria-valuemax="5" aria-valuenow="0"></div><output class="score">Not rated</output><button class="ui tiny basic button clear-rating" type="button">Clear rating</button></div><div class="extra content"><button class="ui fluid teal button shortlist" aria-pressed="false">Add to shortlist</button></div></article><article class="ui fluid card" data-topic="space" data-name="The space between"><div class="book-cover space-cover" aria-hidden="true"><span></span><span></span><span></span><small>PAUSE / SEQUENCE</small></div><div class="content"><div class="meta">SPACE & RHYTHM · 12 MIN</div><h2 class="header">The space between</h2><div class="description">Remove one element from a crowded page. Rebalance the remaining space without adding decoration.</div></div><div class="content"><label class="rating-label" id="label-space">Your interest</label><div class="ui huge star rating" data-rating="0" data-max-rating="5" role="slider" tabindex="0" aria-labelledby="label-space" aria-valuemin="0" aria-valuemax="5" aria-valuenow="0"></div><output class="score">Not rated</output><button class="ui tiny basic button clear-rating" type="button">Clear rating</button></div><div class="extra content"><button class="ui fluid teal button shortlist" aria-pressed="false">Add to shortlist</button></div></article><article class="ui fluid card" data-topic="color" data-name="A color and its neighbor"><div class="book-cover color-cover" aria-hidden="true"><span></span><span></span><small>CONTEXT / CONTRAST</small></div><div class="content"><div class="meta">COLOR · 15 MIN</div><h2 class="header">A color and its neighbor</h2><div class="description">Place the same accent on two backgrounds. Describe the shift before changing its value.</div></div><div class="content"><label class="rating-label" id="label-color">Your interest</label><div class="ui huge star rating" data-rating="0" data-max-rating="5" role="slider" tabindex="0" aria-labelledby="label-color" aria-valuemin="0" aria-valuemax="5" aria-valuenow="0"></div><output class="score">Not rated</output><button class="ui tiny basic button clear-rating" type="button">Clear rating</button></div><div class="extra content"><button class="ui fluid teal button shortlist" aria-pressed="false">Add to shortlist</button></div></article></div><section class="ui message summary"><h2 class="header">Discussion shortlist</h2><p id="summary" role="status">No prompts selected. Add one to begin.</p><p class="scope">Ratings and selections stay in this browser page. These are original prompts, not published books.</p></section></main>
代码参考
- 这些是原创练习提示,并非真实书籍封面。
- 每项评分都有自己的无障碍标签和数值范围。
- 待选清单操作通过 aria-pressed 暴露状态。
模块初始化与本地交互
下拉筛选、评分行为调用、键盘增强和待选清单状态。
javascript
const cards=[...document.querySelectorAll('.book-grid article')],selected=new Set();
$('#topic').dropdown({onShow(){this.setAttribute('aria-expanded','true');},onHide(){this.setAttribute('aria-expanded','false');},onChange(value){let count=0;cards.forEach(card=>{card.hidden=value!=='all'&&card.dataset.topic!==value;if(!card.hidden)count++;});document.querySelectorAll('.toolbar .menu .item').forEach(item=>item.setAttribute('aria-selected',String(item.dataset.value===value)));document.querySelector('#visible-count').textContent=`${count} ${count===1?'prompt':'prompts'}`;}});
const dropdown=document.querySelector('.toolbar div.dropdown');dropdown.setAttribute('role','combobox');dropdown.setAttribute('aria-label','Show topic');dropdown.setAttribute('aria-expanded','false');dropdown.setAttribute('aria-haspopup','listbox');dropdown.querySelector('.menu').setAttribute('role','listbox');dropdown.querySelectorAll('.menu .item').forEach(item=>{item.setAttribute('role','option');item.setAttribute('aria-selected',String(item.dataset.value==='all'));});
$('.ui.rating').each(function(){const node=this,$rating=$(node);$rating.rating({maxRating:5,clearable:true,onRate(value){node.setAttribute('aria-valuenow',value);node.setAttribute('aria-valuetext',value?`${value} out of 5`:'Not rated');node.closest('article').querySelector('.score').textContent=value?`${value} / 5`:'Not rated';}});node.setAttribute('aria-valuetext','Not rated');node.querySelectorAll('.icon').forEach(i=>i.setAttribute('aria-hidden','true'));node.addEventListener('keydown',e=>{let value=Number($rating.rating('get rating'));if(['ArrowRight','ArrowUp'].includes(e.key))value=Math.min(5,value+1);else if(['ArrowLeft','ArrowDown'].includes(e.key))value=Math.max(0,value-1);else if(e.key==='Home')value=0;else if(e.key==='End')value=5;else return;e.preventDefault();$rating.rating('set rating',value);});node.closest('article').querySelector('.clear-rating').onclick=()=>{$rating.rating('clear rating');node.focus();};});
cards.forEach(card=>{card.querySelector('.shortlist').onclick=e=>{const id=card.dataset.topic,button=e.currentTarget;if(selected.has(id)){selected.delete(id);button.textContent='Add to shortlist';button.setAttribute('aria-pressed','false');}else{selected.add(id);button.textContent='Remove from shortlist';button.setAttribute('aria-pressed','true');}const names=cards.filter(c=>selected.has(c.dataset.topic)).map(c=>c.dataset.name);document.querySelector('#summary').textContent=names.length?`${names.length} selected: ${names.join('; ')}.`:'No prompts selected. Add one to begin.';};});
代码参考
- 必须先加载 jQuery 和 Fomantic 模块,再加载此文件。
- 方向键调整评分时也使用相同的 set rating 方法。
- 筛选会隐藏卡片,但不会销毁其评分或选择状态。
原创列表布局
响应式网格、封面图案和明确的焦点样式。
css
body{background:#f6f5f2}.reading-room{max-width:1120px;margin:auto;padding:36px 28px}.reading-room header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:32px}.kicker{font-size:11px;letter-spacing:.14em;font-weight:700;color:#008c86}h1{font-size:34px;line-height:1.15;margin:12px 0}.intro{color:#666;font-size:15px;line-height:1.6}.toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:24px;font-size:14px}.toolbar>label{font-weight:700}.toolbar>span{color:#767676;margin-left:auto}.book-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}.book-grid>.ui.card{margin:0;height:100%}.book-grid>.ui.card[hidden]{display:none}.book-cover{height:175px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.book-cover small{position:absolute;bottom:16px;left:18px;letter-spacing:.15em;font-size:9px;font-weight:700}.type-cover{background:#e2ccb0;color:#4a332a}.type-cover>span{font-family:Georgia,serif;font-size:90px;line-height:1}.space-cover{background:#ccd7d5;gap:10px}.space-cover>span{height:65px;width:25px;background:#3c6763}.space-cover>span:nth-child(2){height:90px;width:45px}.color-cover{background:#dcb9b0}.color-cover>span{width:85px;height:85px;background:#a85243}.color-cover>span:nth-child(2){width:50px;height:50px;border-radius:50%;background:#e6c57c;position:absolute}.book-grid .description{font-size:14px;line-height:1.6;min-height:88px}.rating-label{display:block;font-size:12px;font-weight:bold;margin-bottom:10px}.score{display:block;font-size:12px;color:#666;margin:8px 0 12px}.clear-rating{margin-bottom:0!important}.book-grid .ui.rating:focus-visible{outline:3px solid #00b5ad;outline-offset:4px}.summary{margin-top:28px!important}.scope{font-size:12px;color:#666}button:focus-visible{outline:3px solid #00b5ad!important;outline-offset:3px}@media(max-width:760px){.reading-room{padding:24px 18px}.reading-room header{flex-direction:column;gap:8px}h1{font-size:29px}.book-grid{grid-template-columns:1fr}.book-grid .description{min-height:0}.book-cover{height:155px}.toolbar>span{width:100%;margin-left:0}.toolbar .dropdown{min-width:180px}}
html,body{height:auto;min-height:0}body{min-width:0;overflow-x:visible}
代码参考
- 将编译后站点的默认高度 height:100% 重置为 auto,以便嵌入。
- 不会利用正文溢出设置来掩盖布局错误。
04Fomantic UI 设计系统 AI Agent 设置
实现起点
已在 Fomantic UI 2.9.4 和 jQuery 3.7.1 环境中验证。独立示例内嵌了所需字体资源;常规设置保留相对于程序包的路径。HTML 包装器包含完整的 body 标记;请将提供的交互示例和 CSS 示例保存为此处引用的文件名。
html
<!-- npm install [email protected] [email protected] -->
<!-- Copy node_modules/fomantic-ui-css into public/vendor/fomantic-ui-css. -->
<!-- Copy node_modules/jquery/dist/jquery.min.js into public/vendor/jquery.min.js. -->
<link rel="stylesheet" href="/vendor/fomantic-ui-css/semantic.min.css">
<link rel="stylesheet" href="style.css">
<main class="reading-room"><header><div><p class="kicker">FOMANTIC UI · READING ROOM</p><h1>Make a shelf worth returning to.</h1><p class="intro">Rate three original reading prompts and build a local discussion shortlist.</p></div><span class="ui teal basic label">Local collection</span></header><div class="toolbar"><label for="topic">Show topic</label><select id="topic" class="ui selection dropdown"><option value="all">All topics</option><option value="type">Typography</option><option value="space">Space & rhythm</option><option value="color">Color</option></select><span id="visible-count">3 prompts</span></div><div class="book-grid"><article class="ui fluid card" data-topic="type" data-name="Letters in the margins"><div class="book-cover type-cover" aria-hidden="true"><span>Aa</span><small>FORM / COUNTERFORM</small></div><div class="content"><div class="meta">TYPOGRAPHY · 18 MIN</div><h2 class="header">Letters in the margins</h2><div class="description">Compare a narrow editorial column with a generous display line. Find where the rhythm changes.</div></div><div class="content"><label class="rating-label" id="label-type">Your interest</label><div class="ui huge star rating" data-rating="0" data-max-rating="5" role="slider" tabindex="0" aria-labelledby="label-type" aria-valuemin="0" aria-valuemax="5" aria-valuenow="0"></div><output class="score">Not rated</output><button class="ui tiny basic button clear-rating" type="button">Clear rating</button></div><div class="extra content"><button class="ui fluid teal button shortlist" aria-pressed="false">Add to shortlist</button></div></article><article class="ui fluid card" data-topic="space" data-name="The space between"><div class="book-cover space-cover" aria-hidden="true"><span></span><span></span><span></span><small>PAUSE / SEQUENCE</small></div><div class="content"><div class="meta">SPACE & RHYTHM · 12 MIN</div><h2 class="header">The space between</h2><div class="description">Remove one element from a crowded page. Rebalance the remaining space without adding decoration.</div></div><div class="content"><label class="rating-label" id="label-space">Your interest</label><div class="ui huge star rating" data-rating="0" data-max-rating="5" role="slider" tabindex="0" aria-labelledby="label-space" aria-valuemin="0" aria-valuemax="5" aria-valuenow="0"></div><output class="score">Not rated</output><button class="ui tiny basic button clear-rating" type="button">Clear rating</button></div><div class="extra content"><button class="ui fluid teal button shortlist" aria-pressed="false">Add to shortlist</button></div></article><article class="ui fluid card" data-topic="color" data-name="A color and its neighbor"><div class="book-cover color-cover" aria-hidden="true"><span></span><span></span><small>CONTEXT / CONTRAST</small></div><div class="content"><div class="meta">COLOR · 15 MIN</div><h2 class="header">A color and its neighbor</h2><div class="description">Place the same accent on two backgrounds. Describe the shift before changing its value.</div></div><div class="content"><label class="rating-label" id="label-color">Your interest</label><div class="ui huge star rating" data-rating="0" data-max-rating="5" role="slider" tabindex="0" aria-labelledby="label-color" aria-valuemin="0" aria-valuemax="5" aria-valuenow="0"></div><output class="score">Not rated</output><button class="ui tiny basic button clear-rating" type="button">Clear rating</button></div><div class="extra content"><button class="ui fluid teal button shortlist" aria-pressed="false">Add to shortlist</button></div></article></div><section class="ui message summary"><h2 class="header">Discussion shortlist</h2><p id="summary" role="status">No prompts selected. Add one to begin.</p><p class="scope">Ratings and selections stay in this browser page. These are original prompts, not published books.</p></section></main>
<script src="/vendor/jquery.min.js"></script>
<script src="/vendor/fomantic-ui-css/components/transition.min.js"></script>
<script src="/vendor/fomantic-ui-css/components/dropdown.min.js"></script>
<script src="/vendor/fomantic-ui-css/components/rating.min.js"></script>
<script src="app.js"></script>
<!-- Keep the themes/ assets beside the copied CSS. -->
适用于你项目的提示词
Agent 提示词
使用提供的 jQuery 模块初始化、Dropdown 和 Rating 组件,扩展 Fomantic UI 2.9.4 阅读室的候选清单。让三条阅读提示、评分状态和本地候选清单行为与可见卡片保持关联。保留评分控件新增的明确键盘支持和滑块语义,以及配套的主题与图标资源。候选清单必须防止重复添加,并清晰展示当前内容;它不是支持工单流程,也不是远程推荐服务。
Fomantic UI 2.9.4 和 jQuery 3.7.1。主题值为编译后的默认值;原始封面插画和键盘增强功能均已标明。所有选择均保留在本地。