SherlockRamos commited on
Commit
a187dbb
·
verified ·
1 Parent(s): fbac003

Upload components/Hero.js with huggingface_hub

Browse files
Files changed (1) hide show
  1. components/Hero.js +141 -66
components/Hero.js CHANGED
@@ -1,99 +1,174 @@
 
1
  import Link from 'next/link'
2
- import { HiSparkles, HiArrowRight, HiBookOpen, HiLightningBolt } from 'react-icons/hi'
 
3
 
4
  export default function Hero() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  return (
6
  <section className="relative bg-gradient-to-br from-primary-600 via-primary-700 to-primary-800 text-white overflow-hidden">
7
  {/* Background Pattern */}
8
- <div className="absolute inset-0 bg-pattern opacity-10"></div>
9
 
10
  <div className="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 lg:py-32">
11
  <div className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
12
- <div>
13
- <div className="flex items-center space-x-2 mb-6">
14
- <HiSparkles className="h-6 w-6 text-accent-400" />
 
 
 
 
 
 
 
 
 
 
 
15
  <span className="text-accent-400 font-semibold">IA para Profissionais</span>
16
- </div>
17
 
18
- <h1 className="text-4xl lg:text-6xl font-bold mb-6 leading-tight">
 
 
 
 
 
19
  Transforme sua Prática
20
  <span className="text-accent-400"> Jurídica e Administrativa</span> com IA
21
- </h1>
22
 
23
- <p className="text-xl lg:text-2xl text-primary-100 mb-8 leading-relaxed">
 
 
 
 
 
24
  Aprenda a usar Inteligência Artificial no dia a dia de escritórios jurídicos,
25
  administrativos e nos seus estudos para concursos públicos.
26
- </p>
27
 
28
- <div className="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
29
- <Link href="/prompts" className="btn-primary flex items-center justify-center space-x-2">
30
- <HiBookOpen className="h-5 w-5" />
 
 
 
 
 
31
  <span>Biblioteca de Prompts</span>
32
- <HiArrowRight className="h-5 w-5" />
33
  </Link>
34
 
35
- <Link href="#sobre" className="btn-secondary flex items-center justify-center space-x-2 text-white border-white hover:bg-white hover:text-primary-700">
36
- <HiLightningBolt className="h-5 w-5" />
 
 
 
 
 
 
37
  <span>Como Funciona</span>
38
- </Link>
39
- </div>
40
 
41
  {/* Stats */}
42
- <div className="grid grid-cols-3 gap-6 mt-12 pt-8 border-t border-primary-500">
43
- <div className="text-center">
44
- <div className="text-2xl font-bold text-accent-400">50+</div>
45
- <div className="text-sm text-primary-200">Prompts Especializados</div>
46
- </div>
47
- <div className="text-center">
48
- <div className="text-2xl font-bold text-accent-400">3</div>
49
- <div className="text-sm text-primary-200">Áreas de Atuação</div>
50
- </div>
51
- <div className="text-center">
52
- <div className="text-2xl font-bold text-accent-400">100%</div>
53
- <div className="text-sm text-primary-200">Gratuito</div>
54
- </div>
55
- </div>
56
- </div>
 
 
 
 
 
57
 
58
- <div className="hidden lg:block">
59
- <div className="relative">
60
- {/* Floating Cards */}
61
- <div className="absolute -top-8 -left-8 bg-white/10 backdrop-blur-lg rounded-xl p-6 border border-white/20">
 
 
 
 
 
 
 
 
62
  <div className="flex items-center space-x-3">
63
  <div className="bg-accent-500 p-2 rounded-lg">
64
- <HiBookOpen className="h-5 w-5 text-white" />
65
  </div>
66
  <div>
67
- <div className="font-semibold">Prompts Jurídicos</div>
68
- <div className="text-sm text-primary-200">Peticionamento, petições e contratos</div>
69
  </div>
70
  </div>
71
- </div>
72
-
73
- <div className="absolute top-16 -right-8 bg-white/10 backdrop-blur-lg rounded-xl p-6 border border-white/20">
74
- <div className="flex items-center space-x-3">
75
- <div className="bg-accent-500 p-2 rounded-lg">
76
- <HiLightningBolt className="h-5 w-5 text-white" />
77
- </div>
78
- <div>
79
- <div className="font-semibold">Concursos Públicos</div>
80
- <div className="text-sm text-primary-200">Estudo e revisão direcionada</div>
81
- </div>
82
- </div>
83
- </div>
84
-
85
- <div className="absolute bottom-8 left-4 bg-white/10 backdrop-blur-lg rounded-xl p-6 border border-white/20">
86
- <div className="flex items-center space-x-3">
87
- <div className="bg-accent-500 p-2 rounded-lg">
88
- <HiSparkles className="h-5 w-5 text-white" />
89
- </div>
90
- <div>
91
- <div className="font-semibold">Administrativo</div>
92
- <div className="text-sm text-primary-200">Gestão e organização</div>
93
- </div>
94
- </div>
95
- </div>
96
- </div>
97
  </div>
98
  </div>
99
  </div>
 
1
+ import { useState, useEffect } from 'react'
2
  import Link from 'next/link'
3
+ import { motion } from 'framer-motion'
4
+ import { HiSparkles, HiArrowRight, HiBookOpen, HiLightningBolt, HiPlay } from 'react-icons/hi'
5
 
6
  export default function Hero() {
7
+ const [mounted, setMounted] = useState(false)
8
+
9
+ useEffect(() => {
10
+ setMounted(true)
11
+ }, [])
12
+
13
+ const stats = [
14
+ { number: '50+', label: 'Prompts Especializados', delay: 0.1 },
15
+ { number: '3', label: 'Áreas de Atuação', delay: 0.2 },
16
+ { number: '100%', label: 'Gratuito', delay: 0.3 }
17
+ ]
18
+
19
+ const floatingCards = [
20
+ {
21
+ icon: HiBookOpen,
22
+ title: 'Prompts Jurídicos',
23
+ description: 'Peticionamento, petições e contratos',
24
+ delay: 0.4,
25
+ position: { top: '-2rem', left: '-2rem' }
26
+ },
27
+ {
28
+ icon: HiLightningBolt,
29
+ title: 'Concursos Públicos',
30
+ description: 'Estudo e revisão direcionada',
31
+ delay: 0.6,
32
+ position: { top: '4rem', right: '-2rem' }
33
+ },
34
+ {
35
+ icon: HiSparkles,
36
+ title: 'Administrativo',
37
+ description: 'Gestão e organização',
38
+ delay: 0.8,
39
+ position: { bottom: '2rem', left: '1rem' }
40
+ }
41
+ ]
42
+
43
+ if (!mounted) {
44
+ return (
45
+ <section className="relative bg-gradient-to-br from-primary-600 via-primary-700 to-primary-800 text-white overflow-hidden min-h-screen flex items-center">
46
+ <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
47
+ <div className="text-center">
48
+ <div className="animate-pulse">
49
+ <div className="h-12 bg-white/20 rounded-lg mb-6 w-96 mx-auto"></div>
50
+ <div className="h-8 bg-white/20 rounded-lg mb-4 w-3/4 mx-auto"></div>
51
+ <div className="h-6 bg-white/20 rounded-lg mb-8 w-1/2 mx-auto"></div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </section>
56
+ )
57
+ }
58
+
59
  return (
60
  <section className="relative bg-gradient-to-br from-primary-600 via-primary-700 to-primary-800 text-white overflow-hidden">
61
  {/* Background Pattern */}
62
+ <div className="absolute inset-0 bg-pattern opacity-10" aria-hidden="true"></div>
63
 
64
  <div className="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 lg:py-32">
65
  <div className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
66
+ {/* Content */}
67
+ <motion.div
68
+ initial={{ opacity: 0, y: 30 }}
69
+ animate={{ opacity: 1, y: 0 }}
70
+ transition={{ duration: 0.8 }}
71
+ className="text-center lg:text-left"
72
+ >
73
+ <motion.div
74
+ className="flex items-center justify-center lg:justify-start space-x-2 mb-6"
75
+ initial={{ opacity: 0, scale: 0.8 }}
76
+ animate={{ opacity: 1, scale: 1 }}
77
+ transition={{ delay: 0.2, duration: 0.6 }}
78
+ >
79
+ <HiSparkles className="h-6 w-6 text-accent-400" aria-hidden="true" />
80
  <span className="text-accent-400 font-semibold">IA para Profissionais</span>
81
+ </motion.div>
82
 
83
+ <motion.h1
84
+ className="text-4xl lg:text-6xl font-bold mb-6 leading-tight"
85
+ initial={{ opacity: 0, y: 20 }}
86
+ animate={{ opacity: 1, y: 0 }}
87
+ transition={{ delay: 0.3, duration: 0.8 }}
88
+ >
89
  Transforme sua Prática
90
  <span className="text-accent-400"> Jurídica e Administrativa</span> com IA
91
+ </motion.h1>
92
 
93
+ <motion.p
94
+ className="text-xl lg:text-2xl text-primary-100 mb-8 leading-relaxed"
95
+ initial={{ opacity: 0, y: 20 }}
96
+ animate={{ opacity: 1, y: 0 }}
97
+ transition={{ delay: 0.4, duration: 0.8 }}
98
+ >
99
  Aprenda a usar Inteligência Artificial no dia a dia de escritórios jurídicos,
100
  administrativos e nos seus estudos para concursos públicos.
101
+ </motion.p>
102
 
103
+ <motion.div
104
+ className="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4 justify-center lg:justify-start"
105
+ initial={{ opacity: 0, y: 20 }}
106
+ animate={{ opacity: 1, y: 0 }}
107
+ transition={{ delay: 0.5, duration: 0.8 }}
108
+ >
109
+ <Link href="/prompts" className="btn-primary flex items-center justify-center space-x-2 group">
110
+ <HiBookOpen className="h-5 w-5 group-hover:scale-110 transition-transform duration-200" aria-hidden="true" />
111
  <span>Biblioteca de Prompts</span>
112
+ <HiArrowRight className="h-5 w-5 group-hover:translate-x-1 transition-transform duration-200" aria-hidden="true" />
113
  </Link>
114
 
115
+ <button
116
+ className="btn-secondary flex items-center justify-center space-x-2 text-white border-white hover:bg-white hover:text-primary-700 group"
117
+ onClick={() => {
118
+ const element = document.querySelector('#sobre')
119
+ if (element) element.scrollIntoView({ behavior: 'smooth' })
120
+
121
+ >
122
+ <HiPlay className="h-5 w-5 group-hover:scale-110 transition-transform duration-200" aria-hidden="true" />
123
  <span>Como Funciona</span>
124
+ </button>
125
+ </motion.div>
126
 
127
  {/* Stats */}
128
+ <motion.div
129
+ className="grid grid-cols-3 gap-6 mt-12 pt-8 border-t border-primary-500"
130
+ initial={{ opacity: 0, y: 20 }}
131
+ animate={{ opacity: 1, y: 0 }}
132
+ transition={{ delay: 0.6, duration: 0.8 }}
133
+ >
134
+ {stats.map((stat, index) => (
135
+ <motion.div
136
+ key={index}
137
+ className="text-center"
138
+ initial={{ opacity: 0, scale: 0.8 }}
139
+ animate={{ opacity: 1, scale: 1 }}
140
+ transition={{ delay: stat.delay, duration: 0.6 }}
141
+ >
142
+ <div className="text-2xl font-bold text-accent-400">{stat.number}</div>
143
+ <div className="text-sm text-primary-200">{stat.label}</div>
144
+ </motion.div>
145
+ ))}
146
+ </motion.div>
147
+ </motion.div>
148
 
149
+ {/* Floating Cards */}
150
+ <div className="hidden lg:block relative">
151
+ {floatingCards.map((card, index) => (
152
+ <motion.div
153
+ key={index}
154
+ className="absolute glass-effect rounded-xl p-6 border border-white/20 animate-float"
155
+ style={card.position}
156
+ initial={{ opacity: 0, scale: 0.8 }}
157
+ animate={{ opacity: 1, scale: 1 }}
158
+ transition={{ delay: card.delay, duration: 0.8 }}
159
+ whileHover={{ scale: 1.05 }}
160
+ >
161
  <div className="flex items-center space-x-3">
162
  <div className="bg-accent-500 p-2 rounded-lg">
163
+ <card.icon className="h-5 w-5 text-white" aria-hidden="true" />
164
  </div>
165
  <div>
166
+ <div className="font-semibold">{card.title}</div>
167
+ <div className="text-sm text-primary-200">{card.description}</div>
168
  </div>
169
  </div>
170
+ </motion.div>
171
+ ))}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  </div>
173
  </div>
174
  </div>