From 1a2241c40e10193c5ff7008a7b7b36cc1d855d96 Mon Sep 17 00:00:00 2001
From: joonhoekim <26rote@gmail.com>
Date: Tue, 25 Mar 2025 15:55:45 +0900
Subject: initial commit

---
 components/shell.tsx | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 components/shell.tsx

(limited to 'components/shell.tsx')

diff --git a/components/shell.tsx b/components/shell.tsx
new file mode 100644
index 00000000..8082109b
--- /dev/null
+++ b/components/shell.tsx
@@ -0,0 +1,37 @@
+import * as React from "react"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const shellVariants = cva("grid items-center gap-8 pb-8 pt-6 md:py-8", {
+  variants: {
+    variant: {
+      default: "container",
+      sidebar: "",
+      centered: "container flex h-dvh max-w-2xl flex-col justify-center py-16",
+      markdown: "container max-w-3xl py-8 md:py-10 lg:py-10",
+    },
+  },
+  defaultVariants: {
+    variant: "default",
+  },
+})
+
+interface ShellProps
+  extends React.HTMLAttributes<HTMLDivElement>,
+    VariantProps<typeof shellVariants> {
+  as?: React.ElementType
+}
+
+function Shell({
+  className,
+  as: Comp = "section",
+  variant,
+  ...props
+}: ShellProps) {
+  return (
+    <Comp className={cn(shellVariants({ variant }), className)} {...props} />
+  )
+}
+
+export { Shell, shellVariants }
-- 
cgit v1.2.3

