Web開発
より良いテキストデザインのために知っておくべきCSSプロパティ
CSS properties you should know for better text designs (master.dev)
要約
ウェブデザインにおいて、フォント選びだけでなく、テキストの太さ、スタイル、スペーシング、装飾も重要です。この記事では、テキストを際立たせるための5つのCSSプロパティを紹介します。background-clip、vertical-align/align-content、box-decoration-mode、letter-spacing、text-combine-uprightといったプロパティを使いこなすことで、より魅力的で洗練されたテキストデザインを実現できます。
全文翻訳
align-content
background-clip
box-decoration-mode
CSS
letter-spacing
タイポグラフィより良いテキストデザインのために知っておくべき5つのCSSプロパティ
Preethi Sam 2026年8月5日
物理的なポスターのグラフィックデザインのように、ウェブでも目を引くテキストが必要になることがあります。適切なフォントを選ぶだけでは始まりません。テキストの太さ、スタイル、スペーシング、装飾は大きな違いを生みますが、時にはテキストを目立たせるためにもっと多くのものが必要になります。ここでは、ウェブ上の言葉をより良く、あるいは少なくともより面白く見せるのに役立つ5つのプロパティを紹介します。これらはすべて比較的簡単な実装で、他のアイデアに重ねて適用できます。
1. background-clip
タイポグラフィでは、文字の塗りつぶしは通常、単色です(いくつかの例外はありますが)。しかし、代わりに画像を使ってそのスペースを埋めるのはかなり簡単です。あとは、おしゃれな背景を選んで、テキストの形に切り抜くだけです。結果として、読み取れる印象的なノックアウトセットが得られます。2000年代後半には、background-clipプロパティにtext値が導入され、ライブテキスト内で背景画像(またはグラデーション)をマスクできるようになりました。それ以来、本当にクールなタイポグラフィビジュアルのための最も求められているルールの1つであり続けています。
<p>Belize Reef</p>
Code language: HTML, XML (xml)
p {
/* `background-clip: text` はショートハンドに含まれています */
background: text url("image.jpg") center/auto 1lh;
/* クリッピングされた背景が見えるように、テキストを透明にする */
color: transparent;
}
Code language: CSS (css)
2. vertical-align / align-content
時には、基本的なことが素晴らしいものを生み出します。CSS(text-align: center;)を書けるようになって以来、私たちはテキストを水平方向に配置できるようになりました。しかし、垂直軸に関しては、テキストの配置が常にスムーズに進むとは限りません。しかし、これらの2つのプロパティを理解すれば、ほとんどの問題が解決するはずです。vertical-alignプロパティは、HTMLテーブルがレイアウトの風景を支配していた初期ウェブの時代から来ています。テーブルセル内のコンテンツを配置するために広く使用されていました。しかし、テーブルセル外では、テキストを垂直方向に配置することではなく、インライン要素をテキストに対して配置することです。span、img、inputのようにテキスト行に入るものがあり、テキストに対して揃える必要がある場合、vertical-alignがその方法です。
31 B<span class="emoji">💺</span>
Code language: HTML, XML (xml)
.emoji {
vertical-align: top;
}
Code language: CSS (css)
vertical-alignがやると当初思っていたこと、つまりボックス内でテキストを垂直方向に配置すること、は実際には比較的新しいプロパティであるalign-contentによって行われます。モダンレイアウト時代に進化し、flex boxやgrid以外にも、align-contentはブロックボックスにも影響を与え、ボックスのコンテンツを垂直方向に配置します。
<p>Bonjour</p>
Code language: HTML, XML (xml)
p {
width: 360px;
aspect-ratio: 1;
text-align: center;
/* グリッドやフレックスボックスはもう必要ありません */
align-content: center;
}
Code language: CSS (css)
3. box-decoration-mode
タイポグラフィデザインで、通常は行ごとに考えることはありません。しかし、もし行ごとに考えることがあるなら、このプロパティがすべてであり、率直に言って、これしかありません。コンテンツがフロー、カラム、またはページに沿って分割される際の処理を担当するCSS標準モジュール(フラグメンテーション)があります。しかし、それはすべて、分割のスペーシング、折り返し、場所を決定することだけでした。box-decoration-modeが登場してスタイリングに取り組むまで。テキストの行ボックスが分割されると、分割されたエッジは通常スタイルがなく、フラグメントのエッジで不格好な外観を引き起こします。しかし、box-decoration-modeを使用すると、すべてのフラグメントのエッジが均一にスタイル設定されていることを保証できます。つまり、要素に適用された境界線、影などがエッジにすべて適用されます。
<span> water cooler chat <br>
everyone agrees <br>
it is hot </span>
Code language: HTML, XML (xml)
span {
box-decoration-break: clone;
-webkit-box-decoration-break: clone;
/* エッジのスタイル */
border: solid blue;
border-width: 0 1px 1px 0;
box-shadow: 2px 2px 3px rgb(171, 171, 245);
padding-inline: 6px;
border-radius: 3px;
}
Code language: CSS (css)
4. letter-spacing
letter-spacingプロパティは、タイポグラフィの美しさだけでなく、アニメーションの観点からも過小評価されています。CSSでは、個々のグリフを(最初のグリフを除く)ターゲットにする方法はありません。しかし、letter-spacingは、テキスト内のすべてのグリフの末尾スペースを決定するため、ある程度それを実現します。スペーシングは、正の値(距離を置く)と負の値(ギャップを縮める)の両方を受け入れます。同じものの СSSアニメーションは、テキストの表示効果を生み出します。
<section id="text">
<span>Ingvar</span>
<span>Kamprad</span>
<span>Elmtaryd</span>
<span>Agunnaryd</span>
</section>
Code language: HTML, XML (xml)
span {
/* 文字を縮小して非表示にする */
letter-spacing: -1ch;
color: transparent;
/* 最初の文字は表示したままにする */
&::first-letter {
color: #FBDA0C; /* 黄色 */
}
/* 展開時 */
body:has(:checked) & {
/* 文字を拡大して表示する */
letter-spacing: 0ch;
color: #0057AD; /* 青色 */
transition: letter-spacing 0.4s cubic-bezier(.8, -.5, .2, 1.4), color 0.8s linear;
}
}
Code language: CSS (css)
5. text-combine-upright
text-combine-uprightは、短いテキストが縦書きの文章として小さなサイズで書かれることがある東アジアのタイポグラフィのために作られています。これは、writing-modeがverticalに設定されている場合にのみ機能することを意味します。LTR(左から右)言語(英語など)では、スペースを節約するため、またはその外観のために、時々縦書きを選択することがあります。それでも水平テキストを含めることができれば素晴らしいでしょう。
<p>2 Kilo <span>4 lb</span>Sugar</p>
<p><span>🏂</span><span>Feb</span>02/26</p>
Code language: HTML, XML (xml)
p {
writing-mode: vertical-lr;
span {
text-combine-upright: all;
}
}
Code language: CSS (css)
タイポグラフィデザインに役立つプロパティはたくさんありますが、これらの5つは、CSSでタイポグラフィがどのように扱われるか、そしてどのような側面で詳細な作業ができるかについての理解を深めるための良い出発点となるはずです。