CSSとJS/jQueryでTwitter埋め込みタイムラインのデザインをカスタマイズする
毎日インスピレーションを受けるため、ハイクオリティーなWebサイトを探すのが日課になっています。そこで、もったいないなと思うのがTwitterタイムラインウィジェットが白く、浮いてしまっているということです。せっかく、美しいデザインのサイトなのにTwitterウィジェットで台無しになってしまっていました。そこで、今回はTwitterウィジェットを自由にカスタマイズする方法を紹介します。
ウィジェット作成

まず、Twitterのページへ行き、自分のアイコンをクリックします。

設定をクリックします。

左のメニューからウィジェットを選びます。

新規作成をクリックします。

特に設定するところはありませんが、オプションで@ツイートを除外したい場合はチェックをはずしましょう。設定が終わったらウィジェットを作成をクリックします。

生成されたHTMLコードをコピーして貼り付ければウィジェットが表示されます。
カスタマイズ
| パラメーター | |
|---|---|
| data-chrome |
noheader – ヘッダー非表示 nofooter – フッター非表示 noborders – 境界線をすべてなくす noscrollbar – タイムラインのスクロールバー非表示 transparent – 背景透過 ※ 複数指定する場合はスペース区切り |
| data-tweet-limit | タイムラインに表示させるツイート数( 1 〜 20 ) |
| data-aria-polite | assertive – ウィジェットの更新頻度を上げる |
| data-related |
対象のウィジェットと関係のある他のTwitterユーザー名の候補をカンマ区切り値で指定する。ユーザーがツイートコンポーザー (またはタイムラインに表示されたツイートアクション) を選択し、ツイートを投稿すると、指定されたアカウントがフォローの対象として提示される。 カンマ区切りでユーザーを複数指定できる。ただし、URLエンコードすること。 |
| data-lang | 指定した言語でロードします。通常、指定する必要はない。 |
| data-theme | dark – カラーテーマをダークにする |
| data-link-color | ツイートのリンク色を変更する。#c0c0c0 のように16進数で指定する。 |
| data-border-color | 境界線の色を変更する。16進数で指定する。 |
| data-width | ウィジェットの横幅を 180 ~ 520 の間で変更できる。 |
| data-height | ウィジェットの高さを変更できる。200 以上の数値で指定する。 tweet-limit が設定されている場合、このパラメーターは無視される。 |
このパラメーターを使ってある程度ウィジェットをカスタマイズできます。

@IT_takamasaさんのツイート
data-chrome=”noheader nofooter” でヘッダーとフッターを削除し、data-width=”500″ で横幅を500pxに、data-height=”400″ で高さを400pxに設定しています。
デザイン
ここまででかなりカスタマイズできましたが、もっと細かい部分をカスタマイズできていませんよね。例えば、ユーザー名の色を変えたりツイートの背景色を変更したり、などなど。
Javascriptを使えば自由にカスタマイズすることができます。
JS
function changeTwitterWidgetDesign(){
var $twitter_widget = $('iframe.twitter-timeline');
var $twitter_widget_contents = $twitter_widget.contents();
if ($twitter_widget.length > 0 && $twitter_widget[0].contentWindow.document.body.innerHTML !== ""){
$twitter_widget_contents.find('head').append('');
}
else {
setTimeout(function(){
changeTwitterWidgetDesign();
}, 350);
}
}
changeTwitterWidgetDesign();
こんな関数を作ります。Twitterウィジェットである iframe が読み込まれるまで、再帰的にループしています。そして、見つかったら head 内に style.css を読み込ませる処理を書いています。この style.css 内にTwitterウィジェットのデザインを変更するCSSを書いていきます。
style.css

.p-author .profile .p-name {
color: #18b194;
}
style.css 内にこのように記述すると、ユーザー名の色を変更できます。ほかの要素もデベロッパーツールを使いながら同じようにCSSで色などを変更することができます。
タイトルを変更
function changeTwitterWidgetDesign(){
var $twitter_widget = $('iframe.twitter-timeline');
var $twitter_widget_contents = $twitter_widget.contents();
if ($twitter_widget.length > 0 && $twitter_widget[0].contentWindow.document.body.innerHTML !== ""){
$twitter_widget_contents.find('head').append('');
$twitter_widget_contents.find('.summary a').html('最新のツイート');
}
else {
setTimeout(function(){
changeTwitterWidgetDesign();
}, 350);
}
}
changeTwitterWidgetDesign();
7行目に注目してください。$twitter_widget_contents で自由に要素にアクセスできるので、ヘッダーのタイトルも変更することができます。