Groo Design

Callout

화면 안, 그 기능 · 내용 가까이에 늘 보이는 안내 상자 — 팁 · 제약 · 주의, 그리고 그 자리에서 난 오류(저장 실패). 페이지 전체의 상태는 Page Banner, 잠깐 알릴 결과는 Snackbar, 눌러서 여는 도움말은 Help Bubble 이다.

구조는 당근 SEED Callout(Apache-2.0)을 따른다 — 옅은 톤 바탕 · 아이콘 · 제목 · 본문 · 링크가 한 문단, 상호작용 셋(보이기 · 전체 누르기 · 닫기). 값은 groo 토큰이고, SEED 와 다른 자리는 맨 아래 "SEED 와 다른 점" 에 적었다(2026-10-02 사용자 결정). 옛 Alert(왼쪽 4px 막대) 스펙을 대신한다 — "Alert" 라는 이름은 모달(Alert Dialog)에만 쓴다.

수치 원본은 callout.yaml이다. 수치 표 자리([표: …])와 그림 자리([그림: …])는 사이트가 그 파일로 그린다 — GitHub 에서는 그 파일 · 그림 코드로 가는 링크로 보인다.

9:41
가계부
점점심 식사식비, 현대카드 M−12,000원
거래 추가

저장하지 못했어요. 입력한 내용은 그대로 있어요. 잠시 뒤 다시 저장해 주세요.

12,000원
식비 · 점심
라이트 — 거래 가져오기

안내 가져온 데이터는 기존 거래에 더해지고 덮어쓰지 않아요. 자세히

더치페이 — 분할 합계

총액이 바뀌어 분할 합계와 1,200원 달라요.

거래 추가 — 저장 실패(폼 맨 위)

저장하지 못했어요. 입력한 내용은 그대로 있어요. 잠시 뒤 다시 저장해 주세요.

9:41
가계부
점점심 식사식비, 현대카드 M−12,000원
거래 추가

저장하지 못했어요. 입력한 내용은 그대로 있어요. 잠시 뒤 다시 저장해 주세요.

12,000원
식비 · 점심
다크 — 거래 가져오기

안내 가져온 데이터는 기존 거래에 더해지고 덮어쓰지 않아요. 자세히

더치페이 — 분할 합계

총액이 바뀌어 분할 합계와 1,200원 달라요.

거래 추가 — 저장 실패(폼 맨 위)

저장하지 못했어요. 입력한 내용은 그대로 있어요. 잠시 뒤 다시 저장해 주세요.

가져오기 안내 · 분할 합계 주의 · 저장 실패 — 라이트 · 다크

직접 골라 보기

톤 · 상호작용 · 제목 · 링크를 고르면 스펙대로 그린 상자와 그 코드가 바뀐다. 실제로 누르고 닫을 수 있다.

안내 국내 주식은 15분 늦은 시세예요. 자세히

링크는 보조 내용으로 갈 때만
톤 tone
상호작용 interaction
제목 title
링크 link
본문
모드
브랜드
import { Callout } from "@/components/ui/callout"

<Callout tone="informative" title="안내" link={{ label: "자세히", href: "/guide" }}>
  국내 주식은 15분 늦은 시세예요.
</Callout>

Anatomy

안내 국내 주식은 15분 늦은 시세예요. 자세히

토스증권을 연결하면 보유 주식이 자산에 더해져요.

새 기능 반복 거래를 자동으로 기록할 수 있어요.

ⓐ Containerⓑ Iconⓒ Titleⓓ Descriptionⓔ Linkⓕ Chevron · Close
위는 1.5배 — 제목 · 본문 · 링크가 한 문단으로 흐른다. 아래는 실제 크기 — 전체를 누르는 상자의 뒤 화살표, 닫을 수 있는 상자의 닫기
상자는 아이콘 · 제목 · 본문 · 링크, 뒤 화살표나 닫기
부위설명
ⓐ Container상자 — 콘텐츠 폭 전체, 옅은 톤 바탕 · 모서리 10.
ⓑ Icon앞 아이콘 — 톤 색, 16.
ⓒ Title제목 — 성격을 나타내는 짧은 말(안내 · 주의 · 새 기능). 없어도 된다.
ⓓ Description본문 — 제목 뒤에 한 문단으로 이어진다.
ⓔ Link링크 — 보조 내용으로 갈 때만.
ⓕ Chevron · Close상자 전체를 누르면 뒤 화살표, 닫을 수 있으면 닫기.

