Skip to content

Commit 6dc7974

Browse files
committed
feat: modify in the navbar and the others pages
1 parent 5a3c965 commit 6dc7974

3 files changed

Lines changed: 55 additions & 42 deletions

File tree

frontend/src/components/landing/HeroSection.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export function HeroSection() {
7171
to="/app"
7272
className="group inline-flex items-center gap-2 bg-[#0c6b35] dark:bg-emerald-600 hover:bg-[#0a5a2d] dark:hover:bg-emerald-500 text-white font-semibold text-base py-3.5 px-8 rounded-full transition-all duration-300 shadow-lg shadow-emerald-500/20 hover:scale-[1.02]"
7373
>
74-
Começar grátis
74+
Comece Agora
7575
<ArrowRight className="w-4 h-4 transition-transform group-hover:translate-x-1" />
7676
</Link>
7777
<a

frontend/src/components/landing/HowItWorks.tsx

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@ import { motion } from "framer-motion";
33

44
const steps = [
55
{
6-
number: "01",
6+
number: "PASSO 01",
77
title: "Configure seus filtros",
88
description: "Defina suas tecnologias preferidas, nível de senioridade, modelo de trabalho e localização desejada.",
99
icon: Settings,
1010
},
1111
{
12-
number: "02",
12+
number: "PASSO 02",
1313
title: "O robô busca por você",
1414
description: "Nosso scraper varre dezenas de plataformas automaticamente e coleta as vagas que combinam com seu perfil.",
1515
icon: Bot,
1616
},
1717
{
18-
number: "03",
18+
number: "PASSO 03",
1919
title: "Receba e candidate-se",
2020
description: "Visualize as vagas filtradas no dashboard, exporte relatórios e candidate-se com confiança.",
2121
icon: Rocket,
@@ -24,17 +24,18 @@ const steps = [
2424

2525
export function HowItWorks() {
2626
return (
27-
<section id="how-it-works" className="py-24 relative overflow-hidden bg-transparent">
27+
<section id="how-it-works" className="py-24 relative overflow-hidden bg-transparent font-sans">
2828
<div className="max-w-6xl mx-auto px-6">
29-
<div className="text-center mb-20">
29+
30+
<div className="text-center mb-24">
3031
<motion.h2
3132
initial={{ opacity: 0, y: 20 }}
3233
whileInView={{ opacity: 1, y: 0 }}
3334
viewport={{ once: true, margin: "-50px" }}
3435
transition={{ duration: 0.5 }}
35-
className="text-3xl md:text-4xl lg:text-5xl font-bold text-gray-900 dark:text-white mb-4"
36+
className="text-4xl md:text-5xl font-extrabold text-gray-900 dark:text-white mb-4 tracking-tight"
3637
>
37-
Como funciona
38+
Como funciona ?
3839
</motion.h2>
3940
<motion.p
4041
initial={{ opacity: 0, y: 20 }}
@@ -43,13 +44,13 @@ export function HowItWorks() {
4344
transition={{ duration: 0.5, delay: 0.1 }}
4445
className="text-gray-500 dark:text-gray-400 text-lg max-w-2xl mx-auto"
4546
>
46-
Em apenas 3 passos, você está pronto para receber as melhores vagas
47+
Em apenas 3 passos, você está pronto para receber as melhores vagas automaticamente.
4748
</motion.p>
4849
</div>
4950

50-
<div className="grid grid-cols-1 md:grid-cols-3 gap-12 md:gap-0 relative">
51+
<div className="grid grid-cols-1 md:grid-cols-3 gap-16 md:gap-4 relative">
5152

52-
<div className="hidden md:block absolute top-[72px] left-[calc(16.66%+40px)] right-[calc(16.66%+40px)] h-px border-t-2 border-dashed border-emerald-200 dark:border-emerald-900/40" />
53+
<div className="hidden md:block absolute top-[112px] left-[10%] right-[10%] h-[2px] bg-emerald-200 dark:bg-emerald-800/40" />
5354

5455
{steps.map((step, idx) => (
5556
<motion.div
@@ -58,25 +59,27 @@ export function HowItWorks() {
5859
whileInView={{ opacity: 1, y: 0 }}
5960
viewport={{ once: true, margin: "-50px" }}
6061
transition={{ duration: 0.5, delay: idx * 0.15, ease: "easeOut" }}
61-
className="flex flex-col items-center text-center relative"
62+
className="flex flex-col items-center text-center relative group"
6263
>
6364

64-
<span className="text-5xl font-bold dark:text-white text-black mb-4 select-none">
65+
<div className="w-16 h-16 bg-white dark:bg-neutral-800 rounded-2xl flex items-center justify-center mb-8 shadow-md border border-gray-100 dark:border-neutral-700 relative z-10 transition-transform duration-300 group-hover:-translate-y-1">
66+
<step.icon className="text-[#0c6b35] dark:text-emerald-400 w-6 h-6" />
67+
</div>
68+
69+
<div className="hidden md:block w-3 h-3 bg-white dark:bg-neutral-900 border-2 border-emerald-500 rounded-full mb-6 relative z-10" />
70+
71+
<span className="text-xs font-bold tracking-widest text-emerald-600 dark:text-emerald-400 uppercase mb-3">
6572
{step.number}
6673
</span>
6774

68-
<div className="w-16 h-16 bg-emerald-50 dark:bg-emerald-950/50 rounded-2xl flex items-center justify-center mb-6 relative z-10 ring-4 ring-white dark:ring-neutral-900">
69-
<step.icon className="text-[#0c6b35] dark:text-emerald-400 w-7 h-7" />
70-
</div>
71-
72-
{/* Title */}
73-
<h3 className="text-xl font-semibold text-gray-900 dark:text-white mb-3">
75+
<h3 className="text-xl font-bold text-gray-900 dark:text-white mb-3">
7476
{step.title}
7577
</h3>
7678

77-
<p className="text-gray-500 dark:text-gray-400 leading-relaxed max-w-xs">
79+
<p className="text-gray-500 dark:text-gray-400 text-sm leading-relaxed max-w-xs px-2">
7880
{step.description}
7981
</p>
82+
8083
</motion.div>
8184
))}
8285
</div>

frontend/src/components/landing/Navbar.tsx

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,36 @@ import { Link } from "react-router-dom";
33
import {
44
Menu, X, MessageSquare,
55
Sparkles, Workflow, BadgeDollarSign, RadioTower, Sun, Moon,
6+
User,
7+
Users2,
68
} from "lucide-react";
79
import { useTheme } from "@/hooks/useTheme";
810

911
const navLinks = [
1012
{
11-
name: "Funcionalidades", href: "#features", sectionId: "features", icon: Sparkles
13+
name: "Funcionalidades",
14+
href: "/#features",
15+
sectionId: "features",
16+
icon: Sparkles
1217
},
1318
{
14-
name: "Como Funciona", href: "#how-it-works", sectionId: "how-it-works", icon: Workflow
19+
name: "Como Funciona",
20+
href: "/#how-it-works",
21+
sectionId: "how-it-works",
22+
icon: Workflow
1523
},
1624
{
17-
name: "Status", href: "#status", sectionId: "status", icon: RadioTower },
25+
name: "Pronto?",
26+
href: "/#status",
27+
sectionId: "pronto",
28+
icon: RadioTower
29+
},
30+
{
31+
name: "Time",
32+
href: "/#time",
33+
sectionId: "time",
34+
icon: Users2,
35+
}
1836
];
1937

2038
export function Navbar() {
@@ -75,13 +93,16 @@ export function Navbar() {
7593
: "opacity-0 -translate-y-full pointer-events-none"
7694
}`}
7795
>
78-
<div className="flex items-center justify-between w-full h-11 px-3">
96+
{/* Removeu o justify-between para os itens não se repelirem */}
97+
<div className="flex items-center w-full h-11 px-4">
7998

80-
<Link to="/" className="flex font-bold items-center gap-2 shrink-0 dark:text-white text-black ">
99+
{/* LOGO (Fica na esquerda) */}
100+
<Link to="/" className="flex font-bold text-sm items-center gap-2 shrink-0 dark:text-white text-black">
81101
Painel de vagas
82102
</Link>
83103

84-
<div className="hidden md:flex items-center gap-1">
104+
{/* LINKS CENTRALIZADOS (O mx-auto empurra o logo pra esquerda e as ações pra direita, mantendo o miolo junto) */}
105+
<div className="hidden md:flex items-center gap-2 mx-auto bg-gray-50/50 dark:bg-neutral-900/30 px-2 py-1 rounded-full border border-gray-100 dark:border-neutral-800/50">
85106
{navLinks.map((link) => {
86107
const Icon = link.icon;
87108
const isActive = activeSection === link.name;
@@ -90,7 +111,7 @@ export function Navbar() {
90111
key={link.name}
91112
href={link.href}
92113
onClick={() => setActiveSection(link.name)}
93-
className={`flex items-center gap-1.5 text-xs font-medium px-2.5 py-1.5 rounded-full transition-all duration-200 ${
114+
className={`flex items-center gap-1.5 text-xs font-medium px-3 py-1.5 rounded-full transition-all duration-200 ${
94115
isActive
95116
? "bg-emerald-500/15 text-emerald-600 dark:text-emerald-300 ring-1 ring-emerald-500/30"
96117
: "text-neutral-500 dark:text-neutral-400 hover:text-neutral-900 dark:hover:text-neutral-200 hover:bg-black/5 dark:hover:bg-white/5"
@@ -106,25 +127,16 @@ export function Navbar() {
106127
})}
107128
</div>
108129

109-
<div className="hidden md:flex items-center gap-2">
110-
<a
111-
href="#contact"
112-
className="text-neutral-500 dark:text-neutral-400 hover:text-neutral-900 dark:hover:text-neutral-200 font-medium text-xs px-3 py-1.5 rounded-full transition-all hover:bg-black/5 dark:hover:bg-white/5"
113-
>
114-
Contato
115-
</a>
116-
117-
<div className="w-[1px] h-4 bg-gray-200 dark:bg-neutral-800" />
118-
130+
<div className="hidden md:flex items-center gap-2 shrink-0">
119131
<Link
120132
to="/app"
121133
className="flex items-center gap-1.5 bg-gradient-to-r from-emerald-500 to-teal-600 hover:from-emerald-400 hover:to-teal-500 text-white font-semibold text-xs px-4 py-1.5 h-8 rounded-full transition-all shadow-md whitespace-nowrap"
122134
>
123-
<MessageSquare size={13} />
135+
<User size={13} />
124136
Acessar App
125137
</Link>
126138

127-
<div className="w-[1px] h-4 bg-gray-200 dark:bg-neutral-800" />
139+
<div className="w-[1px] h-4 bg-gray-200 dark:bg-neutral-800 mx-1" />
128140

129141
<button
130142
onClick={toggleTheme}
@@ -136,8 +148,7 @@ export function Navbar() {
136148
</button>
137149
</div>
138150

139-
140-
<div className="md:hidden flex items-center gap-1">
151+
<div className="md:hidden flex items-center gap-1 ml-auto">
141152
<button
142153
onClick={toggleTheme}
143154
type="button"
@@ -155,7 +166,6 @@ export function Navbar() {
155166
</div>
156167
</div>
157168

158-
{/* Menu mobile */}
159169
{isMobileMenuOpen && (
160170
<div className="md:hidden absolute top-[calc(100%+0.5rem)] left-0 w-full bg-white/95 dark:bg-[#0d1a14]/95 backdrop-blur-xl border border-gray-200 dark:border-emerald-900/30 rounded-2xl shadow-2xl p-3 flex flex-col gap-1">
161171
{navLinks.map((link) => {

0 commit comments

Comments
 (0)