在網頁中加入預設或自定義 icon 通通搞定 - Material Symbols 使用攻略

閱讀時間約 11 分鐘
以往開發網頁經常使用到 Google 的 Material Symbols 服務,但大多都是直接引入預設設定,最多就是在官方提供的簡易編輯器做一些 icon 樣式填滿、線框的調整而已。
仔細看了官方文件之後,才發現原來還有一些設定可以做調整,使用上更加彈性,因此寫了這篇文章記錄下來。
Google Fonts - Material Icons 介面
如果使用 Material Symbols 時你也有過以下疑問,這篇都會提到:
問題一、FILL, wght, GRAD, opsz 這些究竟代表什麼意義?
問題二、需要在一個網頁中同時引入填滿與線框樣式的 icon
接下來就讓我們進入問題一,了解一下 FILL, wght, GRAD, opsz。

Material Symbols 各個軸線的意義

在 Material Symbols 中控制 icon 樣式,主要透過以下四個軸線:

FILL 軸

  • 數值只有 0 和 1,0 代表為線框 icon,1 代表填滿的 icon
  • 預設值為 0

wght 軸

  • 定義筆畫粗細
  • 數值範圍介於 100~700 之間,數字越大筆畫越粗
  • 會影響到符號的整體大小

GRAD 軸

  • 數值介於 -25~200 之間
覺得蠻像效果沒那麼顯著的 wght,查看官方文件有提到使用時機:
  • -25:可用在深色背景,減少眩光
  • 200:讓符號更佳醒目
目前先記錄這樣,如果有新發現再來更新這部份。

opsz 軸

  • 數值介於 20dp 到 48dp 之間
  • 筆畫粗細會自動跟著圖示大小改變
這部分可以到官方網站,右邊有簡易的編輯器,可以調整數值看看效果。

Material Symbols 引入方式

有三種方法,差別在於是否需要自定義 icon 樣式,與是否要下載到本地使用
  1. Google Fonts API - 使用預設設定
  2. Google Fonts API - 載入變數字體
  3. 下載到本地
這邊 Google Fonts API 使用上沒有想像中複雜,就是一段 HTML 語法要貼到 <head> 裡而已

方法一:Google Fonts API - 使用預設設定

  • 這種方法可以先在 Google Fonts 提供的編輯器做微調,但無法直接在程式碼中進行更改
  • 如果網頁設計稿中全部的 icon 都是相同樣式,可以採用該方法
在 HTML 文件的 <head> 裡放入以下語法,即完成引入:
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined" rel="stylesheet" />
如果沒有做任何微調的話,各個軸線的預設數值分別為:
  • wght:400
  • GRAD:0
  • FILL:0
  • opsz:48

方法二:Google Fonts API - 載入變數字型

  • 此方式可以在程式碼中透過這四個軸,個別設定 icon
  • 當網頁設計稿中的 icon 有不同樣式,可使用該方法
在 HTML 文件的 <head> 裡放入以下語法,即完成引入:
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" rel="stylesheet" />
上面連結裡最後出現的 number..number,代表的是數值使用範圍,例如 20..48,表示的就是 20~48 數值皆可使用,且對應的是 opsz 軸。

方法三:下載到本地

  1. 到此官方 Github下載需要的字型檔案
  2. 在 CSS 中引入檔案
@font-face {
font-family: 'Material Symbols Outlined';
font-style: normal;
src: url(/material-symbols.woff) format('woff');
}
3. 額外在 CSS 中寫入樣式
因為前面兩個方式是從官方提供的 API 直接引入 icon,預設已帶有這些設定,目前是要自行下載到本地使用,所以設定要另外自己加上去。
如果沒有以下設定,Material Symbols 是會跑不出來的哦
.material-symbols-outlined {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
}
介紹到這邊,大致上就知道 Material Symbols 的設定和使用方式,下面我們來一個狀況題吧。

狀況題:在同一網頁載入填滿 / 線框 icon

這邊使用「方法二 Google Fonts API - 載入變數字型」來進行

步驟1:引入變數字型

<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" rel="stylesheet" />

步驟2:在程式碼中自定義樣式

這步驟有兩種做法,使用其中一種就可以囉
寫法一:在 HTML 標籤的 style 屬性寫入 Google Fonts 的軸線設定
//直接針對父容器做設定,裡面的 icon 都會一起吃到樣式
//注意這裡的 'FILL' 數值
<div style="font-variation-settings: 'FILL' 0, 'wght' 100, 'GRAD' 0, 'opsz' 48;">
  <span class="material-symbols-outlined">search</span>
  <span class="material-symbols-outlined">home</span>
  <span class="material-symbols-outlined">settings</span>
  <span class="material-symbols-outlined">favorite</span>
