GithubHelp home page GithubHelp logo

foundation-start-kit's Introduction

本ガイドラインについて

Jade, Foundation with Sass, Browserify, BrowserSync, KSSを用いたWeb制作のスターターキットです。 新規Webサイト制作や、既存ページの修正・更新におけるクオリティー・メンテナンスの向上を目的としています。


制作にあたって

必要なモジュール/ソフトは以下に記載。予め、homebrew等でインストールしておくこと。

  • node.js
  • git
  • gulp
  • Sass 3.4

テンプレートセット

GitHub上にあるスタートテンプレートセットをcloneして使用する

# clone
git clone [email protected]:funteractive/foundation-start-kit.git

パッケージインストール

# npm
npm install

gulpタスク

# 初回のみ
gulp build
# 監視タスク
gulp
# デプロイ用ファイル準備タスク
gulp dist

仕様

  1. HTML5
  2. CSS 2.2〜
  3. Windows 7〜/ Mac OSX
  4. Internet Explorer 9 ~ / Firefox / Google Chrome / Safari

ディレクトリ構成

.
├── README.md
├── bower.json
├── gulpfile.js
├── package.json
├── shared
│   ├── img
│   │   ├── page
│   │   ├── site
│   │   └── sprite
│   ├── jade
│   │   ├── inc
│   │   │   ├── core
│   │   │   │   ├── _base.jade
│   │   │   │   ├── _config.jade
│   │   │   │   └── _mixin.jade
│   │   │   ├── layout
│   │   │   │   ├── _footer.jade
│   │   │   │   └── _header.jade
│   │   │   └── module
│   │   ├── index.jade
│   │   └── setting.json
│   ├── js
│   │   └── src
│   │       └── app.js
│   └── scss
│       ├── core
│       │   └── _mixins.scss
│       ├── layout
│       │   ├── _footer.scss
│       │   ├── _header.scss
│       │   └── _layout.scss
│       ├── module
│       ├── style.scss
└── styleguide
    ├── template
    │   ├── index.html
    │   ├── public
    └── styleguide.md

ファイル名の命名規則

HTMLファイル、ディレクトリ、画像ファイル及びCSS(ID及びCLASSセレクタ)の名前の付け方は以下を基本ルールとする。

  • 英数字のみを使用。
  • 機種依存文字の使用禁止。
  • 必ずアルファベットからはじめ数字からはじめてはいけない。
  • 全角スペース、半角スペース(Space)の使用禁止。
  • 「\」,「/」,「*」,「:」,「?」,「<」,「>」,「|」,「$」これらの文字の使用禁止。
  • インデントは、各言語フォーマットに従う。ただし、通常は「半角スペース2つ」とする。

画像

画像ファイルにおける命名規則は「種類」と「個性」を「_」アンダーバーでつなげる。

例 img_company.jpg

種類 個性
img company

種類の規則

「種類」は種別の判断が出来る英単語を使用する。 単語が複数ある場合はキャメルケースで繋げる。

種類 説明
img 画像・写真
ttl タイトル
txt テキスト
icon アイコン
btn ボタン要素
bg 背景

個性の規則

「個性」も「種類」と同じくそれ自体を判断が出来る英単語を使用する。 単語が複数ある場合はキャメルケースで繋げる。

HTML

  • HTMLタグは必ず小文字で記述する。
  • 終了タグは必ず記述する。
  • Alt属性は必ず記述する。適切な文言がない場合はNull値とする。
  • HTMLファイル内では基本的にHTMLのみのマークアップ行い、視覚表現(装飾やアニメーション)は外部ファイル化したCSS、JavaScriptで行う。
  • スタイル目的のIDセレクタは使用しないこと。
  • CLASSセレクタの命名規則においては、レイアウト要素については、接頭詞「l-」を使用する。また、ブロック要素に対してはBEM記法を用いること。

参考例

<div class="l-container">
  <header class="l-header">
    <h1 class="logo">Site</h1>
  </header>
  <div class="block">
    <h2 class="block__title">Title</h2>
    <p class="block__description">Description</p>
  </div>
  <footer class="l-footer">
    <p class="copyright"><small>Copyright &copy; All Rights Reserved.</small></p>
  </footer>
</div>

BEM

BEMとは、Block、Element、Modifierの略語 CLASSセレクタの命名規則においては、BEMの命名規則を用いること。

BEM

Definitions / Methodology / BEM. Block, Element, Modifier / BEM

  • __ BlockとElementの区切り

  • -- Modifierの区切り

Element

  • Elementは1つまでとする Elementの階層が深くなるとその分セレクタ名称も長くなるため、可読性及びメンテナンス性が失われるため。

  • クラス名がなくてもセレクターで文脈が固定できる場合、要素構造的にそれ以外ありえない場合などは、Elementにおけるクラス名振り分けは省略できるものとする あるブロック要素内に、例えば「li」要素しか使わないのが決まっているのであれば、クラスを振る必要はないものとする。

  • 単語区切りは「-」を利用せず、キャメルケースで繋げること

主なElement使用単語一覧

単語 説明
inner wrapに対する内側のコンテナ
block コンテンツを内包するブロック
slider スライドコンテンツ
next 次へナビゲーション
prev 前へナビゲーション
tab タブメニュー
nav ナビゲーション・メニュー
list リスト
item 子要素
heading 見出しを内包する要素
title タイトル
subTitle サブタイトル
content コンテンツ
description コンテンツ説明本文
caption 画像に対する説明
summary コンテンツの概要
note コンテンツの補足
text 一つの文章
thumb コンテンツのサムネイル
image サムネイル以外の画像要素
banner 主にリンクに使用される画像要素

Jade

  • ファイル間で共通で使用するデータは、setting.jsonでまとめる。

Sass(SCSS)

  • SassはSCSS記法で記述する。
  • IDセレクタを使用せず、CLASSセレクタを使用すること。
  • 「&」を含んだセレクタで指定する

SCSS

.foo{
  background-color: #f1f1f1;
  &__bar{
    color: #333;
  }
}

CSS

.foo{
  background-color: #f1f1f1;
}
.foo__bar{
  color: #333;
}

以下はmixinの使用例

sprite

  1. img/sprite以下にpngファイルを配置する。
  2. ファイルの横、縦サイズは必ず偶数値にする。

通常使用

spriteフォルダに配置した画像ファイル名を指定する

@include sprite-ir($name);

モバイル対応

別途定義済みの r-sprite mixinを使用

@include sprite-ir($name,$mobile:true);

JavaScript

JavaScriptは動的な表現が必要な際と、外部APIなどを利用する際に使用する。

  • オリジナルコードは、「shared/js/src/app.js」に記載する。
  • npmとbowerでライブラリを管理する。npmにあるライブラリはnpmで、bowerしか無いものはbowerからインストールする。 package.json bower.jsonをプロジェクトごとに最適化すること。
  • Browserifyで build.js に集約して出力される。

策定 2016年3月12日

foundation-start-kit's People

Contributors

funteractive avatar raym-design avatar

Watchers

James Cloos avatar KB avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.