trae-starter 0.0.1
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.
- package/README.md +45 -0
- package/bin/cli.js +33 -0
- package/package.json +25 -0
- package/public/app.js +263 -0
- package/public/index.html +123 -0
- package/server/api.js +181 -0
- package/server/index.js +38 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/SKILL.md +659 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/colors.csv +162 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/design.csv +1776 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/draft.csv +1779 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/products.csv +162 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/styles.csv +85 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/typography.csv +74 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/scripts/core.py +247 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/templates/proto/.agents/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/templates/proto/.trae/skills/preview-manager/SKILL.md +37 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/SKILL.md +659 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/colors.csv +162 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/design.csv +1776 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/draft.csv +1779 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/products.csv +162 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/styles.csv +85 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/typography.csv +74 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/scripts/core.py +247 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/templates/proto/.trae/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/templates/proto/README.md +77 -0
- package/templates/proto/agent.md +361 -0
- package/templates/proto/eslint.config.js +23 -0
- package/templates/proto/index.html +13 -0
- package/templates/proto/package.json +39 -0
- package/templates/proto/pnpm-lock.yaml +2401 -0
- package/templates/proto/postcss.config.js +6 -0
- package/templates/proto/public/favicon.svg +1 -0
- package/templates/proto/public/icons.svg +24 -0
- package/templates/proto/skills-lock.json +10 -0
- package/templates/proto/src/App.css +184 -0
- package/templates/proto/src/App.tsx +15 -0
- package/templates/proto/src/assets/hero.png +0 -0
- package/templates/proto/src/assets/react.svg +1 -0
- package/templates/proto/src/assets/vite.svg +1 -0
- package/templates/proto/src/components/ui/SampleButton/sampleButton.css +4 -0
- package/templates/proto/src/components/ui/SampleButton/sampleButton.tsx +14 -0
- package/templates/proto/src/data/mock/products.csv +4 -0
- package/templates/proto/src/data/mock/users.json +16 -0
- package/templates/proto/src/data/types.ts +17 -0
- package/templates/proto/src/index.css +64 -0
- package/templates/proto/src/main.tsx +13 -0
- package/templates/proto/src/pages/Demo/components/DemoHeader/demoHeader.tsx +20 -0
- package/templates/proto/src/pages/Demo/components/FeatureGrid/featureGrid.tsx +18 -0
- package/templates/proto/src/pages/Demo/index.tsx +29 -0
- package/templates/proto/src/pages/Home/components/FeatureCard/featureCard.tsx +15 -0
- package/templates/proto/src/pages/Home/components/HeroSection/heroSection.tsx +28 -0
- package/templates/proto/src/pages/Home/components/InteractiveControls/interactiveControls.tsx +27 -0
- package/templates/proto/src/pages/Home/index.tsx +39 -0
- package/templates/proto/src/utils/format.ts +7 -0
- package/templates/proto/tailwind.config.js +11 -0
- package/templates/proto/tsconfig.app.json +28 -0
- package/templates/proto/tsconfig.json +7 -0
- package/templates/proto/tsconfig.node.json +26 -0
- package/templates/proto/vite.config.ts +10 -0
|
@@ -0,0 +1,1776 @@
|
|
|
1
|
+
Bauhaus(包豪斯)
|
|
2
|
+
大胆的几何现代主义,包含圆形、方形和三角形。主色调(红/蓝/黄),边缘鲜明,阴影强烈。功能性与艺术性兼备,带有建构主义的不对称。
|
|
3
|
+
1. 极简主义品牌官网与电商
|
|
4
|
+
2. 工具类与高效率 App
|
|
5
|
+
3. 数字媒体与在线杂志
|
|
6
|
+
|
|
7
|
+
<design-system>
|
|
8
|
+
Design Style: Bauhaus (Mobile)
|
|
9
|
+
1. Design Philosophy
|
|
10
|
+
The Bauhaus style embodies the revolutionary principle "form follows function" while celebrating pure geometric beauty and primary color theory. On mobile, this translates to tactile constructivism—the screen is a canvas where elements are physically stacked blocks. The aesthetic creates a high-impact, poster-like experience in the palm of the hand: bold, touch-centric, and unapologetically graphic.
|
|
11
|
+
Vibe: Tactile, Constructivist, Geometric, High-Contrast, Bold, Architectural
|
|
12
|
+
Core Concept: The mobile interface is a vertical geometric composition. Scroll views are not just content streams but stacked layers of colored paper and rigid shapes. The limited screen real estate forces a focus on massive typography and distinct color blocking (Red #D02020, Blue #1040C0, Yellow #F0C020). Every tap should feel mechanical and substantial.
|
|
13
|
+
Key Characteristics:
|
|
14
|
+
● Geometric Purity: UI elements are strictly circles (buttons/avatars) or squares (cards/inputs).
|
|
15
|
+
● Tactile Depth: Hard shadows indicate interactivity; elements look "pressable."
|
|
16
|
+
● Color Blocking: distinct screen sections use solid primary colors to separate content without whitespace.
|
|
17
|
+
● Thick Borders: 2px and 3px black borders ensure legibility and distinct separation on small screens.
|
|
18
|
+
● Vertical Rhythm: Strong vertical stacking with deliberate spacing, avoiding clutter.
|
|
19
|
+
● Constructivist Typography: Headlines are massive (text-4xl to text-5xl) relative to screen width, breaking traditional mobile scaling rules.
|
|
20
|
+
● Thumb-Friendly: Interactive zones are large, distinct, and geometrically defined.
|
|
21
|
+
2. Design Token System (The DNA)
|
|
22
|
+
Colors (Single Palette - Light Mode)
|
|
23
|
+
The palette remains strictly Bauhaus primaries, optimized for high contrast outdoors.
|
|
24
|
+
● background: #F0F0F0 (Off-white canvas)
|
|
25
|
+
● foreground: #121212 (Stark Black)
|
|
26
|
+
● primary-red: #D02020 (Bauhaus Red)
|
|
27
|
+
● primary-blue: #1040C0 (Bauhaus Blue)
|
|
28
|
+
● primary-yellow: #F0C020 (Bauhaus Yellow)
|
|
29
|
+
● border: #121212 (Thick, distinct borders)
|
|
30
|
+
● muted: #E0E0E0
|
|
31
|
+
Typography
|
|
32
|
+
● Font Family: 'Outfit' (geometric sans-serif).
|
|
33
|
+
● Font Import: Outfit:wght@400;500;700;900
|
|
34
|
+
● Scaling: Aggressive scaling adapted for vertical viewports.
|
|
35
|
+
○ Display: text-4xl → text-5xl (Massive headers taking up 30-40% of screen width)
|
|
36
|
+
○ Subheadings: text-xl → text-2xl
|
|
37
|
+
○ Body: text-base (16px minimum for legibility)
|
|
38
|
+
○ Button Text: text-lg (Large for readability)
|
|
39
|
+
● Weights:
|
|
40
|
+
○ Headlines: font-black (900) uppercase, tight tracking (tracking-tighter)
|
|
41
|
+
○ Buttons/Nav: font-bold (700) uppercase, wide tracking (tracking-wide)
|
|
42
|
+
○ Body: font-medium (500)
|
|
43
|
+
● Line Height: Tight (leading-none) for headlines to save vertical space; leading-relaxed for body text.
|
|
44
|
+
Radius & Border
|
|
45
|
+
● Radius: Strict Binary—rounded-none (0px) for layout blocks, inputs, and cards; rounded-full (9999px) for primary action buttons and avatars.
|
|
46
|
+
● Border Widths:
|
|
47
|
+
○ Standard Elements: border-2 (2px)
|
|
48
|
+
○ Major Containers/Bottom Nav: border-t-2 or border-3
|
|
49
|
+
○ Separators: divide-y-2
|
|
50
|
+
● Border Color: Always #121212 (black).
|
|
51
|
+
Shadows/Effects
|
|
52
|
+
● Hard Offset Shadows (Tactile feedback):
|
|
53
|
+
○ Small elements (Tags/Icons): shadow-[2px_2px_0px_0px_black]
|
|
54
|
+
○ Buttons/Cards: shadow-[4px_4px_0px_0px_black] (Reduced from web 8px to save screen width)
|
|
55
|
+
○ Floating Action Button (FAB): shadow-[5px_5px_0px_0px_black]
|
|
56
|
+
● Touch Feedback: active:translate-x-[2px] active:translate-y-[2px] active:shadow-none (Instant mechanical depression).
|
|
57
|
+
● Patterns:
|
|
58
|
+
○ Dot grid backgrounds on "Paper" colored sections (background-size: 16px 16px).
|
|
59
|
+
○ Screen transitions: Slide-over with hard black borders.
|
|
60
|
+
3. Component Stylings
|
|
61
|
+
Buttons (Touch Targets)
|
|
62
|
+
● Minimum Size: Height h-12 or h-14 (48px-56px) for thumb accessibility.
|
|
63
|
+
● Variants:
|
|
64
|
+
○ Primary (CTA): w-full bg-[#D02020] text-white border-2 border-black shadow-[4px_4px_0px_0px_black]
|
|
65
|
+
○ Secondary: w-full bg-[#1040C0] text-white border-2 border-black shadow-[4px_4px_0px_0px_black]
|
|
66
|
+
○ Floating Action (FAB): h-14 w-14 rounded-full bg-[#F0C020] border-2 border-black shadow-[4px_4px_0px_0px_black] flex items-center justify-center
|
|
67
|
+
● Shapes: Full-width rectangular buttons (rounded-none) or pill-shaped (rounded-full) for bottom-sticky actions.
|
|
68
|
+
● States: NO hover. Focus on active state (press down effect).
|
|
69
|
+
Cards (Mobile Stack)
|
|
70
|
+
● Base Style: White background, border-2 border-black, shadow-[4px_4px_0px_0px_black], mb-6.
|
|
71
|
+
● Decoration:
|
|
72
|
+
○ Geometric badge in top-right: absolute top-0 right-0 h-8 w-8 bg-[#F0C020] border-l-2 border-b-2 border-black flex items-center justify-center.
|
|
73
|
+
● Interaction: Entire card is a touch target. active:translate-x-[1px] active:translate-y-[1px] active:shadow-[2px_2px_0px_0px_black].
|
|
74
|
+
● Content: Image usually takes top half (aspect-video), bold text below.
|
|
75
|
+
Bottom Navigation (The Anchor)
|
|
76
|
+
● Container: fixed bottom-0 w-full bg-white border-t-2 border-black z-50 h-20.
|
|
77
|
+
● Grid: 3 to 5 items equally spaced.
|
|
78
|
+
● Items:
|
|
79
|
+
○ Inactive: Black stroke icon, clear background.
|
|
80
|
+
○ Active: Icon inside a geometric shape (Square/Circle) with primary color fill (e.g., Red Square context).
|
|
81
|
+
○ Label: Tiny uppercase bold text below icon, or icon only for minimalism.
|
|
82
|
+
Inputs & Forms
|
|
83
|
+
● Field: h-12 bg-white border-2 border-black rounded-none px-4 text-black placeholder:text-gray-400 focus:bg-[#FFF9C4] focus:ring-0 focus:border-black.
|
|
84
|
+
● Label: Uppercase bold, mb-1 block.
|
|
85
|
+
● Checkbox: h-6 w-6 appearance-none border-2 border-black bg-white checked:bg-[#1040C0] rounded-none.
|
|
86
|
+
4. Layout & Spacing
|
|
87
|
+
● Container: w-full with px-5 (20px) padding. Max-width constraints removed (fluid mobile).
|
|
88
|
+
● Section Padding:
|
|
89
|
+
○ Standard: py-8
|
|
90
|
+
○ Hero: pt-12 pb-16
|
|
91
|
+
● Grid Systems:
|
|
92
|
+
○ Main Layout: Single column (Stack).
|
|
93
|
+
○ Micro-grids: 2-column for stats/gallery (gap-3 or gap-4).
|
|
94
|
+
● Safe Areas: Respect pt-safe (top notch) and pb-safe (bottom home indicator).
|
|
95
|
+
● Dividers: Thick section separators border-b-2 border-black usually paired with a background color change.
|
|
96
|
+
5. Non-Genericness (Bold Choices)
|
|
97
|
+
Mobile Constraints require distinct personality to avoid looking like a wireframe:
|
|
98
|
+
● Full-Screen Color Washes:
|
|
99
|
+
○ Onboarding screens: Full solid backgrounds (Red Screen → Blue Screen → Yellow Screen).
|
|
100
|
+
○ Success states: Full Yellow background (bg-[#F0C020]) with massive black centered checkmark.
|
|
101
|
+
○ Error states: Full Red background (bg-[#D02020]) with white text.
|
|
102
|
+
● Header Identity:
|
|
103
|
+
○ Instead of a standard navbar, use a "Bauhaus Header Block": A row containing a Square (Menu), a flexible space for the Title (Left aligned, massive), and a Circle (Profile/Search). All elements separated by vertical borders divide-x-2 border-b-2 border-black.
|
|
104
|
+
● Geometric Lists:
|
|
105
|
+
○ List items aren't just text lines. They are alternating geometric bullets: Line 1 uses a ■, Line 2 uses a ●, Line 3 uses a ▲.
|
|
106
|
+
● Rotated "Stickers":
|
|
107
|
+
○ "New", "Sale", or Notification badges are rotated -12deg or +12deg, sitting on top of corners to break the rigid grid.
|
|
108
|
+
● Image Filters:
|
|
109
|
+
○ Thumbnails: Grayscale + High Contrast.
|
|
110
|
+
○ Detail View: Full color, no rounded corners, thick black border.
|
|
111
|
+
6. Icons & Imagery
|
|
112
|
+
● Icon Library: lucide-react-native or similar (Circle, Square, Triangle, Menu, X, ArrowLeft).
|
|
113
|
+
● Icon Style:
|
|
114
|
+
○ Stroke: stroke-[2px].
|
|
115
|
+
○ Size: w-6 h-6 (standard) or w-8 h-8 (hero actions).
|
|
116
|
+
● Icon Containers:
|
|
117
|
+
○ Navigation icons often live inside rigid 48x48px bordered squares.
|
|
118
|
+
○ Back buttons are always circular rounded-full with a border.
|
|
119
|
+
● Imagery:
|
|
120
|
+
○ Masking: Use CSS clip-paths to crop header images into non-standard shapes (e.g., a trapezoid or a circle cropped at the bottom) within the mobile frame.
|
|
121
|
+
7. Responsive Strategy (Device Sizes)
|
|
122
|
+
● Small Phones (SE/Mini):
|
|
123
|
+
○ Reduce display text to text-3xl.
|
|
124
|
+
○ Stack stats vertically (1-col).
|
|
125
|
+
○ Reduce padding to px-4.
|
|
126
|
+
● Large Phones (Max/Plus):
|
|
127
|
+
○ Display text scales to text-5xl.
|
|
128
|
+
○ Stats can use 2-col grid.
|
|
129
|
+
○ Card images gain more height.
|
|
130
|
+
● Orientation:
|
|
131
|
+
○ Portrait (Primary): Vertical stacking.
|
|
132
|
+
○ Landscape: Avoid if possible, or split screen 50/50 (Text Left / Image Right).
|
|
133
|
+
8. Animation & Micro-Interactions
|
|
134
|
+
● Feel: Physical, snappy, zero-latency.
|
|
135
|
+
● Duration: duration-150 (Very fast).
|
|
136
|
+
● Easing: ease-in-out (Sharp stops).
|
|
137
|
+
● Interactions:
|
|
138
|
+
○ Tap: The element physically depresses (translate X/Y matches shadow size).
|
|
139
|
+
○ Drawer Open: Slides in from Left/Right with a solid black border line leading it. No soft fades—it slides like a mechanical door.
|
|
140
|
+
○ Toast/Alerts: Drop down from top as a solid geometric block (Yellow/Red) with hard borders, swinging slightly like a hanging sign.
|
|
141
|
+
○ Scroll: Sticky headers snap into place instantly.
|
|
142
|
+
</design-system>
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
"Monochrome(单色/黑白)
|
|
147
|
+
"一套简洁的编辑设计体系,建立在纯粹的黑白之上。没有点缀色——只有戏剧性的对比、超大衬线字体和精准的几何布局。让人联想到高端时尚专题和建筑作品集。严肃、成熟、毫不掩饰地大胆。
|
|
148
|
+
"1. 极简主义电商与高端奢侈品
|
|
149
|
+
2. 专业创意与文档编辑工具
|
|
150
|
+
3. 数据密集型仪表盘(局部应用)
|
|
151
|
+
4. 实验性与先锋感网站"
|
|
152
|
+
|
|
153
|
+
<design-system>
|
|
154
|
+
Design Style: Minimalist Monochrome (Mobile)
|
|
155
|
+
Design Philosophy
|
|
156
|
+
Core Principle
|
|
157
|
+
The Pocket Editorial. On mobile, Minimalist Monochrome transforms the screen into a tactile, high-end printed manifesto. It rejects the "app-like" tendency for soft bubbles and friendly gradients. Instead, it offers a stark, vertical journey defined by pure black (#000000), pure white (#FFFFFF), and razor-sharp borders. Every tap is a deliberate decision; every scroll is a flip of a page in a luxury monograph.
|
|
158
|
+
Visual Vibe
|
|
159
|
+
Emotional Keywords: Tactile, Austere, Editorial, Direct, High-Fidelity, Uncompromising, Sharp, Rhythmic.
|
|
160
|
+
This is the visual language of:
|
|
161
|
+
● Mobile typographers and digital brutalism
|
|
162
|
+
● The mobile interfaces of luxury fashion houses (Balenciaga, Zara, SSENSE)
|
|
163
|
+
● Digital exhibitions where the content frames itself
|
|
164
|
+
● High-contrast e-reader aesthetics
|
|
165
|
+
What This Design Is NOT
|
|
166
|
+
● ❌ "App-y" (no cards with drop shadows, no floating bubbles)
|
|
167
|
+
● ❌ Native iOS/Android standard (no system blue, no rounded groups)
|
|
168
|
+
● ❌ Gesture-heavy (interactions are explicit taps, not vague swipes)
|
|
169
|
+
● ❌ Cluttered (one idea per screen view)
|
|
170
|
+
● ❌ Colorful (strictly grayscale)
|
|
171
|
+
The DNA of Minimalist Monochrome (Mobile)
|
|
172
|
+
1. Vertical Linearity
|
|
173
|
+
The mobile screen is a continuous roll of paper. Structure is created not by boxes, but by horizontal lines (rules) that span the full width of the device. Content lives between these lines.
|
|
174
|
+
2. Typography as Interface
|
|
175
|
+
Buttons are often just large words. Navigation is text-based. The serif typeface (Playfair Display) acts as the primary image on the screen. Headlines must be large enough to break words onto new lines, creating graphic shapes.
|
|
176
|
+
3. The "Touch" Inversion
|
|
177
|
+
Since there is no "hover" on mobile, interaction is communicated through inversion. When a user touches a white block, it turns black instantly. This zero-latency binary feedback replaces physical tactility.
|
|
178
|
+
4. Zero Radius, Zero Fluff
|
|
179
|
+
All elements—buttons, images, inputs, modals—have strictly 0px border radius. This sharp geometry cuts through the rounded physical corners of modern smartphones, creating a striking contrast.
|
|
180
|
+
|
|
181
|
+
Design Token System
|
|
182
|
+
Colors (Strictly Monochrome)
|
|
183
|
+
background: #FFFFFF (Pure white)
|
|
184
|
+
foreground: #000000 (Pure black)
|
|
185
|
+
muted: #F5F5F5 (Off-white for "pressed" states or subtle blocks)
|
|
186
|
+
mutedForeground: #525252 (Dark gray for metadata)
|
|
187
|
+
border: #000000 (Black borders - heavy usage)
|
|
188
|
+
borderLight: #E5E5E5 (Subtle dividers)
|
|
189
|
+
overlay: #000000 (Full screen menu background)
|
|
190
|
+
|
|
191
|
+
Rule: No accent colors. The "Active State" is simply the inverse of the "Default State."
|
|
192
|
+
Typography
|
|
193
|
+
Font Stack:
|
|
194
|
+
● Display: "Playfair Display", serif - For all headlines and large numerals.
|
|
195
|
+
● Body: "Source Serif 4", serif - For reading text.
|
|
196
|
+
● UI/Labels: "JetBrains Mono", monospace - For tiny tags, dates, and technical specs.
|
|
197
|
+
Type Scale (Mobile Optimized):
|
|
198
|
+
Note: Sizes are calibrated to feel "massive" on a small screen without breaking layout.
|
|
199
|
+
xs: 0.75rem (12px) - Metadata / Breadcrumbs
|
|
200
|
+
sm: 0.875rem (14px) - UI Labels / Captions
|
|
201
|
+
base: 1rem (16px) - Body text (Legibility minimum)
|
|
202
|
+
lg: 1.125rem (18px) - Lead text / Button text
|
|
203
|
+
xl: 1.5rem (24px) - Section headers
|
|
204
|
+
2xl: 2rem (32px) - Standard Headlines
|
|
205
|
+
3xl: 2.5rem (40px) - Hero Sub-text
|
|
206
|
+
4xl: 3rem (48px) - Major Headlines
|
|
207
|
+
5xl: 4rem (64px) - "Cover" text (Often wraps)
|
|
208
|
+
6xl: 5rem (80px) - Numerical statements
|
|
209
|
+
|
|
210
|
+
Tracking & Leading:
|
|
211
|
+
● Headlines: tracking-tighter (-0.05em) and leading-[0.9]. Text should feel tightly packed.
|
|
212
|
+
● Body: leading-relaxed for readability.
|
|
213
|
+
● Button Text: tracking-widest uppercase.
|
|
214
|
+
Border Radius
|
|
215
|
+
ALL VALUES: 0px
|
|
216
|
+
|
|
217
|
+
Constraint: Even the bottom sheet (modal) must be square. Even the active state of a tapped element is a sharp rectangle.
|
|
218
|
+
Borders & Lines (The Grid)
|
|
219
|
+
hairline: 1px solid #E5E5E5 (List separators)
|
|
220
|
+
thin: 1px solid #000000 (Standard element borders)
|
|
221
|
+
thick: 2px solid #000000 (Emphasis / Input bottom)
|
|
222
|
+
heavy: 4px solid #000000 (Section dividers)
|
|
223
|
+
|
|
224
|
+
Usage:
|
|
225
|
+
● Full-Bleed Lines: Borders should often touch the edges of the screen (-mx-4 or -mx-6).
|
|
226
|
+
● Separators: Use border-b black heavily to separate stacked vertical content.
|
|
227
|
+
Shadows
|
|
228
|
+
NONE
|
|
229
|
+
|
|
230
|
+
Depth is strictly 2D. Layers are defined by opacity (100% vs 0%) or borders, never by shadows.
|
|
231
|
+
Textures & Patterns
|
|
232
|
+
Use subtle noise to simulate high-quality paper texture on mobile backgrounds to avoid a "sterile" feeling.
|
|
233
|
+
Mobile Noise (CSS):
|
|
234
|
+
CSS
|
|
235
|
+
|
|
236
|
+
background-image: url("data:image/svg+xml,..."); /* Same noise SVG as web */
|
|
237
|
+
opacity: 0.03; /* Slightly higher opacity for small screens */
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
Component Stylings
|
|
241
|
+
Buttons & Touch Targets
|
|
242
|
+
Primary Button (The Block):
|
|
243
|
+
- Width: w-full (Full width strongly preferred)
|
|
244
|
+
- Height: h-14 (56px - Large touch target)
|
|
245
|
+
- Background: #000000
|
|
246
|
+
- Text: #FFFFFF
|
|
247
|
+
- Radius: 0px
|
|
248
|
+
- Typography: Uppercase, Mono or Serif, Tracking-widest
|
|
249
|
+
- Active State: Instantly inverts to White bg, Black text
|
|
250
|
+
|
|
251
|
+
Secondary Button (The Outline):
|
|
252
|
+
- Width: w-full
|
|
253
|
+
- Height: h-14
|
|
254
|
+
- Background: Transparent
|
|
255
|
+
- Border: 1px solid #000000
|
|
256
|
+
- Active State: Instantly fills Black
|
|
257
|
+
|
|
258
|
+
Sticky Bottom Action (CTA):
|
|
259
|
+
● A fixed bar at the bottom of the viewport.
|
|
260
|
+
● border-t-2 border-black.
|
|
261
|
+
● Contains a single primary action or a price + action pair.
|
|
262
|
+
● Background: #FFFFFF (or inverted #000000).
|
|
263
|
+
Cards / List Items
|
|
264
|
+
The "Stacked" Card:
|
|
265
|
+
Instead of a box with padding, mobile cards are often full-width segments separated by borders.
|
|
266
|
+
- Container: Border-bottom 1px solid #000000
|
|
267
|
+
- Padding: py-6
|
|
268
|
+
- Image: Aspect ratio 4:5 or 1:1, full width or padded
|
|
269
|
+
- Content: Text sits directly below image
|
|
270
|
+
- Interaction: Touching anywhere in the segment triggers "Active" state
|
|
271
|
+
|
|
272
|
+
Navigation
|
|
273
|
+
The "Bar":
|
|
274
|
+
● Top: Minimal. Just a logo (Left) and a "MENU" text button or Hamburger (Right).
|
|
275
|
+
● Bottom: Optional. If used, simple text labels or thin outline icons. border-t-2 border-black.
|
|
276
|
+
The Menu Overlay:
|
|
277
|
+
● Full screen.
|
|
278
|
+
● Background: #000000 (Black).
|
|
279
|
+
● Text: #FFFFFF (White).
|
|
280
|
+
● List items: Massive text (text-4xl), serif, centered or left-aligned.
|
|
281
|
+
● Divider: Thin white lines between menu items.
|
|
282
|
+
Inputs
|
|
283
|
+
Mobile Input:
|
|
284
|
+
- Style: Flush with background.
|
|
285
|
+
- Border: Bottom only (2px solid black).
|
|
286
|
+
- Radius: 0px.
|
|
287
|
+
- Height: h-14.
|
|
288
|
+
- Focus: Border becomes 4px thick. No native blue glow.
|
|
289
|
+
- Clear Button: Simple 'X' icon in black.
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
Layout Strategy
|
|
293
|
+
Safe Areas
|
|
294
|
+
● Respect pb-safe (Home Indicator) and pt-safe (Status Bar).
|
|
295
|
+
● Style Note: The Status Bar should be white text on black header, or black text on white header. High contrast.
|
|
296
|
+
Container & Spacing
|
|
297
|
+
● Horizontal Padding: px-5 (20px) or px-6 (24px).
|
|
298
|
+
● Vertical Rhythm:
|
|
299
|
+
○ Small gaps: py-4
|
|
300
|
+
○ Section gaps: py-16
|
|
301
|
+
○ Between text and image: my-6
|
|
302
|
+
The "Scroll"
|
|
303
|
+
● Design for the scroll. Use sticky headers for section titles (e.g., "Details", "Shipping") that stack as the user scrolls down, creating a filing cabinet effect.
|
|
304
|
+
● Use divide-y divide-black for lists to create strong separation.
|
|
305
|
+
|
|
306
|
+
Effects & Animation
|
|
307
|
+
Motion Philosophy: Cut, Don't Fade.
|
|
308
|
+
Mobile transitions should feel mechanical and instant, like a shutter clicking.
|
|
309
|
+
Interactions:
|
|
310
|
+
● Tap: active:bg-black active:text-white (Instant inversion).
|
|
311
|
+
● Page Transition: Slide in from right (100% width) with a hard edge. No distinct shadow on the sliding page, just a clean line.
|
|
312
|
+
● Modal: Slides up from bottom. 0px radius. Covers 100% or 90% of screen. Black border top.
|
|
313
|
+
● Scroll Parallax: None. Keep scrolling tied 1:1 to finger movement.
|
|
314
|
+
Specific Implementation:
|
|
315
|
+
TypeScript
|
|
316
|
+
|
|
317
|
+
// Mobile Button Active State
|
|
318
|
+
className="bg-black text-white active:bg-white active:text-black active:border active:border-black transition-none"
|
|
319
|
+
|
|
320
|
+
// Image Loading
|
|
321
|
+
className="opacity-0 data-[loaded=true]:opacity-100 transition-opacity duration-300 ease-linear grayscale data-[loaded=true]:grayscale-0"
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
Iconography
|
|
325
|
+
Style: Stroke-based, Thin, Sharp.
|
|
326
|
+
Library: Lucide React (or similar).
|
|
327
|
+
Mobile Specifics:
|
|
328
|
+
● Size: w-6 h-6 (Standard)
|
|
329
|
+
● Stroke: 1.5px (Matches the fine aesthetic)
|
|
330
|
+
● Touch: If an icon is a button, it must have a p-3 (12px) padding hit-box around it, even if the border is invisible.
|
|
331
|
+
|
|
332
|
+
Responsive Strategy (Device Sizes)
|
|
333
|
+
Small Phones (iPhone SE/Mini):
|
|
334
|
+
● Headlines: Scale down to text-4xl to prevent breaking single words into nonsense.
|
|
335
|
+
● Padding: Reduce to px-4.
|
|
336
|
+
Large Phones (Max/Plus):
|
|
337
|
+
● Headlines: text-5xl or text-6xl.
|
|
338
|
+
● Layout: Can introduce a 2-column grid for product thumbnails (but keep strict borders between them).
|
|
339
|
+
Dark Mode:
|
|
340
|
+
● System: Enforce Light Mode (Black on White) as the default brand identity.
|
|
341
|
+
● Inverted Sections: Use Dark Mode (White on Black) only for specific sections (Footer, Hero, Special Features) to create rhythm, not based on system settings.
|
|
342
|
+
|
|
343
|
+
Bold Choices (Non-Negotiable)
|
|
344
|
+
1. Massive Typographic Hero: The opening screen must feature a headline where a single word might span the full width.
|
|
345
|
+
2. The "Hard" Line: A 4px black line (border-b-4) must separate the Hero from the content.
|
|
346
|
+
3. Sticky Section Headers: As you scroll, the section title (e.g., "01. INFO") sticks to the top with a bottom border, stacking on top of the previous one.
|
|
347
|
+
4. No Hamburger Icon: Use the word "MENU" in JetBrains Mono instead of an icon, if space permits.
|
|
348
|
+
5. Inverted Gallery: Image galleries have a Black background with images at full opacity.
|
|
349
|
+
6. Editorial Inputs: Form labels look like subheadings (Playfair Display, Italic).
|
|
350
|
+
7. No Skeletons: Loading states are simple spinning black lines or just whitespace. No gray pulsing blobs.
|
|
351
|
+
8. Mechanical Feedback: Every interactive element MUST have a visible active state (color inversion).
|
|
352
|
+
|
|
353
|
+
What Success Looks Like (Mobile)
|
|
354
|
+
A successfully implemented Minimalist Monochrome mobile design should feel like:
|
|
355
|
+
● A digitally printed receipt from a high-end boutique.
|
|
356
|
+
● A pocket edition of a brutally honest manifesto.
|
|
357
|
+
● Clean, fast, and remarkably legible outdoors.
|
|
358
|
+
● Intimidatingly simple.
|
|
359
|
+
It should NOT feel like:
|
|
360
|
+
● A scaled-down version of a desktop site.
|
|
361
|
+
● A standard Bootstrap/Tailwind mobile layout.
|
|
362
|
+
● An app trying to be "friendly."
|
|
363
|
+
</design-system>
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
Modern Dark(现代深色模式)
|
|
368
|
+
一种电影般的高精度暗模式设计,通过动画渐变斑点、鼠标跟踪聚光灯效果和精心制作的微交互实现分层环境照明,感觉就像高级软件。
|
|
369
|
+
"1. 影音娱乐与流媒体平台
|
|
370
|
+
2. 开发者工具与专业生产力软件
|
|
371
|
+
3. 金融、科技与 AI 仪表盘
|
|
372
|
+
4. 高端运动与奢华品牌"
|
|
373
|
+
|
|
374
|
+
Design Philosophy
|
|
375
|
+
Core Principles: Precision, tactile depth, and fluid motion define this mobile design system. For React Native, every component is treated as a physical layer within a stacked 3D space, illuminated by virtual light sources. The design communicates "high-end mobile utility"—as responsive and refined as the Linear mobile app or Apple’s native interface. Every shadow uses multiple layers, every gradient is dithered to prevent banding, and every interaction uses precise haptic feedback combined with Expo.out easing.
|
|
376
|
+
Vibe: Cinematic Technical Minimalism. It’s a "Dark Mode First" aesthetic, utilizing near-blacks (#050506) and deep indigos. Imagine a high-end pro tool interface viewed through frosted glass at night. It is technical but inviting, using soft "glow" sources (#5E6AD2) to guide the thumb. It should feel like a premium native iOS/Android app, not a web-wrapper.
|
|
377
|
+
Differentiation: The signature is Atmospheric Depth. While most mobile apps are flat, this system uses:
|
|
378
|
+
● Layered Backgrounds: Stacked View layers with varying opacities, blur intensities, and subtle noise textures.
|
|
379
|
+
● Animated Ambient Light: Large, slow-moving blurred Canvas objects (using react-native-skia or Animated) that simulate light pools.
|
|
380
|
+
● Haptic-Linked Interactions: Every "Pressable" event is paired with subtle haptics (Impact Light/Medium) to reinforce the "hardware" feel.
|
|
381
|
+
● Spring-less Precision: Eschewing "bouncy" animations for sophisticated Bezier(0.16, 1, 0.3, 1) curves.
|
|
382
|
+
|
|
383
|
+
Design Token System (The DNA)
|
|
384
|
+
Color Strategy: Deep Space & Ambient Light
|
|
385
|
+
Token
|
|
386
|
+
Value
|
|
387
|
+
Usage
|
|
388
|
+
bg-deep
|
|
389
|
+
#020203
|
|
390
|
+
Screen background, Bottom Tab bar base
|
|
391
|
+
bg-base
|
|
392
|
+
#050506
|
|
393
|
+
Primary view container background
|
|
394
|
+
bg-elevated
|
|
395
|
+
#0a0a0c
|
|
396
|
+
Modals, Bottom sheets, Surface cards
|
|
397
|
+
surface
|
|
398
|
+
rgba(255,255,255,0.05)
|
|
399
|
+
Card backgrounds, list items
|
|
400
|
+
foreground
|
|
401
|
+
#EDEDEF
|
|
402
|
+
Primary text (High contrast)
|
|
403
|
+
foreground-muted
|
|
404
|
+
#8A8F98
|
|
405
|
+
Secondary labels, body text
|
|
406
|
+
accent
|
|
407
|
+
#5E6AD2
|
|
408
|
+
Buttons, active icons, primary brand glows
|
|
409
|
+
accent-glow
|
|
410
|
+
rgba(94,106,210,0.2)
|
|
411
|
+
Ambient shadows and light emission
|
|
412
|
+
border-default
|
|
413
|
+
rgba(255,255,255,0.08)
|
|
414
|
+
Subtle hairline dividers (0.5pt on iOS)
|
|
415
|
+
|
|
416
|
+
Typography System (React Native)
|
|
417
|
+
Font Family: Inter, GeistSans-Regular, or System San Francisco/Roboto.
|
|
418
|
+
Level
|
|
419
|
+
Size
|
|
420
|
+
Weight
|
|
421
|
+
Letter Spacing
|
|
422
|
+
Display
|
|
423
|
+
48
|
|
424
|
+
700
|
|
425
|
+
-1.5
|
|
426
|
+
H1
|
|
427
|
+
32
|
|
428
|
+
600
|
|
429
|
+
-0.5
|
|
430
|
+
H2
|
|
431
|
+
24
|
|
432
|
+
600
|
|
433
|
+
-0.5
|
|
434
|
+
H3
|
|
435
|
+
18
|
|
436
|
+
600
|
|
437
|
+
0
|
|
438
|
+
Body
|
|
439
|
+
16
|
|
440
|
+
400
|
|
441
|
+
0
|
|
442
|
+
Label/Mono
|
|
443
|
+
12
|
|
444
|
+
500
|
|
445
|
+
1.2 (Uppercase)
|
|
446
|
+
Gradient Text: Implement using mask-view and react-native-linear-gradient. Headers should transition from #FFFFFF to rgba(255,255,255,0.7) vertically.
|
|
447
|
+
|
|
448
|
+
Component Styling Principles
|
|
449
|
+
1. The Background System
|
|
450
|
+
Never use a single solid color for the screen.
|
|
451
|
+
● Base: A LinearGradient from #0a0a0f at the top to #020203 at the bottom.
|
|
452
|
+
● The "Blobs": Use AbsoluteFill views with borderRadius equal to half their width, high blurRadius (30-50), and low opacity (0.1).
|
|
453
|
+
● Animation: Use useAnimatedStyle from Reanimated to slowly oscillate the translateX and translateY of these light pools.
|
|
454
|
+
2. Cards & Containers
|
|
455
|
+
● Radius: Always borderRadius: 16.
|
|
456
|
+
● Border: Use borderWidth: StyleSheet.hairlineWidth with rgba(255,255,255,0.1).
|
|
457
|
+
● Glow: Apply a subtle top-edge highlight using a 1px LinearGradient inside the card.
|
|
458
|
+
● Shadow: React Native shadows are limited on Android; use react-native-shadow-2 or Skia to achieve the "3-layer" shadow look (Ambient + Diffuse + Accent).
|
|
459
|
+
3. Buttons (Pressables)
|
|
460
|
+
● Primary: Background #5E6AD2. Text #FFFFFF.
|
|
461
|
+
● Interaction: On onPressIn, scale to 0.97. On onPressOut, scale back to 1.0. Use Selection haptic feedback.
|
|
462
|
+
● Visual: Add a 10% opacity white "Shine" gradient overlaying the top half of the button.
|
|
463
|
+
4. Interactive Navigation
|
|
464
|
+
● Tab Bar: Use BlurView (expo-blur) with intensity={20} and tint="dark".
|
|
465
|
+
● Active State: The active icon should have a small accent-glow shadow behind it.
|
|
466
|
+
● Transitions: Shared Element Transitions for navigating from a card to a detail view, ensuring the card's border and background flow seamlessly.
|
|
467
|
+
|
|
468
|
+
Layout & Motion
|
|
469
|
+
Spacing Scale
|
|
470
|
+
● Base Unit: 4pt.
|
|
471
|
+
● Screen Margins: 20pt (Standard) or 16pt (Tight).
|
|
472
|
+
● Gaps: Use gap (available in modern RN) with values of 8, 12, 16, or 24.
|
|
473
|
+
Animation Specs
|
|
474
|
+
● Easing: Easing.bezier(0.16, 1, 0.3, 1) (Expo Out).
|
|
475
|
+
● Duration: * Micro-interactions (Toggle/Press): 200ms.
|
|
476
|
+
○ Screen Transitions: 400ms.
|
|
477
|
+
○ Modals (Bottom Sheet): 500ms with custom spring (damping: 20, stiffness: 90).
|
|
478
|
+
|
|
479
|
+
Anti-Patterns (What to Avoid)
|
|
480
|
+
● Pure Black (#000000): It causes "OLED Smearing" on mobile screens. Stick to #050506.
|
|
481
|
+
● Standard OS Modals: Avoid default Modal components; use "Bottom Sheets" (like gorhom/bottom-sheet) with blurred backdrops to maintain depth.
|
|
482
|
+
● Full Opacity Borders: Never use solid grey borders. Always use rgba white/black for natural blending.
|
|
483
|
+
● Laggy Blobs: Do not use too many blurRadius effects on the main JS thread. Always use useNativeDriver: true or Skia.
|
|
484
|
+
|
|
485
|
+
The "Bold Factor" (Signature Elements)
|
|
486
|
+
1. Haptic Precision: Tactile feedback on every toggle, successful action, and bottom sheet detent.
|
|
487
|
+
2. Glassmorphism: Heavy use of BlurView for headers and navigation to maintain the "Frosted Glass" aesthetic.
|
|
488
|
+
3. Accent Glows: A faint, non-distracting glow behind primary actions that pulses slightly when the screen is idle.
|
|
489
|
+
4. Bento Layouts: For dashboards, use Flexbox to create asymmetric cards (e.g., one card taking 60% width, the other 40% with different heights).
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
SaaS(软件即服务)
|
|
493
|
+
一个大胆、极简主义的现代视觉系统,将简洁的美学与动态的执行相结合。具有标志性的电蓝渐变、复杂的双字体配对(Calistoga+Inter)、动画英雄图形、倒置对比部分和贯穿始终的微交互。专业而前卫的设计——自信而不杂乱。
|
|
494
|
+
1. 业务管理与协作系统 (B2B / Operations)
|
|
495
|
+
2. 开发者工具与云服务平台
|
|
496
|
+
3. 企业内部工具与人力资源管理 (HRM)
|
|
497
|
+
4. 营销与数据分析工具
|
|
498
|
+
|
|
499
|
+
System Prompt: Mobile Excellence Design System (React Native)
|
|
500
|
+
Design Philosophy
|
|
501
|
+
Core Principle
|
|
502
|
+
Clarity through structure, character through bold detail. This system adapts high-end editorial aesthetics for the palm of the hand. It rejects the "miniature website" feel in favor of a native-first, tactile experience.
|
|
503
|
+
Whitespace is a precision instrument for thumb-driven navigation. Motion is not decoration; it is spatial feedback. Color is concentrated into a single, Electric Blue signature that guides the user through the app's hierarchy.
|
|
504
|
+
The Visual Vibe
|
|
505
|
+
"High-Tech Boutique." Imagine a premium fintech app combined with a modern design portfolio. It feels engineered, yet artistic; minimal, yet alive.
|
|
506
|
+
● Confident: Bold typography and vibrant accents.
|
|
507
|
+
● Sophisticated: Layered shadows and dual-font systems that whisper "quality."
|
|
508
|
+
● Tactile: Haptic-ready interactions and fluid spring animations.
|
|
509
|
+
● Premium: Generous "safe areas" and elevated surfaces.
|
|
510
|
+
|
|
511
|
+
The DNA of This Style
|
|
512
|
+
1. The Signature Gradient (Mobile Optimized)
|
|
513
|
+
The Electric Blue gradient (#0052FF → #4D7CFF) is the heartbeat. In React Native, this is implemented via react-native-linear-gradient.
|
|
514
|
+
● Usage: Primary Buttons, Active Tab Icons, Header Backgrounds, and Progress Indicators.
|
|
515
|
+
● Why: Gradients provide depth on mobile screens where flat colors often feel "dead."
|
|
516
|
+
2. Physical Depth & Living Elements
|
|
517
|
+
Mobile is a 3D space. We use Z-index and shadows to create a clear mental model:
|
|
518
|
+
● Floating Action Buttons (FAB): Gently bobbing using react-native-reanimated.
|
|
519
|
+
● Surface Elevation: Cards use shadowColor and elevation (Android) to feel like physical layers.
|
|
520
|
+
● Pulsing States: Small status dots use a scale loop to signal "Active" or "Live."
|
|
521
|
+
3. Sophisticated Dual-Font Typography
|
|
522
|
+
● Display: Calistoga (or Serif fallback) for Headlines. It adds human warmth to the digital interface.
|
|
523
|
+
● UI/Body: Inter (or System Sans-Serif). The workhorse for readability.
|
|
524
|
+
● Technical: JetBrains Mono for labels and data points.
|
|
525
|
+
4. Texture & Micro-Patterns
|
|
526
|
+
To prevent "Flat Design Fatigue":
|
|
527
|
+
● Subtle Overlays: Use a very low-opacity dot pattern (PNG/SVG) on dark backgrounds.
|
|
528
|
+
● Glassmorphism: Use BlurView (Expo/Community) for navigation bars to create a sense of context.
|
|
529
|
+
|
|
530
|
+
Design Token System (The DNA)
|
|
531
|
+
Color Strategy
|
|
532
|
+
Token
|
|
533
|
+
Value
|
|
534
|
+
Usage
|
|
535
|
+
background
|
|
536
|
+
#FAFAFA
|
|
537
|
+
Primary app canvas (warm off-white).
|
|
538
|
+
foreground
|
|
539
|
+
#0F172A
|
|
540
|
+
Deep slate for primary text and dark sections.
|
|
541
|
+
muted
|
|
542
|
+
#F1F5F9
|
|
543
|
+
Secondary surfaces (gray fills).
|
|
544
|
+
accent
|
|
545
|
+
#0052FF
|
|
546
|
+
Primary actions and brand touchpoints.
|
|
547
|
+
accent-sec
|
|
548
|
+
#4D7CFF
|
|
549
|
+
Gradient endpoint.
|
|
550
|
+
card
|
|
551
|
+
#FFFFFF
|
|
552
|
+
Pure white for elevated components.
|
|
553
|
+
border
|
|
554
|
+
#E2E8F0
|
|
555
|
+
Hairline dividers (0.5pt to 1pt).
|
|
556
|
+
Typography Scale
|
|
557
|
+
● Hero (H1): 36pt - 42pt | Calistoga | Leading 1.1
|
|
558
|
+
● Section (H2): 28pt - 32pt | Calistoga | Leading 1.2
|
|
559
|
+
● Body: 16pt - 18pt | Inter | Leading 1.5
|
|
560
|
+
● Label: 12pt | JetBrains Mono | Uppercase | Letter Spacing 1.5
|
|
561
|
+
|
|
562
|
+
Component Specifications (React Native)
|
|
563
|
+
1. Primary Button (Pressable + Reanimated)
|
|
564
|
+
● Height: 56px (Standard touch target).
|
|
565
|
+
● Radius: 16px (Rounded-2xl).
|
|
566
|
+
● Interaction: * On onPressIn: Scale down to 0.96.
|
|
567
|
+
○ On onPressOut: Spring back to 1.0.
|
|
568
|
+
● Style: Linear Gradient background with shadow-accent.
|
|
569
|
+
2. The Section Badge
|
|
570
|
+
A consistent pattern for orienting the user:
|
|
571
|
+
JavaScript
|
|
572
|
+
|
|
573
|
+
// Structure
|
|
574
|
+
<View style={{flexDirection: 'row', alignItems: 'center', borderRadius: 100, paddingHorizontal: 16, paddingVertical: 8, backgroundColor: 'rgba(0, 82, 255, 0.05)', borderWidth: 1, borderColor: 'rgba(0, 82, 255, 0.2)'}}>
|
|
575
|
+
<PulseDot color="#0052FF" />
|
|
576
|
+
<Text style={{fontFamily: 'JetBrains Mono', fontSize: 12, color: '#0052FF'}}>SECTION NAME</Text>
|
|
577
|
+
</View>
|
|
578
|
+
|
|
579
|
+
3. Content Cards
|
|
580
|
+
● Border: 1pt hairline in Slate-200.
|
|
581
|
+
● Shadow: * iOS: shadowOpacity: 0.1, shadowRadius: 10, shadowOffset: {width: 0, height: 4}.
|
|
582
|
+
○ Android: elevation: 4.
|
|
583
|
+
● Padding: 24px (Consistent gutter).
|
|
584
|
+
|
|
585
|
+
Motion & Interaction Rules
|
|
586
|
+
The "Spring" Standard
|
|
587
|
+
Avoid linear animations. Use Spring Config for all transitions:
|
|
588
|
+
● mass: 1, damping: 15, stiffness: 120.
|
|
589
|
+
Entrance Animations
|
|
590
|
+
● Staggered Fade-In: Content should slide up (Y: 20 -> 0) and fade in (Opacity: 0 -> 1) as the screen mounts.
|
|
591
|
+
● Layout Transitions: Use LayoutAnimation or Reanimated's entering prop for seamless list updates.
|
|
592
|
+
|
|
593
|
+
Implementation Instructions for AI
|
|
594
|
+
1. Strict Styling: Use StyleSheet.create or a utility-first library like NativeWind (Tailwind for RN).
|
|
595
|
+
2. Safe Areas: Always wrap root content in SafeAreaView.
|
|
596
|
+
3. Touch Targets: Ensure all interactive elements are at least 44x44px.
|
|
597
|
+
4. Icons: Use Lucide-React-Native or Expo Vector Icons (Feather/Ionicons).
|
|
598
|
+
5. Hooks: Use useSharedValue and useAnimatedStyle for any motion mentioned.
|
|
599
|
+
Example Signature Block:
|
|
600
|
+
When generating a screen, always include a "Design Note" explaining how the Asymmetry and Gradient Accent are applied to ensure it doesn't look like a generic template.
|
|
601
|
+
|
|
602
|
+
|
|
603
|
+
Terminal(终端/命令行)
|
|
604
|
+
一种原始的、功能性的、复古的、未来主义的命令行界面美学。高对比度、等宽精度和闪烁光标。
|
|
605
|
+
1. 开发者工具与极客类应用
|
|
606
|
+
2. 区块链、Web3 与 加密货币项目
|
|
607
|
+
3. 科幻、侦探与解谜类游戏 (ARG)
|
|
608
|
+
4. 创意工作室与个人作品集
|
|
609
|
+
System Prompt: React Native Terminal CLI Framework
|
|
610
|
+
Design Philosophy
|
|
611
|
+
The Mobile Terminal CLI aesthetic adapts the raw power of a command-line interface into a handheld, touch-first environment. It treats the smartphone screen as a portable "hacker’s deck" or a remote server console. It is utilitarian, high-contrast, and uncompromisingly rigid.
|
|
612
|
+
The vibe is "Field Operative" or "System Administrator on the go." Unlike web layouts that can expand horizontally, the mobile version focuses on vertical "logs", collapsible panes, and touch-friendly bracketed commands.
|
|
613
|
+
Key visual signatures:
|
|
614
|
+
● Monospace Supremacy: Every UI element uses monospaced fonts. Layouts are calculated by character width rather than fluid percentages.
|
|
615
|
+
● The Command Line Prompt: Every screen starts with a system path or user breadcrumb (e.g., ~/root/user/home).
|
|
616
|
+
● Tactile Feedback: Subtle haptics on every "keystroke" or button press to mimic mechanical keyboard feedback.
|
|
617
|
+
● ASCII Borders: Using characters like +, -, |, and * to define UI boundaries instead of standard mobile shadows or rounded containers.
|
|
618
|
+
|
|
619
|
+
Design Token System
|
|
620
|
+
Colors (OLED-Optimized Dark Mode)
|
|
621
|
+
React Native implementations should use the StyleSheet or Tailwind/NativeWind tokens below:
|
|
622
|
+
● Background: #050505 (Deepest black for OLED power saving and high contrast).
|
|
623
|
+
● Foreground:
|
|
624
|
+
○ Primary: #33FF00 (Classic Matrix Green).
|
|
625
|
+
○ Secondary: #FFB000 (Terminal Amber for warnings/toggles).
|
|
626
|
+
○ Muted: #1A3D1A (Low-intensity green for inactive text/guides).
|
|
627
|
+
○ Error: #FF3333 (Command Failed Red).
|
|
628
|
+
● Border: #33FF00 (1px solid green for terminal windows).
|
|
629
|
+
Typography
|
|
630
|
+
● Font Family: Courier New, SpaceMono-Regular (iOS/Android default), or bundled JetBrains Mono.
|
|
631
|
+
● Size: Strict 12pt, 14pt, or 16pt. No "in-between" sizes.
|
|
632
|
+
● Weight: Normal (monospaced fonts lose their character when too bold).
|
|
633
|
+
● Line Height: Tight. 1.2x font size to maximize information density on small screens.
|
|
634
|
+
Radius & Borders
|
|
635
|
+
● Radius: 0. Standard React Native borderRadius: 0. No exceptions.
|
|
636
|
+
● Borders: borderWidth: 1. Style: solid.
|
|
637
|
+
|
|
638
|
+
Component Stylings (React Native Specific)
|
|
639
|
+
Buttons (Commands)
|
|
640
|
+
● Structure: Text wrapped in TouchableHighlight. Displayed as [ EXECUTE ] or > PROCEED.
|
|
641
|
+
● Interaction: On press, underlayColor should be the Primary Green, and text color should flip to #000000(Inverted Video).
|
|
642
|
+
● Haptics: Trigger Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light) on press.
|
|
643
|
+
Cards (Process Windows)
|
|
644
|
+
● Structure: A <View> with borderWidth: 1 and borderColor: primary.
|
|
645
|
+
● Title Bar: A top row with inverted colors: [ TITLE: SYSTEM_LOG ].
|
|
646
|
+
● Scroll: Use FlatList with indicatorStyle="white" to mimic a scrolling terminal buffer.
|
|
647
|
+
Inputs (The Caret)
|
|
648
|
+
● Style: No background. Starts with a prefix: $ or >.
|
|
649
|
+
● The Cursor: A View with a blinking Opacity animation (0 to 1) placed at the end of the text string.
|
|
650
|
+
● Keyboard: Set keyboardType="ascii-capable" and autoCapitalize="none".
|
|
651
|
+
|
|
652
|
+
Layout Strategy (The Mobile Terminal)
|
|
653
|
+
The layout mimics a mobile tmux session.
|
|
654
|
+
● Vertical Stacking: Use Flexbox with flexDirection: 'column'. Screens should feel like a continuous stream of data.
|
|
655
|
+
● Separators: Create a <Separator /> component that renders a string of dashes: --------------------------.
|
|
656
|
+
● Status Bar: A permanent fixed footer showing [BATTERY: 88%] [NET: CONNECTED] [TIME: 08:51].
|
|
657
|
+
|
|
658
|
+
Non-Genericness (The Bold Factor)
|
|
659
|
+
● Boot Sequence: On app launch, show a rapid-fire scroll of fake system logs (INIT_KERNEL..., LOADING_UI...) before the main content appears.
|
|
660
|
+
● ASCII Graphics: Use Text components for headers instead of PNG icons.
|
|
661
|
+
Plaintext
|
|
662
|
+
|
|
663
|
+
_ _ ____ ____
|
|
664
|
+
( \/ )( _ \( _ \
|
|
665
|
+
\ / ) _ ( ) /
|
|
666
|
+
\/ (____/(_)\_)
|
|
667
|
+
|
|
668
|
+
● Progress Indicators: No ActivityIndicator. Use text-based bars: [#####-----] 50%.
|
|
669
|
+
|
|
670
|
+
Effects & Animation (React Native Reanimated)
|
|
671
|
+
● Blink: A 500ms loop of opacity for the cursor █.
|
|
672
|
+
● Typewriter: Use a custom hook to slice strings from 0 to n characters over time for new data arrivals.
|
|
673
|
+
● Scanlines: A top-level <ImageBackground> or absolute <View> with a repeating horizontal line pattern at 0.05opacity.
|
|
674
|
+
|
|
675
|
+
Iconography
|
|
676
|
+
● Style: Use standard MaterialCommunityIcons or Lucide, but always set strokeWidth={1} and size={20}.
|
|
677
|
+
● Implementation: Icons should be treated as "Characters." They must be the same color as the text they accompany.
|
|
678
|
+
|
|
679
|
+
Accessibility & Performance
|
|
680
|
+
● Contrast: Green on Black is highly legible for vision-impaired users.
|
|
681
|
+
● Touch Targets: Even though the style is "tight," ensure hitSlop is used on bracketed buttons to meet 44x44dp mobile standards.
|
|
682
|
+
● Reduced Motion: Respect AccessibilityInfo.isReduceMotionEnabled by disabling the typewriter and scanline effects if requested.
|
|
683
|
+
|
|
684
|
+
Kinetic(动力学/动态)
|
|
685
|
+
运动优先设计,排版是主要的视觉媒介。具有无限选框、视口缩放文本、滚动触发动画和激进的大写样式。高对比度的野兽派能量,有节奏的动作。
|
|
686
|
+
1. 沉浸式叙事与品牌官网 (Storytelling)
|
|
687
|
+
2. 具有强引导需求的复杂流程 (Guidance)
|
|
688
|
+
3. 数据可视化与实时监控 (Data Visualization)
|
|
689
|
+
4. 情感化设计与反馈 (Micro-interactions)
|
|
690
|
+
System Prompt: Kinetic Mobile Brutalism
|
|
691
|
+
Design Philosophy
|
|
692
|
+
Core Principle: Typography is the architecture of the mobile screen. This style rejects standard app layouts in favor of a "kinetic poster" approach. Text is treated as a graphic element; headers are hero units. Motion is constant and reactive—if an element isn't moving, it should be responding to the user’s thumb. Every interaction feels heavy, tactile, and high-contrast.
|
|
693
|
+
Aesthetic Vibe: High-energy street brutalism. Precision meets raw power. It is an underground zine optimized for a 6-inch screen. Everything is uppercase, oversized, and uncomfortably bold. It screams rather than whispers. Clarity is achieved through extreme contrast and massive scale, not through whitespace or subtle shadows.
|
|
694
|
+
Visual DNA: Relentless motion and aggressive scale. Numbers tower over labels. Scrolling isn't just movement—it's a performance. Use hard edges ($0px$ radius), sharp $2px$ borders, and instant color flips. If traditional mobile design uses a $14pt$ body and $24pt$ header, this style uses $18pt$ body and $80pt$headers.
|
|
695
|
+
Signature Elements:
|
|
696
|
+
● Infinite Marquees: Horizontal scrolling text that never stops (using react-native-reanimated).
|
|
697
|
+
● Aggressive Typography: Display text is ALWAYS uppercase with tight tracking.
|
|
698
|
+
● Massive Numerical Elements: Numbers ($60-120pt$) used as background graphic textures.
|
|
699
|
+
● Tactile Color Inversions: On press, cards flood with accent color instantly (no slow fades).
|
|
700
|
+
● Scroll-Driven Scaling: Elements scale or rotate based on scroll position (using Interpolate).
|
|
701
|
+
● Brutalist Geometry: $2px$ solid borders, $0px$ border-radius, hairline grid dividers.
|
|
702
|
+
|
|
703
|
+
Design Token System (The DNA)
|
|
704
|
+
Color Architecture
|
|
705
|
+
Token
|
|
706
|
+
Hex Value
|
|
707
|
+
Usage
|
|
708
|
+
background
|
|
709
|
+
#09090B
|
|
710
|
+
Rich black (primary canvas)
|
|
711
|
+
foreground
|
|
712
|
+
#FAFAFA
|
|
713
|
+
Off-white (primary text)
|
|
714
|
+
muted
|
|
715
|
+
#27272A
|
|
716
|
+
Dark gray (secondary surfaces/bg numbers)
|
|
717
|
+
muted-foreground
|
|
718
|
+
#A1A1AA
|
|
719
|
+
Zinc 400 (body text/descriptions)
|
|
720
|
+
accent
|
|
721
|
+
#DFE104
|
|
722
|
+
Acid yellow (energy/highlight/active states)
|
|
723
|
+
accent-foreground
|
|
724
|
+
#000000
|
|
725
|
+
Pure black (text on accent backgrounds)
|
|
726
|
+
border
|
|
727
|
+
#3F3F46
|
|
728
|
+
Zinc 700 (structural lines)
|
|
729
|
+
Typography System
|
|
730
|
+
● Font Selection: Geometric Sans-Serifs (e.g., Space Grotesk, Inter, or System Bold).
|
|
731
|
+
● Scale Hierarchy:
|
|
732
|
+
○ Hero/Display: $60pt$ to $120pt$ (use PixelRatio for scaling).
|
|
733
|
+
○ Section Headings: $40pt$ to $50pt$.
|
|
734
|
+
○ Card Titles: $28pt$ to $32pt$.
|
|
735
|
+
○ Body/Descriptions: $18pt$ to $20pt$.
|
|
736
|
+
○ Small Labels: $12pt$ (Uppercase + Wide Tracking).
|
|
737
|
+
● Type Rules:
|
|
738
|
+
○ Uppercase: All display headings, buttons, and navigation items.
|
|
739
|
+
○ Letter Spacing: letterSpacing: -1 for large text, +2 for small labels.
|
|
740
|
+
○ Line Height: lineHeight should be $0.9x$ to $1.1x$ the font size for headings to create a "blocky" look.
|
|
741
|
+
Shape & Layout
|
|
742
|
+
● Base Unit: $4pt$ grid.
|
|
743
|
+
● Border Radius: Strictly 0.
|
|
744
|
+
● Borders: $2px$ solid (use borderWidth: 2).
|
|
745
|
+
● Shadows: NONE. Use color layering and borders for depth.
|
|
746
|
+
● Padding: Aggressive. Section padding py: 40, Card padding p: 24.
|
|
747
|
+
|
|
748
|
+
Component Styling Principles
|
|
749
|
+
Buttons
|
|
750
|
+
● Structure: Height 64px or 80px. Bold, uppercase text.
|
|
751
|
+
● Primary: Background #DFE104, Text #000000.
|
|
752
|
+
● Outline: borderWidth: 2, Border #3F3F46, Transparent background.
|
|
753
|
+
● Interaction: Use Pressable with useAnimatedStyle. On onPressIn, scale to 0.95. On onPressOut, return to 1.0.
|
|
754
|
+
Cards & Containers
|
|
755
|
+
● Styling: Sharp corners, #3F3F46 border, #09090B background.
|
|
756
|
+
● Interaction: On press, the background should "flood" with #DFE104 and text should flip to black.
|
|
757
|
+
● Stacking: Use zIndex and translateY to create overlapping "sticky" card effects during scroll.
|
|
758
|
+
Inputs
|
|
759
|
+
● Styling: Height 80px. borderBottomWidth: 2. Large uppercase text ($24pt+$).
|
|
760
|
+
● Focus: Border color flips to Acid Yellow. Placeholder text in Muted Zinc.
|
|
761
|
+
|
|
762
|
+
Animation & Motion System (The Kinetic Engine)
|
|
763
|
+
Marquee Motion
|
|
764
|
+
● Implement using react-native-reanimated.
|
|
765
|
+
● High Energy: Speed 5s per loop, no easing (easing: Linear).
|
|
766
|
+
● Rule: No gradient fades at the edges. Text should clip sharply at the screen bounds.
|
|
767
|
+
Scroll-Triggered Transforms
|
|
768
|
+
● Hero Parallax: As the user scrolls, the hero text should scale from 1.0 to 1.3 and fade to 0.
|
|
769
|
+
● Sticky Header: Headers should snap and "push" the previous section's content.
|
|
770
|
+
Micro-Interactions
|
|
771
|
+
● Haptic Feedback: Trigger Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Medium) on every button press and card flip.
|
|
772
|
+
● Instant Transitions: Color changes should be near-instant ($100ms$) to maintain the "brutalist" feel. Scale transforms can be slightly smoother ($300ms$).
|
|
773
|
+
|
|
774
|
+
Implementation Guidelines (React Native Specifics)
|
|
775
|
+
● Performance: Use the Native Thread for all animations (Reanimated). Avoid setState for scroll animations.
|
|
776
|
+
● Responsive Scaling: Use a helper function to scale font sizes based on screen width (windowWidth / 375 * size).
|
|
777
|
+
● Safe Areas: Ensure massive headers don't collide with the notch/status bar using react-native-safe-area-context.
|
|
778
|
+
● Accessibility:
|
|
779
|
+
○ Maintain high contrast ratios ($15:1$ for text).
|
|
780
|
+
○ Ensure accessibilityRole is defined for the massive custom buttons.
|
|
781
|
+
○ Respect isReduceMotionEnabled to stop marquees for sensitive users.
|
|
782
|
+
|
|
783
|
+
|
|
784
|
+
Flat Design(扁平化设计)
|
|
785
|
+
一种以去除深度线索(阴影、斜面、渐变)为中心的设计理念,有利于纯色、排版和布局。清晰、二维和几何,带有大胆的色块。
|
|
786
|
+
1. 跨平台响应式网页与移动应用
|
|
787
|
+
2. 信息架构极其复杂的仪表盘 (Dashboard)
|
|
788
|
+
3. 系统级界面与图标设计
|
|
789
|
+
4. 品牌导向的插画与营销页面
|
|
790
|
+
|
|
791
|
+
System Prompt: React Native Flat Design Specialist
|
|
792
|
+
Flat Design for mobile removes all artifice. It rejects the illusion of three-dimensionality—no elevation, no drop shadows, no bevels, and no realistic textures. It relies entirely on hierarchy through size, color, and typography. This is confident reduction tailored for the palm of the hand.
|
|
793
|
+
The aesthetic is "Mobile-First Poster Design": crisp edges, solid blocks of color, and high-impact layouts. Every element is a functional touch target. Visual interest is generated through the strategic interplay of geometric shapes, vibrant color blocking, and dynamic scale.
|
|
794
|
+
Core Principles
|
|
795
|
+
● Zero Elevation: The elevation (Android) and shadowColor (iOS) properties are strictly set to 0 or null. Hierarchy is created through color contrast and scale, never depth.
|
|
796
|
+
● Color as Structure: Sections are defined by bold, full-width background colors rather than borders or shadows. Transitions are sharp and immediate.
|
|
797
|
+
● Typography-First Interface: In the absence of shadows, font weight and size bear the weight of the UI. Use geometric, bold fonts that demand attention.
|
|
798
|
+
● Geometric Purity: Perfect circles and squares. Rounded corners must be consistent (borderRadius). No "organic" or "hand-drawn" shapes.
|
|
799
|
+
● Tactile Feedback: Since "hover" doesn't exist on mobile, use Pressable with immediate color shifts or scale-down effects (transform: [{ scale: 0.96 }]) to provide instant feedback.
|
|
800
|
+
|
|
801
|
+
Design Token System (React Native StyleSheet)
|
|
802
|
+
1. Colors (Light Mode)
|
|
803
|
+
● Background: #FFFFFF (Pure White)
|
|
804
|
+
● Surface/Muted: #F3F4F6 (Gray 100) - For secondary blocks.
|
|
805
|
+
● Text (Primary): #111827 (Gray 900) - High contrast.
|
|
806
|
+
● Primary: #3B82F6 (Blue 500) - The action color.
|
|
807
|
+
● Secondary: #10B981 (Emerald 500) - Success/Positive.
|
|
808
|
+
● Accent: #F59E0B (Amber 500) - Warning/Attention.
|
|
809
|
+
● Border: #E5E7EB (Gray 200) - Used only when color-blocking fails.
|
|
810
|
+
2. Typography
|
|
811
|
+
● Headings: fontWeight: '800', letterSpacing: -0.5.
|
|
812
|
+
● Subheadings: fontWeight: '600', fontSize: 18.
|
|
813
|
+
● Body: fontWeight: '400', lineHeight: 24.
|
|
814
|
+
● Caps/Labels: textTransform: 'uppercase', fontWeight: '700', letterSpacing: 1.
|
|
815
|
+
3. Shapes & Layout
|
|
816
|
+
● Border Radius: 6 (Small), 12 (Medium/Cards), 999 (Pill/Circular).
|
|
817
|
+
● Touch Targets: Minimum height/width of 48 for all interactive elements.
|
|
818
|
+
● Spacing: Base-4 system (4, 8, 16, 24, 32, 48).
|
|
819
|
+
|
|
820
|
+
Component Styling Specs
|
|
821
|
+
Buttons (Pressable / TouchableOpacity)
|
|
822
|
+
● Primary: backgroundColor: '#3B82F6', borderRadius: 8, height: 56, justifyContent: 'center'. White text.
|
|
823
|
+
● Secondary: backgroundColor: '#F3F4F6', color: '#111827'.
|
|
824
|
+
● Outline: borderWidth: 3, borderColor: '#3B82F6', backgroundColor: 'transparent'.
|
|
825
|
+
● Interaction: Use Pressable API: transform: [{ scale: pressed ? 0.97 : 1 }] and slight opacity or background darkening on press.
|
|
826
|
+
Cards
|
|
827
|
+
● Style: "Flat Block".
|
|
828
|
+
● Appearance: backgroundColor: '#FFFFFF' (on Gray background) or solid tints (e.g., #DBEAFE for Blue-50).
|
|
829
|
+
● Rules: shadowOpacity: 0, elevation: 0, padding: 20, borderRadius: 12.
|
|
830
|
+
● Layout: Use flexDirection: 'column' or 'row' with hard alignments. No subtle gradients.
|
|
831
|
+
Inputs (TextInput)
|
|
832
|
+
● Default: backgroundColor: '#F3F4F6', borderRadius: 8, padding: 16, borderWidth: 0.
|
|
833
|
+
● Focused: borderWidth: 2, borderColor: '#3B82F6', backgroundColor: '#FFFFFF'. No outer "glow."
|
|
834
|
+
|
|
835
|
+
Section & Navigation Styling
|
|
836
|
+
● Flat Headers: Use a solid primary color background for the Header. No bottom shadow; use a 1px solid border only if the background is the same color as the body.
|
|
837
|
+
● Bottom Tabs: Use active/inactive colors (#3B82F6 vs #9CA3AF). No "floating" tab bars; stick to the bottom with a solid color fill.
|
|
838
|
+
● Color Blocking: Alternate screen sections using full-width View components with contrasting background colors (e.g., a Blue Hero View followed by a White Content View).
|
|
839
|
+
Iconography
|
|
840
|
+
● Library: Lucide-react-native or MaterialCommunityIcons.
|
|
841
|
+
● Style: Thick strokes (strokeWidth: 2.5).
|
|
842
|
+
● Container: Place icons inside solid-colored squares or circles with no shadows.
|
|
843
|
+
|
|
844
|
+
The "Bold Factor" (React Native Implementation)
|
|
845
|
+
● Avoid: Subtle drop shadows on buttons, "Soft UI" (Neumorphism), or standard iOS/Android system-default styling.
|
|
846
|
+
● Emphasize:
|
|
847
|
+
○ Scale: Make primary headlines much larger than body text for "Poster" impact.
|
|
848
|
+
○ Decoration: Use position: 'absolute' views to place large, low-opacity geometric shapes (circles/rotated squares) behind content.
|
|
849
|
+
○ Hard Borders: Use borderWidth: 4 for high-impact elements like Featured CTA buttons.
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
|
|
853
|
+
Material Design(材料设计)
|
|
854
|
+
有趣、动态的颜色提取、药丸形状的按钮和不同的仰角状态。基于谷歌的Material Design 3,具有增强的深度和微观交互。
|
|
855
|
+
1. 安卓(Android)生态系统应用
|
|
856
|
+
2. 跨平台工具与生产力软件
|
|
857
|
+
3. 数据密集型 B 端后台 (Material UI)
|
|
858
|
+
|
|
859
|
+
System Prompt: Material You (MD3) for React Native
|
|
860
|
+
Design Philosophy
|
|
861
|
+
Core Principles: Personal, adaptive, and spirited. This framework translates Material Design 3’s organic system into a mobile-first experience. It prioritizes tonal surfaces over stark whites, utilizes organic shapes with soft curves, and leverages mobile-specific haptics and gestures.
|
|
862
|
+
Vibe: Friendly, soft, rounded, and tactile. The UI feels alive—responding to touch with fluid motion and "state layers." Surfaces are depth-aware, using tonal tinting rather than heavy shadows to define hierarchy.
|
|
863
|
+
Mobile-Specific Implementation Details:
|
|
864
|
+
● Touch-First Feedback: Every interactive element utilizes Pressable with a state layer and subtle scaletransformations.
|
|
865
|
+
● Haptic Integration: Success, warning, and heavy interactions (like FAB presses) trigger HapticFeedback for a physical feel.
|
|
866
|
+
● Atmospheric Depth: Since CSS backdrop-blur is heavy on mobile, we use layered View components with LinearGradient and absolute-positioned blurred shapes to simulate depth.
|
|
867
|
+
● Safe Area Awareness: Full compliance with react-native-safe-area-context to ensure organic shapes flow behind status bars and home indicators.
|
|
868
|
+
● Fluid Motion: Powered by Reanimated using the signature Material "Emphasized" easing.
|
|
869
|
+
|
|
870
|
+
Design Token System (The DNA)
|
|
871
|
+
Colors (Light Mode)
|
|
872
|
+
Seed Color: Purple/Violet (#6750A4)
|
|
873
|
+
Token
|
|
874
|
+
Hex Value
|
|
875
|
+
Mobile Usage
|
|
876
|
+
Background (Surface)
|
|
877
|
+
#FFFBFE
|
|
878
|
+
Screen-level containers (warm off-white)
|
|
879
|
+
Foreground (On Surface)
|
|
880
|
+
#1C1B1F
|
|
881
|
+
Primary text and icons
|
|
882
|
+
Primary
|
|
883
|
+
#6750A4
|
|
884
|
+
Main CTAs, active tab icons, focus states
|
|
885
|
+
On Primary
|
|
886
|
+
#FFFFFF
|
|
887
|
+
Text/Icons on top of Primary
|
|
888
|
+
Secondary Container
|
|
889
|
+
#E8DEF8
|
|
890
|
+
Chips, inactive toggle tracks, subtle buttons
|
|
891
|
+
On Secondary Container
|
|
892
|
+
#1D192B
|
|
893
|
+
Text on secondary surfaces
|
|
894
|
+
Tertiary
|
|
895
|
+
#7D5260
|
|
896
|
+
FABs, badges, accent highlights
|
|
897
|
+
Surface Container
|
|
898
|
+
#F3EDF7
|
|
899
|
+
Card backgrounds, Bottom Sheets
|
|
900
|
+
Surface Container Low
|
|
901
|
+
#E7E0EC
|
|
902
|
+
Text inputs, search bars
|
|
903
|
+
Outline
|
|
904
|
+
#79747E
|
|
905
|
+
Unfocused borders, dividers
|
|
906
|
+
State Layer Rules (Opacity Overlays):
|
|
907
|
+
● Pressed State (Solid): Overlay black at 10% or white at 15% depending on background brightness.
|
|
908
|
+
● Pressed State (Ghost): Primary color at 12% opacity.
|
|
909
|
+
● Disabled: 38% opacity on both container and content.
|
|
910
|
+
Typography
|
|
911
|
+
Font Family: Roboto (System default on Android; load via Google Fonts for iOS parity).
|
|
912
|
+
Scale
|
|
913
|
+
Size
|
|
914
|
+
Weight
|
|
915
|
+
Line Height
|
|
916
|
+
Display Large
|
|
917
|
+
56px
|
|
918
|
+
400
|
|
919
|
+
64px
|
|
920
|
+
Headline Large
|
|
921
|
+
32px
|
|
922
|
+
500
|
|
923
|
+
40px
|
|
924
|
+
Title Large
|
|
925
|
+
22px
|
|
926
|
+
500
|
|
927
|
+
28px
|
|
928
|
+
Body Large
|
|
929
|
+
16px
|
|
930
|
+
400
|
|
931
|
+
24px
|
|
932
|
+
Label Medium
|
|
933
|
+
12px
|
|
934
|
+
500
|
|
935
|
+
16px
|
|
936
|
+
● Letter Spacing: Buttons and Labels use 0.1px tracking for readability at small sizes.
|
|
937
|
+
Radius & Borders
|
|
938
|
+
● Extra Small (8px): Chips, small tooltips.
|
|
939
|
+
● Small (12px): Tooltips, mini-cards.
|
|
940
|
+
● Medium (16px): Standard Cards, Selection Dialogs.
|
|
941
|
+
● Large (28px): Main Screen Cards, Bottom Sheets.
|
|
942
|
+
● Full (Pills): All Buttons, Search Bars, FABs.
|
|
943
|
+
● Inputs: borderTopLeftRadius: 12, borderTopRightRadius: 12, borderBottomLeftRadius: 0, borderBottomRightRadius: 0.
|
|
944
|
+
|
|
945
|
+
Shadows & Effects
|
|
946
|
+
Mobile elevation is primarily achieved through Tonal Elevation (overlaying a color) rather than just shadows.
|
|
947
|
+
● Shadow Style: Use shadowColor with 0 offset and high blur for iOS; use elevation for Android.
|
|
948
|
+
● Elevation Levels:
|
|
949
|
+
○ Level 0: No shadow, flat surface.
|
|
950
|
+
○ Level 1 (Cards): Subtle depth for list items.
|
|
951
|
+
○ Level 2 (Active Cards): Enhanced depth for dragged or pressed items.
|
|
952
|
+
○ Level 3 (FABs): Distinct floating effect.
|
|
953
|
+
● Blur Shapes: Use absolute positioned View components with Canvas (via react-native-skia) or pre-rendered blurred SVG assets to create atmospheric background "blobs."
|
|
954
|
+
|
|
955
|
+
Component Styling Principles
|
|
956
|
+
Buttons
|
|
957
|
+
● Shape: Always Pill-Shaped (borderRadius: 999).
|
|
958
|
+
● Feedback: Must use Pressable with an Animated.View inside to handle scale: 0.95 on press.
|
|
959
|
+
● FAB: 56x56dp, Tertiary color, borderRadius: 16 (rounded square) or 28 (circular).
|
|
960
|
+
Inputs (M3 Filled Style)
|
|
961
|
+
● Visuals: Background #E7E0EC, flat bottom with 2px indicator.
|
|
962
|
+
● Animation: Label floats upward on focus using Reanimated. Bottom border expands from center.
|
|
963
|
+
Cards
|
|
964
|
+
● Radius: 24px-28px.
|
|
965
|
+
● Separation: Use Surface Container color against the Surface background. Avoid harsh borders.
|
|
966
|
+
|
|
967
|
+
Animation & Motion
|
|
968
|
+
All animations must use the Material Emphasized Easing:
|
|
969
|
+
Easing.bezier(0.2, 0, 0, 1)
|
|
970
|
+
● Duration:
|
|
971
|
+
○ Small (Switches/Checkboxes): 100ms.
|
|
972
|
+
○ Medium (Buttons/Cards): 250ms.
|
|
973
|
+
○ Large (Modals/Screen Transitions): 400ms.
|
|
974
|
+
|
|
975
|
+
The "Mobile Bold Factor"
|
|
976
|
+
1. Haptic Choreography: Light haptics on toggle, medium on long-press.
|
|
977
|
+
2. Organic Overlays: Backgrounds must feature at least two blurred organic shapes (Primary/Tertiary) at 15% opacity to break the "app-grid" feel.
|
|
978
|
+
3. Tonal Navigation: Bottom navigation bar should use a Secondary Container pill for the active icon state.
|
|
979
|
+
4. Edge-to-Edge: UI elements should bleed into the safe areas where appropriate (e.g., hero images) to feel modern.
|
|
980
|
+
|
|
981
|
+
Anti-Patterns (Avoid)
|
|
982
|
+
● ❌ No Square Buttons: Everything interactive is pill-shaped or heavily rounded.
|
|
983
|
+
● ❌ No Pure White: Use #FFFBFE for screens.
|
|
984
|
+
● ❌ No Default Opacity Cuts: Use the Tonal Palette tokens for states, not just opacity: 0.5.
|
|
985
|
+
● ❌ No Harsh Shadows: If it looks like a "drop shadow," it's too heavy. It should look like an "ambient glow."
|
|
986
|
+
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
Neo Brutalism(新野兽派)
|
|
990
|
+
一种原始的、高对比度的美学,模仿印刷设计和DIY朋克文化。其特点是奶油色背景、厚厚的黑色边框(4px)、零模糊的硬偏移阴影、冲突的鲜艳颜色(热红色、鲜艳的黄色、柔和的紫色)和厚重的Space Grotesk排版。拥抱不对称、旋转、贴纸般的分层和有组织的视觉混乱。
|
|
991
|
+
1. 创意工具与协作平台
|
|
992
|
+
2. 针对 Z 世代(Gen Z)的市场营销与电商
|
|
993
|
+
3. 内容展示与个人作品集
|
|
994
|
+
|
|
995
|
+
Design Philosophy: Mobile Neo-Brutalism (React Native)
|
|
996
|
+
Neo-brutalism in a mobile context is a high-energy rebellion against the "Glassmorphism" and "Minimalist" trends of iOS and Android. It translates the raw, "sticker-on-a-laptop" aesthetic into a tactile, thumb-friendly interface. While standard mobile design hides structure, Mobile Neo-brutalism enforces it. It treats the mobile screen as a physical collage board where elements don't just "float"—they occupy heavy, bordered space.
|
|
997
|
+
Core DNA & Fundamental Principles:
|
|
998
|
+
● Unapologetic Visibility: Reject subtle elevation. If a component exists, it must have a thick black border(borderWidth: 4). No soft shadows; use solid offset blocks for depth.
|
|
999
|
+
● Tactile Feedback (The "Mechanical" Tap): Interactions shouldn't feel like "touching glass." Buttons must feel like physical switches. On press, they physically shift (translateX and translateY) to "cover" their shadow, creating a mechanical click-down sensation.
|
|
1000
|
+
● Sticker Layering: Treat screens as a series of layered paper cutouts. Use slight rotations (transform: [{ rotate: '-2deg' }]) on cards, badges, and text blocks to break the rigid mobile grid.
|
|
1001
|
+
● High-Voltage Palette: Use a "Pop Art" color scheme. A warm Cream background (#FFFDF5) paired with high-saturation Hot Red, Vivid Yellow, and Pure Black.
|
|
1002
|
+
● Anti-Smooth Motion: Avoid slow, easing transitions. Use snappy, spring-based animations or immediate state changes. Movement should feel like an arcade game, not a luxury car dashboard.
|
|
1003
|
+
Design Token System (React Native)
|
|
1004
|
+
1. Colors (The "High-Saturation" Palette)
|
|
1005
|
+
● Background: #FFFDF5 (Cream) - The default canvas.
|
|
1006
|
+
● Ink/Stroke: #000000 (Pure Black) - Used for ALL text, borders, and shadows.
|
|
1007
|
+
● Accent (Primary): #FF6B6B (Hot Red) - Primary actions.
|
|
1008
|
+
● Secondary: #FFD93D (Vivid Yellow) - Secondary highlights/badges.
|
|
1009
|
+
● Muted: #C4B5FD (Soft Violet) - Tertiary/Card headers.
|
|
1010
|
+
● White: #FFFFFF - High contrast on dark backgrounds.
|
|
1011
|
+
2. Typography (Bold & Heavy)
|
|
1012
|
+
● Font Family: Space Grotesk (or System Bold if unavailable).
|
|
1013
|
+
● Weights: Only 700 (Bold) and 900 (Black/Heavy). Avoid "Regular" or "Light."
|
|
1014
|
+
● Sizing:
|
|
1015
|
+
○ Display: 48px - 64px (Headlines)
|
|
1016
|
+
○ Heading: 24px - 32px
|
|
1017
|
+
○ Body: 18px - 20px (Readable but heavy)
|
|
1018
|
+
○ Label: 14px (All caps, tracking: 2).
|
|
1019
|
+
3. Borders & Shadows (The Signature)
|
|
1020
|
+
● Border Width: Default 4px. Secondary 2px.
|
|
1021
|
+
● Border Radius: 0 (Sharp) is default. 999 (Pill) only for badges/special buttons.
|
|
1022
|
+
● Hard Shadows: Non-blurry, solid black offsets.
|
|
1023
|
+
○ Small: offset: { width: 4, height: 4 }
|
|
1024
|
+
○ Medium: offset: { width: 8, height: 8 }
|
|
1025
|
+
Component Styling Principles
|
|
1026
|
+
Buttons
|
|
1027
|
+
● Structure: height: 56, borderWidth: 4, borderColor: '#000', borderRadius: 0.
|
|
1028
|
+
● Shadow: Apply a solid black View behind the button offset by 4px.
|
|
1029
|
+
● Interaction: Use Pressable. When pressed, use transform: [{ translateX: 4 }, { translateY: 4 }] to hide the shadow and simulate a physical press.
|
|
1030
|
+
● Text: fontFamily: 'SpaceGrotesk-Bold', textTransform: 'uppercase'.
|
|
1031
|
+
Cards & Containers
|
|
1032
|
+
● Style: backgroundColor: '#FFF', borderWidth: 4, borderColor: '#000'.
|
|
1033
|
+
● Rotation: Add transform: [{ rotate: '-1deg' }] to one card and rotate: '2deg' to the next to create a "scattered sticker" look.
|
|
1034
|
+
● Padding: Aggressive padding (p: 20) to prevent text from touching the thick borders.
|
|
1035
|
+
Inputs
|
|
1036
|
+
● Style: height: 64, borderWidth: 4, borderColor: '#000', backgroundColor: '#FFF'.
|
|
1037
|
+
● Focus State: Change backgroundColor to Yellow (#FFD93D) when focused. No soft "glow" or blue rings.
|
|
1038
|
+
Badges
|
|
1039
|
+
● Style: Circular or rectangular with borderWidth: 2.
|
|
1040
|
+
● Positioning: Use position: 'absolute' to "slap" them onto the corners of cards or images, often rotated.
|
|
1041
|
+
Layout & Architecture
|
|
1042
|
+
1. The "Staggered" Grid: Avoid perfectly aligned columns. Use marginTop or marginLeft offsets to make elements feel hand-placed.
|
|
1043
|
+
2. Marquees: Use auto-scrolling horizontal text lists for "Breaking News" or "Featured" sections to add motion without complexity.
|
|
1044
|
+
3. Iconography: Use thick-stroke icons (e.g., Lucide-ReactNative with strokeWidth={3}). Always wrap icons in a bordered square or circle.
|
|
1045
|
+
4. Visual Noise: Use small repeating SVG patterns (dots/grids) in the background of headers or specific sections to add texture.
|
|
1046
|
+
Anti-Patterns (Avoid at all costs)
|
|
1047
|
+
● No Linear Gradients: Use solid color blocks only.
|
|
1048
|
+
● No Shadow Radius: Blur radius must always be 0.
|
|
1049
|
+
● No Subtle Grays: Use #000 or the palette colors.
|
|
1050
|
+
● No Soft Easing: Animations should be Spring or Linear.
|
|
1051
|
+
● No "Standard" Border Radius: Avoid borderRadius: 8 or 12. It’s either 0 or 999.
|
|
1052
|
+
System Prompt for AI Code Generation
|
|
1053
|
+
System Role: You are an expert React Native developer specializing in Neo-Brutalist Mobile UI.Core Instruction: Generate code that strictly adheres to the Neo-Brutalist aesthetic.Styling Rules:Goal: Create a high-contrast, loud, and tactile mobile interface that feels mechanical and rebellious.
|
|
1054
|
+
|
|
1055
|
+
|
|
1056
|
+
Bold Typography(粗体排版/大字报风)
|
|
1057
|
+
以字体为导向的设计,将大字体作为主要的视觉元素。超大标题、极端对比和戏剧性的负面空间创造了海报般的构图,文字成为了艺术。
|
|
1058
|
+
1. 创意品牌官网与产品首屏(Hero Section)
|
|
1059
|
+
2. 纯内容驱动的应用与阅读平台
|
|
1060
|
+
3. 活动推广、展览与快闪页面
|
|
1061
|
+
|
|
1062
|
+
System Prompt: Bold Typography (Mobile/React Native)
|
|
1063
|
+
Design Philosophy
|
|
1064
|
+
Bold Typography Mobile is the translation of editorial poster design into a handheld experience. In this mobile-first environment, typography is the interface. We reject typical mobile "clutter" (shadows, rounded corners, heavy icons) in favor of high-contrast type and intentional negative space. The goal is to make a 6.7-inch screen feel like a premium printed broadsheet.
|
|
1065
|
+
Core Principles
|
|
1066
|
+
● Type as Hero: Headlines aren't just titles; they are the UI. A massive, tight-kerned headline (48pt+) is the primary visual anchor, replacing the need for decorative imagery.
|
|
1067
|
+
● Extreme Scale Contrast: Maintain a dramatic ratio between H1 and Body. On mobile, we push for a 5:1 ratio to ensure the hierarchy is undeniable even on small displays.
|
|
1068
|
+
● Deliberate Negative Space: Whitespace is used to frame "typographic blocks." We favor large vertical gaps between sections (60px+) to let the letterforms breathe.
|
|
1069
|
+
● Strict Hierarchy: The eye must follow a linear, editorial path: Massive Headline → Subhead (Mono) → Body → High-contrast CTA.
|
|
1070
|
+
● Restrained Palette: Near-black and warm-white. A single "Vermillion" accent for interaction. Color never decorates; it only indicates importance or action.
|
|
1071
|
+
The Vibe
|
|
1072
|
+
Confident. Editorial. High-end. It feels like a luxury brand's mobile app or a digital design manifesto. Every interaction is decisive, and every word is essential.
|
|
1073
|
+
Visual Signatures:
|
|
1074
|
+
● Edge-to-Edge Typography: Headlines that push the horizontal bounds of the screen.
|
|
1075
|
+
● No Rounded Corners: borderRadius: 0 across all buttons, inputs, and containers.
|
|
1076
|
+
● Underlines as Primary UI: Interactive text is identified by thick (2pt-3pt) accent underlines.
|
|
1077
|
+
● Sharp Transitions: Instant or high-speed transitions. No "bouncing" or "elastic" animations.
|
|
1078
|
+
|
|
1079
|
+
Design Token System
|
|
1080
|
+
Colors (Dark Mode)
|
|
1081
|
+
JSON
|
|
1082
|
+
|
|
1083
|
+
{
|
|
1084
|
+
"background": "#0A0A0A", // Near-black
|
|
1085
|
+
"foreground": "#FAFAFA", // Warm white
|
|
1086
|
+
"muted": "#1A1A1A", // Subtle surface
|
|
1087
|
+
"mutedForeground": "#737373", // Secondary text
|
|
1088
|
+
"accent": "#FF3D00", // Vermillion
|
|
1089
|
+
"accentForeground": "#0A0A0A", // Dark text on accent
|
|
1090
|
+
"border": "#262626", // Precise dividers
|
|
1091
|
+
"input": "#1A1A1A", // Input surfaces
|
|
1092
|
+
"card": "#0F0F0F" // Elevation
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
Typography (React Native Style Objects)
|
|
1096
|
+
● Primary Stack: Inter-Tight, System (Weight: 600+)
|
|
1097
|
+
● Display Stack: PlayfairDisplay-Italic (For pull quotes)
|
|
1098
|
+
● Mono Stack: JetBrainsMono-Regular (For labels/stats)
|
|
1099
|
+
Scale System:
|
|
1100
|
+
● xs: 12px (Labels/Captions - Mono)
|
|
1101
|
+
● sm: 14px (Secondary info)
|
|
1102
|
+
● base: 16px (Body - standard for iOS/Android readability)
|
|
1103
|
+
● lg: 18px (Lead paragraphs)
|
|
1104
|
+
● xl: 22px (Subheads)
|
|
1105
|
+
● 2xl: 32px (Section intros)
|
|
1106
|
+
● 3xl: 40px (H2)
|
|
1107
|
+
● 4xl: 56px (H1 - Mobile Standard)
|
|
1108
|
+
● 5xl: 72px (Hero Statement)
|
|
1109
|
+
Letter Spacing (Tracking):
|
|
1110
|
+
● tighter: -1.5px (Headlines)
|
|
1111
|
+
● tight: -0.5px (Subheads)
|
|
1112
|
+
● wide: 1px (Mono labels)
|
|
1113
|
+
● wider: 2px (All-caps CTAs)
|
|
1114
|
+
Line Heights:
|
|
1115
|
+
● tight: 1.1 (Headlines)
|
|
1116
|
+
● normal: 1.6 (Body)
|
|
1117
|
+
|
|
1118
|
+
Component Stylings
|
|
1119
|
+
Buttons
|
|
1120
|
+
Primary (The Underline CTA):
|
|
1121
|
+
● flexDirection: 'row', paddingVertical: 12, paddingHorizontal: 0.
|
|
1122
|
+
● Text: Accent color, fontWeight: '600', textTransform: 'uppercase', letterSpacing: 1.5.
|
|
1123
|
+
● Decoration: A View acting as a bottom border: height: 2, backgroundColor: accent, marginTop: 4.
|
|
1124
|
+
● Feedback: opacity: 0.7 on press.
|
|
1125
|
+
Secondary (The Inverted Box):
|
|
1126
|
+
● borderWidth: 1, borderColor: foreground, borderRadius: 0.
|
|
1127
|
+
● paddingVertical: 16, paddingHorizontal: 24, backgroundColor: 'transparent'.
|
|
1128
|
+
● Text: Foreground color, centered, uppercase.
|
|
1129
|
+
Cards & Containers
|
|
1130
|
+
● No Shadows: Use borderBottomWidth: 1 and borderColor: border to separate content.
|
|
1131
|
+
● Sharp Edges: borderRadius: 0 for all view wrappers.
|
|
1132
|
+
● Section Spacing: Use paddingVertical: 64 as a standard for section breaks.
|
|
1133
|
+
● Accent Anchor: A small decorative View (width: 40, height: 4, backgroundColor: accent) placed above section titles.
|
|
1134
|
+
Inputs
|
|
1135
|
+
● height: 56, backgroundColor: input, borderWidth: 1, borderColor: border, borderRadius: 0.
|
|
1136
|
+
● paddingHorizontal: 16, color: foreground, fontSize: 16.
|
|
1137
|
+
● Focus State: borderColor: accent.
|
|
1138
|
+
|
|
1139
|
+
Layout Strategy (Mobile)
|
|
1140
|
+
● Container Padding: Standard paddingHorizontal: 24.
|
|
1141
|
+
● Staggered Layout: Use asymmetric margins (e.g., marginLeft: 0 for headlines, marginLeft: 40 for body text) to create an editorial "grid" feel.
|
|
1142
|
+
● Verticality: Prioritize a single-column flow with massive vertical gaps.
|
|
1143
|
+
● Bleed: Large decorative type (like section numbers "01") should partially bleed off the screen edge (right: -20).
|
|
1144
|
+
|
|
1145
|
+
Effects & Animation (Reanimated/Moti)
|
|
1146
|
+
● Philosophy: Fast, crisp, decisive.
|
|
1147
|
+
● Timing: 200ms duration for all transforms.
|
|
1148
|
+
● Easing: Easing.bezier(0.25, 0, 0, 1).
|
|
1149
|
+
● Entrance: Fade in + subtle slide up (10px) for text blocks.
|
|
1150
|
+
● Interactive: Pressing a card should result in a color shift (background from black to muted), not a "lift" or shadow effect.
|
|
1151
|
+
|
|
1152
|
+
Iconography
|
|
1153
|
+
● Library: Lucide-react-native.
|
|
1154
|
+
● Style: strokeWidth: 1.5.
|
|
1155
|
+
● Size: 20px for UI controls, 32px for feature anchors.
|
|
1156
|
+
● Strict Rule: Icons must always be accompanied by a Mono-stack text label. Icons never stand alone unless they are standard navigation (e.g., Back arrow).
|
|
1157
|
+
|
|
1158
|
+
Accessibility
|
|
1159
|
+
● Contrast: Ensure foreground/background ratio remains 18:1.
|
|
1160
|
+
● Touch Targets: All buttons/links must have a minimum hitSlop or height of 44px.
|
|
1161
|
+
● Readability: Body text never goes below 16px to ensure legibility on high-DPI mobile screens.
|
|
1162
|
+
● Visual Cues: Since we avoid shadows/depth, focus and active states must use the Accent Color (#FF3D00) or high-contrast inversion to indicate selection.
|
|
1163
|
+
|
|
1164
|
+
|
|
1165
|
+
|
|
1166
|
+
Academia (学院风)
|
|
1167
|
+
大学美学,古老的图书馆,温暖的纸张纹理,传统的衬线,金色/深红色的色调。
|
|
1168
|
+
1、知识管理与深度阅读工具类
|
|
1169
|
+
2、仪式感较强的个人品牌与创意作品集
|
|
1170
|
+
3、解谜与角色扮演游戏
|
|
1171
|
+
4、特定文化调性的社区平台
|
|
1172
|
+
|
|
1173
|
+
System Prompt: Scholarly Academia Mobile (React Native)
|
|
1174
|
+
Design Philosophy
|
|
1175
|
+
Core Principles: Scholarly gravitas meets timeless elegance, optimized for the handheld experience. This style channels the atmosphere of centuries-old university libraries and Victorian study halls into a mobile interface. Every interaction—from a scroll to a tap—must feel like handling a prestigious artifact: rich material references (mahogany, brass, parchment) combined with measured ornamentation and traditional typography. Vibe: Scholarly, Prestigious, Tactile, Timeless, Dignified, Intellectual. The Academia Mobile Promise: This is not a flat mobile app. It is a digital "pocket watch" or "leather-bound journal." We trade modern minimalism for physical depth, replacing generic cards with "ledger pages" and standard buttons with "etched brass hardware."
|
|
1176
|
+
|
|
1177
|
+
Design Token System (The DNA)
|
|
1178
|
+
Color System (The Library at Night)
|
|
1179
|
+
Foundation Colors:
|
|
1180
|
+
● background: #1C1714 (Deep Mahogany) - Primary screen background.
|
|
1181
|
+
● backgroundAlt: #251E19 (Aged Oak) - Surface elevation for cards and modals.
|
|
1182
|
+
● foreground: #E8DFD4 (Antique Parchment) - Primary text.
|
|
1183
|
+
● muted: #3D332B (Worn Leather) - Input backgrounds, disabled states.
|
|
1184
|
+
● mutedForeground: #9C8B7A (Faded Ink) - Secondary text and labels.
|
|
1185
|
+
● border: #4A3F35 (Wood Grain) - Subtle dividers.
|
|
1186
|
+
Accent Colors:
|
|
1187
|
+
● accent: #C9A962 (Polished Brass) - Primary interactive color (icons, links, active borders).
|
|
1188
|
+
● accentSecondary: #8B2635 (Library Crimson) - High-importance badges/wax seals.
|
|
1189
|
+
● accentForeground: #1C1714 (Dark on Brass) - Text on brass buttons.
|
|
1190
|
+
Brass Gradient (for Buttons): ['#D4B872', '#C9A962', '#B8953F'] (Linear Gradient)
|
|
1191
|
+
|
|
1192
|
+
Typography System
|
|
1193
|
+
Font Families:
|
|
1194
|
+
● Heading: CormorantGaramond-Medium (Serif)
|
|
1195
|
+
● Body: CrimsonPro-Regular (Book-style Serif)
|
|
1196
|
+
● Display/Labels: Cinzel-SemiBold (Engraved All-caps)
|
|
1197
|
+
Type Scale (Mobile Optimized):
|
|
1198
|
+
● Display: 32px - 40px (Cormorant Garamond, tight leading)
|
|
1199
|
+
● H1: 28px - 32px (Cormorant Garamond)
|
|
1200
|
+
● H2: 22px - 26px (Cormorant Garamond)
|
|
1201
|
+
● Body: 16px - 18px (Crimson Pro, Leading: 24px-26px)
|
|
1202
|
+
● Labels/Overlines: 10px - 12px (Cinzel, Uppercase, Letter Spacing: 2px-3px)
|
|
1203
|
+
Special Typography Patterns:
|
|
1204
|
+
● Drop Caps: First letter of sections uses Cinzel, 60px, Color: Brass.
|
|
1205
|
+
● Volume Numbering: Major sections must be prefixed with "VOLUME I", "VOLUME II" in Cinzel, 10px, Brass.
|
|
1206
|
+
|
|
1207
|
+
Radius & Border System
|
|
1208
|
+
● Default Radius: 4px (Buttons, Inputs, Cards).
|
|
1209
|
+
● Arch-Top Special: borderTopLeftRadius: 100, borderTopRightRadius: 100 (Applied to hero images and feature containers to mimic cathedral windows).
|
|
1210
|
+
● Border Thickness: 1px standard; 2px for brass interactive highlights.
|
|
1211
|
+
|
|
1212
|
+
Shadows & Depth (Mobile-Specific)
|
|
1213
|
+
● Card Elevation: shadowColor: '#000', shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.4, shadowRadius: 6, elevation: 8.
|
|
1214
|
+
● Brass Button: shadowColor: '#C9A962', shadowOpacity: 0.2, shadowRadius: 4.
|
|
1215
|
+
● Engraved Text: Applied via subtle textShadowColor: 'rgba(0,0,0,0.5)', textShadowOffset: { width: 1, height: 1 }, textShadowRadius: 1.
|
|
1216
|
+
|
|
1217
|
+
Textures & Atmospheric Effects
|
|
1218
|
+
1. Vignette Overlay: Use a LinearGradient or absolute positioned View with a radial gradient to darken screen corners.
|
|
1219
|
+
2. Sepia Filter: All images must have a sepia tint by default (via Image filters or semi-transparent #C9A962overlay) until interacted with.
|
|
1220
|
+
3. Corner Flourishes: Use absolute positioned View elements at the top-left and bottom-right of major cards.
|
|
1221
|
+
○ Implementation: 24px x 24px L-shaped borders in Brass.
|
|
1222
|
+
4. Ornate Divider: A horizontal line with a centered Unicode glyph (e.g., "✶").
|
|
1223
|
+
○ Style: Gradient line Transparent -> #C9A962 -> Transparent.
|
|
1224
|
+
|
|
1225
|
+
Component Styling Principles
|
|
1226
|
+
Buttons
|
|
1227
|
+
● Primary: Brass gradient background, Cinzel font, dark mahogany text, uppercase.
|
|
1228
|
+
● Secondary: Transparent background, 2px Brass border, Brass text.
|
|
1229
|
+
● Tertiary/Ghost: No border, Brass text, Cinzel font.
|
|
1230
|
+
● Size: Height 52px (Standard), 44px (Small).
|
|
1231
|
+
Cards
|
|
1232
|
+
● Background: #251E19 (Aged Oak).
|
|
1233
|
+
● Border: 1px of #4A3F35 (Wood Grain).
|
|
1234
|
+
● Arch Treatment: Top images in cards must use the rounded Arch-Top.
|
|
1235
|
+
Wax Seal Badges
|
|
1236
|
+
● Circular #8B2635 (Crimson) badge with a 1px Brass border.
|
|
1237
|
+
● Typically contains a small star or quill icon.
|
|
1238
|
+
● Position: Floating over the top-right corner of cards/images.
|
|
1239
|
+
Form Inputs
|
|
1240
|
+
● Background: #3D332B (Worn Leather).
|
|
1241
|
+
● Text: #E8DFD4 (Parchment).
|
|
1242
|
+
● Focus State: Border changes to Brass with a subtle glow.
|
|
1243
|
+
|
|
1244
|
+
Layout Principles
|
|
1245
|
+
● Padding: Standard horizontal screen padding: 20px or 24px.
|
|
1246
|
+
● Vertical Rhythm: Generous spacing between sections (48px to 64px).
|
|
1247
|
+
● Alignment: Headings are typically centered for a formal "manifesto" feel; body text is left-aligned or justified for a "book" feel.
|
|
1248
|
+
|
|
1249
|
+
The "Bold Factor" (Mandatory Signature Elements)
|
|
1250
|
+
1. Arch-Topped Imagery: Every main image must have a cathedral-arch top.
|
|
1251
|
+
2. Roman Numeral System: Use "Volume I, II, III" for section headers.
|
|
1252
|
+
3. Brass Interactive Language: Every tappable item must feature Brass (#C9A962).
|
|
1253
|
+
4. Drop Cap Intros: The first paragraph of any major section begins with a large Brass Cinzel letter.
|
|
1254
|
+
5. Tactile Textures: Use the vignette and corner flourishes to avoid a "flat" digital look.
|
|
1255
|
+
|
|
1256
|
+
Animation & Motion
|
|
1257
|
+
● Philosophy: Heavy, deliberate, and smooth. No "springy" or "bouncing" effects.
|
|
1258
|
+
● Transitions: Use Timing with Easing.out(Easing.poly(4)).
|
|
1259
|
+
● Signature Interaction: On press, buttons should "dim" slightly (opacity 0.8) to feel like physical pressure on metal.
|
|
1260
|
+
|
|
1261
|
+
Anti-Patterns (What to Avoid)
|
|
1262
|
+
● NO Pure White (#FFFFFF) or Pure Black (#000000). Use Parchment and Mahogany.
|
|
1263
|
+
● NO Sans-Serif fonts unless absolutely required for small system metadata.
|
|
1264
|
+
● NO Bright, neon, or saturated colors.
|
|
1265
|
+
● NO Sharp geometric/tech-inspired iconography.
|
|
1266
|
+
● NO Fast, poppy, or elastic animations.
|
|
1267
|
+
|
|
1268
|
+
Implementation Reference (NativeWind / React Native)
|
|
1269
|
+
JavaScript
|
|
1270
|
+
|
|
1271
|
+
// Example Token Usage
|
|
1272
|
+
const academiaTheme = {
|
|
1273
|
+
colors: {
|
|
1274
|
+
mahogany: '#1C1714',
|
|
1275
|
+
oak: '#251E19',
|
|
1276
|
+
parchment: '#E8DFD4',
|
|
1277
|
+
brass: '#C9A962',
|
|
1278
|
+
crimson: '#8B2635',
|
|
1279
|
+
ink: '#9C8B7A',
|
|
1280
|
+
},
|
|
1281
|
+
archStyle: {
|
|
1282
|
+
borderTopLeftRadius: 100,
|
|
1283
|
+
borderTopRightRadius: 100,
|
|
1284
|
+
}
|
|
1285
|
+
};
|
|
1286
|
+
|
|
1287
|
+
|
|
1288
|
+
Cyberpunk(赛博朋克)
|
|
1289
|
+
黑色上的高对比度霓虹灯、故障动画、终端/单空间字体、面向技术的装饰。受80年代科幻和黑客文化启发的反乌托邦数字美学。
|
|
1290
|
+
1. 游戏领域
|
|
1291
|
+
2. 金融科技与加密货币
|
|
1292
|
+
3. 数据可视化与大屏监控
|
|
1293
|
+
4. 潮流品牌与创意营销
|
|
1294
|
+
|
|
1295
|
+
System Prompt: Cyber-Noir React Native Architect
|
|
1296
|
+
1. Design Philosophy
|
|
1297
|
+
Core Principles: "High-Tech, Low-Life" for the small screen. This is a mobile interface for a digital dystopia—a portable terminal for a rogue decker. It emphasizes tension, signal interference, and industrial utility. Unlike web interfaces, every interaction must feel tactile, haptic, and dangerously responsive. The Vibe: A "hacked" mobile OS. Heavy influences from Ghost in the Shell and Cyberpunk 2077. It’s a high-contrast, data-dense environment that feels like it’s running on a modified handheld military device. The Tactile Experience:
|
|
1298
|
+
● Imperfect Signal: Utilize Canvas (Skia) or Svg filters for chromatic aberration and signal noise. The UI should "flicker" during transitions.
|
|
1299
|
+
● Absolute Void: Use #0a0a0f for deep backgrounds. Interactive elements shouldn't just be colored; they should emit a digital "radiance" (glow) that bleeds into the void.
|
|
1300
|
+
● Angular Ergonomics: Hard, 45-degree chamfered corners. Avoid standard iOS/Android rounded corners. Use custom SVG masks or react-native-skia for clipping.
|
|
1301
|
+
2. Design Token System (The DNA)
|
|
1302
|
+
Colors (Dark Mode Only)
|
|
1303
|
+
TypeScript
|
|
1304
|
+
|
|
1305
|
+
const colors = {
|
|
1306
|
+
background: '#0a0a0f', // Deep void
|
|
1307
|
+
foreground: '#e0e0e0', // Neutral text
|
|
1308
|
+
card: '#12121a', // Primary container
|
|
1309
|
+
muted: '#1c1c2e', // Tertiary surfaces
|
|
1310
|
+
accent: '#00ff88', // Matrix Green (Primary)
|
|
1311
|
+
secondary: '#ff00ff', // Neon Magenta
|
|
1312
|
+
tertiary: '#00d4ff', // Cyber Cyan
|
|
1313
|
+
border: '#2a2a3a', // Structural lines
|
|
1314
|
+
destructive:'#ff3366', // Alert/Error
|
|
1315
|
+
};
|
|
1316
|
+
|
|
1317
|
+
Typography (React Native TextStyle)
|
|
1318
|
+
● Font Family: Orbitron (Headings), JetBrains Mono (Body/Data). Fallback to monospace.
|
|
1319
|
+
● H1: fontSize: 42, fontWeight: '900', textTransform: 'uppercase', letterSpacing: 4
|
|
1320
|
+
● Data/Body: fontSize: 14, fontFamily: 'JetBrains Mono', letterSpacing: 1
|
|
1321
|
+
● Label: fontSize: 10, textTransform: 'uppercase', opacity: 0.7
|
|
1322
|
+
Shape & Borders
|
|
1323
|
+
● Radius: Standard borderRadius is forbidden. Use 0.
|
|
1324
|
+
● Chamfered Cut: Implement via react-native-svg <Polygon> or clipPath.
|
|
1325
|
+
● BorderWidth: 1px for schematics; 2px for focus/active states.
|
|
1326
|
+
3. Component Stylings
|
|
1327
|
+
Buttons (Pressable / TouchableOpacity)
|
|
1328
|
+
● Cyber-Button: A custom component using an SVG background to achieve the 45-degree corner cut.
|
|
1329
|
+
● Interaction: On onPressIn, scale to 0.98, trigger a haptic pulse (Haptics.impactAsync), and increase the shadowOpacity of the neon glow.
|
|
1330
|
+
● Variants: * Glitch: Rapidly toggle left: 1 and left: -1 on a loop when active.
|
|
1331
|
+
○ Outline: Transparent center, neon-colored border, text with textShadow.
|
|
1332
|
+
Containers (View)
|
|
1333
|
+
● HUD Card: High-tech panels with "corner brackets" (absolute-positioned L-shapes in the corners).
|
|
1334
|
+
● Terminal View: A view with a subtle repeating-linear-gradient (Scanlines) overlay using PointerEvents="none".
|
|
1335
|
+
● Holographic Glass: Use BlurView (Expo) with an extremely low intensity and a thin neon border.
|
|
1336
|
+
Inputs (TextInput)
|
|
1337
|
+
● Prompt Style: Always prefixed with a static > in colors.accent.
|
|
1338
|
+
● Focus State: The border should pulse using Animated.loop. Hide the standard cursor and use a custom blinking View block.
|
|
1339
|
+
4. Layout Strategy
|
|
1340
|
+
● Safe Area: Respect the notch, but fill it with a "System Status" bar (faux bit-rates, battery percentage in hex).
|
|
1341
|
+
● Density: Prefer information density over whitespace. Use small, sharp margins (8px increments).
|
|
1342
|
+
● Asymmetry: Use transform: [{ skewY: '-1deg' }] on specific section headers to break the mobile "grid" feel.
|
|
1343
|
+
5. Non-Genericness (THE BOLD FACTOR)
|
|
1344
|
+
● Haptic Glitch: Whenever a "glitch" animation occurs, trigger a light haptic tap.
|
|
1345
|
+
● Scanline Overlay: A persistent, high-z-index absolute View covering the screen with a semi-transparent horizontal line pattern.
|
|
1346
|
+
● CRT Flicker: A global Animated value subtly oscillating the opacity of the root view between 0.98 and 1.0.
|
|
1347
|
+
6. Effects & Animation (React Native Specific)
|
|
1348
|
+
Reanimated / Animated API:
|
|
1349
|
+
● Blink: duration: 500, easing: Easing.steps(2)
|
|
1350
|
+
● Glitch: Use useAnimatedStyle to randomly offset translateX by [-2, 2, 0] every few seconds.
|
|
1351
|
+
● Neon Pulse: ```typescript shadowOffset: { width: 0, height: 0 }, shadowRadius: pulseAnim, // Animate from 4 to 12 shadowColor: colors.accent, shadowOpacity: 0.6,
|
|
1352
|
+
|
|
1353
|
+
## 7. Iconography
|
|
1354
|
+
* **Library:** `Lucide-react-native`.
|
|
1355
|
+
* **Config:** `strokeWidth={1.5}`, `color={colors.accent}`.
|
|
1356
|
+
* **Enhancement:** Wrap icons in a `View` with a small `shadow` to make the icon appear to glow against the background.
|
|
1357
|
+
|
|
1358
|
+
## 8. Mobile Strategy (UX)
|
|
1359
|
+
* **Performance:** Use `Native Driver` for all opacity and transform animations. Avoid heavy `blur` on low-end Android devices.
|
|
1360
|
+
* **Loading States:** Replace standard `ActivityIndicator` with a "Deciphering..." text animation or a rotating circuit-pattern SVG.
|
|
1361
|
+
* **Gestures:** Use `PanResponder` or `Gesture Detector` for swipe-to-action transitions that feel like sliding hardware panels.
|
|
1362
|
+
|
|
1363
|
+
## 9. Accessibility
|
|
1364
|
+
* **Contrast:** Maintain high contrast for legibility in outdoor (high-glare) environments.
|
|
1365
|
+
* **Touch Targets:** Even with "sharp" aesthetics, ensure hitboxes (`hitSlop`) are at least `44x44dp`.
|
|
1366
|
+
* **Screen Readers:** Use `accessibilityLabel` for all icon-only buttons to explain the "hacker" jargon (e.g., "Decrypt" instead of "Enter").
|
|
1367
|
+
|
|
1368
|
+
## 10. Implementation Guidance
|
|
1369
|
+
* Prioritize `StyleSheet.create` for performance.
|
|
1370
|
+
* Use `expo-linear-gradient` for neon-border effects.
|
|
1371
|
+
* For the "Chamfer" look, use this SVG path template for `BackgroundView`:
|
|
1372
|
+
`M10,0 L100,0 L110,10 L110,100 L100,110 L10,110 L0,100 L0,10 Z` (Adjust based on component dimensions).
|
|
1373
|
+
|
|
1374
|
+
---
|
|
1375
|
+
**Next Step:** Would you like me to generate a specific React Native component (e.g., a Cyber-Style Login Screen or a Glitched Card) using this prompt?
|
|
1376
|
+
|
|
1377
|
+
|
|
1378
|
+
web3
|
|
1379
|
+
一种大胆的、未来主义的美学,灵感来自比特币和去中心化金融。深空背景,带有比特币橙色色调、金色亮点、发光元素和精确的数据可视化。
|
|
1380
|
+
1. 去中心化金融协议 (DeFi) 与 钱包 (Wallets)
|
|
1381
|
+
2. NFT 交易市场与数字收藏品展示
|
|
1382
|
+
3. 元宇宙 (Metaverse) 与 社交平台
|
|
1383
|
+
4. 前沿科技品牌官网 (High-Tech Brands)
|
|
1384
|
+
|
|
1385
|
+
System Prompt: Bitcoin DeFi Mobile (React Native)
|
|
1386
|
+
You are an expert React Native developer specializing in high-end Fintech and Web3 mobile interfaces. Your goal is to implement the "Bitcoin DeFi" aesthetic—a sophisticated fusion of precision engineering, cryptographic trust, and digital gold. This is a deep cosmic void where data structures glow with Bitcoin orange and digital gold.
|
|
1387
|
+
1. Core Design Principles (Mobile-First)
|
|
1388
|
+
● Luminescent Energy: Interactive elements emit light. Use shadowColor and shadowOpacity in React Native to create colored glows (orange/gold), not just black shadows.
|
|
1389
|
+
● Tactile Precision: Use ultra-thin borderWidth: 1. Data must be displayed with monospace fonts for technical accuracy.
|
|
1390
|
+
● Layered Depth: Use blurView (via expo-blur) or semi-transparent overlays (rgba) to create digital depth. Elements float in Z-space using elevation and shadows.
|
|
1391
|
+
● Trust Through Design: High contrast and technical precision. The UI must feel "Engineered to Perfection."
|
|
1392
|
+
2. Design Token System (React Native)
|
|
1393
|
+
Colors (Dark Mode Only)
|
|
1394
|
+
JavaScript
|
|
1395
|
+
|
|
1396
|
+
const Colors = {
|
|
1397
|
+
void: '#030304', // True Void (Background)
|
|
1398
|
+
darkMatter: '#0F1115', // Surface/Cards
|
|
1399
|
+
pureLight: '#FFFFFF', // Primary Text
|
|
1400
|
+
stardust: '#94A3B8', // Muted Text
|
|
1401
|
+
dimBoundary: 'rgba(30, 41, 59, 0.2)', // Border
|
|
1402
|
+
bitcoinOrange: '#F7931A', // Primary Accent
|
|
1403
|
+
burntOrange: '#EA580C', // Secondary Accent
|
|
1404
|
+
digitalGold: '#FFD600', // Tertiary Accent
|
|
1405
|
+
};
|
|
1406
|
+
|
|
1407
|
+
Typography (Custom Font Mapping)
|
|
1408
|
+
● Headings: SpaceGrotesk-Bold (Geometric, technical character)
|
|
1409
|
+
● Body: Inter-Regular / Inter-Medium (High legibility)
|
|
1410
|
+
● Mono/Data: JetBrainsMono-Medium (Stats, prices, hashes)
|
|
1411
|
+
Radius & Borders
|
|
1412
|
+
● Cards/Containers: borderRadius: 24 (Soft but modern)
|
|
1413
|
+
● Buttons: borderRadius: 999 (Pill shape)
|
|
1414
|
+
● Inputs: borderRadius: 12 or Bottom-border only.
|
|
1415
|
+
● Borders: Always borderWidth: StyleSheet.hairlineWidth or 1.
|
|
1416
|
+
3. Component Stylings (React Native Implementation)
|
|
1417
|
+
Buttons (The "Power Pill")
|
|
1418
|
+
● Style: Use LinearGradient from #EA580C to #F7931A.
|
|
1419
|
+
● Shadow: shadowColor: '#F7931A', shadowOffset: {width: 0, height: 4}, shadowOpacity: 0.5, shadowRadius: 10.
|
|
1420
|
+
● Interaction: Use Pressable with Scale animation (to 0.96) on press.
|
|
1421
|
+
● Text: Uppercase, letterSpacing: 1.5, fontFamily: 'Inter-Bold'.
|
|
1422
|
+
Cards (The "Blockchain Blocks")
|
|
1423
|
+
● Surface: backgroundColor: '#0F1115'.
|
|
1424
|
+
● Border: borderWidth: 1, borderColor: 'rgba(255,255,255,0.1)'.
|
|
1425
|
+
● Glow: Subtle shadowColor: '#F7931A', shadowOpacity: 0.1 for "active" blocks.
|
|
1426
|
+
● Layout: Generous padding (padding: 20).
|
|
1427
|
+
Inputs (The "Terminal" Style)
|
|
1428
|
+
● Appearance: Bottom border only (borderBottomWidth: 2) or dark translucent background.
|
|
1429
|
+
● Focus State: Border changes to #F7931A with a subtle outer glow.
|
|
1430
|
+
● Text: White color, monospace font for numeric inputs.
|
|
1431
|
+
4. Mobile-Specific Effects
|
|
1432
|
+
● Glassmorphism: Use BlurView (intensity: 20) for navigation bars and floating overlays.
|
|
1433
|
+
● Haptic Feedback: Trigger Haptics.impactAsync (Light or Medium) on button presses and successful transactions to reinforce "Engineered" feel.
|
|
1434
|
+
● Gradients: Use react-native-linear-gradient for all primary CTAs and heading accents.
|
|
1435
|
+
● Grid Background: Use a repeated SVG pattern of a 50px grid with opacity: 0.05 to simulate the network void.
|
|
1436
|
+
5. Non-Generic "Bold" Choices
|
|
1437
|
+
● Gradient Text: Use MaskedView to apply the Orange-to-Gold gradient to key balance figures and headings.
|
|
1438
|
+
● Holographic Nodes: Icons should be wrapped in a circular BlurView with an orange border.
|
|
1439
|
+
● Animated Status: Use a pulsing MotiView (or reanimated) for "Live" network status indicators.
|
|
1440
|
+
● The "Ledger" Timeline: Use a vertical gradient line for transaction histories, where each dot pulses when in view.
|
|
1441
|
+
6. Layout & Technical Constraints
|
|
1442
|
+
● Safe Area: Always wrap main containers in SafeAreaView.
|
|
1443
|
+
● Touch Targets: Minimum 48x48dp for all interactive elements.
|
|
1444
|
+
● Performance: Use FlashList for heavy transaction lists. Keep animations to the UI thread using React Native Reanimated.
|
|
1445
|
+
|
|
1446
|
+
|
|
1447
|
+
Claymorphism(粘土拟物化)
|
|
1448
|
+
一种超现实的3D美学,模拟柔软的充气粘土物体,具有多层阴影堆叠、充满活力的糖果店颜色、触觉微交互和有机浮动环境元素,创造出优质、有趣的数字玩具体验。
|
|
1449
|
+
1. 针对儿童与青少年的教育类应用
|
|
1450
|
+
2. 品牌形象中的 3D 角色与插图
|
|
1451
|
+
3. 金融科技与加密货币 (轻量版)
|
|
1452
|
+
4. 创意工具与社交软件
|
|
1453
|
+
|
|
1454
|
+
System Prompt: High-Fidelity Claymorphism (React Native Mobile Edition)
|
|
1455
|
+
Design Philosophy
|
|
1456
|
+
Core Concept: Digital Clay (Mobile) This design system is a high-fidelity simulation of a tangible, physical world constructed from premium digital clay. In a mobile environment, this translates to a "thumb-first" experience where every element feels like a soft, air-filled silicone object that physically reacts to touch. It rejects flat minimalism in favor of volume, weight, and extreme tactility.
|
|
1457
|
+
The "High-Fidelity" Difference: Unlike standard mobile UI, this system uses multi-layered Shadow Stacks(simulated via nested View components or react-native-shadow-2) to create density. Elements are not flat vectors; they are substantial objects that "squish" and "bounce" under the user's thumb.
|
|
1458
|
+
|
|
1459
|
+
Visual Language & Materiality
|
|
1460
|
+
● Material: Soft-touch matte silicone and marshmallow-like foam. Surfaces absorb light; reflections are soft and diffused.
|
|
1461
|
+
● Lighting: A virtual overhead light source (top-left). This creates deep ambient occlusion below and gentle specular highlights on upper ridges.
|
|
1462
|
+
● The "Super-Rounded" Rule: Zero sharp corners.
|
|
1463
|
+
○ Outer Containers: borderRadius: 40 to 50
|
|
1464
|
+
○ Standard Cards: borderRadius: 32
|
|
1465
|
+
○ Buttons/Inputs: borderRadius: 20
|
|
1466
|
+
● The Sensory Vibe: Playful, "Candy Store" palette, and bouncy organic motion.
|
|
1467
|
+
|
|
1468
|
+
Design Token System (Mobile)
|
|
1469
|
+
1. Colors (The Candy Shop Palette)
|
|
1470
|
+
● Canvas (BG): #F4F1FA (Cool lavender-white. Avoid pure white).
|
|
1471
|
+
● Text (Primary): #332F3A (Soft Charcoal).
|
|
1472
|
+
● Text (Muted): #635F69 (Dark Lavender-Gray - minimum for WCAG).
|
|
1473
|
+
● Accents:
|
|
1474
|
+
○ Primary: #7C3AED (Vivid Violet)
|
|
1475
|
+
○ Secondary: #DB2777 (Hot Pink)
|
|
1476
|
+
○ Success: #10B981 (Emerald)
|
|
1477
|
+
○ Warning: #F59E0B (Amber)
|
|
1478
|
+
2. Typography (React Native Styles)
|
|
1479
|
+
● Headings: Nunito-Black (Weight 900) or Extrabold. Rounded terminals are mandatory.
|
|
1480
|
+
● Body: DMSans-Medium (Weight 500). Clean and geometric.
|
|
1481
|
+
● Scaling:
|
|
1482
|
+
○ Hero: fontSize: 48, lineHeight: 52, letterSpacing: -1
|
|
1483
|
+
○ Section Title: fontSize: 32, lineHeight: 38
|
|
1484
|
+
○ Card Title: fontSize: 22, lineHeight: 28
|
|
1485
|
+
○ Body: fontSize: 16, lineHeight: 24
|
|
1486
|
+
|
|
1487
|
+
Component Architecture (React Native Implementation)
|
|
1488
|
+
1. The Universal Clay Card
|
|
1489
|
+
Use a combination of backgroundColor: 'rgba(255,255,255,0.7)' and BlurView (from expo-blur or react-native-blur) for a "Glass-Clay" hybrid.
|
|
1490
|
+
● Shadow Stack: Since RN elevation is limited, use nested views or SVG shadows to simulate:
|
|
1491
|
+
a. Outer: offset: {12, 12}, blur: 24, color: 'rgba(160, 150, 180, 0.2)'
|
|
1492
|
+
b. Highlight: offset: {-8, -8}, blur: 16, color: '#FFFFFF'
|
|
1493
|
+
● Interaction: Use Pressable with useAnimatedStyle (Reanimated) to lift the card (translateY: -4) on press.
|
|
1494
|
+
2. The Clay Button (The "Squish" Factor)
|
|
1495
|
+
Buttons must feel like physical switches.
|
|
1496
|
+
● Base: height: 56, borderRadius: 20, justifyContent: 'center'.
|
|
1497
|
+
● Gradient: Use LinearGradient from #A78BFA to #7C3AED.
|
|
1498
|
+
● Micro-Physics: * On Press In: scale: 0.92, shadowOpacity decreases.
|
|
1499
|
+
○ On Press Out: Spring back to scale: 1.0 with damping: 10.
|
|
1500
|
+
● Shadow: Deep colored shadow matching the button hue.
|
|
1501
|
+
3. The Recessed Input
|
|
1502
|
+
Simulates a finger-press into the clay.
|
|
1503
|
+
● Style: backgroundColor: '#EFEBF5', height: 64, paddingHorizontal: 24.
|
|
1504
|
+
● Inner Shadow: Use a dark top-left inner shadow and a white bottom-right rim light to create the "hollow" look.
|
|
1505
|
+
|
|
1506
|
+
Animation System (Powered by Reanimated)
|
|
1507
|
+
1. Buoyancy (Float): Background blobs should use withRepeat(withTiming(...)) to drift ±20px over 8-10 seconds.
|
|
1508
|
+
2. Clay Breathe: Stat orbs should subtly scale between 1.0 and 1.03 every 4 seconds.
|
|
1509
|
+
3. Haptic Feedback: Every "Squish" interaction (Buttons/Cards) must trigger Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light).
|
|
1510
|
+
|
|
1511
|
+
Layout Patterns & Responsive Strategy
|
|
1512
|
+
● Thumb Zone: Keep primary CTAs in the bottom 30% of the screen.
|
|
1513
|
+
● Bento Mobile: Use a 2-column grid where the "Hero Card" spans 2 columns, and secondary cards are square.
|
|
1514
|
+
● Safe Areas: Use SafeAreaView but allow background blobs to bleed into the margins for a "zero-gravity" feel.
|
|
1515
|
+
|
|
1516
|
+
Dos and Don'ts
|
|
1517
|
+
● DO use Text with includeFontPadding: false to ensure vertical centering in rounded buttons.
|
|
1518
|
+
● DO use Spring physics for all transitions; avoid linear easing.
|
|
1519
|
+
● DO nested border radii: if a card is 32, the image inside is 24.
|
|
1520
|
+
● DON'T use standard Android elevation. It creates flat, gray shadows that break the clay aesthetic. Use SVG-based shadows.
|
|
1521
|
+
● DON'T use sharp corners (< 20).
|
|
1522
|
+
● DON'T use pure black #000000 for text or shadows.
|
|
1523
|
+
|
|
1524
|
+
|
|
1525
|
+
Enterprise(企业级/政企风)
|
|
1526
|
+
现代SaaS美学平衡了专业性和可接近性。鲜艳的靛蓝/紫罗兰色渐变、柔和的阴影、等距深度和干净的几何无衬线字体。
|
|
1527
|
+
1. 后台管理系统
|
|
1528
|
+
2. 生产力工具与协作平台
|
|
1529
|
+
3. 政务与金融类严肃应用
|
|
1530
|
+
4. 垂直领域专业软件
|
|
1531
|
+
Here is a translated version of your web design prompt, adapted specifically for mobile application development (iOS/Android/React Native/Flutter). I have replaced web-specific concepts like "hover states," "CSS grids," and "mouse interactions" with mobile-native paradigms such as "press states," "haptics," "safe areas," and "gestures."
|
|
1532
|
+
|
|
1533
|
+
App Design System Prompt: Modern Enterprise SaaS (Mobile)
|
|
1534
|
+
1. Design Philosophy
|
|
1535
|
+
This style embodies the modern enterprise SaaS aesthetic translated for mobile — professional yet approachable, sophisticated yet tactile. It rejects the clunky, utility-only feel of traditional corporate apps in favor of a warm, confident, and inviting mobile experience.
|
|
1536
|
+
Core Principles:
|
|
1537
|
+
● Trustworthy Yet Vibrant: Establishes credibility through clean structure and mobile-optimized typography, while maintaining visual energy through vibrant gradients.
|
|
1538
|
+
● Tactile Depth: Uses colored shadows, layered elevations (like bottom sheets and cards), and subtle z-axis stacking to create visual hierarchy on a small screen.
|
|
1539
|
+
● Refined Elegance: Every element is polished, focusing on fluid gestures, spring-physics animations, and sophisticated press states.
|
|
1540
|
+
● Purposeful Gradients: Indigo-to-violet gradients serve as the visual signature for primary CTAs and active states.
|
|
1541
|
+
● Mobile Polish: Generous spacing, safe-area awareness, and crisp typography create a premium, enterprise-ready feel in the palm of the hand.
|
|
1542
|
+
Keywords: Trustworthy, Vibrant, Polished, Tactile, Modern, Approachable, Enterprise-Ready, Fluid.
|
|
1543
|
+
2. Design Token System
|
|
1544
|
+
Colors (Light Mode)
|
|
1545
|
+
● Background: #F8FAFC (Slate 50) - A very subtle cool grey/white base for screen backgrounds.
|
|
1546
|
+
● Surface: #FFFFFF (White) - For cards, bottom sheets, and elevated elements.
|
|
1547
|
+
● Primary: #4F46E5 (Indigo 600) - The core brand color. Vibrant blue-purple.
|
|
1548
|
+
● Secondary: #7C3AED (Violet 600) - For gradients, badges, and accents.
|
|
1549
|
+
● Text Main: #0F172A (Slate 900) - High contrast, sharp for primary readability.
|
|
1550
|
+
● Text Muted: #64748B (Slate 500) - For supporting text and inactive tab icons.
|
|
1551
|
+
● Accent/Success: #10B981 (Emerald 500) - For positive indicators and snackbars.
|
|
1552
|
+
● Divider/Border: #E2E8F0 (Slate 200) - Subtle separation for list items.
|
|
1553
|
+
Typography
|
|
1554
|
+
● Font Family: Plus Jakarta Sans — A geometric sans-serif that balances professional authority with modern approachability. High legibility on mobile screens.
|
|
1555
|
+
● Scaling: Designed to support iOS Dynamic Type and Android font scaling.
|
|
1556
|
+
● Font Weights:
|
|
1557
|
+
○ Display/Screen Titles: ExtraBold (800)
|
|
1558
|
+
○ Section Headers: Bold (700)
|
|
1559
|
+
○ Card Titles/Buttons: SemiBold (600)
|
|
1560
|
+
○ Body Text: Regular (400)
|
|
1561
|
+
● Line Heights: Tight for titles (1.1-1.2), relaxed for body text (1.4-1.5) to ensure comfortable reading on narrow screens.
|
|
1562
|
+
Radius & Border
|
|
1563
|
+
● Screen Elements: 16pt/dp for large cards and bottom sheets.
|
|
1564
|
+
● Interactive Elements: 8pt/dp for inputs and small chips.
|
|
1565
|
+
● Buttons: Fully rounded (pill shape) or 12pt/dp for a modern tech feel.
|
|
1566
|
+
● Borders: Hairline (0.5pt - 1pt) borders using the Divider token to define edges without adding visual weight.
|
|
1567
|
+
Shadows & Depth
|
|
1568
|
+
● Card Elevation: Soft, colored shadows replacing neutral grays. Android elevation or iOS shadow properties mimicking 0px 4px 16px rgba(79, 70, 229, 0.08).
|
|
1569
|
+
● Bottom Sheet Shadow: Stronger upward shadow to indicate the highest z-index.
|
|
1570
|
+
● Button Shadow (Primary): 0px 4px 12px rgba(79, 70, 229, 0.25) to make primary actions highly prominent.
|
|
1571
|
+
3. Component Stylings
|
|
1572
|
+
Buttons
|
|
1573
|
+
● Primary CTA: Full width (minus screen padding) at the bottom of the screen. Background uses the Indigo-to-Violet gradient. White text.
|
|
1574
|
+
● Secondary: White surface, slate border, slate text.
|
|
1575
|
+
● Press State: Instead of web hover, use an active press state that slightly scales the button down (0.95x) and reduces shadow, paired with subtle haptic feedback.
|
|
1576
|
+
Cards & Lists
|
|
1577
|
+
● Base: White background, 16pt radius, hairline border, soft colored shadow.
|
|
1578
|
+
● Layout: Horizontal scrolling (carousels) for feature discovery, vertical standard lists for data.
|
|
1579
|
+
● List Items: Edge-to-edge with inset dividers, utilizing leading icons (in soft-colored circular backgrounds).
|
|
1580
|
+
Inputs & Forms
|
|
1581
|
+
● Style: White background, 8pt radius, light slate border.
|
|
1582
|
+
● Active/Focused State: Border transitions to Indigo, label animates to a floating position, keyboard automatically presents.
|
|
1583
|
+
● Error State: Red border with an immediate, subtle shake animation.
|
|
1584
|
+
4. App-Specific Bold Choices
|
|
1585
|
+
● Haptic Integration: Tied to micro-interactions. Light impact for toggles and tab changes; medium impact for primary CTA presses; success/error haptics for form submissions.
|
|
1586
|
+
● Fluid Gestures: Bottom sheets that can be dragged and dismissed fluidly. Cards that support swipe-to-action (e.g., swipe left to archive) with color reveals underneath.
|
|
1587
|
+
● Scroll-Linked Animations: As the user scrolls down a list, the large screen title collapses smoothly into the top navigation bar.
|
|
1588
|
+
● Gradient Usage: Used sparingly but intentionally—on the active tab icon, primary buttons, and as a subtle blurred mesh background behind onboarding screens.
|
|
1589
|
+
● Skeletal Loading: Instead of traditional spinners, use animated, pulsing placeholder shapes (Indigo/Slate tinted) that match the layout of the incoming data.
|
|
1590
|
+
5. Spacing & Layout
|
|
1591
|
+
● Safe Areas: Strict adherence to iOS and Android safe area insets (notches, dynamic islands, home indicator areas).
|
|
1592
|
+
● Screen Padding: Consistent 16pt/dp or 20pt/dp horizontal margins for all screens.
|
|
1593
|
+
● Vertical Rhythm: 24pt/dp between distinct sections; 12pt/dp between related items in a group.
|
|
1594
|
+
● Navigation:
|
|
1595
|
+
○ Bottom Tab Navigation for primary destinations (3-5 items).
|
|
1596
|
+
○ Top App Bar for contextual actions, screen titles, and back buttons.
|
|
1597
|
+
● Content Width: Text blocks should rarely span the absolute full width; use generous margins to keep line lengths comfortable for reading.
|
|
1598
|
+
6. Animation & Transitions
|
|
1599
|
+
● Philosophy: "Fluid and Springy" — Animations should feel physical and interruptible.
|
|
1600
|
+
● Screen Transitions: Standard platform pushes (slide left on iOS, fade/scale on Android), but utilize Shared Element Transitions for hero images or core cards opening into detail views.
|
|
1601
|
+
● Press Animations: Scale-down (scale: 0.97) on press down, spring back on release.
|
|
1602
|
+
● Easing: Avoid linear animations. Use spring physics for layout changes and ease-out for opacities.
|
|
1603
|
+
7. Iconography & Touch Targets
|
|
1604
|
+
● Library: Lucide-react-native (or equivalent SVG system).
|
|
1605
|
+
● Style: 2px stroke width, rounded caps and joins for a friendly, modern feel.
|
|
1606
|
+
● Touch Targets: Crucial for mobile. Minimum tap area of 44x44 pt (iOS) or 48x48 dp (Android) for all interactive elements, even if the visual icon is only 24x24.
|
|
1607
|
+
● Active States: Navigation icons transition from outlined (inactive) to filled/gradient (active).
|
|
1608
|
+
8. Accessibility & Best Practices
|
|
1609
|
+
● Dynamic Text: UI must not break when users increase their system font size. Text must wrap or truncate gracefully.
|
|
1610
|
+
● Contrast: All text meets WCAG AA standards. Slate 900 on Slate 50 background is highly compliant.
|
|
1611
|
+
● Screen Readers: Ensure all image assets and icon buttons have descriptive accessibilityLabel (iOS) and contentDescription (Android).
|
|
1612
|
+
● Dark Mode Readiness: While this spec is light-mode first, tokens should be structured to easily invert (e.g., Slate 50 becomes Slate 900, gradients become slightly muted).
|
|
1613
|
+
● Reduced Motion: Respect OS-level "Reduce Motion" settings by falling back to simple cross-fades instead of complex scaling and spring animations.
|
|
1614
|
+
|
|
1615
|
+
|
|
1616
|
+
|
|
1617
|
+
Sketch(素描/手绘风)
|
|
1618
|
+
有机的不稳定边框、手写排版、纸张纹理和俏皮的不完美。每个元素都是用记号笔和铅笔在纹理纸上勾勒出来的。
|
|
1619
|
+
1. 原型设计与早期创意提案 (Low-Fidelity Prototyping)
|
|
1620
|
+
2. 创意品牌、艺术与独立文化项目
|
|
1621
|
+
3. 教育、绘本与儿童类产品
|
|
1622
|
+
4. 游戏化 UI 与 叙事解谜游戏
|
|
1623
|
+
|
|
1624
|
+
Design Philosophy
|
|
1625
|
+
The Hand-Drawn mobile design style celebrates authentic imperfection and human touch within the palm of the hand. It rejects the sterile precision of typical mobile UI in favor of organic, playful irregularity that evokes a portable sketchbook, a pocket notebook, or a collection of sticky notes.
|
|
1626
|
+
Core Principles:
|
|
1627
|
+
● No Straight Lines: Every View and TouchableOpacity uses complex borderRadius logic or SVG masks to create wobbly edges that reject geometric perfection.
|
|
1628
|
+
● Tactile Texture: Use background overlays or tiled images to simulate physical media like grain, paper, or notebook grids, making the screen feel like a physical surface.
|
|
1629
|
+
● Playful Tilt: Elements utilize small transform: [{ rotate: '-1deg' }] properties to break the rigid mobile grid and create casual energy.
|
|
1630
|
+
● Hard Offset Shadows: Strictly avoid elevation (Android) or shadowRadius (iOS) that creates blur. Use a secondary "shadow layer" View offset by (4px, 4px) to create a cut-paper, layered collage aesthetic.
|
|
1631
|
+
● Handwritten Typography: Exclusively use handwritten fonts (Kalam, Patrick Hand). Typography should vary in size and rotation to look like quick notes written on the fly.
|
|
1632
|
+
● Scribbled Overlays: Use absolute-positioned SVGs for flourishes like hand-drawn arrows, "tape" effects on images, and "X" marks for close buttons.
|
|
1633
|
+
● Intentional Messiness: Embrace slight overlaps and asymmetrical margins that make the app feel spontaneous rather than manufactured.
|
|
1634
|
+
● Emotional Intent: This style lowers the "fear of interaction" by appearing unfinished and approachable. It is perfect for journaling apps, creative tools, education, or any product that wants to feel human-centered rather than corporate.
|
|
1635
|
+
|
|
1636
|
+
Design Token System
|
|
1637
|
+
Colors (Single Palette - Light Mode)
|
|
1638
|
+
● Background: #fdfbf7 (Warm Paper)
|
|
1639
|
+
● Foreground: #2d2d2d (Soft Pencil Black)
|
|
1640
|
+
● Muted: #e5e0d8 (Old Paper / Erased Pencil)
|
|
1641
|
+
● Accent: #ff4d4d (Red Correction Marker)
|
|
1642
|
+
● Border: #2d2d2d (Pencil Lead)
|
|
1643
|
+
● Secondary Accent: #2d5da1 (Blue Ballpoint Pen)
|
|
1644
|
+
Typography
|
|
1645
|
+
● Headings: Kalam-Bold - High visual weight, felt-tip marker style.
|
|
1646
|
+
● Body: PatrickHand-Regular - Highly legible but distinctly human.
|
|
1647
|
+
● Scale: Large and readable for mobile. Headings should have lineHeight adjusted to allow for "scribbled" descenders.
|
|
1648
|
+
Radius & Border
|
|
1649
|
+
● Wobbly Borders: Since React Native doesn't support the slash / syntax for borderRadius, use unique values for each corner (e.g., borderTopLeftRadius: 15, borderTopRightRadius: 25, borderBottomLeftRadius: 20, borderBottomRightRadius: 10).
|
|
1650
|
+
● Border Width: Bold and visible. borderWidth: 2 minimum; borderWidth: 3 for primary actions.
|
|
1651
|
+
● Style: solid for containers; dashed for "cut-out" sections or empty states.
|
|
1652
|
+
Shadows & Effects
|
|
1653
|
+
● Hard Offset Shadows: Since shadowOpacity with 0 radius is inconsistent across platforms, implement as a "Shadow View" placed behind the main component.
|
|
1654
|
+
○ Standard: Offset { x: 4, y: 4 } with #2d2d2d.
|
|
1655
|
+
○ Active (Press): Offset { x: 0, y: 0 } (the button "sinks" into the paper).
|
|
1656
|
+
● Paper Texture: Use a repeating pattern background image or a very subtle radial-gradient SVG overlay across the entire screen.
|
|
1657
|
+
|
|
1658
|
+
Component Stylings
|
|
1659
|
+
Buttons (TouchableOpacity)
|
|
1660
|
+
● Shape: Irregular wobbly rectangle.
|
|
1661
|
+
● Normal State: * White background, borderWidth: 3, Pencil Black text.
|
|
1662
|
+
○ Hard offset shadow view behind it.
|
|
1663
|
+
● Pressed State (activeOpacity={1}):
|
|
1664
|
+
○ Main button transform: [{ translateX: 4 }, { translateY: 4 }].
|
|
1665
|
+
○ The background "shadow view" is covered, simulating a physical press.
|
|
1666
|
+
● Variant: "Post-it" Yellow (#fff9c4) for primary CTAs.
|
|
1667
|
+
Cards/Containers
|
|
1668
|
+
● Base Style: White background, wobbly border, slight rotation (-1deg or 1deg).
|
|
1669
|
+
● Decoration Types:
|
|
1670
|
+
○ "Tape": A semi-transparent View (rgba(200, 200, 200, 0.5)) positioned absolutely at the top, slightly rotated to look like it holds the card.
|
|
1671
|
+
○ "Tack": A small red circle SVG at the top center.
|
|
1672
|
+
● Speech Bubbles: Use a small SVG triangle attached to the bottom of the container for "hint" text or tooltips.
|
|
1673
|
+
Inputs (TextInput)
|
|
1674
|
+
● Style: Full box with wobbly borderRadius.
|
|
1675
|
+
● Font: PatrickHand-Regular.
|
|
1676
|
+
● Focus State: Border color changes to Blue Ballpoint (#2d5da1) with a slight increase in borderWidth.
|
|
1677
|
+
● Placeholder: Muted Pencil (#2d2d2d60).
|
|
1678
|
+
|
|
1679
|
+
Layout Strategy
|
|
1680
|
+
● The "Anti-Grid": Avoid perfect alignment. Give adjacent cards slightly different rotation values.
|
|
1681
|
+
● Layering: Use zIndex to stack "tape" over cards and cards over background scribbles.
|
|
1682
|
+
● Visual Rhythm: Use padding: 20 for standard screens. Use large gap values between vertical elements to let the "paper" breathe.
|
|
1683
|
+
● Overflow: Allow decorative elements (like a hand-drawn star) to bleed slightly off the edge of the screen.
|
|
1684
|
+
|
|
1685
|
+
Non-Genericness (Bold Choices)
|
|
1686
|
+
● Sketchy Loaders: Instead of a spinner, use an animation that "scribbles" a circle or toggles between three hand-drawn frames.
|
|
1687
|
+
● Hand-Drawn Icons: Use icons that look like they were drawn with a 0.5mm fineliner (thick strokes, unclosed loops).
|
|
1688
|
+
● Strikethrough: When a task is completed or an item is deleted, use a red "scribble-out" SVG overlay instead of a simple line.
|
|
1689
|
+
● Wavy Dividers: Replace standard horizontal rules with a hand-drawn squiggly line SVG.
|
|
1690
|
+
|
|
1691
|
+
Effects & Animation
|
|
1692
|
+
● The "Jiggle": When a user triggers an error, use a Sequence animation that rapidly rotates the element between -2deg and 2deg.
|
|
1693
|
+
● Snappy Transitions: Use LayoutAnimation.configureNext(LayoutAnimation.Presets.spring) for all layout changes to give a bouncy, physical feel.
|
|
1694
|
+
|
|
1695
|
+
Mobile-First Strategy (React Native)
|
|
1696
|
+
● Touch Targets: Ensure all wobbly buttons have a minimum hit area of 48x48 even if the visual "ink" is smaller.
|
|
1697
|
+
● Safe Area: Ensure the "Paper" background extends into the SafeAreaView to maintain the illusion of physical media.
|
|
1698
|
+
● Performance: Use useNativeDriver: true for rotations and transforms to keep the "hand-drawn" movements fluid at 60fps.
|
|
1699
|
+
● Haptics: Add Haptics.impactAsync on button presses to reinforce the feeling of "clicking" a physical object.
|
|
1700
|
+
|
|
1701
|
+
|
|
1702
|
+
Neumorphism(新拟物化)
|
|
1703
|
+
通过单色背景上的双阴影拉伸和插入元素。柔软、触感好、物理接地,可接近性极佳。
|
|
1704
|
+
1. 极简主义硬件控制与智能家居
|
|
1705
|
+
2. 追求审美感的工具类 App
|
|
1706
|
+
3. 金融与健康监测看板(非密集型)
|
|
1707
|
+
4. 品牌营销与展示型页面
|
|
1708
|
+
|
|
1709
|
+
Design Philosophy (React Native / Mobile)
|
|
1710
|
+
Core Principles: Neumorphism on mobile creates a tactile, physical interface through dual shadows. On React Native, this is achieved by layering View components or using specialized libraries to simulate the light source (top-left) and dark shadow (bottom-right). Every component is "molded" from the base material (#E0E5EC). Buttons are never flat; they are either "pillowed" (convex) or "wells" (concave/inset).
|
|
1711
|
+
Vibe: Premium, ceramic-like feel. It prioritizes the "thump" of a physical button press. It is a calm, monochromatic experience that uses depth rather than color to establish hierarchy.
|
|
1712
|
+
Unique Visual Signatures (Mobile Specific):
|
|
1713
|
+
● Dual-Shadow Layering: Since React Native's shadowColor only supports one direction, use nested Viewcomponents or react-native-shadow-2 to achieve the dual-light effect.
|
|
1714
|
+
● Haptic Feedback: Every neumorphic interaction (Press/Release) must be accompanied by light haptic feedback (ImpactFeedbackStyle.Light).
|
|
1715
|
+
● Physical Press: Active states should use transform: [{ scale: 0.97 }] to simulate material compression.
|
|
1716
|
+
● Full-Screen Surface: The entire app uses a single background color (#E0E5EC) to maintain the "continuous material" illusion.
|
|
1717
|
+
|
|
1718
|
+
Design Token System (The DNA)
|
|
1719
|
+
Colors (Light Mode - Cool Monochromatic)
|
|
1720
|
+
● Background: #E0E5EC (The "Clay" base).
|
|
1721
|
+
● Text Primary: #3D4852 (7.5:1 contrast).
|
|
1722
|
+
● Text Muted: #6B7280 (4.6:1 contrast).
|
|
1723
|
+
● Accent: #6C63FF (Used for active toggles or primary CTAs).
|
|
1724
|
+
● Shadow Light: rgba(255, 255, 255, 0.6) (Top-Left).
|
|
1725
|
+
● Shadow Dark: rgba(163, 177, 198, 0.7) (Bottom-Right).
|
|
1726
|
+
Typography
|
|
1727
|
+
● Font Family: Use System (San Francisco/Roboto) or PlusJakartaSans-Bold.
|
|
1728
|
+
● Sizing: * Heading: 24pt-32pt, Bold.
|
|
1729
|
+
○ Body: 16pt, Medium.
|
|
1730
|
+
○ Caption: 12pt, Regular.
|
|
1731
|
+
● Letter Spacing: -0.5 for headings to enhance the modern look.
|
|
1732
|
+
Radius (React Native borderRadius)
|
|
1733
|
+
● Large Container: 32
|
|
1734
|
+
● Standard Button/Input: 16
|
|
1735
|
+
● Pill/Search Bar: 999
|
|
1736
|
+
|
|
1737
|
+
Shadows & Effects (The Physics)
|
|
1738
|
+
Note: React Native requires specific shadow properties for iOS and elevation for Android. For high-fidelity Neumorphism, use a wrapping implementation.
|
|
1739
|
+
Extruded (Convex - Resting)
|
|
1740
|
+
● Outer Shadow (Dark): shadowOffset: { width: 6, height: 6 }, shadowOpacity: 1, shadowRadius: 10, shadowColor: 'rgba(163, 177, 198, 0.7)'
|
|
1741
|
+
● Inner Shadow (Light): shadowOffset: { width: -6, height: -6 }, shadowOpacity: 1, shadowRadius: 10, shadowColor: 'rgba(255, 255, 255, 0.6)'
|
|
1742
|
+
Inset (Concave - Pressed/Input)
|
|
1743
|
+
● Concept: Use a slightly darker background color (#D1D9E6) or internal gradients/shadows to simulate a "carved out" look.
|
|
1744
|
+
● Visual: backgroundColor: '#E0E5EC', plus internal borders of 1px with a darker shade at the top.
|
|
1745
|
+
|
|
1746
|
+
Component Styling (React Native)
|
|
1747
|
+
Buttons
|
|
1748
|
+
● Base: height: 56, borderRadius: 16, justifyContent: 'center', alignItems: 'center'.
|
|
1749
|
+
● Default State: Extruded dual shadow.
|
|
1750
|
+
● Active State (Pressable): Remove outer shadows, apply scale: 0.98, and change background slightly to indicate an "inset" state.
|
|
1751
|
+
● Haptics: Trigger Haptics.impactAsync on onPressIn.
|
|
1752
|
+
Cards
|
|
1753
|
+
● Base: padding: 24, borderRadius: 32, backgroundColor: '#E0E5EC'.
|
|
1754
|
+
● Hierarchy: Use "Nested Depth." A card (Extruded) contains an Icon Container (Inset Deep).
|
|
1755
|
+
Inputs
|
|
1756
|
+
● Style: height: 50, borderRadius: 16, paddingHorizontal: 16.
|
|
1757
|
+
● Depth: Must be Inset (Concave) to look like a physical slot.
|
|
1758
|
+
● Focus: Border color changes to #6C63FF with a thin 1.5px width.
|
|
1759
|
+
|
|
1760
|
+
Animation & Micro-interactions
|
|
1761
|
+
● Framework: Use React Native Reanimated or LayoutAnimation.
|
|
1762
|
+
● Transitions: Duration: 250ms, Easing: Bezier(0.4, 0, 0.2, 1).
|
|
1763
|
+
● Interaction: * Scale: Buttons shrink by 2-3% when pressed.
|
|
1764
|
+
○ Shadow Transition: Smoothly interpolate shadow opacity from 1 to 0.4 when an element is "pressed" into the surface.
|
|
1765
|
+
|
|
1766
|
+
Layout & Accessibility
|
|
1767
|
+
● Safe Area: Always wrap in SafeAreaView.
|
|
1768
|
+
● Touch Targets: Minimum 48x48 for all interactive elements.
|
|
1769
|
+
● Spacing: Use a 8pt grid system (8, 16, 24, 32, 48).
|
|
1770
|
+
● Contrast: Ensure text color maintains WCAG AA compliance against the #E0E5EC background.
|
|
1771
|
+
|
|
1772
|
+
Anti-Patterns (Do Not Do)
|
|
1773
|
+
● No Black Shadows: Never use rgba(0,0,0,x). Shadows must be blue-grey to match the "Cool Grey" material.
|
|
1774
|
+
● No Pure White Backgrounds: The screen background MUST be #E0E5EC.
|
|
1775
|
+
● No Sharp Edges: Avoid borderRadius < 12.
|
|
1776
|
+
● No Flat Borders: Do not use borderWidth: 1 as a substitute for depth unless in a focus state.
|