[Tailwind] 客製化-字型
Tailwind 預設字型
在開始客製化字型設定前,先來看看Tailwind預設的字型設定吧!
設定名稱 | 對應內容 |
---|---|
font-sans | font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; |
font-serif | font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; |
font-mono | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; |
客製化字型
官方文件寫道,可以在tailwind.config.js
內的theme
撰寫fontFamily
設定字體,範例如下:
tailwind.config.js
module.exports = {
theme: {
fontFamily: {
'sans': ['ui-sans-serif', 'system-ui', ...],
'serif': ['ui-serif', 'Georgia', ...],
'mono': ['ui-monospace', 'SFMono-Regular', ...],
'display': ['Oswald', ...],
'body': ['"Open Sans"', ...],
}
}
}
字體名稱中間有空白該怎麼辦?
需要注意有些的字體中間會有空白,這時候除了’’
以外,還需要在裡面額外再包一層””
,才可以正確運作。例如'display': ['"Fredoka One"', 'cursive']
fontFamily
的設定可以在theme
中直接覆蓋預設設定,也可以如同colors
一樣在extend
內用擴充的方式去設定。
點我參考colors設定
使用google font
我們很常使用google font的服務,如果想要在tailwind中使用google font的字體,有以下兩種方式
- 在每個頁面的head中撰寫google font css link
- 在main.css中使用@import的方式引入,並且使用@layer base的方式修改html下的全站設定
head內加入css:link
index.html
<head>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;700&display=swap" rel="stylesheet">
</head>
import
搭配@layer base
- google font複製@import的內容
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;700&display=swap');
main.css
內的設定如下
main.css
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;700&display=swap');
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base{
html{
font-family:'font',cursive;
}
}
在自己的字體設定後方加入tailwind預設的字體設定
原理類似斷點設定中,擴充比sm更小的斷點,是使用展開運算符的方式加入預設的設定。設定如下:
tailwind.config.js
const defaultTheme = require('tailwindcss/defaultTheme')
theme: {
extend: {
fontFamily: {
'display': ['"Fredoka One"', 'cursive', ...defaultTheme.fontFamily.sans]
}
}
}