</div>
//注意這裡的 'FILL' 數值
<div style="font-variation-settings: 'FILL' 1, 'wght' 100, 'GRAD' 0, 'opsz' 48;">
<span class="material-symbols-outlined">search</span>
<span class="material-symbols-outlined">home</span>
<span class="material-symbols-outlined">settings</span>
<span class="material-symbols-outlined">favorite</span>
</div>  
寫法二:使用 CSS 樣式寫入設定
HTML 檔案
<div class="outline-icon">
<span class="material-symbols-outlined">search</span>
<span class="material-symbols-outlined">home</span>
<span class="material-symbols-outlined">settings</span>
<span class="material-symbols-outlined">favorite</span>
</div>

//注意這裡的 'FILL' 數值
<div class="fill-icon">
<span class="material-symbols-outlined">search</span>
<span class="material-symbols-outlined">home</span>
<span class="material-symbols-outlined">settings</span>
<span class="material-symbols-outlined">favorite</span>
</div>
CSS 檔案:注意軸線的大小寫一定要相同,不然會失效,像是 'FILL' 不能寫成 'fill'
.outline-icon{
  font-variation-settings: 'FILL' 0;
  //如果要同時寫入多個設定
  //font-variation-settings: 'FILL' 0, 'wght' 700;
}

.fill-icon{
font-variation-settings: 'FILL' 1;
}
這種寫法甚至能夠搭配 animation 語法使用,做一些簡單的動畫哦!
有關 Google 提供的開源圖示 Material Icons 分享就到這裡,若有錯誤歡迎指正,感謝看完這篇的大家。

參考資料

