collect
assemble
ship
canvas-patterncanvas-patterncanvas-patterncanvas-pattern
Variant · 1
Variant · 2
What's on the agenda today?
Ask me anything, and I'll help you get things done.
Ask anything...
Send
Help me write an email
Explain concept
Plan my day
Press Enter to send, Shift + Enter for new line
Ready to ship
1### index.css
2
3```css
4/* This is Tailwind 4 CSS file */
5/* Extending Tailwind configuration */
6/* Use shadcn/ui format to extend the configuration */
7/* Add only the styles that your component needs */
8
9/* Base imports */
10@import "tailwindcss";
11@import "tw-animate-css";
12@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
13
14/* Custom dark variant for targeting dark mode elements */
15@custom-variant dark (&:is(.dark *));
16
17/* CSS variables and theme definitions */
18@theme inline {
19  --radius-sm: calc(var(--radius) - 4px);
20  --radius-md: calc(var(--radius) - 2px);
21  --radius-lg: var(--radius);
22  --radius-xl: calc(var(--radius) + 4px);
23  --color-background: var(--background);
24  --color-foreground: var(--foreground);
25  --color-card: var(--card);
26  --color-card-foreground: var(--card-foreground);
27  --color-popover: var(--popover);
28  --color-popover-foreground: var(--popover-foreground);
29  --color-primary: var(--primary);
30  --color-primary-foreground: var(--primary-foreground);
31  --color-secondary: var(--secondary);
32  --color-secondary-foreground: var(--secondary-foreground);
33  --color-muted: var(--muted);
34  --color-muted-foreground: var(--muted-foreground);
35  --color-accent: var(--accent);
36  --color-accent-foreground: var(--accent-foreground);
37  --color-destructive: var(--destructive);
38  --color-border: var(--border);
39  --color-input: var(--input);
40  --color-ring: var(--ring);
41  --color-chart-1: var(--chart-1);
42  --color-chart-2: var(--chart-2);
43  --color-chart-3: var(--chart-3);
44  --color-chart-4: var(--chart-4);
45  --color-chart-5: var(--chart-5);
46  --color-sidebar: var(--sidebar);
47  --color-sidebar-foreground: var(--sidebar-foreground);
48  --color-sidebar-primary: var(--sidebar-primary);
49  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
50  --color-sidebar-accent: var(--sidebar-accent);
51  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
52  --color-sidebar-border: var(--sidebar-border);
53  --color-sidebar-ring: var(--sidebar-ring);
54}
55
56/* Light theme variables */
57:root {
58  --radius: 0.625rem;
59  --background: oklch(1 0 0);
60  --foreground: oklch(0.145 0 0);
61  --card: oklch(1 0 0);
62  --card-foreground: oklch(0.145 0 0);
63  --popover: oklch(1 0 0);
64  --popover-foreground: oklch(0.145 0 0);
65  --primary: oklch(0.205 0 0);
66  --primary-foreground: oklch(0.985 0 0);
67  --secondary: oklch(0.97 0 0);
68  --secondary-foreground: oklch(0.205 0 0);
69  --muted: oklch(0.97 0 0);
70  --muted-foreground: oklch(0.556 0 0);
71  --accent: oklch(0.97 0 0);
72  --accent-foreground: oklch(0.205 0 0);
73  --destructive: oklch(0.577 0.245 27.325);
74  --border: oklch(0.922 0 0);
75  --input: oklch(0.922 0 0);
76  --ring: oklch(0.708 0 0);
77  --chart-1: oklch(0.646 0.222 41.116);
78  --chart-2: oklch(0.6 0.118 184.704);
79  --chart-3: oklch(0.398 0.07 227.392);
80  --chart-4: oklch(0.828 0.189 84.429);
81  --chart-5: oklch(0.769 0.188 70.08);
82  --sidebar: oklch(0.985 0 0);
83  --sidebar-foreground: oklch(0.145 0 0);
84  --sidebar-primary: oklch(0.205 0 0);
85  --sidebar-primary-foreground: oklch(0.985 0 0);
86  --sidebar-accent: oklch(0.97 0 0);
87  --sidebar-accent-foreground: oklch(0.205 0 0);
88  --sidebar-border: oklch(0.922 0 0);
89  --sidebar-ring: oklch(0.708 0 0);
90}
91
92/* Dark theme variables */
93.dark {
94  --background: oklch(0.145 0 0);
95  --foreground: oklch(0.985 0 0);
96  --card: oklch(0.205 0 0);
97  --card-foreground: oklch(0.985 0 0);
98  --popover: oklch(0.205 0 0);
99  --popover-foreground: oklch(0.985 0 0);
100  --primary: oklch(0.922 0 0);
101  --primary-foreground: oklch(0.205 0 0);
102  --secondary: oklch(0.269 0 0);
103  --secondary-foreground: oklch(0.985 0 0);
104  --muted: oklch(0.269 0 0);
105  --muted-foreground: oklch(0.708 0 0);
106  --accent: oklch(0.269 0 0);
107  --accent-foreground: oklch(0.985 0 0);
108  --destructive: oklch(0.704 0.191 22.216);
109  --border: oklch(1 0 0 / 10%);
110  --input: oklch(1 0 0 / 15%);
111  --ring: oklch(0.556 0 0);
112  --chart-1: oklch(0.488 0.243 264.376);
113  --chart-2: oklch(0.696 0.17 162.48);
114  --chart-3: oklch(0.769 0.188 70.08);
115  --chart-4: oklch(0.627 0.265 303.9);
116  --chart-5: oklch(0.645 0.246 16.439);
117  --sidebar: oklch(0.205 0 0);
118  --sidebar-foreground: oklch(0.985 0 0);
119  --sidebar-primary: oklch(0.488 0.243 264.376);
120  --sidebar-primary-foreground: oklch(0.985 0 0);
121  --sidebar-accent: oklch(0.269 0 0);
122  --sidebar-accent-foreground: oklch(0.985 0 0);
123  --sidebar-border: oklch(1 0 0 / 10%);
124  --sidebar-ring: oklch(0.556 0 0);
125}
126
127/* Tailwind base styles */
128@layer base {
129  * {
130    @apply border-border outline-ring/50;
131  }
132  body {
133    @apply bg-background text-foreground;
134  }
135}
136
137.smoothed {
138  -webkit-font-smoothing: antialiased;
139  -moz-osx-font-smoothing: grayscale;
140}
141
142input::placeholder {
143  opacity: 0.6;
144}
145```
146
147### App.tsx
148
149```tsx
150// This is a infrastructure component that renders demos
151// Please do not modify this file
152
153function App() {
154  return (
155    
156      
157        {/* Avatar */}
158        
159          
160            
161          
162        
163
164        {/* Title */}
165        
166          What's on the agenda today?
167        
168
169        {/* Subtitle */}
170        
171          Ask me anything, and I'll help you get things done.
172        
173
174        {/* Input Container */}
175        <div
176          className="bg-white mb-4 transition-shadow"
177          style={{
178            borderRadius: "16px",
179            boxShadow:
180              "0 32px 56px -12px rgba(0, 0, 0, 0.02), 0 6px 12px -3px rgba(0, 0, 0, 0.02), 0 3px 6px -1.5px rgba(0, 0, 0, 0.01), 0 0 0 0.75px rgba(0, 0, 0, 0.04)",
181            width: "540px",
182            height: "88px",
183            padding: "8px",
184            zIndex: 999,
185          }}
186          onMouseEnter={(e) => {
187            e.currentTarget.style.boxShadow =
188              "0 32px 56px -12px rgba(0, 0, 0, 0.06), 0 6px 12px -3px rgba(0, 0, 0, 0.02), 0 3px 6px -1.5px rgba(0, 0, 0, 0.01), 0 0 0 0.75px rgba(0, 0, 0, 0.04)";
189          }}
190          onMouseLeave={(e) => {
191            e.currentTarget.style.boxShadow =
192              "0 32px 56px -12px rgba(0, 0, 0, 0.02), 0 6px 12px -3px rgba(0, 0, 0, 0.02), 0 3px 6px -1.5px rgba(0, 0, 0, 0.01), 0 0 0 0.75px rgba(0, 0, 0, 0.04)";
193          }}
194          onClick={(e) => {
195            e.currentTarget.style.boxShadow =
196              "0 32px 56px -12px rgba(0, 0, 0, 0.02), 0 6px 12px -3px rgba(0, 0, 0, 0.02), 0 3px 6px -1.5px rgba(0, 0, 0, 0.01), 0 0 0 0.75px rgba(0, 0, 0, 0.04)";
197          }}
198          data-ws-id="Hs4j1XYwPuJmmMzo"
199        >
200          
201            {/* Input Row */}
202            
203              
204            
205
206            {/* Bottom Row with Attachment and Send */}
207            
208              {/* Attachment Icon */}
209              
210                
211                  
212                    
213                  
214                
215              
216
217              {/* Send Button */}
218              
219                Send
220              
221            
222          
223        
224
225        {/* Quick Action Buttons */}
226        
227          
228            Help me write an email
229          
230          
231            Explain concept
232          
233          
234            Plan my day
235          
236        
237
238        {/* Footer Text */}
239        
240          Press Enter to send, Shift + Enter for new line
241        
242      
243    
244  );
245}
246export default App;
247```
248
Cursor