成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

解密 Design System

Yujiaao / 2983人閱讀

摘要:總體來看,整個設(shè)計系統(tǒng)由和一些相關(guān)的組成。主流風(fēng)格目前業(yè)界廣泛使用的包括等等。是對某一類問題解決方案的抽象。這些共同構(gòu)成了表單數(shù)據(jù)提交場景下的。是一系列的基礎(chǔ)原件。的基本組成便是。值的可配置化是設(shè)計系統(tǒng)客制化的重要組成部分。

簡介

設(shè)計系統(tǒng)的產(chǎn)生是為了某領(lǐng)域內(nèi)產(chǎn)品在不同平臺和設(shè)備上都保持設(shè)計和交互風(fēng)格的統(tǒng)一。既然是一個系統(tǒng) ,那必須具有相應(yīng)的完整性。它為產(chǎn)品設(shè)計,產(chǎn)品內(nèi)容等方面提供相應(yīng)的指導(dǎo)??傮w來看,整個設(shè)計系統(tǒng)由Design Principle, Design Language, Code Library 和一些相關(guān)的Tools組成。從以下的圖可以更直觀的看到它的組成部分。

主流風(fēng)格

目前業(yè)界廣泛使用的visual language包括Material Design, Metro Design 等等??梢韵胂笥幸粋€數(shù)軸,數(shù)軸一端是扁平風(fēng)格,另一端是擬物風(fēng)格。目前大部分的設(shè)計風(fēng)格都分布在這條數(shù)軸之間。

Material Design

GoogleMaterial Design是一個使用廣泛的視覺語言(visual language). 統(tǒng)一了google系產(chǎn)品的視覺風(fēng)格,并且能對其進(jìn)行一定程度的客制化。

Material Design is inspired by the physical world and its textures, including how they reflect light and cast shadows. Material surfaces reimagine the mediums of paper and ink.

Apple先前的擬物化設(shè)計不同,Material Design 把設(shè)計風(fēng)格從擬物化的一端往扁平化的方向拉了拉,但卻不是完全的扁平。它保持了物理世界的一些特質(zhì)和紋理,并從X軸Y軸、Z軸 三個維度描述一個物體. 在Z軸上的投影模擬了光的照射和基于此形成的陰影, 從而使設(shè)計元素有了立體的感覺。譬如Button的設(shè)計便是在底部利用shadow使按鈕有略微上浮的感覺從而形成立體感。Card設(shè)計也是類似,利用bordershadow使整個Card從屏幕中上浮出來一般。

Material is the metaphor

Materail是一種隱喻。紙張和油墨先于電子屏出現(xiàn)在人們的生活中。中國漢代發(fā)明了造紙術(shù),紙張作為書寫材料得以普及,北宋的活字印刷術(shù)把文字低成本的放到了紙上,紙張上的信息得以較為廣泛的傳播。如今大量的信息從物理世界的紙張轉(zhuǎn)移到了電子屏幕上。Materail Design 借用了紙張的隱喻并從傳統(tǒng)的印刷方案中得到啟發(fā),元素具有紋理、質(zhì)感、陰影、折疊等紙張的特性并且擁有排版、顏色、字體上的規(guī)則。點擊元素觸發(fā)的水波紋猶如魔法棒施加魔法的過程,等待著水波紋褪去后的驚喜,這大概便是連接虛擬世界和現(xiàn)實世界的魔法。

Design language

Design language較為重要的組成部分便是Design Principle, Design PatternDesign Components這三部分。 Design Principle給出了高級別的抽象,是整個Design language的精神指導(dǎo),就像某種文化一般,貫穿在設(shè)計與開發(fā)的所有環(huán)節(jié)。Design Pattern則是組合Design Components來解決現(xiàn)實中一類問題的規(guī)則。交互設(shè)計師和產(chǎn)品經(jīng)理都可以利用這些規(guī)則來進(jìn)行相應(yīng)的交互和產(chǎn)品上的設(shè)計。

Design Principle

Design Principle描述了某個領(lǐng)域內(nèi)業(yè)務(wù)形態(tài)或者操作形態(tài)的一系列規(guī)則。它體現(xiàn)的是某種精神,你的產(chǎn)品設(shè)計,UX/UI設(shè)計等都需要圍繞著這些精神。不同的公司甚至不同的團(tuán)隊都會有不同的Principle,但是也可能具有相同的Principle。google提出的Meteral Design, 便許多公司都遵從著這套方案,但是也會根據(jù)自己的業(yè)務(wù)做一定的修改,從而形成自己獨有的精神。 例如某通訊公司的Design Principle是:

