Material Design 中使用带有虚影的图形

简介

Material Design 是由 Google 所推出的一套设计语言,旨在让用户更直观、更有效的操作和使用应用程序,这一设计语言规范采用了许多新的设计语言,并通过科学测试来证实其效用。其中就包括在设计中使用带有虚影的图形,这一设计效果在现代的 UI 设计中越来越常见。

本文将深入探讨 Material Design 中使用带有虚影的图形的设计原则、实现方法及其应用。

设计原则

在 Material Design 中,为了让元素更加突出,增加深度感(z-axis),我们经常会使用带有虚影效果的图形来取代或扩展实际存在的元素。虚影不仅可以为元素赋予质感和层次感,还可以帮助用户直观地理解元素的物理位置和空间关系。

虚影的设计原则如下:

  • 虚影是基于光线和角度的,正确的虚影效果需要考虑光线从哪里发出,物体放置在光线上方还是下方等因素。
  • 虚影应该具有一致性,即元素在同一平面上的虚影效果应该相同。
  • 虚影的透明度和模糊度应该与元素的表面贴合度有关,即表面距离比较远的元素应该有模糊度较高的虚影,表面距离比较近的元素则应该有模糊度较低的虚影。
  • 虚影应该尽可能轻薄,不会影响元素的本身美观度和易用性。

实现方法

在实现带有虚影的图形之前,需要注意以下几点:

  1. 向元素容器添加单独的阴影层
  2. 尽量减少使用过多的阴影层
  3. 将阴影层的背景色设置为透明,这样就不会遮挡内容
  4. 阴影的使用应该简洁明了,不要过度使用

下面是一些实现方法:

使用 box-shadow 属性

在 CSS 中,可以使用 box-shadow 属性来为元素添加阴影。box-shadow 属性的语法如下:

----------- ------- ------- ---------- ------------ -----

其中,offsetX 和 offsetY 指定了阴影的偏移量,blurRadius 指定了虚化的距离,spreadRadius 指定了阴影的扩展半径,color 指定了阴影的颜色。

例如:

-- ---- -------- ------- ------- ------- --
----------- --- --- --- --------

使用 Material Design 库

在 Material Design 中,Google 提供了一套开源库,可以让开发者更加便捷地使用 Material Design。该库可以在任何站点上都能快速渲染出 Material Design 风格的元素,包括带有阴影的图形。

使用该库,只需在 HTML 页面引入相关文件即可:

----- ---------------- ----------------------------------------------------------------------------------------
------- ----------------------------------------------------------------------------------------------

然后就可以在页面中使用 Material Design 合适的组件了,例如带有阴影的按钮:

-- ------------------- ----------- --------- ------------ ---------- ----------------------------------

应用举例

在 Material Design 中,带有阴影的图形被广泛应用于各种 UI 元素中,比如按钮、卡片、表单等等。下面是一些 Material Design 应用示例:

以上示例均采用了 Material Design 的规范,并成功的增加了元素的深度感和质感度,同时也符合了用户的使用习惯和预期。

总结

在今天的 UI 设计中,使用户能够快速而有用地识别元素是至关重要的,Material Design 中使用带有虚影的图形可以帮助我们向用户传达更加直观、更加生动的视觉信息,这一效果已经被广泛地应用于卡片、按钮、表单等各类元素中。希望本文能够为前端设计人员和 UI 设计人员提供指导和助力。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/654b2ec17d4982a6eb51e6f5


