跳至主要内容

[tailwind] Tailwind CSS 環境建置與相關語法

擴充套件

如果你是使用 VS Code 開發 Tailwind CSS 的話,強烈建議安裝 Tailwind CSS IntelliSense 套件,它會在你輸入 class 的時候,跳出 Tailwind CSS 相關語法的提示。

Image

初始化

在一個空的資料夾底下執行以下指令來初始化專案:

npm init -y

接著安裝 Tailwind CSS 套件:

npm install -D tailwindcss

再安裝 Prettier:

npm install -D prettier prettier-plugin-tailwindcss

都安裝完以後,執行以下指令初始化 Tailwind:

npx tailwindcss init -p

編譯

接著在根目錄新增兩個資料夾,分別為 publicsrc,並在 src 資料夾底下建立一個檔案,名為 styles.css,並將以下程式碼貼上:

src/styles.css
@tailwind base;@tailwind components;@tailwind utilities;

之後在 package.jsonscripts 底下新增兩條指令:

package.json
{  "name": "tailwind-basic",  "version": "1.0.0",  "description": "",  "main": "index.js",  "scripts": {    "start": "tailwindcss build src/styles.css -o public/styles.css",    "watch": "tailwindcss build src/styles.css -o public/styles.css --watch"  },  "keywords": [],  "author": "",  "license": "ISC",  "devDependencies": {    "prettier": "^2.8.4",    "prettier-plugin-tailwindcss": "^0.2.5",    "tailwindcss": "^3.2.7"  }}

最後在 tailwind.config.js 檔案中,將 content 的內容更改為以下:

tailwind.config.js
/** @type {import('tailwindcss').Config} */module.exports = {  content: ["./public/*.html"],  theme: {    extend: {},  },  plugins: [],};

然後就可以輸入以下指令來將 Tailwind CSS 相關語法編譯並輸出到我們指定的資料夾 public 底下:

npm start

Image

如果不想要每次更改檔案就要重新執行 npm start 的話,可以改使用 npm run watch,來監聽檔案有無更動,有的話就自動編譯並輸出:

npm run watch

Live Server

你也可以安裝 Live Server,來讓指定資料夾底下的檔案變更時自動重新整理:

npm install live-server -g

安裝成功後,執行以下指令來啟動 Live Server:

live-server public

Image

Extend

如果想要客製化 CSS,可以在 tailwind.config.js 底下的 extend 新增:

tailwind.config.js
/** @type {import('tailwindcss').Config} */module.exports = {  content: ["./public/*.html"],  theme: {    extend: {      colors: {        primary: "#FF6363",        secondary: {          100: "#E2E2D5",          200: "#888883",        },      },    },  },  plugins: [],};

Image

Custom Fonts

如果想要使用外部字體的話,先在 src/styles.css 底下, import 字體來源,這邊使用 Google Fonts 來展示:

src/styles.css
@import url("https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,400;0,700;1,400&display=swap");@tailwind base;@tailwind components;@tailwind utilities;

接著在 tailwind.config.jsextend 底下,新增 fontFamily,並將字體名稱新增進去:

tailwind.config.js
/** @type {import('tailwindcss').Config} */module.exports = {  content: ["./public/*.html"],  theme: {    extend: {      colors: {        primary: "#FF6363",        secondary: {          100: "#E2E2D5",          200: "#888883",        },      },      fontFamily: {        roboto: ["Roboto Condensed"],      },    },  },  plugins: [],};

如果你是使用 Google Fonts 的話,字體名稱會顯示在 CSS rules to specify families

Image

要使用該字體的話,只要在 class 打上 font-字體名稱 即可:

Image

Media Query (RWD)

Tailwind 預設的 Media Query 尺寸為以下:

tailwind.config.js
module.exports = {  theme: {    screens: {      sm: "640px",      // => @media (min-width: 640px) { ... }      md: "768px",      // => @media (min-width: 768px) { ... }      lg: "1024px",      // => @media (min-width: 1024px) { ... }      xl: "1280px",      // => @media (min-width: 1280px) { ... }      "2xl": "1536px",      // => @media (min-width: 1536px) { ... }    },  },};

如果需要自行更改的話只要在 tailwind.config.js 覆寫就好了:

tailwind.config.js
module.exports = {  theme: {    screens: {      sm: "576px",      // => @media (min-width: 576px) { ... }      md: "960px",      // => @media (min-width: 960px) { ... }      lg: "1440px",      // => @media (min-width: 1440px) { ... }    },  },};

使用的方式也很簡單,只要打上尺寸名稱加上要給予的 style 就好:

Image

@apply

如果檔案中有重複的 class 需要使用,則可以將其提取出來,在 css 檔案中使用 @apply 語法,來重複利用:

src/styles.css
@import url("https://fonts.googleapis.com/css2?family=Roboto+Condensed:ital,wght@0,400;0,700;1,400&display=swap");@tailwind base;@tailwind components;@tailwind utilities;.card {  @apply relative overflow-hidden rounded-lg bg-white shadow-lg;}.badge {  @apply absolute top-0 ml-2 mt-2 rounded-full bg-secondary-100 p-2 text-sm font-bold uppercase text-secondary-200;}

參考資料

The Net Ninja