生成主題的過程通常涉及到定義一組可以靈活變更的樣式變量(如顏色、字體等),並使用這些變量來應用在不同的主題中。通過修改變量的值,可以實現主題的切換
步驟
實現深色與淺色主題切換
SASS
// 定義主題顏色變量
$light-bg: #ffffff;
$light-text: #000000;
$dark-bg: #333333;
$dark-text: #ffffff;
// 定義混合器,用於應用顏色主題
@mixin theme($bg-color, $text-color) {
background-color: $bg-color;
color: $text-color;
}
// 基本樣式
body {
font-family: Arial, sans-serif;
@include theme($light-bg, $light-text); // 預設淺色主題
}
// 深色主題
.dark-mode {
@include theme($dark-bg, $dark-text);
}
// 按鈕樣式
button {
padding: 10px 15px;
border: none;
cursor: pointer;
@include theme($light-bg, $light-text);
// 切換深色主題時,按鈕樣式也要改變
.dark-mode & {
@include theme($dark-bg, $dark-text);
}
}
$light-bg, $light-text, $dark-bg,$dark-text:這些變量定義了淺色和深色主題的背景顏色和文字顏色。
@mixin theme($bg-color, $text-color):這是 SASS 的混合器,用來簡化主題切換。它接收兩個參數:背景顏色和文字顏色,並將它們應用到相應的樣式中。
body { ... }:
在 body 標籤下,應用了 @include theme($light-bg, $light-text),這表示網頁的初始樣式會使用淺色主題(背景為白色,文字為黑色)。
.dark-mode { ... }:
當應用上 .dark-mode 類時,會將主題切換為深色,這裡使用了 @include theme($dark-bg, $dark-text),將背景設為深灰色,文字設為白色。
button { ... }:
定義了按鈕的樣式,初始樣式為淺色主題(背景白色,文字黑色)。
當 .dark-mode 類生效時,按鈕樣式同樣會切換為深色主題,這是通過嵌套的 .dark-mode & 實現的
編譯後的 CSS:
body {
font-family: Arial, sans-serif;
background-color: #ffffff;
color: #000000;
}
.dark-mode {
background-color: #333333;
color: #ffffff;
}
button {
padding: 10px 15px;
border: none;
cursor: pointer;
background-color: #ffffff;
color: #000000;
}
.dark-mode button {
background-color: #333333;
color: #ffffff;
}
SASS 語法與概念總結