부위

부위설명
root상자 — 콘텐츠 폭 전체
icon앞 아이콘 — 톤 색
content제목 · 본문 · 링크 — 한 문단으로 흐른다
title제목 — 성격을 나타내는 짧은 말(안내 · 주의 · 새 기능)
description본문 — 제목을 되풀이하지 않는다
link링크 — 보조 내용으로 갈 때만(밑줄)
suffixIcon뒤 화살표 — 상자 전체를 누르는 Actionable 에만
closeButton닫기 — Dismissible 에만. 이름 "닫기"
focusRing키보드 포커스 링(웹)

Properties

상자

안쪽 14 · 최소 50 · 모서리 10 · 아이콘 16 · 사이 12. 제목 · 본문 · 링크는 모두 14 / 19 이고 한 문단으로 흐른다 — 제목은 700, 사이는 띄어쓰기 두 칸, 링크는 밑줄. 여러 줄이면 아이콘 · 화살표 · 닫기는 상자 가운데에 선다.

안내 국내 주식은 15분 늦은 시세예요. 자세히

새 기능 반복 거래를 자동으로 기록할 수 있어요.

토스증권을 연결하면 보유 주식이 자산에 더해져요. 연결은 언제든 끊을 수 있어요.
실제 크기 — 여러 줄이면 아이콘 · 화살표 · 닫기는 상자 가운데
  • 안쪽 14 · 최소 50 · 모서리 10 · 아이콘 16 · 사이 12
  • 제목 · 본문 · 링크는 모두 14 / 19 — 제목 700, 사이는 띄어쓰기 두 칸(분홍), 링크는 밑줄(글과 2)
  • 닫기는 투명 상자 40(분홍) — 바깥 여백 -12 로 줄 높이를 늘리지 않고, 아이콘 16 은 오른쪽 끝에서 14
상자의 여백 · 한 문단

공통

부위속성값비고
root너비100%
root최소 높이50px
root여백spacing-x3_5 14px
root간격spacing-x3 12px아이콘 ↔ 글 ↔ 뒤 화살표 · 닫기
root모서리radius-r2_5 10px
root세로 맞춤center여러 줄이면 아이콘 · 화살표 · 닫기가 상자 가운데
icon아이콘16pxlucide 선 아이콘 — 톤마다 기본: neutral · informative info, positive circle-check, warning triangle-alert, critical circle-alert(바꾸거나 뺄 수 있다)
title글자text-t4 14px / 19px본문과 한 문단 — 사이는 띄어쓰기 두 칸
title굵기700
description글자text-t4 14px / 19px단어 단위 줄바꿈(v114)
description굵기400
link글자text-t4 14px / 19px
link굵기400
link밑줄underline밑줄과 2 띄움 — 본문과 사이 띄어쓰기 두 칸
suffixIcon뒤 아이콘16pxchevron-right
closeButton크기40px투명 상자 — 바깥 여백 −12 로 줄 높이를 늘리지 않는다. 아이콘은 오른쪽 끝에서 14
closeButton아이콘 크기16px
closeButton모서리radius-r2 8px
closeButton터치 영역40 × 40

Tone

다섯 — neutral(일반) · informative(정보 · 가이드 · 팁) · positive(성공 · 혜택) · warning(주의 · 미리 알릴 문제) · critical(오류 · 바로 조치할 일). 바탕은 옅은 톤(bg-*-weak), 글 · 아이콘 · 링크 · 화살표 · 닫기는 모두 같은 fg-*-contrast 색이다.

가져온 데이터는 기존 거래에 더해지고 덮어쓰지 않아요.

