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

WellRow

패널 안의 목록 한 줄이다. 옅은 홈(well)에 앞 아이콘 타일, 제목, 보조 줄, 뒤 요소가 놓인다.

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

미리보기#

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

아이콘 + 제목 + 보조 줄

언제 쓰는가#

쓴다

  • 과목, 자료, 시험처럼 눌러서 이동하거나 고르는 목록 행에 쓴다.
  • 선택 목록(시트)에서는 selected와 RadioMark를 함께 쓴다.
  • 앞에 RowIcon을 두면 상태 색을 가진 아이콘 타일이 된다.

쓰지 않는다

  • 설정 행에는 쓰지 않는다. SettingsRow를 쓴다.
  • 행마다 그림자를 주지 않는다.
  • 제목을 두 줄 넘게 쓰지 않는다. titleLines로 줄 수를 정하고 넘치면 …으로 줄인다.

종류#

WellRow 종류
이름설명
WellRow목록 행. onPress가 있으면 버튼이고 뒤에 ChevronRight가 자동으로 붙는다.
RowIcon행 앞의 42 × 42 아이콘 타일. tone으로 색을 준다: 기본(흰), primary, success, amber, danger.

크기#

WellRow 크기
이름값설명
행최소 높이 56좌우 12, 위아래 10, 모서리 18, 요소 사이 12.
RowIcon42 × 42, 모서리 14아이콘은 20px.

상태#

기본
선택됨
WellRow 상태
상태모습과 동작
기본well 바탕, 같은 색 1.2px 테두리.
선택됨selected 바탕, primary 1.2px 테두리.
누름투명도 0.8.

사용 방법#

기본

기본
import { RowIcon, WellRow } from '@/ui/surface';

<WellRow
  icon={<RowIcon tone="primary"><BookOpen size={20} color={toneInk('primary')} strokeWidth={2.1} /></RowIcon>}
  title="수학"
  meta="자료 18개 · 복습 12개"
  onPress={() => router.push('/subject/math')}
/>

속성(props)#

WellRow

WellRow 속성
이름타입기본값필수설명
iconReactNode—선택앞에 놓을 요소. 보통 RowIcon.
titleReactNode—필수제목. 글자면 bodyStrong으로 그린다.
metaReactNode—선택제목 아래 보조 줄. 글자면 caption textSecondary.
rightReactNode—선택뒤에 놓을 요소. 생략하고 onPress가 있으면 ChevronRight를 둔다.
onPress() => void—선택있으면 행이 버튼이 된다.
selectedboolean—선택선택되었는지.
accessibilityLabelstring—선택행의 이름. 안의 글자와 다르게 읽히게 할 때만 쓴다.
styleStyleProp<ViewStyle>—선택바깥 여백이나 배치만 바꾸는 React Native 스타일이다.
titleLinesnumber1선택제목의 최대 줄 수. 기본 1.

RowIcon

RowIcon 속성
이름타입기본값필수설명
childrenReactNode—필수타일 안의 아이콘.
tone'danger' | 'primary' | 'success' | 'amber'—선택타일 색. "danger", "primary", "success", "amber". 없으면 흰색(surface).

치수와 토큰#

행
최소 높이 56, 모서리 18, 좌우 12, 위아래 10, 사이 12, 바탕 well
글자
제목 bodyStrong, 보조 caption(textSecondary)
선택
selected 바탕 + primary 테두리
RowIcon
42 × 42, 모서리 14, 바탕은 tone의 …Soft, 아이콘 20 선 2.1

접근성#

  • onPress가 있으면 button 역할이고 selected 상태가 전달된다.
  • 선택은 색과 테두리, (시트에서는) 라디오 표시로 나타낸다.

글자 색 대비

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

WellRow 글자 색 대비
쓰임글자색바탕대비기준
행 제목textwell16.12:1 통과14.08:1 통과14.95:1 통과9.62:1 통과4.5:1 (작은 글자)
보조 줄 (11.5px)textSecondarywell3.98:1 미달6.42:1 통과4.52:1 통과6.26:1 통과4.5:1 (작은 글자)

잘한 예와 잘못한 예#

잘한 예앞 아이콘, 제목, 보조 줄, 뒤 화살표 순서로 놓는다.
수학자료 18개
잘못한 예행마다 그림자를 주지 않는다. 홈(well) 색이 구분을 맡는다.
  • Panel: 회색 바탕(canvas) 위에 놓는 흰 패널이다. 제목 줄(제목, 설명 아이콘, 오른쪽 링크)과 내용을 담는다. 리포트와 시험 계획 화면의 기본 면이다.
  • SettingsGroup: 설정 화면의 목록이다. 작은 구역 이름, 행이 든 흰 패널, 아래 안내 글로 이루어진다.
  • RadioMark: 선택 목록 행의 끝에 놓는 동그란 라디오 표시다. 시트의 선택 목록에서 쓴다.
  • SwipeRow: 행을 왼쪽으로 밀면 뒤에서 행동 하나(삭제 등)가 나타나고, 끝까지 밀면 그 행동이 실행되는 행이다.