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,271 @@
1
+ <template>
2
+ <div class="homepage">
3
+ <!-- wereFarmersPurveyors -->
4
+ <span class="were-farmers-purveyors">We’re farmers, purveyors, and eaters of organically grown food.</span>
5
+ <!-- button -->
6
+ <div class="button">
7
+ <!-- browseOurShop -->
8
+ <span class="browse-our-shop">Browse our shop</span>
9
+ </div>
10
+ <!-- weBelieveIn -->
11
+ <span class="we-believe-in">We believe in produce. Tasty produce. Produce like:
12
+
13
+ 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.
14
+
15
+ What are we forgetting?
16
+
17
+ 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>
18
+ <!-- whatWeBelieve -->
19
+ <span class="what-we-believe">WHAT WE BELIEVE</span>
20
+ <!-- jonathanKemper1hhrdiolfpu -->
21
+ <img class="jonathan-kemper1hhrdiolfpu" :src="imgjonathan_kemper_1hhrdiolfpu_unsplash_1" alt="jonathanKemper1hhrdiolfpu" />
22
+ <!-- centralCaliforniaThe -->
23
+ <span class="central-california-the">Central California — The person who grew these was located in Central California and, er, hopefully very well-compensated.</span>
24
+ <!-- header -->
25
+ <div class="header">
26
+ <!-- worldPeas -->
27
+ <span class="world-peas">World Peas</span>
28
+ <!-- shop -->
29
+ <span class="shop">Shop</span>
30
+ <!-- newstand -->
31
+ <span class="newstand">Newstand</span>
32
+ <!-- whoWeAre -->
33
+ <span class="who-we-are">Who we are</span>
34
+ <!-- myProfile -->
35
+ <span class="my-profile">My profile</span>
36
+ <!-- cartButton -->
37
+ <div class="cart-button">
38
+ <!-- basket3 -->
39
+ <span class="basket3">Basket (3)</span>
40
+ </div>
41
+ </div>
42
+ <!-- stocksyTxp226f62b2ane300Medium -->
43
+ <img class="stocksy-txp226f62b2ane300medium" :src="imgstocksy_txp226f62b2ane300_medium_4582193_1" alt="stocksyTxp226f62b2ane300Medium" />
44
+ </div>
45
+ </template>
46
+
47
+ <script setup>
48
+ import imgjonathan_kemper_1hhrdiolfpu_unsplash_1 from './assets/jonathan-kemper-1hhrdiolfpu-unsplash-1.png'
49
+ import imgstocksy_txp226f62b2ane300_medium_4582193_1 from './assets/stocksy_txp226f62b2ane300_medium_4582193-1.png'
50
+ </script>
51
+
52
+ <style scoped>
53
+ .homepage {
54
+ position: relative;
55
+ max-width: 1440px;
56
+ margin: 0 auto;
57
+ height: 2092px;
58
+ background-color: rgba(255, 255, 255, 1);
59
+ }
60
+
61
+ .were-farmers-purveyors {
62
+ position: absolute;
63
+ left: 217px;
64
+ top: 279px;
65
+ width: 1020px;
66
+ height: 154px;
67
+ font-family: 'Newsreader', sans-serif;
68
+ font-size: 64px;
69
+ font-weight: 400;
70
+ line-height: 77px;
71
+ letter-spacing: -1.28px;
72
+ text-align: center;
73
+ color: rgba(0, 0, 0, 1);
74
+ }
75
+
76
+ .button {
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ position: absolute;
81
+ left: 607px;
82
+ top: 481px;
83
+ width: 227px;
84
+ height: 64px;
85
+ overflow: hidden;
86
+ background-color: rgba(66, 107, 31, 1);
87
+ border-radius: 8px;
88
+ }
89
+
90
+ .browse-our-shop {
91
+ font-family: 'Inter', sans-serif;
92
+ font-size: 20px;
93
+ font-weight: 600;
94
+ line-height: 26px;
95
+ white-space: nowrap;
96
+ color: rgba(255, 255, 255, 1);
97
+ }
98
+
99
+ .we-believe-in {
100
+ position: absolute;
101
+ left: 309px;
102
+ top: 1550px;
103
+ width: 822px;
104
+ height: 512px;
105
+ font-family: 'Inter', sans-serif;
106
+ font-size: 20px;
107
+ font-weight: 400;
108
+ line-height: 32px;
109
+ text-align: left;
110
+ color: rgba(0, 0, 0, 1);
111
+ }
112
+
113
+ .what-we-believe {
114
+ position: absolute;
115
+ left: 96px;
116
+ top: 1555px;
117
+ width: 181px;
118
+ height: 22px;
119
+ font-family: 'Inter', sans-serif;
120
+ font-size: 14px;
121
+ font-weight: 600;
122
+ line-height: 22px;
123
+ letter-spacing: 0.56px;
124
+ text-align: left;
125
+ white-space: nowrap;
126
+ color: rgba(0, 0, 0, 1);
127
+ }
128
+
129
+ .jonathan-kemper1hhrdiolfpu {
130
+ position: absolute;
131
+ left: 96px;
132
+ top: 701px;
133
+ width: 504px;
134
+ height: 693px;
135
+ object-fit: cover;
136
+ display: block;
137
+ }
138
+
139
+ .central-california-the {
140
+ position: absolute;
141
+ left: 660px;
142
+ top: 1287px;
143
+ width: 736px;
144
+ height: 44px;
145
+ font-family: 'Inter', sans-serif;
146
+ font-size: 14px;
147
+ font-weight: 400;
148
+ line-height: 22px;
149
+ letter-spacing: -0.14px;
150
+ text-align: left;
151
+ color: rgba(0, 0, 0, 1);
152
+ }
153
+
154
+ .header {
155
+ position: absolute;
156
+ left: 0px;
157
+ top: 0px;
158
+ width: 1440px;
159
+ height: 112px;
160
+ overflow: hidden;
161
+ }
162
+
163
+ .world-peas {
164
+ position: absolute;
165
+ left: 96px;
166
+ top: 41px;
167
+ width: 151px;
168
+ height: 32px;
169
+ font-family: 'Newsreader', sans-serif;
170
+ font-size: 32px;
171
+ font-weight: 500;
172
+ line-height: 32px;
173
+ letter-spacing: -0.32px;
174
+ text-align: left;
175
+ white-space: nowrap;
176
+ color: rgba(66, 107, 31, 1);
177
+ }
178
+
179
+ .shop {
180
+ position: absolute;
181
+ left: 744px;
182
+ top: 46px;
183
+ width: 39px;
184
+ height: 21px;
185
+ font-family: 'Inter', sans-serif;
186
+ font-size: 16px;
187
+ font-weight: 400;
188
+ line-height: 21px;
189
+ text-align: center;
190
+ white-space: nowrap;
191
+ color: rgba(0, 0, 0, 1);
192
+ }
193
+
194
+ .newstand {
195
+ position: absolute;
196
+ left: 831px;
197
+ top: 46px;
198
+ width: 77px;
199
+ height: 21px;
200
+ font-family: 'Inter', sans-serif;
201
+ font-size: 16px;
202
+ font-weight: 400;
203
+ line-height: 21px;
204
+ text-align: center;
205
+ white-space: nowrap;
206
+ color: rgba(0, 0, 0, 1);
207
+ }
208
+
209
+ .who-we-are {
210
+ position: absolute;
211
+ left: 956px;
212
+ top: 46px;
213
+ width: 90px;
214
+ height: 21px;
215
+ font-family: 'Inter', sans-serif;
216
+ font-size: 16px;
217
+ font-weight: 400;
218
+ line-height: 21px;
219
+ text-align: center;
220
+ white-space: nowrap;
221
+ color: rgba(0, 0, 0, 1);
222
+ }
223
+
224
+ .my-profile {
225
+ position: absolute;
226
+ left: 1094px;
227
+ top: 46px;
228
+ width: 76px;
229
+ height: 21px;
230
+ font-family: 'Inter', sans-serif;
231
+ font-size: 16px;
232
+ font-weight: 400;
233
+ line-height: 21px;
234
+ text-align: center;
235
+ white-space: nowrap;
236
+ color: rgba(0, 0, 0, 1);
237
+ }
238
+
239
+ .cart-button {
240
+ display: flex;
241
+ align-items: center;
242
+ justify-content: center;
243
+ position: absolute;
244
+ left: 1218px;
245
+ top: 32px;
246
+ width: 126px;
247
+ height: 48px;
248
+ overflow: hidden;
249
+ background-color: rgba(66, 107, 31, 1);
250
+ border-radius: 8px;
251
+ }
252
+
253
+ .basket3 {
254
+ font-family: 'Inter', sans-serif;
255
+ font-size: 16px;
256
+ font-weight: 600;
257
+ line-height: 21px;
258
+ white-space: nowrap;
259
+ color: rgba(255, 255, 255, 1);
260
+ }
261
+
262
+ .stocksy-txp226f62b2ane300medium {
263
+ position: absolute;
264
+ left: 660px;
265
+ top: 791px;
266
+ width: 780px;
267
+ height: 480px;
268
+ object-fit: cover;
269
+ display: block;
270
+ }
271
+ </style>
@@ -0,0 +1,431 @@
1
+ <template>
2
+ <div class="product-page">
3
+ <!-- pageHeading -->
4
+ <div class="page-heading">
5
+ <!-- defaultChip -->
6
+ <div class="default-chip">
7
+ <!-- default -->
8
+ <span class="default">Default</span>
9
+ </div>
10
+ <!-- aZChip -->
11
+ <div class="a-zchip">
12
+ <!-- az -->
13
+ <span class="az">A-Z</span>
14
+ </div>
15
+ <!-- listChip -->
16
+ <div class="list-chip">
17
+ <!-- listView -->
18
+ <span class="list-view">List view</span>
19
+ </div>
20
+ <!-- freshAugust21 -->
21
+ <span class="fresh-august21">Fresh — August 21, 2023</span>
22
+ <!-- produce -->
23
+ <span class="produce">Produce</span>
24
+ </div>
25
+ <!-- navigation -->
26
+ <div class="navigation">
27
+ <!-- worldPeas -->
28
+ <span class="world-peas">World Peas</span>
29
+ <!-- shop -->
30
+ <span class="shop">Shop</span>
31
+ <!-- newstand -->
32
+ <span class="newstand">Newstand</span>
33
+ <!-- whoWeAre -->
34
+ <span class="who-we-are">Who we are</span>
35
+ <!-- myProfile -->
36
+ <span class="my-profile">My profile</span>
37
+ <!-- cartButton -->
38
+ <div class="cart-button">
39
+ <!-- basket3 -->
40
+ <span class="basket3">Basket (3)</span>
41
+ </div>
42
+ </div>
43
+ <!-- tomato -->
44
+ <div class="tomato">
45
+ <!-- heirloomTomato -->
46
+ <span class="heirloom-tomato">Heirloom tomato</span>
47
+ <!-- 599Lb -->
48
+ <span class="lb">$5.99 / lb</span>
49
+ <!-- grownInSan -->
50
+ <span class="grown-in-san">Grown in San Juan Capistrano, CA</span>
51
+ <!-- edONeil -->
52
+ <img class="ed-oneil" :src="imged_o_neil_avvdzlhdowa_unsplash_1" alt="edONeil" />
53
+ </div>
54
+ <!-- ginger -->
55
+ <div class="ginger">
56
+ <!-- organicGinger -->
57
+ <span class="organic-ginger">Organic ginger</span>
58
+ <!-- 1299Lb -->
59
+ <span class="lb-1">$12.99 / lb</span>
60
+ <!-- grownInHuntington -->
61
+ <span class="grown-in-huntington">Grown in Huntington Beach, CA</span>
62
+ <!-- noonbrewZicb4Ekmak -->
63
+ <img class="noonbrew-zicb4ekmak" :src="imgnoonbrew_zicb4_ekmak_unsplash" alt="noonbrewZicb4Ekmak" />
64
+ </div>
65
+ </div>
66
+ </template>
67
+
68
+ <script setup>
69
+ import imged_o_neil_avvdzlhdowa_unsplash_1 from './assets/ed-o-neil-avvdzlhdowa-unsplash-1.png'
70
+ import imgnoonbrew_zicb4_ekmak_unsplash from './assets/noonbrew-zicb4_ekmak-unsplash.png'
71
+ </script>
72
+
73
+ <style scoped>
74
+ .product-page {
75
+ position: relative;
76
+ max-width: 1440px;
77
+ margin: 0 auto;
78
+ height: 1024px;
79
+ background-color: rgba(255, 255, 255, 1);
80
+ }
81
+
82
+ .page-heading {
83
+ position: absolute;
84
+ left: 0px;
85
+ top: 112px;
86
+ width: 1440px;
87
+ height: 149px;
88
+ overflow: hidden;
89
+ background-color: rgba(255, 255, 255, 1);
90
+ }
91
+
92
+ .default-chip {
93
+ display: flex;
94
+ align-items: center;
95
+ justify-content: center;
96
+ position: absolute;
97
+ left: 1077px;
98
+ top: 76px;
99
+ width: 88px;
100
+ height: 40px;
101
+ overflow: hidden;
102
+ background-color: rgba(66, 107, 31, 1);
103
+ border-radius: 20px;
104
+ }
105
+
106
+ .default {
107
+ font-family: 'Inter', sans-serif;
108
+ font-size: 16px;
109
+ font-weight: 600;
110
+ line-height: 21px;
111
+ white-space: nowrap;
112
+ color: rgba(255, 255, 255, 1);
113
+ }
114
+
115
+ .a-zchip {
116
+ display: flex;
117
+ align-items: center;
118
+ justify-content: center;
119
+ position: absolute;
120
+ left: 1173px;
121
+ top: 76px;
122
+ width: 62px;
123
+ height: 40px;
124
+ overflow: hidden;
125
+ background-color: rgba(255, 255, 255, 1);
126
+ border-radius: 20px;
127
+ }
128
+
129
+ .az {
130
+ font-family: 'Inter', sans-serif;
131
+ font-size: 16px;
132
+ font-weight: 600;
133
+ line-height: 21px;
134
+ white-space: nowrap;
135
+ color: rgba(0, 0, 0, 1);
136
+ }
137
+
138
+ .list-chip {
139
+ display: flex;
140
+ align-items: center;
141
+ justify-content: center;
142
+ position: absolute;
143
+ left: 1243px;
144
+ top: 76px;
145
+ width: 101px;
146
+ height: 40px;
147
+ overflow: hidden;
148
+ background-color: rgba(255, 255, 255, 1);
149
+ border-radius: 20px;
150
+ }
151
+
152
+ .list-view {
153
+ font-family: 'Inter', sans-serif;
154
+ font-size: 16px;
155
+ font-weight: 600;
156
+ line-height: 21px;
157
+ white-space: nowrap;
158
+ color: rgba(0, 0, 0, 1);
159
+ }
160
+
161
+ .fresh-august21 {
162
+ position: absolute;
163
+ left: 347px;
164
+ top: 90px;
165
+ width: 248px;
166
+ height: 26px;
167
+ font-family: 'Inter', sans-serif;
168
+ font-size: 20px;
169
+ font-weight: 400;
170
+ line-height: 26px;
171
+ text-align: left;
172
+ white-space: nowrap;
173
+ color: rgba(0, 0, 0, 1);
174
+ }
175
+
176
+ .produce {
177
+ position: absolute;
178
+ left: 96px;
179
+ top: 56px;
180
+ width: 227px;
181
+ height: 77px;
182
+ font-family: 'Newsreader', sans-serif;
183
+ font-size: 64px;
184
+ font-weight: 400;
185
+ line-height: 77px;
186
+ letter-spacing: -1.28px;
187
+ text-align: left;
188
+ white-space: nowrap;
189
+ color: rgba(0, 0, 0, 1);
190
+ }
191
+
192
+ .navigation {
193
+ position: absolute;
194
+ left: 0px;
195
+ top: 0px;
196
+ width: 1440px;
197
+ height: 112px;
198
+ overflow: hidden;
199
+ }
200
+
201
+ .world-peas {
202
+ position: absolute;
203
+ left: 96px;
204
+ top: 41px;
205
+ width: 151px;
206
+ height: 32px;
207
+ font-family: 'Newsreader', sans-serif;
208
+ font-size: 32px;
209
+ font-weight: 500;
210
+ line-height: 32px;
211
+ letter-spacing: -0.32px;
212
+ text-align: left;
213
+ white-space: nowrap;
214
+ color: rgba(66, 107, 31, 1);
215
+ }
216
+
217
+ .shop {
218
+ position: absolute;
219
+ left: 744px;
220
+ top: 46px;
221
+ width: 39px;
222
+ height: 21px;
223
+ font-family: 'Inter', sans-serif;
224
+ font-size: 16px;
225
+ font-weight: 400;
226
+ line-height: 21px;
227
+ text-align: center;
228
+ white-space: nowrap;
229
+ color: rgba(0, 0, 0, 1);
230
+ }
231
+
232
+ .newstand {
233
+ position: absolute;
234
+ left: 831px;
235
+ top: 46px;
236
+ width: 77px;
237
+ height: 21px;
238
+ font-family: 'Inter', sans-serif;
239
+ font-size: 16px;
240
+ font-weight: 400;
241
+ line-height: 21px;
242
+ text-align: center;
243
+ white-space: nowrap;
244
+ color: rgba(0, 0, 0, 1);
245
+ }
246
+
247
+ .who-we-are {
248
+ position: absolute;
249
+ left: 956px;
250
+ top: 46px;
251
+ width: 90px;
252
+ height: 21px;
253
+ font-family: 'Inter', sans-serif;
254
+ font-size: 16px;
255
+ font-weight: 400;
256
+ line-height: 21px;
257
+ text-align: center;
258
+ white-space: nowrap;
259
+ color: rgba(0, 0, 0, 1);
260
+ }
261
+
262
+ .my-profile {
263
+ position: absolute;
264
+ left: 1094px;
265
+ top: 46px;
266
+ width: 76px;
267
+ height: 21px;
268
+ font-family: 'Inter', sans-serif;
269
+ font-size: 16px;
270
+ font-weight: 400;
271
+ line-height: 21px;
272
+ text-align: center;
273
+ white-space: nowrap;
274
+ color: rgba(0, 0, 0, 1);
275
+ }
276
+
277
+ .cart-button {
278
+ display: flex;
279
+ align-items: center;
280
+ justify-content: center;
281
+ position: absolute;
282
+ left: 1218px;
283
+ top: 32px;
284
+ width: 126px;
285
+ height: 48px;
286
+ overflow: hidden;
287
+ background-color: rgba(66, 107, 31, 1);
288
+ border-radius: 8px;
289
+ }
290
+
291
+ .basket3 {
292
+ font-family: 'Inter', sans-serif;
293
+ font-size: 16px;
294
+ font-weight: 600;
295
+ line-height: 21px;
296
+ white-space: nowrap;
297
+ color: rgba(255, 255, 255, 1);
298
+ }
299
+
300
+ .tomato {
301
+ position: absolute;
302
+ left: 96px;
303
+ top: 301px;
304
+ width: 395px;
305
+ height: 444px;
306
+ overflow: hidden;
307
+ background-color: rgba(250, 250, 245, 1);
308
+ border-radius: 24px;
309
+ }
310
+
311
+ .heirloom-tomato {
312
+ position: absolute;
313
+ left: 24px;
314
+ top: 320px;
315
+ width: 162px;
316
+ height: 26px;
317
+ font-family: 'Inter', sans-serif;
318
+ font-size: 20px;
319
+ font-weight: 600;
320
+ line-height: 26px;
321
+ text-align: left;
322
+ white-space: nowrap;
323
+ color: rgba(0, 0, 0, 1);
324
+ }
325
+
326
+ .lb {
327
+ position: absolute;
328
+ left: 24px;
329
+ top: 350px;
330
+ width: 92px;
331
+ height: 26px;
332
+ font-family: 'Inter', sans-serif;
333
+ font-size: 20px;
334
+ font-weight: 600;
335
+ line-height: 26px;
336
+ text-align: left;
337
+ white-space: nowrap;
338
+ color: rgba(66, 107, 31, 1);
339
+ }
340
+
341
+ .grown-in-san {
342
+ position: absolute;
343
+ left: 24px;
344
+ top: 392px;
345
+ width: 259px;
346
+ height: 24px;
347
+ font-family: 'Inter', sans-serif;
348
+ font-size: 16px;
349
+ font-weight: 400;
350
+ line-height: 24px;
351
+ text-align: left;
352
+ white-space: nowrap;
353
+ color: rgba(109, 109, 109, 1);
354
+ }
355
+
356
+ .ed-oneil {
357
+ position: absolute;
358
+ left: 0px;
359
+ top: 0px;
360
+ width: 395px;
361
+ height: 296px;
362
+ object-fit: cover;
363
+ display: block;
364
+ }
365
+
366
+ .ginger {
367
+ position: absolute;
368
+ left: 523px;
369
+ top: 301px;
370
+ width: 395px;
371
+ height: 444px;
372
+ overflow: hidden;
373
+ background-color: rgba(250, 250, 245, 1);
374
+ border-radius: 24px;
375
+ }
376
+
377
+ .organic-ginger {
378
+ position: absolute;
379
+ left: 24px;
380
+ top: 320px;
381
+ width: 144px;
382
+ height: 26px;
383
+ font-family: 'Inter', sans-serif;
384
+ font-size: 20px;
385
+ font-weight: 600;
386
+ line-height: 26px;
387
+ text-align: left;
388
+ white-space: nowrap;
389
+ color: rgba(0, 0, 0, 1);
390
+ }
391
+
392
+ .lb-1 {
393
+ position: absolute;
394
+ left: 24px;
395
+ top: 350px;
396
+ width: 102px;
397
+ height: 26px;
398
+ font-family: 'Inter', sans-serif;
399
+ font-size: 20px;
400
+ font-weight: 600;
401
+ line-height: 26px;
402
+ text-align: left;
403
+ white-space: nowrap;
404
+ color: rgba(66, 107, 31, 1);
405
+ }
406
+
407
+ .grown-in-huntington {
408
+ position: absolute;
409
+ left: 24px;
410
+ top: 392px;
411
+ width: 239px;
412
+ height: 24px;
413
+ font-family: 'Inter', sans-serif;
414
+ font-size: 16px;
415
+ font-weight: 400;
416
+ line-height: 24px;
417
+ text-align: left;
418
+ white-space: nowrap;
419
+ color: rgba(109, 109, 109, 1);
420
+ }
421
+
422
+ .noonbrew-zicb4ekmak {
423
+ position: absolute;
424
+ left: 0px;
425
+ top: 0px;
426
+ width: 395px;
427
+ height: 296px;
428
+ object-fit: cover;
429
+ display: block;
430
+ }
431
+ </style>