輕鬆打造漂亮表單:從Element到Style的實用技巧

tags: FrontEnd notes

目錄

最近我參加了2023年的WebConf,一個匯聚了無數Web開發者的技術研討會,其中一個議程讓我印象深刻,因為講者使用了一些基本的元素(Element)和樣式(Style),讓我能打造一個優質使用者體驗的「好」表單,內容很實用,操作起來也很簡單,所以我將這個議程精華整理成文章,希望對大家有所幫助。

Agenda

  • Pick suitable elements
  • Style your form
  • Amazing supports
  • Wonderful partners

Pick suitable elements

  • The input element
  • 原生Form Element優點
  • Use case 1.
  • Use case 2.

The input element

  • datetime-local:
    • date+time可點擊icon選取
  • color:
    • 有滴管按鈕可以攝取顏色
  • number:
    • 可操作鍵盤上下鍵增減
  • range:
    • 可操作鍵盤左右鍵增減
  • search:
    • 輸入搜尋內容後出現btn點擊可清空
  • email:
    • email格式驗證,存history
  • url:
    • URL格式驗證


原生Form Element優點

  • 很多都有基本的驗證,避免拿到錯誤的資料
  • 自帶 widgets,不需額外開發
  • 原生支援
  • 延續使用者體驗

Use case 1.

Take <input /> UI / UX and methods to indicate various adjustments.


Use case 2.

With <input[type=range]> supported, Developers could save 「drag、drop」 event usage and don't need to detect current device.


Style your form

  • CSS > accent-color
  • Customize input element
  • Customize select element
  • Customize checkbox element
  • Customize radio buttons element
  • Avoid misunderstanding

CSS > accent-color

The accent-color CSS property sets the accent color for user-interface controls generated by some elements.



  

Customize input element

With modern CSS supports, web developers could style <input /> easily ever.





Customize select element

With modern CSS supports, web developers could style<select /> easily ever.





Customize checkbox element

With modern CSS supports, web developers could style input[type=checkbox] easily ever.





Customize radio buttons element

With modern CSS supports, web developers could style input[type=radio] easily ever.





Avoid misunderstanding

Sometimes you might face some embarrassed situations. Such as 「radiobox」 or 「checkbutton」.


Amazing Supports

  • Input & Web API
  • Validation
  • Usability

Input & Web API

Some <input /> exposed some interesting web api for developers for vivid usage.



Validation

Form Element 有許多有趣的屬性,開發人員可以將它們應用在驗證上,使驗證更加簡單快速。





Usability

驗證之後,開發人員應該思考如何增強可用性,現在越來越多的Web API有支援這點。例如自動大寫、自動修正、自動完成、輸入模式和Enter鍵提示。





2023-11-20 09 52 7


Wonderful partners

  • CSS > Logical Properties
  • CSS > :has()
  • input ?! select ?!
  • details
  • dialog
  • form & inert

CSS > Logical Properties

With modern CSS supports, web developers could style <input /> easily ever.





CSS > :has()

:has() is so powerful for condition syntax, it could replace some JavaScript supports.




input ?! select ?!

<input /> could associate <datalist /> through attribute list to let input has dropdown menu just like could associate <select />.




details

< details /> provide toggle feature to disaply or hide information. It's suitable for tip or extra information.





dialog

The <dialog /> HTML element represents a dialog box or other interactive component, such as a dismissible alert, inspector, or subwindow.


form & inert

It's time to apply 「inert」to freeze or unfreeze <form />.

          




Recap

  • Pick suitable elements
  • Style your form
  • Use element & Web API wisely
  • Amazing Web Components


Thanks, all of you.