基本
納品は、クライアントが Git および GitHub の使用、操作に慣れている場合は、プロジェクトで使用しているリポジトリに、クライアント担当者を招待することで引き継ぎを行う。そのまま運用・更新を当該リポジトリで行う場合は、別途ブランチの作成ルール、コミットやプルリクエストのルールなどを事前にクライアントとの間で決めておくこと。
納品後に希望される場合は、リポジトリの移管も可能。その場合は移管先リポジトリをクライアントに用意して頂いた上で、手順に基づいて移管する。
上記以外で、クライアントが Git および GitHub を使用できない事情がある場合は、HTML、CSS、JavaScript 等ファイル、及び画像を含む、Web サイトを構成するリソース一式を、クライアントサーバにアップロードした状態で納品とする。
Git 管理外にある、例えば外部 CDN から直接読み込まれた JavaScript ライブラリ や Movable Type 等、CMS、および使用プラグインに関してはその情報を 1つのドキュメントにまとめてディレクターに提出すること。
また、クライアントサーバへのアップロードにて納品する場合、Sass ファイルや、プリプロセスされた中間制作物一式 (中間制作物のセクション を参照) は、特に要望がない限りはクライアントへは納品しない。元のファイル群が Git 管理されていることをクライアントに説明し、納品物への直接の編集は、差分や修正履歴の把握が難しくなることを前提として共有すること。
バージョン管理
バージョン管理には Git、および GitHub を使用する。新規リポジトリの作成に当たっては別途定める社内ルールに基づいてディレクターが申請を行うこと。プロジェクトに使用されるリポジトリはすべてプライベートリポジトリとし、会社契約以外の個人リポジトリをプロジェクトに使用することなどは一切禁止する。
ただし、クライアントからの指定で、クライアントが管理するリポジトリでの作業を行う場合などは、クライアントからの指示、要望に従って対応すること。
なお、デザインデータに関しては、GitHub にはアップロードしないこと。
ディレクトリ構成
既存の Web サイトを踏襲する場合やクライアントからの指定がある場合等を除き、基本的なディレクトリ構成は下記の通りとする。
- htdocs
- index.html
- css
- img
- inc
- js
スタイルシートは css ディレクトリへ、同様に、画像、インクルード用ファイル、JavaScript ファイルをそれぞれのディレクトリに格納する。画像は全ページ共通で使用するものを share ディレクトリへ、その他は使用するページのディレクトリ構成に合わせて格納する。
ファイル名の基本ルール
画像などのファイル名は下記の基本ルールに則って付ける。
- 区切り文字はハイフン (-) を使用する。
- 大文字小文字を混ぜず、すべて小文字で付ける。
- 同じ種別のファイルは頭に同じ接頭辞を付ける。例えば、バナー関連なら
bnr-
など。
- 背景画像は頭に
bg-
という接頭辞を付ける。
- 例えば同じ内容の画像でサイズが異なる場合はサイズを入れたり (例:
example-200x50.png
)、デバイスピクセル比を入れたりしてわかりやすくする (例: example-x2.png
)。
- ある class 名に対応する画像は、class 名と同じファイル名を付けるなどわかりやすくするとよい (例:
bg-module-section-header.png
)。
ディレクトリ構成のルールとあわせて、第三者が見てもわかりやすいファイル名を心がけること。
動作検証ブラウザ
当社が標準で保証する動作環境ブラウザは下記の通りとする。このセクションは 6ヶ月ごとに見直される。
パソコン
- Microsoft Edge(Chromium 版)
- Google Chrome 最新版
- Safari 最新版
- Mozilla Firefox 最新版
Internet Explorer 11 (IE11) への対応は原則として行わない。クライアントの要望により行う場合は別途 IE11 対応費用を請求すること。
スマートフォン
スマートフォンOSに関しては、原則としてプロジェクト開始時点における最新リリースから2バージョン前までを動作確認対象とする。
- iOS Safari 14.x 以降 (iOS 14.x 以降)
- Android 11.x 以降 標準ブラウザ
- Android 11.x 以降 Chrome
その他
ヘルプページ等に対応ブラウザ(推奨環境)を記載する場合は、上記動作検証ブラウザを踏まえ、下記の記述を基本とする。
JavaScript、スタイルシート、画像表示が有効になっている下記のブラウザソフト
- Microsoft Edge(Chromium 版)
- Google Chrome 最新版
- Safari 最新版
- Mozilla Firefox 最新版
プログレッシブエンハンスメント
上記、動作検証ブラウザに含まれない旧式ブラウザに関しても、最低限必要な操作、情報の取得ができるよう、スタイルシートを無効にした場合の構造には配慮すること。例えばある CSS プロパティが解釈されなかったときに、重要な情報が表示されない、といったことが起こらないように最低限の配慮は必要。一方で多少のレイアウト崩れや装飾目的の画像の表示がされないといった問題に関しては気にする必要はない。旧式ブラウザとは主に IE11 や Android 4.1.x や Android 4.2.x 系の標準ブラウザを指す。
HTML コーディング -> アクセシビリティのセクション や、JavaScruipt -> 基本・バリデーションのセクション 等もあわせて参照のこと。
文字コード
Web サイトの文字コードは、特別な指定がない限り UTF-8 (no BOM) を使用すること。HTML 文書においては、<meta charset="utf-8" />
を head 要素内の可能な限り上部 (基本的には最初の子要素として) に記述すること。
インデントルール
インデントを行う場合、タブ文字は使用しないこと。エディタの設定等で 1タブ = 2半角スペース に設定し、1階層の字下げは 2半角スペースを基準とする。HTML のインデントは任意。CSS は宣言ブロック部分に必ずインデントを入れること。
<!-- 推奨 -->
<ul>
<li>HTML</li>
<li>CSS</li>
</ul>
/* 推奨 */
.example {
color: red;
}
/* 非推奨 */
.example {color: red;}
.example{
color:blue;
}
CSS においては、@media 規則内に記述した規則集合を、すべて 1階層インデントすること。
/* 推奨 */
@media (min-width: 1200px) {
.block-container {
max-width: 970px;
}
}
ただし、プリプロセッサやビルドツールを使用する場合においては、最終的な納品物からインデントや改行が削除されていてもよい。元のコーディングファイル、あるいは中間制作物はこのフォーマットに従うこと。
大文字小文字
HTML の要素名、属性名、および CSS 内のカラーコード等はすべて小文字で統一すること。また、画像をはじめとしたファイル名などでも大文字小文字を混在させたりしないこと。
<!-- 非推奨 -->
<A HREF="/sample/"><IMG SRC="sampleImage.png" ALT="Sample" /></A>
<!-- 推奨 -->
<a href="/sample/"><img src="sample-image.png" alt="Sample" /></a>
/* 非推奨 */
.example {
color: #E5E5E5;
}
/* 推奨 */
.example {
color: #e5e5e5;
}
HTML、CSS、JavaScript 共にわかりやすくコメントを付けること。ただし、プリプロセッサやビルドツールを使用する場合においては、最終的な納品物にコメントが含まれなくてもよい。元のコーディングファイル、あるいは中間制作物にコメントが残るようにすること。
HTML において、要素の閉じタグを認識するためにコメントを入れる場合は、下記のように「//」に続けて該当する要素の class 名、id 名を記述するルールに従う。
<div class="example">
<p>...</p>
<!--//.example--></div>
<div id="example">
<p>...</p>
<!--//#example--></div>
また、HTML 文書内で不要になった要素ブロックや、CSS ファイル内の不要なスタイル宣言等を、一時的な場合を除いてコメントアウトで長い期間運用することは推奨しない。
viewport
viewport に関しては、原則として下記の記述を標準とする。
<!-- 推奨 -->
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
ユーザーによる拡大縮小ができなくなるため、下記の記述は推奨されない。
<!-- 非推奨 -->
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no" />
補足
なお、ページ幅が固定されている Web ページの場合、viewport meta を記述しない、もしくは
<meta name="viewport" content="width=640px" />
などと数値を指定して記述する。
一方で画面サイズが固定されていない Web ページの場合(リキッドレイアウトやレスポンシブ Web デザイン)、本来は下記のように initial-scale のみの記述で問題ないが、Windows Phone の IE など、一部の initial-scale に対応しないブラウザに配慮して、上記推奨コードの通り、両方の指定を行う。
<meta name="viewport" content="initial-scale=1.0" />
スキームの記述
外部 CDN からの JavaScript ライブラリ読み込み等を行う場合、URI のスキーム(http: / https:)はすべて https://
から記述すること。
ただし、読み込むファイルが HTTPS で提供されていない等、状況によってはこの限りではないが、原則として HTTPS で提供されない第三者サーバからのライブラリの読み込みは禁止する。また配信先ドメイン所有者の信頼性については事前に確認すること。
<!-- 非推奨 -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- 非推奨 -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- 推奨 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- 推奨 -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.min.js"></script>
/* 非推奨 */
@font-face {
url(http://www.example.com/fonts/example) format('woff');
}
/* 非推奨 */
@font-face {
url(//www.example.com/fonts/example) format('woff');
}
/* 推奨 */
@font-face {
url(https://www.google.com/fonts/example) format('woff');
}
ライブラリ・フレームワーク
CSS / JavaScript ライブラリやフレームワークの利用はプロジェクトの要件に応じて選択可能。ただし、使用するライブラリやフレームワークに関してはメンテナンスが継続されていること、バグフィックスや脆弱性への対応等が、適切に行われていることを重視して選択すること。また、各ライブラリ、フレームワークの利用規約、ライセンスは必ず確認し、不明な点がある場合はディレクターに相談すること。
OSS については Fork した上で、クライアントの要望に合わせて利用することも可能だが、継続的なメンテナンスが可能、かつ会社としてメリットがある場合のみとする。
また、使用したライブラリ・フレームワークは一覧できるように別途ドキュメントに記載すること。