Issue 14 \\ Rhythm & Grid 节奏与网格

节奏,是运动在空间和时间中的形式,是任何设计系统的基础。网格定义了布局中空间和元素的比例,使秩序节奏感成为可能。

垂直节奏,指一页中元素在Y轴的排布,在印刷中相对容易达成,但在Web上很困难。

在这个问题上,UI设计师Tyrick Christian解释了他怎样与前端工程师协作来连通Photoshop与浏览器的排版底线创造节奏感,为MailChimp UI增添微妙的美感。前端工程师Mardav Wala讲得更远,解释了他怎样用数学能力将垂直网格引入CSS。

在底线上设计

by Tyrick Christian

在过去一年里,我们重设计了网站移动app,并设计了一些新的平板app,这些项目没有减慢我们对新特色的发展。短时间内的清晰沟通对所有项目都非常重要,并且还要保持这些产品给人感受的一致性。

把人们移入办公室的共享空间能方便传递灵感。比如,在重设计之前UX团队在小办公室工作;而过去的一年中,我们多次在MailChimp中来回走动,接触市场、移动、工程和支持部门。我们是移动的。这是非常好的体验,它促使我们和其他团队沟通,了解某些决策产生的过程和原因,并在设计和开发过程中发现问题。

我们发现的最主要的设计问题是设计和开发的尺寸不一致。虽然我们在早期设计过程中为字体、网格和颜色等设立规范,而后又为一些基础部件例如按钮、表格、表单等设计样式,但最终产品和Photoshop里的初始版本并不相像。

为了解决这个问题,我们重提了讨论过的想法:在pattern library中使用底线网格建立每个部件。我们评估app中的页面并把它们打散成原子元素。因为MailChimp的UI多是字体,对齐底线并以此构建更大的元素显得非常可行。设计和前端团队达成共识:PS文档中的排版方式能与markup配合。于是我们开始修改按钮、表格、下拉框、slats等,直到每个部分都在底线上。

基本上,pattern library的每部分都非常接近合适布局,因为我们一开始就在6px的增量上工作。我们发现一些小误差最终变成大误差。比如,设计师测量字间距是从上一行字母底线到下一行字母的ascender(超过字母x的部分),而开发人员会测量每个字母的行高(line-height)及此间距离。差距可能只有2px,但一页中多次重复节奏感会变得非常不同。


PS,AI和其他印刷为主的apps会把字体设置在传统底线上,但CSS会把字体设置在container中,制造了设计师和开发人员间的误解。

既然每个人都用相同的元素工作,无论是mark-up还是Photoshop,且所有部件都与相同网格对齐,我们发现项目从始至终的沟通顺畅很多。由于Mailchimp是响应式的,我们在Photoshop中制作了两个pattern library版本:一个针对PC,一个针对移动端。这让UX组和市场组关系更近。我们致力于多项目共享样式,使用类似的网格、底线和风格。

移动端显示应用了相同基线,使设备和显示大小都有协调感。

回顾这个过程,像其他新过程一样,响应式设计有陡峭的学习曲线。我能自信地说基线能解决所有问题吗?不。我们的工具并不能完美适应响应式设计,我们也在继续探索新技术和新应用。同时,这个简单的视觉工具帮助我们创造新语言,使设计师和开发人员都能制作出美丽实用的作品。这是我们的目标。


字体严谨

by Mardav Wala

最近的MailChimp重设计给我们仔细思考app布局的机会。现在用网格布局已是小菜一碟,但在Web上获得垂直节奏感——内容对齐底线网格——仍是痛苦的事,尤其很多web app的内容千差万别。在解决了设计和代码间最初的不一致后,Tyrick在前文描述了前端和设计师团队最终使用相同语言的案例。

正如Richard Rutter于2006年发表在24 Ways的文章所说,网页设计的垂直韵律感需要细心运用line height、margin和padding。技巧在于找到合适的line height,这划定了计算margin和padding的基础。

虽然MailChimp内容很多,仅有极少内容由文字段落组成;几乎所有信息显示为list,form,tables,charts或data blocks。因此,我们没有使用大尺寸line height,这会导致大margin和padding。我们根据app里的所有元素使用了最小可能值6px。6px底线网格由此而来。

