2014-07-04 72 views
0

主題文件我有一個包含類似的東西產生SASS/SCSS

// global variables 
@import "variables"; 

// SCSS placeholders 
@import "placeholders"; 

// basic HTML styles - links etc. 
@import "basic"; 

// default layout styles 
@import "layout"; 

/* COMPONENTS */ 
@import "components/layout/header"; // top page header 
@import "components/layout/heading"; // main page heading 

//etc. etc. a lot of another components 

theme.scss SCSS文件,併產生一個輸出CSS文件。現在我需要生成3個不同的顏色主題(differenet CSS文件)。所以我創建了3個SCSS文件theme1.scss,theme2.scsstheme3.scss。他們有相同的內容只有一個區別:

@import "variables"; 

變量將針對每個主題。是的,一切正常。但每次我需要創建另一個主題時,我需要創建另一個SCSS文件並複製粘貼來自以前主題文件的全部內容。有什麼辦法可以創建我的theme1.scsstheme2.scsstheme3.scss而不創建3個重複的文件?

回答

1

你無法@mixin,目前進口的指令不是內部混入工作becuuse這個問題的https://github.com/sass/sass/issues/451

@mixin apply-theme($theme) { 
    @if $theme == 'red' { 
     @import 'variables-red'; 
    } @else if $theme == 'green'{ 
     @import 'variables-green'; 
    } @else{ 
     @import 'variables-defaults'; 
    } 
} 

所以目前你可以用它

$theme:'red'; 
@if $theme == 'red' { 
    @import 'variables-red'; 
} @else if $theme == 'green'{ 
    @import 'variables-green'; 
} @else{ 
    @import 'variables-defaults'; 
} 
做呢