设计 v18

Avatar of Chris Coyier
Chris Coyier on

DigitalOcean 提供适合您旅程各个阶段的云产品。 立即开始使用 价值 200 美元的免费积分!

我重新设计了网站! 我永远不会想到“重新设计”这个词而不想到来自 Cameron Moll 的 开创性文章 中的“重新调整”。 我并没有从零开始。 这个设计不是一张空白的设计画布和一个空的代码编辑器。 我怀疑任何未来的重新设计都会是这样。 我从我们已经拥有的东西开始,然后将一些东西移动到别处。 但我移动了太多东西,几乎触及了每个文件,因此值得画一条线,说一句“这就是 v18”。

我在这里保留了一个 非常不完整的设计历史记录

入门

我总是倾向于先在设计工具中四处摸索。 在 Figma 中经过 3 或 4 次尝试(然后在我开始构建后回来完善页脚设计),这就是我最终停下来的地方。

一旦我对视觉效果比较满意,我就跳船开始编码,并在那里做出所有最终决定。 最终产品与这相差无几,但有一些不同之处(并且需要做出 10 倍的决定)。

简洁性

乍一看可能并不像那样,但对我来说,当我进行操作时,核心主题是简化。 不是彻底的简化,就像,20%。

v17 中的页眉有一个特殊的移动版本,并处理打开/关闭状态。 v18 页眉只是一些链接,在小屏幕上会向下移动到下一行。 我在页脚中添加了一个“返回顶部”链接,在您从顶部滚动离开后才会显示出来,以帮助您返回导航。 这种滚动检测(基于 IntersectionObserver)是我用来在返回时“旋转星星”的方法。

我已经可以预见到,网站页眉将是 v18 中会发生重大变化的部分之一,因为那里还有很多需要完善的地方。

Emulated version of CSS-Tricks header on iPhone X

v17 中的搜索表单也具有打开/关闭状态,以及用于结果页面的特殊模板。 我现在全面使用 Jetpack Search,因此我只做 打开它,当您点击搜索图标时。

此搜索由 JavaScript 驱动,因此为了使其更具弹性,它也是指向 Google 搜索结果的有效超链接。

<a 
  href="https://www.google.com/search?q=site:css-tricks.com%20layout"
  class="jetpack-search-filter__link"
>
  <span class="screen-reader-text">Search</span>
  <svg> ... </svg>
</a>

v17 中有各种不同的布局(例如,左侧或右侧的侧边栏)和页眉样式(例如,页眉中的视频)。 现在基本上只有一个。

v17 中的页脚变得相当庞大,为时事通讯表格、社交媒体、相关网站等等提供了完整的版块。 我已将其全部压缩到一个更“传统”的页脚中,如果存在这种东西的话。

现在“卡片”只有一个外观,无论它是文章、视频、指南等。 会有一些细微的差异,具体取决于作者是否相关,它是否包含标签、号召性用语等,但它们都具有相同的底层(和模板)。 主要的变化是“迷你”卡片,现在在热门文章、每月混合和文章内相关文章卡片中几乎一致地使用。

时事通讯区域得到了相当大的简化。 在 v17 中,/newsletters/ URL 类似于时事通讯的“登录页”,您可以从侧边栏查看最新内容。

现在,该 URL 只会将您重定向到最新的时事通讯,以便您可以像任何其他内容一样轻松阅读,还可以导航到过去的期刊。

WordPress 拥有每篇文章一张特色图片的概念。 您不必使用它,但我们使用了。 我喜欢它如何自然地集成到其他事物中。 比如它会自动成为社交媒体集成的图片。 我们在 v17 中将它用作一个微妙的 background-image

也许在一个完美的世界里,一个完美的网站将有一个完美的內容策略,因此每篇文章都有一张完美的特色图片。 匹配的配色方案、精确的尺寸、非常可预测。 但这不是一个完美的世界。 **我更喜欢允许混乱的系统。** 我们特色图片周围的设计接受任何东西。

  • 一个网站品牌渐变会叠加在上面,并使用 mix-blend-mode 与其混合,使它们看起来都相关。
  • 唯一的例外是,它们将根据需要进行调整大小/裁剪。

