figma-to-code-agent 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/LICENSE +21 -0
  3. package/QUICKSTART.md +198 -0
  4. package/README.md +149 -0
  5. package/dist/FigmaToCodeAgent.d.ts +55 -0
  6. package/dist/FigmaToCodeAgent.d.ts.map +1 -0
  7. package/dist/FigmaToCodeAgent.js +251 -0
  8. package/dist/FigmaToCodeAgent.js.map +1 -0
  9. package/dist/assets/index.d.ts +6 -0
  10. package/dist/assets/index.d.ts.map +1 -0
  11. package/dist/assets/index.js +7 -0
  12. package/dist/assets/index.js.map +1 -0
  13. package/dist/cli.d.ts +3 -0
  14. package/dist/cli.d.ts.map +1 -0
  15. package/dist/cli.js +261 -0
  16. package/dist/cli.js.map +1 -0
  17. package/dist/extraction/FigmaAPIClient.d.ts +53 -0
  18. package/dist/extraction/FigmaAPIClient.d.ts.map +1 -0
  19. package/dist/extraction/FigmaAPIClient.js +275 -0
  20. package/dist/extraction/FigmaAPIClient.js.map +1 -0
  21. package/dist/extraction/FigmaCache.d.ts +28 -0
  22. package/dist/extraction/FigmaCache.d.ts.map +1 -0
  23. package/dist/extraction/FigmaCache.js +120 -0
  24. package/dist/extraction/FigmaCache.js.map +1 -0
  25. package/dist/extraction/MCPClient.d.ts +75 -0
  26. package/dist/extraction/MCPClient.d.ts.map +1 -0
  27. package/dist/extraction/MCPClient.js +254 -0
  28. package/dist/extraction/MCPClient.js.map +1 -0
  29. package/dist/extraction/index.d.ts +9 -0
  30. package/dist/extraction/index.d.ts.map +1 -0
  31. package/dist/extraction/index.js +27 -0
  32. package/dist/extraction/index.js.map +1 -0
  33. package/dist/extraction/types.d.ts +122 -0
  34. package/dist/extraction/types.d.ts.map +1 -0
  35. package/dist/extraction/types.js +6 -0
  36. package/dist/extraction/types.js.map +1 -0
  37. package/dist/generation/AICodeOptimizer.d.ts +10 -0
  38. package/dist/generation/AICodeOptimizer.d.ts.map +1 -0
  39. package/dist/generation/AICodeOptimizer.js +33 -0
  40. package/dist/generation/AICodeOptimizer.js.map +1 -0
  41. package/dist/generation/ReactGenerator.d.ts +27 -0
  42. package/dist/generation/ReactGenerator.d.ts.map +1 -0
  43. package/dist/generation/ReactGenerator.js +423 -0
  44. package/dist/generation/ReactGenerator.js.map +1 -0
  45. package/dist/generation/VueGenerator.d.ts +23 -0
  46. package/dist/generation/VueGenerator.d.ts.map +1 -0
  47. package/dist/generation/VueGenerator.js +337 -0
  48. package/dist/generation/VueGenerator.js.map +1 -0
  49. package/dist/generation/index.d.ts +6 -0
  50. package/dist/generation/index.d.ts.map +1 -0
  51. package/dist/generation/index.js +7 -0
  52. package/dist/generation/index.js.map +1 -0
  53. package/dist/generation/types.d.ts +24 -0
  54. package/dist/generation/types.d.ts.map +1 -0
  55. package/dist/generation/types.js +3 -0
  56. package/dist/generation/types.js.map +1 -0
  57. package/dist/index.d.ts +10 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +17 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/llm/BedrockProvider.d.ts +8 -0
  62. package/dist/llm/BedrockProvider.d.ts.map +1 -0
  63. package/dist/llm/BedrockProvider.js +34 -0
  64. package/dist/llm/BedrockProvider.js.map +1 -0
  65. package/dist/llm/LLMFactory.d.ts +5 -0
  66. package/dist/llm/LLMFactory.d.ts.map +1 -0
  67. package/dist/llm/LLMFactory.js +21 -0
  68. package/dist/llm/LLMFactory.js.map +1 -0
  69. package/dist/llm/OpenAIProvider.d.ts +7 -0
  70. package/dist/llm/OpenAIProvider.d.ts.map +1 -0
  71. package/dist/llm/OpenAIProvider.js +34 -0
  72. package/dist/llm/OpenAIProvider.js.map +1 -0
  73. package/dist/llm/index.d.ts +5 -0
  74. package/dist/llm/index.d.ts.map +1 -0
  75. package/dist/llm/index.js +21 -0
  76. package/dist/llm/index.js.map +1 -0
  77. package/dist/llm/types.d.ts +23 -0
  78. package/dist/llm/types.d.ts.map +1 -0
  79. package/dist/llm/types.js +3 -0
  80. package/dist/llm/types.js.map +1 -0
  81. package/dist/transformation/ASTFactory.d.ts +92 -0
  82. package/dist/transformation/ASTFactory.d.ts.map +1 -0
  83. package/dist/transformation/ASTFactory.js +240 -0
  84. package/dist/transformation/ASTFactory.js.map +1 -0
  85. package/dist/transformation/ASTParser.d.ts +13 -0
  86. package/dist/transformation/ASTParser.d.ts.map +1 -0
  87. package/dist/transformation/ASTParser.js +177 -0
  88. package/dist/transformation/ASTParser.js.map +1 -0
  89. package/dist/transformation/TransformationPipeline.d.ts +31 -0
  90. package/dist/transformation/TransformationPipeline.d.ts.map +1 -0
  91. package/dist/transformation/TransformationPipeline.js +42 -0
  92. package/dist/transformation/TransformationPipeline.js.map +1 -0
  93. package/dist/transformation/index.d.ts +7 -0
  94. package/dist/transformation/index.d.ts.map +1 -0
  95. package/dist/transformation/index.js +25 -0
  96. package/dist/transformation/index.js.map +1 -0
  97. package/dist/transformation/transformers/AIComponentSplitter.d.ts +14 -0
  98. package/dist/transformation/transformers/AIComponentSplitter.d.ts.map +1 -0
  99. package/dist/transformation/transformers/AIComponentSplitter.js +71 -0
  100. package/dist/transformation/transformers/AIComponentSplitter.js.map +1 -0
  101. package/dist/transformation/transformers/AILayoutAnalyzer.d.ts +18 -0
  102. package/dist/transformation/transformers/AILayoutAnalyzer.d.ts.map +1 -0
  103. package/dist/transformation/transformers/AILayoutAnalyzer.js +125 -0
  104. package/dist/transformation/transformers/AILayoutAnalyzer.js.map +1 -0
  105. package/dist/transformation/transformers/AISemanticNamer.d.ts +12 -0
  106. package/dist/transformation/transformers/AISemanticNamer.d.ts.map +1 -0
  107. package/dist/transformation/transformers/AISemanticNamer.js +50 -0
  108. package/dist/transformation/transformers/AISemanticNamer.js.map +1 -0
  109. package/dist/transformation/transformers/ComponentExtractor.d.ts +16 -0
  110. package/dist/transformation/transformers/ComponentExtractor.d.ts.map +1 -0
  111. package/dist/transformation/transformers/ComponentExtractor.js +91 -0
  112. package/dist/transformation/transformers/ComponentExtractor.js.map +1 -0
  113. package/dist/transformation/transformers/FigmaLayerPreserver.d.ts +14 -0
  114. package/dist/transformation/transformers/FigmaLayerPreserver.d.ts.map +1 -0
  115. package/dist/transformation/transformers/FigmaLayerPreserver.js +48 -0
  116. package/dist/transformation/transformers/FigmaLayerPreserver.js.map +1 -0
  117. package/dist/transformation/transformers/FigmaStructureOptimizer.d.ts +16 -0
  118. package/dist/transformation/transformers/FigmaStructureOptimizer.d.ts.map +1 -0
  119. package/dist/transformation/transformers/FigmaStructureOptimizer.js +65 -0
  120. package/dist/transformation/transformers/FigmaStructureOptimizer.js.map +1 -0
  121. package/dist/transformation/transformers/FlattenTransformer.d.ts +15 -0
  122. package/dist/transformation/transformers/FlattenTransformer.d.ts.map +1 -0
  123. package/dist/transformation/transformers/FlattenTransformer.js +69 -0
  124. package/dist/transformation/transformers/FlattenTransformer.js.map +1 -0
  125. package/dist/transformation/transformers/LayoutOptimizer.d.ts +15 -0
  126. package/dist/transformation/transformers/LayoutOptimizer.d.ts.map +1 -0
  127. package/dist/transformation/transformers/LayoutOptimizer.js +63 -0
  128. package/dist/transformation/transformers/LayoutOptimizer.js.map +1 -0
  129. package/dist/transformation/transformers/SemanticNamer.d.ts +14 -0
  130. package/dist/transformation/transformers/SemanticNamer.d.ts.map +1 -0
  131. package/dist/transformation/transformers/SemanticNamer.js +65 -0
  132. package/dist/transformation/transformers/SemanticNamer.js.map +1 -0
  133. package/dist/transformation/transformers/SimplifyTransformer.d.ts +23 -0
  134. package/dist/transformation/transformers/SimplifyTransformer.d.ts.map +1 -0
  135. package/dist/transformation/transformers/SimplifyTransformer.js +138 -0
  136. package/dist/transformation/transformers/SimplifyTransformer.js.map +1 -0
  137. package/dist/transformation/types.d.ts +129 -0
  138. package/dist/transformation/types.d.ts.map +1 -0
  139. package/dist/transformation/types.js +7 -0
  140. package/dist/transformation/types.js.map +1 -0
  141. package/dist/validation/index.d.ts +6 -0
  142. package/dist/validation/index.d.ts.map +1 -0
  143. package/dist/validation/index.js +7 -0
  144. package/dist/validation/index.js.map +1 -0
  145. package/package.json +81 -0
  146. package/test-app/test-react/index.html +19 -0
  147. package/test-app/test-react/package.json +16 -0
  148. package/test-app/test-react/src/Component.jsx +146 -0
  149. package/test-app/test-react/src/Component.module.css +572 -0
  150. package/test-app/test-react/src/Homepage.jsx +53 -0
  151. package/test-app/test-react/src/Homepage.module.css +218 -0
  152. package/test-app/test-react/src/ProductPage.jsx +74 -0
  153. package/test-app/test-react/src/ProductPage.module.css +357 -0
  154. package/test-app/test-react/src/ShoppingCart.jsx +151 -0
  155. package/test-app/test-react/src/ShoppingCart.module.css +739 -0
  156. package/test-app/test-react/src/main.jsx +9 -0
  157. package/test-app/test-react/vite.config.js +6 -0
  158. package/test-app/test-vue/index.html +19 -0
  159. package/test-app/test-vue/package.json +15 -0
  160. package/test-app/test-vue/src/App.vue +16 -0
  161. package/test-app/test-vue/src/Component.vue +723 -0
  162. package/test-app/test-vue/src/Homepage.vue +271 -0
  163. package/test-app/test-vue/src/ProductPage.vue +431 -0
  164. package/test-app/test-vue/src/ShoppingCart.vue +890 -0
  165. package/test-app/test-vue/src/main.js +4 -0
  166. package/test-app/test-vue/vite.config.js +6 -0
