Get startedFoundationsComponentsPatternsRules

Link

링크는 클릭하면 새 위치로 이동하는 인라인 텍스트 요소예요.

설치

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

Examples

Appearance

  • default: 링크 색(color.link)과 밑줄로 일반 텍스트와 구분돼요. 마우스를 올리면 밑줄이 사라져요.
  • subtle: 평소에는 옅은 글자색에 밑줄이 없고, 마우스를 올리면 밑줄이 생겨요. 내비게이션이나 경로 표시처럼 링크라는 게 이미 분명한 곳에 써요.
  • inverse: 진한 배경 위에서 잘 보이도록 흰 글자에 밑줄을 그어요.

Visited

이미 방문한 링크는 보라색(color.link.visited)으로 보여요. inverse 는 대비 문제 때문에 방문 색을 쓰지 않아요.

target="_blank" 를 주면 링크 뒤에 새 창 아이콘이 자동으로 붙고, 스크린 리더에는 "(새 창에서 열림)" 이 함께 읽혀요. 안내 문구는 newWindowLabel 로 바꿀 수 있어요.

In body text

본문 안의 링크는 여러 줄로 자연스럽게 감싸져요. 새 창 아이콘은 앞 글자와 붙어 있어 아이콘만 다음 줄로 떨어지지 않아요.

Inheriting font styles

링크는 글자 크기·굵기·행간을 주변 텍스트에서 그대로 물려받아요. 제목 안에서도, 작은 본문 안에서도 쓸 수 있어요.

HTML attributes

rel, target, download 같은 <a> 의 속성은 그대로 전달돼요. 외부 사이트로 새 창을 열 때는 rel="noopener noreferrer" 를 함께 주세요.

Usage guidelines

링크는 사람들을 새 위치로 보내요. 앱 안의 다른 화면이나 섹션, 외부 웹사이트로 이동하거나, 파일을 내려받거나, 전화번호·이메일 주소를 열 때 써요. 지금 화면에서 무언가를 실행하는 액션(폼 제출, 모달 열기)은 Button 을 써요. 버튼처럼 보여야 하는 이동은 LinkButton 을 써요.

Do· 본문에는 default
일반 문장 안의 링크는 밑줄과 색으로 구분되는 default 를 써요. 링크라는 게 이미 분명한 내비게이션에서는 subtle 을 써요.
Don't· 본문에 subtle
문장 속 링크에 subtle 을 쓰면 일반 텍스트와 구분되지 않아요.
Do· 목적지를 설명하는 라벨
"스프린트 12 보고서", "릴리스 노트"처럼 어디로 가는지 알 수 있게 써요.
Don't· 모호한 라벨
"여기", "자세히 보기"처럼 앞뒤 문맥 없이는 뜻을 알 수 없는 말에 링크를 걸지 않아요.

새 창으로 열기

  • 기본은 같은 창에서 열어요. 새 창은 사람을 헷갈리게 할 수 있어요.
  • 진행 중인 작업을 잃을 수 있을 때, 지금 앱을 벗어나거나 외부 사이트로 갈 때만 새 창으로 열어요.
  • 새 창 아이콘을 숨기고 싶다면 정말 새 창이 필요한지 다시 생각해 봐요.

라벨 쓰기

  • 한 페이지 안에서 다른 목적지에 같은 링크 텍스트를 반복하지 않아요.
  • 다운로드 링크는 파일을 내려받는다는 사실과 파일 형식·크기를 함께 적어요. (예: "회의록 내려받기 (PDF, 2MB)")
  • 링크를 너무 많이 넣지 않아요. 중요한 정보가 묻히고 지금 하던 일에서 주의를 빼앗아요.
  • 본문에서는 목적지를 알려주는 데 필요한 단어에만 링크를 걸고 문장 전체에 걸지 않아요. 짧은 구절이 번역에도 유리해요.
  • 동사는 링크의 목적을 분명히 하거나 다른 액션과 구분해야 할 때만 넣어요.
  • 단독 링크는 구절 전체에 걸고, 끝에 문장 부호를 붙이지 않아요.

Accessibility

  • 링크 텍스트만 읽어도 목적지나 목적을 알 수 있게 써요. 스크린 리더 사용자는 링크 목록만 따로 훑어보기도 해요.
  • 일반 본문 안의 링크는 색만으로 구분하지 않도록 반드시 밑줄이 있는 default 를 써요.
  • 링크 글자는 12px 이상으로 유지해 읽고 누르기 쉽게 해요.
  • target="_blank" 이면 화면에 보이지 않는 ", (새 창에서 열림)" 안내가 붙어요. aria-label 을 직접 줬다면 그 뒤에 안내가 이어 붙어요.
  • 키보드: Tab 으로 포커스, Enter 로 이동해요. 포커스되면 2px 포커스 링이 보여요.

Props

Prop

Type

On this page