--- name: 極簡奢華風 UI 實作規範 (Minimal Luxury UI) description: 定義 Star Cloud 管理後台的「極簡奢華風」設計規範,包含 CSS Tokens、常用組件樣式、動畫效果與互動模式,確保全站 15+ 模組的視覺一致性。 --- # 極簡奢華風 UI 實作規範 (Minimal Luxury UI) 本文件定義了 Star Cloud 專案的核心視覺語言。所有新頁面與組件開發必須嚴格遵守此規範。 ## 1. 核心設計令牌 (Design Tokens) ### 色彩系統 (CSS Variables) 位於 `resources/css/app.css`: - `--color-luxury-deep`: `#0f172a` (深色背景) - `--color-luxury-card`: `#1e293b` (卡片背景) - `--color-accent`: `#06b6d4` (青色點綴,適用於按鈕與標示) ### 字體 (Typography) - **內文字體**: `Plus Jakarta Sans` - **標題/顯示字體**: `Outfit` - **特性**: 標題需帶有 `letter-spacing: -0.02em` 以增強精密感。 ## 2. 核心組件樣式 ### 豪華卡片 (Luxury Card) ```html
``` - **特效**: 懸停時帶有 Y 軸平移與深度投影。 ### 側邊導覽項 (Luxury Nav Item) ```html 節點名稱 ``` - **啟用狀態**: 左側帶有圓角直條指示器,並輔以青色發光陰影。 ### 按鈕組件 (Buttons) - **Primary**: `.btn-luxury-primary` (青色漸層,適用於建立、儲存) - **Secondary**: `.btn-luxury-secondary` (白色/深色背景,帶邊框,適用於編輯、篩選) - **Ghost**: `.btn-luxury-ghost` (無背景,適用於取消、查看更多) ```html ``` ## 3. 動畫與互動 ### 進場動畫 - **`.animate-luxury-in`**: 所有的主內容區域或卡片在頁面載入時,應具備由下而上的淡入效果。 ### 互動過渡 (Transitions) - **標準時間**: 所有的懸停、色彩變換等過渡效果,統一建議使用 **`duration-300`** (300ms)。 - **例外**: 極其細微的透明度變化可縮短至 `150ms`,但涉及背景色與位移的互動一律以 `300ms` 為準。 ### Alpine.js 互動模式 (以時間選擇器為例) - **互動原則**: 點擊觸發下拉選單時,必須使用 `x-transition` 且帶有 `scale` 偏移。 - **樣式要求**: 選單背景需使用玻璃擬態 (Glassmorphism) 或帶透明度的深色背景。 ## 4. 實作檢查清單 (Checklist) - [ ] **列表佈局**: 是否採用「整合式卡片」結構且內距設為 `p-8`? - [ ] **分頁與總數**: 列表底部是否正確召喚 `vendor.pagination.luxury`? - [ ] **文字色階**: 符合標題 `slate-900/white` 與標籤 `slate-500` 的對比度。 - [ ] **可讀性檢查**: 二級資訊是否達到 `text-xs` (12px) 且權重不超過 `font-bold`? ## 5. 開發注意事項 (Important Notes) ### 技術限制備忘 - **CSS 編譯**: 複雜的 `box-shadow` 或漸層應直接寫原生 CSS 屬性,避免在 `@apply` 中使用帶空格的數值導致編譯失敗。 - **深色模式**: 互動式按鈕在深色模式下必須強化文字亮度(`dark:text-white`),並輔以青色發光效果。 ### 即時動態呈現規範 - **格式**: `#機台編號 動作內容` (例如 `#V-001 執行出貨`)。 - **脈絡**: 必須呈現相對時間與機台位置。 ## 6. 頁面佈局規範 (Page Layout) ### 佈局決策規則 (Layout Decision Rules) 根據篩選條件的複雜程度,選擇適當的清單頁面佈局: #### 1. 整合式佈局 (Integrated Layout) - 【預設推薦】 - **適用場景**: 絕大多數 CRUD 列表。 - **實作方式**: 篩選器、工具列與資料表格全部封裝在同一個 `luxury-card` 中。 - **內距規範**: 強制使用 `p-8` 以獲得最佳空氣感。 - **元件間距**: 篩選區與表格之間固定使用 `mb-10`。 - **範例**: 帳號管理、角色設定、機台日誌。 #### 2. 分離式佈局 (Split Layout) - **適用場景**: 複雜查詢 (Filtered Fields >= 3 或多行篩選)。 - **實作方式**: 篩選區獨立為一個 `luxury-card`,下方間隔 `mb-6` 後再放置資料清單卡片。 - **樣式規範**: 篩選卡片通常使用 `p-6`(緊湊式),清單卡片使用 `p-8`(寬鬆式)。 - **範例**: 交易紀錄、機台日誌。 ### 標準寬版佈局 (Wide Layout) ```html @section('content')