neutral — bg-neutral-weak #F5F6FA · fg-neutral #1A1F2E

안내 국내 주식은 15분 늦은 시세예요. 자세히

informative — bg-informative-weak #EAF3FE · fg-informative-contrast #0F5FB3

분할 합계가 총액과 같아요.

positive — bg-positive-weak #EAF5EC · fg-positive-contrast #026E33

카테고리 한도 합이 전체 상한을 12,000원 넘었어요.

warning — bg-warning-weak #FFEFE8 · fg-warning-contrast #A53E0A

주의 토큰은 지금만 볼 수 있어요. 닫기 전에 복사해 두세요.

critical — bg-critical-weak #FFEFEC · fg-critical-contrast #C01016
라이트글 · 아이콘 · 링크 · 화살표 · 닫기가 모두 그 톤의 글자색

가져온 데이터는 기존 거래에 더해지고 덮어쓰지 않아요.

neutral — bg-neutral-weak #353B4D · fg-neutral #F5F6FA

안내 국내 주식은 15분 늦은 시세예요. 자세히

informative — bg-informative-weak #21344D · fg-informative-contrast #ACCEFB

분할 합계가 총액과 같아요.

positive — bg-positive-weak #223927 · fg-positive-contrast #AED6B6

카테고리 한도 합이 전체 상한을 12,000원 넘었어요.

warning — bg-warning-weak #4B2B1F · fg-warning-contrast #F9BFA9

주의 토큰은 지금만 볼 수 있어요. 닫기 전에 복사해 두세요.

critical — bg-critical-weak #532722 · fg-critical-contrast #FFBCB3
다크글 · 아이콘 · 링크 · 화살표 · 닫기가 모두 그 톤의 글자색
톤 다섯 — 라이트 · 다크

톤

tone배경글자·아이콘설명
neutral (기본)color-bg-neutral-weak #F5F6FA · 다크 #353B4Dcolor-fg-neutral #1A1F2E · 다크 #F5F6FA일반 안내
informativecolor-bg-informative-weak #EAF3FE · 다크 #21344Dcolor-fg-informative-contrast #0F5FB3 · 다크 #ACCEFB — 글 · 아이콘 · 링크 · 화살표 · 닫기가 모두 이 색이해를 돕는 정보 · 가이드 · 팁
positivecolor-bg-positive-weak #EAF5EC · 다크 #223927color-fg-positive-contrast #026E33 · 다크 #AED6B6성공 · 혜택 같은 좋은 소식
warningcolor-bg-warning-weak #FFEFE8 · 다크 #4B2B1Fcolor-fg-warning-contrast #A53E0A · 다크 #F9BFA9주의가 필요한 상태 · 미리 알릴 문제
criticalcolor-bg-critical-weak #FFEFEC · 다크 #532722color-fg-critical-contrast #C01016 · 다크 #FFBCB3오류 · 바로 조치해야 할 일

Interaction

display(보이기만 — 링크를 둘 수 있다) · actionable(상자 전체가 버튼 — 뒤 화살표, 링크는 두지 않는다) · dismissible(닫기 버튼 — 한 번 보면 되는 안내에만).

display 보이기만 — 링크를 둘 수 있다(보조 내용으로 갈 때만)

안내 국내 주식은 15분 늦은 시세예요. 자세히

기본

안내 국내 주식은 15분 늦은 시세예요. 자세히

포커스(키보드) — 링크 둘레(모서리 4)
actionable 상자 전체가 버튼 — 뒤 화살표, 누르면 톤의 누름 바탕 + 상자 전체 2px 축소
토스증권을 연결하면 보유 주식이 자산에 더해져요.
기본
토스증권을 연결하면 보유 주식이 자산에 더해져요.
호버(웹)
토스증권을 연결하면 보유 주식이 자산에 더해져요.
누름
토스증권을 연결하면 보유 주식이 자산에 더해져요.
포커스(키보드)
dismissible 닫기 버튼 — 한 번 보면 되는 안내에만. 닫기의 호버 · 누름은 톤의 누름 바탕

