@pheem49/mint 1.9.0 → 1.10.0

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 (90) hide show
  1. package/Cargo.lock +55 -3
  2. package/Cargo.toml +2 -1
  3. package/Release_Note.md +285 -140
  4. package/bin/mint +0 -0
  5. package/crates/mint-cli/Cargo.toml +1 -0
  6. package/crates/mint-cli/src/actions.rs +233 -0
  7. package/crates/mint-cli/src/agent.rs +287 -43
  8. package/crates/mint-cli/src/gmail.rs +22 -2
  9. package/crates/mint-cli/src/interactive.rs +2888 -0
  10. package/crates/mint-cli/src/main.rs +336 -2854
  11. package/crates/mint-cli/src/markdown.rs +294 -0
  12. package/crates/mint-cli/src/onboard.rs +44 -1
  13. package/crates/mint-cli/src/updater.rs +48 -6
  14. package/crates/mint-core/Cargo.toml +1 -0
  15. package/crates/mint-core/src/agent_loop.rs +1 -0
  16. package/crates/mint-core/src/api_server.rs +376 -13
  17. package/crates/mint-core/src/browser.rs +629 -101
  18. package/crates/mint-core/src/channels.rs +105 -6
  19. package/crates/mint-core/src/chat.rs +52 -4
  20. package/crates/mint-core/src/code_tools.rs +29 -11
  21. package/crates/mint-core/src/config.rs +118 -0
  22. package/crates/mint-core/src/image_gen.rs +294 -33
  23. package/crates/mint-core/src/lib.rs +5 -2
  24. package/crates/mint-core/src/mcp.rs +119 -6
  25. package/crates/mint-core/src/orchestration.rs +133 -11
  26. package/crates/mint-core/src/pictures.rs +64 -1
  27. package/crates/mint-core/src/skills.rs +82 -6
  28. package/crates/mint-core/src/video_gen.rs +235 -0
  29. package/package.json +8 -2
  30. package/shared-modules/luajit/luajit.json +2 -2
  31. package/skills-lock.json +41 -0
  32. package/src/renderer/index-web.html +1 -1
  33. package/src/renderer/index.html +1 -1
  34. package/src/renderer/shared/constants/slashCommands.ts +27 -0
  35. package/src/renderer/shared/platform.ts +3 -0
  36. package/src/renderer/shared/types.ts +4 -0
  37. package/src/renderer/shared/utils/approval.tsx +86 -7
  38. package/src/renderer/shared/utils/markdown.tsx +217 -88
  39. package/src/renderer/shared/utils/slashCommandProcessor.ts +239 -0
  40. package/src/renderer/src/components/ChatPanel.tsx +461 -64
  41. package/src/renderer/src/components/DashboardSidebar.tsx +11 -2
  42. package/src/renderer/src/components/ImageStudioPanel.tsx +87 -4
  43. package/src/renderer/src/components/MintDashboard.tsx +150 -5
  44. package/src/renderer/src/components/PicturesLibrary.tsx +156 -15
  45. package/src/renderer/src/components/Settings/AutomationTab.tsx +316 -18
  46. package/src/renderer/src/components/Settings/GeneralTab.tsx +762 -634
  47. package/src/renderer/src/components/Settings/PluginsTab.tsx +304 -70
  48. package/src/renderer/src/components/Settings/ThemeTab.tsx +6 -1
  49. package/src/renderer/src/components/SettingsWindow.tsx +38 -2
  50. package/src/renderer/src/components/VeoStudioPanel.tsx +549 -0
  51. package/src/renderer/src/css/image-studio.css +106 -0
  52. package/src/renderer/src/css/settings.css +158 -0
  53. package/src/renderer/src/css/styles.css +352 -1
  54. package/src/renderer/src/css/veo-studio.css +626 -0
  55. package/src/renderer/src/index.css +1 -0
  56. package/src/renderer/src/tauri.ts +144 -17
  57. package/src/renderer/src-web/components/ChatPanel.tsx +360 -88
  58. package/src/renderer/src-web/components/DashboardSidebar.tsx +16 -1
  59. package/src/renderer/src-web/components/ImageStudioPanel.tsx +87 -4
  60. package/src/renderer/src-web/components/MintDashboard.tsx +137 -4
  61. package/src/renderer/src-web/components/PicturesLibrary.tsx +155 -15
  62. package/src/renderer/src-web/components/Settings/AutomationTab.tsx +316 -18
  63. package/src/renderer/src-web/components/Settings/GeneralTab.tsx +762 -629
  64. package/src/renderer/src-web/components/Settings/PluginsTab.tsx +304 -70
  65. package/src/renderer/src-web/components/Settings/ThemeTab.tsx +6 -1
  66. package/src/renderer/src-web/components/SettingsWindow.tsx +35 -2
  67. package/src/renderer/src-web/components/VeoStudioPanel.tsx +549 -0
  68. package/src/renderer/src-web/css/image-studio.css +106 -0
  69. package/src/renderer/src-web/css/settings.css +158 -0
  70. package/src/renderer/src-web/css/styles.css +353 -1
  71. package/src/renderer/src-web/css/veo-studio.css +650 -0
  72. package/src/renderer/src-web/index.css +1 -0
  73. package/src/renderer/src-web/tauri.ts +135 -16
  74. package/src-tauri/src/lib.rs +114 -8
  75. package/src-tauri/src/webhooks.rs +45 -31
  76. package/src-tauri/src/workflows.rs +1 -0
  77. package/src-tauri/tauri.conf.json +1 -1
  78. package/temp_gridgeist/AGENTS.md +8 -0
  79. package/temp_gridgeist/CHANGELOG.md +130 -0
  80. package/temp_gridgeist/LICENSE +21 -0
  81. package/temp_gridgeist/README.md +323 -0
  82. package/temp_gridgeist/README.th.md +325 -0
  83. package/temp_gridgeist/skills/gridgeist/SKILL.md +88 -0
  84. package/temp_gridgeist/skills/gridgeist/agents/openai.yaml +9 -0
  85. package/temp_gridgeist/skills/gridgeist/assets/gridgeist-small.svg +10 -0
  86. package/temp_gridgeist/skills/gridgeist/assets/gridgeist.png +0 -0
  87. package/temp_gridgeist/skills/gridgeist/assets/gridgeist.svg +18 -0
  88. package/temp_gridgeist/skills/gridgeist/references/design-language.md +88 -0
  89. package/temp_gridgeist/skills/gridgeist/references/review-checklist.md +128 -0
  90. package/temp_gridgeist/skills/gridgeist/references/system-contract.md +109 -0
