루비 주석

Ruby annotation

한자나 어려운 단어 위에 작은 발음·설명 텍스트를 나란히 붙이는 표기 방식. HTML `<ruby>` 요소가 브라우저 기본 기능으로 지원합니다.

다른 이름: 후리가나 표시Furigana<ruby> 태그
···
html
<div class="stage">
  <p class="line">
    <ruby class="r1">漢字<rt>한자</rt></ruby>
    <ruby class="r2">Design<rt>디자인</rt></ruby>
  </p>
  <div class="readout">&lt;ruby&gt;본문&lt;rt&gt;주석&lt;/rt&gt;&lt;/ruby&gt;</div>
</div>
css
.stage{display:grid;justify-items:center;gap:16px}
.line{margin:0;display:flex;gap:22px;font:700 clamp(18px,5.4vmin,30px)/1.4 -apple-system,system-ui,"Apple SD Gothic Neo",sans-serif;color:var(--fg)}
ruby{ruby-position:over;transition:color .5s}
rt{font:400 .38em/1 -apple-system,system-ui,sans-serif;color:var(--muted);transition:color .5s}
ruby.hl{color:var(--accent)}
ruby.hl rt{color:var(--accent-2)}
.readout{font:11px ui-monospace,Menlo,monospace;color:var(--muted);text-align:center}
js
const rubies = [document.querySelector('.r1'), document.querySelector('.r2')];
let i = 0;
function apply(){
  rubies.forEach(function(r){ r.classList.remove('hl'); });
  rubies[i % rubies.length].classList.add('hl');
  i++;
}
apply();
setInterval(apply, 1200);

일본어의 후리가나(한자 위에 히라가나로 읽는 법을 다는 것)가 가장 잘 알려진 예지만, 한자문화권 전반에서 어려운 한자·고유명사 옆에 음이나 뜻을 작게 병기하는 관행은 오래됐습니다. 한글 문서에서도 외래어·전문용어 옆에 원어나 설명을 작게 병기할 때 같은 원리를 씁니다.

HTML은 이를 위해 전용 요소를 갖고 있습니다. `<ruby>본문<rt>주석</rt></ruby>` 구조로 감싸면, 브라우저가 `<rt>` 안의 텍스트를 기본 텍스트 위(세로쓰기에서는 옆)에 자동으로 작게 배치합니다. 별도 CSS 없이도 동작하는 몇 안 되는 "의미 있는" 타이포그래피 전용 태그입니다.

`<rp>` 요소는 루비를 지원하지 않는 아주 오래된 브라우저를 위한 괄호 폴백("본문(주석)")을 감싸는 용도이며, 요즘은 사실상 불필요합니다. CSS `ruby-position`으로 주석 위치(위/아래)를, `ruby-align`으로 정렬을 조정할 수 있지만 지원 범위가 브라우저마다 다르므로 확인이 필요합니다.

언제 쓰나

한자·외래어·전문용어 옆에 발음이나 짧은 설명을 붙일 때, 자막·교육 콘텐츠에 씁니다. 긴 설명은 `<rt>` 대신 툴팁이나 각주가 더 적합합니다.