diff --git a/src/shared/card.tsx b/src/shared/card.tsx
deleted file mode 100644
index 2b79407..0000000
--- a/src/shared/card.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-"use client";
-
-import { cn } from "@/lib/utils";
-import { getCardClasses } from "@/lib/variants/card.presets";
-import type { CardProps } from "@/types/card";
-import * as React from "react";
-
-export const Card = React.forwardRef
((props, ref) => {
- const { className, preset, size = "lg", children, ...native } = props;
-
- if (preset === "specialFeature") {
- const classes = getCardClasses("specialFeature", { size });
- return (
-
- {children}
-
- );
- }
-
- // 기본 카드 (fallback)
- return (
-
- {children}
-
- );
-});
-Card.displayName = "Card";
-
-// 카드 내부 컴포넌트들
-function CardIcon({ className, ...props }: React.ComponentProps<"div">) {
- return (
-
- );
-}
-
-function CardTitle({ className, ...props }: React.ComponentProps<"h3">) {
- return (
-
- );
-}
-
-function CardDescription({ className, ...props }: React.ComponentProps<"p">) {
- return (
-
- );
-}
-
-function CardContent({ className, ...props }: React.ComponentProps<"div">) {
- return ;
-}
-
-function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
- return ;
-}
-
-export { CardContent, CardDescription, CardFooter, CardIcon, CardTitle };
diff --git a/src/styles/globals.css b/src/styles/globals.css
index 12c4d0c..a6061ac 100644
--- a/src/styles/globals.css
+++ b/src/styles/globals.css
@@ -74,6 +74,7 @@
/* === Radius & Shadow === */
--radius-2xl: 1rem;
--shadow-soft: 0 6px 16px rgba(0, 0, 0, 0.08);
+ --shadow-hover: 0 4px 24px rgba(0, 0, 0, 0.12);
}
/* === Tailwind/shadcn 매핑 (Light) ============================
diff --git a/src/types/card.ts b/src/types/card.ts
index 83d0756..6262e90 100644
--- a/src/types/card.ts
+++ b/src/types/card.ts
@@ -1,16 +1,33 @@
import type { HTMLAttributes } from "react";
-export type CardPreset = "specialFeature";
-export type CardSize = "sm" | "md" | "lg" | "xl";
-
+// 공통 베이스
export interface BaseCardProps extends HTMLAttributes {
className?: string;
}
/** specialFeature 전용 */
-export type SpecialFeatureCardProps = BaseCardProps & {
- preset: "specialFeature";
- size?: CardSize;
-};
+export interface SpecialFeatureCardProps extends Omit, "title"> {
+ icon?: React.ReactNode;
+ title?: React.ReactNode;
+ description?: React.ReactNode;
+ children?: React.ReactNode;
+}
+
+/** selectModule 전용 */
+import * as React from "react";
+
+export type SelectModuleCardKind = "module" | "design";
+export type SubtitleState = "select" | "noSelect";
+
+export interface SelectModuleCardProps extends React.HTMLAttributes {
+ title: string; // 한글 제목
+ subtitle?: string; // 영문 서브타이틀
+ description?: string; // 설명
+ imageSrc?: string; // 섬네일 경로
+ imageAlt?: string; // 대체 텍스트
+ kind?: SelectModuleCardKind; // module | design (타이포만 달라짐)
+ subtitleState?: SubtitleState;
+ children?: React.ReactNode;
+}
-export type CardProps = SpecialFeatureCardProps;
+export type CardProps = SpecialFeatureCardProps | SelectModuleCardProps;
diff --git a/src/types/special-feature-card.ts b/src/types/special-feature-card.ts
deleted file mode 100644
index 95383a9..0000000
--- a/src/types/special-feature-card.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import type { HTMLAttributes } from "react";
-
-export interface SpecialFeatureCardProps extends Omit, "title"> {
- icon?: React.ReactNode;
- title?: React.ReactNode;
- description?: React.ReactNode;
- children?: React.ReactNode;
-}