website/components/Section.tsx

31 lines
844 B
TypeScript
Raw Permalink Normal View History

2025-11-06 12:02:10 +00:00
"use client";
import { type ReactNode } from "react";
type Props = {
id?: string;
title: string;
children: ReactNode;
};
export default function Section({ id, title, children }: Props) {
return (
<section id={id} className="mx-auto max-w-6xl px-4 py-14 sm:px-6">
<h2 className="text-2xl font-semibold tracking-tight text-zinc-900 opacity-0 animate-[fadein_500ms_ease-out_forwards] dark:text-zinc-100 sm:text-3xl">
{title}
</h2>
<div className="mt-5 text-zinc-700 opacity-0 animate-[fadein_500ms_ease-out_forwards] [animation-delay:60ms] dark:text-zinc-300">
{children}
</div>
<style jsx>{`
@keyframes fadein {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: translateY(0); }
}
`}</style>
</section>
);
}