CSS 對話泡泡產生器範例會從單一基礎類別搭配一個絕對定位的 ::after 偽元素,產生圓角訊息表面與三角形箭頭,而且完全不使用圖片或 SVG。核心輸入刻意維持精簡:兩個六位數十六進位色碼用於泡泡與文字、半徑範圍 0 到 80 像素、尾巴大小範圍 4 到 40 像素,以及四種固定尾巴方向之一。內部實作上,每個尾巴都繪製為零寬零高的方塊,其邊框以 45 度角相交;所選側邊兩側的邊框設為透明,對側邊框則填上泡泡顏色,產生的三角形接著置中對齊其所指出的那一邊。可見的預覽與複製的程式碼共用同一組通過驗證的尺寸、顏色、側邊與偏移,因此你看到的形狀就是你貼上的形狀。

輸入控制項如何成為三角形邊框
CSS 對話泡泡產生器提供四個實用的數值或顏色控制項,以及四種尾巴側邊之一。每個控制項都對應一段刻意設計、可檢查的 CSS 宣告,因此當你開啟瀏覽器開發者工具時,幾何結構依然清晰易懂。
三角形技巧在 MDN 的 border-style 參考文件與 W3C CSS Backgrounds and Borders Level 3 規範中有詳細說明。簡而言之,一個零寬零高的元素會產生四個三角形邊框區域,在 45 度角相交。僅將所選尾巴方向對側的邊框上色,即可形成箭頭;其餘兩個透明的鄰接邊框構成三角形的另外兩邊,其寬度即為三角形的底邊。
| 尾巴側邊 | 上色邊框 | 透明邊框 | 對齊位置 |
|---|---|---|---|
| 頂部 | 底部 | 左、右 | 泡泡頂部邊緣,置中 |
| 右側 | 左側 | 頂部、底部 | 泡泡右側邊緣,置中 |
| 底部 | 頂部 | 左、右 | 泡泡底部邊緣,置中 |
| 左側 | 右側 | 頂部、底部 | 泡泡左側邊緣,置中 |
由於偽元素無法被行內樣式鎖定,預覽區域以真實的子元素繪製相同的幾何結構。複製出的正式規則則以附加於基礎類別的 ::after 偽元素表示同一形狀,這正是預覽與貼上的結果在頁面本身無需任何標記變更的情況下仍視覺一致的原因。關於邊框數學的更精簡整理,請參考 CSS 對話泡泡產生器速查表:邊框與尾巴指南。
從輸入到 CSS 建立一個泡泡
以下是 CSS 對話泡泡產生器所設計的完整工作流程,使用可直接套用於聊天訊息模型中的具體數值:
- 選擇泡泡與文字顏色。使用完整的六位數十六進位值,以確保文字清晰可讀。在本範例中,將泡泡設為 #2563eb,文字設為 #ffffff。
- 設定圓角半徑與三角形尾巴大小。在本範例中,將半徑設為 16 px,尾巴大小設為 16 px。
- 選擇尾巴側邊。在本範例中,選擇 底部 (bottom),讓箭頭位於訊息下方,這是多數聊天介面的位置。
- 檢查即時預覽。三角形應對齊於底部邊緣並與泡泡顏色完全一致,且泡泡邊框與三角形底邊之間沒有可見的錯位。
- 複製 CSS。將基礎類別與 ::after 規則貼到你的樣式表中,置於擁有該泡泡的元件旁。
- 若箭頭應對齊頭像或中心以外的錨點,請調整 50% 的位置。
以上即為幾何結構本身的完整產出路徑。寬度、內距、排版、聚焦行為與動畫邏輯刻意不納入,以保持複製區塊在各元件間精簡且可預測。
產生器輸出的 CSS
輸出為兩段宣告:一個用於泡泡形狀的類別,以及一個用於三角形的偽元素規則。使用上述範例數值時,無論選擇哪一側,複製區塊的結構都相同,只有上色邊框與定位偏移會改變。
泡泡類別接收 position: relative,以便三角形對齊於其上,並包含通過驗證的 border-radius 以及泡泡與文字的顏色組合。偽元素規則以絕對定位放置三角形,於每側放置所請求尾巴大小的實心透明邊框,並僅在其中一側(本範例為 border-top-color)填上泡泡顏色。寬度為零、高度為零,單靠該上色邊框即可產生箭頭。
對於頂部尾巴,border-bottom-color 為上色邊框,絕對定位對齊於泡泡頂部。對於右側與左側尾巴,透明邊框為頂部與底部,而上色邊框朝向內側,定位偏移則調整為 top: 50%; left: 100% 或其鏡像版本。CSS 對話泡泡產生器明確寫出這些宣告,使幾何結構保持可檢查性,而側邊選擇是各設定之間唯一的變數。
將泡泡整合進實際版面
泡泡是一種形狀,而非 UI 元件。一旦幾何結構進入頁面,下一步決策便是語意與情境。
對於聊天訊息,請將泡泡包裝於清單項目中,並置於一個可呈現作者與時間戳記的容器內。以純文字公開狀態與順序,而非僅透過左或右的位置來編碼,因為裝飾性箭頭並不建立語意關係,而螢幕閱讀器使用者仍應能夠掌握發言者與時間。對於引述區塊,<blockquote> 或簡單的 <p> 便是合適的容器。對於互動式工具提示,僅有形狀並不夠——還需新增觸發關聯、鍵盤可達性、可預期的關閉行為、聚焦行為與無障礙名稱,並在實際瀏覽器工作階段中逐一驗證後再發佈。
請於放入欄位之前,為正式元件設定合理的最大寬度、內距與換行規則。過長的未中斷字串、狹窄的行動裝置寬度、縮放以及翻譯後的文字,都可能使方框意外擴張並與尾巴碰撞。請於所選尾巴側邊預留足夠的外部空間,並檢查每個響應式斷點,而非僅檢查桌面寬度。
若泡泡位於具有 overflow: hidden 或其他裁剪容器的祖先元素內,箭頭可能會被切除。最常見的原因是父容器未預期裝飾性子元素突出其邊界。請檢查包含區塊鏈,接著選擇移動泡泡或放寬裁剪。對於遭固定頁首或黏性工具列裁切的視窗,亦存在相同風險。
對比度是另一個獨立問題。產生器接受任何有效的六位數顏色組合,因此視覺上賞心悅目的泡泡仍可能難以閱讀。本工具並不計算 WCAG 比率;此檢查應於你自己的樣式表檢查流程中,使用考量實際渲染文字大小與粗細的對比度參考資料來完成。
限制與產生器拒絕的事項
CSS 對話泡泡產生器內部的驗證規則刻意精簡,並界定了你可以貼入正式環境的內容:
- 尾巴大小範圍限制為 4 px 至 40 px。超出此範圍,幾何結構就不再讀作箭頭。
- 圓角半徑範圍限制為 0 px 至 80 px。更大的值會使泡泡變成不再讀作訊息的橢圓或藥丸形狀。
- 顏色必須為完整的六位數十六進位值,例如 #2563eb。簡寫形式與具名顏色會依設計予以拒絕。
- 空白的數值控制項會予以拒絕,而非轉換為零。空白的數值欄位會予以拒絕,而非轉換為零。
尾巴大小同樣限制了三角形的底邊。採用邊框三角形技巧時,底邊等於尾巴大小的兩倍,因此運作公式為 三角形底邊 = 2 × 尾巴大小。代入範例數值可得 2 × 16 px = 32 px,即繪製於泡泡底部邊緣的三角形寬度。正是這個關係,使得較小的尾巴產生幾乎不可見的箭頭,而較大的尾巴產生顯著的楔形。
四個尾巴方向已涵蓋所有情況。自訂偏移、多重箭頭、曲線尾巴、外框與陰影皆刻意排除於此聚焦輸出之外。若設計需要這些效果,請於複製後再行疊加——產生器止步於形狀之處,其餘留給你自己的元件程式碼。
計算發生之處
所有計算皆於瀏覽器本機執行。不會上傳任何內容、不會保留任何資料、無需帳號,也不會為頁面新增任何依賴項。同一組通過驗證的尺寸、顏色、側邊與偏移同時驅動可見的預覽與複製的規則,使預覽成為最終輸出的忠實代理。
由於兩條路徑共用相同的公式,你看到的幾何結構與你貼上的幾何結構完全一致。這讓審查交接更為流暢——設計師可擷取特定設定、傳送 CSS,整合者無需從螢幕擷圖重新推導邊框數學,即可獲得相同的形狀。複製完成後,剩餘的工作在於整合既有設計權杖、測試語意閱讀順序、相關時的鍵盤行為、對比度、高對比模式、縮放、本地化、溢出,以及容納箭頭的確切容器。
若你在權衡各種選項,CSS 條紋產生器:命令列 vs 線上工具對此有詳細說明。