love-ui 1.2.15 → 1.2.18

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 (464) hide show
  1. package/README.md +14 -6
  2. package/dist/index.js +149 -0
  3. package/dist/mcp-server.js +2 -0
  4. package/package.json +28 -4
  5. package/registry/__index__.tsx +73 -0
  6. package/registry/default/blocks/404-1/app/page.tsx +5 -0
  7. package/registry/default/blocks/404-1/components/full-width-divider.tsx +33 -0
  8. package/registry/default/blocks/404-1/components/not-found.tsx +51 -0
  9. package/registry/default/blocks/404-2/app/page.tsx +5 -0
  10. package/registry/default/blocks/404-2/components/not-found.tsx +44 -0
  11. package/registry/default/blocks/auth1/app/page.tsx +5 -0
  12. package/registry/default/blocks/auth1/components/auth-page.tsx +66 -0
  13. package/registry/default/blocks/auth1/components/icons/github-icon.tsx +10 -0
  14. package/registry/default/blocks/auth1/components/icons/google-icon.tsx +14 -0
  15. package/registry/default/blocks/auth1/components/logo.tsx +88 -0
  16. package/registry/default/blocks/auth1/components/particles.tsx +321 -0
  17. package/registry/default/blocks/auth2/app/page.tsx +5 -0
  18. package/registry/default/blocks/auth2/components/auth.tsx +87 -0
  19. package/registry/default/blocks/auth2/components/icons/github-icon.tsx +10 -0
  20. package/registry/default/blocks/auth2/components/icons/google-icon.tsx +14 -0
  21. package/registry/default/blocks/auth2/components/ui/auth-divider.tsx +16 -0
  22. package/registry/default/blocks/auth2/components/ui/decor-icon.tsx +45 -0
  23. package/registry/default/blocks/auth3/app/page.tsx +5 -0
  24. package/registry/default/blocks/auth3/components/auth-page.tsx +84 -0
  25. package/registry/default/blocks/auth3/components/icons/github-icon.tsx +10 -0
  26. package/registry/default/blocks/auth3/components/icons/google-icon.tsx +14 -0
  27. package/registry/default/blocks/auth3/components/logo.tsx +88 -0
  28. package/registry/default/blocks/auth3/components/ui/auth-divider.tsx +16 -0
  29. package/registry/default/blocks/auth3/components/ui/decor-icon.tsx +45 -0
  30. package/registry/default/blocks/blogs1/app/page.tsx +5 -0
  31. package/registry/default/blocks/blogs1/components/blogs.tsx +97 -0
  32. package/registry/default/blocks/blogs1/components/full-width-divider.tsx +33 -0
  33. package/registry/default/blocks/blogs2/app/page.tsx +5 -0
  34. package/registry/default/blocks/blogs2/components/blogs.tsx +158 -0
  35. package/registry/default/blocks/blogs2/components/full-width-divider.tsx +33 -0
  36. package/registry/default/blocks/blogs2/components/grid-filler.tsx +74 -0
  37. package/registry/default/blocks/blogs3/app/page.tsx +5 -0
  38. package/registry/default/blocks/blogs3/components/aspect-ratio.tsx +22 -0
  39. package/registry/default/blocks/blogs3/components/blogs.tsx +224 -0
  40. package/registry/default/blocks/blogs3/components/full-width-divider.tsx +33 -0
  41. package/registry/default/blocks/blogs3/components/lazy-image.tsx +94 -0
  42. package/registry/default/blocks/contact1/app/page.tsx +9 -0
  43. package/registry/default/blocks/contact1/components/contact.tsx +65 -0
  44. package/registry/default/blocks/contact1/components/full-width-divider.tsx +33 -0
  45. package/registry/default/blocks/contact2/app/page.tsx +9 -0
  46. package/registry/default/blocks/contact2/components/contact.tsx +74 -0
  47. package/registry/default/blocks/contact2/components/full-width-divider.tsx +33 -0
  48. package/registry/default/blocks/contact2/components/icons/x-icon.tsx +12 -0
  49. package/registry/default/blocks/contact3/app/page.tsx +9 -0
  50. package/registry/default/blocks/contact3/components/contact.tsx +152 -0
  51. package/registry/default/blocks/contact3/components/full-width-divider.tsx +33 -0
  52. package/registry/default/blocks/contact3/components/icons/github-icon.tsx +10 -0
  53. package/registry/default/blocks/contact3/components/icons/x-icon.tsx +12 -0
  54. package/registry/default/blocks/contact4/app/page.tsx +9 -0
  55. package/registry/default/blocks/contact4/components/contact.tsx +120 -0
  56. package/registry/default/blocks/contact5/app/page.tsx +9 -0
  57. package/registry/default/blocks/contact5/components/contact.tsx +119 -0
  58. package/registry/default/blocks/contact5/components/decor-icon.tsx +45 -0
  59. package/registry/default/blocks/cta-1/app/page.tsx +9 -0
  60. package/registry/default/blocks/cta-1/components/cta.tsx +20 -0
  61. package/registry/default/blocks/cta-1/components/full-width-divider.tsx +33 -0
  62. package/registry/default/blocks/cta-2/app/page.tsx +9 -0
  63. package/registry/default/blocks/cta-2/components/cta.tsx +27 -0
  64. package/registry/default/blocks/cta-2/components/full-width-divider.tsx +33 -0
  65. package/registry/default/blocks/cta-3/app/page.tsx +9 -0
  66. package/registry/default/blocks/cta-3/components/cta.tsx +35 -0
  67. package/registry/default/blocks/cta-3/components/decor-icon.tsx +45 -0
  68. package/registry/default/blocks/cta-4/app/page.tsx +9 -0
  69. package/registry/default/blocks/cta-4/components/cta.tsx +28 -0
  70. package/registry/default/blocks/cta-5/app/page.tsx +9 -0
  71. package/registry/default/blocks/cta-5/components/cta.tsx +72 -0
  72. package/registry/default/blocks/cta-5/components/full-width-divider.tsx +33 -0
  73. package/registry/default/blocks/faq-1/app/page.tsx +9 -0
  74. package/registry/default/blocks/faq-1/components/faq.tsx +86 -0
  75. package/registry/default/blocks/faq-2/app/page.tsx +9 -0
  76. package/registry/default/blocks/faq-2/components/faq.tsx +93 -0
  77. package/registry/default/blocks/faq-3/app/page.tsx +9 -0
  78. package/registry/default/blocks/faq-3/components/decor-icon.tsx +45 -0
  79. package/registry/default/blocks/faq-3/components/faq.tsx +110 -0
  80. package/registry/default/blocks/faq-4/app/page.tsx +9 -0
  81. package/registry/default/blocks/faq-4/components/faq.tsx +181 -0
  82. package/registry/default/blocks/faq-5/app/page.tsx +9 -0
  83. package/registry/default/blocks/faq-5/components/faq.tsx +211 -0
  84. package/registry/default/blocks/faq-5/components/full-width-divider.tsx +33 -0
  85. package/registry/default/blocks/features1/app/page.tsx +9 -0
  86. package/registry/default/blocks/features1/components/feature-section.tsx +73 -0
  87. package/registry/default/blocks/features2/app/page.tsx +9 -0
  88. package/registry/default/blocks/features2/components/decor-icon.tsx +45 -0
  89. package/registry/default/blocks/features2/components/feature-section.tsx +97 -0
  90. package/registry/default/blocks/features3/app/page.tsx +9 -0
  91. package/registry/default/blocks/features3/components/feature-section.tsx +93 -0
  92. package/registry/default/blocks/features3/components/full-width-divider.tsx +21 -0
  93. package/registry/default/blocks/features4/app/page.tsx +9 -0
  94. package/registry/default/blocks/features4/components/decor-icon.tsx +45 -0
  95. package/registry/default/blocks/features4/components/feature-section.tsx +114 -0
  96. package/registry/default/blocks/features5/app/page.tsx +9 -0
  97. package/registry/default/blocks/features5/components/feature-section.tsx +115 -0
  98. package/registry/default/blocks/features5/components/grid-pattern.tsx +70 -0
  99. package/registry/default/blocks/features6/app/page.tsx +9 -0
  100. package/registry/default/blocks/features6/components/cobe-globe.tsx +86 -0
  101. package/registry/default/blocks/features6/components/feature-section.tsx +309 -0
  102. package/registry/default/blocks/footer1/app/page.tsx +9 -0
  103. package/registry/default/blocks/footer1/components/footer.tsx +85 -0
  104. package/registry/default/blocks/footer1/components/icons/github-icon.tsx +10 -0
  105. package/registry/default/blocks/footer1/components/icons/x-icon.tsx +12 -0
  106. package/registry/default/blocks/footer1/components/logo.tsx +88 -0
  107. package/registry/default/blocks/footer2/app/page.tsx +9 -0
  108. package/registry/default/blocks/footer2/components/footer.tsx +139 -0
  109. package/registry/default/blocks/footer2/components/full-width-divider.tsx +21 -0
  110. package/registry/default/blocks/footer2/components/icons/github-icon.tsx +10 -0
  111. package/registry/default/blocks/footer2/components/icons/instagram-icon.tsx +12 -0
  112. package/registry/default/blocks/footer2/components/icons/x-icon.tsx +12 -0
  113. package/registry/default/blocks/footer2/components/logo.tsx +88 -0
  114. package/registry/default/blocks/footer3/app/page.tsx +9 -0
  115. package/registry/default/blocks/footer3/components/footer.tsx +155 -0
  116. package/registry/default/blocks/footer3/components/icons/github-icon.tsx +10 -0
  117. package/registry/default/blocks/footer3/components/icons/instagram-icon.tsx +12 -0
  118. package/registry/default/blocks/footer3/components/icons/linkedin-icon.tsx +12 -0
  119. package/registry/default/blocks/footer3/components/icons/x-icon.tsx +12 -0
  120. package/registry/default/blocks/footer3/components/logo.tsx +88 -0
  121. package/registry/default/blocks/footer4/app/page.tsx +9 -0
  122. package/registry/default/blocks/footer4/components/footer.tsx +137 -0
  123. package/registry/default/blocks/footer4/components/icons/github-icon.tsx +10 -0
  124. package/registry/default/blocks/footer4/components/icons/instagram-icon.tsx +12 -0
  125. package/registry/default/blocks/footer4/components/icons/linkedin-icon.tsx +12 -0
  126. package/registry/default/blocks/footer4/components/icons/x-icon.tsx +12 -0
  127. package/registry/default/blocks/footer4/components/logo.tsx +88 -0
  128. package/registry/default/blocks/footer5/app/page.tsx +9 -0
  129. package/registry/default/blocks/footer5/components/footer.tsx +152 -0
  130. package/registry/default/blocks/footer5/components/icons/apple-icon.tsx +18 -0
  131. package/registry/default/blocks/footer5/components/icons/facebook-icon.tsx +12 -0
  132. package/registry/default/blocks/footer5/components/icons/google-play-icon.tsx +10 -0
  133. package/registry/default/blocks/footer5/components/icons/instagram-icon.tsx +12 -0
  134. package/registry/default/blocks/footer5/components/icons/linkedin-icon.tsx +12 -0
  135. package/registry/default/blocks/footer5/components/icons/x-icon.tsx +12 -0
  136. package/registry/default/blocks/footer5/components/logo.tsx +88 -0
  137. package/registry/default/blocks/footer6/app/page.tsx +16 -0
  138. package/registry/default/blocks/footer6/components/footer.tsx +220 -0
  139. package/registry/default/blocks/footer6/components/icons/apple-icon.tsx +18 -0
  140. package/registry/default/blocks/footer6/components/icons/facebook-icon.tsx +12 -0
  141. package/registry/default/blocks/footer6/components/icons/github-icon.tsx +10 -0
  142. package/registry/default/blocks/footer6/components/icons/google-play-icon.tsx +10 -0
  143. package/registry/default/blocks/footer6/components/icons/instagram-icon.tsx +12 -0
  144. package/registry/default/blocks/footer6/components/icons/linkedin-icon.tsx +12 -0
  145. package/registry/default/blocks/footer6/components/icons/x-icon.tsx +12 -0
  146. package/registry/default/blocks/footer6/components/logo.tsx +88 -0
  147. package/registry/default/blocks/header1/app/page.tsx +12 -0
  148. package/registry/default/blocks/header1/components/demo-layout.tsx +33 -0
  149. package/registry/default/blocks/header1/components/header.tsx +58 -0
  150. package/registry/default/blocks/header1/components/logo.tsx +88 -0
  151. package/registry/default/blocks/header1/components/mobile-nav.tsx +61 -0
  152. package/registry/default/blocks/header1/components/ui/portal.tsx +27 -0
  153. package/registry/default/blocks/header1/hooks/use-scroll.ts +54 -0
  154. package/registry/default/blocks/header2/app/page.tsx +11 -0
  155. package/registry/default/blocks/header2/components/demo-layout.tsx +33 -0
  156. package/registry/default/blocks/header2/components/header.tsx +70 -0
  157. package/registry/default/blocks/header2/components/logo.tsx +88 -0
  158. package/registry/default/blocks/header2/components/mobile-nav.tsx +61 -0
  159. package/registry/default/blocks/header2/components/ui/portal.tsx +27 -0
  160. package/registry/default/blocks/header2/hooks/use-scroll.ts +54 -0
  161. package/registry/default/blocks/header3/app/page.tsx +11 -0
  162. package/registry/default/blocks/header3/components/demo-layout.tsx +33 -0
  163. package/registry/default/blocks/header3/components/desktop-nav.tsx +70 -0
  164. package/registry/default/blocks/header3/components/header.tsx +41 -0
  165. package/registry/default/blocks/header3/components/logo.tsx +88 -0
  166. package/registry/default/blocks/header3/components/mobile-nav.tsx +88 -0
  167. package/registry/default/blocks/header3/components/nav-links.tsx +132 -0
  168. package/registry/default/blocks/header3/components/sheard.tsx +41 -0
  169. package/registry/default/blocks/header3/components/ui/navigation-menu.tsx +171 -0
  170. package/registry/default/blocks/header3/components/ui/portal.tsx +27 -0
  171. package/registry/default/blocks/header3/hooks/use-scroll.ts +54 -0
  172. package/registry/default/blocks/hero1/app/page.tsx +15 -0
  173. package/registry/default/blocks/hero1/components/header.tsx +70 -0
  174. package/registry/default/blocks/hero1/components/hero.tsx +80 -0
  175. package/registry/default/blocks/hero1/components/infinite-slider.tsx +109 -0
  176. package/registry/default/blocks/hero1/components/logo-cloud.tsx +69 -0
  177. package/registry/default/blocks/hero1/components/logo.tsx +88 -0
  178. package/registry/default/blocks/hero1/components/logos/claude-wordmark.svg +1 -0
  179. package/registry/default/blocks/hero1/components/logos/clerk-wordmark.svg +1 -0
  180. package/registry/default/blocks/hero1/components/logos/github-wordmark.svg +6 -0
  181. package/registry/default/blocks/hero1/components/logos/nvidia-wordmark.svg +1 -0
  182. package/registry/default/blocks/hero1/components/logos/openai-wordmark.svg +1 -0
  183. package/registry/default/blocks/hero1/components/logos/supabase-wordmark.svg +23 -0
  184. package/registry/default/blocks/hero1/components/logos/turso-wordmark.svg +1 -0
  185. package/registry/default/blocks/hero1/components/logos/vercel-wordmark.svg +1 -0
  186. package/registry/default/blocks/hero1/components/logos-section.tsx +14 -0
  187. package/registry/default/blocks/hero1/components/mobile-nav.tsx +61 -0
  188. package/registry/default/blocks/hero1/components/ui/portal.tsx +27 -0
  189. package/registry/default/blocks/hero1/hooks/use-scroll.ts +54 -0
  190. package/registry/default/blocks/hero2/app/page.tsx +23 -0
  191. package/registry/default/blocks/hero2/components/decor-icon.tsx +45 -0
  192. package/registry/default/blocks/hero2/components/full-width-divider.tsx +21 -0
  193. package/registry/default/blocks/hero2/components/header.tsx +70 -0
  194. package/registry/default/blocks/hero2/components/hero.tsx +104 -0
  195. package/registry/default/blocks/hero2/components/infinite-slider.tsx +109 -0
  196. package/registry/default/blocks/hero2/components/logo-cloud.tsx +120 -0
  197. package/registry/default/blocks/hero2/components/logo.tsx +88 -0
  198. package/registry/default/blocks/hero2/components/logos/claude-wordmark.svg +1 -0
  199. package/registry/default/blocks/hero2/components/logos/clerk-wordmark.svg +1 -0
  200. package/registry/default/blocks/hero2/components/logos/github-wordmark.svg +6 -0
  201. package/registry/default/blocks/hero2/components/logos/nvidia-wordmark.svg +1 -0
  202. package/registry/default/blocks/hero2/components/logos/openai-wordmark.svg +1 -0
  203. package/registry/default/blocks/hero2/components/logos/supabase-wordmark.svg +23 -0
  204. package/registry/default/blocks/hero2/components/logos/turso-wordmark.svg +1 -0
  205. package/registry/default/blocks/hero2/components/logos/vercel-wordmark.svg +1 -0
  206. package/registry/default/blocks/hero2/components/logos-section.tsx +23 -0
  207. package/registry/default/blocks/hero2/components/mobile-nav.tsx +61 -0
  208. package/registry/default/blocks/hero2/components/ui/portal.tsx +27 -0
  209. package/registry/default/blocks/hero2/hooks/use-scroll.ts +54 -0
  210. package/registry/default/blocks/hero3/app/page.tsx +15 -0
  211. package/registry/default/blocks/hero3/components/header.tsx +70 -0
  212. package/registry/default/blocks/hero3/components/hero.tsx +104 -0
  213. package/registry/default/blocks/hero3/components/infinite-slider.tsx +109 -0
  214. package/registry/default/blocks/hero3/components/logo-cloud.tsx +67 -0
  215. package/registry/default/blocks/hero3/components/logo.tsx +88 -0
  216. package/registry/default/blocks/hero3/components/logos/claude-wordmark.svg +1 -0
  217. package/registry/default/blocks/hero3/components/logos/clerk-wordmark.svg +1 -0
  218. package/registry/default/blocks/hero3/components/logos/github-wordmark.svg +6 -0
  219. package/registry/default/blocks/hero3/components/logos/nvidia-wordmark.svg +1 -0
  220. package/registry/default/blocks/hero3/components/logos/openai-wordmark.svg +1 -0
  221. package/registry/default/blocks/hero3/components/logos/supabase-wordmark.svg +23 -0
  222. package/registry/default/blocks/hero3/components/logos/turso-wordmark.svg +1 -0
  223. package/registry/default/blocks/hero3/components/logos/vercel-wordmark.svg +1 -0
  224. package/registry/default/blocks/hero3/components/logos-section.tsx +12 -0
  225. package/registry/default/blocks/hero3/components/mobile-nav.tsx +61 -0
  226. package/registry/default/blocks/hero3/components/ui/portal.tsx +27 -0
  227. package/registry/default/blocks/hero3/hooks/use-scroll.ts +54 -0
  228. package/registry/default/blocks/image-gallery-1/app/page.tsx +5 -0
  229. package/registry/default/blocks/image-gallery-1/components/aspect-ratio.tsx +22 -0
  230. package/registry/default/blocks/image-gallery-1/components/image-gallery.tsx +135 -0
  231. package/registry/default/blocks/image-gallery-1/components/lazy-image.tsx +94 -0
  232. package/registry/default/blocks/integrations1/app/page.tsx +9 -0
  233. package/registry/default/blocks/integrations1/components/integrations.tsx +86 -0
  234. package/registry/default/blocks/integrations1/components/logos/adobe.svg +1 -0
  235. package/registry/default/blocks/integrations1/components/logos/canva.svg +1 -0
  236. package/registry/default/blocks/integrations1/components/logos/cursor.svg +1 -0
  237. package/registry/default/blocks/integrations1/components/logos/gmail.svg +1 -0
  238. package/registry/default/blocks/integrations1/components/logos/notion.svg +1 -0
  239. package/registry/default/blocks/integrations1/components/logos/planetscale.svg +1 -0
  240. package/registry/default/blocks/integrations1/components/logos/polar.svg +1 -0
  241. package/registry/default/blocks/integrations1/components/logos/supabase.svg +1 -0
  242. package/registry/default/blocks/integrations1/components/logos/vercel.svg +1 -0
  243. package/registry/default/blocks/integrations2/app/page.tsx +9 -0
  244. package/registry/default/blocks/integrations2/components/decor-icon.tsx +45 -0
  245. package/registry/default/blocks/integrations2/components/integrations.tsx +118 -0
  246. package/registry/default/blocks/integrations2/components/logos/adobe.svg +1 -0
  247. package/registry/default/blocks/integrations2/components/logos/canva.svg +1 -0
  248. package/registry/default/blocks/integrations2/components/logos/cursor.svg +1 -0
  249. package/registry/default/blocks/integrations2/components/logos/gmail.svg +1 -0
  250. package/registry/default/blocks/integrations2/components/logos/notion.svg +1 -0
  251. package/registry/default/blocks/integrations2/components/logos/planetscale.svg +1 -0
  252. package/registry/default/blocks/integrations2/components/logos/polar.svg +1 -0
  253. package/registry/default/blocks/integrations2/components/logos/supabase.svg +1 -0
  254. package/registry/default/blocks/integrations2/components/logos/vercel.svg +1 -0
  255. package/registry/default/blocks/integrations3/app/page.tsx +9 -0
  256. package/registry/default/blocks/integrations3/components/full-width-divider.tsx +33 -0
  257. package/registry/default/blocks/integrations3/components/integrations.tsx +190 -0
  258. package/registry/default/blocks/integrations3/components/logos/adobe.svg +1 -0
  259. package/registry/default/blocks/integrations3/components/logos/canva.svg +1 -0
  260. package/registry/default/blocks/integrations3/components/logos/cursor.svg +1 -0
  261. package/registry/default/blocks/integrations3/components/logos/gmail.svg +1 -0
  262. package/registry/default/blocks/integrations3/components/logos/notion.svg +1 -0
  263. package/registry/default/blocks/integrations3/components/logos/planetscale.svg +1 -0
  264. package/registry/default/blocks/integrations3/components/logos/polar.svg +1 -0
  265. package/registry/default/blocks/integrations3/components/logos/supabase.svg +1 -0
  266. package/registry/default/blocks/integrations3/components/logos/vercel.svg +1 -0
  267. package/registry/default/blocks/integrations4/app/page.tsx +9 -0
  268. package/registry/default/blocks/integrations4/components/integrations.tsx +177 -0
  269. package/registry/default/blocks/integrations4/components/logos/adobe.svg +1 -0
  270. package/registry/default/blocks/integrations4/components/logos/canva.svg +1 -0
  271. package/registry/default/blocks/integrations4/components/logos/cursor.svg +1 -0
  272. package/registry/default/blocks/integrations4/components/logos/gmail.svg +1 -0
  273. package/registry/default/blocks/integrations4/components/logos/notion.svg +1 -0
  274. package/registry/default/blocks/integrations4/components/logos/planetscale.svg +1 -0
  275. package/registry/default/blocks/integrations4/components/logos/polar.svg +1 -0
  276. package/registry/default/blocks/integrations4/components/logos/supabase.svg +1 -0
  277. package/registry/default/blocks/integrations4/components/logos/vercel.svg +1 -0
  278. package/registry/default/blocks/integrations5/app/page.tsx +9 -0
  279. package/registry/default/blocks/integrations5/components/integrations.tsx +112 -0
  280. package/registry/default/blocks/integrations5/components/logos/adobe.svg +1 -0
  281. package/registry/default/blocks/integrations5/components/logos/canva.svg +1 -0
  282. package/registry/default/blocks/integrations5/components/logos/cursor.svg +1 -0
  283. package/registry/default/blocks/integrations5/components/logos/gmail.svg +1 -0
  284. package/registry/default/blocks/integrations5/components/logos/notion.svg +1 -0
  285. package/registry/default/blocks/integrations5/components/logos/planetscale.svg +1 -0
  286. package/registry/default/blocks/integrations5/components/logos/polar.svg +1 -0
  287. package/registry/default/blocks/integrations5/components/logos/supabase.svg +1 -0
  288. package/registry/default/blocks/integrations5/components/logos/vercel.svg +1 -0
  289. package/registry/default/blocks/logo-cloud-1/app/page.tsx +17 -0
  290. package/registry/default/blocks/logo-cloud-1/components/logo-cloud.tsx +70 -0
  291. package/registry/default/blocks/logo-cloud-1/components/logos/claude-wordmark.svg +1 -0
  292. package/registry/default/blocks/logo-cloud-1/components/logos/clerk-wordmark.svg +1 -0
  293. package/registry/default/blocks/logo-cloud-1/components/logos/github-wordmark.svg +6 -0
  294. package/registry/default/blocks/logo-cloud-1/components/logos/nvidia-wordmark.svg +1 -0
  295. package/registry/default/blocks/logo-cloud-1/components/logos/openai-wordmark.svg +1 -0
  296. package/registry/default/blocks/logo-cloud-1/components/logos/supabase-wordmark.svg +23 -0
  297. package/registry/default/blocks/logo-cloud-1/components/logos/turso-wordmark.svg +1 -0
  298. package/registry/default/blocks/logo-cloud-1/components/logos/vercel-wordmark.svg +1 -0
  299. package/registry/default/blocks/logo-cloud-2/app/page.tsx +19 -0
  300. package/registry/default/blocks/logo-cloud-2/components/decor-icon.tsx +45 -0
  301. package/registry/default/blocks/logo-cloud-2/components/logo-cloud.tsx +120 -0
  302. package/registry/default/blocks/logo-cloud-2/components/logos/claude-wordmark.svg +1 -0
  303. package/registry/default/blocks/logo-cloud-2/components/logos/clerk-wordmark.svg +1 -0
  304. package/registry/default/blocks/logo-cloud-2/components/logos/github-wordmark.svg +6 -0
  305. package/registry/default/blocks/logo-cloud-2/components/logos/nvidia-wordmark.svg +1 -0
  306. package/registry/default/blocks/logo-cloud-2/components/logos/openai-wordmark.svg +1 -0
  307. package/registry/default/blocks/logo-cloud-2/components/logos/supabase-wordmark.svg +23 -0
  308. package/registry/default/blocks/logo-cloud-2/components/logos/turso-wordmark.svg +1 -0
  309. package/registry/default/blocks/logo-cloud-2/components/logos/vercel-wordmark.svg +1 -0
  310. package/registry/default/blocks/logo-cloud-3/app/page.tsx +18 -0
  311. package/registry/default/blocks/logo-cloud-3/components/infinite-slider.tsx +109 -0
  312. package/registry/default/blocks/logo-cloud-3/components/logo-cloud.tsx +69 -0
  313. package/registry/default/blocks/logo-cloud-3/components/logos/claude-wordmark.svg +1 -0
  314. package/registry/default/blocks/logo-cloud-3/components/logos/clerk-wordmark.svg +1 -0
  315. package/registry/default/blocks/logo-cloud-3/components/logos/github-wordmark.svg +6 -0
  316. package/registry/default/blocks/logo-cloud-3/components/logos/nvidia-wordmark.svg +1 -0
  317. package/registry/default/blocks/logo-cloud-3/components/logos/openai-wordmark.svg +1 -0
  318. package/registry/default/blocks/logo-cloud-3/components/logos/supabase-wordmark.svg +23 -0
  319. package/registry/default/blocks/logo-cloud-3/components/logos/turso-wordmark.svg +1 -0
  320. package/registry/default/blocks/logo-cloud-3/components/logos/vercel-wordmark.svg +1 -0
  321. package/registry/default/blocks/logo-cloud-4/app/page.tsx +23 -0
  322. package/registry/default/blocks/logo-cloud-4/components/infinite-slider.tsx +109 -0
  323. package/registry/default/blocks/logo-cloud-4/components/logo-cloud.tsx +83 -0
  324. package/registry/default/blocks/logo-cloud-4/components/logos/claude-wordmark.svg +1 -0
  325. package/registry/default/blocks/logo-cloud-4/components/logos/clerk-wordmark.svg +1 -0
  326. package/registry/default/blocks/logo-cloud-4/components/logos/github-wordmark.svg +6 -0
  327. package/registry/default/blocks/logo-cloud-4/components/logos/nvidia-wordmark.svg +1 -0
  328. package/registry/default/blocks/logo-cloud-4/components/logos/openai-wordmark.svg +1 -0
  329. package/registry/default/blocks/logo-cloud-4/components/logos/supabase-wordmark.svg +23 -0
  330. package/registry/default/blocks/logo-cloud-4/components/logos/turso-wordmark.svg +1 -0
  331. package/registry/default/blocks/logo-cloud-4/components/logos/vercel-wordmark.svg +1 -0
  332. package/registry/default/blocks/logo-cloud-4/components/progressive-blur.tsx +63 -0
  333. package/registry/default/blocks/logo-cloud-5/app/page.tsx +17 -0
  334. package/registry/default/blocks/logo-cloud-5/components/logo-cloud.tsx +67 -0
  335. package/registry/default/blocks/logo-cloud-5/components/logos/claude-wordmark.svg +1 -0
  336. package/registry/default/blocks/logo-cloud-5/components/logos/clerk-wordmark.svg +1 -0
  337. package/registry/default/blocks/logo-cloud-5/components/logos/github-wordmark.svg +6 -0
  338. package/registry/default/blocks/logo-cloud-5/components/logos/nvidia-wordmark.svg +1 -0
  339. package/registry/default/blocks/logo-cloud-5/components/logos/openai-wordmark.svg +1 -0
  340. package/registry/default/blocks/logo-cloud-5/components/logos/supabase-wordmark.svg +23 -0
  341. package/registry/default/blocks/logo-cloud-5/components/logos/turso-wordmark.svg +1 -0
  342. package/registry/default/blocks/logo-cloud-5/components/logos/vercel-wordmark.svg +1 -0
  343. package/registry/default/blocks/pricing1/app/page.tsx +9 -0
  344. package/registry/default/blocks/pricing1/components/decor-icon.tsx +45 -0
  345. package/registry/default/blocks/pricing1/components/pricing.tsx +94 -0
  346. package/registry/default/blocks/pricing2/app/page.tsx +9 -0
  347. package/registry/default/blocks/pricing2/components/full-width-divider.tsx +33 -0
  348. package/registry/default/blocks/pricing2/components/pricing.tsx +117 -0
  349. package/registry/default/blocks/pricing3/app/page.tsx +9 -0
  350. package/registry/default/blocks/pricing3/components/pricing-card.tsx +171 -0
  351. package/registry/default/blocks/pricing3/components/pricing.tsx +143 -0
  352. package/registry/default/blocks/pricing4/app/page.tsx +9 -0
  353. package/registry/default/blocks/pricing4/components/frequency-toggle.tsx +47 -0
  354. package/registry/default/blocks/pricing4/components/pricing.tsx +230 -0
  355. package/registry/default/blocks/testimonials1/app/page.tsx +9 -0
  356. package/registry/default/blocks/testimonials1/components/logo.tsx +74 -0
  357. package/registry/default/blocks/testimonials1/components/testimonials.tsx +41 -0
  358. package/registry/default/blocks/testimonials2/app/page.tsx +9 -0
  359. package/registry/default/blocks/testimonials2/components/testimonials.tsx +65 -0
  360. package/registry/default/blocks/testimonials3/app/page.tsx +9 -0
  361. package/registry/default/blocks/testimonials3/components/decor-icon.tsx +45 -0
  362. package/registry/default/blocks/testimonials3/components/testimonials.tsx +114 -0
  363. package/registry/default/blocks/testimonials4/app/page.tsx +9 -0
  364. package/registry/default/blocks/testimonials4/components/full-width-divider.tsx +33 -0
  365. package/registry/default/blocks/testimonials4/components/testimonials.tsx +81 -0
  366. package/registry/default/blocks/testimonials5/app/page.tsx +9 -0
  367. package/registry/default/blocks/testimonials5/components/full-width-divider.tsx +33 -0
  368. package/registry/default/blocks/testimonials5/components/grid-filler.tsx +74 -0
  369. package/registry/default/blocks/testimonials5/components/grid-pattern.tsx +70 -0
  370. package/registry/default/blocks/testimonials5/components/testimonials.tsx +186 -0
  371. package/registry/default/blocks/testimonials6/app/page.tsx +9 -0
  372. package/registry/default/blocks/testimonials6/components/infinite-slider.tsx +109 -0
  373. package/registry/default/blocks/testimonials6/components/testimonials.tsx +193 -0
  374. package/registry/default/examples/accordion-disabled.tsx +58 -0
  375. package/registry/default/examples/accordion-in-card.tsx +92 -0
  376. package/registry/default/examples/accordion-leading-icon.tsx +51 -0
  377. package/registry/default/examples/accordion-user-roles.tsx +97 -0
  378. package/registry/default/examples/accordion-with-icons.tsx +67 -0
  379. package/registry/default/examples/avatar-badge-icons.tsx +60 -0
  380. package/registry/default/examples/avatar-badge-position.tsx +47 -0
  381. package/registry/default/examples/avatar-empty-collaborators.tsx +55 -0
  382. package/registry/default/examples/avatar-group-trust.tsx +49 -0
  383. package/registry/default/examples/avatar-loading.tsx +33 -0
  384. package/registry/default/examples/avatar-menu.tsx +81 -0
  385. package/registry/default/examples/avatar-profile-badge.tsx +30 -0
  386. package/registry/default/examples/avatar-status.tsx +47 -0
  387. package/registry/default/examples/breadcrumb-bullet-separator.tsx +38 -0
  388. package/registry/default/examples/breadcrumb-buttons.tsx +61 -0
  389. package/registry/default/examples/breadcrumb-card.tsx +40 -0
  390. package/registry/default/examples/button-default-icons.tsx +18 -0
  391. package/registry/default/examples/button-default.tsx +5 -0
  392. package/registry/default/examples/button-demo.tsx +11 -1
  393. package/registry/default/examples/button-destructive-icons.tsx +18 -0
  394. package/registry/default/examples/button-destructive-outline-icons.tsx +18 -0
  395. package/registry/default/examples/button-ghost-icons.tsx +18 -0
  396. package/registry/default/examples/button-link-icons.tsx +18 -0
  397. package/registry/default/examples/button-outline-icons.tsx +18 -0
  398. package/registry/default/examples/button-secondary-icons.tsx +18 -0
  399. package/registry/default/examples/button-theme-toggle.tsx +38 -0
  400. package/registry/default/examples/card-author-profile.tsx +66 -0
  401. package/registry/default/examples/card-default-size.tsx +33 -0
  402. package/registry/default/examples/card-depth.tsx +37 -0
  403. package/registry/default/examples/card-help-link.tsx +32 -0
  404. package/registry/default/examples/card-help-menu.tsx +78 -0
  405. package/registry/default/examples/card-image-centered.tsx +38 -0
  406. package/registry/default/examples/card-image-feature.tsx +44 -0
  407. package/registry/default/examples/card-metric-actions.tsx +102 -0
  408. package/registry/default/examples/card-resource-link.tsx +40 -0
  409. package/registry/default/examples/card-team-member.tsx +38 -14
  410. package/registry/default/examples/card-usage-expandable.tsx +98 -0
  411. package/registry/default/examples/card-with-borders.tsx +29 -0
  412. package/registry/default/examples/code-block-shared.tsx +8 -1
  413. package/registry/default/ui/accordion.tsx +82 -2
  414. package/registry/default/ui/avatar.tsx +45 -1
  415. package/registry/default/ui/form.tsx +6 -1
  416. package/registry/default/ui/input-group.tsx +158 -0
  417. package/registry/default/ui/toast-gooey-icons.tsx +68 -0
  418. package/registry/default/ui/toast-gooey-renderer.tsx +614 -0
  419. package/registry/default/ui/toast-gooey-types.ts +45 -0
  420. package/registry/default/ui/toast-gooey.css +511 -0
  421. package/registry/default/ui/toast-gooey.tsx +445 -0
  422. package/registry/default/ui/toast.tsx +1 -1
  423. package/skills/loveui-skills/SKILL.md +170 -0
  424. package/skills/loveui-skills/references/accessibility-baseline.md +32 -0
  425. package/skills/loveui-skills/references/component-api-and-naming.md +30 -0
  426. package/skills/loveui-skills/references/content-ux-writing.md +33 -0
  427. package/skills/loveui-skills/references/design-directions.md +60 -0
  428. package/skills/loveui-skills/references/forms-and-validation.md +30 -0
  429. package/skills/loveui-skills/references/frontend-architecture.md +30 -0
  430. package/skills/loveui-skills/references/interaction-heuristics.md +45 -0
  431. package/skills/loveui-skills/references/mcp-catalog-workflow.md +68 -0
  432. package/skills/loveui-skills/references/motion-and-feedback.md +31 -0
  433. package/skills/loveui-skills/references/navigation-and-information-architecture.md +30 -0
  434. package/skills/loveui-skills/references/page-blueprints.md +76 -0
  435. package/skills/loveui-skills/references/quality-gates.md +51 -0
  436. package/skills/loveui-skills/references/screenshot-translation-protocol.md +52 -0
  437. package/skills/loveui-skills/references/structural-cleanliness.md +37 -0
  438. package/skills/loveui-skills/references/testing-and-quality-strategy.md +33 -0
  439. package/skills/loveui-skills/references/visual-primitives.md +42 -0
  440. package/skills/loveui-skills/skills/adapt/SKILL.md +199 -0
  441. package/skills/loveui-skills/skills/animate/SKILL.md +190 -0
  442. package/skills/loveui-skills/skills/audit/SKILL.md +127 -0
  443. package/skills/loveui-skills/skills/bolder/SKILL.md +132 -0
  444. package/skills/loveui-skills/skills/clarify/SKILL.md +180 -0
  445. package/skills/loveui-skills/skills/colorize/SKILL.md +158 -0
  446. package/skills/loveui-skills/skills/critique/SKILL.md +118 -0
  447. package/skills/loveui-skills/skills/delight/SKILL.md +317 -0
  448. package/skills/loveui-skills/skills/distill/SKILL.md +137 -0
  449. package/skills/loveui-skills/skills/extract/SKILL.md +95 -0
  450. package/skills/loveui-skills/skills/frontend-design/SKILL.md +127 -0
  451. package/skills/loveui-skills/skills/frontend-design/reference/color-and-contrast.md +132 -0
  452. package/skills/loveui-skills/skills/frontend-design/reference/interaction-design.md +123 -0
  453. package/skills/loveui-skills/skills/frontend-design/reference/motion-design.md +99 -0
  454. package/skills/loveui-skills/skills/frontend-design/reference/responsive-design.md +114 -0
  455. package/skills/loveui-skills/skills/frontend-design/reference/spatial-design.md +100 -0
  456. package/skills/loveui-skills/skills/frontend-design/reference/typography.md +131 -0
  457. package/skills/loveui-skills/skills/frontend-design/reference/ux-writing.md +107 -0
  458. package/skills/loveui-skills/skills/harden/SKILL.md +358 -0
  459. package/skills/loveui-skills/skills/normalize/SKILL.md +67 -0
  460. package/skills/loveui-skills/skills/onboard/SKILL.md +243 -0
  461. package/skills/loveui-skills/skills/optimize/SKILL.md +269 -0
  462. package/skills/loveui-skills/skills/polish/SKILL.md +202 -0
  463. package/skills/loveui-skills/skills/quieter/SKILL.md +118 -0
  464. package/skills/loveui-skills/skills/teach-loveui/SKILL.md +69 -0
