はてなブログでは、CSSを編集してオリジナルテーマを作ることができます。作成したテーマは、テーマストアに投稿して、ほかのはてなブログユーザーに使ってもらうこともできます。
既存のデザインテーマをブログにインストールしたい場合はヘルプ「デザインテーマをインストールする」を参照してください。
本ドキュメントでは、Webデザイナーの方がはてなブログ用オリジナルテーマを作成するために必要な情報をまとめています。
テーマを作成するにあたって、まずデザインを確認できる環境を用意しておくと作業がはかどります。
テーマを確認するために、専用のはてなブログを新しく開設することをおすすめします。はてなブログでは、1アカウントにつき最大3つまで(有料プラン「はてなブログPro」に加入すると最大10個まで)のブログを開設できます(詳細は、ヘルプ「はてなブログを始める」を参照)。
共同作業が必要なければ、ブログの公開範囲を「自分のみ」が閲覧できるようにしておけばよいでしょう。
テーマのCSSは、ブログのデザイン編集画面「デザインCSS」欄に記述していきます(詳細は、ヘルプ「デザインCSSを記述する」を参照)。
デザインを確認できるように、はてなブログの記事に必要な要素をあらかじめまとめた「サンプルエントリー」を用意しています。
これをコピーして、先ほど用意したテーマ確認専用ブログの編集画面に貼り付け、新しい記事として投稿してください。CSSを修正したら、この記事を表示してデザインを確認するとよいでしょう。
はてなブログのデザインCSSをカスタマイズする土台に適したサンプルテーマ「Boilerplate」を配布しています。
このテーマをもとにCSSを記述すると、ゼロからテーマを作るのが難しいという方でも、比較的簡単にデザインテーマを作ることができます。
Boilerplateテーマのソースコード(CSSおよびSCSSファイル)は、GitHub(github.com/hatena)で公開しています。
GitHubでBoilerplateテーマのソースコードを見る
このCSSおよびSCSSファイルは、MITライセンスのもとで自由に複製・再配布できます。このサンプルテーマをもとにしたテーマの配布も自由です。記事本文の書式やコメント欄のスタイルなど、必要な部分だけをコピーして使ってもかまいません。
デザインテーマは、スマートフォンで適切に表示されるレスポンシブデザインに対応することを強く推奨します。
はてなブログでレスポンシブデザインのテーマを作成するには、次の2つの条件を満たすように作成してください。
Responsive: yesという行を含んだコメントを挿入するResponsive: yes コメントを記述してください。例えば、Evergreenテーマでは下記のようなコメントを記述しています。なお、コメントにはテーマ作者などの情報をこのように含めるのもよいでしょう。
/* Theme: evergreen Author: Hatena Blog Team Description: 1カラムで文章を書くことに集中できるテーマですResponsive: yes */
このように設定したデザインテーマを適用したブログで、レスポンシブデザインを有効にするには、デザイン編集画面の「スマートフォン」タブで設定します。詳細は、ヘルプ「ブログのデザインを変更する(スマートフォン)」を参照してください。
デザインテーマのCSSにResponsive: yesのコメントが記述されている場合、はてなブログでは下記のようにスマートフォンデバイスに適したviewportをHTMLヘッダーで指定します。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
はてなブログは、次のような種類のページで構成されています。それぞれのページが正しく見られるようにデザインする必要があります。
トップページ┣ パーマリンク(記事ページ)┣ Aboutページ┣ Archiveページ┣ Archive/Categoryページ┗ Searchページ
上記のページは、サンプルのブログ を例に取ると、それぞれ次のURLが該当します。
| ページの種類 | URLの例 |
|---|---|
| トップページ | http://sample.hatenastaff.com/ |
| パーマリンク(記事ページ) | top_url/entry/2013/01/25/121312 |
| Aboutページ | top_url/about |
| Archiveページ | top_url/archive |
| 〃(年間) | top_url/archive/2012 |
| 〃(月間) | top_url/archive/2012/01 |
| 〃(日付ごと) | top_url/archive/2013/01/09 |
| 〃(カテゴリー) | top_url/archive/category/%E6%96%B0%E6%A9%9F%E8%83%BD |
| Searchページ | top_url/search?q=%E3%81%AF%E3%81%A6%E3%81%AA |
※top_urlにはブログのトップページのURL(ここではhttp://sample.hatenastaff.com/)を当てはめてください。
オリジナルのテーマを作成するには、少なくとも以下の箇所に対してCSSを書く必要があります。このチェックリストをもとに、書き忘れた箇所がないか確認しましょう。
作成したテーマをテーマストアに投稿する際は、下記の注意事項を守ってください。
#)」の装飾を用いることは避けてください。これらのモチーフはタグを表すときに使います。/* <system section="background" selected="bg1"> */body{ background-color:#3e2d1b; background-image:url('/images/theme/backgrounds/theme1.jpg'); background-repeat:no-repeat; background-attachment:fixed; background-position:center top; background-size:cover; }/* </system> */div#blog-title-innerに下記のような専用のスタイルがインラインで指定されます。<div">http://example.com/20121206113746.jpg'); background-position: centerユーザーが「位置を調整する」で指定した表示領域のオフセット値 px;"> <h1><a href="/">はてなブログ開発検証用日記</a></h1> <h2>ブログのひとこと説明</h2></div>
bodyタグに下記のクラスが付与されます。| ヘッダ画像の表示方法 | bodyに付与されるクラス |
|---|---|
| 画像なし | なし |
| 画像とテキストを表示 | header-image-enable |
| 画像だけ表示 | header-image-only |
div内に置かれます。| HTMLを記述できる箇所 | 表示されるページ | 付与されるセレクタ |
|---|---|---|
| タイトル下(ヘッダ) | すべてのページ | div#top-editarea |
| 記事上(記事) | 記事ページ | div.entry-header-html |
| 記事下(記事) | 記事ページ | div.entry-footer-html |
| フッタ | すべてのページ | div#bottom-editarea |
Archiveページは、「はてなブログのページ構成」で説明したように、過去の記事一覧を表示するページです。
Archiveページには、記事のサムネイルと本文冒頭が表示されます。以下にCSS記述例を挙げます。
.page-archive .archive-entries .archive-entry { margin-bottom: 3em;}.page-archive .archive-entries .date { position: static;}.page-archive .archive-entries .entry-title { font-size: 130%; margin: 0 0 .5em;}.page-archive .archive-entries .categories { margin: 0 0 .5em;}.page-archive .archive-entries .entry-description { font-size: 100%; margin: 0 0 1em; line-height: 1.5em;}トップページと記事パーマリンクには、「過去の記事」「新しい記事(またはページ)」へのリンクとなるページャが表示されます。パーマリンクのページャには、記事タイトルが表示されます。以下にCSS記述例を挙げます。
.pager { margin: 1em 0; display: block; *zoom: 1;}.pager:after { display: block; visibility: hidden; font-size: 0; height: 0; clear: both; content: ".";}.pager .pager-prev { float: left; text-align: left; width: 45%;}.pager .pager-next { float: right; text-align: right; width: 45%;}ヘッダーメニューとは、ブログの上部にある、はてなブログロゴやメニューが並んでいるバーです。あらかじめスタイルが適用されていますので、デザインテーマでのスタイリングは不要です。
有料プラン「はてなブログPro」に加入しているユーザーのブログでは、はてなブログのヘッダーメニューとフッターリンクを表示しないようにできます。このときクラスなどに次のような変更があります。
#globalheader-container)が消えるfooter#footer)が消えるglobalheader-offクラスがbodyに付与されるul要素のurllist-with-thumbnailsクラスあるいはimg要素のrecent-entries-entry-imageクラスを利用してくださいaタグのentry-see-moreというクラスを利用してください。引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。