새 기능 반복 거래를 자동으로 기록할 수 있어요.

기본

새 기능 반복 거래를 자동으로 기록할 수 있어요.

닫기 호버(웹)

새 기능 반복 거래를 자동으로 기록할 수 있어요.

닫기 누름

새 기능 반복 거래를 자동으로 기록할 수 있어요.

닫기 포커스(키보드)
보이기 · 전체 누르기 · 닫기

상호작용

interaction설명
display (기본)보이기만 — 링크를 둘 수 있다
actionable상자 전체가 버튼 — 뒤 화살표, 링크는 두지 않는다
dismissible닫기 버튼 — 한 번 보면 되는 안내에만(경고 · 오류는 닫지 못한다)

State

상태모습
enabled옅은 톤 바탕
hovered웹 — Actionable 은 톤의 누름 바탕, 닫기 버튼도
pressedActionable 은 누름 바탕 + 상자 전체 2px 거리 축소, 닫기는 축소
focused웹 — 키보드 포커스에만 링(상자 · 링크 · 닫기 둘레)

상태

상태링 두께링 간격링 색
enabled 기본———
hovered 웹 — Actionable 은 누름 바탕(축소 없음), 닫기 버튼은 누름 바탕———
pressed Actionable 은 누름 바탕 + 상자 전체 2px 거리 축소, 닫기 버튼은 축소———
focused 웹 — 키보드 포커스에만 링2px2px — Actionable 은 상자 둘레, 링크 · 닫기는 그 둘레(모서리 4 · 8)color-stroke-focus-ring #1A1F2E · 다크 #F5F6FA

모션

전환시간곡선대상비고
누름motion-duration-pressed-scale 150msmotion-ease-pressed-scale cubic-bezier(0, 0, 0.15, 1)scale
바탕motion-duration-color-transition 150msmotion-ease-easing cubic-bezier(0.35, 0, 0.35, 1)background-color
닫힘0ms—바로 사라짐닫으면 바로 걷는다(SEED) — 초점은 다음 요소로

Guidelines

어디에 두나

이런 안내쓰는 것
그 기능 · 내용 가까이의 팁 · 제약 · 주의Callout — 본문 안, 그 내용 바로 위
그 자리에서 난 오류(저장 · 제출 실패)Callout critical — 폼 맨 위, 폼은 연 채로
시트 · 대화상자가 열린 채 봐야 할 결과(저장 실패 · 계산 결과)Callout — 그 안 폼 맨 위. 창을 닫으며 끝나는 일은 닫힌 뒤 Snackbar

