@shinyaz

scrollbar-widthと-webkit-scrollbarでコードブロックのスクロールバーを細くする

約1分

<pre> 要素のデフォルト横スクロールバーが、ミニマルなブログデザインに対して存在感がありすぎた。もっと細く控えめにしたい。

Firefox 向けの標準プロパティと、WebKit 系ブラウザ向けの擬似要素の2つを併用する:

globals.css
pre {
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
 
  &::-webkit-scrollbar {
    height: 4px;
  }
 
  &::-webkit-scrollbar-track {
    background: transparent;
  }
 
  &::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 2px;
  }
}

scrollbar-width: thin は CSS 標準プロパティで Firefox で有効。Chrome や Safari はこれを無視するので ::-webkit-scrollbar 系が必要になる。クロスブラウザ対応には両方書く。

Tailwind CSS v4 での注意点として、[data-rehype-pretty-code-figure] pre のような属性セレクタだと正しく適用されなかった。シンプルに pre セレクタにしたら解決した。

共有する

田原 慎也

田原 慎也

ソリューションアーキテクト @ AWS

AWS ソリューションアーキテクトとして金融業界のお客様を中心に技術支援を行っています。クラウドアーキテクチャや AI/ML に関する学びをこのサイトで発信しています。このサイトの内容は個人の見解であり、所属企業の公式な意見や見解を代表するものではありません。