@@ -44,8 +44,13 @@ const JobCard: React.FC<JobCardProps> = ({ job }) => {
4444 rel = "noopener noreferrer"
4545 className = "group block h-full"
4646 >
47- < Card className = "relative flex h-full flex-col overflow-hidden border border-neutral-900 bg-neutral-900/50 shadow-lg transition-all duration-300 hover:border-neutral-800 hover:shadow-xl" >
48- < CardHeader className = "space-y-4 border-b border-neutral-900 pb-5" >
47+ < Card className = "relative flex h-full flex-col border border-dashed border-neutral-100/15 bg-neutral-900/50 transition-all duration-300 hover:border-solid" >
48+ { job . featured && (
49+ < span className = "absolute -right-2 -top-3 z-20 inline-flex items-center gap-1 rounded-full border border-amber-600 bg-amber-950 px-2.5 py-0.5 text-xs font-semibold text-amber-300" >
50+ < Sparkles className = "size-3" /> Hot role
51+ </ span >
52+ ) }
53+ < CardHeader className = "space-y-4 border-b border-neutral-900 p-4" >
4954 < div className = "flex items-start gap-4" >
5055 { job . companyLogo && ! imageError ? (
5156 < img
@@ -62,42 +67,37 @@ const JobCard: React.FC<JobCardProps> = ({ job }) => {
6267 ) }
6368 < div className = "min-w-0 flex-1" >
6469 < div className = "flex flex-wrap items-center gap-2" >
65- < h3 className = "text-lg font-semibold leading-tight text-neutral-100 group-hover:text-white" >
70+ < h3 className = "text-lg font-semibold leading-tight tracking-tight text-neutral-100 group-hover:text-white" >
6671 { job . title }
6772 </ h3 >
68- { job . featured && (
69- < span className = "inline-flex items-center gap-1 rounded-full border border-amber-500/30 bg-amber-500/15 px-2.5 py-0.5 text-xs font-semibold text-amber-300" >
70- < Sparkles className = "size-3" /> Hot role
71- </ span >
72- ) }
7373 </ div >
7474 < p className = "mt-1 text-sm text-neutral-400" > { job . company } </ p >
7575 </ div >
7676 </ div >
7777 </ CardHeader >
7878
79- < CardContent className = "flex flex-1 flex-col gap-6 py-6 " >
79+ < CardContent className = "flex flex-1 flex-col gap-6 p-4 " >
8080 < p className = "line-clamp-3 text-sm leading-relaxed text-neutral-300" >
8181 { job . description }
8282 </ p >
8383
8484 < div className = "grid grid-cols-1 gap-3 text-xs font-medium text-neutral-400 sm:grid-cols-2" >
85- < div className = "flex items-center gap-2 rounded-lg border border-neutral-900 bg-neutral-900/60 px-3 py -2" >
86- < MapPin className = "size-4 text-neutral-500 " />
85+ < div className = "flex items-center gap-2 border border-dashed border-neutral-100/15 bg-neutral-900/60 p -2" >
86+ < MapPin className = "size-4 text-neutral-600 " />
8787 < span > { job . location } </ span >
8888 </ div >
89- < div className = "flex items-center gap-2 rounded-lg border border-neutral-900 bg-neutral-900/60 px-3 py -2" >
90- < Clock className = "size-4 text-neutral-500 " />
89+ < div className = "flex items-center gap-2 border border-dashed border-neutral-100/15 bg-neutral-900/60 p -2" >
90+ < Clock className = "size-4 text-neutral-600 " />
9191 < span > { formatJobType ( job . type ) } </ span >
9292 </ div >
9393 { job . salary && (
94- < div className = "flex items-center gap-2 rounded-lg border border-neutral-900 bg-neutral-900/60 px-3 py -2" >
95- < DollarSign className = "size-4 text-neutral-500 " />
94+ < div className = "flex items-center gap-2 border border-dashed border-neutral-100/15 bg-neutral-900/60 p -2" >
95+ < DollarSign className = "size-4 text-neutral-600 " />
9696 < span className = "text-neutral-200" > { job . salary } </ span >
9797 </ div >
9898 ) }
99- < div className = "flex items-center gap-2 rounded-lg border border-neutral-900 bg-neutral-900/60 px-3 py -2" >
100- < Calendar className = "size-4 text-neutral-500 " />
99+ < div className = "flex items-center gap-2 border border-dashed border-neutral-100/15 bg-neutral-900/60 p -2" >
100+ < Calendar className = "size-4 text-neutral-600 " />
101101 < span > Posted { formatDate ( job . createdAt ) } </ span >
102102 </ div >
103103 </ div >
@@ -108,15 +108,15 @@ const JobCard: React.FC<JobCardProps> = ({ job }) => {
108108 < Badge
109109 key = { category }
110110 variant = "secondary"
111- className = "rounded-full border border-neutral-900 bg-neutral-900/70 px-3 py-1 text-xs font-medium text-neutral-300 "
111+ className = "rounded-full border border-neutral-900 bg-neutral-900/70 px-3 py-1.5 text-xs font-medium leading-none text-neutral-400 "
112112 >
113113 { category }
114114 </ Badge >
115115 ) ) }
116116 { job . categories . length > 3 && (
117117 < Badge
118118 variant = "secondary"
119- className = "rounded-full border border-neutral-900 bg-neutral-900/70 px-3 py-1 text-xs font-medium text-neutral-400"
119+ className = "rounded-full border border-neutral-900 bg-neutral-900/70 px-3 py-1.5 text-xs font-medium leading-none text-neutral-400"
120120 >
121121 +{ job . categories . length - 3 } more
122122 </ Badge >
@@ -125,9 +125,11 @@ const JobCard: React.FC<JobCardProps> = ({ job }) => {
125125 ) }
126126 </ CardContent >
127127
128- < CardFooter className = "mt-auto flex items-center justify-between border-t border-neutral-900 bg-neutral-900/40 px-6 py-4 text-xs text-neutral-400" >
129- < span > Expires { formatDate ( job . expiresAt ) } </ span >
130- < span className = "inline-flex items-center gap-1 text-neutral-300" >
128+ < CardFooter className = "mt-auto flex items-center justify-between border-t border-neutral-900 bg-neutral-900/40 px-4 py-3 text-xs" >
129+ < span className = "text-neutral-500" >
130+ Expires { formatDate ( job . expiresAt ) }
131+ </ span >
132+ < span className = "inline-flex items-center gap-1 text-neutral-400" >
131133 View role
132134 < ArrowUpRight className = "size-3" />
133135 </ span >
0 commit comments