MENU

CSSとJS/jQueryでTwitter埋め込みタイムラインのデザインをカスタマイズする

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

ウィジェット作成

js-jquery-twitter-widget-timeline-customize-1

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

js-jquery-twitter-widget-timeline-customize-2

設定をクリックします。

js-jquery-twitter-widget-timeline-customize-3

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

js-jquery-twitter-widget-timeline-customize-4

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

js-jquery-twitter-widget-timeline-customize-5

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

js-jquery-twitter-widget-timeline-customize-6

生成されたHTMLコードをコピーして貼り付ければウィジェットが表示されます。

カスタマイズ

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

このパラメーターを使ってある程度ウィジェットをカスタマイズできます。

js-jquery-twitter-widget-timeline-customize-7



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

js-jquery-twitter-widget-timeline-customize-8


.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 で自由に要素にアクセスできるので、ヘッダーのタイトルも変更することができます。