作ったもの、気づいたこと、試したこと。元エンジニアの視点で技術をつづる雑多ブログ「Weizlogy」。
Windows環境のWebブラウザからSNS(Twitter/X および Bluesky)を利用する際、標準のフォント描画やレイアウトをUserCSS(カスタムCSS)によって最適化する総合ガイド。
Windows環境のGoogle ChromeやEdge等のWebブラウザにおいて、Twitter (X) や Bluesky などのWebクライアントを閲覧した際、テキストが薄く見づらい、あるいは意図しないフォントで表示される現象が発生する。主な技術的原因は以下の3点にある。
これらの課題を解決するため、ブラウザ側でCSSを上書き(UserCSS)し、「Noto Sans JP」 や 「Noto Sans Mono」 等の視認性に優れたフォントへ統一する。
WebページへカスタムCSSを適用する拡張機能は複数存在するが、安全性および機能性の観点から選定を行う必要がある。
https://x.com/*)が明確。不要な広告追跡コードが含まれていない。Twitter(x.com)における本文フォントの視認性向上、エディタ領域のフォント調整、およびプロモーション(広告)の非表示化を行う。
https://x.com/*
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:[email protected]&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:[email protected]&display=swap');
/* テキスト全体 */
div[data-testid="tweetText"] .r-1tl8opc
, a[data-testid="tweet-text-show-more-link"]
, .r-18u37iz {
font-family: "Noto Sans Mono", "Noto Sans JP" !important;
font-weight: normal !important;
font-size: 12px !important;
}
/* 投稿ユーザー名 */
div[data-testid="User-Name"] .r-1tl8opc {
font-family: "Noto Sans Mono", "Noto Sans JP" !important;
font-weight: bold !important;
font-size: 14px !important;
}
/* 投稿エディター */
div[data-testid="tweetTextarea_0"] > div > div > div > span > span
, .public-DraftEditorPlaceholder-inner {
font-family: "Noto Sans Mono", "Noto Sans JP" !important;
font-weight: normal !important;
font-size: 12px !important;
}
/* 左ペインのナビゲーションバー */
nav[role="navigation"] > a > div > div > span {
font-family: "Noto Sans Mono", "Noto Sans JP" !important;
font-weight: normal !important;
font-size: 16px !important;
}
// h1[id="accessible-list-1"]
/* 右ペインの広告除去 */
div[data-testid="sidebarColumn"] aside[role="complementary"] {
display: none !important;
}
/* 広告除去 */
div[data-testid="placementTracking"] {
display: none !important;
}
Bluesky(bsky.app)におけるフィード本文、プロフィール領域、および投稿エディタのフォント調整を行う。
https://bsky.app/*
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:[email protected]&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:[email protected]&display=swap');
/* ポスト本文全体 */
.css-146c3p1,
.css-146c3p1 > a {
font-family: "Noto Sans Mono", "Noto Sans JP", sans-serif !important;
font-weight: 400 !important;
font-size: 13px !important;
}
/* プロフィール表示名 */
div[data-testid="profileHeaderDisplayName"] {
font-family: "Noto Sans Mono", "Noto Sans JP", sans-serif !important;
font-weight: 700 !important;
font-size: 20px !important;
}
/* プロフィール領域(フォロー・フォロワー数等) */
.css-175oi2r .r-12vffkv > div,
.css-175oi2r .r-12vffkv > div > span {
font-family: "Noto Sans Mono", "Noto Sans JP", sans-serif !important;
font-weight: 700 !important;
font-size: 14px !important;
}
/* 投稿ユーザー名 */
a > .css-1jxf684 {
font-family: "Noto Sans Mono", "Noto Sans JP", sans-serif !important;
font-weight: 700 !important;
font-size: 14px !important;
}
/* 投稿作成エディタ */
div[data-testid="composePostView"] > div > div > div > div > div > div > div {
font-family: "Noto Sans Mono", "Noto Sans JP", sans-serif !important;
font-weight: 400 !important;
font-size: 13px !important;
}
ReactやReact Native for Web等で構築された現代のSPA(Single Page Application)では、ランダムなビルドクラス名(例: .css-146c3p1)が頻繁に変更される。サイトのアップデートによって仕様が崩れた場合、以下の手順で新たなセレクタを追跡・補修する。
F12 キー(または右クリック -> 検証)を押し、ブラウザのデベロッパーツールを起動する。Ctrl + Shift + C)を起動し、カスタマイズしたいテキスト要素をクリックする。data-testid):
div[data-testid="tweetText"] や div[data-testid="profileHeaderDisplayName"] など、テスト用属性はアップデートでも変更されにくいため最も信頼性が高い。data-testid が付与されていない要素については、親要素の data-testid からの相対パス、または比較的固定的なクラス名を指定する。!important 宣言を付与してスタイルを適用する。Windows環境におけるWeb版SNSの表示崩れ・視認性低下問題は、適切なUserCSS管理と信頼できる拡張機能の導入によって大幅に改善される。SPAサイトの仕様変更に対しては、data-testid 属性を基準とした堅牢なセレクタ指定を行うことが運用のポイントとなる。