參考代碼
擬真 vs. 扁平前端
在iso7
以前,Apple採用的是擬真化
設計語言,指望經過模擬現實世界的物體,給用戶身臨其境的感受。自metro
和ios7
開始的扁平化
設計語言則相反,它着意去掉冗餘的裝飾效果(好比透視、紋理、漸變等等能作出3D效果的元素),讓「信息」自己從新做爲核心被凸顯出來。ios
Material Designgit
若是說擬真
表明設計語言的一個極端,而扁平
表明設計語言的另外一個極端,那麼Material Design
則居於二者之間更偏右的位置。github
在Material Design
中,屏幕裏看上去平整的一個 App
界面,事實上不一樣控件之間都擁有着層級關係。不一樣控件之間的層級關係會使用陰影做爲表示,而陰影的深淺,表明的正是這個控件在 Z
軸的高度:工具
Material Design
裏的材料Material
其實是一種虛構出來的材料,:厚度無限薄(1dp),面積 無限大,能變換造型,也能按照規律移動 —— 你能夠把它當作一張紙(事實上,Material Design
曾一度傳說要更名爲Quantum Paper
- 量子紙)。字體
雖然每一塊 Material
都是扁的,但他們所處的環境,實際上是一個 3D
空間,這意味着全部處於 Material Design
設置的這個三維環境裏的控件,都擁有 XYZ
三個維度,Z軸
垂直於屏幕,使用陰影表現材料的高度,陰影越重,Z值
越高,距離用戶越近。this
所以,Material Design
並非單純的扁平化,它在保留了扁的控件的同時,採用了立體的虛擬空間, 簡言之,Material Design
的核心是:扁而不平。編碼
Material Design Litespa
MDL中定義了一組樣式類mdl-shadow--Ndp
,用於聲明材料的陰影,N
的有效取值爲:2/3/4/6/8/16
。設計
爲元素應用陰影樣式類很簡單:
<!--爲元素聲明2dp的陰影--> <any class="mdl-shadow--2dp">...</any>
Material Design
中的色彩靈感來自於現代建築、道路標識、路面標記及運動場等 大膽運用色調、高光和陰影,充滿動感的場景。
Material Design
使用19
個調色板(red、pink、purple等
)用來約束設計中色彩的使用。 在每一個調色板中,色調爲500的顏色爲基準色
,其餘顏色是基準色在不一樣色調(50-900, A100-700
) 下的表現。
Material Design Lite
在MDL
中,咱們能夠使用樣式類mdl-color--{palette}-{hue}
來設置背景色,使用樣式類 mdl-color-text--{palette}-{hue}
來設置前景色:
<div class="mdl-color--red mdl-color-text--grey-50"> this is a gray text on red background. </div>
Material Design給出了一些色彩運用在一般條件下的約束:
1. 最多用兩個調色板
在一個界面中最多使用兩個調色板,從主調色板選擇最多三個色調,從輔調色板選擇一個強調色。下面的示例選擇indigo
調色板中的三個色調(100、500和700
),從pink
調色板中選擇色調A200
做爲強調色:
2. 爲文本、圖標和分割線應用透明度
經過爲文本設置透明度
來表達文本的相對
重要性:
對於深色背景的淺色文字,最重要的文本使用87%的透明度
,次重要的文本使用54%的透明度
。提示性文本,例如輸入框、標籤、被禁止的文字等使用26%的透明度
。
對於淺色背景的深色文字,最重要的文本使用100%的透明度
,次重要的文本使用70%的透明度
,其餘文本使用30%的透明度
。
3. 工具欄和狀態欄
工具欄
和大色塊
應當使用調色板中色調爲500
的顏色爲基準色。狀態欄應當選擇 調色板中比基準色略深的色調爲700
的顏色。
4. 使用強調色
在大色塊上絕對不要使用強調色,對動做按鈕、開關或滑動條之類的組件應當使用強調色
。
Google
提供了適用於Material Design
的圖標字體,咱們能夠直接在前端樣式表中使用@font-face
引用這些字體。
face
用來指定要顯示的圖標,也能夠 使用其對應的數字編碼:
<i class="material-icons"></i>
Material Design
提供了11
種規格的文字樣式供不一樣場景下排版使用:
在MDL
中,使用樣式類mdl-typography--{name}
聲明文本的排版樣式:
<h1 class="mdl-typography--title">Hello,Material Design</h1> <p class="mdl-typography--body-2">this is a demo</p>