@@ -0,0 +1,572 @@
1
+ .responsive-wrapper {
2
+ width: 100%;
3
+ overflow: hidden;
4
+ }
5
+
6
+ .scale-container {
7
+ width: 1920px;
8
+ height: 1080px;
9
+ transform-origin: top left;
10
+ }
11
+
12
+ .element {
13
+ position: relative;
14
+ background-color: rgba(0, 0, 0, 1);
15
+ }
16
+
17
+ .group2526 {
18
+ position: absolute;
19
+ left: 0px;
20
+ top: 0px;
21
+ width: 1920px;
22
+ height: 1080px;
23
+ overflow: hidden;
24
+ background-color: inherit;
25
+ }
26
+
27
+ .text {
28
+ position: absolute;
29
+ left: 385px;
30
+ top: 280px;
31
+ width: 360px;
32
+ height: 239px;
33
+ font-family: 'MI Lan Pro', sans-serif;
34
+ font-size: 180px;
35
+ font-weight: 300;
36
+ line-height: 239px;
37
+ text-align: left;
38
+ white-space: nowrap;
39
+ color: rgba(255, 255, 255, 1);
40
+ }
41
+
42
+ .miui-miui12 {
43
+ position: absolute;
44
+ left: 396px;
45
+ top: 788px;
46
+ width: 700px;
47
+ height: 58px;
48
+ font-family: 'MI Lan Pro', sans-serif;
49
+ font-size: 22px;
50
+ font-weight: 400;
51
+ line-height: 29px;
52
+ text-align: justified;
53
+ color: rgba(255, 255, 255, 0.699999988079071);
54
+ }
55
+
56
+ .miui12 {
57
+ position: absolute;
58
+ left: 396px;
59
+ top: 643px;
60
+ width: 416px;
61
+ height: 129px;
62
+ font-family: 'MI Lan Pro', sans-serif;
63
+ font-size: 36px;
64
+ font-weight: 700;
65
+ line-height: 43px;
66
+ letter-spacing: 2px;
67
+ text-align: left;
68
+ color: rgba(255, 255, 255, 1);
69
+ }
70
+
71
+ .rectangle28 {
72
+ position: absolute;
73
+ left: 0px;
74
+ top: 0px;
75
+ width: 1920px;
76
+ height: 1080px;
77
+ background-color: rgba(0, 0, 0, 0.4000000059604645);
78
+ }
79
+
80
+ .group2523 {
81
+ position: absolute;
82
+ left: 0px;
83
+ top: 0px;
84
+ width: 384px;
85
+ height: 1080px;
86
+ overflow: hidden;
87
+ background-color: inherit;
88
+ }
89
+
90
+ .mask-group {
91
+ position: absolute;
92
+ left: 0px;
93
+ top: 0px;
94
+ width: 384px;
95
+ height: 1080px;
96
+ overflow: hidden;
97
+ background-color: inherit;
98
+ }
99
+
100
+ .mask-group-1 {
101
+ position: absolute;
102
+ left: 50px;
103
+ top: 425px;
104
+ width: 597px;
105
+ height: 597px;
106
+ overflow: hidden;
107
+ background-color: inherit;
108
+ }
109
+
110
+ .mars-methane2 {
111
+ position: absolute;
112
+ left: -202px;
113
+ top: -22px;
114
+ width: 969px;
115
+ height: 640px;
116
+ object-fit: cover;
117
+ display: block;
118
+ }
119
+
120
+ .rectangle30 {
121
+ position: absolute;
122
+ left: 0px;
123
+ top: 0px;
124
+ width: 384px;
125
+ height: 1080px;
126
+ background-color: rgba(0, 0, 0, 0.30000001192092896);
127
+ }
128
+
129
+ .text-1 {
130
+ position: absolute;
131
+ left: 70px;
132
+ top: 250px;
133
+ width: 104px;
134
+ height: 440px;
135
+ font-family: 'MI Lan Pro', sans-serif;
136
+ font-size: 100px;
137
+ font-weight: 300;
138
+ line-height: 110px;
139
+ text-align: left;
140
+ color: rgba(255, 255, 255, 1);
141
+ }
142
+
143
+ .group2512 {
144
+ position: absolute;
145
+ left: 70px;
146
+ top: 946px;
147
+ width: 26px;
148
+ height: 46px;
149
+ overflow: hidden;
150
+ background-color: inherit;
151
+ }
152
+
153
+ .element-1 {
154
+ position: absolute;
155
+ left: 0px;
156
+ top: 0px;
157
+ width: 26px;
158
+ height: 34px;
159
+ font-family: 'Mitype', sans-serif;
160
+ font-size: 28px;
161
+ font-weight: 500;
162
+ line-height: 34px;
163
+ text-align: left;
164
+ white-space: nowrap;
165
+ color: rgba(255, 255, 255, 1);
166
+ }
167
+
168
+ .rectangle38 {
169
+ position: absolute;
170
+ left: 2px;
171
+ top: 44px;
172
+ width: 14px;
173
+ height: 2px;
174
+ background-color: rgba(255, 255, 255, 1);
175
+ }
176
+
177
+ .group2527 {
178
+ position: absolute;
179
+ left: 384px;
180
+ top: 0px;
181
+ width: 384px;
182
+ height: 1080px;
183
+ overflow: hidden;
184
+ background-color: inherit;
185
+ }
186
+
187
+ .text-2 {
188
+ position: absolute;
189
+ left: 70px;
190
+ top: 250px;
191
+ width: 104px;
192
+ height: 440px;
193
+ font-family: 'MI Lan Pro', sans-serif;
194
+ font-size: 100px;
195
+ font-weight: 300;
196
+ line-height: 110px;
197
+ text-align: left;
198
+ color: rgba(255, 255, 255, 1);
199
+ }
200
+
201
+ .group2512-1 {
202
+ position: absolute;
203
+ left: 70px;
204
+ top: 946px;
205
+ width: 30px;
206
+ height: 46px;
207
+ overflow: hidden;
208
+ background-color: inherit;
209
+ }
210
+
211
+ .element-2 {
212
+ position: absolute;
213
+ left: 0px;
214
+ top: 0px;
215
+ width: 30px;
216
+ height: 34px;
217
+ opacity: 0.5;
218
+ font-family: 'Mitype', sans-serif;
219
+ font-size: 28px;
220
+ font-weight: 500;
221
+ line-height: 34px;
222
+ text-align: left;
223
+ white-space: nowrap;
224
+ color: rgba(255, 255, 255, 1);
225
+ }
226
+
227
+ .rectangle38-1 {
228
+ position: absolute;
229
+ left: 2px;
230
+ top: 44px;
231
+ width: 14px;
232
+ height: 2px;
233
+ background-color: rgba(255, 255, 255, 1);
234
+ opacity: 0.4000000059604645;
235
+ }
236
+
237
+ .group2528 {
238
+ position: absolute;
239
+ left: 768px;
240
+ top: 0px;
241
+ width: 384px;
242
+ height: 1080px;
243
+ overflow: hidden;
244
+ background-color: inherit;
245
+ }
246
+
247
+ .mask-group-2 {
248
+ position: absolute;
249
+ left: 0px;
250
+ top: 0px;
251
+ width: 384px;
252
+ height: 1080px;
253
+ object-fit: cover;
254
+ display: block;
255
+ }
256
+
257
+ .text-3 {
258
+ position: absolute;
259
+ left: 70px;
260
+ top: 250px;
261
+ width: 104px;
262
+ height: 440px;
263
+ font-family: 'MI Lan Pro', sans-serif;
264
+ font-size: 100px;
265
+ font-weight: 300;
266
+ line-height: 110px;
267
+ text-align: left;
268
+ color: rgba(255, 255, 255, 1);
269
+ }
270
+
271
+ .group2512-2 {
272
+ position: absolute;
273
+ left: 70px;
274
+ top: 946px;
275
+ width: 30px;
276
+ height: 46px;
277
+ overflow: hidden;
278
+ background-color: inherit;
279
+ }
280
+
281
+ .element-3 {
282
+ position: absolute;
283
+ left: 0px;
284
+ top: 0px;
285
+ width: 30px;
286
+ height: 34px;
287
+ font-family: 'Mitype', sans-serif;
288
+ font-size: 28px;
289
+ font-weight: 500;
290
+ line-height: 34px;
291
+ text-align: left;
292
+ white-space: nowrap;
293
+ color: rgba(255, 255, 255, 1);
294
+ }
295
+
296
+ .rectangle38-2 {
297
+ position: absolute;
298
+ left: 2px;
299
+ top: 44px;
300
+ width: 14px;
301
+ height: 2px;
302
+ background-color: rgba(255, 255, 255, 1);
303
+ }
304
+
305
+ .group2529 {
306
+ position: absolute;
307
+ left: 1152px;
308
+ top: 0px;
309
+ width: 384px;
310
+ height: 1080px;
311
+ overflow: hidden;
312
+ background-color: inherit;
313
+ }
314
+
315
+ .text-4 {
316
+ position: absolute;
317
+ left: 70px;
318
+ top: 250px;
319
+ width: 104px;
320
+ height: 440px;
321
+ font-family: 'MI Lan Pro', sans-serif;
322
+ font-size: 100px;
323
+ font-weight: 300;
324
+ line-height: 110px;
325
+ text-align: left;
326
+ color: rgba(255, 255, 255, 1);
327
+ }
328
+
329
+ .group2512-3 {
330
+ position: absolute;
331
+ left: 70px;
332
+ top: 946px;
333
+ width: 31px;
334
+ height: 46px;
335
+ overflow: hidden;
336
+ background-color: inherit;
337
+ }
338
+
339
+ .element-4 {
340
+ position: absolute;
341
+ left: 0px;
342
+ top: 0px;
343
+ width: 31px;
344
+ height: 34px;
345
+ opacity: 0.5;
346
+ font-family: 'Mitype', sans-serif;
347
+ font-size: 28px;
348
+ font-weight: 500;
349
+ line-height: 34px;
350
+ text-align: left;
351
+ white-space: nowrap;
352
+ color: rgba(255, 255, 255, 1);
353
+ }
354
+
355
+ .rectangle38-3 {
356
+ position: absolute;
357
+ left: 2px;
358
+ top: 44px;
359
+ width: 14px;
360
+ height: 2px;
361
+ background-color: rgba(255, 255, 255, 1);
362
+ opacity: 0.4000000059604645;
363
+ }
364
+
365
+ .group2530 {
366
+ position: absolute;
367
+ left: 1536px;
368
+ top: 0px;
369
+ width: 384px;
370
+ height: 1080px;
371
+ overflow: hidden;
372
+ background-color: inherit;
373
+ }
374
+
375
+ .text-5 {
376
+ position: absolute;
377
+ left: 70px;
378
+ top: 250px;
379
+ width: 104px;
380
+ height: 440px;
381
+ font-family: 'MI Lan Pro', sans-serif;
382
+ font-size: 100px;
383
+ font-weight: 300;
384
+ line-height: 110px;
385
+ text-align: left;
386
+ color: rgba(255, 255, 255, 1);
387
+ }
388
+
389
+ .group2512-4 {
390
+ position: absolute;
391
+ left: 70px;
392
+ top: 946px;
393
+ width: 30px;
394
+ height: 46px;
395
+ overflow: hidden;
396
+ background-color: inherit;
397
+ }
398
+
399
+ .element-5 {
400
+ position: absolute;
401
+ left: 0px;
402
+ top: 0px;
403
+ width: 30px;
404
+ height: 34px;
405
+ opacity: 0.5;
406
+ font-family: 'Mitype', sans-serif;
407
+ font-size: 28px;
408
+ font-weight: 500;
409
+ line-height: 34px;
410
+ text-align: left;
411
+ white-space: nowrap;
412
+ color: rgba(255, 255, 255, 1);
413
+ }
414
+
415
+ .rectangle38-4 {
416
+ position: absolute;
417
+ left: 2px;
418
+ top: 44px;
419
+ width: 14px;
420
+ height: 2px;
421
+ background-color: rgba(255, 255, 255, 1);
422
+ opacity: 0.4000000059604645;
423
+ }
424
+
425
+ .group2608 {
426
+ position: absolute;
427
+ left: 384px;
428
+ top: 0px;
429
+ width: 1153px;
430
+ height: 1080px;
431
+ object-fit: cover;
432
+ display: block;
433
+ }
434
+
435
+ .group2524 {
436
+ position: absolute;
437
+ left: 0px;
438
+ top: 0px;
439
+ width: 1920px;
440
+ height: 170px;
441
+ overflow: hidden;
442
+ background-color: inherit;
443
+ }
444
+
445
+ .rectangle44 {
446
+ position: absolute;
447
+ left: 0px;
448
+ top: 0px;
449
+ width: 1920px;
450
+ height: 170px;
451
+ background-color: rgba(0, 0, 0, 1);
452
+ }
453
+
454
+ .group {
455
+ position: absolute;
456
+ left: 396px;
457
+ top: 80px;
458
+ width: 70px;
459
+ height: 16px;
460
+ object-fit: cover;
461
+ display: block;
462
+ }
463
+
464
+ .group9 {
465
+ position: absolute;
466
+ left: 940px;
467
+ top: 75px;
468
+ width: 488px;
469
+ height: 21px;
470
+ overflow: hidden;
471
+ background-color: inherit;
472
+ }
473
+
474
+ .text-6 {
475
+ position: absolute;
476
+ left: 0px;
477
+ top: 0px;
478
+ width: 32px;
479
+ height: 21px;
480
+ font-family: 'MI Lan Pro', sans-serif;
481
+ font-size: 16px;
482
+ font-weight: 400;
483
+ line-height: 21px;
484
+ text-align: left;
485
+ white-space: nowrap;
486
+ color: rgba(255, 255, 255, 1);
487
+ }
488
+
489
+ .text-7 {
490
+ position: absolute;
491
+ left: 72px;
492
+ top: 0px;
493
+ width: 32px;
494
+ height: 21px;
495
+ font-family: 'MI Lan Pro', sans-serif;
496
+ font-size: 16px;
497
+ font-weight: 400;
498
+ line-height: 21px;
499
+ text-align: left;
500
+ white-space: nowrap;
501
+ color: rgba(255, 255, 255, 1);
502
+ }
503
+
504
+ .text-8 {
505
+ position: absolute;
506
+ left: 144px;
507
+ top: 0px;
508
+ width: 48px;
509
+ height: 21px;
510
+ font-family: 'MI Lan Pro', sans-serif;
511
+ font-size: 16px;
512
+ font-weight: 400;
513
+ line-height: 21px;
514
+ text-align: left;
515
+ white-space: nowrap;
516
+ color: rgba(255, 255, 255, 1);
517
+ }
518
+
519
+ .text-9 {
520
+ position: absolute;
521
+ left: 424px;
522
+ top: 0px;
523
+ width: 64px;
524
+ height: 21px;
525
+ font-family: 'MI Lan Pro', sans-serif;
526
+ font-size: 16px;
527
+ font-weight: 400;
528
+ line-height: 21px;
529
+ text-align: right;
530
+ white-space: nowrap;
531
+ color: rgba(255, 255, 255, 1);
532
+ }
533
+
534
+ .text-10 {
535
+ position: absolute;
536
+ left: 336px;
537
+ top: 0px;
538
+ width: 48px;
539
+ height: 21px;
540
+ font-family: 'MI Lan Pro', sans-serif;
541
+ font-size: 16px;
542
+ font-weight: 400;
543
+ line-height: 21px;
544
+ text-align: right;
545
+ white-space: nowrap;
546
+ color: rgba(255, 255, 255, 1);
547
+ }
548
+
549
+ .text-11 {
550
+ position: absolute;
551
+ left: 232px;
552
+ top: 0px;
553
+ width: 64px;
554
+ height: 21px;
555
+ font-family: 'MI Lan Pro', sans-serif;
556
+ font-size: 16px;
557
+ font-weight: 400;
558
+ line-height: 21px;
559
+ text-align: right;
560
+ white-space: nowrap;
561
+ color: rgba(255, 255, 255, 1);
562
+ }
563
+
564
+ .group10 {
565
+ position: absolute;
566
+ left: 1504px;
567
+ top: 76px;
568
+ width: 20px;
569
+ height: 20px;
570
+ object-fit: contain;
571
+ display: block;
572
+ }
@@ -0,0 +1,53 @@
1
+ import React from 'react'
2
+ import styles from './Homepage.module.css'
3
+ import imgjonathan_kemper_1hhrdiolfpu_unsplash_1 from './assets/jonathan-kemper-1hhrdiolfpu-unsplash-1.png'
4
+ import imgstocksy_txp226f62b2ane300_medium_4582193_1 from './assets/stocksy_txp226f62b2ane300_medium_4582193-1.png'
5
+
6
+ export function Homepage(props) {
7
+ return (
8
+ <div className={styles['homepage']}>
9
+ {/* wereFarmersPurveyors */}
10
+ <span className={styles['were-farmers-purveyors']}>We’re farmers, purveyors, and eaters of organically grown food.</span>
11
+ {/* button */}
12
+ <div className={styles['button']}>
13
+ {/* browseOurShop */}
14
+ <span className={styles['browse-our-shop']}>Browse our shop</span>
15
+ </div>
16
+ {/* weBelieveIn */}
17
+ <span className={styles['we-believe-in']}>We believe in produce. Tasty produce. Produce like:
18
+
19
+ Apples. Oranges. Limes. Lemons. Guavas. Carrots. Cucumbers. Jicamas. Cauliflowers. Brussels sprouts. Shallots. Japanese eggplants. Asparagus. Artichokes—Jerusalem artichokes, too. Radishes. Broccoli. Baby broccoli. Broccolini. Bok choy. Scallions. Ginger. Cherries. Raspberries. Cilantro. Parsley. Dill.
20
+
21
+ What are we forgetting?
22
+
23
+ Oh! Onions. Yams. Avocados. Lettuce. Arugula (to some, “rocket”). Persian cucumbers, in addition to aforementioned “normal” cucumbers. Artichokes. Zucchinis. Pumpkins. Squash (what some cultures call pumpkins). Sweet potatoes and potato-potatoes. Jackfruit. Monk fruit. Fruit of the Loom. Fruits of our labor (this website). Sorrel. Pineapple. Mango. Gooseberries. Blackberries. Tomatoes. Heirloom tomatoes. Beets. Chives. Corn. Endive. Escarole, which, we swear, we’re vendors of organic produce, but if you asked us to describe what escaroles are...</span>
24
+ {/* whatWeBelieve */}
25
+ <span className={styles['what-we-believe']}>WHAT WE BELIEVE</span>
26
+ {/* jonathanKemper1hhrdiolfpu */}
27
+ <img className={styles['jonathan-kemper1hhrdiolfpu']} src={imgjonathan_kemper_1hhrdiolfpu_unsplash_1} alt="jonathanKemper1hhrdiolfpu" />
28
+ {/* centralCaliforniaThe */}
29
+ <span className={styles['central-california-the']}>Central California — The person who grew these was located in Central California and, er, hopefully very well-compensated.</span>
30
+ {/* header */}
31
+ <div className={styles['header']}>
32
+ {/* worldPeas */}
33
+ <span className={styles['world-peas']}>World Peas</span>
34
+ {/* shop */}
35
+ <span className={styles['shop']}>Shop</span>
36
+ {/* newstand */}
37
+ <span className={styles['newstand']}>Newstand</span>
38
+ {/* whoWeAre */}
39
+ <span className={styles['who-we-are']}>Who we are</span>
40
+ {/* myProfile */}
41
+ <span className={styles['my-profile']}>My profile</span>
42
+ {/* cartButton */}
43
+ <div className={styles['cart-button']}>
44
+ {/* basket3 */}
45
+ <span className={styles['basket3']}>Basket (3)</span>
46
+ </div>
47
+ </div>
48
+ {/* stocksyTxp226f62b2ane300Medium */}
49
+ <img className={styles['stocksy-txp226f62b2ane300medium']} src={imgstocksy_txp226f62b2ane300_medium_4582193_1} alt="stocksyTxp226f62b2ane300Medium" />
50
+ </div>
51
+ )
52
+ }
53
+