Material Design的SVG图标使用与制作教程

Material Design是Google在2014年推出的一种设计语言,其目的是为了提供一种简洁、明了、直观、可应用于各种不同设备的设计方案。SVG作为一种矢量图形格式,与Material Design也是紧密相关的。在本文中,我们将向您介绍如何使用和制作Material Design的SVG图标。

Material Design的SVG图标

Material Design的SVG图标是无缝对接Material Design设计的一种重要元素。在开发过程中,您会发现许多Material Design的组件和控件都涉及到图标的使用。而这些图标都是基于SVG格式的。

常见的Material Design中的SVG图标包含两种:

  1. 嵌入式内联图标:嵌入到HTML中,通过标签使用。比如:face
  2. 独立图标:存储在单个SVG文件中,可以通过URL引用。比如:

嵌入式内联图标

使用嵌入式内联图标非常简单。唯一需要注意的是,需要在文档中引用Material Design图标字体。

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

上述代码中,我们引用了Google的Material Design图标字体。这样,我们才能使用material-icons这个类名。在i元素中,我们填入的face是图标名。您可以在Google Material Icons官网找到适合自己应用的图标及名称。

独立图标

独立图标与嵌入式内联图标类似。唯一的不同是,您需要将图标存储在单独的SVG文件中,并在文档中使用Image标签来引用该文件。

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

制作Material Design的SVG图标

虽然可以直接使用Google Material Icons官网提供的图标,但如果您需要自定义一些图标,那么就需要开始制作Material Design的SVG图标了。

SVG示例

我们来看一下下面的SVG示例代码:

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

这是一个Material Design图标的最基本结构。通过d路径属性,我们定义了一个路径。这个路径可以是直线段、曲线等等。关于SVG的路径描述,请参考MDN web docs - SVG paths

图标大小

在设计过程中,需要根据实际需求调整SVG图标的大小。比如,我们通常将Material Design的SVG图标缩放为24x24像素。

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

我们添加了width和height属性,并设置为24px。这样,我们就将SVG图标缩放为24x24像素。

图标颜色

Material Design样式指南建议在使用图标时,使用单色的(在同一个颜色下)版本。为了实现这一点,我们可以更改SVG图标的颜色。

给SVG路径添加样式属性,就可以很容易地更改图标颜色。

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

在path元素上添加了样式属性,fill的值设置为#515151,即灰色。

图标阴影

SVG还允许添加图标阴影。

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

在SVG元素内定义了一个filter元素,这个filter元素包含多个fe元素,fe的作用是对SVG图像进行处理,以达到阴影效果。本例子中,我们将阴影交由JS处理。注意,要在SVG元素内定义filter元素。

总结

本文介绍了Material Design的SVG图标的使用和制作技巧。无论您是想自定义Material Design风格的图标还是仅仅使用Google提供的Material Design图标,本文描述的内容都对您有帮助。如果您想了解更多关于SVG的技术细节,请阅读MDN web docs - SVG

示例代码

编辑一个SVG图标

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

缩放为24x24像素

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

改变图标颜色

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

添加到背景颜色

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

添加阴影

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

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


