Bootstrap 5
CSS 前端工程

Bootstrap 5.2 主要更新:幾乎全部元件都用 CSS 變數實作,新的 CSS build sequence

商業,創業,業務,職涯,美食,葡萄酒,閱讀,網路科技。

從 Larry 創業以及商業的經驗,希望以白話的口吻,介紹給大家這個商業的世界。

FB粉專會頻繁地更新 Larry 對於商業、社會、人生的觀察與心得,歡迎大家追蹤互動~

圖片來源 https://blog.getbootstrap.com/2022/05/16/using-bootstrap-css-vars/

https://blog.getbootstrap.com/2022/07/19/bootstrap-5-2-0/
前幾天 (2022/7/19) Bootstrap 5.2 發布了。每次看到 Bootstrap 新版本的發布,都會有感於時間過的真的很快。以下是我關於 Bootstrap 的文章,大致的時間線:

撰文的現在是2022年7月。可以看到每一個 Bootstrap minor version 的更新,就是半年~1年。更甭論 major version 的更新是好幾年一版。所以每次寫 Bootstrap,就代表好多歲月又過去了。

以下是 Bootstrap 5.2 的主要更新:

官網首頁重新設計,以及文件網頁優化

重新設計了 Bootstrap 官網首頁,文件網頁也有多處優化,包含左側 menu 的重組,文件搜尋的使用體驗,等等。

更新按鈕樣式

border-radius 調大了一點,雖然按鈕大小跟之前一樣,看起來好像 padding 變小而文字更突出的感覺。

幾乎全部元件都用 CSS 變數 (custom property) 實作

比 Bootstrap 5.1 更多的 CSS 變數實作,幾乎全部元件都是。

新的 _maps.scss

有一個新的 scss/_maps.scss (Bootstrap 5.1 沒有)。_maps.scss 將一些 Sass map 從 _variables.scss 抽出。修正對原始 Sass map 修改時,基於原始 Sass map 擴展的 map,不會繼承這些修改的問題。

舉例來說 $utilities-colors 基於 $theme-colors 擴展。因為 Bootstrap 5.1 $utilities-colors_variables.scss 就定義生成了,所以在

@import "variables";

之後對 $theme-colors 的修改,都不會繼承到 $utilities-colors (它已經生成了)。

而 Bootstrap 5.2 $utilities-colors 移到 _map.scss,整個架構上會比較清楚,你的 Bootstrap CSS build 順序可以參考:

// Functions come first
@import "functions";

// Your optional variable overrides here

// Variables come next
@import "variables";

// Your optional Sass map overrides here

// Third the default maps
@import "maps";

// The rest
@import "mixins";
@import "utilities";
@import "root";
@import "reboot";

新的 CSS helpers and utilities

新的 .text-bg-{color} helper,使用 .text-bg-{color} 可以直接設定 background-color 和文字顏色,而不是兩個 css class 個別設定。

font-weight 方面新增 .fw-semibold (font weight 600)。border-radius 方面新增 .rounded-4 (border radius 1rem) .rounded-5 (border radius 2rem)

Responsive offcanvas

Bootstrap 5.2 可以使用 .offcanvas-{sm|md|lg|xl|xxl},例如 .offcanvas-lg,在 viewport 大於 lg breakpoint 時,已經顯示的 offcanvas 會隱藏。

Bootstrap 5.0、5.1 就開始使用的 .offcanvas class 仍然存在,使用 .offcanvas 顯示就不隨 viewport 大小而改變。

compile CSS Grid 版本時可以包含 container class

scss/_variables.scss 新增了一個變數 $enable-container-classes,如果是 true,當 compile 成 CSS Grid 版本,container class 仍然會 compile 進去 (5.1 之前不會)。

結論

Bootstrap 5.2 沒有大的架構更新,就是多了一些 CSS helper class。CSS 變數的使用幾乎遍及所有元件,所以大家要知道 CSS 變數的使用是一個趨勢。也要稍微知道一下新的 _maps.scss,它的邏輯是什麼,Bootstrap 5.2 CSS build 的順序是什麼。

商業,創業,業務,職涯,美食,葡萄酒,閱讀,網路科技。

從 Larry 創業以及商業的經驗,希望以白話的口吻,介紹給大家這個商業的世界。

FB粉專會頻繁地更新 Larry 對於商業、社會、人生的觀察與心得,歡迎大家追蹤互動~