Page Banner 페이지 상단에 위치하며 사용자에게 전체적인 상태나 중요한 메시지를 전달하는 상위 레벨 메시지 컴포넌트입니다.
미리보기 코드
import { VStack } from "@seed-design/react" ;
import {
ActionablePageBanner,
DismissiblePageBanner,
PageBanner,
} from "seed-design/ui/page-banner" ;
export default function PageBannerPreview () {
return (
< VStack gap = "x4" width = "full" >
< PageBanner description = "Ut veniam in ea ea anim laborum magna dolore ea laborum duis ut aute mollit amet." />
< ActionablePageBanner description = "Ut veniam in ea ea anim laborum magna dolore ea laborum duis ut aute mollit amet." />
< DismissiblePageBanner description = "Ut veniam in ea ea anim laborum magna dolore ea laborum duis ut aute mollit amet." />
</ VStack >
);
}
npx @seed-design/cli@latest add page-banner
Prop Type Default prefixIcon?
ReactNode
- title?
ReactNode
- description?
ReactNode
- suffix?
ReactNode
- variant?
"weak" | "solid"
"weak"
tone?
"neutral" | "informative" | "positive" | "warning" | "critical"
"neutral"
Prop Type Default boolean
false
Prop Type Default prefixIcon?
ReactNode
- title?
ReactNode
- description?
ReactNode
- variant?
"weak" | "solid"
"weak"
tone?
"neutral" | "informative" | "positive" | "warning" | "critical"
"neutral"
Prop Type Default prefixIcon?
ReactNode
- title?
ReactNode
- description?
ReactNode
- variant?
"weak" | "solid"
"weak"
tone?
"neutral" | "informative" | "positive" | "warning" | "critical"
"neutral"
defaultOpen?
boolean
- open?
boolean
- onDismiss?
(() => void)
-
PageBanner
의 suffix
prop에 PageBannerButton
을 전달하여 버튼을 추가할 수 있습니다.
미리보기 코드
import { PageBanner, PageBannerButton } from "seed-design/ui/page-banner" ;
export default function PageBannerWithButton () {
return (
< PageBanner
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >자세히 보기</ PageBannerButton >}
/>
);
}
미리보기 코드
import { PageBanner, PageBannerButton } from "seed-design/ui/page-banner" ;
export default function PageBannerButtonAsChild () {
return (
< PageBanner
description = "사업자 정보를 등록해주세요."
suffix = {
< PageBannerButton asChild >
< a href = "https://www.daangn.com" target = "_blank" rel = "noreferrer" >
새 탭에서 열기
</ a >
</ PageBannerButton >
}
/>
);
}
미리보기 코드
import { IconExclamationmarkCircleFill } from "@karrotmarket/react-monochrome-icon" ;
import {
ActionablePageBanner,
DismissiblePageBanner,
PageBanner,
PageBannerButton,
} from "seed-design/ui/page-banner" ;
export default function PageBannerNeutral () {
return (
< div className = "w-full grid grid-cols-2 items-start gap-4" >
< PageBanner
tone = "neutral"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< PageBanner
tone = "neutral"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< ActionablePageBanner
tone = "neutral"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< ActionablePageBanner
tone = "neutral"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "neutral"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "neutral"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
</ div >
);
}
미리보기 코드
import { IconExclamationmarkCircleFill } from "@karrotmarket/react-monochrome-icon" ;
import {
ActionablePageBanner,
DismissiblePageBanner,
PageBanner,
PageBannerButton,
} from "seed-design/ui/page-banner" ;
export default function PageBannerPositive () {
return (
< div className = "w-full grid grid-cols-2 items-start gap-4" >
< PageBanner
tone = "positive"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< PageBanner
tone = "positive"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< ActionablePageBanner
tone = "positive"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< ActionablePageBanner
tone = "positive"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "positive"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "positive"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
</ div >
);
}
미리보기 코드
import { IconExclamationmarkCircleFill } from "@karrotmarket/react-monochrome-icon" ;
import {
ActionablePageBanner,
DismissiblePageBanner,
PageBanner,
PageBannerButton,
} from "seed-design/ui/page-banner" ;
export default function PageBannerInformative () {
return (
< div className = "w-full grid grid-cols-2 items-start gap-4" >
< PageBanner
tone = "informative"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< PageBanner
tone = "informative"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< ActionablePageBanner
tone = "informative"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< ActionablePageBanner
tone = "informative"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "informative"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "informative"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
</ div >
);
}
미리보기 코드
import { IconExclamationmarkCircleFill } from "@karrotmarket/react-monochrome-icon" ;
import {
ActionablePageBanner,
DismissiblePageBanner,
PageBanner,
PageBannerButton,
} from "seed-design/ui/page-banner" ;
export default function PageBannerWarning () {
return (
< div className = "w-full grid grid-cols-2 items-start gap-4" >
< PageBanner
tone = "warning"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< PageBanner
tone = "warning"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< ActionablePageBanner
tone = "warning"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< ActionablePageBanner
tone = "warning"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "warning"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "warning"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
</ div >
);
}
미리보기 코드
import { IconExclamationmarkCircleFill } from "@karrotmarket/react-monochrome-icon" ;
import {
ActionablePageBanner,
DismissiblePageBanner,
PageBanner,
PageBannerButton,
} from "seed-design/ui/page-banner" ;
export default function PageBannerCritical () {
return (
< div className = "w-full grid grid-cols-2 items-start gap-4" >
< PageBanner
tone = "critical"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< PageBanner
tone = "critical"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
suffix = {< PageBannerButton >등록하기</ PageBannerButton >}
/>
< ActionablePageBanner
tone = "critical"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< ActionablePageBanner
tone = "critical"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "critical"
variant = "weak"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
< DismissiblePageBanner
tone = "critical"
variant = "solid"
prefixIcon = {< IconExclamationmarkCircleFill />}
title = "미노출"
description = "사업자 정보를 등록해주세요."
/>
</ div >
);
}