什么是网页原子设计模式(Atomic Design)

techbrood 发表于 2014-04-16 18:23:33

标签: 原子设计, 设计系统, HTML元素周期表

- +

网页设计的理念和方法正在随着设备多样化以及网页设计方法的发展而发生显著的演进。
本文简要介绍网页设计领域最新的设计理念:原子设计(Atomic Design)模式。
我们不是设计页面,我们在设计可复用的系统组件库。回忆下桌面本地应用的发展历程,历史总是有某种程度的相似。- iefreer

We’re not designing pages, we’re designing systems of components -- Stephen Hay

 

随着网页设计技术水平的不断发展,我们认识到需要建立周到的设计系统,而不是简单的网页集合。

在创建设计系统上已经有很多的讨论,大多数关注于建立颜色,排版,网格,结构及类似元素。这些方面的思考当然是重要的,不过我对这些方面不是很感兴趣,因为最终这些都变得比较主观。最近我更感兴趣的是我们的界面是怎么构成的以及我们如何可以更有条理的构建设计系统。

在寻找灵感和概念类比中,我总是会回到化学领域。主要的思考是一切物质(不论是固体,液体,气体,简单的,复杂的)都是由原子所构成,这些原子结合在一起形成分子,然后组合为更复杂的组织,最终创造出我们所熟知的宇宙万物。

同样的,界面由更小的组件组成。这意味着我们可以把整个的界面分解为基本构建块并从那里开始构建系统。这就是原子设计(atomic design)的基本思想。

Josh Duck的HTML元素周期表(HTML Periodic Table)对网页设计原子元素做了一个很好的分解。(Noted: Not available on his blog now, but has been copied a lot)

什么是原子设计(What is Atomic Design)

原子设计是创建设计系统的系统方法。分为5个层次:

原子(Atoms)

分子(Molecules)

组织(Organisms)

模板(Templates)

页面(Pages)

让我们更详细的探讨下每个阶段。

原子(atoms)

原子是物质的基本构造块。具体对于网页界面而言,原子是我们的HTML标签,比如表单标签(label),输入框(input)或者一个按钮(button)。

原子可以包括更多抽象元素比如调色板,字体乃至界面中更无形的部分比如动画。如同自然界的原子都相当抽象,单独而言并不是那么有用。然而,它们很适合放在一个模式库的语境中进行引用,这样你可以容易的看到全局样式的展示。

分子(molecules)

当我们开始把原子组合在一起的时候,事情就会变得更有趣和真实。分子由一组原子结合而成,是复杂元素的最小基本单元。这些分子有自己的功能属性并形成我们设计系统的骨干。

比如,一个表单标签,输入框或者一个按钮单独的情况并不能完成一个用户功能,但是把它们组合在一起形成一个表单后,现在它们能共同完成一个任务比如搜索。

molecules for search functionality

从原子构建一个分子可以促进“做一件事并做好”的精神。尽管有时候分子可能会比较复杂,从经验法则来说它们应该是可以被复用的相对简单的原子组合。

组织(organisms)

分子是我们需要处理的一些完成某个局部功能的界面区块,然后我们就可以把这些分子组合起来以构成组织。组织是由一组分子联合起来所形成的相对复杂,独立的界面功能块。

possitive(6) views8592 comments0

发送私信

最新评论

请先 登录 再评论.
相关文章
  • Monaco Editor 编辑器拷贝粘贴功能调用和获取选中文本

    有时候需要在monaco editor外部调用编辑器的内置功能比如希望在页面主工具栏实现一些快捷操作。button

  • 谷歌ARCore技术特性简介

    谷歌美国时间2017.8.29号刚发布了ARCore预览版,这是一个类似于苹果ARKit的增强现实SDK,在此之前,谷歌虽然已投资AR平台Tango,但由于需要特定的硬件和传感器,...

  • 创建非矩形网页页面元素的常用技术和实例代码

    非矩形设计正在变成一种时尚,比如波浪形、菱形、三角形等:而随着技术发展,这种设计在技术实现上也变得更容易。本文以最简单的三角形为例,演示使用5种方法来...

  • WebGL、Asm.js和WebAssembly概念简介

    随着HTML技术的发展,网页要解决的问题已经远不止是简单的文本信息,而包括了更多的高性能图像处理和3D渲染方面。这正是要引入WebGL、Asm.js和WebAssembly这些技...

  • CSS3属性选择器特性使用详解

    CSS3除了引入动画、滤镜(用于特效)以及新的布局技术外,在选择器(selector)方面也有增强。属性选择器根据元素的属性(attributes)来匹配。这可以是一个单独...

  • JavaScript语言多编程范式简介

    和C++等语言类似,JS支持多范式(paradigms)编程。我们常常混合这些范式来完成一些大型Web项目。JS支持3种编程范式:命令式、面向对象和函数式。命令式(Imperative JavaScript)命令式就是简单的从上而下完成任务,流水账过程式编码风格:function

  • 如何使用CSS3合成模式(blend-mode)和滤镜(filter)实现彩色蜡笔(时光机)照片特效

    在之前的文章中我们已经详细讲解过CSS3滤镜(filter,也可称之为过滤器)的工作方式,本文将实现一个当下流行的时光机相片特效实例来说明其实际用途。
    我们...

  • 深入理解Three.js(WebGL)贴图(纹理映射)和UV映射

    本文将详细描述如何使用Three.js给3D对象添加贴图(Texture Map,也译作纹理映射,“贴图”的翻译要更直观,而“纹理映射”更准确。)。为了能够查看在线演示效...

  • Three.js 对象局部坐标转换为世界坐标

    在Three.js中进行顶点几何计算时,一个需要注意的地方是,需要统一坐标系。比如你通过Three.js提供的API创建了一个球体网孔对象,那么默认情况下,各网孔顶点的...

  • Blender2.7 快捷键一览表

    通用操作
    停止当前操作:ESC
    快捷搜索:SPACE撤销:ctrl+z重做:ctrl+shift+z渲染:F12
    单选:鼠标右键(RMB)全选:A
    框选:B
    刷选:...

  • WebGL入门教程4 - 使用纹理贴图(Texture Map)

    3D建模和纹理贴图的关系就好比人体和皮肤(或着装)的关系,3D建模用来处理空间属性,而贴图适合用来处理细腻的表面属性。如果不使用贴图,而想在表面达到足够的...

  • IE各版本CSS Hack(兼容性处理)语法速查表

    为了兼容IE各个版本,需要在CSS中添加额外的代码,比如以前常用的_width。之所以工作,是因为浏览器会忽略不能解析的样式规则,因此举个例子来说,把_width写在w...

  • D3.js读取外部json数据

    D3.js是一个很好的数据可视化工具,支持从web服务读取json数据,或者从外部文件如.json, .csv文件中直接读取。由于部分服务比如flickrs上的图文数据服务需要VPN...

  • 如何使用CSS3实现一个3D商品标签

    使用3D缎带形状的标签是常见的一个设计模式,用在商品折扣、文章标题或网站推荐信息上,来突出显示重点内容,吸引用户视觉焦点。实现的方法有2种,一种是使用背...

  • 使用requestAnimationFrame和Canvas给按钮添加绕边动画

    要给按钮添加酷炫的绕边动画,可以使用Canvas来实现。基本的思路是创建一个和按钮大小相同的Canvas元素,内置在按钮元素中。然后在Canvas上实现边线环绕的动画。...

  • 更多...