2017-09-13 85 views
3

這是自舉4.0 SASS

style.scss文件包含以下代碼:

@import "../bootstrap/scss/bootstrap"; 

@import "colors"; 
@import "main"; 

_colors.scss文件包含以下代碼:

$bg-white : white; 

$theme-colors: (
     primary: #333333 
) 

你可以看到我只是想重寫$theme-color('primary'),但問題是它沒有任何作用。

,如果我在文件style.scss開始轉向@import "colors"它給了我以下錯誤:

error ../bootstrap/scss/_forms.scss (Line 284: $color: null is not a color for `rgba')

其實,style.scss文件編譯爲style.css文件和一個鏈接文件。

問:如何我可以覆蓋使用SASS$theme-colorbootstrap-4

任何幫助將不勝感激,並提前致謝

乾杯。

回答

4

這也得到了我。您需要在變量之前將functions.scss導入scss文件。

@import '../../node_modules/bootstrap/scss/functions'; 
@import 'assets/styles/variables'; 
@import '../../node_modules/bootstrap/scss/bootstrap'; 

您的路徑可能不同。

這是Bootstrap 4 Beta 1.

+0

這是我找到的答案也爲我自己。如果沒有上述變量的函數,它不會正確編譯'theme-color(「primary」)',因爲函數內部有一個叫做'theme-color'的函數。 – micah

+0

確認目前似乎不起作用。事實上,當我嘗試這個時候,它仍然會拋出錯誤。 –

2

我假設你已經使用npm安裝Bootstrap 4 beta和你想自定義的引導SCSS沒有node_modules修改源。

我這樣做,是覆蓋包含在variables.scss的引導變量的方法:

APP-styles.scss

// Custom SCSS variables I wish to override (see below) 
@import 'assets/styles/variables'; 

// Bootstrap 4 from node_modules 
@import '~bootstrap/scss/bootstrap.scss'; 

variables.scss

$theme-colors: (
    primary: $trump-hair, 
    secondary: $gandalf-hat, 
    success: $my-favorite-color, 
    info: #FBC02D, 
    warning: #FF5722, 
    danger: $color-of-melena, 
    light: #1B5E20, 
    dark: $bile-green 
); 

的覆蓋引導主題顏色的方式實際上是由於被改變即將推出的測試版2.目前的要求是,覆蓋時必須包含整個theme-colors Sass地圖。在目前的測試版,不包括整個薩斯地圖會:

Argument $color of darken($color, $amount) must be a color

請參閱本Github上issueCodepen更多的信息,以及你將如何能夠覆蓋主題顏色在測試的例子2.

+0

獲取這些值的正確方法是什麼?我在bootstrap scss文件中看到了主題顏色('blue'),但是我得到了錯誤.. – Notflip

+0

它只是一個Sass Map:map-get($ theme-colors,primary) –