Oh MyUtils

CSSスクロールバージェネレーター - カスタムスクロールバースタイル オンライン

ビジュアルコントロールとライブプレビューでカスタムCSSスクロールバースタイルをデザイン。WebKitと標準スクロールバーCSSコードを即座に生成 — 100%クライアントサイド、サーバーにデータを送信しません。

よくある質問

CSSスクロールバージェネレーターとは何ですか?

CSSスクロールバージェネレーターは、CSSを使用してウェブサイトのカスタムスクロールバースタイルを作成するのに役立つビジュアルツールです。複雑なCSS擬似要素ルールを手動で記述する代わりに、ビジュアルコントロールで色、サイズ、ボーダープロパティを調整し、即座にプロダクション対応のCSSコードを取得できます。標準のscrollbar-color/scrollbar-widthプロパティとWebKit固有の擬似要素(::-webkit-scrollbar)の両方をサポートしています。

このCSSスクロールバージェネレーターはどのように使いますか?

1. 出力モードを選択します:WebKitのみ、標準のみ、または両方(推奨)。2. スライダーでスクロールバーの幅を設定します。3. トラック(背景)とサム(ハンドル)の色を選択します。4. 必要に応じてボーダー半径、ボーダー、ホバー/アクティブ状態の色を調整します。5. プレビューパネルでリアルタイムに変更を確認します。6. 生成されたCSSコードをコピーしてスタイルシートに貼り付けます。

WebKitと標準スクロールバーCSSの違いは何ですか?

標準プロパティ(scrollbar-color、scrollbar-width)はCSS仕様の公式な一部であり、すべてのモダンブラウザ(Chrome 121+、Firefox 64+、Safari 26.2+、Edge 121+)で動作します。シンプルな色と幅の制御を提供します。WebKit擬似要素(::-webkit-scrollbar、::-webkit-scrollbar-track、::-webkit-scrollbar-thumb)は非標準ですが、ボーダー半径、ボーダー、ホバー状態、個別パーツのスタイリングに対してより細かな制御を提供します。重要:両方が設定されている場合、標準プロパティがWebKitスタイリングをオーバーライドします。

標準スクロールバーCSSプロパティはすべてのブラウザでサポートされていますか?

はい。2025年12月時点で、scrollbar-colorとscrollbar-widthはBaseline Newly Availableステータスを達成しており、Chrome、Firefox、Safari、Edgeでサポートされています。最も詳細なカスタマイズ(ボーダー半径、ボーダー、ホバー状態)については、WebKit擬似要素を拡張機能として含めることをお勧めします。

このツールを使用する際、データは安全ですか?

はい。このツールは完全にブラウザ内で実行されます。CSSコード、色の値、その他のデータはサーバーに送信されません。すべての処理がクライアントサイドで行われ、完全なプライバシーとセキュリティを保証します。

要素ごとに異なるスクロールバースタイルを設定できますか?

はい。生成されたCSSは、特定の要素にスコープできる擬似要素を使用します。グローバルにスタイルを適用する代わりに、セレクターにクラス名をプレフィックスとして追加(例:.my-container::-webkit-scrollbar)することで、その特定の要素内のスクロールバーのみをスタイリングできます。

スクロールバーをアクセシブルにするにはどうすればよいですか?

スクロールバーをスタイリングする際、サムがトラックに対して少なくとも3:1のカラーコントラスト比を持つようにしてください(WCAG 2.0ガイドライン)。タッチ入力のユーザビリティが低下するため、スクロールバーを細くしすぎないでください(8px未満)。代替のスクロールインジケーターを提供しない限り、スクロールバーを非表示(scrollbar-width: none)にしないでください。視覚的なスクロールバーに依存するユーザーのユーザビリティを損なうためです。

コード例

// Generate CSS scrollbar styles from configuration
function generateScrollbarCSS(config) {
  const {
    width = 12,
    trackColor = '#f1f1f1',
    thumbColor = '#888888',
    thumbHoverColor = '#555555',
    thumbBorderRadius = 6,
    trackBorderRadius = 0
  } = config;

  // Standard CSS (all modern browsers)
  const standardCSS = [
    '/* Standard scrollbar properties (Chrome 121+, Firefox 64+, Safari 26.2+) */',
    '.custom-scrollbar {',
    `  scrollbar-width: ${width <= 6 ? 'thin' : 'auto'};`,
    `  scrollbar-color: ${thumbColor} ${trackColor};`,
    '}'
  ].join('\n');

  // WebKit CSS (Chrome, Safari, Edge - enhanced styling)
  const webkitCSS = [
    '/* WebKit scrollbar styling (Chrome, Safari, Edge) */',
    '.custom-scrollbar::-webkit-scrollbar {',
    `  width: ${width}px;`,
    `  height: ${width}px;`,
    '}',
    '',
    '.custom-scrollbar::-webkit-scrollbar-track {',
    `  background: ${trackColor};`,
    `  border-radius: ${trackBorderRadius}px;`,
    '}',
    '',
    '.custom-scrollbar::-webkit-scrollbar-thumb {',
    `  background: ${thumbColor};`,
    `  border-radius: ${thumbBorderRadius}px;`,
    '}',
    '',
    '.custom-scrollbar::-webkit-scrollbar-thumb:hover {',
    `  background: ${thumbHoverColor};`,
    '}'
  ].join('\n');

  return { standardCSS, webkitCSS, combined: `${standardCSS}\n\n${webkitCSS}` };
}

// Usage
const css = generateScrollbarCSS({
  width: 10,
  trackColor: '#f0f0f0',
  thumbColor: '#6366f1',
  thumbHoverColor: '#4f46e5',
  thumbBorderRadius: 5,
  trackBorderRadius: 5
});

console.log(css.combined);

関連ツール