你可能想知道我们为什么使用6px作为网格和排版的基础单位。我们测试了一系列基础单位,最终发现6px能翻倍为12px,18px,24px等尺寸,均为合适的尺寸和margin。它在按钮、表格区等小元件上也很好用。这使我们创建任何UI都能获得变通和优雅。

在早期的设计过程中,我们决定把margin间隔用于元素底部,让垂直节奏感更易保持。在MailChimp,改变是很正常的事。我们每四周发布新特性和新改进。在追求垂直节奏感时,我们必须设计系统灵活性来使新模块引入不会破坏页面层级。单项margin助我们一臂之力。

我们用“底线”层在浏览器中显示底线。这是我们重设计的页面之一。

简单的数学

因为我们的UI建立在6px的底线网格中,所有的line height,margin和padding都需要遵循6的倍数以保持垂直节奏感。实践证明这是对的,垂直节奏感确实得以保持。

而字体可以在保持节奏的同时设置任何大小。我们的基本字体大小为15px,我们认为这个大小在任何场景都能识别,也不回让UI显得拥挤。文章《best practices》指出,将line height设置为字体大小的1.5倍有助于提高识别度。我们的基础字体大小是15px,line height就应为22.5px(15px*1.5)。但由于底线网格植根于6px,我们把line height微调为24px,将padding、margin和line height在布局上串联。用这个数学方法,我们把这些比例运用在app的每个部件上。

对于标题和所有其他字体尺寸,line height也都是6的倍数并基于字体尺寸计算。为了简单明了,下面的例子使用像素单位。

h1{

font-size: 40px;

line-height: 48px;

}

.small-meta{

font-size: 13px;

line-height: 18px;

}

规则外的特例

图片和图表有自己的规律,时常破坏网格。他们的大小无法预测,也不能容易地调整到底线上。但因为由margin和padding定义的垂直间隔没变,垂直节奏感并没有受影响。

有border的部件也会破坏底线网格,因为border是默认设置,并未计算在line height内;它们增加了高度。 不过也有变通方法:把border也计算在部件总体高度中。也许纯粹主义者会觉得,如果border超过1px,视觉就会失衡。他们是对的。力求对准水平标尺(horizontal rule)、带border部件对齐底线网格并不总是对的,因为只要margin、line height和padding是对的,垂直节奏感就不会被border和horizontal rule影响。

下面是一个例子展示我们如何修整在list中的padding来说明1px border隔开部件:

@base-unit: 6px;

.dotted-list{

margin-bottom: (@base-unit * 2);

li{

padding-top: (@base-unit * 2)

padding-right: 0;

// 1px less padding bottom

padding-bottom: ((@base-unit * 2) - 1);

padding-left: 0;

border-bottom: 1px dotted #c0ffee;

}

}


这是一些部件和它们的padding,这确保了它们正确地排在底线上,即使有border。

图表也可以被调整来适应底线比例。如果图表在浏览器窗口改变尺寸时保持相对比例,设置图表高度和垂直margin为基础单位的倍数。如果图表不保持比例,只要设置垂直margin并保持高度不变。

由于图片高度会随宽度变化,我们不能用高度来安排底线网格。在这些情况下,我们保证图片margin四周被设定好,保证垂直节奏感。

用特殊规则和特例写代码有造成混乱的风险。与组员沟通、代码做好注视会减轻这些问题。在pattern library中保存变化也会很有帮助。

我们也发现,正如Mark Boulton在“content out”中推荐的那样,微调模块级别的垂直距离会比改进整个网页框架更有效果。如果每个模块无论放在页面何处都能紧贴底线网格,垂直节奏感和垂直层级会自然而然得以保持。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,725评论 1 92
  • 在学习weex的过程中看到了常用标签相关的内容,为了自己以后能够快速查阅特整理出此文档。 a 简介组件定义了指向某...
    TyroneTang阅读 4,641评论 1 3
  • 不会用代码框,所以看着有些乱套,,,,html部分 <!DOCTYPE html> 迅雷看看 ...
    这就是个帅气的名字阅读 1,525评论 0 0
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 3,147评论 0 11
  • 我这个人总是为过去发生的事情,跺脚后悔,甚至在做其他事情时还在为过去发生的事情走神,其实我很明白,这样不好受的只有...
    阙然阅读 362评论 0 0