본문으로 건너뛰기
TDSMoring 디자인 시스템

Card

옅은 주색 틴트(card)를 깐 둥근 상자다. 안내, 요약, 눌러서 이동하는 카드에 쓴다.

이 페이지의 목차
분류
면과 목록
가져오기
import { Card } from '@/ui/layout'
코드 위치
apps/mobile/src/ui/layout.tsx:80

미리보기#

실제 컴포넌트를 화면에 그린 것이다. 화면 아래의 서비스 색 선택기로 색을 바꿔 볼 수 있다. 버튼과 입력 칸은 직접 눌러 볼 수 있다.

오늘의 복습12문제 · 약 8분
기본
복습 추천
tone: amberSoft
누르는 카드

언제 쓰는가#

쓴다

  • 홈의 복습 카드, 과목 행처럼 흰 배경 위에 옅은 색으로 묶어 보여 줄 때 쓴다.
  • onPress를 넘기면 누를 수 있는 카드가 된다.
  • tone으로 바탕색을 바꿀 수 있다(amberSoft 등).

쓰지 않는다

  • 카드 안에 카드를 넣지 않는다.
  • 흰 패널이 필요한 리포트·설정에는 쓰지 않는다. Panel을 쓴다.
  • 그림자가 필요하면 쓰지 않는다. Card에는 그림자가 없다.

종류#

Card 종류
이름설명
기본card 바탕.
tonetone으로 바탕색을 지정한다. 예: 복습 추천 카드는 color.amberSoft.
누르는 카드onPress가 있으면 버튼으로 동작한다.

크기#

Card 크기
이름값설명
기본안쪽 여백 16, 모서리 20크기는 내용이 정한다.

상태#

오늘의 복습
기본
Card 상태
상태모습과 동작
기본기본 모습이다.
누름onPress가 있을 때 투명도 0.85.

사용 방법#

기본

기본
import { Card } from '@/ui/layout';

<Card onPress={() => router.push('/review')} accessibilityLabel="오늘의 복습">
  <AppText variant="headline">오늘의 복습</AppText>
</Card>

속성(props)#

Card 속성
이름타입기본값필수설명
childrenReactNode—필수카드 안의 내용.
styleStyleProp<ViewStyle>—선택바깥 여백이나 배치만 바꾸는 React Native 스타일이다.
tonestringcolor.card선택바탕색. 기본 color.card.
onPress() => void—선택있으면 누를 수 있는 카드가 된다.
accessibilityLabelstring—선택누르는 카드의 이름. 안의 글자와 다르게 읽히게 할 때만 쓴다.

치수와 토큰#

모서리
radius.card(20)
안쪽 여백
space.lg(16)
바탕
card
누름
투명도 0.85

접근성#

  • onPress가 있으면 button 역할이다. 이름은 accessibilityLabel 또는 안의 글자.

글자 색 대비

글자 크기별 기준: 작은 글자는 4.5:1 이상, 큰 글자(굵은 18.66px 이상)는 3:1 이상이다. 값은 선택한 서비스와 모드의 토큰으로 계산했다.

Card 글자 색 대비
쓰임글자색바탕대비기준
카드 위 본문textcard15.96:1 통과14.29:1 통과15.67:1 통과9.43:1 통과4.5:1 (작은 글자)
카드 위 보조 글자 (13px)textSecondarycard3.94:1 미달6.51:1 통과4.74:1 통과6.14:1 통과4.5:1 (작은 글자)

잘한 예와 잘못한 예#

오늘의 복습12문제
잘한 예카드 안은 제목과 보조 한 줄로 단순하게.
안쪽 카드
잘못한 예카드 안에 카드를 넣으면 경계가 겹쳐 복잡해 보인다.
  • Panel: 회색 바탕(canvas) 위에 놓는 흰 패널이다. 제목 줄(제목, 설명 아이콘, 오른쪽 링크)과 내용을 담는다. 리포트와 시험 계획 화면의 기본 면이다.
  • WellRow: 패널 안의 목록 한 줄이다. 옅은 홈(well)에 앞 아이콘 타일, 제목, 보조 줄, 뒤 요소가 놓인다.
  • Notice: 화면 안에 끼워 넣는 한 줄 안내 상자다. 안내(파랑), 주의(주황), 오류(빨강) 세 가지 톤이 있다.