{
+ icon?: ReactNode;
+ children: ReactNode;
+ className?: string;
+}
+
+export function CardTitle({
+ icon,
+ children,
+ className = "",
+ gap,
+ textSize,
+ fontWeight,
+ textColor,
+ lineHeight,
+}: CardTitleProps) {
+ return (
+
+ {icon}
+
+ {children}
+
+
+ );
+}
diff --git a/frontend/src/ui/card.tsx b/frontend/src/ui/card.tsx
new file mode 100644
index 0000000000..519cbd5730
--- /dev/null
+++ b/frontend/src/ui/card.tsx
@@ -0,0 +1,46 @@
+import { ReactNode } from "react";
+import { cva, type VariantProps } from "class-variance-authority";
+import { cn } from "#/utils/utils";
+
+const cardVariants = cva(
+ "w-full flex flex-col rounded-[12px] p-[20px] border border-[#727987] bg-[#26282D] relative",
+ {
+ variants: {
+ gap: {
+ default: "gap-[10px]",
+ large: "gap-6",
+ },
+ minHeight: {
+ default: "min-h-[286px] md:min-h-auto",
+ small: "min-h-[263.5px]",
+ },
+ },
+ defaultVariants: {
+ gap: "default",
+ minHeight: "default",
+ },
+ },
+);
+
+interface CardProps extends VariantProps {
+ children: ReactNode;
+ className?: string;
+ testId?: string;
+}
+
+export function Card({
+ children,
+ className = "",
+ testId,
+ gap,
+ minHeight,
+}: CardProps) {
+ return (
+
+ {children}
+
+ );
+}
diff --git a/frontend/src/ui/typography.tsx b/frontend/src/ui/typography.tsx
index b0db531106..54687139b2 100644
--- a/frontend/src/ui/typography.tsx
+++ b/frontend/src/ui/typography.tsx
@@ -5,6 +5,7 @@ const typographyVariants = cva("", {
variants: {
variant: {
h1: "text-[32px] text-white font-bold leading-5",
+ span: "text-sm font-normal text-white leading-5.5",
},
},
defaultVariants: {
@@ -49,5 +50,18 @@ export function H1({
);
}
-// Attach H1 to Typography for the expected API
+export function Text({
+ className,
+ testId,
+ children,
+}: Omit) {
+ return (
+
+ {children}
+
+ );
+}
+
+// Attach components to Typography for the expected API
Typography.H1 = H1;
+Typography.Text = Text;