{{ __('Title') }}

{{ __('Subtitle') }}

{{ __('Name') }} {{ __('Action') }}
Example Name
{{ $items->links('vendor.pagination.luxury') }}
@endsection ``` ### 佈局核心原則: 1. **移除重複內距**: 根容器 `div` 應**禁止**使用 `p-6` 或 `p-10`,因為佈局基底已提供基礎間距。僅使用 `space-y-6` (或 `space-y-8`) 控制區塊間隙。 2. **主容器樣式**: 強制對齊為 `luxury-card rounded-3xl p-8`。 3. **標題排版**: - 主標題需應用 `font-display` (Outfit)。 - 描述文字需應用 `uppercase tracking-widest font-bold` 以呈現高級設計感。 ## 7. 表單元件規範 (Form Elements) 針對輸入框與下拉選單,強制使用以下類別以確保深色模式質感。 ### 輸入框與選單 - **類別**: `.luxury-input`, `.luxury-select` - **特性**: - 深色模式下具備半透明背景與背景模糊效果。 - 統一的 `rounded-xl` 圓角與 `font-bold` 字體。 - 聚焦時帶有青色 (`Cyan`) 發光邊框。 ```html ``` ## 8. 編輯與詳情頁規範 (Detail & Edit Views) 為了讓分層資訊更具視覺引導,各個區塊 (Section) 的圖示應採用不同的顏色意象。 ### 區塊圖示色彩意象 (Section Icon Palette) - **基本資訊 (Basic Info)**: **翠綠色 (`Emerald`)**。代表核心、穩定與起點。 - 樣式: `bg-emerald-500/10 text-emerald-500` - **硬體/插槽設定**: **琥珀色 (`Amber/Orange`)**。代表動作、物理連接與硬體警告。 - 樣式: `bg-amber-500/10 text-amber-500` - **系統/進階設定**: **靛藍色 (`Indigo`)**。代表邏輯、權限與深層配置。 - 樣式: `bg-indigo-500/10 text-indigo-500` - **危險/移除動作**: **玫瑰紅 (`Rose`)**。代表破壞性操作。 - 樣式: `bg-rose-500/10 text-rose-500` ## 9. 資料表格規範 (Data Tables) 為了確保管理後台資料的可讀性與精密感,表格內的所有文字級別必須對齊以下規範: ### 文字大小與權重 (Typography Hierarchy) - **表頭 (Table Header)**: - 類別: `text-xs font-bold text-slate-500 dark:text-slate-400 uppercase tracking-[0.15em]` - 作用: 提供清晰的欄位定義而不奪取資料視覺焦點。具備足夠對比度。 - **主標題 (Primary Item)**: - 類別: `text-base font-extrabold text-slate-800 dark:text-slate-100` - 範例: 公司名稱、機體名稱。 - **次要資訊 (Secondary Info)**: - 類別: `text-xs font-bold text-slate-500 dark:text-slate-400 tracking-wide` - 範例: 使用者帳號、備註、權限名稱。 - **狀態標籤 (Status Badge)**: - 範例: 啟用 (`emerald`)、禁用 (`rose`) / 角色名稱 (`sky`/`indigo`)。 - 特性: `px-2.5 py-1 rounded-lg text-xs font-bold border tracking-wider` ### 空間與反應 (Spacing & Interaction) - **單元格內距**: 統一使用 `px-6 py-6`。 - **懸停反應**: 必須在 `tr` 套用 `group` 且子元素套用 `group-hover:bg-slate-50/80` (深色: `dark:group-hover:bg-slate-800/40`) 以提供高級的互動感知。 - **圖示容器懸停 (Icon Hover Palette)**: - 列表左側的主圖示容器在 `group-hover` 時,應由淡色背景轉為 **實體主題色**。 - 類別: `group-hover:bg-cyan-500 group-hover:text-white transition-all duration-300`。 - **文字同步變色**: - 主標題文字在 `group-hover` 時應同步變色,以強化點擊引導。 - 類別: `group-hover:text-cyan-600 dark:group-hover:text-cyan-400 transition-colors`。 ### 分頁與列表控制項 (Pagination & Controls) 為了維持操作一致性,所有列表的分頁與切換組件必須遵循以下「Luxury Jump」模式: - **統一高度**: 所有控制項(按鈕、下拉選單)固定為 `h-9` (36px)。 - **筆數切換 (Limit Selector)**: - 規範: **禁止**在表格上方(Header/Toolbar)重複放置筆數切換選單。統一收納於底部分頁欄位。 - **分頁導航 (Luxury Jump)**: - 模式: 捨棄傳統頁碼按鈕,全端統一使用「跳轉選單」。 - 寬度: 下拉選單內部 Padding 為 `pl-4 pr-10`。 - 字體: 使用 `text-xs font-black tracking-widest`。 - **指示文字**: - 行動端隱藏多餘詞彙,僅保留「1 - 10 / 50」格式。 - 數字顏色對齊 `text-slate-600` (深色: `text-slate-300`)。 ### 底部清單控制項 (Bottom List Controls) 為了確保長列表的操作便利,清單底部應保持乾淨,統一由分頁與總數組件接管操作。 ### 標準操作按鈕 (Standard Action Icons) 表格內的操作欄位(如「編輯」、「刪除」、「詳情」)必須使用以下定義之 **「黃金標準 (Gold Standard)」**: - **共同樣式**: - 容器: `p-2 rounded-lg bg-slate-50 dark:bg-slate-800` - 主色: `text-slate-400` - 邊框: `border border-transparent` (防閃爍處理) - 過渡: `transition-all` (使用預設速度以確保俐落感) - 圖示粗細: `stroke-width="2.5"` - 尺寸: `w-4 h-4` - **編輯按鈕 (Edit)**: - 懸停特效: `hover:text-cyan-500 hover:bg-cyan-500/10 hover:border-cyan-500/20` - SVG 路徑: ```html ``` - **查看詳情 (View/Detail)**: - 懸停特效: `hover:text-indigo-500 hover:bg-indigo-500/10 hover:border-indigo-500/20` - SVG 路徑: ```html ``` - **刪除按鈕 (Delete)**: - 懸停特效: `hover:text-rose-500 hover:bg-rose-500/10 hover:border-rose-500/20` - SVG 路徑: ```html ``` ## 10. 系統兼容性與標準化 (Compatibility & Standardization) 為了確保在不同版本的開發環境中(如目前專案使用的 Tailwind CSS v3.1)UI 都能正確呈現,並維持全站操作感一致,必須遵守以下額外規範。 ### Tailwind CSS 版本兼容性 (v3.1) - **禁止使用 `size-` 屬性**: 舊版不支援 `size-4` 等語法,請一律分拆寫作 `w-4 h-4`。 - **避免非標準間距**: 避免使用 `4.5` (`18px`) 等任意值,優先使用標準等級如 `4` (`16px`) 或 `5` (`20px`)。 ## 11. 字體與技術資訊規範 (Typography & Technical Data) 為了確保全站「次要資訊」具備極一致的高級感,必須遵守以下「機台標竿」規範: ### 核心樣式級別 (Core Typography Scale) | 資訊類型 | 客戶/配置名稱 (標題) | 技術代碼 (ID, SN, Code) | 清單時間 (Timestamps) | 分隔符號 (•) | | :--- | :--- | :--- | :--- | :--- | | **字體族** | `font-sans` (Plus Jakarta Sans) | `font-mono` (微縮型單雙格) | `font-mono` (或 `sans` 視場景) | `font-sans` | | **尺寸** | `text-base` | `text-xs` (不可使用 10px) | `text-xs` | `text-xs` | | **字重** | `font-extrabold` (800) | `font-bold` (700) | `font-black` (900) | `font-bold` | | **字距** | `tracking-tight` (-0.02em) | `tracking-widest` (最寬) | `tracking-widest` | `tracking-normal` | | **格式** | 保持原始名稱 | `uppercase` (強制大寫) | `uppercase` | N/A | | **色彩** | `slate-900` / `slate-100` | `slate-500` / `slate-400` | `slate-400` / `slate-400/80` | `slate-300` / `slate-700` | ### 實作禁忌與準則 - **禁止斜體 (No Italics)**: 名稱欄位嚴禁附帶 `italic`(特別是標題或配置名稱),保持直挺專業感。 - **作用範圍 (Mono Scoping)**: `font-mono` 僅限作用於「純英文/數字」的代碼。Email 或分隔點必須回歸 `font-sans` 以確保圓潤。 - **權重載入 (Font Weights)**: 確保 HTML Header 載入了 `800` 與 `900` 權重,避免瀏覽器模擬出的假粗體。 - **清單資訊密度**: 對於高密度清單中的時間資訊,應優先使用 `font-black` 與 `tracking-widest` 來建立明確的「標籤感」,而非僅僅是「微縮文字」。 --- > [!IMPORTANT] > **開發新功能前,必須確認 `app.css` 中的 `.btn-luxury-*` 系列組件是否滿足需求。** > 嚴禁在 Blade 中寫入大量重複的 `bg-indigo-600` 等舊式類別。 --- > [!TIP] > 當遇到未定義的 UI 區塊時,優先參考 `admin.dashboard.blade.php` 的卡片與即時動態實作方式進行衍生。