猜你喜欢

  • 使用PWA开发可离线的高性能应用

    什么是PWA PWA是Progressive Web App的缩写,直译为渐进式Web应用。它是结合Web技术和Native应用的优点,旨在为用户提供更加优秀的应用使用体验。

    1 年前
  • Next.js 项目如何实现权限管理

    在现代的网站和应用中,往往需要一个完整而安全的权限管理系统,以保证用户的权益和数据的安全。在前端开发中,Next.js 提供了一些有用的工具和库,我们可以很容易地实现一套强大的权限管理系统。

    1 年前
  • ES11 中的逻辑赋值运算符详解

    ES11 中的逻辑赋值运算符详解 在 ECMAScript 2020(也就是 ES11)中,新增了逻辑赋值运算符,即 &&= 、||= 和 ??=。

    1 年前
  • 如何在 CSS Grid 中使用网格布局?

    CSS Grid 是一种新的布局模式,它可以用来创建复杂的网格布局,可以让我们更轻松地布局页面。那么,如何在 CSS Grid 中使用网格布局呢?本文将从基本概念入手,详细讲解如何使用 CSS Gri...

    1 年前
  • # Mocha 测试框架中如何使用 Sinon 插件

    Mocha 测试框架中如何使用 Sinon 插件 在前端开发中,测试是不可缺少的一环。而 Mocha 是一个流行的 JavaScript 测试框架,它提供了丰富的函数和 API,使得测试变得更加容易和...

    1 年前
  • 关于 Babel 的一些深入解释

    如果你是一名前端开发人员,你一定不会陌生于 Babel 这个工具,它是一个 JavaScript 编译器,可以将 ECMAScript 6(ES6)及以上版本的代码转换为可以在当前主流浏览器中运行的代...

    1 年前
  • Jest 测试 React 组件,如何模拟原生事件?

    在 React 应用的开发过程中,测试是一项非常重要的工作。Jest 是一个测试框架,可以用于测试 React 组件。在进行 React 组件测试时,我们通常需要模拟事件来测试组件在不同情境下的行为。

    1 年前
  • GraphQL 快速入门:一本全面的指南

    GraphQL 是一种新型的 API 查询语言,用于构建灵活、高效、可靠的应用程序。它是由 Facebook 开发的并在 2015 年开源,逐渐在全球范围内得到了广泛的应用。

    1 年前
  • Server-sent Events 和 Comet:哪一个更适合 Web 应用程序?

    随着 Web 技术的不断发展,前端开发变得越来越重要。在这个时代中,对于 Web 应用程序来说,数据的实时推送和服务端的持久连接变得越来越重要。这两个问题可以通过两种技术实现:Server-sent ...

    1 年前
  • 「ES12」中引入了 RegExp 的 matchAll() 方法详解

    在 JavaScript 开发中,正则表达式一直是非常重要的一部分,它可以帮助我们处理和筛选字符串,但是在以往的版本中,正则表达式的处理有一定的局限性,比如只能通过 exec() 和 test() 方...

    1 年前
  • Serverless 应用中的数据监控解决方案

    随着云技术和 Serverless 架构的不断发展,一些传统的监控和日志处理方案已经无法满足不断变化的业务需求。同时,Serverless 模型下的数据监控问题也更为复杂,如何高效又准确的进行数据监控...

    1 年前
  • CSS Reset 的应用场景分析

    前言 对于前端开发者来说,CSS Reset 是一个非常常见的话题。在日常开发中,一个页面的编写必然离不开样式的定义,而不同浏览器对于样式的默认效果有所不同,这就需要开发者在编写样式时花费更多的精力去...

    1 年前
  • ES6 中的函数式编程

    概述 函数式编程是一种编程范式,其核心思想是使用函数进行编程。而在 ES6 中,加入了一些新特性,例如箭头函数、扩展运算符等,使得函数式编程在 JavaScript 中得到了更好的支持。

    1 年前
  • 手把手带你写 React 组件测试 ——Enzyme

    React 组件的测试是前端开发中非常重要的一环,可以帮助我们确保组件的质量和稳定性。Enzyme 是一个流行的 React 测试工具,它提供了一套易于使用的 API,可以帮助我们快速编写组件测试。

    1 年前
  • Fastify 中如何使用 Sequelize 进行 ORM 操作

    引言 随着前端技术和服务端技术的迅猛发展,越来越多的项目采用前端和服务端分离的架构。在这种架构下,前端工程师需要熟悉服务端相关技术,如 Node.js、ORM 等。

    1 年前
  • Mongoose 中使用 Date 类型的方法详解

    在开发前端应用时,使用 Mongoose 这个 Node.js 的 ORM 框架来操作 MongoDB 数据库是常见的方式。在 Mongoose 中,Date 类型是非常常见的一种数据类型。

    1 年前
  • Redis 常见性能问题与调优方法总结

    前言 Redis 是一款高性能的内存数据库,被广泛应用于缓存、队列等场景。但是在实际使用中,我们也会遇到一些性能问题。本文将总结 Redis 常见的性能问题,并提供相应的调优方法。

    1 年前
  • RxJS 中的 zip 操作符详解

    在 RxJS 中,zip 操作符可以将多个 Observable 对象的值按相应位置合并为一个 Array 对象,并将该 Array 对象作为输出值发射出去。本文将对 zip 操作符进行详细的讲解,包...

    1 年前
  • 在 React 中使用 Custom Elements 的实践与经验总结

    前言 随着 web 技术的日新月异,前端开发也越来越重要,其中 React 作为一种非常流行的前端框架,其重要性也越来越凸显。本文主要讲解在 React 中使用 Custom Elements 的实践...

    1 年前
  • 模拟 Vue-cli 项目中的打包流程

    Vue-cli 是一个非常流行的 Vue.js 项目脚手架,它提供了许多工具和配置,可以帮助我们快速构建基于 Vue.js 的 Web 应用程序。其中最重要的一个功能就是打包构建,这可以让我们把项目转...

    1 年前

相关推荐

    暂无文章