다시 작업. 디자인도 바꾸고 서버도 바꿈. Co-authored-by: monoid <jaeung@prelude.duckdns.org> Reviewed-on: https://git.prelude.duckdns.org/monoid/ionian/pulls/6
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import * as React from "react"
 | 
						|
 | 
						|
import { cn } from "@/lib/utils.ts"
 | 
						|
 | 
						|
const Card = React.forwardRef<
 | 
						|
  HTMLDivElement,
 | 
						|
  React.HTMLAttributes<HTMLDivElement>
 | 
						|
>(({ className, ...props }, ref) => (
 | 
						|
  <div
 | 
						|
    ref={ref}
 | 
						|
    className={cn(
 | 
						|
      "rounded-xl border bg-card text-card-foreground shadow",
 | 
						|
      className
 | 
						|
    )}
 | 
						|
    {...props}
 | 
						|
  />
 | 
						|
))
 | 
						|
Card.displayName = "Card"
 | 
						|
 | 
						|
const CardHeader = React.forwardRef<
 | 
						|
  HTMLDivElement,
 | 
						|
  React.HTMLAttributes<HTMLDivElement>
 | 
						|
>(({ className, ...props }, ref) => (
 | 
						|
  <div
 | 
						|
    ref={ref}
 | 
						|
    className={cn("flex flex-col space-y-1.5 p-6", className)}
 | 
						|
    {...props}
 | 
						|
  />
 | 
						|
))
 | 
						|
CardHeader.displayName = "CardHeader"
 | 
						|
 | 
						|
const CardTitle = React.forwardRef<
 | 
						|
  HTMLParagraphElement,
 | 
						|
  React.HTMLAttributes<HTMLHeadingElement>
 | 
						|
>(({ className, ...props }, ref) => (
 | 
						|
  <h3
 | 
						|
    ref={ref}
 | 
						|
    className={cn("font-semibold leading-none tracking-tight", className)}
 | 
						|
    {...props}
 | 
						|
  />
 | 
						|
))
 | 
						|
CardTitle.displayName = "CardTitle"
 | 
						|
 | 
						|
const CardDescription = React.forwardRef<
 | 
						|
  HTMLParagraphElement,
 | 
						|
  React.HTMLAttributes<HTMLParagraphElement>
 | 
						|
>(({ className, ...props }, ref) => (
 | 
						|
  <p
 | 
						|
    ref={ref}
 | 
						|
    className={cn("text-sm text-muted-foreground", className)}
 | 
						|
    {...props}
 | 
						|
  />
 | 
						|
))
 | 
						|
CardDescription.displayName = "CardDescription"
 | 
						|
 | 
						|
const CardContent = React.forwardRef<
 | 
						|
  HTMLDivElement,
 | 
						|
  React.HTMLAttributes<HTMLDivElement>
 | 
						|
>(({ className, ...props }, ref) => (
 | 
						|
  <div ref={ref} className={cn("p-6 pt-0", className)} {...props} />
 | 
						|
))
 | 
						|
CardContent.displayName = "CardContent"
 | 
						|
 | 
						|
const CardFooter = React.forwardRef<
 | 
						|
  HTMLDivElement,
 | 
						|
  React.HTMLAttributes<HTMLDivElement>
 | 
						|
>(({ className, ...props }, ref) => (
 | 
						|
  <div
 | 
						|
    ref={ref}
 | 
						|
    className={cn("flex items-center p-6 pt-0", className)}
 | 
						|
    {...props}
 | 
						|
  />
 | 
						|
))
 | 
						|
CardFooter.displayName = "CardFooter"
 | 
						|
 | 
						|
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
 |