High Efficiency(高效)

Communicating Authentic(溝通真實)

Build Trust(可信)

Stay Stable(穩(wěn)定)

在產(chǎn)品及UX設(shè)計過程中,都需要去遵循這些原則。一個行為交互是否能應(yīng)用在產(chǎn)品上,首先要考慮是否符合這些原則。譬如一款通訊軟件,右側(cè)列表里是否需要對單聊群聊分為兩個不同的類別,對于服務(wù)于企業(yè)的通訊軟件,在企業(yè)內(nèi)部合作過程中,經(jīng)常會對某個項目或者問題建立一個討論組或者項目組,所以或許對兩個類別進(jìn)行分類會更高效。這里的考慮便是是否遵守了High Efficiency。

Design Pattern

Design Pattern是對某一類問題解決方案的抽象。用GUI程序開發(fā)的角度去看的話,它應(yīng)該是對應(yīng)于業(yè)務(wù)組件。既然是業(yè)務(wù)組件,那么就是針對了某一類具體業(yè)務(wù)的解決方案。一個具體的交互場景是用戶利用表單來提交數(shù)據(jù)。用戶的操作無非是:

輸入數(shù)據(jù)

提交數(shù)據(jù)

但是用戶在進(jìn)行這兩個步驟時,會出現(xiàn)數(shù)據(jù)校驗,包含校驗規(guī)則,校驗失敗和成功的提示, 提交數(shù)據(jù)前的確認(rèn)對話框,提交數(shù)據(jù)后的反饋(成功或者失敗提示)。這些共同構(gòu)成了表單數(shù)據(jù)提交場景下的Pattern。簡而言之,Design Pattern就是利用基礎(chǔ)組件解決某一類問題的方案。

Design Components

Design Components是一系列的基礎(chǔ)原件。就web領(lǐng)域來說,它可能是瀏覽器上的輸入框,按鈕,復(fù)選框,彈出框等一系列的不帶有具體業(yè)務(wù)的基礎(chǔ)組件。而對于一個組件來說,需要定義它在不同交互操作時的不同表現(xiàn)的規(guī)范。拿最常見的組件Button(按鈕)來說,它在點擊(active), 鼠標(biāo)移到它的上方(hover), 禁用(disabled)時的具體表現(xiàn),包括顏色變化,動畫效果等都需要在Design Components里進(jìn)行詳細(xì)的定義,這樣才能說一個Design Component是完整的和可用的。

Code Library

Code Libray的基本組成便是Components。 理想狀態(tài)下,代碼中庫Components是實現(xiàn)了Design Language中的大部分的Design ComponentsDesign Pattern,當(dāng)然在現(xiàn)實情況下會視情況而定。在開發(fā)基于某個Design Language的代碼庫時,需要針對該Design Language建立基本的Foundation, Design token, 最后才在此基礎(chǔ)上開發(fā)相應(yīng)的Components

Foundation

在建立代碼庫時,首要的便是先要建立Foundation,這便需要與交互設(shè)計師進(jìn)行反復(fù)溝通,確定基本的布局,顏色,字體字號等。一旦確定后,之后組件的開發(fā)都會利用Foundation里定義好的規(guī)范來進(jìn)行。在代碼實操中,Foundation主要會包含Theme和相應(yīng)的輔助函數(shù)。

Design token

Design token是設(shè)計尺度的固化,它描述了在這個設(shè)計系統(tǒng)中的顏色,字體,邊框等一系列設(shè)計規(guī)格的所有可能取值。Design token與計算機(jī)語言里的枚舉的概念有些類似,在用代碼實現(xiàn)的一套組件的過程中,可以將Design token 分為名稱和值兩部分。名稱一旦定下來,便不可改變,值則可以根據(jù)需要進(jìn)行配置。譬如可以用如下代碼描述一個字體的Design token

// 定義名字
interface FontSize {
  small: string;
  medium: sting;
  large: string;
  xlarge: string;
}
// 定義值
const fontSize: FontSize = {
  small: "12px";
  medium: "14px";
  large: "16px";
  xlarge: "18px";
}

在上面的定義中,我們規(guī)定了在一個設(shè)計系統(tǒng)中字體大小的取值只有四種: small, medium, large, xlarge, 在用代碼來實現(xiàn)的組件庫中,字體的大小只能取這四個類型,每個類型對應(yīng)于一個特定的值。值的可配置化是設(shè)計系統(tǒng)客制化的重要組成部分。得益于這些token的建立,各個角色對遵循于此設(shè)計系統(tǒng)的產(chǎn)品在設(shè)計上能達(dá)到一定程度的共識。

