Banner
배너는 화면 맨 위에서 서비스 전체에 영향을 주는 중요한 메시지를 알려줘요.
설치
pnpm dlx shadcn@latest add https://rebar.conmarket-landing.workers.dev/r/steel/banner.jsonclass-variance-authority 를 설치하고 아래 코드를 components/ui/banner.tsx 에 복사해요.
Examples
Appearance
배너는 세 가지 appearance 를 가져요. 기본값은 warning 이에요.
| Appearance | 배경 토큰 | 용도 |
|---|---|---|
warning | color.background.warning.bold | 곧 문제가 생기거나 사용자의 조치가 필요할 때 |
error | color.background.danger.bold | 지금 바로 확인해야 하는 심각한 문제 |
announcement | color.background.neutral.bold | 관리자가 알리는 일반 공지. 아이콘 없이 써요. |
배너 안의 링크는 글자색을 그대로 쓰고 항상 밑줄로 표시돼요.
Truncation
배너 높이는 48px 로 고정돼 있어요. 내용이 화면 너비를 넘으면 말줄임표로 잘리고, 펼쳐 볼 방법이 없어요.
Usage guidelines
배너는 데이터 손실, 기능 중단처럼 서비스를 쓰는 데 직접 영향을 주는 내용을 화면 맨 위에서 알릴 때만 써요. 한 번에 하나만 보여주고, 상황이 해결되면 사라지게 해요. 사용자가 직접 닫을 수는 없어요.
배너는 세 부분으로 이뤄져요.
- 아이콘: 경고나 오류 아이콘만 써요.
- 메시지: 문제가 얼마나 심각한지, 어떤 기능에 영향이 있는지, 어떻게 해결하는지 짧게 써요.
- 액션(선택): 다음 단계로 가는 링크. 도움말 문서는 새 탭에서 열어요.
Do· 꼭 필요할 때만
결제 만료, 점검, 연결 끊김처럼 모든 사용자에게 중요한 정보에만 써요.
Don't· 여러 개 동시에
배너를 여러 개 쌓거나 닫기 버튼을 달지 마세요.
- 문구는 짧게 써요. 잘린 내용은 사용자가 펼쳐 볼 수 없어요.
- 서비스 쪽 문제라면 "연결이 끊겼어요"처럼 사용자를 탓하지 않는 표현을 써요.
- 가능하면 문제를 해결할 수 있는 후속 액션을 함께 제공해요.
- 이벤트 뒤에 잠깐 보여주는 알림은 Flag, 특정 영역에 대한 안내는 Section Message 를 써요.
Accessibility
- 배너는
role="alert"라이브 영역이에요. 포커스를 옮기지 않고 스크린 리더가 바로 읽어줘요. 자주 쓰면 방해가 되니 아주 중요한 메시지에만 써요. - 색만으로 심각도를 전달하지 마세요. 경고·오류 아이콘에는
aria-label을 달아줘요. - 포커스를 가져가야 하거나 알림이 아닌 내용은 배너 대신 직접 레이아웃을 구성해요.
Props
Prop
Type