themed-color-picker
Use ThemedColorPicker in a layrz Flutter widget. Apply when adding a color selection field — opens a dialog with wheel and/or palette pickers.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use ThemedColorPicker in a layrz Flutter widget. Apply when adding a color selection field — opens a dialog with wheel and/or palette pickers.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use ThemedTabView and ThemedTab in a layrz Flutter widget. Apply when adding horizontal tab navigation with Material 3 styling.
Use ThemedButton in a layrz Flutter widget. Apply when rendering any tappable action — primary/secondary CTAs, icon-only FABs, destructive actions, cooldown buttons, or the six semantic factories (.save, .cancel, .info, .show, .edit, .delete).
Use ThemedSearchInput in a layrz Flutter widget. Apply when adding a search bar — either a compact icon button that expands into an overlay, or a full-width inline field.
Use when migrating ThemedTable<T> (v1) to ThemedTable2<T> (v2) in a layrz Flutter widget. Apply when a widget uses the old ThemedTable API with onShow/onEdit/onDelete/onMultiDelete/ThemedColumn and needs to be updated.
Use ResponsiveCol in a layrz Flutter widget. Apply when defining a column's width at different breakpoints inside a ResponsiveRow.
Use ResponsiveRow in a layrz Flutter widget. Apply when wrapping ResponsiveCol children in a responsive 12-column grid container.
| name | themed-color-picker |
| description | Use ThemedColorPicker in a layrz Flutter widget. Apply when adding a color selection field — opens a dialog with wheel and/or palette pickers. |
Dart syntax: This library requires Dart ≥ 3.10. Use dot shorthand for all enum values (e.g.
.both,.wheel) — never write the fully-qualified form (ColorPickerType.wheel).
Full constructor and property reference: read
references/api.mdin this skill's directory.
Color valuecustomChild (wraps any widget in an InkWell)ThemedColorPicker(
labelText: context.i18n.t('entity.color'),
value: color,
errors: context.getErrors(key: 'color'),
onChanged: (value) {
color = value;
if (context.mounted) onChanged.call();
},
)
[.both, .wheel] — shows both the palette grid and the color wheel.kPrimaryColor when value is null.customChild mode: any widget can be used as the trigger; the dialog still opens on tap.saveText / cancelText default to "OK" / "Cancel" — override with i18n strings.label / labelText must be set — assert enforced.// Wheel only (no palette)
ThemedColorPicker(
labelText: context.i18n.t('entity.color'),
value: color,
enabledTypes: const [.wheel],
onChanged: (value) {
color = value;
if (context.mounted) onChanged.call();
},
)
// Custom child trigger
ThemedColorPicker(
labelText: context.i18n.t('entity.color'),
value: color,
customChild: Container(
width: 40,
height: 40,
decoration: BoxDecoration(
color: color,
borderRadius: BorderRadius.circular(8),
),
),
onChanged: (value) {
color = value;
if (context.mounted) onChanged.call();
},
)
// Localized button labels
ThemedColorPicker(
labelText: context.i18n.t('entity.color'),
value: color,
saveText: context.i18n.t('actions.save'),
cancelText: context.i18n.t('actions.cancel'),
onChanged: (value) {
color = value;
if (context.mounted) onChanged.call();
},
)
// Disabled
ThemedColorPicker(
labelText: context.i18n.t('entity.color'),
value: color,
disabled: true,
)
onChanged with if (context.mounted) before calling the parent callback.context.i18n.t('entity.fieldName') for labelText — never hardcode strings.errors: context.getErrors(key: 'fieldName').const SizedBox(height: 10).