Get startedFoundationsComponentsPatternsRules

Lozenge

로젠지는 이슈 상태처럼 빠르게 알아봐야 하는 중요한 속성을 짧은 라벨로 강조해요.

설치

pnpm dlx shadcn@latest add https://rebar.conmarket-landing.workers.dev/r/steel/lozenge.json

Examples

Semantic colors

색이 공통된 의미를 가질 때는 시맨틱 색을 써요. 워크플로 상태, 위험도처럼 정의가 분명한 조건에 맞춰 골라요.

Appearance의미예
neutral기본, 아직 시작하지 않음할 일, 초안
information진행 중진행 중, 검토 대기
success완료·긍정완료, 순항 중
warning주의 필요검토 중, 위험
danger문제·차단차단됨, 실패
discovery새로움새 기능, 베타

Accent colors

색에 특별한 의미가 없을 때는 accent 색을 써요. 주로 사용자가 직접 색과 라벨을 고르는 콘텐츠용이에요. 이미 의미가 있는 라벨에는 쓰지 않아요.

Legacy appearances

이전 이름(default, inprogress, moved, new, removed, success)도 그대로 받아요. 각각 neutral, information, warning, discovery, danger, success 로 바뀌어 그려져요.

isBold 는 더 이상 쓰지 않아요(deprecated). 새 시각 언어에서는 모든 로젠지가 같은 스타일이라 값을 줘도 모양이 바뀌지 않아요.

With icon

iconBefore 에 아이콘 컴포넌트를 넘기면 라벨 앞에 붙어요. 아이콘 색은 로젠지 색에 맞춰 자동으로 정해져요. 의미가 분명한 아이콘일 때만 넣어요.

Trailing metric

trailingMetric 으로 라벨 끝에 점수나 수치를 배지로 붙여요. 배지는 로젠지와 같은 시맨틱의 bold 배지로 그려지고, trailingMetricAppearance 로 바꿀 수 있어요. accent 색 로젠지에는 표시되지 않아요.

Spacing

spacing="spacious" 는 높이 32px, 좌우 여백 12px, 14px 글자로 커져요. 아이콘도 16px 로 커져요.

Max width

기본 최대 너비는 200px 이고, 넘는 라벨은 말줄임표로 잘려요. maxWidth 에 숫자(px)나 문자열('50%' 등)을 줘서 바꿀 수 있어요.

인라인 상태 변경처럼 로젠지에서 메뉴를 열어야 하면 LozengeDropdownTrigger 를 써요. 끝에 아래 화살표가 붙고, hover·pressed 배경과 선택(isSelected)·로딩(isLoading) 상태를 가져요. 라벨 문자열이 바뀌면 너비가 200ms(cubic-bezier(0.4, 0, 0, 1)) 동안 새 너비로 이어지고, 아이콘 색도 같은 시간에 바뀌어요. 바뀐 라벨이 최대 너비 안에 들어가면 애니메이션 중에 말줄임표가 깜빡이지 않아요. 첫 번째 예시를 눌러 보세요.

Usage guidelines

로젠지는 사람들이 대상을 이해하고, 우선순위를 정하고, 행동하는 데 영향을 주는 의미 있는 속성을 작고 눈에 띄게 보여줘요.

  • 워크플로 상태: 순항 중, 진행 중, 완료
  • 시스템 상태: 활성, 켜짐, 비활성
  • 우선순위: 높음, P1, 긴급
  • 권한: 잠김, 읽기 전용, 비공개
  • 프로모션: 프리미엄, 새 기능, 체험

분류·그룹·필터링에만 쓰는 설명용 메타데이터는 Tag 를 써요. 로젠지는 태그보다 눈에 잘 띄어서, 단순 메타데이터에 쓰면 정말 중요한 정보의 힘이 약해져요.

Do· 의미가 맞는 배지
시맨틱 색 로젠지에는 같은 시맨틱의 배지만 붙여요.
Don't· 섞인 의미
성공 로젠지에 위험 배지를 붙이거나, accent 로젠지에 배지를 넣지 않아요.
  • 채워진 아이콘은 "완료", "궤도 이탈"처럼 꼭 강조해야 할 때만 써요. 남발하면 중요한 상태가 묻혀요.
  • 로젠지는 상호작용하지 않아요. 직접 클릭 동작을 붙이지 말고, 메뉴가 필요하면 LozengeDropdownTrigger 를 써요.
  • 라벨은 짧게 써요. 영문 라벨은 첫 글자만 대문자인 문장형(sentence case)으로 쓰고, 전부 대문자나 제목형 대문자는 피해요.

Accessibility

  • 색만으로 의미를 전하지 않아요. "궤도 이탈", "차단됨"처럼 라벨 자체가 상태를 설명하게 하고, 필요하면 아이콘을 함께 써요.
  • 로젠지는 포커스를 받지 않아서 잘린 텍스트를 보조 기술 사용자가 확인하기 어려워요. 라벨을 짧게 유지해요.
  • LozengeDropdownTrigger 는 button 요소라 Tab 으로 포커스하고 Enter·Space 로 열어요. 열리는 메뉴에 맞춰 aria-haspopup, aria-expanded, aria-controls 를 넘겨요. 로딩 중에는 aria-busy 와 aria-disabled 가 붙고 클릭이 막혀요.
  • 아이콘과 화살표는 장식이라 aria-hidden 처리돼요.

Props

Lozenge

Prop

Type

LozengeDropdownTrigger

Lozenge 의 props 에 아래가 더해져요.

Prop

Type

On this page