iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0

今天僅僅針對 checkbox 與 radio 進行客製化展示,筆者認為這種小東西常常會忽略,而設計稿上突然出現客製化的元件會一時找不到方法進行修改,為了避免這種狀況的發生,所以今天要來分享 checkbox 與 radio 如何客製化,以及雷點/images/emoticon/emoticon03.gif


一開始先匯入 tailwind 提供的 form 樣式,可以讓我們在客製化的道路上走得更順

plugins: [
    require('@tailwindcss/forms'),
  ],

但匯入之後要記得 accent-color 的樣式會無法套用 (這個有夠坑!),當然,只要不匯入 tailwind 的 form 就可以使用 accent-color,但筆者認為還是有 tailwind 提供的預設樣式會比較好客製化。
那如果我們不能使用 accent-color 的話,該如何達成更改欄位顏色的效果呢?
https://ithelp.ithome.com.tw/upload/images/20221014/20152251y62nRod78B.png
有興趣深入了解的讀者可以到這裡,我們可以使用文字顏色進行修改,如果執意要在匯入的情況下使用 accent-color 的話也可以,但必須加上 strategy

plugins: [
 require("@tailwindcss/forms")({
   strategy: 'class',
 }),
],

不過筆者認為沒有比較好用,只是分享給大家還是有此種方法,讓大家多一點選擇;而後面筆者的示範是沒有加上 strategy 的,僅單純匯入 tailwind form。


成果展示
https://ithelp.ithome.com.tw/upload/images/20221014/20152251G10QDeZjs0.png
圖片

先做出基本架構、大小以及間距

    <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>

https://ithelp.ithome.com.tw/upload/images/20221014/20152251VLbApKJ24S.png

針對 radio 進行客製,加上 text-pink-500 改變顏色
https://ithelp.ithome.com.tw/upload/images/20221014/20152251ZPPDOwY8PJ.png
focus:outline-slate-500,添加點擊 radio 的樣式
https://ithelp.ithome.com.tw/upload/images/20221014/201522511zbrewhJLY.png
因為 tailwind 使用 background-image 讓 radio 有中間的白點,所以我們加上checked:bg-none,取消 radio checked 狀態下的白點
https://ithelp.ithome.com.tw/upload/images/20221014/20152251Han4nDXsgv.png
使用 checked:outline-none、checked:outline-red-500,加上 checked 狀態下 outline 的偏移與顏色
https://ithelp.ithome.com.tw/upload/images/20221014/201522513hR3fKPHJR.png


針對 checkbox 進行客製,同樣加上 text-color 修改顏色,這邊使用 text-slate-600
https://ithelp.ithome.com.tw/upload/images/20221014/20152251AGOiyf7vIc.png
focus:outline-green-500,添加點擊 checkbox 的樣式
https://ithelp.ithome.com.tw/upload/images/20221014/20152251ADDPPlHKCd.png
使用 checked:outline-pink-500、checked:outline-none,加上 checked 狀態下 outline 的偏移與顏色
https://ithelp.ithome.com.tw/upload/images/20221014/20152251s6OdrWmm9y.png


筆者認為 accent-color 是最大的雷點,在 tailwind 客製 radio 與 checkbox 實在是很方便/images/emoticon/emoticon07.gif


上一篇
Day 28:建立卡片【Tailwind – 實作元件(五)】
下一篇
Day 30:最佳化以及小技能【Tailwind – minify & Just-In-Time mode】
系列文
【Tailwind】你聽過尾巴風嗎 ? CSS 框架 tailwind 的新手入門指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言