Files
infiplot-web/lib/options.ts
T
yuanzonghao 31ce3f1d40 feat(web): revamp style modal UI with grid cards, thumbnails, and dual-view
Redesign the painting-style picker inspired by Pollo AI: widen modal to
1400px, show styles as square thumbnail cards in a 4-column grid with
name labels below, add ember glow hover effect, and split custom-style
editing into its own view. Simplify style names (e.g. "京阿尼细腻日常" →
"京阿尼"), add 22 .webp preview thumbnails, and remove the per-preset
override mechanism in favor of a cleaner grid + custom flow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-06 20:45:08 +08:00

43 lines
1.2 KiB
TypeScript

// Single source of truth for the home-page selector option sets. Kept as
// `as const` so each list also yields a literal-union type: the play-start
// UI (app/page.tsx) renders from the arrays, and the analytics schema
// (lib/analytics.ts) types its payload fields from the unions. That shared
// origin is what keeps the "content-free" events honest — an event field can
// only ever be one of these fixed labels, never free-form player text.
export const GENDERS = ["男性向", "女性向"] as const;
export const ART_STYLES = [
"自动",
"自定义风格",
"京阿尼",
"新海诚",
"吉卜力",
"3D 动画",
"真实",
"赛博朋克",
"哥特",
"废土",
"像素风",
"古典油画",
"莫奈",
"水彩",
"水墨",
"浮世绘",
"彩铅",
"手绘素描",
"黑白漫画",
"儿童绘本",
"儿童涂鸦",
"黏土手工",
] as const;
export const PLOT_STYLES = ["平铺直叙", "多线转折", "悬疑烧脑", "治愈日常"] as const;
export const PACINGS = ["慢热细腻", "紧凑爽快"] as const;
export type Gender = (typeof GENDERS)[number];
export type ArtStyle = (typeof ART_STYLES)[number];
export type PlotStyle = (typeof PLOT_STYLES)[number];
export type Pacing = (typeof PACINGS)[number];