Theme

Theme定義了一個設(shè)計系統(tǒng)的主題調(diào),它包含所有的Design token以及一些相應(yīng)的計算規(guī)則。譬如Button的圓角,顏色,大小會利用Design token進(jìn)行組合,并且當(dāng)鼠標(biāo)懸浮至一個button上時,背景色會根據(jù)button原有的色值按照一定的規(guī)則進(jìn)行計算。

interface Palette {
  ...
  primary: #ffffff;
  action: {
    hover: Function;
  }
}

const palette: Palette = {
  action: {
    // 將透明度變?yōu)?.8
    hover: (color) => color.setAlpha(0.8);
  }
}

這里定義了primary的顏色,而且定義了一個hover的規(guī)則,當(dāng)鼠標(biāo)懸浮到一個button上時,button的色值的透明度便會變成0.8;

Components

Components主要是組成一個界面的最基礎(chǔ)元素以及相應(yīng)的Design Pattern。在代碼層面,需要高度的還原Design Language中定義的組件,以及需要符合軟件開發(fā)的規(guī)范。譬如靈活性,魯棒性等。就最常用的Button來說,如下是一種定義組件的方法:

interface BtnProps {
  variant: "round" | "plain";
  size: "small" | "medium" | "large";
  color: "primiry" | "secondary";
  loading?: boolean;
  children: any;
}

class Button extends Component  {
  .....
}

export default Button

這里主要定義了Button組件的variant,size,color,loading四種屬性,在使用過程中,通過控制這四種屬性來便可以控制組件的形態(tài)。

這便是一個Design System的主要組成部分。當(dāng)然在實際開發(fā)過程中,可能會遇到很多跨角色溝通,跨team合作等溝通合作的問題,也會遇到很多軟件質(zhì)量和設(shè)計上的問題,這些都是在構(gòu)建一個Design System時需要解決和考慮的。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/103707.html

相關(guān)文章

  • 慕課網(wǎng)_《Java實現(xiàn)非對稱加密》學(xué)習(xí)總結(jié)

    摘要:時間年月日星期三說明本文部分內(nèi)容均來自慕課網(wǎng)。秘密密鑰,生成一個分組的秘密密鑰。 時間:2017年4月12日星期三說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:概述 1-1 概述 非對稱...

    dailybird 評論0 收藏0
  • 慕課網(wǎng)_《Java實現(xiàn)Base64加密》學(xué)習(xí)總結(jié)

    摘要:時間年月日星期一說明本文部分內(nèi)容均來自慕課網(wǎng)。多用于網(wǎng)絡(luò)加密。散列函數(shù)函數(shù)或消息摘要函數(shù)主要作用散列函數(shù)用來驗證數(shù)據(jù)的完整性。 時間:2017年4月10日星期一說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個人學(xué)習(xí)源碼:https://github.com/zccodere...

    verano 評論0 收藏0
  • [System Design] 系統(tǒng)設(shè)計 (4) -- Web System Design

    What happened when you visit www.google.com? Type URL in browser: www.google.com(domain)Find the nearest DNS server(Domain Name Service)Send http/https request to the IP addressWeb Server got the requ...

    biaoxiaoduan 評論0 收藏0
  • 慕課網(wǎng)_《Java實現(xiàn)對稱加密》學(xué)習(xí)總結(jié)

    時間:2017年4月11日星期二說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)示例源碼:https://github.com/zccodere/s...個人學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:對稱加密算法DES 1-1 JAVA對稱加密算法DES 加密密鑰=解密密鑰 對稱加密算法 初等 DES --3D...

    tomlingtm 評論0 收藏0
  • java加解密實例

    摘要:序本文主要小結(jié)一下里頭的以及加解密。屬于塊加密,塊加密中有等幾種工作模式。與一樣在加密前需要對數(shù)據(jù)進(jìn)行填充,不是很適合對流數(shù)據(jù)進(jìn)行加密。 序 本文主要小結(jié)一下java里頭的AES以及RSA加解密。 AES showImg(https://segmentfault.com/img/remote/1460000011156406);使用AES加密時需要幾個參數(shù): 密鑰長度(Key Size...

    mengera88 評論0 收藏0

發(fā)表評論

0條評論

Yujiaao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<