|
1 | 1 | import { useState } from 'react'; |
2 | 2 | import { useNavigate } from 'react-router-dom'; |
3 | 3 | import { exampleCategories } from '../data/examples'; |
4 | | -import { LayoutTemplate, ArrowRight, Component, Layers, Database, Shield, Box, FolderOpen } from 'lucide-react'; |
| 4 | +import { LayoutTemplate, ArrowRight, Component, Layers, Database, Shield, Box, FolderOpen, Plus } from 'lucide-react'; |
5 | 5 |
|
6 | 6 | const CategoryIcon = ({ name }: { name: string }) => { |
7 | 7 | switch (name) { |
@@ -30,6 +30,13 @@ export const Home = () => { |
30 | 30 | <span className="font-bold text-xl tracking-tight bg-gradient-to-r from-gray-900 to-gray-600 bg-clip-text text-transparent">Object UI Studio</span> |
31 | 31 | </div> |
32 | 32 | <div className="flex items-center gap-3"> |
| 33 | + <button |
| 34 | + onClick={() => navigate('/studio/new')} |
| 35 | + className="flex items-center gap-2 px-4 py-2 text-sm font-semibold text-indigo-600 bg-indigo-50 hover:bg-indigo-100 border border-indigo-200 rounded-lg transition-all shadow-sm hover:shadow" |
| 36 | + > |
| 37 | + <Plus className="w-4 h-4" /> |
| 38 | + New Design |
| 39 | + </button> |
33 | 40 | <button |
34 | 41 | onClick={() => navigate('/my-designs')} |
35 | 42 | className="flex items-center gap-2 px-4 py-2 text-sm font-semibold text-gray-700 hover:text-gray-900 bg-white/50 hover:bg-white border border-gray-200 rounded-lg transition-all shadow-sm hover:shadow" |
@@ -71,11 +78,28 @@ export const Home = () => { |
71 | 78 | Build Stunning Interfaces,<br /> |
72 | 79 | <span className="bg-gradient-to-r from-indigo-600 via-purple-600 to-pink-600 bg-clip-text text-transparent">Purely from JSON.</span> |
73 | 80 | </h1> |
74 | | - <p className="max-w-2xl mx-auto text-xl text-gray-600 leading-relaxed"> |
| 81 | + <p className="max-w-2xl mx-auto text-xl text-gray-600 leading-relaxed mb-8"> |
75 | 82 | Object UI transforms JSON schemas into fully functional, accessible, and responsive React applications. |
76 | 83 | <br className="hidden sm:block" /> |
77 | | - <span className="font-semibold text-gray-700">Select a template below to start building.</span> |
| 84 | + <span className="font-semibold text-gray-700">Select a template below or start from scratch.</span> |
78 | 85 | </p> |
| 86 | + |
| 87 | + <div className="flex justify-center gap-4"> |
| 88 | + <button |
| 89 | + onClick={() => navigate('/studio/new')} |
| 90 | + className="flex items-center gap-2 px-6 py-3 text-lg font-bold text-white bg-gradient-to-r from-indigo-600 to-purple-600 hover:from-indigo-700 hover:to-purple-700 rounded-xl shadow-lg shadow-indigo-300/50 transition-all transform hover:scale-105" |
| 91 | + > |
| 92 | + <Plus className="w-5 h-5" /> |
| 93 | + Start New Design |
| 94 | + </button> |
| 95 | + <button |
| 96 | + onClick={() => navigate('/my-designs')} |
| 97 | + className="flex items-center gap-2 px-6 py-3 text-lg font-bold text-gray-700 bg-white hover:bg-gray-50 border-2 border-gray-200 rounded-xl shadow-lg transition-all transform hover:scale-105" |
| 98 | + > |
| 99 | + <FolderOpen className="w-5 h-5" /> |
| 100 | + Open Saved |
| 101 | + </button> |
| 102 | + </div> |
79 | 103 | </div> |
80 | 104 |
|
81 | 105 | {/* Category Filter */} |
|
0 commit comments