猜你喜欢

  • 如何在 Webpack 中使用 babel 转译 ES6 代码

    前言 随着前端技术的不断发展,ECMAScript 6(简称ES6)在前端领域也逐渐成为了主流。但是,由于浏览器对ES6的支持程度的不同,导致在进行前端开发时,可能会遇到诸如不同环境下的运行错误、语法...

    1 年前
  • TailwindCSS 中 transition 动画不生效的处理方式

    背景 TailwindCSS 是近年来前端界非常流行的 CSS 框架之一,它提供了丰富的 CSS 样式和响应式设计模块,可以大幅度提高前端开发效率。但在实际使用中,我们可能会遇到一些问题,如 tran...

    1 年前
  • Jest 运行测试时出现 "SyntaxError: Invalid regular expression" 的解决方法

    当使用 Jest 运行测试时,有时会遇到 "SyntaxError: Invalid regular expression" 错误,这是由于在测试代码中使用了无效的正则表达式,导致 Jest 无法解析...

    1 年前
  • ES10 的 Object.freeze() 方法和 Object.seal() 方法详解

    在前端开发中,我们经常需要处理对象的属性和方法,而 ES10 提供了两种方法 Object.freeze() 和 Object.seal() 来保护对象的属性和方法,以防止被误操作或篡改。

    1 年前
  • 详解 ES8 中新增的正则表达式功能

    正则表达式是程序员在前端开发中经常用到的工具,因为它可以有效地解决字符串相关的问题。ES8 中新增了一些正则表达式的功能,让我们更好地处理字符串,提高代码的可读性和可维护性。

    1 年前
  • 在 ES6/ES2015 中使用默认参数值

    在 ES6/ES2015 中使用默认参数值 在 JavaScript 中,使用函数是很常见的操作。在ES6/ES2015中,我们可以通过使用默认参数值来增加函数的可读性和可维护性。

    1 年前
  • 使用 PM2 在 Ubuntu 18.04 上自动化部署 Node 应用程序

    简介 Node.js 已经成为现代 Web 开发的常用工具之一。使用 Node.js 能够开发出高效、响应快速的 Web 应用程序。但是,为了让 Node.js 应用程序稳定和安全地运行,需要使用一个...

    1 年前
  • Mocha 测试中遇到的常见错误 SyntaxError: Block-scoped declarations

    前言 对于前端开发来说,Mocha 是一个常用的测试框架。然而在 Mocha 测试中,使用 ES6 语法会遇到一些问题,最常见的问题就是 SyntaxError: Block-scoped decla...

    1 年前
  • 实战 Web Components 之像素风 UI 组件

    在现代 Web 应用程序中,组件化变得越来越普遍,而 Web Components 技术允许我们创建可重用、独立的组件。如果你想深入了解 Web Components 技术,这篇文章会帮助你掌握实现像...

    1 年前
  • ECMAScript 2020:JS 中的有符号左移和无符号右移

    在 ECMAScript 2020 中,新增加了两个新的移位运算符:有符号左移(<<)和无符号右移(>>>)。这两个运算符在 JavaScript 中的使用场景相对较少,...

    1 年前
  • Flexbox 布局实现一个自适应三栏布局

    Flexbox 布局是一种常用于前端开发的布局方式,它提供了一种灵活、简单的方法来建立用户界面和布局。在本文中,我们将使用 Flexbox 布局来实现一个自适应三栏布局,让用户能够在不同设备上获得更好...

    1 年前
  • 了解 ESLint 规则的优先级与配置方法

    ESLint 是前端开发中常用的代码静态检查工具,可以帮助确保代码质量和规范性。但是,在进行 ESLint 配置时,需要考虑到规则的优先级和配置方法,以最佳方式使用它。

    1 年前
  • Redis 使用过程中出现:OOM command not allowed when used memory > 'maxmemory' 的问题解决办法

    在Redis使用过程中,我们可能会遇到如下错误提示: --- ------- --- ------- ---- ---- ------ - -----------这是由于Redis的内存已经达到设置的...

    1 年前
  • 如何在 Cypress 中处理接口测试

    在前端开发中,接口测试是一个至关重要的部分。而 Cypress 是一个流行的前端测试框架,它不仅可以进行端到端测试,还可以进行接口测试。本文将介绍如何在 Cypress 中进行接口测试,包括如何处理接...

    1 年前
  • Fastify 中使用 Prisma ORM

    Fastify 中使用 Prisma ORM Fastify 是一个快速而低开销的 Web 框架,它使用更快的 Node.js 特性来构建高效的应用程序,而 Prisma ORM 则是一个现代的数据库...

    1 年前
  • 利用 CSS Grid 实现栅格系统的详细教程

    在Web开发中,栅格系统是一种常用的布局方式。利用栅格系统可以灵活地对页面进行布局,同时也可以使页面看起来更加整洁美观。而CSS Grid作为Web开发中常用的布局方式之一,可以实现灵活的栅格系统,让...

    1 年前
  • MongoDB 中的 Cursor 使用技巧

    什么是 MongoDB Cursor MongoDB Cursor 是用于遍历查询结果的对象。在 MongoDB 中,查询操作返回的数据量可能非常大,而且不一定需要全部一次性加载到内存中。

    1 年前
  • 无障碍音频,如何解决?

    在今天的互联网环境中,音频内容已经成为了以往所未有的重要性。随着越来越多的人使用音频来获取信息、接收娱乐,同时,面对越来越严重的贫困、通讯障碍、身体残疾等多种不同的现实挑战,许多人需要用到一个既可以让...

    1 年前
  • 使用 Hapi 和 Inert 插件搭建静态资源服务器

    在前端开发中,我们通常需要启动一个本地的静态资源服务器,方便我们在本地预览和调试项目。此时,我们可以使用 Hapi 和 Inert 插件来搭建一个简单的静态资源服务器。

    1 年前
  • Custom Elements 中应用 CSS Modules 技术的实现思路

    前言 在前端开发中,我们经常需要将一些组件封装为自定义元素(Custom Elements)来提高代码复用性和可维护性。而随着 CSS Modules 技术的越来越流行,我们也有了更好的解决方案来管理...

    1 年前

相关推荐

    暂无文章