@lark-apaas/coding-miaoda-sandbox-skills 0.1.0-dev.b2f659e → 0.1.0-dev.c8cc2b5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/miaoda/charts-skill/SKILL.md +1 -1
  2. package/miaoda/creative-to-fullstack/SKILL.md +105 -100
  3. package/miaoda/creative-to-fullstack/references/artifact-signals.md +2 -1
  4. package/miaoda/creative-to-fullstack/references/ui-to-function.md +5 -69
  5. package/miaoda/feishu/SKILL.md +4 -4
  6. package/miaoda/forms-skill/SKILL.md +9 -0
  7. package/miaoda/lark-apps-db/SKILL.md +3 -1
  8. package/miaoda/lark-apps-db/references/full-reference.md +13 -4
  9. package/miaoda/lark-apps-ops/SKILL.md +3 -2
  10. package/miaoda/lark-apps-ops/references/lark-apps-mcp.md +26 -0
  11. package/miaoda/lark-design-prototype/DESIGN.md +603 -0
  12. package/miaoda/lark-design-prototype/SKILL.md +85 -0
  13. package/miaoda/lark-design-prototype/references/assets/card-illustration-library.md +113 -0
  14. package/miaoda/lark-design-prototype/references/case-matching.md +53 -0
  15. package/miaoda/lark-design-prototype/references/cases/conversational-ai-home.md +27 -0
  16. package/miaoda/lark-design-prototype/references/cases/data-table.md +30 -0
  17. package/miaoda/lark-design-prototype/references/cases/official-home.md +26 -0
  18. package/miaoda/lark-design-prototype/references/cases/workspace-home.md +34 -0
  19. package/miaoda/lark-design-prototype/references/color-roles.md +163 -0
  20. package/miaoda/lark-design-prototype/references/component-selection.md +134 -0
  21. package/miaoda/lark-design-prototype/references/design-quality-checklist.md +156 -0
  22. package/miaoda/lark-design-prototype/references/form-shell-patterns.md +77 -0
  23. package/miaoda/lark-design-prototype/references/icon-semantics.md +237 -0
  24. package/miaoda/lark-design-prototype/references/layout-interaction.md +164 -0
  25. package/miaoda/lark-design-prototype/references/page-contract.md +281 -0
  26. package/miaoda/lark-design-prototype/references/product-patterns.md +93 -0
  27. package/miaoda/lark-design-prototype/references/prompt-expansion.md +107 -0
  28. package/miaoda/lark-design-prototype/references/restoration-traps.md +113 -0
  29. package/miaoda/lark-design-prototype/references/token-semantics.md +112 -0
  30. package/miaoda/lark-design-prototype/references/visual-brief.md +125 -0
  31. package/miaoda/lark-design-prototype/references/visual-style-prompts.md +61 -0
  32. package/miaoda/lark-design-prototype/scripts/icon-query.mjs +272 -0
  33. package/miaoda/lark-design-prototype/scripts/token-query.mjs +76 -0
  34. package/miaoda/lark-design-prototype/scripts/verify-static-html.mjs +117 -0
  35. package/miaoda/testing-guide/SKILL.md +106 -12
  36. package/miaoda-modern/charts-skill/SKILL.md +1 -1
  37. package/miaoda-modern/forms-skill/SKILL.md +33 -3
  38. package/miaoda-modern/lark-apps-ops/SKILL.md +3 -2
  39. package/miaoda-modern/lark-apps-ops/references/lark-apps-mcp.md +26 -0
  40. package/miaoda-modern/lark-design-prototype/DESIGN.md +603 -0
  41. package/miaoda-modern/lark-design-prototype/SKILL.md +85 -0
  42. package/miaoda-modern/lark-design-prototype/references/assets/card-illustration-library.md +113 -0
  43. package/miaoda-modern/lark-design-prototype/references/case-matching.md +53 -0
  44. package/miaoda-modern/lark-design-prototype/references/cases/conversational-ai-home.md +27 -0
  45. package/miaoda-modern/lark-design-prototype/references/cases/data-table.md +30 -0
  46. package/miaoda-modern/lark-design-prototype/references/cases/official-home.md +26 -0
  47. package/miaoda-modern/lark-design-prototype/references/cases/workspace-home.md +34 -0
  48. package/miaoda-modern/lark-design-prototype/references/color-roles.md +163 -0
  49. package/miaoda-modern/lark-design-prototype/references/component-selection.md +134 -0
  50. package/miaoda-modern/lark-design-prototype/references/design-quality-checklist.md +156 -0
  51. package/miaoda-modern/lark-design-prototype/references/form-shell-patterns.md +77 -0
  52. package/miaoda-modern/lark-design-prototype/references/icon-semantics.md +237 -0
  53. package/miaoda-modern/lark-design-prototype/references/layout-interaction.md +164 -0
  54. package/miaoda-modern/lark-design-prototype/references/page-contract.md +281 -0
  55. package/miaoda-modern/lark-design-prototype/references/product-patterns.md +93 -0
  56. package/miaoda-modern/lark-design-prototype/references/prompt-expansion.md +107 -0
  57. package/miaoda-modern/lark-design-prototype/references/restoration-traps.md +113 -0
  58. package/miaoda-modern/lark-design-prototype/references/token-semantics.md +112 -0
  59. package/miaoda-modern/lark-design-prototype/references/visual-brief.md +125 -0
  60. package/miaoda-modern/lark-design-prototype/references/visual-style-prompts.md +61 -0
  61. package/miaoda-modern/lark-design-prototype/scripts/icon-query.mjs +272 -0
  62. package/miaoda-modern/lark-design-prototype/scripts/token-query.mjs +76 -0
  63. package/miaoda-modern/lark-design-prototype/scripts/verify-static-html.mjs +117 -0
  64. package/miaoda-modern/reviewer-usage/SKILL.md +2 -0
  65. package/package.json +1 -1
  66. package/shared/attachment/SKILL.md +5 -1
  67. package/miaoda-modern/testing-guide/SKILL.md +0 -218
