完整的表單元件集合,包含輸入框、選擇器、開關等互動元素,涵蓋所有常見使用情境。
文字輸入框,支援多種類型、尺寸和狀態。
基本的文字輸入框、Email 輸入框和密碼輸入框。
<flux:input wire:model="name" placeholder="請輸入姓名" />
<flux:input type="email" wire:model="email" placeholder="電子郵件" icon="envelope" />
<flux:input type="password" wire:model="password" placeholder="密碼" viewable />
提供不同尺寸的輸入框以適應不同的版面需求。
<flux:input placeholder="預設尺寸" />
<flux:input placeholder="小尺寸" size="sm" />
<flux:input placeholder="極小尺寸" size="xs" />
提供輪廓和填充兩種視覺樣式。
<flux:input placeholder="輪廓樣式(預設)" variant="outline" />
<flux:input placeholder="填充樣式" variant="filled" />
停用、唯讀和錯誤狀態的輸入框。
<flux:input placeholder="停用狀態" disabled />
<flux:input value="唯讀內容" readonly variant="filled" />
<flux:input placeholder="錯誤狀態" invalid />
在輸入框前後加入圖示或鍵盤快捷鍵提示。
<flux:input icon="magnifying-glass" placeholder="搜尋訂單..." />
<flux:input icon:trailing="credit-card" placeholder="4444-4444-4444-4444" />
<flux:input placeholder="搜尋..." icon="magnifying-glass" kbd="⌘K" />
可清除、可複製和可見性切換功能。
<flux:input placeholder="可清除的輸入框" clearable />
<flux:input value="FLUX-1234-5678-ABCD-EFGH" icon="key" readonly copyable />
<flux:input type="password" value="password" viewable />
使用簡寫 props 快速添加標籤和說明文字。
<flux:input wire:model="username" label="使用者名稱" placeholder="請輸入使用者名稱" />
<flux:input wire:model="email" label="電子郵件" description="此資訊將公開顯示" type="email" />
將輸入框與前綴、後綴或按鈕組合使用。
<flux:input.group>
<flux:input.group.prefix>https://</flux:input.group.prefix>
<flux:input placeholder="example.com" />
</flux:input.group>
<flux:input.group>
<flux:input placeholder="搜尋..." />
<flux:button variant="primary">搜尋</flux:button>
</flux:input.group>
使用 Alpine.js mask 插件格式化輸入內容。
<flux:input label="日期" placeholder="DD/MM/YYYY" mask="99/99/9999" />
<flux:input label="電話" placeholder="(999) 999-9999" mask="(999) 999-9999" />
多行文字輸入框,支援自動調整高度和調整大小控制。
載入中...
基本的多行文字輸入框。
<flux:textarea wire:model="bio" placeholder="自我介紹..." rows="3" />
<flux:textarea label="備註" placeholder="請輸入備註..." />
自訂文字輸入框的高度。
<flux:textarea rows="2" label="簡短備註" />
<flux:textarea rows="6" label="詳細說明" />
控制使用者如何調整文字輸入框大小。
<flux:textarea resize="vertical" placeholder="垂直調整(預設)" />
<flux:textarea resize="none" placeholder="禁止調整" />
<flux:textarea resize="horizontal" placeholder="水平調整" />
<flux:textarea resize="both" placeholder="雙向調整" />
使用 CSS field-sizing 屬性自動調整高度以適應內容(新版瀏覽器支援)。
<flux:textarea rows="auto" placeholder="輸入內容時自動增高..." />
下拉選擇元件,支援多種變體和功能。
載入中...
原生 HTML select 元件。
<flux:select wire:model="country" placeholder="選擇國家">
<flux:select.option value="tw">台灣</flux:select.option>
<flux:select.option value="jp">日本</flux:select.option>
<flux:select.option value="us">美國</flux:select.option>
</flux:select>
添加搜尋功能以快速找到選項。
<flux:select searchable placeholder="搜尋國家...">
<flux:select.option value="tw">台灣</flux:select.option>
<flux:select.option value="jp">日本</flux:select.option>
</flux:select>
添加清除按鈕以重置選擇。
<flux:select variant="listbox" clearable placeholder="選擇產業...">
<flux:select.option>攝影</flux:select.option>
<flux:select.option>設計服務</flux:select.option>
</flux:select>
更現代化的下拉選單樣式。
結合輸入框和下拉選單的多功能元件。
允許使用者選擇多個選項。
核取方塊元件,支援單選、群組和卡片樣式。
載入中...
基本的核取方塊,帶有標籤和說明文字。
<flux:checkbox wire:model="notifications" label="接收通知" />
<flux:checkbox wire:model="darkMode" label="深色模式" description="切換介面主題" />
使用 field 元件的 inline 變體將核取方塊與標籤並排顯示。
<flux:field variant="inline">
<flux:checkbox wire:model="notifications" />
<flux:label>我同意服務條款和隱私政策</flux:label>
</flux:field>
組織相關的核取方塊成為垂直列表。
<flux:checkbox.group wire:model="permissions" label="權限設定">
<flux:checkbox value="read" label="讀取" description="查看內容" />
<flux:checkbox value="write" label="寫入" description="建立和編輯內容" />
<flux:checkbox value="delete" label="刪除" description="移除內容" />
</flux:checkbox.group>
使用單一核取方塊控制一組核取方塊。
<flux:checkbox.group>
<flux:checkbox.all label="全選" />
<flux:checkbox checked label="選項 1" />
<flux:checkbox label="選項 2" />
</flux:checkbox.group>
帶邊框的卡片樣式核取方塊。
單選按鈕群組,支援多種視覺樣式。
載入中...
標準的單選按鈕群組。
<flux:radio.group wire:model="role" label="角色">
<flux:radio value="user" label="一般用戶" description="基本存取權限" />
<flux:radio value="admin" label="管理員" description="完整管理權限" />
<flux:radio value="moderator" label="版主" description="內容管理權限" />
</flux:radio.group>
分段控制樣式,適合並排顯示選項。
<flux:radio.group variant="segmented" wire:model="role">
<flux:radio value="user" label="用戶" />
<flux:radio value="admin" label="管理員" />
<flux:radio value="moderator" label="版主" />
</flux:radio.group>
帶邊框的卡片樣式單選按鈕,適合顯示方案選擇。
<flux:radio.group wire:model="role" label="選擇方案" variant="cards" class="max-sm:flex-col">
<flux:radio value="user" label="入門方案" description="適合個人使用者,每月 $9" checked />
<flux:radio value="admin" label="專業方案" description="適合小型團隊,每月 $29" />
<flux:radio value="moderator" label="企業方案" description="適合大型企業,每月 $99" />
</flux:radio.group>
開關切換元件,適合布林值設定。
載入中...
基本的開關元件。
<flux:switch wire:model="notifications" label="接收通知" />
<flux:switch wire:model="darkMode" label="深色模式" description="切換介面主題" />
組織多個相關的開關設定。
<flux:switch label="推播通知" description="接收重要更新的推播通知" checked />
<flux:switch label="電子郵件通知" description="接收每週摘要郵件" />
<flux:switch label="簡訊通知" description="接收緊急通知簡訊" />
表單欄位容器,整合標籤、描述和錯誤訊息。
載入中...
完整的表單欄位結構,包含標籤、說明和錯誤訊息。
<flux:field>
<flux:label>電子郵件</flux:label>
<flux:description>請輸入有效的電子郵件地址</flux:description>
<flux:input type="email" wire:model="email" />
<flux:error name="email" />
</flux:field>
在標籤旁顯示徽章,標示必填或選填。
<flux:input label="姓名" badge="必填" />
<flux:input label="暱稱" badge="選填" />
使用 fieldset 組織相關的表單欄位。
<flux:fieldset>
<flux:legend>帳號資訊</flux:legend>
<flux:field>
<flux:label>使用者名稱</flux:label>
<flux:input wire:model="name" />
</flux:field>
</flux:fieldset>
一次性密碼輸入元件,支援不同長度和模式。
載入中...
標準的 6 位數驗證碼輸入。
<flux:otp wire:model="otp" length="6" />
使用 mask 屬性隱藏輸入內容。
<flux:otp length="4" private />
支援純數字、字母數字和純字母模式。
<flux:otp length="6" mode="numeric" />
<flux:otp length="6" mode="alphanumeric" />
<flux:otp length="4" mode="alpha" />
多選標籤輸入框,支援搜尋功能。
載入中...
基本的多選標籤輸入。
<flux:pillbox wire:model="tags" placeholder="選擇標籤...">
<flux:pillbox.option value="design">設計</flux:pillbox.option>
<flux:pillbox.option value="development">開發</flux:pillbox.option>
<flux:pillbox.option value="marketing">行銷</flux:pillbox.option>
</flux:pillbox>
添加搜尋功能以快速找到標籤。
<flux:pillbox searchable placeholder="搜尋技能...">
<flux:pillbox.option value="php">PHP</flux:pillbox.option>
<flux:pillbox.option value="js">JavaScript</flux:pillbox.option>
</flux:pillbox>
滑桿元件,用於數值範圍選擇,支援單一值和範圍選擇。
載入中...
基本的單一值滑桿。
<flux:label class="mb-2">音量: {{ $volume }}</flux:label>
<flux:slider wire:model.live="volume" />
選擇數值範圍的雙向滑桿。
<flux:slider range min="0" max="1000" />
設定滑桿的最小、最大值和步進值。
<flux:slider min="0" max="100" step="5" />
<flux:slider min="0" max="5" step="0.5" />
日期選擇器元件,支援單一日期和日期範圍選擇。
載入中...
單一日期選擇器。
<flux:date-picker wire:model="selectedDate" placeholder="選擇日期" />
選擇開始和結束日期範圍。
<flux:date-picker wire:model="selectedDate" mode="range" placeholder="選擇日期範圍" />
添加清除按鈕以重置選擇。
<flux:date-picker clearable placeholder="選擇日期" />
時間選擇器元件,支援自訂時間間隔。
載入中...
標準的時間選擇器。
<flux:time-picker wire:model="selectedTime" placeholder="選擇時間" />
設定時間選擇的間隔。
<flux:time-picker step="15" placeholder="15 分鐘間隔" />
<flux:time-picker step="30" placeholder="30 分鐘間隔" />
<flux:time-picker step="60" placeholder="1 小時間隔" />
日曆元件,用於顯示完整月曆視圖。
載入中...
標準的月曆視圖。
|
|
<flux:calendar />
自動完成元件,提供搜尋建議功能。
載入中...
基本的自動完成輸入框。
<flux:autocomplete wire:model="searchQuery" placeholder="搜尋城市...">
<flux:autocomplete.item value="taipei">台北</flux:autocomplete.item>
<flux:autocomplete.item value="taichung">台中</flux:autocomplete.item>
<flux:autocomplete.item value="kaohsiung">高雄</flux:autocomplete.item>
</flux:autocomplete>
富文字編輯器元件,支援格式化文字內容。
基本的富文字編輯器,建議使用延遲載入以提升效能。
載入編輯器中...
<div x-data="{ loaded: false }" x-intersect="loaded = true">
<div x-show="loaded" x-transition>
<flux:editor wire:model="editorContent" placeholder="開始輸入內容..." />
</div>
<div x-show="!loaded" class="flex items-center justify-center h-48">
<flux:text>載入編輯器中...</flux:text>
</div>
</div>
檔案上傳元件,支援拖放功能。
載入中...
基本的檔案上傳區域。
拖曳檔案至此或點擊上傳
支援 PNG, JPG, PDF 格式,最大 10MB
<flux:file-upload>
<flux:text>拖曳檔案至此或點擊上傳</flux:text>
<flux:text size="sm" class="text-zinc-500">支援 PNG, JPG, PDF 格式,最大 10MB</flux:text>
</flux:file-upload>
在表單欄位中使用檔案上傳元件。
點擊或拖曳照片至此
<flux:field>
<flux:label>上傳大頭照</flux:label>
<flux:description>請上傳清晰的個人照片</flux:description>
<flux:file-upload>
<flux:text size="sm">點擊或拖曳照片至此</flux:text>
</flux:file-upload>
</flux:field>
表單元件的屬性與使用方式參考。
載入中...
|
Prop
|
值
|
說明
|
|---|---|---|
| type | text | email | password | number | 輸入框類型 |
| size | sm | xs | 輸入框尺寸 |
| variant | outline | filled | 視覺樣式變體 |
| placeholder | string | 佔位文字 |
| icon | string | 前置圖示名稱 |
| icon:trailing | string | 後置圖示名稱 |
| viewable | boolean | 密碼可見性切換(僅 password 類型) |
| clearable | boolean | 顯示清除按鈕 |
| copyable | boolean | 顯示複製按鈕 |
| kbd | string | 鍵盤快捷鍵提示 |
| disabled | boolean | 停用輸入框 |
| readonly | boolean | 設為唯讀 |
| invalid | boolean | 套用錯誤樣式 |
| label | string | 標籤文字(簡寫方式) |
| description | string | 說明文字(簡寫方式) |
| mask | string | 輸入遮罩模式(如:99/99/9999) |
|
Prop
|
值
|
說明
|
|---|---|---|
| rows | number | auto | 可見文字行數,auto 表示自動高度 |
| resize | vertical | horizontal | both | none | 控制如何調整大小 |
| placeholder | string | 佔位文字 |
| label | string | 標籤文字 |
| description | string | 說明文字 |
| invalid | boolean | 套用錯誤樣式 |
|
Prop
|
值
|
說明
|
|---|---|---|
| placeholder | string | 未選擇時顯示的文字 |
| variant | default | listbox | combobox | 選擇器樣式 |
| searchable | boolean | 啟用搜尋功能 |
| multiple | boolean | 允許多選(Pro) |
| clearable | boolean | 顯示清除按鈕 |
|
Prop
|
值
|
說明
|
|---|---|---|
| label | string | 核取方塊標籤 |
| description | string | 說明文字 |
| value | string | 核取方塊值 |
| checked | boolean | 預設選中狀態 |
| disabled | boolean | 停用核取方塊 |
|
Prop
|
值
|
說明
|
|---|---|---|
| variant | default | segmented | cards | pills | buttons | 單選群組樣式 |
| label | string | 群組標籤 |
| description | string | 說明文字 |
|
Prop
|
值
|
說明
|
|---|---|---|
| length | number | 驗證碼長度 |
| mode | numeric | alphanumeric | alpha | 輸入模式 |
| private | boolean | 隱藏輸入內容 |
使用 flux:field 包裝輸入元件
即時驗證
無障礙設計
效能優化