#Coding style:
- 使用兩個半型空白作為縮排。
- 在 property 宣告中的
:後面皆一個半型空白。 - 在
{的宣告前面加上一個半型空白。
範例:
.styleguide-format {
border: 1px solid #0f0;
color: #000;
background: rgba(0,0,0,0.5);
}#結構:
stylesheets
├── app(App 的 StyleSheets)
| ├── features
| | ├── _comments.css.scss
| | └── _feeds.css.scss
| |
| ├── pages(僅作為單一頁面使用的 StyleSheets)
| | |
| | ├── login.css.scss
| | └── invitation.css.sc ss
| |
| ├── products(App 基於 Model 元件頁面的 StyleSheets)
| | |
| | ├── events.css.scss
| | └── tracks.css.scss
| |
├── foundation(App 視覺的主架構,以及可重複共用的元件)
| |
| ├── _wigets.scss
| ├── _background.scss
| ├── _container.scss
| ├── _foreground.scss
| ├── _layout.scss
| ├── _spacers.scss
| ├── _typographies.scss
└── Library(App 視覺的預設變數設定,以及 SCSS 的 function 或 mixin)
├── _config.scss
├── _variables.scss
├── Library.scss
└── _helper.scss
- app: App 頁面的 Style
- features: 可共用的區塊頁面,像是留言、動態這種可以在網站中各種不同頁面被重複利用的區塊頁面。
- pages: 僅為了單一目的而設計的頁面,像是 Landing page、登入頁面。
- products: 動態產生的頁面,以 Controller 的 Actions 來區分,像是活動列表(events.css.scss)、活動頁面(event.css.scss)。
- foundation: Style 的制定,不產生 CSS 檔案的 Mixin 集合
- _widget: 可被重複利用的頁面元件,像是 Navbar、Widget。
- _background: 背景的 mixin。
- _container: 容器的 mixin。
- _foreground: 前景的 mixin。
- _layout: 布局的 mixin。
- _spacer: 空間的 mixin。
- _typographies: 字體的 mixin。
- foundation.css.scss: 使用 @import 匯入整個 foundation 中定義的 mixin。
- Library:全站所使用的變數以及 Helper。
- _variables: 所有制定的變數以及調色盤。
- _helper: 就是 helper。
- Library: 使用 @import 匯入整個 Library 的設定。
#使用方式:
- 在 application.css 中取消使用原先的
require_tree .改成 require 整個 app 資料夾。 - app 資料夾中的頁面 Style 皆需 import foundation 及 library 兩支 mixin 來使用。
- mixin 的命名必須是語意化的,例如 right-bottom-shadow-box 表示一個在右下有陰影的容器設定。
@import "library/library";
@import "foundation/foundation";- 使用 foundation 中的 mixin 來闡述一個元件的 Style,例如:
<div id="example"></div>
#example {
@include reading-text; //字體
@include right-bottom-shadow-box; //容器
@include bright-widget-bg; //背景
@include bright-bg-type; //前景
@include vertically-separated; //空間
@include vertically-padded; //空間
}##Selector: 定義 Selector 力求精確,舉例來說,像是下面這個 Markup:
<header>
<ul class="main-nav>
<li></li>
</ul>
</header>
使用 header ul{} 以及 .main-nav{} 都可以選到我們的 main-nav,但兩者有不同的意義,前者是一個在 header tag 裡的 ul 而後者則是選擇一個 main-nav。