@@ -0,0 +1,113 @@
1
+ # Feishu Restoration Traps
2
+
3
+ Read this reference for high-fidelity restoration, full-page Figma implementation, screenshot recreation, or pages that visibly drift away from the Feishu feel.
4
+
5
+ ## Quick Check
6
+
7
+ - Has the Figma coordinate system become a fixed page layout?
8
+ - Are there heavy gray backgrounds, strong borders, or ordinary card shadows?
9
+ - Have all modules become cards with equal visual strength?
10
+ - Is there gray backing with white cards, white cards with gray blocks, or gray blocks with smaller cards?
11
+ - Do blue or other accent colors appear in ordinary decoration, icon matrices, category tags, or large backgrounds?
12
+ - Does page UI use gradients?
13
+ - Is the whole main workspace locked by a fixed max width?
14
+ - Are multiple text layers bold in the same list, table, card, or navigation group?
15
+ - Do content sections lack external titles, or are titles wrapped inside bordered containers?
16
+ - Is text compressed, clipped, character-by-character, or vertical?
17
+ - Does the page only look close after 50% or 75% browser zoom?
18
+ - Do top bars, navigation, tabs, list rows, avatars, badges, message cards, or floating actions collide?
19
+ - Are recognizable UD controls rendered as unstyled ordinary `div` elements?
20
+ - Are icon styles mixed?
21
+ - Is a responsible visual anchor missing?
22
+ - Are unrelated modules added only because a case has them?
23
+
24
+ ## Surfaces And Borders
25
+
26
+ Feishu interfaces express structure first through whitespace, titles, surface hierarchy, and component states. Borders are for real controls, table / list boundaries, key containers, and necessary grouping. Ordinary business cards need only a 0.5px light boundary.
27
+
28
+ Content section titles are external by default. Except for Hero, overview summary cards, small KPI cards, floating layers, navigation, and single detail cards, do not put section titles inside bordered Card / Table containers. Borders only wrap real content.
29
+
30
+ Avoid:
31
+
32
+ - Most modules in the same viewport have full frames;
33
+ - Title and content are wrapped by one frame, making the section hierarchy heavy;
34
+ - Gray backing with white cards, white cards with gray blocks, gray blocks with smaller cards;
35
+ - White cards floating on a heavy gray right rail;
36
+ - Colored borders used as generic decoration.
37
+
38
+ Side navigation background should use a near-white neutral surface and must not become an obvious gray block. Selected state uses neutral fill and 500 text weight, not light-blue fill or brand-blue text by default.
39
+
40
+ ## Cards And Depth
41
+
42
+ Ordinary business cards, Hero, metric cards, quick entries, table containers, right summaries, stage pipelines, and insight panels have no shadows by default. Shadows are only for floating layers such as dropdown, popover, tooltip, dialog, and drawer.
43
+
44
+ Avoid card-in-card layouts. When content needs subdivision, prefer titles, rows, light fills, whitespace, and dividers.
45
+
46
+ Quick entries and lightweight recommendation entries do not set fixed height. With short titles and descriptions, cards should be shaped naturally by 16px vertical padding, text line-height, and 36–40px icon containers. Cards in one row take the height of the tallest card in that row. The parent uses `grid-auto-rows: auto`; `align-items: stretch` or card `height: 100%` can provide equal height within the row. If the whole group becomes too tall, the cause is usually fixed height, excessive `min-height`, `grid-auto-rows: 1fr`, `grid-auto-rows: minmax(...)`, `aspect-ratio`, or `place-items: center`. Entry icon containers may use light low-opacity blue fills to avoid a flat group of pure white outlined icons.
47
+
48
+ When multiple modules in Figma / screenshots appear to share a width, first restore the common container line and responsive grid. Do not add `margin-left`, temporary width, or fixed canvas coordinates to individual modules. Page title, Hero, module title, quick entry, table, and right rail should come from the same content wrapper.
49
+
50
+ ## Layout
51
+
52
+ Figma frames, auto layout, padding, gap, and constraints should convert into responsive layout relationships. Page body uses document flow and does not copy full-page `top/left` coordinates.
53
+
54
+ For screenshot restoration, infer DPR and target CSS viewport before coding. If a source image is `2840 x 1630` and appears to be a Retina screenshot, the first target CSS viewport should be close to `1420 x 815`. A page that only matches at 50% zoom usually means raw screenshot pixels were used as CSS pixels.
55
+
56
+ Ordinary fixed dimensions remain only for icons, avatars, control heights, hairline borders, and local media ratios.
57
+
58
+ The main workspace of workspaces, tables, boards, CRM, admin pages, and data pages must fill the available space after the navigation shell. Max reading width is only for local areas such as long-form text, settings forms, and detail descriptions, not the whole `main-workspace` / `main-content`.
59
+
60
+ ## Text
61
+
62
+ Table columns, navigation items, buttons, tags, card titles, and metadata all need minimum readable width or ellipsis / wrap strategies. When a title area contains search, filters, or action buttons, it should wrap or stack at narrow widths.
63
+
64
+ Tables are the exception: table body cells must not become two-line just to hold more information. Customer names, object names, amounts, owners, times, and action links stay 400 weight and single-line; auxiliary content moves to separate columns, tooltip, right detail drawer, or row details.
65
+
66
+ Default body text, descriptions, table content, card descriptions, and unselected navigation stay 400. Module titles, table headers, buttons, selected navigation, and key numbers may use 500. Page titles or a small number of core headings use 600. Within one information group, usually emphasize only one primary text.
67
+
68
+ Avoid:
69
+
70
+ - `word-break: break-all` on regular text;
71
+ - Search input with fixed width compressing the title;
72
+ - Page-level search placed inside a content section, leaving the top-nav tool group without search;
73
+ - Select / DatePicker stretched across the whole row, splitting filters and Tabs;
74
+ - Buttons and tags compressed into character-by-character columns;
75
+ - Two-line table body cells or bold table body text;
76
+ - Titles, descriptions, tags, and numbers all bold, making hierarchy dirty;
77
+ - Fixed-height containers clipping text.
78
+ - Badges, dates, avatars, tabs, or action buttons overlapping titles and message content.
79
+
80
+ ## Icons And Media
81
+
82
+ Keep one icon style within the same group. Regular page UI icons use catalog `outlined`, preferably v2 when semantically suitable. Screenshot and Figma restoration preserve the source visual type: outlined, filled, or colorful. File lists, recent documents, attachment lists, document cards, and file directories can use File v2 colorful as a group. The same area / module must keep the same family, version, type, and shape and must not mix round and normal shapes.
83
+
84
+ Blue and other accent colors are only for primary actions, links, focus, current state, real status, and a small amount of brand identification. Do not use accent colors for ordinary card backgrounds, decorative lines, icon matrices, category tags, large KPI emphasis, or entries without state meaning.
85
+
86
+ Page UI does not use gradients. Backgrounds, Hero backing, cards, buttons, tags, icon backgrounds, borders, masks, and decorative blocks must not use gradients to create hierarchy.
87
+
88
+ Media needs responsibility and source. Gray boxes, random images, avatars with no source, and purely decorative geometry cannot serve as visual anchors. Generated imagery only creates the independent visual element inside the current media slot.
89
+
90
+ When Hero, welcome areas, recommended content, product entries, empty states, and workspace home pages carry first-glance explanation, first check the illustration library or record generated-image fallback. Pure outlined icons and text can leave the page without a visual anchor. If you decide not to use media, explain the reason in `media_decision`.
91
+
92
+ ## Contract Pattern
93
+
94
+ ```md
95
+ restoration_traps:
96
+ - trap: over-bordered cards
97
+ evidence: most modules have full borders
98
+ decision: keep key container and control boundaries; separate the rest with whitespace, titles, and light surfaces
99
+ - trap: compressed title
100
+ evidence: title area and search input do not have enough horizontal space
101
+ decision: from narrow width, wrap tools or stack title and tools
102
+ - trap: nested surfaces
103
+ evidence: gray backing with white cards, white cards with gray blocks, gray blocks with smaller cards
104
+ decision: keep only page base and content surface; separate the rest with titles, whitespace, row structure, and light dividers
105
+ - trap: retina scale mismatch
106
+ evidence: source only matches after 50% or 75% browser zoom
107
+ decision: write source_viewport_contract, infer DPR, and set browser preview to target CSS viewport
108
+ - trap: header collision
109
+ evidence: title, avatar, badge, metadata, tabs, or toolbar actions overlap
110
+ decision: reserve fixed slots, use min-width: 0 text containers, and ellipsis / wrapping boundaries
111
+ ```
112
+
113
+ Omit this field when no risk is matched.
@@ -0,0 +1,112 @@
1
+ # Token Semantics
2
+
3
+ Use token roles by meaning and avoid choosing by personal taste.
4
+
5
+ ## Color Roles
6
+
7
+ - `primary-fill-default` / `primary-fill-hover` / `primary-fill-pressed`: primary filled actions, selected controls, and direct blue-filled interaction states.
8
+ - `primary-content-default` / `primary-content-hover` / `primary-content-pressed`: blue text, linear icons, borders, and other small-area primary-color content states.
9
+ - `primary-on-primary-fill`: content on primary filled surfaces, especially primary button text and icons.
10
+ - `text-title`: high-emphasis titles, body text, primary labels, and button text that is not on a filled surface.
11
+ - `text-caption`: secondary text, metadata, descriptions, and table auxiliary content.
12
+ - `text-placeholder`: placeholders and low-emphasis hints.
13
+ - `text-link-normal` / `text-link-hover` / `text-link-pressed` / `text-link-disabled`: link states. Do not reuse primary fill tokens for links.
14
+ - `line-border-card`: card and table boundaries.
15
+ - `line-border-component`: interactive control boundaries, including input, checkbox, radio, and selector surfaces.
16
+ - `line-divider-default`: standard dividers.
17
+ - `bg-body`: default large page and workspace background and main content surface (body / app-root / main-workspace / main-content / right content area).
18
+ - `bg-base`: low-emphasis app shell or backing area behind the main work surface.
19
+ - `bg-content-base`: extra backing surface for especially deep hierarchy; do not use it as default page background.
20
+ - `bg-body-overlay`: secondary surface layered on `bg-body`, such as a nested content area.
21
+ - `bg-float` / `bg-float-base` / `bg-float-overlay`: popover, dropdown, dialog, drawer, menu, and nested floating surfaces.
22
+ - `side-nav-bg`: historical semantic name. In the current skill, the main side-navigation background is written directly as `#f9f9f9` and is not mapped to this token during implementation.
23
+ - `side-nav-item-hover` / `side-nav-item-selected` / `side-nav-item-selected-text`: historical semantic names. In the current skill, the main side-navigation current item background is written directly as `#1f23290d`, and current item text uses neutral body color plus 500 weight, not light-blue fill or brand-blue text by default.
24
+ - `aux-side-nav-item-hover` / `aux-side-nav-item-selected`: light hover and current fill for auxiliary sidebars under `top-nav-primary`.
25
+ - `side-nav-divider`: 0.5px divider for side-navigation groups or auxiliary sidebar boundaries.
26
+ - `fill-hover` / `fill-pressed`: neutral interaction fills for text buttons, icon buttons, and rows.
27
+ - `fill-active` / `fill-selected`: active and selected states.
28
+ - `fill-disabled`: disabled fill state.
29
+ - `function-danger-*`: only for destructive or failed states.
30
+ - `function-success-*`: only for success states.
31
+ - `function-warning-*`: only for warning states.
32
+ - `function-info-*`: only for information states.
33
+ - `icon-n1` / `icon-n2` / `icon-n3` / `icon-disabled`: icon hierarchy and disabled state.
34
+ - `static-black` / `static-white`: fixed colors that do not change between light and dark modes.
35
+
36
+ `DESIGN.md` embeds parsed P0 semantic color tokens as the offline baseline. When a confirmed component pattern needs loading variants, focus fills, functional content colors, or other specialized variants, query the versioned public semantic source with `node scripts/token-query.mjs --query "<token name or intent>"`. For palette-key auditing or non-P0 lookup, add `--source keys`. The helper verifies the pinned SHA-256 values declared in `DESIGN.md` before returning compact matches.
37
+
38
+ ## Surface System
39
+
40
+ - Explain responsibilities of page root, app shell, content container, real controls, floating layers, and status feedback in `surface_family`.
41
+ - Do not create hierarchy with heavy gray backgrounds, strong shadows, or multiple borders. Prefer tokens, spacing, titles, and component structure.
42
+ - Large pages and workspaces (body / app-root / main-workspace / main-content / right content area) default to white or nearly white `bg-body`; introduce `bg-base` or `bg-content-base` only when app-shell backing or deeper hierarchy requires it.
43
+ - One area usually keeps at most page base and content surface. Avoid gray backing with white cards, white cards with gray blocks, and gray blocks with smaller cards. Local grouping should prefer titles, whitespace, row structure, light dividers, hover, or selected state.
44
+
45
+ ## Typography Roles
46
+
47
+ - `title-0`: page-level identity and largest title.
48
+ - `title-1`: large page, block, or primary section title.
49
+ - `title-2` and `title-3`: content titles and secondary structure titles.
50
+ - `title-4`: group names, group titles, panel titles, and dialog titles.
51
+ - `title-5`: title-style tabs and sibling view labels.
52
+ - `headline`: emphasized information rows, button labels, active labels, compact strong text, and similar 14px medium-weight emphasis.
53
+ - `body-0`: default product reading text and information-flow body.
54
+ - `body-2`: auxiliary body and secondary explanation text.
55
+ - `caption-0`: compact emphasized labels and tags.
56
+ - `caption-1`: smallest emphasized auxiliary text.
57
+ - `caption-3`: smallest neutral auxiliary text.
58
+
59
+ Most Feishu product pages should use 12px, 14px, and 16px. Use 10px captions only on truly constrained auxiliary surfaces. Large type should be rare in operational pages.
60
+
61
+ Default body text, descriptions, table content, card descriptions, and unselected navigation use 400. Module titles, table headers, buttons, selected navigation, and key numbers may use 500. Page titles or very few core headings use 600. Within one information group, usually emphasize only one primary text. Do not make titles, descriptions, tags, and numbers all bold.
62
+
63
+ ## Radius Roles
64
+
65
+ - `radius.none` / 0: square surfaces and intentionally sharp areas.
66
+ - `radius.s` / 4px: small tags and checkbox-like compact controls.
67
+ - `radius.m` / 6px: default buttons and compact inputs.
68
+ - `radius.l` / 8px: cards, modals, input containers, and table containers.
69
+ - `radius.xl` / 10px: larger panels.
70
+ - `radius.xxl` / 12px: relaxed shells and larger selection surfaces.
71
+ - `radius.full` / 9999px: pills, badges, and circular icon buttons.
72
+
73
+ Do not mix content radius and container radius on the same element.
74
+
75
+ Page-level tasks should record radius division in `radius_family`. Controls, content containers, floating layers, and pills may use different roles, but the same local area should not contain too many radius scales.
76
+
77
+ ## Spacing Rhythm
78
+
79
+ Use 4 / 8 / 12 / 16 / 24 / 32 / 40 / 48px. Repeated areas should share one rhythm.
80
+
81
+ Typical use:
82
+
83
+ - 4px: icon-to-label and small inline spacing.
84
+ - 8px: compact controls and row internals.
85
+ - 12px: local binding, auxiliary descriptions, compact tag groups.
86
+ - 16px: title-to-content, same-group card grids, and standard section internals.
87
+ - 24px: card padding, same-type groups, and left-right columns.
88
+ - 40px: default vertical spacing between first-level content groups.
89
+ - 48px: more relaxed first-screen or onboarding sections.
90
+
91
+ ## Shadows
92
+
93
+ The raw token data retains historical and official elevation tokens for source tracing. When generating workspaces, CRM, portals, and sales dashboards, follow the current page rule in `DESIGN.md`: ordinary business surfaces do not use shadows; shadows are only for floating layers.
94
+
95
+ Shadows are only for floating surfaces and overlays. Most page grouping should be done with surfaces, borders, and spacing.
96
+
97
+ ## Review Traps
98
+
99
+ - Hard-coding one-off hex colors;
100
+ - Using arbitrary 13px, 15px, or 17px font sizes in product UI;
101
+ - Using any gradient background, Hero backing, button, card, tag, icon background, border, mask, or decorative block in page UI;
102
+ - Using strong shadows on cards;
103
+ - Using too many radius sizes in the same local area;
104
+ - Replacing surface hierarchy with heavy gray backgrounds, strong borders, or strong shadows;
105
+ - Lacking a clear surface and radius family on the same page;
106
+ - Using an obvious gray-block side navigation background or a light-blue default selected state;
107
+ - Using blue and other accent colors as ordinary decoration, icon matrices, category tags, or large KPI backgrounds;
108
+ - Using filled icons without source evidence or an explicit `source-filled` strategy, or replacing catalog icons with emoji, characters, hand-written SVG, or third-party icon libraries in page UI;
109
+ - Using colorful as ordinary decoration, or mixing icon family, v2 / non-v2 version, or File v2 colorful round / normal shapes in the same explicit area;
110
+ - Applying a fixed max width to the whole main workspace on workspaces, tables, boards, CRM, admin pages, or data pages;
111
+ - Making multiple text layers bold in the same list, table, card, or navigation group;
112
+ - Creating gray backing with white cards, white cards with gray blocks, or gray blocks with smaller cards.
@@ -0,0 +1,125 @@
1
+ # Visual Brief
2
+
3
+ Use this reference for page-level, full-page, highly visual tasks, or when the user asks for goals such as "Feishu style", "minimal and polished", "clean", or "large whitespace". It stabilizes visual direction and does not define fixed page templates.
4
+
5
+ ## Fields
6
+
7
+ ```md
8
+ visual_brief:
9
+ product_feel:
10
+ visual_mood:
11
+ composition_model:
12
+ density:
13
+ visual_anchor:
14
+ media_strategy:
15
+ polish_level:
16
+ anti_patterns:
17
+ ```
18
+
19
+ ## product_feel
20
+
21
+ Choose the visual baseline by product surface:
22
+
23
+ | Scene | product_feel |
24
+ | --- | --- |
25
+ | Approval, settings, admin, audit | quiet_enterprise_tool |
26
+ | Docs, calendar, IM, collaboration space | collaboration_surface |
27
+ | Workspace, portal, home page, launch page | calm_product_home |
28
+ | CRM, sales, data, reports | focused_data_workspace |
29
+ | AI assistant, smart generation, knowledge Q&A | restrained_ai_surface |
30
+ | Official site, solution center | polished_landing |
31
+
32
+ ## visual_mood
33
+
34
+ - `clean_precise`: default, clean, accurate, and restrained.
35
+ - `warm_welcoming`: suitable for workspaces, home pages, onboarding.
36
+ - `focused_dense`: suitable for tables, CRM, data, audit.
37
+ - `restrained_expressive`: only for small AI or official-site first-screen expression.
38
+
39
+ ## composition_model
40
+
41
+ Choose a composition that serves the primary task:
42
+
43
+ - `shell_plus_content`
44
+ - `shell_plus_content_plus_panel`
45
+ - `hero_plus_content_stack`
46
+ - `full_width_table`
47
+ - `card_grid`
48
+ - `detail_focus`
49
+ - `chat_plus_panel`
50
+ - `landing_hero_plus_sections`
51
+
52
+ Compositions can be mixed, but the primary visual anchor and reading order must be clear.
53
+
54
+ ## density
55
+
56
+ - `relaxed_enterprise`: default. Content groups use 40px spacing, and information presentation feels clean.
57
+ - `focused_table`: tables, logs, approvals, and data lists. Row internals can be compact while module spacing still stays 40px.
58
+ - `spacious_product_home`: welcome areas, home-page first screens, onboarding, with more relaxed content.
59
+
60
+ One page can mix density locally. Choose `relaxed_enterprise` by default. Data work areas may keep row-scanning efficiency, but page-level group spacing stays spacious and should not compress into a dense wall of cards.
61
+
62
+ When the user request only describes a direction, page name, or business type, first use the minimum first-pass content set: product identity, primary task, one main visual or primary task area, one main content area, necessary primary action, and a small set of samples. The first screen usually keeps 2–3 visible content groups. Table / list samples use 5–8 rows, card samples 3–4 items, and KPIs appear only when the primary task needs them, with 1–3 items. Do not proactively add multiple KPI groups, long lists, right-side insights, recent visits, or multi-level navigation.
63
+
64
+ A clean view is more important than full content. When the request is vague, obvious whitespace can remain at the bottom of the page and between modules. Expand later based on user feedback. The main content area, main-content, and right content area prefer a white or nearly white page base. Light gray is only for side navigation, low-emphasis shells, or local backing surfaces, not for backing the whole main workspace.
65
+
66
+ If the scene needs first-glance page intent, the main visual in the minimum content set can become `hero-card`. Suitable scenes include workspace, portal, home page, launch page, AI assistant, CRM / sales summary, data-insight entry, recommendation, and empty state. Table directories, settings, audits, approval details, member permissions, and strong operation forms default to no Hero.
67
+
68
+ Except for Hero, floating layers, navigation, and single detail cards, content sections use external headers. The header sits above the content container, and the border only wraps the real content below.
69
+
70
+ Page-level search goes by default at the leftmost position of the `top-nav` right tool group. Filters, Tabs, view switches, and local actions inside content sections align as one toolbar group. When space is tight, filters collapse into icon buttons or Dropdown / Popover.
71
+
72
+ When side navigation appears, use a near-white neutral background and avoid an obvious gray block. Selected state uses neutral fill and 500 text weight, not light-blue fill by default. Blue and other accent colors are only for primary actions, links, focus, current state, real status, and a small amount of brand identification. The first-screen accent-color budget usually contains only one primary filled button, one current state, and necessary real-status feedback. Avatars, icon backgrounds, entry cards, ordinary tags, KPI containers, and decorative areas prefer neutral or low-saturation schemes. Default body text, descriptions, table content, and card descriptions stay 400. Module titles, table headers, buttons, selected navigation, and key numbers may use 500. Page titles or very few core headings may use 600. One area usually keeps at most page base and content surface. Do not express hierarchy with multiple nested backgrounds.
73
+
74
+ Page UI does not use gradients. Backgrounds, Hero backing, cards, buttons, tags, icon backgrounds, borders, dividers, masks, and decorative blocks express hierarchy through whitespace, light borders, real state, and necessary media.
75
+
76
+ ## visual_anchor
77
+
78
+ The first glance should have one primary anchor:
79
+
80
+ - Workspace: welcome Hero, quick entries, recent content, or recommendation module;
81
+ - Data page: table, view switch, or key filter;
82
+ - CRM: key customers, follow-up list, stage pipeline, or key summary Hero;
83
+ - AI: input area, assistant identity Hero, or recommended questions;
84
+ - Official site: solution Hero, product UI image, solution entry, or single primary CTA.
85
+
86
+ Avoid multiple areas competing with equal visual strength.
87
+
88
+ ## media_strategy
89
+
90
+ Media appears by responsibility:
91
+
92
+ - Home pages, workspaces, recommendations, empty states, onboarding, and product entries can use illustrations, thumbnails, avatars, product images, or entry icons. When Hero, welcome areas, recommended content, product entries, and empty states carry first-glance explanation, plan a visual anchor by default.
93
+ - Dense data pages, settings pages, audit pages, and table-first flows can use no imagery. Use media only when explaining state, welcome, recommendation, or product entry.
94
+ - When illustration or visual assets are needed, first check the illustration library and record `library_lookup`, then check UD / product assets. If matching fails, generate an independent bitmap for the current media slot.
95
+ - Generated imagery must serve the current module theme, feel polished, minimal, and light, and may become a local visual focus. It must not be too heavy and must not generate a full page UI or complete dashboard.
96
+
97
+ ## polish_level
98
+
99
+ - `functional_prototype`: core interactions work and the visual is clear enough.
100
+ - `production_like`: default. States are complete, responsiveness and UD visuals are unified.
101
+ - `polished_product`: higher completion level, requiring polished media, hover, empty states, and breakpoints.
102
+
103
+ ## Anti-Patterns
104
+
105
+ - Heavy gray backgrounds, strong shadows, excessive borders;
106
+ - Gradients in page UI;
107
+ - Main content area / right content area using an obvious light-gray large background and then stacking white cards for hierarchy;
108
+ - Sidebars becoming obvious gray blocks, or selected state using light-blue fill / brand-blue text;
109
+ - Blue and accent colors used for ordinary decoration, icon matrices, category tags, KPIs, or large backgrounds;
110
+ - Multiple text layers bold in the same list, table, card, or navigation group;
111
+ - Gray backing with white cards, white cards with gray blocks, gray blocks with smaller cards;
112
+ - Spacing, column widths, and module left edges that do not follow the base grid;
113
+ - Marketing-style Hero in enterprise tools;
114
+ - Card-in-card layouts or a full-page wall of cards;
115
+ - Navigation items, entry cards, and list rows centered as a whole;
116
+ - Content sections without titles, or titles wrapped inside bordered content containers;
117
+ - Page-level search placed inside a content section, filters stretched full row, or filters and Tabs split into loose rows;
118
+ - Recognizable system controls hand-written as static `div` elements;
119
+ - Images without source and responsibility;
120
+ - Hero, welcome area, recommended content, product entry, or empty state carrying visual explanation but using only outlined icons or pure text, without planning illustration-library, product image, thumbnail, or generated-image fallback;
121
+ - Page UI icons using filled icons without source evidence or an explicit `source-filled` strategy, or using emoji, characters, hand-written SVG, or third-party icon libraries instead of catalog icons;
122
+ - colorful used as ordinary decoration, or an explicit icon area mixes family, v2 / non-v2 version, or File v2 colorful round / normal shapes;
123
+ - Ordinary entries, categories, KPIs, avatars, or decorative areas using high-saturation colors to distinguish business types;
124
+ - Vague requests proactively filling the whole page with content;
125
+ - Adding modules only because a case contains them.
@@ -0,0 +1,61 @@
1
+ # Visual Style Prompts
2
+
3
+ Use this reference when the user only says "Feishu style", "minimal and polished", "clean", "large whitespace", or when media assets need to be generated. It provides a unified style direction and does not define fixed page templates.
4
+
5
+ ## Default Style
6
+
7
+ ```md
8
+ visual_style_prompt:
9
+ feel: polished, minimal, clean, tidy, low-density, real Feishu product feel
10
+ surface: white or very light neutral surfaces; body / app-root / main-workspace / main-content / right content area should prefer bg-body; light gray is only for side navigation, low-emphasis shells, or local backing surfaces, avoiding heavy gray backgrounds and strong shadows
11
+ composition: clear app shell + stable content spine + a small number of responsible visual anchors
12
+ density: content groups default to 40px spacing; information feels clean; one card carries only a small amount of key content; use the minimum content set first when the request is vague
13
+ color: brand blue is used for primary actions, links, focus, current state, real status, and a small amount of brand identification; entries, avatars, icon backgrounds, KPIs, and ordinary tags prefer neutral or low-saturation colors; avoid multiple accent sources in the same viewport
14
+ noise: control accent colors, font weight, nested backgrounds, gradients, and random spacing; sidebars stay neutral and low-presence; keep the view clean first
15
+ shape: controls around 6px radius, content cards around 8px, pills only for tags, filters, and a small number of recommended questions
16
+ border: ordinary business surfaces use 0.5px light borders; reduce meaningless dividers
17
+ shadow: ordinary business surfaces have no shadows; shadows only for floating layers
18
+ imagery: when Hero, welcome areas, recommended content, product entries, empty states, and workspace home pages carry visual explanation, first plan illustrations, thumbnails, product images, or entry icons; check the illustration library before considering generated imagery
19
+ ```
20
+
21
+ ## Generated Image Style Fragment
22
+
23
+ When `media_plan` uses `generated_bitmap`, reuse only this style fragment. The specific visual content is decided by the current slot.
24
+
25
+ ```md
26
+ generated_media_style:
27
+ overall: Feishu / Lark enterprise product visual, advanced, minimal, light, refined, and directly related to the current module theme.
28
+ surface: white or very light neutral surface, fine boundaries, low noise.
29
+ color: small-area brand blue accents, optionally with low-saturation cyan, green, purple, or orange; avoid high-saturation clashes and multiple strong highlights.
30
+ scope: media_slot_asset_only
31
+ content: independent visual element, such as data visual, workflow thumbnail, light illustration, avatar, product image, important entry icon, empty-state graphic, or recommendation cover.
32
+ composition: clear subject, generous whitespace, adapted to target media-slot ratio; may become a local visual focus, but visual weight stays restrained.
33
+ avoid: heavy shadows, gradient backgrounds, gradient buttons, gradient borders, cyber look, marketing poster, complex background, toy-like cartoon feel, posed people photography, purely decorative abstract image, unreadable pseudo text, full page UI, complete dashboard, navigation bar, sidebar, table page, button/form combination, browser shell.
34
+ ```
35
+
36
+ Prompt assembly:
37
+
38
+ ```md
39
+ prompt_inputs:
40
+ page_topic:
41
+ module_context:
42
+ semantic_goal:
43
+ content_type: data-visual / product-preview / workflow-visual / empty-state / recommendation-cover / avatar / product-image / entry-icon / light-illustration
44
+ slot_ratio:
45
+ library_lookup:
46
+ generation_scope: media_slot_asset_only
47
+ style_direction: generated_media_style
48
+ negative_constraints: generated_media_style.avoid
49
+ ```
50
+
51
+ ## Low-Quality Result Corrections
52
+
53
+ - Reduce information stacking: keep concrete data, metadata, status, or entries in primary areas, but one card presents only a small amount of key content.
54
+ - Narrow content scope: when the request is vague, keep only product identity, primary task, one main content area, necessary primary action, and a small set of samples.
55
+ - Reduce visual noise: reduce unnecessary brand blue, functional colors, bold text, light-gray background nesting, gradients, and random spacing; avoid gray backing with white cards, white cards with gray blocks, all-blue icon matrices, and multiple bold text layers.
56
+ - Reduce boundary weight: reduce full frames and keep only key containers and real control boundaries.
57
+ - External section titles: except for Hero and overview cards, content section titles sit above bordered containers and use titles plus whitespace to express module hierarchy.
58
+ - Add a responsible visual anchor: choose an illustration, product image, or entry icon that matches module semantics.
59
+ - Improve entry hierarchy lightly: quick entries and lightweight recommendation entries may use low-opacity blue fills in icon containers. Cards in the same row take the height of that row's tallest card, avoiding uneven heights from different text line counts and large bottom whitespace from fixed heights.
60
+ - Unify system language: custom shell, navigation, cards, and UD-style controls share tokens, radius, states, and icon scale.
61
+ - Tighten scale: do not enlarge title, icon, card height, and row spacing all at the same time.