website refactor

This commit is contained in:
2026-01-17 02:32:34 +01:00
parent 6a49448e0a
commit 4d5ce9bfd6
43 changed files with 1642 additions and 2022 deletions

View File

@@ -47,53 +47,55 @@ export function TeamCard({
onClick,
}: TeamCardProps) {
return (
<Box onClick={onClick} h="full" cursor={onClick ? 'pointer' : 'default'}>
<Card h="full" p={0} display="flex" flexDirection="col" overflow="hidden">
<Box onClick={onClick} h="full" cursor={onClick ? 'pointer' : 'default'} className="group">
<Card h="full" p={0} display="flex" flexDirection="col" overflow="hidden" className="bg-panel-gray/40 border-border-gray/50 hover:border-primary-accent/30 hover:bg-panel-gray/60 transition-all duration-300">
{/* Header with Logo */}
<Box p={4} pb={0}>
<Box p={5} pb={0}>
<Stack direction="row" align="start" gap={4}>
{/* Logo */}
<Box
w="14"
h="14"
rounded="lg"
bg="bg-deep-graphite"
w="16"
h="16"
rounded="none"
bg="graphite-black"
display="flex"
center
overflow="hidden"
border
borderColor="border-charcoal-outline"
borderColor="border-gray/50"
className="relative"
>
{logo ? (
<Image
src={logo}
alt={name}
width={56}
height={56}
width={64}
height={64}
fullWidth
fullHeight
objectFit="cover"
/>
) : (
<PlaceholderImage size={56} />
<PlaceholderImage size={64} />
)}
<Box position="absolute" top="-1px" left="-1px" w="2" h="2" borderTop borderLeft borderColor="primary-accent/30" />
</Box>
{/* Title & Badges */}
<Box flexGrow={1} minWidth="0">
<Stack direction="row" align="start" justify="between" gap={2}>
<Heading level={4}>
<Heading level={4} weight="bold" fontSize="lg" className="tracking-tight group-hover:text-primary-accent transition-colors">
{name}
</Heading>
{isRecruiting && (
<Badge variant="success" icon={UserPlus}>
Recruiting
<Badge variant="success" size="xs">
RECRUITING
</Badge>
)}
</Stack>
{/* Performance Level & Category */}
<Stack direction="row" align="center" gap={2} wrap mt={1.5}>
<Stack direction="row" align="center" gap={2} wrap mt={2}>
{performanceBadge}
{specializationContent}
{categoryBadge}
@@ -103,48 +105,43 @@ export function TeamCard({
</Box>
{/* Content */}
<Box p={4} display="flex" flexDirection="col" flexGrow={1}>
<Box p={5} display="flex" flexDirection="col" flexGrow={1}>
{/* Description */}
<Text
size="xs"
color="text-gray-500"
mb={3}
mb={4}
lineClamp={2}
block
leading="relaxed"
style={{ height: '2.5rem' }}
>
{description || 'No description available'}
</Text>
{/* Region & Languages */}
{(region || languagesContent) && (
<Stack direction="row" align="center" gap={2} wrap mb={3}>
<Stack direction="row" align="center" gap={2} wrap mb={4}>
{region && (
<Box
display="flex"
alignItems="center"
gap={1.5}
gap={2}
px={2}
py={1}
rounded="md"
bg="bg-iron-gray/50"
rounded="none"
bg="panel-gray/20"
border
style={{ borderColor: 'rgba(38, 38, 38, 0.3)' }}
borderColor="border-gray/30"
>
<Icon icon={Globe} size={3} color="var(--neon-aqua)" />
<Text size="xs" color="text-gray-400">{region}</Text>
<Icon icon={Globe} size={3} color="text-primary-accent" />
<Text size="xs" color="text-gray-400" weight="bold" className="uppercase tracking-widest">{region}</Text>
</Box>
)}
{languagesContent}
</Stack>
)}
{/* Stats Grid */}
{statsContent && (
<Box display="grid" gridCols={3} gap={2} mb={4}>
{statsContent}
</Box>
)}
{/* Spacer */}
<Box flexGrow={1} />
@@ -153,21 +150,21 @@ export function TeamCard({
display="flex"
alignItems="center"
justifyContent="between"
pt={3}
pt={4}
borderTop
style={{ borderColor: 'rgba(38, 38, 38, 0.5)' }}
borderColor="border-gray/30"
mt="auto"
>
<Stack direction="row" align="center" gap={2}>
<Icon icon={Users} size={3} color="var(--text-gray-600)" />
<Text size="xs" color="text-gray-500">
{memberCount} {memberCount === 1 ? 'member' : 'members'}
<Icon icon={Users} size={3} color="text-gray-500" />
<Text size="xs" color="text-gray-500" font="mono">
{memberCount} {memberCount === 1 ? 'MEMBER' : 'MEMBERS'}
</Text>
</Stack>
<Stack direction="row" align="center" gap={1}>
<Text size="xs" color="text-gray-500">View</Text>
<Icon icon={ChevronRight} size={3} color="var(--text-gray-600)" />
<Stack direction="row" align="center" gap={1} className="group-hover:text-primary-accent transition-colors">
<Text size="xs" color="text-gray-500" weight="bold" className="uppercase tracking-widest">VIEW</Text>
<Icon icon={ChevronRight} size={3} color="text-gray-500" className="transition-transform group-hover:translate-x-0.5" />
</Stack>
</Box>
</Box>