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

CheckCircle

할 일을 완료로 바꾸는 동그란 체크 표시다. 비어 있다가 누르면 색이 채워지며 체크가 나타난다.

이 페이지의 목차
분류
Calendar 앱
가져오기
import { CheckCircle } from '@/cal/ui'
코드 위치
apps/calendar/src/cal/ui.tsx:93

미리보기#

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

눌러서 바꾸기
과목 색

언제 쓰는가#

쓴다

  • 이 컴포넌트는 Mordy Calendar 앱(apps/calendar/src/cal)에만 있다.
  • 할 일과 Mordy 계획 행의 앞에 쓴다. 과목이나 캘린더 색을 tint로 준다.
  • 완료는 항상 같은 모양이어야 하므로 이 컴포넌트만 쓴다.

쓰지 않는다

  • 설정을 켜고 끄는 데 쓰지 않는다. SettingsSwitch를 쓴다.
  • 눌러도 바뀌지 않아야 할 때(권한 없음)는 disabled로 둔다. 색으로만 비활성을 알리지 않는다.

종류#

종류가 없다. tint로 색을 바꾼다. 기본은 primary.

크기#

CheckCircle 크기
이름값설명
기본24 × 24, 선 2hitSlop 10으로 누르는 영역이 44 × 44가 된다.

상태#

비어 있음
완료
비활성
CheckCircle 상태
상태모습과 동작
비어 있음2px lineStrong 테두리의 빈 원.
완료tint로 채워지고 흰 체크(14px, 선 3).
비활성disabled이면 눌러도 반응하지 않는다.

사용 방법#

기본

기본
import { CheckCircle } from '@/cal/ui';

<CheckCircle done={item.done} tint={itemTint(item, lookups)} label={`${item.title} 완료`} onPress={toggle} />

속성(props)#

CheckCircle 속성
이름타입기본값필수설명
doneboolean—필수완료인지.
onPress() => void—선택눌렀을 때 호출된다(가벼운 진동 haptic.tap).
tintstringcolor.primary선택완료일 때 채우는 색. 기본 color.primary.
labelstring—필수접근성 이름. 필수. 예: "수학 숙제 완료".
disabledboolean—선택true이면 누를 수 없다.

치수와 토큰#

모양
24 × 24 원, 선 2, 비었을 때 lineStrong, 완료 시 tint 채움
체크
Check 14px, 선 3, white
누르는 영역
hitSlop 10, 물결은 원형(borderless)

접근성#

  • 역할은 checkbox이고 상태 checked, disabled가 전달된다. 이름은 label이다.
  • 완료는 색과 체크 표시로 함께 나타낸다.
  • 앱은 터치 화면이라 마우스 올림(hover)이 없다. 웹에서는 포커스 링(2.5px 실선, 바깥 3px)을 직접 그린다.

글자 색 대비

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

CheckCircle 글자 색 대비
쓰임글자색바탕대비기준
완료 체크 (비글자)whiteprimary3.93:1 통과3.31:1 통과4.60:1 통과1.98:1 미달3:1 (큰 글자)

잘한 예와 잘못한 예#

잘한 예label에 무엇을 완료하는지 쓴다.
잘못한 예label 없이 쓰지 않는다. "체크 상자"라고만 읽힌다.
  • ItemRow: 오늘과 할 일 목록의 한 줄이다. 할 일은 앞에 체크 원, 일정은 앞에 시간과 색 막대가 있다.
  • PlanRow: Mordy가 만든 학습 계획 한 줄이다. 체크 원, 제목, "Mordy" 표지, 푼 문제 진행률(막대)이 있다. 직접 옮긴 계획에는 자물쇠가 붙는다.
  • RadioMark: 선택 목록 행의 끝에 놓는 동그란 라디오 표시다. 시트의 선택 목록에서 쓴다.