다른 알림(Snackbar · Page Banner · Result Section · Alert Dialog)과 고르는 표 · 다섯 부품 견주기는 Snackbar 의 "무엇으로 알리나" 한 벌이다(2026-10-22 사용자 결정 3B · 2B — https://claude.ai/artifact/NuEPiLRH2fJidXdKzcDsCX). 몰라도 일은 할 수 있는 긴 설명은 Help Bubble(ⓘ), 입력값 하나가 틀리면 Field 의 오류 문구(칸 아래)다.

9:41
증권
연결 끊김 토스증권 키가 만료돼 시세를 받지 못해요.다시 연결

국내 주식은 15분 늦은 시세예요.

삼삼성전자10주, 국내712,000원
SSK하이닉스2주, 국내452,000원
AApple3주, 해외1,021,500원
관심 종목에 넣었어요.
  1. ①Page Banner페이지 맨 위 · 화면 폭 — 그 페이지 전체의 상태(연결 끊김). 한 화면에 하나
  2. ②Callout본문 안, 그 내용 바로 위 · 콘텐츠 폭 — 그 기능의 안내 · 주의 · 그 자리의 오류
  3. ③Snackbar잠깐 — 방금 한 일의 결과. 화면 아래 가운데, 탭 바 위 8
Callout 은 그 자리 · Page Banner 는 페이지 맨 위 · Snackbar 는 잠깐

닫기는 한 번 보면 되는 안내에만

새 기능 소개처럼 한 번 읽으면 되는 안내만 닫을 수 있게 한다 — 닫은 뒤 같은 안내를 다시 띄우지 않는다(닫음을 기억한다). 경고 · 오류는 닫지 못한다 — 문제가 남아 있는 동안 보여야 한다.

새 기능 반복 거래를 자동으로 기록할 수 있어요.

이렇게 — 새 기능처럼 한 번 읽으면 되는 안내만 닫는다 — 닫은 것을 기억해 다시 띄우지 않는다

카테고리 한도 합이 전체 상한을 12,000원 넘었어요.

312,000원
이렇게 하지 않는다 — 경고를 닫을 수 있게 — 한도는 여전히 넘었는데 안내만 사라진다
닫기 — 새 기능 안내만 · 경고는 닫지 못한다

링크와 전체 누르기

링크는 보조 내용(자세히 · 약관)으로 갈 때만 쓴다 — 행동을 이끌려고 링크를 두지 않는다. 눌러서 어딘가로 가는 게 상자의 목적이면 상자 전체를 누르게(actionable) 하고 링크는 두지 않는다.

본문 아래 버튼

되돌릴 수 있는 할 일이 있는 안내(환불 취소 · 다시 받기)는 본문 아래에 버튼 줄을 둔다(interaction: display 그대로). 본문 ↔ 버튼 8 · 버튼 사이 8 · neutralOutline small. 본문이 여러 줄이면 앞 아이콘은 가운데에 맞춘다. 폼 저장 실패 Callout 은 본문 맨 위에 두고 아래 20 을 띄우며, 끝 흐림을 켠 시트에서는 흐림 아래로 오게 스크롤한다.

글

제목은 성격을 나타내는 짧은 말 — "안내" · "주의" · "새 기능". 본문은 제목을 되풀이하지 않고 해요체 문장에 마침표. 오류는 무엇이 안 됐는지와 할 수 있는 일까지 — "저장하지 못했어요. 입력한 내용은 그대로 있어요. 잠시 뒤 다시 저장해 주세요." 서버가 보낸 글 · 영어 · 코드를 그대로 쓰지 않는다.

코드

레시피 recipes/shadcn/components/ui/callout.tsx 를 쓴다. 아래 미리보기는 스펙 값으로 그린 모습이다.

보이기 — 안내 · 링크

거래 가져오기

안내 가져온 데이터는 기존 거래에 더해지고 덮어쓰지 않아요. 자세히

은행 · 카드사에서 받은 엑셀(.xlsx) · CSV 파일

링크는 Tab 으로 닿고, 키보드 초점에만 링이 보인다.

import { Callout } from "@/components/ui/callout"

<Callout tone="informative" title="안내" link={{ label: "자세히", href: "/guide/import" }}>
  가져온 데이터는 기존 거래에 더해지고 덮어쓰지 않아요.
</Callout>

저장 실패 — 폼 맨 위

거래 추가
원

첫 저장은 실패하게 해 두었다 — 폼 맨 위에 Callout 이 나타나고 입력은 그대로다. 다시 저장하면 폼이 닫히고 목록 위에 스낵바가 뜬다.

{/* 나중에 나타나는 경고 · 위험은 보조 기술에 알린다(role="alert") */}
{saveError && (
  <Callout tone="critical" role="alert">
    저장하지 못했어요. 입력한 내용은 그대로 있어요. 잠시 뒤 다시 저장해 주세요.
  </Callout>
)}

전체 누르기 · 닫기

자산

새 기능 반복 거래를 자동으로 기록할 수 있어요.

회색 상자는 전체가 버튼이라 누르면 증권 연결로 간다. 새 기능 안내는 닫으면 다시 뜨지 않고, 초점은 다음 요소로 간다.

<Callout tone="neutral" interaction="actionable" onClick={openBrokerConnect}>
  토스증권을 연결하면 보유 주식이 자산에 더해져요.
</Callout>

{/* 한 번 보면 되는 안내 — 닫으면 다시 띄우지 않는다 */}
<Callout tone="informative" title="새 기능" interaction="dismissible" open={!seen} onDismiss={markSeen}>
  반복 거래를 자동으로 기록할 수 있어요.
</Callout>

Behavior

인터랙션동작
Actionable 누르기 · Enter · Space상자의 동작을 한다
링크 누르기그 곳으로 간다
닫기바로 사라진다. 초점은 다음 요소로 가고, 닫은 것을 기억해 다시 띄우지 않는다
나중에 나타남(저장 실패)role="alert" 로 보조 기술에 알린다 — 처음부터 있던 안내는 알리지 않는다

Accessibility

기준검증
WCAG 1.4.3 Color contrast(글자 ≥ 4.5:1)fg-*-contrast 옅은 톤 바탕 위 5.65 ~ 5.72 · 다크 7.78 ~ 7.84, neutral 15.20 · 10.32 ✓ — 누름 바탕 위에서도 4.5 이상
WCAG 1.4.11 Non-text contrast(≥ 3:1)상자 면은 장식 — 뜻은 아이콘 · 글이 말한다. 포커스 링 ✓
WCAG 2.5.8 Target Size — Minimum(AA ≥ 24×24)닫기 40 ✓ · 링크는 글 높이 19 ⚠(본문 속 링크는 예외)
WCAG 4.1.3 Status messages나중에 나타나는 경고 · 위험은 role="alert"
ARIADisplay · Dismissible 은 문단. Actionable 은 <button type="button">(이름은 글 전체). 닫기 이름 "닫기", 버튼은 모두 type="button"(폼 안에서 제출되지 않게). 아이콘 · 화살표는 장식

Do / Don't

✅ Do

  • 그 내용 바로 위에, 그 기능의 안내만.
  • 저장 실패는 폼 맨 위 critical — 폼은 연 채로.
  • 눌러서 가는 안내는 상자 전체를 누르게.

❌ Don't

  • 경고 · 오류를 닫을 수 있게.
  • 링크로 행동을 이끌기.
  • 페이지 전체의 상태를 Callout 으로 — Page Banner.
  • 한 화면에 Callout 여럿을 쌓기 — 되도록 가장 중요한 하나를 두고, 나머지는 그 내용 옆(칸 설명 · 줄 설명)으로.

Specification

callout.yaml 의 규칙을 하나도 빼지 않고 조건마다 그린다 — 웹 · 앱이 Callout 을 만들 때 이 값을 그대로 쓴다. 조건이 없는 Base 가 모든 조합에 걸리고, 뒤의 규칙이 앞의 같은 값을 덮는다. 상태는 enabled 에서 바뀌는 값만 적었다.

Base

부위상태속성값
rootenabled최소 높이minHeight50px
너비width100%
여백paddingspacing-x3_514px
간격gapspacing-x312px아이콘 ↔ 글 ↔ 뒤 화살표 · 닫기
세로 맞춤alignItemscenter여러 줄이면 아이콘 · 화살표 · 닫기가 상자 가운데
모서리radiusradius-r2_510px
iconenabled아이콘size16pxlucide 선 아이콘 — 톤마다 기본: neutral · informative info, positive circle-check, warning triangle-alert, critical circle-alert(바꾸거나 뺄 수 있다)
titleenabled글자typographytext-t414px / 19px본문과 한 문단 — 사이는 띄어쓰기 두 칸
굵기fontWeight700
descriptionenabled글자typographytext-t414px / 19px단어 단위 줄바꿈(v114)
굵기fontWeight400
linkenabled글자typographytext-t414px / 19px
굵기fontWeight400
밑줄textDecorationunderline밑줄과 2 띄움 — 본문과 사이 띄어쓰기 두 칸
suffixIconenabled뒤 아이콘size16pxchevron-right
closeButtonenabled크기size40px투명 상자 — 바깥 여백 −12 로 줄 높이를 늘리지 않는다. 아이콘은 오른쪽 끝에서 14
아이콘 크기iconSize16px
모서리radiusradius-r28px
터치 영역touchTarget40 × 40
focusRingfocused링 두께width2px
링 색colorstroke-focus-ringDesk#0147AD다크 #7AA9F6HR#075B3C다크 #2ABE84
링 간격offset2pxActionable 은 상자 둘레, 링크 · 닫기는 그 둘레(모서리 4 · 8)

tone=neutral

부위상태속성값
rootenabled배경backgroundbg-neutral-weak#F5F6FA다크 #353B4D
글자·아이콘foregroundfg-neutral#1A1F2E다크 #F5F6FA

tone=informative

부위상태속성값
rootenabled배경backgroundbg-informative-weak#EAF3FE다크 #21344D
글자·아이콘foregroundfg-informative-contrast#0F5FB3다크 #ACCEFB글 · 아이콘 · 링크 · 화살표 · 닫기가 모두 이 색

tone=positive

부위상태속성값
rootenabled배경backgroundbg-positive-weak#EAF5EC다크 #223927
글자·아이콘foregroundfg-positive-contrast#026E33다크 #AED6B6

tone=warning

부위상태속성값
rootenabled배경backgroundbg-warning-weak#FFEFE8다크 #4B2B1F
글자·아이콘foregroundfg-warning-contrast#A53E0A다크 #F9BFA9

tone=critical

부위상태속성값
rootenabled배경backgroundbg-critical-weak#FFEFEC다크 #532722
글자·아이콘foregroundfg-critical-contrast#C01016다크 #FFBCB3

interaction=actionable

부위상태속성값
rootpressed배율scale2px 거리 축소상자 전체(SEED scaleScope: self) — 모션 줄이기면 하지 않는다
축소 시간scaleDurationmotion-duration-pressed-scale150ms
축소 곡선scaleEasingmotion-ease-pressed-scalecubic-bezier(0, 0, 0.15, 1)

tone=neutral, interaction=actionable

부위상태속성값
roothovered배경backgroundbg-neutral-weak-pressed#EDEFF3다크 #404757
rootpressed배경backgroundbg-neutral-weak-pressed#EDEFF3다크 #404757

tone=informative, interaction=actionable

부위상태속성값
roothovered배경backgroundbg-informative-weak-pressed#D7E6FB다크 #204069
rootpressed배경backgroundbg-informative-weak-pressed#D7E6FB다크 #204069

tone=positive, interaction=actionable

부위상태속성값
roothovered배경backgroundbg-positive-weak-pressed#D8EADB다크 #20482B
rootpressed배경backgroundbg-positive-weak-pressed#D8EADB다크 #20482B

tone=warning, interaction=actionable

부위상태속성값
roothovered배경backgroundbg-warning-weak-pressed#FAE0D5다크 #65321D
rootpressed배경backgroundbg-warning-weak-pressed#FAE0D5다크 #65321D

tone=critical, interaction=actionable

부위상태속성값
roothovered배경backgroundbg-critical-weak-pressed#FFDEDA다크 #722722
rootpressed배경backgroundbg-critical-weak-pressed#FFDEDA다크 #722722

interaction=dismissible

부위상태속성값
closeButtonpressed배율scale2px 거리 축소기준 40 — 모션 줄이기면 하지 않는다
축소 시간scaleDurationmotion-duration-pressed-scale150ms
축소 곡선scaleEasingmotion-ease-pressed-scalecubic-bezier(0, 0, 0.15, 1)

tone=neutral, interaction=dismissible

부위상태속성값
closeButtonhovered배경backgroundbg-neutral-weak-pressed#EDEFF3다크 #404757톤의 누름 바탕 — SEED 투명 누름 색의 불투명 짝
closeButtonpressed배경backgroundbg-neutral-weak-pressed#EDEFF3다크 #404757

tone=informative, interaction=dismissible

부위상태속성값
closeButtonhovered배경backgroundbg-informative-weak-pressed#D7E6FB다크 #204069
closeButtonpressed배경backgroundbg-informative-weak-pressed#D7E6FB다크 #204069

tone=positive, interaction=dismissible

부위상태속성값
closeButtonhovered배경backgroundbg-positive-weak-pressed#D8EADB다크 #20482B
closeButtonpressed배경backgroundbg-positive-weak-pressed#D8EADB다크 #20482B

tone=warning, interaction=dismissible

부위상태속성값
closeButtonhovered배경backgroundbg-warning-weak-pressed#FAE0D5다크 #65321D
closeButtonpressed배경backgroundbg-warning-weak-pressed#FAE0D5다크 #65321D

tone=critical, interaction=dismissible

부위상태속성값
closeButtonhovered배경backgroundbg-critical-weak-pressed#FFDEDA다크 #722722
closeButtonpressed배경backgroundbg-critical-weak-pressed#FFDEDA다크 #722722

SEED 와 다른 점

  • 톤은 다섯 — magic(AI)은 groo 에 AI 기능이 없어 두지 않는다.
  • 아이콘은 lucide 선 아이콘(v106) — SEED 는 채운 아이콘을 권한다.
  • 나중에 나타나는 경고 · 위험은 role="alert" — SEED 는 역할이 없어 알리지 않는다.
  • 버튼은 모두 type="button" — SEED 링크 · 닫기에는 없어 폼 안에서 제출된다.
  • 닫기 버튼의 누름 바탕은 톤의 누름 색(bg-*-weak-pressed) — SEED 투명 누름 색의 불투명 짝.

Migration notes

2026-10-22 — 여럿을 쌓지 않도록 — 갈 곳을 붙였다

Don't "한 화면에 Callout 여럿을 쌓기"(420ae4e — 10-02 알림 비교 페이지에 없다)에 대안을 붙여 권장으로 낮췄다 — 가장 중요한 하나를 두고 나머지는 칸 설명 · 줄 설명으로(남은 규칙 R10). 사용자 결정 — https://claude.ai/artifact/Mag1tEv51MdQHdy1o8hY3L. 값 변경 없음.

2026-10-22 — 알림 고르는 표는 한 벌

"어디에 두나" 표의 다른 부품 줄(Page Banner · Snackbar · Help Bubble · Field)을 걷고 Callout 줄만 남겨, 고르는 표 · 다섯 부품 견주기는 Snackbar 문서 한 벌로 링크한다(3B). 시트 · 대화상자가 열린 채 봐야 할 결과는 그 안 Callout 이라는 줄을 더했다(2B) — 사용자 결정 https://claude.ai/artifact/NuEPiLRH2fJidXdKzcDsCX. 값 변경 없음.

2026-10-02 — SEED Callout 으로 새로 둔다(옛 Alert 를 대신)

사용자가 비교 페이지에서 정했다 — 옅은 톤 바탕 · 모서리 10 · 한 문단 · 톤 다섯 · 닫기는 한 번 보면 되는 안내만, 저장 실패는 폼 맨 위 Callout. 옛 Alert(왼쪽 4px 막대 · 8% 바탕 · 제목 블록)는 걷었다 — 옛 스펙은 alert.history/v-pre-seed-feedback.*.

제품은 앱 적용 단계에서 옮긴다(2026-10-02 조사).

  • Desk 웹 — 공용 Alert 2곳 + 손으로 만든 안내 상자 31(경고 · 위험을 일곱 가지로 그린다). 정의 없는 색 토큰(--fg-danger · --bg-danger-subtle …) 11곳이 회색으로 보이고, 저축 목표 오류 상자는 다크 값이 없다. 화면 소개 카드 넷이 바로 위 머리와 같은 말을 되풀이한다. 만료된 "2026.6까지" 수수료 안내.
  • Desk 앱 — PAlert 5(왼쪽 4px 막대) + 손 상자 20여. 예산 한도 초과를 위험 색으로, 같은 카드 유의사항을 두 모양으로 그린다. 인라인 상자에 보조 기술 알림이 없다.
  • HR 웹 — shadcn Alert 2 + 손 상자 10여. 결재 안내 상자 셋이 번역 키를 그대로 보인다(application.autoApprovalMessage …), 반복 부여 안내에 영어 코드(YEARLY · MONTHLY).

이 페이지