web/components/Title.tsx

29 lines
514 B
TypeScript

/**
* Copyright (c) 2025 misties
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { ComponentChildren, h } from "preact";
interface TitleProps {
level?: 1 | 2 | 3 | 4 | 5 | 6;
children: ComponentChildren;
[key: string]: any;
}
export default function Title({
level = 1,
children,
class: className,
...props
}: TitleProps) {
const Heading = `h${Math.min(Math.max(level, 1), 6)}`;
return h(
Heading,
{
class: `title title-${level} ${className || ""}`,
...props,
},
children,
);
}