
許多設計系統都是從顏色和尺寸等基本設計標記開始的,這些標記可以輕鬆轉換為 CSS 變數(或 Sass 或 Less 等)。
// tokens.scss
$primary-text-color: #aaa;
$secondary-text-color: #ccc;
$size-s: 8px;
$size-m: 16px;
// some-component.scss
.some-component {
color: $primary-text-color;
padding: $size-s $size-m;
h4 {
color: $secondary-text-color;
}
}
令牌集合中的下一個合乎邏輯的添加是字體。雖然您可以將上述模式應用於字體,但我遇到的大多數設計師都會將版式作為一個整體來考慮。字體及其粗細會影響其大小和行高——這都是一攬子交易。
換句話說,排版被視為一個類別。這是 Sass(或 Less)mixin 的一個很好的用例(不幸的是,目前原生 CSS 中沒有等效的)。
這是一個例子:
// tokens.scss
$font-sans-serif: Aria, Helvetica, sans-serif;
$size-s: 8px;
$size-m: 16px;
$size-l: 24px;
$size-xl: 48px;
@mixin heading-sans-serif-l {
font-family: $font-sans-serif;
font-size: $size-l;
font-weight: 700;
line-height: 1.3;
}
@mixin heading-sans-serif-xl {
font-family: $font-sans-serif;
font-size: $size-xl;
font-weight: 700;
line-height: 1.4;
}
// some-component.scss
@use "tokens";
.some-component {
h2 {
@include tokens.heading-sans-serif-xl;
padding: $size-l $size-xl;
}
h3 {
@include tokens.heading-sans-serif-l;
padding: $size-s $size-m;
}
}
具有some-component 類別的任何元件中的每個h2 和h3 都會獲得所有 在其包含的mixin 中定義的樣式— font-family、font-size、font-weight、 line-height —我們可以透過添加一些填充來自由擴展它(您可以使用@use從外部文件導入)。如果有必要(或者如果你想讓設計師眼花撩亂),你也可以覆蓋任何 mixin 值。
這是我在 Dictionary.com 建造設計系統時所採用的方法。它確實有助於簡化今年早些時候推出的主頁(Thesaurus.com!)和瀏覽頁面(/browse/light 是典型的例子)的重新設計工作。
利用 mixins 在您的設計系統中建立強大的構建塊。
以上是如何使用 Sass mixins 為設計系統建立版面標記的詳細內容。更多資訊請關注PHP中文網其他相關文章!