Add MovieCard component for displaying movie details with image, title, overview, release date, and popularity; update global styles to use utility classes for column layout.
This commit is contained in:
parent
1154e0287f
commit
a7875db58b
|
|
@ -1,5 +1,4 @@
|
||||||
@import "tailwindcss";
|
@import "tailwindcss";
|
||||||
@import "tw-animate-css";
|
|
||||||
|
|
||||||
@custom-variant dark (&:is(.dark *));
|
@custom-variant dark (&:is(.dark *));
|
||||||
|
|
||||||
|
|
@ -38,53 +37,9 @@
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
margin: 0 -15px;
|
margin: 0 -15px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
.col-12 {
|
|
||||||
width: 100%;
|
@utility col-* {
|
||||||
padding: 0 15px;
|
width: calc(--value(integer) / 0.12 * 1%);
|
||||||
}
|
padding: 0 15px;
|
||||||
.col-11 {
|
|
||||||
width: 91.6666666667%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-10 {
|
|
||||||
width: 83.3333333333%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-9 {
|
|
||||||
width: 75%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-8 {
|
|
||||||
width: 66.6666666667%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-7 {
|
|
||||||
width: 58.3333333333%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-6 {
|
|
||||||
width: 50%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-5 {
|
|
||||||
width: 41.6666666667%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-4 {
|
|
||||||
width: 33.3333333333%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-3 {
|
|
||||||
width: 25%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-2 {
|
|
||||||
width: 16.6666666667%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
.col-1 {
|
|
||||||
width: 8.3333333333%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
import { FC } from "react";
|
||||||
|
import { ReadMore } from "../ReadMore";
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
title: string;
|
||||||
|
overview: string;
|
||||||
|
releaseDate: string;
|
||||||
|
popularity: number;
|
||||||
|
imagePath: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const MovieCard: FC<Props> = ({
|
||||||
|
title,
|
||||||
|
releaseDate,
|
||||||
|
popularity,
|
||||||
|
overview,
|
||||||
|
imagePath,
|
||||||
|
}) => {
|
||||||
|
return (
|
||||||
|
<div className="flex w-full shadow-md rounded-lg overflow-hidden mx-auto">
|
||||||
|
<div className="overflow-hidden rounded-xl relative movie-item text-white movie-card">
|
||||||
|
<div className="absolute inset-0 z-10 bg-gradient-to-t from-black via-gray-900 to-transparent"></div>
|
||||||
|
<div className="relative cursor-pointer group z-10 p-6 space-y-6 h-full">
|
||||||
|
<div className="align-self-end w-full h-full flex flex-col">
|
||||||
|
<div className="h-64"></div>
|
||||||
|
<div className="flex flex-col space-y-2 inner mb-4">
|
||||||
|
<h3
|
||||||
|
className="text-lg leading-[1.3] font-bold text-white line-clamp-1"
|
||||||
|
title={title}
|
||||||
|
>
|
||||||
|
{title}
|
||||||
|
</h3>
|
||||||
|
<div className="text-xs text-gray-400">
|
||||||
|
<ReadMore text={overview} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex flex-row justify-between mt-auto">
|
||||||
|
<div className="flex flex-col datos_col">
|
||||||
|
<div className="text-sm text-gray-400">Popularity:</div>
|
||||||
|
<div className="popularity">{popularity}</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex flex-col datos_col">
|
||||||
|
<div className="text-sm text-gray-400">Release date:</div>
|
||||||
|
<div className="release">{releaseDate}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<figure className="absolute inset-0 w-full bottom-[20%]">
|
||||||
|
<img
|
||||||
|
className="w-full h-96 object-cover"
|
||||||
|
src={`http://image.tmdb.org/t/p/w342/${imagePath}`}
|
||||||
|
/>
|
||||||
|
</figure>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue