什么是网页原子设计模式(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) views8623 comments0

发送私信

最新评论

请先 登录 再评论.
相关文章
  • A-Frame WebVR(网页虚拟现实)快速开发入门教程

    WebVR和WebGL应用程序接口使得我们已经可以在浏览器上创建虚拟现实(VR)体验,但从工程化的角度而言,开发社区还需要更多方便强大的开发库来简化编程,Mozilla的

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

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

  • JavaScript事件模型图解

    在JavaScript中用户交互的核心部分就是事件处理。本文为对事件模型和处理机制的总体性描述。Event是什么?
    event是用户操作网页时发生的交互动作,比如clic...

  • 常见面试题JavaScript闭包(ES5语法)

    JavaScript闭包(Closure)是常见的JS面试题,是否理解闭包是一个简单的区分JS初级和高级程序员的判例。几乎每个JS程序员都在使用闭包,有意或无意间。比如编写一个jQuery鼠标点击处理函数:$(function()

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

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

  • 使用HTML5 Canvas实现的界面元素截屏功能

    如果网站出现问题,常常需要截图来提交反馈,这个功能很实用。使用HTML5的Canvas可以实现这个目标。我们首先引入

  • Babylon.js入门教程和开发实例

    Babylon.js是一款WebGL开发框架。和Three.js类似。主要的技术区别是Three.js还试图回退兼容CSS 3D。Three.js是完全社区推动的,比Babylon.js要成熟些,而Babylon...

  • 三维向量的简单运算和实用意义

    在WebGL的实际应用中我们广泛使用向量的几何运算来计算角度、距离,判断点线、点面之间的关系,比如物体之间的碰撞检测。本文简要介绍三维计算机图形学中常用的...

  • 纹理基础知识和过滤模式详解

    1、 为什么在纹理采样时需要texture filter(纹理过滤)。
    我们的纹理是要贴到三维图形表面的,而三维图形上的pixel中心和纹理上的texel中心并不一至(pixe...

  • Three.js入门教程4 - 创建粒子系统动画

    嗨,又见面了。这么说我们已经开始学习Three.js了,如果你还没有看过之前三篇教程,建议你先读完。如果你已经读完前面的教程了,你可能会想做一些关于粒子的东西。让我们直面这个话题吧,每个人都爱粒子效果。不管你是否知道,你可以很轻易地创建它们。

  • Three.js入门教程1 - 基础知识和创建一个红色球体

    [ TECHBROOD注:Three.js是一个主流的开源WebGL库,WebGL允许使用JavaScript直接操作GPU,在网页上实现3D效果。
    Google的工程师Paul在网站aerotwist.com上...

  • HTML网页布局:静态、自适应、流式、响应式

    静态布局(Static Layout)即传统Web设计,对于PC设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅被遮掩部分;对于移动设备,单独设计一个布...

  • Three.js 3D打印数据模型文件(.STL)加载

    3D打印是当下和未来10年产品技术主流方向之一,影响深远。对于电子商务类的3D打印网站,一个主要功能是把商品以3D的方式呈现出来,也就是3D数据可视化技术。HTML...

  • 如何使用CSS3/SCSS实现逼真的车窗雨滴效果

    在天气预报类的Web移动应用中,常常需要实现屏幕的雨滴效果,表示阴雨天气。感觉上比较神奇,其实想通了,这个效果的实现只需要一点物理知识和CSS3的简单变换。实现一个小雨滴首先雨滴是一个个小的椭圆形元素:.raindrop

  • 更多...