:5 種樣式變體與交互狀態(tài)全解析)
SkynexUI Button 按鈕組件實戰(zhàn)5 種樣式變體與交互狀態(tài)全解析【免費(fèi)下載鏈接】components?? Deliver UI for Web and Mobile platforms without taking care about complexity on how to style there. Its based in React and Flutter and uses the core of CSS specification to allow you to write cross platform styles.項目地址: https://gitcode.com/gh_mirrors/components3/componentsSkynexUI Components 是一套基于 React 與 Flutter 的跨平臺 UI 組件庫其中SkynexUI Button 按鈕組件是開發(fā)者最常用的交互元素之一。它用一套基于 CSS 規(guī)范的樣式 DSL讓你在 Web 與移動端寫出風(fēng)格一致的按鈕無需關(guān)心各平臺繁瑣的樣式差異。本篇文章將帶你快速掌握 Button 按鈕組件的5 種尺寸變體、3 種視覺變體、7 種顏色變體以及完整交互狀態(tài)是一份適合新手的按鈕組件實戰(zhàn)指南。一、為什么選擇 SkynexUI 按鈕組件傳統(tǒng)的跨平臺開發(fā)中Web 端用 CSS、Flutter 端用 Widget 樣式兩套體系各寫一遍維護(hù)成本極高。SkynexUI 的核心思路是用一套樣式規(guī)則基于 CSS 的 key-value 約定同時驅(qū)動兩端Web 端基于 React樣式通過styleSheet屬性直接聲明移動端基于 Flutter使用同構(gòu)的StyleSheet寫法可讀性強(qiáng)hover、focus、disabled等狀態(tài)直接內(nèi)聯(lián)在樣式對象里結(jié)構(gòu)一目了然按鈕組件的核心實現(xiàn)位于 button.tsx官方使用文檔可參考 button.mdx還有完整的交互示例放在 button.stories.mdx 中。二、快速上手安裝與引入在 React 項目中一條命令即可安裝npm install skynexui/components然后在代碼中引入并直接使用import { Button } from skynexui/components; Button label立即開始 variantprimary sizemd /在 Flutter 項目中則通過pubspec.yaml引入包用法同樣簡單import package:skynexui_components/components.dart; 最基礎(chǔ)的按鈕只需要一個label屬性即可渲染其余屬性都有合理的默認(rèn)值零成本上手。三、5 種尺寸變體從緊湊到醒目自由切換這是標(biāo)題中提到的核心亮點——Button 按鈕組件共提供 5 種尺寸變體通過size屬性切換分別是尺寸適用場景內(nèi)邊距水平/垂直xs表格操作、標(biāo)簽欄x2.5 / x1.5sm常規(guī)列表操作默認(rèn)x3 / x2md表單提交按鈕x4 / x2lg卡片主按鈕x4 / x2xl落地頁 CTA 大按鈕x6 / x3不同尺寸還會自動匹配對應(yīng)的文字排版變體body2~body4字號與留白比例協(xié)調(diào)無需手動調(diào)樣式。具體尺寸映射可在 button.tsx 中查看buttonSizes定義。Button label小按鈕 sizesm / Button label大按鈕 sizexl /四、3 種視覺樣式變體實心、描邊與幽靈variant屬性控制按鈕的視覺層級對應(yīng) 3 種主流設(shè)計風(fēng)格primary實心 filled主操作按鈕背景色為品牌主色視覺沖擊力最強(qiáng)secondary描邊 outlined次操作按鈕透明底 主色描邊懸停時填充主色tertiary幽靈 ghost弱化操作按鈕僅文字著色懸停時浮現(xiàn)淺色背景這三者在設(shè)計系統(tǒng)中分別承擔(dān)主要動作 / 次要動作 / 補(bǔ)充動作的層級配合使用可以讓頁面主次分明。樣式邏輯集中在 button.tsx 的buttonStyles對象中。Button label主操作 variantprimary / Button label次操作 variantsecondary / Button label補(bǔ)充操作 varianttertiary /五、7 種顏色變體與一鍵自定義配色通過colorVariant屬性你可以直接套用主題色板共 7 種可選primary品牌主色、accent強(qiáng)調(diào)色、positive成功綠、negative危險紅、warning警示橙、dark深色、light淺色。比如刪除確認(rèn)按鈕一個negative就能表達(dá)語義Button label刪除文件 colorVariantnegative variantprimary /如果你需要完全自定義品牌色還可以使用buttonColors屬性一次性傳入 4 個顏色槽Button variantsecondary label自定義配色按鈕 buttonColors{{ mainColor: #C65D21, mainColorStrong: #AB4E19, mainColorLight: #E67635, contrastColor: #FFFFFF, }} /該用法在 button.stories.mdx 中有完整 Story 示例。此外圓角也可通過rounded屬性在none / sm / md / full之間切換full會得到膠囊形按鈕。六、按鈕交互狀態(tài)全解析hover、focus、disabled 與水波紋這是按鈕組件實戰(zhàn)中最容易忽略、也最能提升體驗的部分。SkynexUI Button 的交互狀態(tài)全部內(nèi)建1. hover 懸停狀態(tài)實心按鈕背景加深為mainColorStrong描邊按鈕背景填充主色、文字反白幽靈按鈕浮現(xiàn)淺色背景、文字反白2. focus 聚焦?fàn)顟B(tài)與 hover 保持一致的視覺反饋方便鍵盤用戶定位當(dāng)前操作同時保留outline: 0保證樣式統(tǒng)一。3. disabled 禁用狀態(tài)自動降低透明度至 0.65鼠標(biāo)變?yōu)閚ot-allowed防止誤操作。4. 點擊水波紋Ripple特效按鈕內(nèi)置了 Material 風(fēng)格的水波紋動畫點擊時從觸點擴(kuò)散出漣漪時長 600ms交互反饋非常細(xì)膩。實現(xiàn)位于 ripples.tsx基于useRipplesHook 完成無需任何額外配置即可生效。 實戰(zhàn)提示這些狀態(tài)都可在styleSheet中覆蓋例如styleSheet{{ hover: { transform: scale(1.02) } }}即可實現(xiàn)放大反饋。七、進(jìn)階玩法圖標(biāo)按鈕、鏈接按鈕與全寬按鈕掌握了基礎(chǔ)變體后這 3 個高頻用法能讓按鈕組件真正融入業(yè)務(wù)圖標(biāo) 文字傳入iconNamegithub圖標(biāo)自動排在文字右側(cè)純圖標(biāo)圓形按鈕只傳iconName不傳label自動渲染為 48×48 的圓形按鈕適合刷新、關(guān)閉等場景鏈接按鈕傳入href自動渲染為a標(biāo)簽內(nèi)部路由自動走 Next.js Router外部鏈接自動新開標(biāo)簽頁全寬按鈕fullWidth讓按鈕撐滿容器常用于移動端表單底部Button iconNamearrowRight / // 純圖標(biāo) Button label帶圖標(biāo) iconNamegithub / // 圖標(biāo)文字 Button label去首頁 href/ / // 內(nèi)部鏈接 Button label提交 typesubmit fullWidth / // 全寬提交八、移動端同樣適用Flutter 按鈕組件作為跨平臺組件庫Button 在 Flutter 端同樣可用。Flutter 實現(xiàn)位于 button.dart與 Web 端共享同一套樣式心智模型——你不需要學(xué)習(xí)兩套按鈕體系寫一套樣式思路即可覆蓋兩端。下圖是項目在 iOS 端的應(yīng)用圖標(biāo)代表了這套組件庫對移動端的完整支持如果你正在規(guī)劃一個一套代碼、兩端統(tǒng)一的產(chǎn)品不妨把 SkynexUI Button 按鈕組件作為跨平臺樣式的第一塊試驗田從 5 種尺寸變體到完整的交互狀態(tài)體驗一次真正意義上的樣式統(tǒng)一。寫在最后本文帶你完整走過了SkynexUI Button 按鈕組件的實戰(zhàn)全流程5 種尺寸變體、3 種視覺變體、7 種顏色變體以及 hover / focus / disabled / 水波紋等交互狀態(tài)。無論是 Web 端的 React 項目還是移動端的 Flutter 應(yīng)用你都可以用幾乎相同的寫法獲得一致的按鈕體驗。上手時記得多翻看 button.stories.mdx 中的交互示例動手調(diào)一調(diào)參數(shù)比看任何文檔都來得快?!久赓M(fèi)下載鏈接】components?? Deliver UI for Web and Mobile platforms without taking care about complexity on how to style there. Its based in React and Flutter and uses the core of CSS specification to allow you to write cross platform styles.項目地址: https://gitcode.com/gh_mirrors/components3/components創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考