Skip to content
Cubic Bezier 產生器
Tools

Cubic Bezier 產生器

拖曳控制點設計 CSS 緩動曲線,附即時預覽。

A
 
CSS keywords
Named easing curves

Runs entirely in your browser. Nothing is uploaded.

以視覺化方式設計 CSS 緩動曲線

這個 cubic-bezier 產生器將抽象的 cubic-bezier(x1, y1, x2, y2) 值轉化為可以看見和感受的東西。在圖表上拖曳兩個控制點控制桿來塑造加速曲線,觀看以精確時序運動的即時預覽,然後複製可直接用於 CSS 過渡和動畫的值。這是完整的 緩動曲線編輯器cubic-bezier 視覺化工具合二為一,完全在瀏覽器中執行——無需安裝,無需帳號。

每條曲線從 (0,0) 延伸到 (1,1)。水平軸代表時間,垂直軸代表進度,因此在開始時急劇上升的曲線意味著快速起步,而在結尾趨於平緩的曲線意味著柔和的結束。在四個輸入框中輸入精確數值、拖曳控制桿,或貼上現有的 cubic-bezier() 值來載入和調整它。每次移動控制桿,結果都會即時更新。

30+ 預設:CSS 關鍵字與命名緩動曲線

預設列將競爭對手通常分開的兩件事合二為一。你可以取得五個 CSS 關鍵字——linear、ease、ease-in、ease-out 和 ease-in-out——以及 easings.net 推廣的完整命名緩動曲線目錄:Sine、Quad、Cubic、Quart、Quint、Expo、Circ 和 Back,每個都有 In、Out 和 In-Out 變體。這意味著 easeInOutCubiceaseOutQuarteaseOutBack 等都只需一鍵,已轉換為 css cubic-bezier 值。

每個預設都顯示一個小曲線縮圖,讓你一眼就能識別其形狀,然後直接載入到編輯器中供你精調。Easings.net 只列出名稱並顯示靜態圖片——無法在那裡編輯或匯出。cubic-bezier.com 顯示五個 CSS 關鍵字但沒有完整的 Penner 集。這個工具在同一個地方提供兩者,並支援編輯。

過衝、彈跳與預備動作

cubic-bezier 的 y 值不限於 0–1。將控制桿推過方框上方,動畫會越過目標後才穩定——easeOutBack = cubic-bezier(0.34, 1.56, 0.64, 1) 那種彈性感。將控制桿拉到方框下方,元素會先向後收縮,就像跳躍前的助跑。編輯器的圖表延伸到單位框之外,讓你能拖入那個過衝區域並即時預覽效果。

Chrome DevTools 有內建的 cubic-bezier 編輯器,但會將控制桿限制在 0–1 框內,因此無法在那裡建立過衝或預備動作效果。Firefox DevTools 有同樣的限制。兩者也都缺少這裡提供的命名預設目錄和匯出選項。如果你需要過衝效果,這是為數不多真正支援它的工具之一。

與其他 cubic-bezier 工具的比較

Lea Verou 的 cubic-bezier.com 是普及拖曳預覽格式的參考工具,至今仍是快速產生 CSS 曲線的好選擇。但它沒有 GSAP 匯出、沒有 JavaScript 緩動函數輸出、沒有比較模式、沒有 Penner 預設庫,而且在行動裝置上介面會崩潰。Easings.net 是唯讀參考——你選擇一個命名曲線,它顯示值,但沒有編輯器,也沒有可調整的內容。

Chrome 和 Firefox DevTools 在瀏覽器檢查器中各自包含一個輕量級 cubic-bezier 編輯器,當你已在 DevTools 中工作時很方便。代價是:不開啟 DevTools 就無法使用,控制桿被限制在 0–1(無過衝),無法匯出 GSAP 或 JS 程式碼,在行動裝置上完全無法使用。UtiloKit 的產生器將互動式編輯器、預設庫、比較工具和三種匯出格式集於一頁,在任何裝置上都能使用。

即時預覽與並排比較

按下播放,示範元素會以你的曲線循環播放,讓你判斷運動效果,而不僅僅是數字。在 translate、scale 和 opacity 之間切換示範,並調整持續時間以符合你的實際動畫。開啟比較模式,將第二條曲線放在第一條旁邊——在提交到正式環境之前選擇正確過渡時間函數的完美方式。

