|
| 1 | +import React from 'react' |
| 2 | +import { Box, Typography, Link as MuiLink } from '@mui/material' |
| 3 | +import CheckIcon from '@mui/icons-material/Check' |
| 4 | +import VerifiedUserOutlinedIcon from '@mui/icons-material/VerifiedUserOutlined' |
| 5 | +import GroupsOutlinedIcon from '@mui/icons-material/GroupsOutlined' |
| 6 | +import LinkOutlinedIcon from '@mui/icons-material/LinkOutlined' |
| 7 | +import BookmarkBorderOutlinedIcon from '@mui/icons-material/BookmarkBorderOutlined' |
| 8 | +import LockOutlinedIcon from '@mui/icons-material/LockOutlined' |
| 9 | +import BoltOutlinedIcon from '@mui/icons-material/BoltOutlined' |
| 10 | +import { |
| 11 | + sectionDescriptionStyles, |
| 12 | + featureTitleStyles, |
| 13 | + featureTextStyles |
| 14 | +} from './Styles/appStyles' |
| 15 | + |
| 16 | +const JOB_SEEKER_FEATURES = [ |
| 17 | + { |
| 18 | + display: 'Self-authored credentials', |
| 19 | + text: 'You own your professional story' |
| 20 | + }, |
| 21 | + { |
| 22 | + display: 'Backed by proof', |
| 23 | + text: 'Upload evidence and get endorsements' |
| 24 | + }, |
| 25 | + { |
| 26 | + display: 'Universally shareable', |
| 27 | + text: 'One credential, infinite opportunities' |
| 28 | + } |
| 29 | +] |
| 30 | + |
| 31 | +export const JobSeekersSection: React.FC<{ showCreatedByLine?: boolean }> = ({ showCreatedByLine = false }) => { |
| 32 | + return ( |
| 33 | + <Box |
| 34 | + sx={{ |
| 35 | + maxWidth: '1400px', |
| 36 | + margin: '0 auto', |
| 37 | + padding: { xs: '30px 15px', md: '60px 30px' }, |
| 38 | + display: 'flex', |
| 39 | + flexDirection: 'column', |
| 40 | + alignItems: 'center', |
| 41 | + backgroundColor: 'grey gradient', |
| 42 | + gap: '40px' |
| 43 | + }} |
| 44 | + > |
| 45 | + <Box sx={{ textAlign: 'center' }}> |
| 46 | + <Box |
| 47 | + sx={{ |
| 48 | + backgroundColor: '#EEF5FF', |
| 49 | + color: '#1447E6', |
| 50 | + borderRadius: '100px', |
| 51 | + padding: '8px 16px', |
| 52 | + fontSize: '14px', |
| 53 | + fontWeight: 600, |
| 54 | + fontFamily: 'Inter', |
| 55 | + marginBottom: '16px', |
| 56 | + display: 'inline-block' |
| 57 | + }} |
| 58 | + > |
| 59 | + Why LinkedCreds? |
| 60 | + </Box> |
| 61 | + <Typography |
| 62 | + sx={{ |
| 63 | + fontSize: '48px', |
| 64 | + fontWeight: 800, |
| 65 | + fontFamily: 'Poppins', |
| 66 | + color: '#101828', |
| 67 | + textAlign: 'center', |
| 68 | + lineHeight: '48px', |
| 69 | + marginBottom: '40px' |
| 70 | + }} |
| 71 | + variant='h2' |
| 72 | + > |
| 73 | + Perfect for Job Seekers |
| 74 | + </Typography> |
| 75 | + </Box> |
| 76 | + |
| 77 | + <Box |
| 78 | + sx={{ |
| 79 | + display: 'flex', |
| 80 | + flexDirection: { xs: 'column', md: 'row' }, |
| 81 | + alignItems: 'center', |
| 82 | + justifyContent: 'space-between', |
| 83 | + gap: { xs: '40px', md: '80px' }, |
| 84 | + width: '100%' |
| 85 | + }} |
| 86 | + > |
| 87 | + {/* Left Content */} |
| 88 | + <Box |
| 89 | + sx={{ |
| 90 | + flex: 1, |
| 91 | + display: 'flex', |
| 92 | + flexDirection: 'column', |
| 93 | + gap: '24px', |
| 94 | + maxWidth: { md: '550px' } |
| 95 | + }} |
| 96 | + > |
| 97 | + <Box sx={{ display: 'flex', flexDirection: 'column', gap: '16px' }}> |
| 98 | + <Typography |
| 99 | + sx={{ |
| 100 | + fontSize: { xs: '20px', md: '48px' }, |
| 101 | + fontWeight: 'bold', |
| 102 | + fontFamily: 'Poppins', |
| 103 | + color: '#101828', |
| 104 | + lineHeight: '52px' |
| 105 | + }} |
| 106 | + > |
| 107 | + Built for the modern talent marketplace |
| 108 | + </Typography> |
| 109 | + {showCreatedByLine && ( |
| 110 | + <Box sx={{ display: 'flex', flexDirection: 'column', gap: '8px' }}> |
| 111 | + <Box sx={{ width: '100%', height: '1px', backgroundColor: '#E5E7EB' }} /> |
| 112 | + <Box sx={{ display: 'flex', alignItems: 'center', gap: '8px' }}> |
| 113 | + <Box |
| 114 | + sx={{ |
| 115 | + display: 'flex', |
| 116 | + alignItems: 'center', |
| 117 | + justifyContent: 'center', |
| 118 | + width: '18px', |
| 119 | + height: '18px', |
| 120 | + borderRadius: '50%', |
| 121 | + border: '1.5px solid #10B981', |
| 122 | + flexShrink: 0 |
| 123 | + }} |
| 124 | + > |
| 125 | + <CheckIcon sx={{ color: '#10B981', fontSize: '14px', stroke: '#10B981', strokeWidth: 1 }} /> |
| 126 | + </Box> |
| 127 | + <Typography sx={{ color: '#667085', fontSize: '13px', fontFamily: 'Inter' }}> |
| 128 | + Created by the <MuiLink href="https://www.uschamberfoundation.org/t3-innovation" target="_blank" rel="noopener noreferrer" sx={{ color: '#667085', textDecoration: 'underline', '&:hover': { color: '#344054' } }}>US Chamber of Commerce Foundation T3 Innovation Network</MuiLink> |
| 129 | + </Typography> |
| 130 | + </Box> |
| 131 | + </Box> |
| 132 | + )} |
| 133 | + </Box> |
| 134 | + <Typography |
| 135 | + sx={sectionDescriptionStyles} |
| 136 | + > |
| 137 | + In a world where trust matters, LinkedCreds provides a way for people from all walks of life to document |
| 138 | + skills and collect the verification needed to showcase their true potential. |
| 139 | + </Typography> |
| 140 | + <Box sx={{ display: 'flex', flexDirection: 'column', gap: '16px', mt: 1 }}> |
| 141 | + {JOB_SEEKER_FEATURES.map((feature, index) => ( |
| 142 | + <Box key={index} sx={{ display: 'flex', alignItems: 'flex-start', gap: '16px' }}> |
| 143 | + <CheckIcon |
| 144 | + sx={{ |
| 145 | + color: '#10B981', |
| 146 | + width: '24px', |
| 147 | + height: '24px', |
| 148 | + flexShrink: 0, |
| 149 | + backgroundColor: '#ECFDF5', |
| 150 | + borderRadius: '50%', |
| 151 | + padding: '4px' |
| 152 | + }} |
| 153 | + /> |
| 154 | + <Box sx={{ display: 'flex', flexDirection: 'column' }}> |
| 155 | + <Typography |
| 156 | + sx={featureTitleStyles} |
| 157 | + > |
| 158 | + {feature.display} |
| 159 | + </Typography> |
| 160 | + <Typography |
| 161 | + sx={featureTextStyles} |
| 162 | + > |
| 163 | + {feature.text} |
| 164 | + </Typography> |
| 165 | + </Box> |
| 166 | + </Box> |
| 167 | + ))} |
| 168 | + </Box> |
| 169 | + </Box> |
| 170 | + |
| 171 | + {/* Right Content - Image */} |
| 172 | + <Box |
| 173 | + component='img' |
| 174 | + src='/images/desk.png' |
| 175 | + alt='Job seeker working at a desk' |
| 176 | + sx={{ |
| 177 | + flex: 1, |
| 178 | + width: '100%', |
| 179 | + maxWidth: '666px', |
| 180 | + borderRadius: '16px', |
| 181 | + boxShadow: '0px 20px 40px -10px rgba(0, 0, 0, 0.15)', |
| 182 | + objectFit: 'cover' |
| 183 | + }} |
| 184 | + /> |
| 185 | + </Box> |
| 186 | + </Box> |
| 187 | + ) |
| 188 | +} |
| 189 | + |
| 190 | +const FEATURES_LIST = [ |
| 191 | + { |
| 192 | + icon: VerifiedUserOutlinedIcon, |
| 193 | + title: 'Verifiable & Trustworthy', |
| 194 | + description: |
| 195 | + 'All credentials are cryptographically signed and tamper-proof, ensuring authenticity.', |
| 196 | + iconBg: '#DBEAFE', // Light Blue |
| 197 | + iconColor: '#2563EB' // Blue |
| 198 | + }, |
| 199 | + { |
| 200 | + icon: GroupsOutlinedIcon, |
| 201 | + title: 'Peer Recommendations', |
| 202 | + description: |
| 203 | + 'Request endorsements from colleagues, mentors, and managers to validate your skills.', |
| 204 | + iconBg: '#DBEAFE', // Indigo tint |
| 205 | + iconColor: '#2563EB' // Indigo |
| 206 | + }, |
| 207 | + { |
| 208 | + icon: LinkOutlinedIcon, |
| 209 | + title: 'Easy Integration', |
| 210 | + description: |
| 211 | + 'Seamlessly share credentials on LinkedIn, resumes, and professional portfolios.', |
| 212 | + iconBg: '#DBEAFE', |
| 213 | + iconColor: '#2563EB' |
| 214 | + }, |
| 215 | + { |
| 216 | + icon: BookmarkBorderOutlinedIcon, |
| 217 | + title: 'Comprehensive Portfolio', |
| 218 | + description: |
| 219 | + 'Document all your achievements, from formal education to informal learning experiences.', |
| 220 | + iconBg: '#DBEAFE', |
| 221 | + iconColor: '#2563EB' |
| 222 | + }, |
| 223 | + { |
| 224 | + icon: LockOutlinedIcon, |
| 225 | + title: 'Privacy Control', |
| 226 | + description: |
| 227 | + 'You decide what to share and with whom. Keep full control of your credentials.', |
| 228 | + iconBg: '#DBEAFE', |
| 229 | + iconColor: '#2563EB' |
| 230 | + }, |
| 231 | + { |
| 232 | + icon: BoltOutlinedIcon, |
| 233 | + title: 'Instant Verification', |
| 234 | + description: |
| 235 | + 'Employers can verify your credentials instantly without lengthy background checks.', |
| 236 | + iconBg: '#E0F2FE', |
| 237 | + iconColor: '#2563EB' |
| 238 | + } |
| 239 | +] |
| 240 | + |
| 241 | +export const FeaturesGridSection: React.FC = () => { |
| 242 | + return ( |
| 243 | + <Box |
| 244 | + sx={{ |
| 245 | + maxWidth: '1400px', |
| 246 | + margin: '0 auto', |
| 247 | + padding: { xs: '30px 15px', md: '60px 30px' }, |
| 248 | + display: 'grid', |
| 249 | + gridTemplateColumns: { |
| 250 | + xs: '1fr', |
| 251 | + md: 'repeat(2, 1fr)', |
| 252 | + lg: 'repeat(3, 1fr)' |
| 253 | + }, |
| 254 | + gap: '24px' |
| 255 | + }} |
| 256 | + > |
| 257 | + {FEATURES_LIST.map((feature, index) => { |
| 258 | + const IconComponent = feature.icon |
| 259 | + return ( |
| 260 | + <Box |
| 261 | + key={index} |
| 262 | + sx={{ |
| 263 | + backgroundColor: '#FFFFFF', |
| 264 | + border: '1px solid #EAECF0', |
| 265 | + borderRadius: '16px', |
| 266 | + padding: '24px', |
| 267 | + display: 'flex', |
| 268 | + flexDirection: 'column', |
| 269 | + alignItems: 'flex-start', |
| 270 | + gap: '20px', |
| 271 | + boxShadow: '0px 1px 2px rgba(16, 24, 40, 0.05)', |
| 272 | + transition: 'all 0.3s ease', |
| 273 | + '&:hover': { |
| 274 | + transform: 'translateY(-4px)', |
| 275 | + boxShadow: '0px 12px 16px -4px rgba(16, 24, 40, 0.08)' |
| 276 | + } |
| 277 | + }} |
| 278 | + > |
| 279 | + <Box |
| 280 | + sx={{ |
| 281 | + width: '48px', |
| 282 | + height: '48px', |
| 283 | + borderRadius: '8px', |
| 284 | + backgroundColor: feature.iconBg, |
| 285 | + display: 'flex', |
| 286 | + alignItems: 'center', |
| 287 | + justifyContent: 'center', |
| 288 | + color: feature.iconColor |
| 289 | + }} |
| 290 | + > |
| 291 | + <IconComponent sx={{ fontSize: '24px' }} /> |
| 292 | + </Box> |
| 293 | + <Box> |
| 294 | + <Typography |
| 295 | + sx={{ |
| 296 | + fontSize: '20px', |
| 297 | + fontWeight: 600, |
| 298 | + color: '#101828', |
| 299 | + fontFamily: 'Inter', |
| 300 | + marginBottom: '8px' |
| 301 | + }} |
| 302 | + > |
| 303 | + {feature.title} |
| 304 | + </Typography> |
| 305 | + <Typography |
| 306 | + sx={{ |
| 307 | + fontSize: '16px', |
| 308 | + color: '#475467', |
| 309 | + fontFamily: 'Inter', |
| 310 | + lineHeight: '24px' |
| 311 | + }} |
| 312 | + > |
| 313 | + {feature.description} |
| 314 | + </Typography> |
| 315 | + </Box> |
| 316 | + </Box> |
| 317 | + ) |
| 318 | + })} |
| 319 | + </Box> |
| 320 | + ) |
| 321 | +} |
0 commit comments