今天僅僅針對 checkbox 與 radio 進行客製化展示,筆者認為這種小東西常常會忽略,而設計稿上突然出現客製化的元件會一時找不到方法進行修改,為了避免這種狀況的發生,所以今天要來分享 checkbox 與 radio 如何客製化,以及雷點
一開始先匯入 tailwind 提供的 form 樣式,可以讓我們在客製化的道路上走得更順
plugins: [
require('@tailwindcss/forms'),
],
但匯入之後要記得 accent-color 的樣式會無法套用 (這個有夠坑!),當然,只要不匯入 tailwind 的 form 就可以使用 accent-color,但筆者認為還是有 tailwind 提供的預設樣式會比較好客製化。
那如果我們不能使用 accent-color 的話,該如何達成更改欄位顏色的效果呢?
有興趣深入了解的讀者可以到這裡,我們可以使用文字顏色進行修改,如果執意要在匯入的情況下使用 accent-color 的話也可以,但必須加上 strategy
plugins: [
require("@tailwindcss/forms")({
strategy: 'class',
}),
],
不過筆者認為沒有比較好用,只是分享給大家還是有此種方法,讓大家多一點選擇;而後面筆者的示範是沒有加上 strategy 的,僅單純匯入 tailwind form。
成果展示
先做出基本架構、大小以及間距
<div>
<div class="m-6">
<label for="default-radio">
<input
class="w-12 h-12"
type="radio"
name="default-radio"
id="default-radio"
/>
預設
</label>
<label for="custom-radio">
<input
type="radio"
class="w-12 h-12 m-6 mr-0"
name="custom-radio"
id="custom-radio"
/>
客製化
</label>
</div>
<div class="m-6">
<label for="default-checkbox">
<input
class="w-12 h-12"
type="checkbox"
name="default-checkbox"
id="default-checkbox"
/>
預設
</label>
<label for="custom-checkbox">
<input
type="checkbox"
class="w-12 h-12 m-6 mr-0"
name="custom-checkbox"
id="custom-checkbox"
/>
客製化
</label>
</div>
</div>
針對 radio 進行客製,加上 text-pink-500 改變顏色
focus:outline-slate-500,添加點擊 radio 的樣式
因為 tailwind 使用 background-image 讓 radio 有中間的白點,所以我們加上checked:bg-none,取消 radio checked 狀態下的白點
使用 checked:outline-none、checked:outline-red-500,加上 checked 狀態下 outline 的偏移與顏色
針對 checkbox 進行客製,同樣加上 text-color 修改顏色,這邊使用 text-slate-600
focus:outline-green-500,添加點擊 checkbox 的樣式
使用 checked:outline-pink-500、checked:outline-none,加上 checked 狀態下 outline 的偏移與顏色
筆者認為 accent-color 是最大的雷點,在 tailwind 客製 radio 與 checkbox 實在是很方便