有了这个,我们的特色图片将在许多环境中使用。

主页上的大型特色文章
卡片布局
如果垂直空间有限(高度 @media 查询),则会降低特色图片高度。
文章页眉使用一个非常淡化/放大的版本作为分层背景的一部分。
社交媒体卡片

CSS 统计数据

只查看两个版本之间的 CSS (Project Wallace 在这里有帮助)。

Project Wallace dashboard showing 23.78% drop in CSS file size and other similar metrics.

缩小并使用 Gzip 压缩后的主要样式表为 16.4 kB。 也许不像一个全实用程序样式表那样小,但这并不是我担心的尺寸,尤其是因为它在没有真正尝试的情况下大幅下降。

并非真正的速度恶魔

CSS-Tricks 上使用了相当多的资源。 如果速度是我的首要任务,我会做的第一件事就是开始删除正在使用的资源。 我认为,这会使网站变得不那么有趣,但可能不会对内容造成太大影响。 我只是不想这样做。 我宁愿找到一些方法,让网站在保持视觉丰富性的同时,速度相对较快。 也许将来我可以 探索一些这些东西,以便允许创建一个更轻量级的网站版本,该版本以基于标准的方式供用户选择。

关于这些资源……

  • 图片的体积最大。 几乎每页都有相当多的图片(10 多个)。 我尝试使用优化的格式从 CDN 提供它们,并使用响应式图片语法进行调整大小。 我还可以做更多事情,但我已经有了良好的开端。
  • 仍然有大约 180 kB 的 JavaScript。 Jetpack Search 功能由它提供支持,它是体积最大的模块。 加载了一个 polyfill(可能是由它加载的),我应该看看是否可以删除它。 我仍然使用 jQuery,我肯定会考虑在下一轮中删除它。 并不是反对 jQuery,我只是没有那么频繁地使用它。 我所做的大部分工作都是用原生 JavaScript 编写的。 Google Analytics 就在里面,其余的都是微不足道的脚本(讽刺的是)用于性能问题或广告。
  • 字体重约 163 kB,它们没有以任何特别花哨的方式加载。

这三者都是速度改进的目标。

然而,嘿,桌面 Lighthouse 报告还不错。

Lighthouse scores:

98 = Performance
95 = Accessibility
93 = Best Practices
92 = SEO

这些结果来自主页,由于它包含大量内容网格,因此是较重的页面之一。 这里仍然有很多尝试采用性能最佳实践。

  • 所有内容都从全局 http/2 CDN 提供,并进行缓存。
  • 资产尽可能优化/缩小/合并。
  • 资产/广告尽可能延迟加载。
  • 高级托管。
  • 网络上的 HTML + instant.page

我还确保在设计前后都运行了 SpeedCurve 报告,结果令人鼓舞。

下降(良好)发生在新设计发布之后。

我希望当您在网站上点击并返回后,它会感觉非常流畅。

字体

它再次是整个网站上的 Hoefler&Co.

我将大部分文章排版保留原样,因为那是我在 v17 中进行的最后一次设计冲刺之一,我有点喜欢它最终呈现出的样子。 不过,现在 clamp() 已经出现了,我正在使用它来为网站的大部分内容执行流体排版。 例如,页眉。

font-size: clamp(2rem, calc(2rem + 1.2vw), 3rem);

aXe

我在发布页面之前使用了axe DevTools插件进行测试,发现了一些需要修复的问题。这并不是对无障碍性的深入研究,而且这次也没有进行完整的重写,因此我不希望无障碍性方面会有太多变化。我特别希望解决这里遇到的任何问题,所以请不要犹豫,告诉我!

错误

我相信有一些错误。我不希望在这个评论区讨论错误。如果您遇到错误,请发送邮件到[email protected]。🧡