@@ -0,0 +1,35 @@
1
+ import { Button } from "@/registry/default/ui/button";
2
+ import { DecorIcon } from "./decor-icon";
3
+ import { ArrowRightIcon } from "lucide-react";
4
+
5
+ export function CallToAction() {
6
+ return (
7
+ <div className="relative mx-auto flex w-full max-w-3xl flex-col justify-between gap-y-4 border-y px-4 py-8 dark:bg-[radial-gradient(35%_80%_at_25%_0%,--theme(--color-foreground/.08),transparent)]">
8
+ <DecorIcon className="size-4" position="top-left" />
9
+ <DecorIcon className="size-4" position="top-right" />
10
+ <DecorIcon className="size-4" position="bottom-left" />
11
+ <DecorIcon className="size-4" position="bottom-right" />
12
+
13
+ <div className="pointer-events-none absolute -inset-y-6 -left-px w-px border-l" />
14
+ <div className="pointer-events-none absolute -inset-y-6 -right-px w-px border-r" />
15
+
16
+ <div className="absolute top-0 left-1/2 -z-10 h-full border-l border-dashed" />
17
+
18
+ <h2 className="text-center font-semibold text-xl md:text-3xl">
19
+ Give your team the context they keep asking for.
20
+ </h2>
21
+ <p className="text-balance text-center font-medium text-muted-foreground text-sm md:text-base">
22
+ Publish a shared source of truth for roadmap notes, customer feedback,
23
+ and launch decisions.
24
+ </p>
25
+
26
+ <div className="flex items-center justify-center gap-2">
27
+ <Button variant="outline">View Examples</Button>
28
+ <Button>
29
+ Open a Board{" "}
30
+ <ArrowRightIcon data-icon="inline-end" />
31
+ </Button>
32
+ </div>
33
+ </div>
34
+ );
35
+ }
@@ -0,0 +1,45 @@
1
+ import { cn } from "@/lib/utils";
2
+ import { cva, type VariantProps } from "class-variance-authority";
3
+
4
+ const DecorIconVariants = cva(
5
+ "pointer-events-none absolute z-1 size-5 shrink-0 stroke-1 stroke-muted-foreground",
6
+ {
7
+ variants: {
8
+ position: {
9
+ "top-left":
10
+ "top-0 left-0 -translate-x-[calc(50%+0.5px)] -translate-y-[calc(50%+0.5px)]",
11
+ "top-right":
12
+ "top-0 right-0 translate-x-[calc(50%+0.5px)] -translate-y-[calc(50%+0.5px)]",
13
+ "bottom-right":
14
+ "right-0 bottom-0 translate-x-[calc(50%+0.5px)] translate-y-[calc(50%+0.5px)]",
15
+ "bottom-left":
16
+ "bottom-0 left-0 -translate-x-[calc(50%+0.5px)] translate-y-[calc(50%+0.5px)]",
17
+ },
18
+ },
19
+ defaultVariants: {
20
+ position: "top-left",
21
+ },
22
+ }
23
+ );
24
+
25
+ type DecorIconProps = React.ComponentProps<"svg"> &
26
+ VariantProps<typeof DecorIconVariants>;
27
+
28
+ export function DecorIcon({ position, className, ...props }: DecorIconProps) {
29
+ return (
30
+ <svg
31
+ aria-hidden="true"
32
+ className={cn(DecorIconVariants({ position, className }))}
33
+ fill="none"
34
+ stroke="currentColor"
35
+ strokeLinecap="round"
36
+ strokeLinejoin="round"
37
+ viewBox="0 0 24 24"
38
+ xmlns="http://www.w3.org/2000/svg"
39
+ {...props}
40
+ >
41
+ <path d="M5 12h14" />
42
+ <path d="M12 5v14" />
43
+ </svg>
44
+ );
45
+ }
@@ -0,0 +1,9 @@
1
+ import { CallToAction } from "../components/cta";
2
+
3
+ export default function Page() {
4
+ return (
5
+ <div className="flex min-h-screen items-center justify-center p-4">
6
+ <CallToAction />
7
+ </div>
8
+ );
9
+ }
@@ -0,0 +1,28 @@
1
+ import { Button } from "@/registry/default/ui/button";
2
+ import { CreditCardIcon, ArrowRightIcon } from "lucide-react";
3
+
4
+ export function CallToAction() {
5
+ return (
6
+ <div className="relative mx-auto flex w-full max-w-3xl flex-col justify-between gap-y-6 rounded-4xl border bg-card px-4 py-8 shadow-sm md:py-10 dark:bg-card/50">
7
+ <div className="space-y-2">
8
+ <h2 className="text-center font-semibold text-lg tracking-tight md:text-2xl">
9
+ A faster approval loop starts here.
10
+ </h2>
11
+ <p className="text-balance text-center text-muted-foreground text-sm md:text-base">
12
+ Invite reviewers, collect notes, and approve changes. No credit card{" "}
13
+ <CreditCardIcon className="inline-block size-4" />{" "}
14
+ required.
15
+ </p>
16
+ </div>
17
+ <div className="flex items-center justify-center gap-2">
18
+ <Button className="shadow" variant="secondary">
19
+ Preview Flow
20
+ </Button>
21
+ <Button className="shadow">
22
+ Start Review{" "}
23
+ <ArrowRightIcon data-icon="inline-end" />
24
+ </Button>
25
+ </div>
26
+ </div>
27
+ );
28
+ }
@@ -0,0 +1,9 @@
1
+ import { CallToAction } from "../components/cta";
2
+
3
+ export default function Page() {
4
+ return (
5
+ <div className="flex min-h-screen items-center justify-center p-4">
6
+ <CallToAction />
7
+ </div>
8
+ );
9
+ }
@@ -0,0 +1,72 @@
1
+ import { Button } from "@/registry/default/ui/button";
2
+ import {
3
+ InputGroup,
4
+ InputGroupAddon,
5
+ InputGroupInput,
6
+ } from "@/registry/default/ui/input-group";
7
+ import { FullWidthDivider } from "./full-width-divider";
8
+ import { AtSignIcon, ArrowRightIcon } from "lucide-react";
9
+
10
+ export function CallToAction() {
11
+ return (
12
+ <div className="relative mx-auto flex w-full max-w-3xl flex-col justify-between gap-y-6 border-x bg-secondary/80 px-2 py-8 md:px-4 dark:bg-secondary/40">
13
+ <FullWidthDivider className="-top-px" />
14
+
15
+ <div className="space-y-1">
16
+ <h2 className="text-center font-semibold text-2xl tracking-tight md:text-4xl">
17
+ Get the field notes before everyone else
18
+ </h2>
19
+ <p className="text-balance text-center text-muted-foreground text-sm md:text-base">
20
+ Monthly product lessons, interface patterns, and teardown notes.
21
+ </p>
22
+ </div>
23
+ <div className="flex items-center justify-center gap-2">
24
+ <InputGroup className="max-w-[280px] bg-card">
25
+ <InputGroupInput placeholder="you@company.com" />
26
+ <InputGroupAddon>
27
+ <AtSignIcon data-icon="inline-start" />
28
+ </InputGroupAddon>
29
+ </InputGroup>
30
+
31
+ <Button>
32
+ Join List{" "}
33
+ <ArrowRightIcon data-icon="inline-end" />
34
+ </Button>
35
+ </div>
36
+ <div className="flex items-center justify-center gap-2">
37
+ <p className="text-muted-foreground text-sm">
38
+ Read by{" "}
39
+ <span className="font-medium text-foreground">4,200 builders</span>.
40
+ </p>
41
+ <div className="flex -space-x-[0.45rem] *:rounded-full *:ring-2 *:ring-background">
42
+ <img
43
+ alt="Avatar 01"
44
+ height={24}
45
+ src="https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?q=80&w=72"
46
+ width={24}
47
+ />
48
+ <img
49
+ alt="Avatar 02"
50
+ height={24}
51
+ src="https://images.unsplash.com/photo-1485206412256-701ccc5b93ca?q=80&w=72"
52
+ width={24}
53
+ />
54
+ <img
55
+ alt="Avatar 03"
56
+ height={24}
57
+ src="https://images.unsplash.com/photo-1527980965255-d3b416303d12?q=80&w=72"
58
+ width={24}
59
+ />
60
+ <img
61
+ alt="Avatar 04"
62
+ height={24}
63
+ src="https://images.unsplash.com/photo-1610216705422-caa3fcb6d158?q=80&w=72"
64
+ width={24}
65
+ />
66
+ </div>
67
+ </div>
68
+
69
+ <FullWidthDivider className="-bottom-px" />
70
+ </div>
71
+ );
72
+ }
@@ -0,0 +1,33 @@
1
+ import { cn } from "@/lib/utils";
2
+
3
+ type FullWidthDividerProps = React.ComponentProps<"div"> & {
4
+ contained?: boolean;
5
+ position?: "top" | "bottom";
6
+ };
7
+
8
+ export function FullWidthDivider({
9
+ className,
10
+ contained = false,
11
+ position,
12
+ ...props
13
+ }: FullWidthDividerProps) {
14
+ return (
15
+ <div
16
+ aria-hidden="true"
17
+ className={cn(
18
+ "pointer-events-none absolute h-px bg-border",
19
+ // full-bleed (default)
20
+ "data-[contained=false]:left-1/2 data-[contained=false]:w-screen data-[contained=false]:-translate-x-1/2",
21
+ // contained
22
+ "data-[contained=true]:inset-x-0 data-[contained=true]:w-full",
23
+ // position
24
+ position &&
25
+ "data-[position=top]:-top-px data-[position=bottom]:-bottom-px",
26
+ className
27
+ )}
28
+ data-contained={contained}
29
+ data-position={position}
30
+ {...props}
31
+ />
32
+ );
33
+ }
@@ -0,0 +1,9 @@
1
+ import { FaqsSection } from "../components/faq";
2
+
3
+ export default function Page() {
4
+ return (
5
+ <div className="min-h-screen w-full place-content-center">
6
+ <FaqsSection />
7
+ </div>
8
+ );
9
+ }
@@ -0,0 +1,86 @@
1
+ import {
2
+ Accordion,
3
+ AccordionContent,
4
+ AccordionItem,
5
+ AccordionTrigger,
6
+ } from "@/registry/default/ui/accordion";
7
+
8
+ export function FaqsSection() {
9
+ return (
10
+ <div className="mx-auto w-full max-w-2xl space-y-7 px-4">
11
+ <div className="space-y-2">
12
+ <h2 className="font-semibold text-3xl md:text-4xl">
13
+ Frequently Asked Questions
14
+ </h2>
15
+ <p className="max-w-2xl text-muted-foreground">
16
+ Here are some common questions and answers that you might encounter
17
+ when using LoveUI. If you don't find the answer you're looking for,
18
+ feel free to reach out.
19
+ </p>
20
+ </div>
21
+ <Accordion className="rounded-lg border" collapsible type="single">
22
+ {questions.map((item) => (
23
+ <AccordionItem className="px-4" key={item.id} value={item.id}>
24
+ <AccordionTrigger className="py-4 hover:no-underline focus-visible:underline focus-visible:ring-0">
25
+ {item.title}
26
+ </AccordionTrigger>
27
+ <AccordionContent className="pb-4! text-muted-foreground">
28
+ {item.content}
29
+ </AccordionContent>
30
+ </AccordionItem>
31
+ ))}
32
+ </Accordion>
33
+ <p className="text-muted-foreground">
34
+ Can't find what you're looking for? Contact our{" "}
35
+ <a className="text-primary hover:underline" href="#">
36
+ customer support team
37
+ </a>
38
+ </p>
39
+ </div>
40
+ );
41
+ }
42
+
43
+ const questions = [
44
+ {
45
+ id: "item-1",
46
+ title: "What is LoveUI?",
47
+ content:
48
+ "LoveUI is an open-source collection of React components, examples, blocks, and patterns for building polished interfaces with Tailwind CSS.",
49
+ },
50
+ {
51
+ id: "item-2",
52
+ title: "Who can benefit from LoveUI?",
53
+ content:
54
+ "LoveUI is built for founders, product teams, agencies, and developers who want editable UI source instead of a black-box component package.",
55
+ },
56
+ {
57
+ id: "item-3",
58
+ title: "What does LoveUI include?",
59
+ content:
60
+ "LoveUI includes reusable UI components, production-ready examples, full-page blocks, documentation, and an optional skill pack for AI coding agents.",
61
+ },
62
+ {
63
+ id: "item-4",
64
+ title: "Can I customize LoveUI components?",
65
+ content:
66
+ "Yes. The CLI copies component source into your project, so you can inspect the code, change the styles, and keep only the pieces you need.",
67
+ },
68
+ {
69
+ id: "item-5",
70
+ title: "Does LoveUI work with my existing app?",
71
+ content:
72
+ "Yes. LoveUI works well in React projects using Tailwind CSS. You can add individual components and adjust import paths to match your app.",
73
+ },
74
+ {
75
+ id: "item-6",
76
+ title: "Where can I get help with LoveUI?",
77
+ content:
78
+ "Start with the docs and registry examples. If something looks wrong, open an issue or inspect the copied source directly in your project.",
79
+ },
80
+ {
81
+ id: "item-7",
82
+ title: "How do I get started with LoveUI?",
83
+ content:
84
+ "Run npx love-ui@latest add loveui to install the shared setup, then add components or blocks as your interface needs them.",
85
+ },
86
+ ];
@@ -0,0 +1,9 @@
1
+ import { FaqsSection } from "../components/faq";
2
+
3
+ export default function Page() {
4
+ return (
5
+ <div className="min-h-screen w-full place-content-center">
6
+ <FaqsSection />
7
+ </div>
8
+ );
9
+ }
@@ -0,0 +1,93 @@
1
+ import {
2
+ Accordion,
3
+ AccordionContent,
4
+ AccordionItem,
5
+ AccordionTrigger,
6
+ } from "@/registry/default/ui/accordion";
7
+
8
+ export function FaqsSection() {
9
+ return (
10
+ <div className="mx-auto min-h-screen w-full max-w-5xl lg:border-x">
11
+ <div className="mx-4 grid h-[calc(100vh-3.5rem)] grid-cols-1 border-x md:mx-0 md:grid-cols-2 md:border-x-0">
12
+ <div className="space-y-4 px-4 pt-12 pb-4 md:border-r">
13
+ <h2 className="font-black text-3xl md:text-4xl">FAQs</h2>
14
+ <p className="text-muted-foreground">
15
+ Here are some common questions and answers that you might encounter
16
+ when using LoveUI.
17
+ </p>
18
+ </div>
19
+ <div className="place-content-center">
20
+ <Accordion
21
+ className="rounded-none border-x-0 border-y"
22
+ collapsible
23
+ type="single"
24
+ >
25
+ {questions.map((item) => (
26
+ <AccordionItem className="px-4" key={item.id} value={item.id}>
27
+ <AccordionTrigger className="py-4 hover:no-underline focus-visible:underline focus-visible:ring-0">
28
+ {item.title}
29
+ </AccordionTrigger>
30
+ <AccordionContent className="pb-4 text-muted-foreground">
31
+ {item.content}
32
+ </AccordionContent>
33
+ </AccordionItem>
34
+ ))}
35
+ </Accordion>
36
+ </div>
37
+ </div>
38
+ <div className="flex h-14 items-center justify-center border-t">
39
+ <p className="text-muted-foreground">
40
+ Can't find what you're looking for?{" "}
41
+ <a className="text-primary hover:underline" href="#">
42
+ Contact Us
43
+ </a>
44
+ </p>
45
+ </div>
46
+ </div>
47
+ );
48
+ }
49
+
50
+ const questions = [
51
+ {
52
+ id: "item-1",
53
+ title: "What is LoveUI?",
54
+ content:
55
+ "LoveUI is an open-source collection of React components, examples, blocks, and patterns for building polished interfaces with Tailwind CSS.",
56
+ },
57
+ {
58
+ id: "item-2",
59
+ title: "Who can benefit from LoveUI?",
60
+ content:
61
+ "LoveUI is built for founders, product teams, agencies, and developers who want editable UI source instead of a black-box component package.",
62
+ },
63
+ {
64
+ id: "item-3",
65
+ title: "What does LoveUI include?",
66
+ content:
67
+ "LoveUI includes reusable UI components, production-ready examples, full-page blocks, documentation, and an optional skill pack for AI coding agents.",
68
+ },
69
+ {
70
+ id: "item-4",
71
+ title: "Can I customize LoveUI components?",
72
+ content:
73
+ "Yes. The CLI copies component source into your project, so you can inspect the code, change the styles, and keep only the pieces you need.",
74
+ },
75
+ {
76
+ id: "item-5",
77
+ title: "Does LoveUI work with my existing app?",
78
+ content:
79
+ "Yes. LoveUI works well in React projects using Tailwind CSS. You can add individual components and adjust import paths to match your app.",
80
+ },
81
+ {
82
+ id: "item-6",
83
+ title: "Where can I get help with LoveUI?",
84
+ content:
85
+ "Start with the docs and registry examples. If something looks wrong, open an issue or inspect the copied source directly in your project.",
86
+ },
87
+ {
88
+ id: "item-7",
89
+ title: "How do I get started with LoveUI?",
90
+ content:
91
+ "Run npx love-ui@latest add loveui to install the shared setup, then add components or blocks as your interface needs them.",
92
+ },
93
+ ];
@@ -0,0 +1,9 @@
1
+ import { FaqsSection } from "../components/faq";
2
+
3
+ export default function Page() {
4
+ return (
5
+ <div className="min-h-screen w-full place-content-center">
6
+ <FaqsSection />
7
+ </div>
8
+ );
9
+ }
@@ -0,0 +1,45 @@
1
+ import { cn } from "@/lib/utils";
2
+ import { cva, type VariantProps } from "class-variance-authority";
3
+
4
+ const DecorIconVariants = cva(
5
+ "pointer-events-none absolute z-1 size-5 shrink-0 stroke-1 stroke-muted-foreground",
6
+ {
7
+ variants: {
8
+ position: {
9
+ "top-left":
10
+ "top-0 left-0 -translate-x-[calc(50%+0.5px)] -translate-y-[calc(50%+0.5px)]",
11
+ "top-right":
12
+ "top-0 right-0 translate-x-[calc(50%+0.5px)] -translate-y-[calc(50%+0.5px)]",
13
+ "bottom-right":
14
+ "right-0 bottom-0 translate-x-[calc(50%+0.5px)] translate-y-[calc(50%+0.5px)]",
15
+ "bottom-left":
16
+ "bottom-0 left-0 -translate-x-[calc(50%+0.5px)] translate-y-[calc(50%+0.5px)]",
17
+ },
18
+ },
19
+ defaultVariants: {
20
+ position: "top-left",
21
+ },
22
+ }
23
+ );
24
+
25
+ type DecorIconProps = React.ComponentProps<"svg"> &
26
+ VariantProps<typeof DecorIconVariants>;
27
+
28
+ export function DecorIcon({ position, className, ...props }: DecorIconProps) {
29
+ return (
30
+ <svg
31
+ aria-hidden="true"
32
+ className={cn(DecorIconVariants({ position, className }))}
33
+ fill="none"
34
+ stroke="currentColor"
35
+ strokeLinecap="round"
36
+ strokeLinejoin="round"
37
+ viewBox="0 0 24 24"
38
+ xmlns="http://www.w3.org/2000/svg"
39
+ {...props}
40
+ >
41
+ <path d="M5 12h14" />
42
+ <path d="M12 5v14" />
43
+ </svg>
44
+ );
45
+ }
@@ -0,0 +1,110 @@
1
+ import {
2
+ Accordion,
3
+ AccordionContent,
4
+ AccordionItem,
5
+ AccordionTrigger,
6
+ } from "@/registry/default/ui/accordion";
7
+ import { DecorIcon } from "./decor-icon";
8
+
9
+ export function FaqsSection() {
10
+ return (
11
+ <section className="mx-auto grid min-h-screen w-full max-w-5xl grid-cols-1 md:grid-cols-2 lg:border-x">
12
+ <div className="px-4 pt-12 pb-6">
13
+ <div className="space-y-5">
14
+ <h2 className="text-balance font-bold text-4xl md:text-6xl lg:font-black">
15
+ Frequently Asked Questions
16
+ </h2>
17
+ <p className="text-muted-foreground">
18
+ Quick answers to common questions about LoveUI. Open any question to
19
+ learn more.
20
+ </p>
21
+ <p className="text-muted-foreground">
22
+ {"Can't find what you're looking for? "}
23
+ <a className="text-primary hover:underline" href="#">
24
+ Contact Us
25
+ </a>
26
+ </p>
27
+ </div>
28
+ </div>
29
+ <div className="relative place-content-center">
30
+ {/* vertical guide line */}
31
+ <div
32
+ aria-hidden="true"
33
+ className="pointer-events-none absolute inset-y-0 left-3 h-full w-px bg-border"
34
+ />
35
+
36
+ <Accordion
37
+ className="rounded-none border-x-0 border-y"
38
+ collapsible
39
+ type="single"
40
+ >
41
+ {faqs.map((item) => (
42
+ <AccordionItem
43
+ className="group relative pl-5"
44
+ key={item.id}
45
+ value={item.id}
46
+ >
47
+ <DecorIcon
48
+ className="left-[13px] size-3 group-last:hidden"
49
+ position="bottom-left"
50
+ />
51
+
52
+ <AccordionTrigger className="px-4 py-4 hover:no-underline focus-visible:underline focus-visible:ring-0">
53
+ {item.title}
54
+ </AccordionTrigger>
55
+
56
+ <AccordionContent className="px-4 pb-4 text-muted-foreground">
57
+ {item.content}
58
+ </AccordionContent>
59
+ </AccordionItem>
60
+ ))}
61
+ </Accordion>
62
+ </div>
63
+ </section>
64
+ );
65
+ }
66
+
67
+ const faqs = [
68
+ {
69
+ id: "item-1",
70
+ title: "What is LoveUI?",
71
+ content:
72
+ "LoveUI is an open-source collection of React components, examples, blocks, and patterns for building polished interfaces with Tailwind CSS.",
73
+ },
74
+ {
75
+ id: "item-2",
76
+ title: "Who can benefit from LoveUI?",
77
+ content:
78
+ "LoveUI is built for founders, product teams, agencies, and developers who want editable UI source instead of a black-box component package.",
79
+ },
80
+ {
81
+ id: "item-3",
82
+ title: "What does LoveUI include?",
83
+ content:
84
+ "LoveUI includes reusable UI components, production-ready examples, full-page blocks, documentation, and an optional skill pack for AI coding agents.",
85
+ },
86
+ {
87
+ id: "item-4",
88
+ title: "Can I customize LoveUI components?",
89
+ content:
90
+ "Yes. The CLI copies component source into your project, so you can inspect the code, change the styles, and keep only the pieces you need.",
91
+ },
92
+ {
93
+ id: "item-5",
94
+ title: "Does LoveUI work with my existing app?",
95
+ content:
96
+ "Yes. LoveUI works well in React projects using Tailwind CSS. You can add individual components and adjust import paths to match your app.",
97
+ },
98
+ {
99
+ id: "item-6",
100
+ title: "Where can I get help with LoveUI?",
101
+ content:
102
+ "Start with the docs and registry examples. If something looks wrong, open an issue or inspect the copied source directly in your project.",
103
+ },
104
+ {
105
+ id: "item-7",
106
+ title: "How do I get started with LoveUI?",
107
+ content:
108
+ "Run npx love-ui@latest add loveui to install the shared setup, then add components or blocks as your interface needs them.",
109
+ },
110
+ ];
@@ -0,0 +1,9 @@
1
+ import { FaqsSection } from "../components/faq";
2
+
3
+ export default function Page() {
4
+ return (
5
+ <div className="min-h-screen w-full place-content-center">
6
+ <FaqsSection />
7
+ </div>
8
+ );
9
+ }