UI-db|UI 效果與工具資料庫
按鈕與微互動 12 招(Micro-interactions 12)
讓點擊、切換、成功與失敗都有回饋。卡片裡的按鈕多數也能直接用滑鼠玩。
- 漣漪按鈕(Ripple Button):點下去,圓形波紋從手指位置擴散。Ripple Effect:點擊按鈕時,在點擊座標生成一個圓形,從 0 放大到覆蓋整顆按鈕並淡出(overflow: hidden)。
- 磁吸按鈕(Magnetic Button):游標靠近,按鈕被吸過去。Magnetic Button:游標進入按鈕周圍範圍時,按鈕依游標與中心的距離往游標方向位移(約 30%),離開時彈回原位。
- 掃光按鈕(Shimmer Button):一道光定時從按鈕上掃過。Shimmer Button:按鈕上有一條傾斜的半透明白色漸層,定時從左到右掃過,吸引點擊。
- 流光邊框(Glow Border):彩色光沿著邊框一直繞。Animated Glow Border:用旋轉的 conic-gradient 當邊框,外層再疊一層模糊光暈,光沿著按鈕外框繞圈。
- 按壓回彈(Press Squish):按下縮一點,放開彈回來。Press Squish / Tactile Press:按下時按鈕 scale(0.94) 並縮小陰影,放開時用彈簧曲線回到 1。
- 填滿按鈕(Hover Fill):滑過時顏色從一側填滿。Hover Fill:空心按鈕在 hover 時,背景色塊從左側 scaleX(0→1) 填滿,文字顏色同步反轉。
- 愛心爆開(Like Burst):按讚時愛心彈起、周圍噴出小點。Like Burst:點愛心時圖示縮小再彈大並變紅,周圍一圈小圓點向外噴出後消失(像 Twitter 按讚)。
- 開關切換(Toggle Switch):圓鈕滑過去時會被拉長。Toggle Switch:開關切換時圓鈕滑到另一側,移動中寬度拉長像果凍,底色在灰與主色間過渡。
- 勾選繪製(Checkbox Draw):勾勾像用筆畫出來。Animated Checkbox:勾選時方框填色,勾號用 SVG stroke-dashoffset 從 0 畫到完整。
- 複製成功(Copy Feedback):複製圖示變成打勾,跳出提示。Copy to Clipboard Feedback:點複製後圖示交叉淡換成打勾,上方彈出「已複製」小提示,2 秒後還原。
- 錯誤搖晃(Shake Error):輸入錯誤時欄位左右搖頭。Shake on Error:送出錯誤時輸入框左右快速搖晃 3 次,邊框變紅並在下方淡入錯誤訊息。
- 通知滑入(Toast Slide):通知從下方滑入,倒數後離開。Toast Notification:通知從畫面下方滑入並帶彈性,底部進度條倒數縮短,時間到滑出消失。
背景效果 12 招(Backgrounds 12)
放在 Hero 或整頁後面的動態背景,前景內容不用動也有氛圍。
- 極光(Aurora):幾團模糊的彩光慢慢飄。Aurora Background:深色底上放 3–4 個大型彩色圓形,加強烈模糊(blur 60px+),各自緩慢漂移與縮放。
- 網格漸層(Mesh Gradient):多個顏色點融在一起流動。Mesh Gradient:疊加多個 radial-gradient 色點,各自位置緩慢移動,形成柔和交融的網格漸層(像 Stripe 首頁)。
- 流動漸層(Animated Gradient):漸層顏色斜斜地一直流。Animated Gradient:多色 linear-gradient 設 400% 大小,持續移動 background-position 讓顏色流動。
- 錐形光暈(Conic Glow):中心一圈彩虹光在旋轉。Conic Glow:中央放一個 conic-gradient 圓並加模糊,持續旋轉,像發光的光環。
- 聚光燈(Spotlight):一束光跟著游標照亮網格。Spotlight Effect:深色網格背景上,以游標位置為中心的 radial-gradient 光圈照亮周圍,遠處保持暗。
- 顆粒雜訊(Noise Grain):漸層上疊一層會跳動的顆粒。Grain / Noise Overlay:在漸層上疊一層 SVG feTurbulence 雜訊(低透明度),用 steps 動畫抖動位置模擬底片顆粒。
- 點陣網格(Dot Grid):整齊的點陣被一道波浪點亮。Dot Grid Background:radial-gradient 重複排成點陣,上面疊一個移動的圓形遮罩讓局部的點變亮。
- 透視網格(Retro Grid):80 年代的地板網格往前跑。Retro Perspective Grid:網格平面 rotateX 往遠處延伸,持續往鏡頭方向捲動,地平線上有漸層夕陽(Synthwave)。
- 粒子連線(Particle Network):漂浮的點靠近時會連線。Particle Network:canvas 上的粒子隨機漂浮,兩點距離小於門檻時畫出越近越亮的連線(particles.js 風格)。
- 星空穿越(Starfield):星星從中心往外飛,像曲速前進。Starfield / Warp Speed:canvas 上的星點依 z 深度投影,從中心往外加速飛出並拉出短尾線。
- 波浪(Layered Waves):幾層波浪錯開速度流動。Layered Waves:三層半透明 SVG 波浪疊在底部,各自以不同速度水平移動。
- 數位雨(Matrix Rain):綠色字元一行行往下掉。Matrix Digital Rain:canvas 每一欄有字元往下掉,前端最亮、後方拖著漸淡的尾巴(駭客任務)。
捲動效果 12 招(Scroll Effects 12)
卡片裡是一個會自動捲動的小頁面;滑鼠移進去會暫停,可以自己捲。
- 淡入上移(Fade Up):滾進畫面時從下方淡入。Fade Up on Scroll:元素進入視窗(IntersectionObserver)時從 translateY(24px)、透明度 0 過渡到原位。
- 交錯進場(Stagger Reveal):一排卡片一張接一張出現。Staggered Reveal:一組卡片進入視窗時依序出現,每張延遲 80ms,形成接力感。
- 左右滑入(Slide In):內容輪流從左邊、右邊滑進來。Alternating Slide In:時間軸項目進入視窗時,奇數從左、偶數從右滑入並淡入。
- 縮放進場(Scale In):從小放大到原尺寸。Scale In on Scroll:元素進入視窗時從 scale(0.8)、透明度 0 彈性放大到 1。
- 逐行浮現(Line Reveal):標題每一行從遮罩下方升起。Line Reveal / Mask Reveal:標題每一行包在 overflow: hidden 裡,進入視窗時文字從 translateY(100%) 依序升起。
- 數字滾動(Count Up):數字滾進畫面才開始往上數。Count Up on Scroll:統計數字進入視窗時才從 0 用 ease-out 累加到目標值。
- 閱讀進度條(Reading Progress):頂部細線跟著捲動長長。Scroll Progress Bar:頁面頂部細條寬度 = 已捲動距離 ÷ 可捲動總長,捲回去會縮短。
- 視差捲動(Parallax):遠景慢、近景快,產生深度。Parallax Scrolling:背景、中景、前景各自以不同比例(如 0.2、0.5、1)跟著捲動位移,產生深度。
- 堆疊卡片(Sticky Stack):卡片黏在頂端一張疊一張。Sticky Card Stack:每張卡片 position: sticky、top 依序遞增,捲動時後一張蓋上前一張,前一張微微縮小變暗。
- 橫向捲動(Horizontal Scroll):往下捲,內容卻往旁邊走。Horizontal Scroll Section:區塊固定(sticky)在畫面中,垂直捲動進度轉換成內部橫列的 translateX。
- 捲動填色字(Scroll Text Fill):捲動時文字一個字一個字亮起。Scroll-linked Text Highlight:段落文字先是淡灰色,依捲動進度逐字變成實色(像 Apple 產品頁)。
- 縮小導覽列(Shrinking Header):往下捲時導覽列變矮、加陰影。Shrinking Sticky Header:捲動超過門檻後,sticky 導覽列高度與 Logo 縮小、背景變半透明模糊並加陰影。