computer-scienceangular-roadmapbackend-roadmapblockchain-roadmapdba-roadmapdeveloper-roadmapdevops-roadmapfrontend-roadmapgo-roadmaphactoberfestjava-roadmapjavascript-roadmapnodejs-roadmappython-roadmapqa-roadmapreact-roadmaproadmapstudy-planvue-roadmapweb3-roadmap
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.1 KiB
64 lines
2.1 KiB
12 months ago
|
import { ExternalLink } from 'lucide-react';
|
||
|
|
||
|
type RoadmapMultiCardProps = {
|
||
|
roadmaps: {
|
||
|
title: string;
|
||
|
link: string;
|
||
|
}[];
|
||
|
description: string;
|
||
|
secondaryRoadmaps?: {
|
||
|
title: string;
|
||
|
link: string;
|
||
|
}[];
|
||
|
secondaryDescription?: string;
|
||
|
};
|
||
|
export function RoadmapMultiCard(props: RoadmapMultiCardProps) {
|
||
|
const { roadmaps, description, secondaryRoadmaps, secondaryDescription } = props;
|
||
|
return (
|
||
|
<div
|
||
|
className="relative flex flex-col overflow-hidden rounded-xl border border-gray-300 bg-gradient-to-br from-gray-100
|
||
|
to-gray-50 ease-in-out"
|
||
|
>
|
||
|
<div className="flex flex-col divide-y">
|
||
|
{roadmaps.map((roadmap, index) => (
|
||
|
<a
|
||
|
target={'_blank'}
|
||
|
key={index}
|
||
|
href={roadmap.link}
|
||
|
className="group text-sm sm:text-base flex w-full items-center justify-between gap-2 bg-gradient-to-br from-gray-100 to-gray-50 px-4 sm:px-5 py-2 transition-colors duration-200"
|
||
|
>
|
||
|
{roadmap.title}
|
||
|
<ExternalLink className="lucide lucide-external-link h-4 text-gray-300 transition group-hover:text-gray-700" />
|
||
|
</a>
|
||
|
))}
|
||
|
</div>
|
||
|
|
||
|
<p className="flex-grow bg-gray-200/70 p-4 sm:p-5 text-sm text-gray-500">
|
||
|
{description}
|
||
|
</p>
|
||
|
|
||
|
{secondaryRoadmaps && (
|
||
|
<div className="flex flex-col divide-y">
|
||
|
{secondaryRoadmaps.map((roadmap, index) => (
|
||
|
<a
|
||
|
target={'_blank'}
|
||
|
key={index}
|
||
|
href={roadmap.link}
|
||
|
className="group text-sm sm:text-base flex w-full items-center justify-between gap-2 bg-gradient-to-br from-gray-100 to-gray-50 px-5 py-2 transition-colors duration-200"
|
||
|
>
|
||
|
{roadmap.title}
|
||
|
<ExternalLink className="lucide lucide-external-link h-4 text-gray-300 transition group-hover:text-gray-700" />
|
||
|
</a>
|
||
|
))}
|
||
|
</div>
|
||
|
)}
|
||
|
|
||
|
{secondaryDescription && (
|
||
|
<p className="flex-grow bg-gray-200/70 p-4 sm:p-5 text-sm text-gray-500">
|
||
|
{secondaryDescription}
|
||
|
</p>
|
||
|
)}
|
||
|
</div>
|
||
|
);
|
||
|
}
|