스타일리스틱 세트

Stylistic sets

폰트 제작자가 같은 글자에 대해 미리 그려둔 대안 스타일 세트. `font-variant-alternates: styleset()`이나 `ss01`~`ss20` 태그로 고릅니다.

다른 이름: ss01Stylistic Alternates
···
html
<div class="stage">
  <span class="word" id="w">Adobe agile</span>
  <div class="readout" id="readout">측정 중…</div>
</div>
css
.word{font:800 9vmin/1.2 -apple-system,system-ui,"Segoe UI",sans-serif;color:var(--fg);display:block;text-align:center}
.readout{margin-top:14px;font:11px ui-monospace,Menlo,monospace;color:var(--muted);text-align:center;max-width:280px}
js
const w = document.getElementById('w');
const readout = document.getElementById('readout');
const offWidth = (function(){ w.style.fontFeatureSettings = '"ss01" 0'; return w.getBoundingClientRect().width; })();
let on = false;
let measured = false;
function apply(){
  on = !on;
  w.style.fontFeatureSettings = on ? '"ss01" 1' : '"ss01" 0';
  if (!measured){
    measured = true;
    setTimeout(function(){
      const onWidth = w.getBoundingClientRect().width;
      readout.textContent = Math.abs(onWidth - offWidth) > 0.4
        ? '실측: ss01 켰을 때 폭이 달라짐 — 이 폰트에 스타일리스틱 세트가 정의돼 있음'
        : '실측: ss01 켜도 폭 동일 — 이 시스템 폰트엔 스타일리스틱 세트가 없어 보임';
    }, 50);
  }
}
apply();
setInterval(apply, 1600);

한 폰트 안에 소문자 "a"를 두 가지 형태(예: 이중 층 구조 vs 단순한 원형)로 그려두고, 개발자가 그중 하나를 골라 쓰게 하는 식입니다. 로고타입처럼 특정 글자 형태를 원하지만 완전히 새 폰트를 만들기는 부담스러울 때, 스타일리스틱 세트가 있는 폰트를 골라 그 세트만 켜는 절충이 가능합니다.

CSS에서는 `font-feature-settings: "ss01" 1`로 직접 태그를 켜거나, `@font-feature-values`로 세트에 이름을 붙인 뒤 `font-variant-alternates: styleset(내가정한이름)`으로 의미 있는 이름을 줄 수 있습니다. 후자가 더 읽기 쉽지만 준비 단계가 하나 더 필요합니다.

스타일리스틱 세트는 폰트마다 번호와 실제 바뀌는 모양이 전부 다릅니다 — 어떤 폰트의 `ss01`이 다른 폰트에선 전혀 다른 걸 바꿀 수 있습니다. 이 사이트가 쓰는 시스템 폰트에 스타일리스틱 세트가 정의돼 있는지는 문서가 아니라 실측으로만 알 수 있어서, 데모가 실제로 켜고 꺼서 폭 차이를 측정합니다.

언제 쓰나

브랜드 서체가 특정 글자 형태의 대안(예: 꼬리 없는 "a")을 스타일리스틱 세트로 제공한다면, 로고·헤드라인처럼 특정 글자 형태가 중요한 곳에만 선택적으로 켜세요.