ワンクリックで
choicejs-skill
基于 Choices.js 官方文档实现可维护、可主题化、无闪烁的 Tag/Select 输入 UI,适用于 Phoenix LiveView 与常规前端项目。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
基于 Choices.js 官方文档实现可维护、可主题化、无闪烁的 Tag/Select 输入 UI,适用于 Phoenix LiveView 与常规前端项目。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Unified Vmemo local development workflow: setup-state check, reset decision, and temporary port conflict handling.
Run the full GitHub PR lifecycle: create, update, assign, and keep PR content in sync with new commits.
Prepare a Vmemo release PR with explicit config-change confirmation gates.
Create concise incident postmortems at others/postmortem/YYYY-MM-DD-title.md for non-trivial bugs or issues.
开发时必须遵守 Vmemo 的编码规范与工程约束。
Use when working on Phoenix projects with Tidewave MCP. Prefer Tidewave tools for code discovery, docs lookup, runtime checks, and database verification instead of ad-hoc guessing.
| name | choicejs-skill |
| description | 基于 Choices.js 官方文档实现可维护、可主题化、无闪烁的 Tag/Select 输入 UI,适用于 Phoenix LiveView 与常规前端项目。 |
| version | 1.0.0 |
| argument-hint | [implement|polish|audit] |
本 skill 用于指导 agent 按 Choices.js 官方文档 实现和优化 UI,重点是:
--choices-* CSS custom propertiesChoices UI 异常:不可输入、样式割裂、重复 chips、初始化闪烁把基础变量定义到 :root(如需深色主题,再覆盖 [data-theme="dark"] 或 @media (prefers-color-scheme: dark)):
--choices-bg-color --choices-bg-color-dropdown --choices-keyline-color --choices-primary-color --choices-item-color --choices-highlighted-color--choices-border-radius --choices-border-radius-item --choices-input-height --choices-inner-padding--choices-button-opacity --choices-button-opacity-hover --choices-z-index原则:
:root,组件差异只在局部覆盖<select multiple> 先隐藏(如 style="display:none")mounted 初始化 Choicesupdated 先 destroy() 再重建,避免重复实例is-ready 类,再显示容器(visibility: visible)addItem 推送 add-tagremoveItem 推送 remove-tagsuppress 标记避免回写时事件环路new Choices(el, {
removeItemButton: true,
duplicateItemsAllowed: false,
shouldSort: false,
searchEnabled: true,
placeholder: true,
noResultsText: "",
noChoicesText: "",
itemSelectText: "",
addItems: true,
addChoices: true,
delimiter: ",",
})
--choices-* 未定义告警问题:不可输入
修复:检查 searchEnabled/addItems/addChoices、input 是否被遮挡、updated 是否反复 destroy 导致焦点丢失
问题:样式与系统不一致
修复:先统一 :root 变量,再做局部微调;禁止直接复制 demo 样式
问题:初始化闪烁
修复:使用 visibility: hidden -> .is-ready { visibility: visible }