Skip to content

Instantly share code, notes, and snippets.

@gogojimmy
Last active October 7, 2015 10:18
Show Gist options
  • Save gogojimmy/3149931 to your computer and use it in GitHub Desktop.
Save gogojimmy/3149931 to your computer and use it in GitHub Desktop.

#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。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment