SASS 提供了强大的颜色函数,可以显著简化颜色操作、提升开发效率并增强代码可维护性。以下是关键函数和实战应用指南:
一、核心颜色函数
-
明度控制
scss$primary: #3498db; .light-btn { background: lighten($primary, 20%); // 提升20%亮度 } .dark-btn { background: darken($primary, 15%); // 降低15%亮度 }
-
透明度控制
scss.overlay { background: rgba($primary, 0.8); // 转换为RGBA格式 }
-
颜色混合
scss$secondary: #e74c3c; .mixed-bg { background: mix($primary, $secondary, 60%); // 60%主色+40%次色 }
-
色相调整
scss.accent { color: adjust-hue($primary, 120deg); // 色相环旋转120度 }
-
灰度处理
scss.disabled { color: grayscale($primary); // 完全去色 }
二、高级应用技巧
-
动态主题系统
scss$theme-colors: (primary: #2ecc71, secondary: #f1c40f); @each $name, $color in $theme-colors { .btn-#{$name} { background: $color; &:hover { background: darken($color, 10%); } &:disabled { background: grayscale($color); } } }
-
智能文本对比
scss@function contrast-text($bg) { @if (lightness($bg) > 60%) { @return #000; // 浅背景用深色文字 } @else { @return #fff; // 深背景用浅色文字 } } .card { background: $primary; color: contrast-text($primary); }
-
渐变生成器
scss@mixin gradient-bg($base-color) { background: linear-gradient( to right, adjust-hue($base-color, 15deg), $base-color, adjust-hue($base-color, -15deg) ); } .header { @include gradient-bg(#9b59b6); }
三、最佳实践
-
变量集中管理
scss// _colors.scss $palette: ( primary: #2980b9, accent: mix(#2980b9, #2ecc71, 70%), danger: adjust-hue(#c0392b, -5deg) );
-
响应式暗色模式
scss@mixin dark-mode { $bg: darken($primary, 40%); background: $bg; color: lighten($bg, 60%); border-color: transparentize(lighten($bg, 20%), 0.5); }
-
使用函数链式操作
scss$special: grayscale(adjust-hue(darken(#e67e22, 10%), 180deg));
四、注意事项
- 保持色相调整在±30度内保持视觉协调性
- 混合颜色时建议权重差不超过40%
- 使用
lightness()
函数时注意:- 0% = 纯黑
- 100% = 纯白
- 配合在线工具(如SassMeister)实时预览颜色变化
通过组合使用这些函数,可以实现:
- 动态主题切换
- 状态颜色自动派生
- 颜色方案快速迭代
- 视觉层次自动维护
建议将常用颜色操作封装为 mixin 或 function,形成项目专属的颜色工具库。