summaryrefslogtreecommitdiff
path: root/apps/web/src/components/ui/prose.tsx
diff options
context:
space:
mode:
authorDominik Koch <dominik@koch-bautechnik.de>2025-07-21 23:18:07 +0200
committerDominik Koch <dominik@koch-bautechnik.de>2025-07-21 23:18:07 +0200
commite21c4674890a6f4b33d5623c19957b0741cde572 (patch)
treeb11f6e9324b68e8e1f9cba73186209032c20b4c0 /apps/web/src/components/ui/prose.tsx
parent1b3d42b2a92a6c4ba65fbc6378d193570a530d97 (diff)
downloadopencut-e21c4674890a6f4b33d5623c19957b0741cde572.tar.gz
feat: add opencut blog
Diffstat (limited to 'apps/web/src/components/ui/prose.tsx')
-rw-r--r--apps/web/src/components/ui/prose.tsx22
1 files changed, 22 insertions, 0 deletions
diff --git a/apps/web/src/components/ui/prose.tsx b/apps/web/src/components/ui/prose.tsx
new file mode 100644
index 00000000..c25a5a65
--- /dev/null
+++ b/apps/web/src/components/ui/prose.tsx
@@ -0,0 +1,22 @@
+import { cn } from "@/lib/utils";
+import type React from "react";
+
+type ProseProps = React.HTMLAttributes<HTMLElement> & {
+ as?: "article";
+ html: string;
+};
+
+function Prose({ children, html, className }: ProseProps) {
+ return (
+ <article
+ className={cn(
+ "prose prose-h2:font-semibold max-w-none prose-h1:text-xl prose-a:text-blue-600 prose-p:text-justify dark:prose-invert mx-auto",
+ className
+ )}
+ >
+ {html ? <div dangerouslySetInnerHTML={{ __html: html }} /> : children}
+ </article>
+ );
+}
+
+export default Prose;