為什麼會看到廣告
7會員
30內容數
正在一點一滴學習程式,相信知識量總有一天會匯聚成大海,目前專門研究前端中。
留言0
查看全部
發表第一個留言支持創作者!
傑米的沙龍 的其他內容
JavaScript 的型別可以分為兩類,分別是原始型別與物件型別,這邊主要談的是 ES6 的寫法。值得注意的是,JavaScript 變數本身不帶有型別,值才有。
npm 是一個套件管理工具,開發中經常需要使用第三方套件,npm 是可以用來管理很多套件的工具,這邊指的套件可能是 Library, 框架, 工具等,例如 Bootstrap, jQuery, Vue.js, babel 都可以統一由它管理。
JavaScript 的型別可以分為兩類,分別是原始型別與物件型別,這邊主要談的是 ES6 的寫法。值得注意的是,JavaScript 變數本身不帶有型別,值才有。
npm 是一個套件管理工具,開發中經常需要使用第三方套件,npm 是可以用來管理很多套件的工具,這邊指的套件可能是 Library, 框架, 工具等,例如 Bootstrap, jQuery, Vue.js, babel 都可以統一由它管理。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
在這個數位科技高度發展的時代,網站已經成為了每個人都可以輕鬆建立和使用的工具。網站不僅僅是企業經營的重要手段,也是個人展示才華和創意的平台。因此,選擇一個合適的網站建置方式就顯得格外重要。在眾多網站建置平台中,Wordpress一直以來都是大家的首選。那麼,為什麼大家都使用Wordpress來架設網
Thumbnail
俗話說的好:科技始終來自於人性。網頁爬蟲工具,可以幫助人類完成重複性高且枯燥、瑣碎的收集過程。我透過本次有目的的實作,也算是初嘗網頁爬蟲的甜頭,未來應該還是會努力學習Python,畢竟能自己寫程式,就代表能自動化處理更多種樣態的工作。
Thumbnail
寫作能幫助思考與學習,但多數人都有相同的問題:覺得寫作要花很久的時間、心中壓力山大,最後乾脆放棄寫作。這個問題許多的專業工作者都會碰到。那麼該如何解決「寫作要花很久時間」的問題呢?答案是 Lean Writing。
Thumbnail
多數的人都無法持續在網路上寫作,最主要的原因是心態錯了。創業家 Gary V 曾說:「讓學習的過程成為個人品牌內容的一部分。…以任何可用平台記錄自己真實的生活,說出自己的真心話,讓人們了解你是誰,然後讓他們看著你如何成長為自已想要的樣子。」這個概念對早期建立寫作習慣、找尋自己想要熱情分享的主題非常重
Thumbnail
提起网页剪藏,很多人首先会想起印象笔记剪藏。如今,你在谷歌等浏览器商店搜索剪藏,便会发现 OneNote、Google Keep 等多种网页剪藏插件。 对于很多用户而言,与其寄希望于在线服务,更喜欢将网页内容永久保存至自己的笔记应用之中。 简悦 简悦官网 简悦资源 简悦官网 插件教程
Thumbnail
你知道抖音和TikTok其實是兩種不同的App和社群生態圈嗎?專業網癮少女教你5分鐘快速轉換地區下載!同時享受中國抖音和國際版本TikTok ✨
Thumbnail
在數位時代中,無論是什麼產業類型,當您經營一個品牌時,除了建立社群媒體外,品牌官網 可說是與消費者溝通的必要橋樑,不只可以做為社群導流的終點站,也有機會在搜尋結果頁面中曝光,獲得更多潛在流量。
Thumbnail
事情是這樣的,這個網站是用WordPress建置,本來放在GoDaddy虛擬主機上,當時的方案簽了三年,在大約一年半的時候,我決定把網站搬到SiteGround上。為了不讓GoDaddy的主機空轉,剛好我也想做些Side Projects,試著在網站上建立數據儀表板,GoDaddy的主機剛好可以拿來
那天接到一個好久沒聯絡的長輩訊息,丟了他的車險保單請我重新幫他做報價。當我回傳了幾家方案,他比較後也選擇要投保哪一家,不久卻又再次丟了訊息過來說他查詢了同一家車險,線上投保似乎便宜許多。我也誠實的告知,如果在內容相同的情況下保費較便宜的話,也建議他線上投保即可,他說了考慮一下後就再也沒有接到他的訊息
Thumbnail
文:陳澤琪/圖:Photo by Ludovic Toinel on Unsplash。本文授權自本文授權自旅讀中國102期(原標題:社會新鮮人何處去:抖音阿嬤惡搞川普,超級職缺來了!)歡迎關注前進新大陸粉絲專頁。 很多年輕朋友選擇工作多會思考:要符合自己的興趣喜好;要符合能力、要符合人生生涯規劃等
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
在這個數位科技高度發展的時代,網站已經成為了每個人都可以輕鬆建立和使用的工具。網站不僅僅是企業經營的重要手段,也是個人展示才華和創意的平台。因此,選擇一個合適的網站建置方式就顯得格外重要。在眾多網站建置平台中,Wordpress一直以來都是大家的首選。那麼,為什麼大家都使用Wordpress來架設網
Thumbnail
俗話說的好:科技始終來自於人性。網頁爬蟲工具,可以幫助人類完成重複性高且枯燥、瑣碎的收集過程。我透過本次有目的的實作,也算是初嘗網頁爬蟲的甜頭,未來應該還是會努力學習Python,畢竟能自己寫程式,就代表能自動化處理更多種樣態的工作。
Thumbnail
寫作能幫助思考與學習,但多數人都有相同的問題:覺得寫作要花很久的時間、心中壓力山大,最後乾脆放棄寫作。這個問題許多的專業工作者都會碰到。那麼該如何解決「寫作要花很久時間」的問題呢?答案是 Lean Writing。
Thumbnail
多數的人都無法持續在網路上寫作,最主要的原因是心態錯了。創業家 Gary V 曾說:「讓學習的過程成為個人品牌內容的一部分。…以任何可用平台記錄自己真實的生活,說出自己的真心話,讓人們了解你是誰,然後讓他們看著你如何成長為自已想要的樣子。」這個概念對早期建立寫作習慣、找尋自己想要熱情分享的主題非常重
Thumbnail
提起网页剪藏,很多人首先会想起印象笔记剪藏。如今,你在谷歌等浏览器商店搜索剪藏,便会发现 OneNote、Google Keep 等多种网页剪藏插件。 对于很多用户而言,与其寄希望于在线服务,更喜欢将网页内容永久保存至自己的笔记应用之中。 简悦 简悦官网 简悦资源 简悦官网 插件教程
Thumbnail
你知道抖音和TikTok其實是兩種不同的App和社群生態圈嗎?專業網癮少女教你5分鐘快速轉換地區下載!同時享受中國抖音和國際版本TikTok ✨
Thumbnail
在數位時代中,無論是什麼產業類型,當您經營一個品牌時,除了建立社群媒體外,品牌官網 可說是與消費者溝通的必要橋樑,不只可以做為社群導流的終點站,也有機會在搜尋結果頁面中曝光,獲得更多潛在流量。
Thumbnail
事情是這樣的,這個網站是用WordPress建置,本來放在GoDaddy虛擬主機上,當時的方案簽了三年,在大約一年半的時候,我決定把網站搬到SiteGround上。為了不讓GoDaddy的主機空轉,剛好我也想做些Side Projects,試著在網站上建立數據儀表板,GoDaddy的主機剛好可以拿來
那天接到一個好久沒聯絡的長輩訊息,丟了他的車險保單請我重新幫他做報價。當我回傳了幾家方案,他比較後也選擇要投保哪一家,不久卻又再次丟了訊息過來說他查詢了同一家車險,線上投保似乎便宜許多。我也誠實的告知,如果在內容相同的情況下保費較便宜的話,也建議他線上投保即可,他說了考慮一下後就再也沒有接到他的訊息
Thumbnail
文:陳澤琪/圖:Photo by Ludovic Toinel on Unsplash。本文授權自本文授權自旅讀中國102期(原標題:社會新鮮人何處去:抖音阿嬤惡搞川普,超級職缺來了!)歡迎關注前進新大陸粉絲專頁。 很多年輕朋友選擇工作多會思考:要符合自己的興趣喜好;要符合能力、要符合人生生涯規劃等