@@ -0,0 +1,325 @@
1
+ <p align="center">
2
+ <img src="skills/gridgeist/assets/gridgeist.svg" alt="Gridgeist — Agent Skill สำหรับกำหนดทิศทาง Web Interface" width="240" />
3
+ </p>
4
+
5
+ # Gridgeist — คู่มือภาษาไทย
6
+
7
+ [English](README.md) · **ภาษาไทย** · [เว็บไซต์](https://ohmiler.github.io/gridgeist/th/) · [ตัวอย่าง](https://ohmiler.github.io/gridgeist/examples/)
8
+
9
+ Gridgeist คือ Agent Skill สำหรับสร้าง ปรับดีไซน์ และรีวิวหน้าเว็บที่มีระบบเฉพาะกับผลิตภัณฑ์ โดยปรับ Structure, Typography, Imagery, Interaction และหลักฐานจากผลิตภัณฑ์ให้เข้ากับแบรนด์ ใช้ Grid เป็นตรรกะที่มองเห็นได้ เบาบาง หรือซ่อนอยู่เบื้องหลัง ช่วยลดหน้าตาแบบ Generic AI SaaS โดยยังรักษาแบรนด์ ฟังก์ชัน Responsive behavior และ Accessibility
10
+
11
+ ## เห็นความต่างได้ทันที
12
+
13
+ ตัวอย่าง Northline Logistics นี้สร้างจากหน้า HTML/CSS แบบเต็มสองเวอร์ชัน โดยใช้ผลิตภัณฑ์ เนื้อหา ข้อมูลปฏิบัติการตัวอย่าง และขนาดหน้าจอชุดเดียวกัน หน้าและภาพ After ถูกสร้างใหม่ด้วย Workflow แบบเป็นระบบของ **Gridgeist v1.2.0** โดย Northline และข้อมูลทั้งหมดเป็นเรื่องสมมติ
14
+
15
+ <table>
16
+ <tr>
17
+ <th width='50%'>ไม่ใช้ Gridgeist - Generic SaaS</th>
18
+ <th width='50%'>ใช้ Gridgeist v1.2.0 - ระบบที่สะท้อนผลิตภัณฑ์</th>
19
+ </tr>
20
+ <tr>
21
+ <td><img src='docs/assets/northline-before.png' alt='หน้าเว็บ Northline Logistics แบบ Generic ที่ใช้ข้อความการตลาด กราฟ และการ์ดตัวเลขซึ่งพบได้ทั่วไป' width='100%' /></td>
22
+ <td><img src='docs/assets/northline-after.png' alt='ตัวอย่าง Northline ที่ใช้ Gridgeist v1.2.0 เป็นระบบปฏิบัติการเดียวกัน โดยมี topology ของเครือข่าย สถานะเที่ยวขนส่งเชิงความหมาย เวลาถึง และ priority exception' width='100%' /></td>
23
+ </tr>
24
+ </table>
25
+
26
+ เนื้อหาและข้อมูลปฏิบัติการตัวอย่างเหมือนเดิม แต่ใช้ระบบการออกแบบต่างกัน Gridgeist ทำให้ topology, ตารางเส้นทาง, exception, action และ metrics เชื่อมเป็นพื้นผิวปฏิบัติการเดียวที่สร้างจากหลักฐานของผลิตภัณฑ์ พร้อมระบุชัดว่าเป็น concept ภาพทั้งสองใน README เป็นภาพที่ capture จากหน้าเว็บจริง [เปิดหน้า Before](https://ohmiler.github.io/gridgeist/readme-showcase/?view=before) หรือ [เปิดหน้า After ของ v1.2.0](https://ohmiler.github.io/gridgeist/readme-showcase/?view=after&rev=ab77ceb6)
27
+
28
+ ## v1.2.0 เปลี่ยนอะไรบ้าง
29
+
30
+ Gridgeist มองการตัดสินใจด้านภาพเป็นระบบเดียว ไม่ใช่ชุดการตกแต่งที่แยกจากกันทีละส่วน
31
+
32
+ | ด้าน | พฤติกรรมใน v1.2.0 |
33
+ | --- | --- |
34
+ | System contract | กำหนดสี Typography, Layout, Spacing, Shape, Components, States, Media และ Motion เป็นทิศทางย่อชุดเดียวก่อนลงมือ |
35
+ | Semantic roles | เชื่อม Foundation tokens ไปยัง Semantic roles และการตัดสินใจระดับ Component ทำให้ Contrast และความสัมพันธ์ของสถานะมีเจตนาชัดเจน |
36
+ | Component grammar | กำหนด Anatomy, Variants, Density, States และกติกาเมื่อเนื้อหายาวให้ Component ที่เกี่ยวข้อง แทนการแต่งแต่ละจุดแยกกัน |
37
+ | Direction safety | เมื่อแนวคิดภาพยังกว้าง จะเสนอทิศทางที่ต่างกันอย่างชัดเจนและรอให้เลือกก่อนกำหนด Tokens หรือแก้ Interface |
38
+ | Skill coordination | ระบุผู้รับผิดชอบทิศทางเพียงหนึ่งตัวเมื่อใช้หลาย UI Skills เพื่อไม่ให้เกิดระบบภาพที่แข่งขันกัน |
39
+ | Verification | ตรวจหลายความกว้าง, Overflow, Focus, Interaction states, Themes และ Reduced motion พร้อมจำกัดคำกล่าวอ้างตามหลักฐานที่สังเกตได้ |
40
+
41
+ ผลลัพธ์คือ Interface ที่เป็นเนื้อเดียวกันมากขึ้น ดู Generic น้อยลง และต่อยอดได้ง่ายโดยไม่ทำให้เอกลักษณ์ผลิตภัณฑ์หายไป การทดสอบ v1.2.0 ครอบคลุม System-contract scenarios ภาษาอังกฤษ 3 รอบและภาษาไทย 3 รอบ, การตรวจ Responsive ด้วย Browser แบบอิสระ และ Guardrail tests ที่ซ่อมแล้ว
42
+
43
+ ## เริ่มใช้ใน 60 วินาที
44
+
45
+ 1. ติดตั้ง Gridgeist ผ่านช่องทางหลักของ Agent ที่ใช้งาน
46
+
47
+ สำหรับ Codex ให้เพิ่ม Git Marketplace แล้วติดตั้ง Plugin:
48
+
49
+ ```powershell
50
+ codex plugin marketplace add ohmiler/gridgeist
51
+ codex plugin add gridgeist@gridgeist
52
+ ```
53
+
54
+ สำหรับ Claude Code, Cursor, Gemini CLI, GitHub Copilot, OpenCode และ Agent อื่นที่รองรับ ให้ใช้ตัวติดตั้งแบบ Universal:
55
+
56
+ ```powershell
57
+ npx skills add ohmiler/gridgeist -g
58
+ ```
59
+
60
+ **วิธีสำรอง:** หากใช้ตัวติดตั้งทั้งสองแบบไม่ได้ ให้ไปที่ [ติดตั้งด้วยตนเอง](#ติดตั้งด้วยตนเอง)
61
+ 2. เปิด Agent session ใหม่ในโปรเจกต์เว็บของคุณ แล้ววาง Prompt นี้:
62
+
63
+ ```text
64
+ ใช้ Skill Gridgeist รีวิว Interface นี้โดยยังไม่ต้องแก้โค้ด
65
+ สรุปคำตัดสินหนึ่งบรรทัด ตามด้วยปัญหาที่เรียงตามความสำคัญพร้อมหลักฐาน
66
+ และเสนอทิศทาง Redesign ที่สอดคล้องกันหนึ่งทิศทาง โดยรักษาฟังก์ชันและแบรนด์เดิม
67
+ ```
68
+
69
+ Agent ที่รองรับการเรียก Skill แบบตรงตัวสามารถใช้ `$gridgeist` ใน Prompt ได้ ดูรายละเอียดเฉพาะผลิตภัณฑ์และตัวอย่างเพิ่มเติมที่ [การติดตั้ง](#การติดตั้ง)
70
+
71
+ ## เหมาะกับงานแบบไหน
72
+
73
+ - Landing page, Dashboard, Documentation, Portfolio และ Learning platform
74
+ - ปรับดีไซน์หน้าเว็บเดิมโดยไม่ทำให้ฟังก์ชันหรือแบรนด์เสีย
75
+ - รีวิว Draft และจัดลำดับปัญหาด้าน Hierarchy, Composition, Responsive และ Accessibility
76
+ - งานที่ต้องการทิศทางแบบ Technical, Editorial, Image-led, Playful, Utilitarian หรือ Visible grid โดยไม่ทำให้เอกลักษณ์แบรนด์หายไป
77
+
78
+ ## การติดตั้ง
79
+
80
+ ### Codex Plugin
81
+
82
+ Repository นี้เตรียมเป็น Codex Plugin ผ่าน [`.codex-plugin/plugin.json`](.codex-plugin/plugin.json) โดย Plugin ชี้ไปยังโฟลเดอร์ `skills/gridgeist/` ชุดเดียวกับช่องทางอื่น ทำให้ทุกวิธีติดตั้งใช้แหล่งข้อมูลเดียวกัน
83
+
84
+ เพิ่ม Gridgeist Marketplace แล้วติดตั้ง Plugin ด้วยคำสั่ง:
85
+
86
+ ```powershell
87
+ codex plugin marketplace add ohmiler/gridgeist
88
+ codex plugin add gridgeist@gridgeist
89
+ ```
90
+
91
+ หลังติดตั้งให้เปิด Codex session ใหม่ เพื่อให้ระบบตรวจพบ Skill ที่อยู่ใน Plugin
92
+
93
+ ### ตัวติดตั้งแบบ Universal
94
+
95
+ สำหรับ Claude Code, Cursor, Gemini CLI, GitHub Copilot, OpenCode และ Agent อื่นที่รองรับ ใช้ [open agent skills CLI](https://github.com/vercel-labs/skills) ติดตั้ง Gridgeist ได้ด้วยคำสั่งเดียว:
96
+
97
+ ```powershell
98
+ npx skills add ohmiler/gridgeist -g
99
+ ```
100
+
101
+ ตัวติดตั้งจะค้นพบ `skills/gridgeist/` และให้เลือก Agent เป้าหมาย หากต้องการระบุ Agent โดยตรง ให้ส่งชื่อ Agent เช่น:
102
+
103
+ ```powershell
104
+ npx skills add ohmiler/gridgeist -g -a claude-code
105
+ ```
106
+
107
+ ### ติดตั้งด้วยตนเอง
108
+
109
+ ใช้การคัดลอกด้วยตนเองเมื่อไม่สามารถใช้ Plugin หรือตัวติดตั้งแบบ Universal ได้:
110
+
111
+ ```powershell
112
+ git clone https://github.com/ohmiler/gridgeist.git
113
+ Copy-Item -Recurse .\gridgeist\skills\gridgeist "$HOME\.agents\skills\gridgeist"
114
+ ```
115
+
116
+ สำหรับ Agent อื่น ให้คัดลอก `skills/gridgeist/` ไปยัง Skills directory ของผลิตภัณฑ์นั้น Agent ต้องรองรับมาตรฐาน Agent Skills `SKILL.md` และการตรวจพบหรือวิธีเรียกใช้อาจแตกต่างกัน หลังคัดลอกแล้วให้เปิด Agent session ใหม่
117
+
118
+ ## การอัปเดต
119
+
120
+ Gridgeist จะไม่อัปเดตแบบเงียบในเบื้องหลัง ให้ใช้คำสั่งตามช่องทางที่ติดตั้ง แล้วเริ่ม Agent session ใหม่
121
+
122
+ ### Codex Plugin
123
+
124
+ ดึง Git-backed marketplace snapshot ล่าสุด แล้วติดตั้ง Plugin version ที่ Release นั้นประกาศอีกครั้ง:
125
+
126
+ ```powershell
127
+ codex plugin marketplace upgrade gridgeist
128
+ codex plugin add gridgeist@gridgeist
129
+ ```
130
+
131
+ ตรวจเวอร์ชันที่ติดตั้งด้วย `codex plugin list` หาก Session ปัจจุบันยังใช้คำสั่งเดิม ให้เปิด Thread ใหม่หรือ Restart Codex app
132
+
133
+ ### Universal installer
134
+
135
+ อัปเดต Gridgeist ที่ติดตั้งระดับผู้ใช้:
136
+
137
+ ```powershell
138
+ npx skills update gridgeist -g -y
139
+ ```
140
+
141
+ หากติดตั้งระดับโปรเจกต์ ให้ใช้ `npx skills update gridgeist -p -y`
142
+
143
+ ### Git clone หรือคัดลอกเอง
144
+
145
+ รัน `git pull --ff-only` ใน Repository ที่ Clone ไว้ แล้วติดตั้งจาก `skills/gridgeist/` อีกครั้ง การคัดลอกเองไม่มีข้อมูล Source หรือ Version จึงต้องแทนที่โฟลเดอร์ Skill ทั้งชุดจาก Release tag แนะนำให้ใช้ Codex Plugin หรือ Universal installer หากต้องการอัปเดตในอนาคต
146
+
147
+ ## วิธีเรียกใช้
148
+
149
+ เรียกใช้โดยตรงด้วย `$gridgeist` แล้วระบุ 4 อย่าง:
150
+
151
+ 1. ผลิตภัณฑ์และกลุ่มผู้ใช้
152
+ 2. งานที่ต้องการ: สร้างใหม่ ปรับดีไซน์ หรือรีวิว
153
+ 3. สิ่งที่ต้องรักษา เช่น ฟังก์ชัน สีแบรนด์ หรือเนื้อหา
154
+ 4. สิ่งที่ต้องตรวจ เช่น Desktop, Mobile, Keyboard และ Accessibility
155
+
156
+ ### Create — สร้างหน้าใหม่
157
+
158
+ ```text
159
+ ใช้ $gridgeist ออกแบบ Landing Page สำหรับแพลตฟอร์มเรียน SQL
160
+ ให้บทเรียน Query editor และผลลัพธ์เป็นส่วนสำคัญของงานภาพ
161
+ หลีกเลี่ยงการ์ด SaaS แบบทั่วไป และตรวจทั้ง Desktop กับ Mobile
162
+ ```
163
+
164
+ ### Redesign — ปรับดีไซน์เดิม
165
+
166
+ ```text
167
+ ใช้ $gridgeist ปรับดีไซน์ Dashboard นี้ใหม่
168
+ รักษาฟังก์ชัน เส้นทาง เนื้อหา และสีแบรนด์เดิมทั้งหมด
169
+ จัดลำดับข้อมูลตามความสำคัญ และอย่าแก้เพียงแค่ลดความโค้งของการ์ด
170
+ ```
171
+
172
+ ### Review — รีวิวโดยยังไม่แก้โค้ด
173
+
174
+ ```text
175
+ รีวิวหน้าเว็บนี้ด้วย $gridgeist โดยยังไม่ต้องแก้โค้ด
176
+ สรุปคำตัดสินหนึ่งบรรทัด ตามด้วยปัญหาที่เรียงตามความสำคัญ
177
+ หลักฐาน และทิศทางใหม่ที่สอดคล้องกัน
178
+ ```
179
+
180
+ ### บรีฟอย่างไรให้ผลลัพธ์ตรงใจ
181
+
182
+ หากต้องการผลลัพธ์ที่แม่นขึ้น ให้ระบุรายละเอียดเหล่านี้เท่าที่เกี่ยวข้อง:
183
+
184
+ - **ผลิตภัณฑ์และผู้ใช้** — เว็บทำอะไรและใครเป็นคนใช้
185
+ - **Primary task** — สิ่งสำคัญที่สุดที่ผู้ใช้ต้องทำให้สำเร็จ
186
+ - **ทิศทางภาพ** — บุคลิกที่ต้องการ เช่น Warm editorial, Precise technical หรือ
187
+ Playful tactile
188
+ - **ของจริงจากผลิตภัณฑ์** — Product UI, ข้อมูล, เนื้อหา, ภาพ, Artwork, Code หรือ
189
+ Workflow ที่ควรเป็นพระเอก
190
+ - **สิ่งที่ต้องรักษา** — แบรนด์ เนื้อหา Route พฤติกรรม Component ความเป็นส่วนตัว
191
+ หรือข้อจำกัดของ Platform
192
+ - **สิ่งที่ไม่ต้องการ** — ภาษาภาพหรือพฤติกรรมที่ไม่เหมาะกับผลิตภัณฑ์
193
+ - **Flow และสถานะ** — Default, Loading, Empty, Error, Success, Disabled และ
194
+ Destructive ที่สำคัญ
195
+ - **การตรวจผล** — Viewport, Keyboard, Touch, Focus, Overflow, Reduced motion และ
196
+ Primary flow ที่ต้องทดสอบ
197
+
198
+ หากทิศทางชัดแล้ว ให้บอกทิศทางนั้นและให้ Gridgeist ทำต่อโดยไม่ต้องถามรสนิยมซ้ำ
199
+ หากยังมีหลายทิศทางที่เป็นไปได้จริง ให้สั่ง Gridgeist ตรวจของเดิมก่อน เสนอ 2–3
200
+ ทิศทางพร้อมข้อแลกเปลี่ยนและคำแนะนำ แล้วรอให้เลือกก่อนแก้โค้ด
201
+
202
+ คัดลอก Template นี้ไปปรับใช้ได้เลย:
203
+
204
+ ```text
205
+ ใช้ $gridgeist เพื่อ [สร้างใหม่ / ปรับดีไซน์ / รีวิว] [หน้าเว็บหรือผลิตภัณฑ์]
206
+
207
+ ผลิตภัณฑ์และผู้ใช้:
208
+ [เว็บทำอะไรและใครเป็นคนใช้]
209
+
210
+ Primary task:
211
+ [ผลลัพธ์สำคัญที่สุดที่ผู้ใช้ต้องทำให้สำเร็จ]
212
+
213
+ ทิศทางภาพ:
214
+ [ทิศทางที่ยืนยันแล้ว หรือ: ตรวจของเดิมก่อน เสนอ 2–3 ทิศทางพร้อมข้อแลกเปลี่ยน
215
+ และคำแนะนำ และยังไม่ต้องแก้โค้ดจนกว่าผมจะเลือก]
216
+
217
+ สิ่งที่ควรเป็นพระเอก:
218
+ [Product UI / ข้อมูล / เนื้อหา / ภาพ / Artwork / Code / Workflow]
219
+
220
+ ต้องรักษา:
221
+ [แบรนด์ เนื้อหา Route พฤติกรรม Component และข้อจำกัด]
222
+
223
+ ไม่ต้องการ:
224
+ [ภาษาภาพหรือพฤติกรรมที่ไม่เหมาะ]
225
+
226
+ Flow และสถานะสำคัญ:
227
+ [Primary flow และ Default/Loading/Empty/Error/Success/Disabled ที่เกี่ยวข้อง]
228
+
229
+ ให้ตรวจ:
230
+ [Viewport, Keyboard, Touch, Focus, Overflow, Reduced motion และ Primary flow]
231
+
232
+ ตรวจ Repository และหน้าเว็บที่ Render จริงก่อนเริ่มทำงาน
233
+ ```
234
+
235
+ ควรบอกผลลัพธ์และข้อจำกัดที่มีเหตุผล แทนการสั่ง CSS ทีละค่า หากไม่ได้เป็นข้อกำหนด
236
+ ของแบรนด์ ให้ Gridgeist กำหนดขนาดตัวอักษร Spacing, Radius, Shadow และจำนวนคอลัมน์
237
+ เป็นระบบเดียวกันจากผลิตภัณฑ์และทิศทางที่เลือก
238
+
239
+ หากโปรเจกต์มี `DESIGN.md`, Theme, Token set หรือ Component library อยู่แล้ว
240
+ Gridgeist จะตรวจสิ่งเหล่านี้ร่วมกับ Implementation และ Interface ที่ Render จริง
241
+ แทนการสมมติว่าทุกแหล่งสอดคล้องกัน `DESIGN.md` เป็นช่องทางเชื่อมต่อแบบเลือกใช้
242
+ ไม่ใช่ Dependency โดย Gridgeist ไม่ควรสร้างหรือแก้ไฟล์นี้ เว้นแต่คุณขอ
243
+ Design-system artifact ที่นำไปใช้ต่อได้ หรือระบุให้งานรวมเอกสารระบบที่ต้องเก็บถาวร
244
+ อย่างชัดเจน
245
+
246
+ ## ใช้ร่วมกับ Skill อื่น
247
+
248
+ Gridgeist ทำงานได้ดีที่สุดเมื่อเป็นผู้กำหนดทิศทางผลิตภัณฑ์และงานภาพเพียง Skill เดียว ส่วน Skill อื่นควรเข้ามาเสริมเฉพาะการส่ง Context การตรวจเชิงเทคนิค หรือการยืนยันผลจากหน้าเว็บที่ Render แล้ว สำหรับโปรเจกต์ส่วนใหญ่ แนะนำ workflow ที่เบาที่สุดดังนี้:
249
+
250
+ ```text
251
+ Gridgeist -> Playwright
252
+ ```
253
+
254
+ Gridgeist กำหนด Interface thesis, ลำดับชั้น, ระบบภาพ และทิศทางการ Implement จากนั้น Playwright ตรวจผลที่ Render จริงในขนาดหน้าจอและ Interaction ที่สำคัญ รวมถึงทำ [Visual comparison](https://playwright.dev/docs/test-snapshots) แบบทำซ้ำได้
255
+
256
+ | ลักษณะงาน | Workflow ที่แนะนำ | การแบ่งหน้าที่ |
257
+ | --- | --- | --- |
258
+ | โปรเจกต์เว็บทั่วไป | `Gridgeist -> Playwright` | ออกแบบและ Implement แล้วตรวจผลที่ Render จริง |
259
+ | ใช้ Figma เป็น Source of truth | `Figma -> Gridgeist -> Playwright` | ดึง Component, Variable และ Layout context; ปรับให้เข้ากับผลิตภัณฑ์และ Codebase; แล้วตรวจผล ดูรายละเอียดที่ [Figma MCP server](https://developers.figma.com/docs/figma-mcp-server/) |
260
+ | React หรือ Next.js | `Gridgeist -> Vercel React Best Practices -> Playwright` | กำหนดทิศทาง Interface; ตรวจ Performance ตาม Framework; แล้วยืนยัน Behavior ดู [Vercel Agent Skills](https://github.com/vercel-labs/agent-skills) |
261
+ | ตรวจคุณภาพก่อน Release | `Gridgeist -> Web Quality Audit -> Playwright` | ตรวจลำดับชั้นและความเข้ากับแบรนด์; Audit ด้าน Accessibility, Performance, SEO และ Web quality; แล้วยืนยันหน้าเว็บจริง ดู [Web Quality Skills](https://github.com/addyosmani/web-quality-skills) |
262
+ | ต้องสร้างภาพต้นฉบับใหม่ | `Gridgeist -> สร้างภาพ -> Gridgeist -> Playwright` | กำหนด Thesis ก่อนสร้าง Asset; นำภาพที่เลือกมาจัดองค์ประกอบ; แล้วตรวจ Interface |
263
+
264
+ ทั้งหมดนี้เป็น workflow เสริม ไม่ใช่ Dependency ให้เพิ่มเฉพาะ Skill ที่ตอบโจทย์จริง และไม่ควรใช้ Frontend-design หรือ Art-direction skill แบบกว้างอีกตัวในช่วงออกแบบเดียวกัน เพราะทิศทางภาพที่แข่งขันกันอาจทำให้ผลลัพธ์ไม่เป็นระบบ ชื่อและความพร้อมใช้งานของ Skill เสริมอาจต่างกันในแต่ละ Agent
265
+
266
+ ตัวอย่าง:
267
+
268
+ ```text
269
+ ใช้ $gridgeist ปรับดีไซน์ Interface นี้โดยรักษาพฤติกรรมและแบรนด์เดิม
270
+ หลัง Implement ให้ใช้ Playwright ตรวจ Desktop และ Mobile viewport ที่สำคัญ
271
+ การใช้งานด้วย Keyboard, Overflow และ Primary user flow
272
+ ```
273
+
274
+ ## ทำอย่างไรให้ผลลัพธ์ดีขึ้น
275
+
276
+ - ให้ Agent ดู Repository และหน้าเว็บที่ Render แล้ว ไม่ใช่แค่คำอธิบาย
277
+ - ระบุพฤติกรรมที่ห้ามเปลี่ยนเมื่อทำ Redesign
278
+ - ใช้เนื้อหา ข้อมูล โค้ด หรือ Workflow ของผลิตภัณฑ์จริง
279
+ - ให้ตรวจหลาย Viewport และสถานะ Interaction
280
+ - บอกแบรนด์ที่ต้องรักษา เพื่อไม่ให้ Swiss aesthetic กลายเป็น Preset
281
+
282
+ ## กรณีศึกษา
283
+
284
+ [Tracefield](https://ohmiler.github.io/tracefield/) คือ Developer Observability Dashboard ที่ใช้ Gridgeist กับโปรเจกต์จริง โดย [Repository](https://github.com/ohmiler/tracefield) เก็บ Baseline, Prompt ที่ใช้, Rubric ประเมินผล, ชุดทดสอบ และ Final interface ไว้ให้ตรวจสอบได้
285
+
286
+ [Ledgerline](https://ohmiler.github.io/ledgerline/) ทดสอบ Skill เดียวกันกับเว็บไซต์เอกสาร Payment API ที่มีเนื้อหาหนาแน่น โดย [Repository](https://github.com/ohmiler/ledgerline) เก็บ Baseline, Prompt แบบตรงตัว, Rubric 6 ด้าน, เนื้อหา API ที่กำหนดตายตัว, การตรวจ 4 ขนาดหน้าจอ และ Final interface ไว้ครบ
287
+
288
+ [Morrow](https://ohmiler.github.io/morrow-portfolio/) ทดสอบการปรับตัวตามแบรนด์ด้วย Creative Portfolio แบบ Image-led ที่เป็น Fictional โดย [Repository](https://github.com/ohmiler/morrow-portfolio) เก็บภาพ AI-generated ชุดเดียวกัน, Baseline, Prompt แบบตรงตัว, Rubric 6 ด้าน, การตรวจ 4 ขนาดหน้าจอ และ Final interface ที่ตั้งใจไม่ใช้ภาษาภาพแบบ Technical ของกรณีศึกษาก่อนหน้า
289
+
290
+ [Doodlewood](https://ohmiler.github.io/doodlewood/) ทดสอบ Playful interaction design ด้วยสตูดิโอวาดรูปสำหรับเด็กแบบ Fictional ที่รักษาความเป็นส่วนตัว โดย [Repository](https://github.com/ohmiler/doodlewood) เก็บ Baseline, Prompt แบบตรงตัว, Rubric 6 ด้าน, Drawing engine ที่ทำงานในเครื่อง, การตรวจ 4 ขนาดหน้าจอ และข้อจำกัดด้านความปลอดภัยของเด็กกับหลักฐานจากผู้ใช้จริงไว้อย่างชัดเจน
291
+
292
+ กรณีศึกษาที่ทีมสร้างเองทั้ง 4 ตัวจึงครอบคลุมพื้นผิวแบบ Data-heavy, Content-heavy, Image-led และ Playful interactive แล้ว ขั้นต่อไปควรเน้นการตรวจจากผู้ใช้ Agent และโปรเจกต์ภายนอก มากกว่าการเพิ่มหมวดภาพที่ทีมสร้างเองอีก
293
+
294
+ ## ข้อจำกัด
295
+
296
+ - Gridgeist ให้ทิศทางและกระบวนการ แต่คุณภาพยังขึ้นกับ Context ที่ Agent ได้รับ
297
+ - Automated checks ไม่สามารถแทนการตรวจหน้าเว็บจริงได้
298
+ - ค่าเริ่มต้นด้าน Grid, Type และสีเป็นเพียงจุดเริ่มต้น ไม่ใช่กฎตายตัว
299
+ - ผลลัพธ์จากโมเดลไม่แน่นอน ควรทดสอบซ้ำเมื่อเปลี่ยน Agent หรือแก้ Skill
300
+
301
+ ## การทดสอบ
302
+
303
+ ชุด Prompt และเกณฑ์ประเมินภาษาไทยอยู่ที่ [`evals/prompts.th.md`](evals/prompts.th.md) ส่วนชุดภาษาอังกฤษอยู่ที่ [`evals/prompts.md`](evals/prompts.md)
304
+
305
+ ตรวจโครงสร้าง Skill ที่ติดตั้งได้ โดยบังคับ Python ให้อ่าน UTF-8:
306
+
307
+ ```powershell
308
+ python -X utf8 "$HOME\.codex\skills\.system\skill-creator\scripts\quick_validate.py" .\skills\gridgeist
309
+ ```
310
+
311
+ ตรวจ Release metadata และเอกสารสองภาษาโดยไม่ต้องใช้ Dependency ภายนอก:
312
+
313
+ ```powershell
314
+ python -X utf8 .\scripts\validate_release.py
315
+ ```
316
+
317
+ ทดสอบ Clean install และ Update ผ่าน Codex Marketplace กับตัวติดตั้งแบบ Universal จริง คำสั่งนี้ต้องใช้ Codex, Node.js, npm, Git และ Network โดยจะใช้ Home ชั่วคราวและไม่แก้การติดตั้งเดิมของคุณ:
318
+
319
+ ```powershell
320
+ python -X utf8 .\scripts\smoke_test_install.py
321
+ ```
322
+
323
+ ## License
324
+
325
+ [MIT](LICENSE)
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: gridgeist
3
+ description: Use when creating, redesigning, or reviewing web interfaces that need product-specific structure, clear hierarchy, responsive composition, accessible interaction, or relief from generic AI-generated SaaS aesthetics. Adapt grid, typography, imagery, motion, and product evidence to the established brand—including technical, editorial, image-led, warm, playful, and utilitarian directions—across React, Next.js, Tailwind CSS, HTML/CSS, landing pages, dashboards, documentation, portfolios, and interactive tools.
4
+ ---
5
+
6
+ # Gridgeist
7
+
8
+ ## Overview
9
+
10
+ Craft distinctive, product-native interfaces from audience, content, behavior, and brand intent. Use grid as structural logic; make it visible only when it serves the product.
11
+
12
+ ## Select a mode
13
+
14
+ | Intent and authorization | Mode | Start with |
15
+ |---|---|---|
16
+ | Build an interface without an existing design | Create | Audience, primary task, content, and evidence |
17
+ | Change an existing interface with permission to edit | Redesign | Preserved behavior, brand signals, and state inventory |
18
+ | Diagnose without changing files | Review | Prioritized findings grounded in rendered evidence |
19
+
20
+ Let user authorization determine whether files change. Permission to redesign does not authorize choosing among materially different visual theses. Derive direction from explicit user intent or established brand evidence; audience, task, product category, and content may inform hierarchy but do not alone confirm a visual thesis. Use the alignment gate below whenever thesis-level ambiguity remains.
21
+
22
+ ## Workflow
23
+
24
+ 1. **Inspect** — Understand the audience, primary tasks, brand signals, content, product evidence, routes, components, tokens, and rendered desktop/mobile UI. Inspect existing design-system sources, including `DESIGN.md` when present, and reconcile them with the implementation and rendered evidence rather than assuming they agree. Inventory important interaction states and constraints. Do not invent customers, metrics, outcomes, research, or compliance.
25
+ - **Align direction before editing** — Classify the direction as **user-confirmed**, **brand-derived**, or **provisional**. Treat a coherent user direction as confirmed even when it leaves implementation choices open; variations within the same thesis are not material ambiguity. Classify a direction as brand-derived only when existing visual implementation, assets, documented rules, or repeated brand conventions converge on one thesis; product subject matter or copy alone is not enough. When a broad Create or Redesign still supports materially different theses that would change core brand expression, hierarchy, imagery, color, or motion, offer two or three evidence-grounded directions with trade-offs and a recommendation, then ask the user to choose or authorize the recommendation. While the direction is provisional, do not define the replacement system or edit implementation files. Proceed without redundant questions when intent or coherent brand evidence is clear. Do not block Review or narrow repairs; label an unconfirmed Review replacement direction provisional.
26
+ - **Hard stop for provisional broad work** — A provisional direction is not an implementable direction. End the turn after the options, trade-offs, recommendation, and alignment question. Do not set a thesis, read the system contract, create tokens, edit files, start implementation, or verify a redesign until the user selects a direction or explicitly authorizes the recommendation.
27
+ 2. **Set a thesis** — Write one governing sentence combining audience, primary task, structural logic, brand expression, and a product-native motif. Read [design-language.md](references/design-language.md) before choosing the direction, especially for image-led, warm, playful, or otherwise nontechnical brands.
28
+ 3. **Define the system** — Read [system-contract.md](references/system-contract.md) before making new or changed system decisions. Establish the relevant color, typography, layout, spacing, shape, surface, component, state, media, motion, and responsive rules as one compact contract. Decide whether the grid should be visible, quiet, or invisible. Reuse semantic tokens and existing primitives; keep narrow repairs proportional and do not create a persistent design artifact unless authorized.
29
+ 4. **Compose** — Build hierarchy before detail. Make one area dominant, align related content, vary sections within shared logic, and let the most authentic material—product UI, data, prose, imagery, artwork, code, or the primary tool—carry visual weight.
30
+ 5. **Implement** — Preserve required behavior and states. Follow repository conventions, semantic HTML, keyboard and touch behavior, and existing primitives. Recompose mobile layouts rather than shrinking desktop. Avoid dependencies for simple CSS effects.
31
+ 6. **Verify** — Use [review-checklist.md](references/review-checklist.md). Render representative widths and exercise primary flows, states, focus behavior, reduced motion, overflow, and dynamic content. Fix clarity and hierarchy before polish. Report what was observed separately from what remains inferred or untested.
32
+
33
+ For interactive products, inventory at least default, loading, empty, error, success, disabled, and destructive states when applicable. Preserve privacy, safety, data, and platform constraints as product behavior, not optional polish.
34
+
35
+ ## Coordinate companions
36
+
37
+ - Keep Gridgeist as the sole owner of product and visual direction. Do not automatically combine it with another broad frontend-design or art-direction skill. If the user explicitly requests both, establish one direction owner before editing instead of silently blending their defaults.
38
+ - **Explicit overlap gate** — When the user requests Gridgeist plus another broad visual-design skill, state the overlap and recommend one direction owner before selecting a thesis or editing; use Gridgeist by default for product-native, brand-adaptive work. Do not silently ignore the requested companion or run both visual theses. After ownership is clear, use only non-conflicting implementation or verification help from the other skill unless the user chooses it as owner.
39
+ - Use context capabilities during Inspect, asset generation after the thesis, technical audits after implementation, and browser automation during Verify.
40
+ - Treat companions as optional. Do not block work or add dependencies when they are unavailable.
41
+
42
+ ## Anti-slop contract
43
+
44
+ - Use one thesis and one coherent system.
45
+ - Preserve or deliberately evolve the brand instead of importing a house aesthetic.
46
+ - Build hierarchy through scale, position, density, rhythm, and contrast.
47
+ - Give grid visibility, borders, radii, shadows, gradients, and motion defined roles.
48
+ - Prefer authentic product evidence; label sample or fictional material and never fabricate proof.
49
+ - Give sections or workflows distinct compositions within shared structural logic.
50
+
51
+ Repeated rounded cards, centered hero copy, gradient blobs, excessive pills, uniform sections, arbitrary icon boxes, generic claims, and technical chrome on nontechnical brands are diagnostic signals, not automatic violations. Replace weak structure with a stronger product-specific idea.
52
+
53
+ ## Decision reference
54
+
55
+ | Dimension | Decide from |
56
+ |---|---|
57
+ | Structure | Information order, task flow, shared alignments, and the brand's degree of regularity |
58
+ | Type | Brand voice, reading needs, and role hierarchy; reserve mono for genuinely technical content |
59
+ | Visual lead | Product UI, data, prose, imagery, artwork, code, or a primary interactive surface |
60
+ | Shape and surface | Brand geometry, containment, adjacency, state, and interaction—not fashion |
61
+ | Color | Existing brand palette and semantic roles; do not assume neutral plus one accent |
62
+ | Components | Product tasks, shared anatomy, variants, density, state behavior, and repository conventions |
63
+ | Motion | Causality, feedback, spatial change, and tone, with reduced-motion support |
64
+ | Responsive | Priority, order, density, input method, and content behavior at each range |
65
+
66
+ ## Output contract
67
+
68
+ For user-confirmed or brand-derived Create or Redesign, provide **Direction** with the thesis and preserved constraints, complete responsive **Implementation**, and **Verification** evidence naming observed viewports, flows, states, and remaining gaps. When system decisions materially change, identify the relevant contract or where its tokens and component rules are implemented. For provisional broad Create or Redesign, output only the alignment options, trade-offs, recommendation, and question; do not include **Implementation** or redesign **Verification** claims. For Review, make no edits and provide a one-line **Verdict**, prioritized findings with location, evidence, impact, and the smallest coherent correction, plus one replacement **Direction**. Never claim verification without observation.
69
+
70
+ ## Common mistakes
71
+
72
+ | Mistake | Correction |
73
+ |---|---|
74
+ | Treating Gridgeist as a visible-grid preset | Use grid as underlying logic and expose it only when the brand benefits |
75
+ | Copying a reference literally | Extract principles and preserve the user's identity and content |
76
+ | Styling before understanding behavior | Inventory tasks, constraints, and states before composing |
77
+ | Making minimalism empty | Add useful evidence and controlled density |
78
+ | Styling components one at a time | Define shared anatomy, tokens, variants, and states before polishing instances |
79
+ | Improving the default state only | Design loading, empty, error, success, disabled, and destructive paths |
80
+ | Stacking desktop UI on mobile | Redesign order, density, navigation, media, and interaction |
81
+ | Reporting subjective taste alone | Tie findings to comprehension, usability, consistency, brand, or accessibility |
82
+ | Reporting automated checks as user evidence | Separate technical verification from usability, safety, and research claims |
83
+
84
+ ## Contrasting examples
85
+
86
+ > Redesign dense API documentation with a visible information grid, precise code states, and verified mobile navigation.
87
+
88
+ > Redesign a warm image-led portfolio with an invisible alignment system, expressive type, artwork-led pacing, and accessible project narratives.
@@ -0,0 +1,9 @@
1
+ interface:
2
+ display_name: "Gridgeist"
3
+ short_description: "Build product-native interfaces with clear structure"
4
+ icon_small: "./assets/gridgeist-small.svg"
5
+ icon_large: "./assets/gridgeist.png"
6
+ brand_color: "#1547FF"
7
+ default_prompt: "Use $gridgeist to design or refine this interface around its product, brand, and behavior, then verify responsive and accessible results."
8
+ policy:
9
+ allow_implicit_invocation: true
@@ -0,0 +1,10 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img" aria-labelledby="title desc">
2
+ <title id="title">Gridgeist</title>
3
+ <desc id="desc">GG monogram on a cobalt grid.</desc>
4
+ <rect width="128" height="128" fill="#F2F0E9"/>
5
+ <path d="M32 0V128M64 0V128M96 0V128M0 32H128M0 64H128M0 96H128" stroke="#11120F" stroke-opacity="0.18"/>
6
+ <path d="M96 0V128M0 96H128" stroke="#1547FF" stroke-width="3"/>
7
+ <text x="10" y="82" fill="#11120F" font-family="Inter, Arial, Helvetica, sans-serif" font-size="61" font-weight="900" letter-spacing="-7">G</text>
8
+ <text x="58" y="82" fill="#1547FF" font-family="Inter, Arial, Helvetica, sans-serif" font-size="61" font-weight="900" letter-spacing="-7">G</text>
9
+ <circle cx="96" cy="96" r="4" fill="#1547FF"/>
10
+ </svg>
@@ -0,0 +1,18 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024" role="img" aria-labelledby="title desc">
2
+ <title id="title">Gridgeist</title>
3
+ <desc id="desc">Gridgeist typographic mark on a precise cobalt grid.</desc>
4
+ <defs><pattern id="grid" width="128" height="128" patternUnits="userSpaceOnUse"><path d="M128 0H0V128" fill="none" stroke="#11120F" stroke-opacity="0.16" stroke-width="2"/></pattern></defs>
5
+ <rect width="1024" height="1024" fill="#F2F0E9"/>
6
+ <rect x="1" y="1" width="1022" height="1022" fill="url(#grid)" stroke="#11120F" stroke-width="2"/>
7
+ <path d="M768 0V1024M0 768H1024" stroke="#1547FF" stroke-width="8"/>
8
+ <g font-family="Inter, Arial, Helvetica, sans-serif" font-weight="900" letter-spacing="-20">
9
+ <text x="56" y="477" font-size="326" fill="#11120F">GRID</text>
10
+ <text x="56" y="754" font-size="290" fill="#1547FF">GEIST.</text>
11
+ </g>
12
+ <g font-family="Consolas, monospace" font-size="22" font-weight="500" letter-spacing="2" fill="#11120F">
13
+ <text x="56" y="72">AGENT SKILL / WEB INTERFACE DIRECTION</text>
14
+ <text x="56" y="962">GG-01</text>
15
+ <text x="836" y="962">OPEN SOURCE</text>
16
+ </g>
17
+ <circle cx="768" cy="768" r="13" fill="#1547FF"/>
18
+ </svg>
@@ -0,0 +1,88 @@
1
+ # Gridgeist Design Language
2
+
3
+ Use this reference before selecting or explaining a visual direction. Build from the product and brand rather than collecting fashionable labels.
4
+
5
+ ## Direction model
6
+
7
+ Choose one structural influence, one expressive influence, and one product-native motif.
8
+
9
+ - **Structural influence** defines order: rational grid, editorial sequence, task flow, spatial canvas, or another coherent logic.
10
+ - **Expressive influence** defines tone: precise, warm, restrained, playful, tactile, image-led, or another brand-supported quality.
11
+ - **Product-native motif** makes the result specific: traces, lesson progress, artwork, route status, drawing tools, documents, or another authentic artifact.
12
+
13
+ Write the thesis as: **audience + primary task + structural logic + brand expression + product-native motif**.
14
+
15
+ Examples:
16
+
17
+ - “An operational workspace for SREs built on aligned trace relationships, compressed hierarchy, and live latency states.”
18
+ - “A human portfolio for creative collaborators paced by asymmetric artwork, warm editorial type, and candid project evidence.”
19
+ - “A touch-first drawing studio for children organized around the canvas, friendly tool groups, and immediate local feedback.”
20
+
21
+ ## Product-surface adaptation
22
+
23
+ | Surface | Let this lead | Structural treatment | Avoid |
24
+ |---|---|---|---|
25
+ | Data or technical product | Real data, state, relationships, commands, product UI | Explicit tracks, dense alignment, quiet rules, precise labels | Fake metrics, decorative code, interchangeable dashboard cards |
26
+ | Content or documentation | Reading order, navigation, examples, metadata | Controlled measure, editorial pacing, persistent orientation | Squeezed columns, repetitive content boxes, ornamental complexity |
27
+ | Image-led portfolio or brand | Artwork, crop, scale, caption, narrative | Invisible or quiet grid, purposeful asymmetry, varied pacing | Technical chrome, equal project cards, art used as thumbnails only |
28
+ | Playful or canvas-based tool | Primary canvas, direct manipulation, touch controls, feedback | Task-centered zones, friendly grouping, flexible geometry | Importing a technical grid, shrinking the main tool, tiny controls |
29
+ | Transactional form or workflow | Progress, input, validation, confirmation, recovery | Clear sequence, stable control placement, explicit state changes | Styling only the happy path, hidden errors, disruptive reflow |
30
+
31
+ This table guides decisions; it is not a set of templates. A product may combine surfaces, but one should dominate each viewport or workflow stage.
32
+
33
+ ## Brand adaptation gate
34
+
35
+ Before importing any visual influence:
36
+
37
+ 1. Inventory existing voice, typography, palette, imagery, geometry, motion, and recognizable assets.
38
+ 2. Mark each signal as **preserve**, **evolve**, or **replace**, with a product reason for any replacement.
39
+ 3. Decide whether structure should be **visible**, **quiet**, or **invisible**.
40
+ 4. Test recognizability: if borders, mono type, and technical labels disappear, does the direction still belong to this product?
41
+ 5. Reject the direction if it gains Gridgeist mannerisms while losing the established brand.
42
+
43
+ When no brand exists, derive expression from audience, task, content, and product character rather than defaulting to technical minimalism.
44
+
45
+ ## System heuristics
46
+
47
+ ### Grid and composition
48
+
49
+ - Use consistent outer relationships and gutters across the interface.
50
+ - Align major edges when alignment improves reading or task flow.
51
+ - Break regularity only to create deliberate emphasis, narrative pace, or direct manipulation space.
52
+ - On small screens, replace wide structures with a simpler priority order; do not preserve decorative empty tracks.
53
+
54
+ ### Typography
55
+
56
+ - Define roles for display, heading, body, label, metadata, and code only when needed.
57
+ - Keep body measure readable, commonly around 45–75 characters.
58
+ - Use weight, spacing, family, and contrast before inventing many sizes.
59
+ - Use mono for commands, code, IDs, timestamps, or technical labels—not as automatic Gridgeist branding.
60
+
61
+ ### Imagery and product material
62
+
63
+ - Give authentic material enough scale and context to carry hierarchy.
64
+ - Define crop, aspect ratio, caption, loading, empty, and small-screen behavior.
65
+ - Preserve meaningful artwork and brand assets; mark decorative imagery appropriately.
66
+ - Label sample or fictional content and avoid implying real customers, outcomes, or research.
67
+
68
+ ### Borders, shape, and surfaces
69
+
70
+ - Use borders to explain containment, adjacency, sequence, or interaction.
71
+ - Derive radius, shadow, texture, and surface contrast from brand and function.
72
+ - Avoid combining heavy borders, strong shadows, gradients, and large radii without a product reason.
73
+
74
+ ### Color and motion
75
+
76
+ - Start with brand and semantic roles rather than a preset palette.
77
+ - Check default, hover, focus, disabled, selected, success, warning, and error states.
78
+ - Animate feedback, causality, or spatial relationship; avoid ambient motion competing with the primary task.
79
+ - Support `prefers-reduced-motion` without hiding essential state changes.
80
+
81
+ ## Reference use
82
+
83
+ When a user supplies a reference site:
84
+
85
+ 1. Identify reusable principles: hierarchy, density, grid visibility, type, imagery, color, motion, and content strategy.
86
+ 2. Separate principles from protected brand assets and distinctive compositions.
87
+ 3. Translate the principles into the user's content, behavior, stack, and identity.
88
+ 4. State what was inspired by the reference without claiming an exact replica.