持續時間滑桿將預覽速度從 200ms 控制到 3 秒,讓你測試同一條曲線在不同速度下的感覺。慢動作預覽通常會揭示問題——比如開始時的卡頓——這些問題在 300ms 時是不可見的。大多數其他工具,包括 cubic-bezier.com,只以一個固定速度預覽,不提供並排比較。

匯出到 CSS、GSAP 和 JavaScript——免費

複製你的技術堆疊所需的內容。CSS 索引標籤提供 transition 單行速記和完整的 @keyframes 動畫區塊。GSAP 索引標籤輸出 CustomEase.create() 呼叫,使你的 GSAP 動畫與曲線完全匹配。JS 索引標籤產生獨立的 javascript cubic-bezier 緩動函數——一個 Newton-Raphson 求解器,可以無需任何依賴地直接放入 requestAnimationFrame 或任何補間動畫中。

找到喜歡的曲線了嗎?分享它。工具將四個值編碼在頁面 URL 中,因此連結可以在任何裝置上重現你的精確緩動。一切都在瀏覽器中執行——沒有任何內容被上傳、儲存或記錄——完全免費,無需註冊。

Frequently asked questions

CSS 中的 cubic-bezier 是什麼?

cubic-bezier() 是由貝茲曲線定義的緩動(時間)函數。在 transition-timing-function 或 animation-timing-function 中寫作 cubic-bezier(x1, y1, x2, y2),兩個控制點彎曲曲線,使動畫加速和減速,而不是以恆定速度運動。例如,cubic-bezier(0.25, 0.1, 0.25, 1) 與 CSS 關鍵字 'ease' 完全相同。

cubic-bezier 的四個值是如何運作的?

cubic-bezier(x1, y1, x2, y2) 列出兩個控制點:P1 = (x1, y1) 拉動曲線的起點,P2 = (x2, y2) 拉動終點。曲線本身始終從 (0,0) 開始,在 (1,1) 結束。x 值代表時間,必須保持在 0 到 1 之間;y 值代表進度,可以低於 0 或高於 1 以實現過衝效果。拖曳圖表上的兩個控制桿,四個數字會隨著移動即時更新。

ease、ease-in、ease-out 和 ease-in-out 有什麼區別?

linear 以恆定速度移動,沒有緩動——對大多數 UI 來說看起來不自然。ease——CSS 預設值——開始稍快然後緩出。ease-in 緩慢開始並在末尾加速,通常給人一種物體下落的感覺。ease-out 快速開始然後減速,這對出現在螢幕上的元素來說通常感覺最自然。ease-in-out 兩端緩慢,中間最快,適合穿越螢幕並需要平滑停止的元素。

cubic-bezier 的 y 值可以超過 1 或低於 0 嗎?

y 值可以,這就是獲得過衝和預備動作效果的方式。x(時間)值始終限制在 0–1,但 y 高於 1 會使元素超過目標後彈回——像彈簧一樣——而 y 低於 0 會使其先向後收縮。一個經典例子是 easeOutBack = cubic-bezier(0.34, 1.56, 0.64, 1)。這個編輯器允許你將控制桿拖出 0–1 框來建立這些效果。

如何在 CSS 過渡或動畫中使用 cubic-bezier?

將其放入時間函數插槽中。對於過渡:transition: transform 600ms cubic-bezier(0.33, 1, 0.68, 1);。對於關鍵影格動畫:animation: slide 600ms cubic-bezier(0.33, 1, 0.68, 1) both;。此工具的 CSS 索引標籤使用你目前的曲線和持續時間自動產生兩個程式碼片段,可以直接複製貼上到樣式表中。

如何將 easeInOutQuad 這樣的命名緩動轉換為 cubic-bezier?

從預設目錄載入——Penner / easings.net 曲線都有標準的 cubic-bezier 近似值。例如 easeInOutQuad = cubic-bezier(0.45, 0, 0.55, 1),easeOutCubic = cubic-bezier(0.33, 1, 0.68, 1),easeInOutCubic = cubic-bezier(0.65, 0, 0.35, 1)。從圖庫選擇命名曲線,直接將值複製到 CSS 中。

這個 cubic-bezier 產生器是免費且私密的嗎?

完全免費,無需註冊,沒有任何內容被上傳到任何地方。曲線編輯器、即時預覽以及 CSS、GSAP 和 JavaScript 匯出都在瀏覽器本機執行。你建立的內容不會傳送到伺服器,因此你的工作完全留在你的裝置上。你還可以透過在 URL 中編碼四個值的連結來分享曲線——無需帳號。

Related tools

檢視所有工具