2017-02-25 55 views
1

具体化の変数を_variables.scssで変更したいと思います。私のVueの2 main.jsvueでmaterializecssのsass変数を上書きする方法は?

$primary-color: color("materialize-red", "lighten-2") !default; 
$primary-color-light: lighten($primary-color, 15%) !default; 
$primary-color-dark: darken($primary-color, 15%) !default; 
/*...*/ 

私は私が実体化を含む前に私の_variables.scssを含める必要があるが、私は方法がわからないと思いますので!defaultのこの

require('materialize-css/sass/materialize.scss'); 

のようなスタイルを具現含まれています。

自分の変数を設定する適切な方法は何ですか。 $primary-color: color("blue", "lighten-2")(私は、マテリアライズ_colors.scssの定義済みのパレットを使用します)?

EDIT 1:私はvue-cli

EDIT 2でvue2をインストール:

フォルダ構造:

├── build/ 
├── config/ 
├── dist/ 
├── node_modules/ 
│ ├── materialize-css 
├── src/ 
│ ├── components 
│ ├── router 
│ └── main.js 
├── package.json 
└── index.html 
+0

ウェブパックを使用していますか?はいの場合は、scssファイルの中でmaterialize.scssの前に変数をインポートし、そのファイルをコードにインポートすることができます。使用しているローダーやバンドラーがいない場合はどうすればいいですか? –

+0

@TusharAroraはい、更新された質問です。私は早くそれを試みたが、うまくいかなかった。 – Traxo

+0

@Traxo私は答えを掲載しましたが、あなたのプロジェクトディレクトリ構造のような詳細を投稿できる方が良いでしょう。これにより、より良い方法で問題をトラブルシューティングするのに役立ちます。 – geeksal

答えて

4

マテリアライズドCSSのデフォルト設定を変更する前に。最初に、設定を変更するコンポーネントをインポートする必要があります。この後、デフォルト設定を上書きして、マテリアライズをインポートする必要があります。たとえば、あなたは、次のコード記述し、デフォルトの色を変更する例app.scss用のファイルを作成する場合:

//please put the paths as per yours project directory structure 
@import "materialize-css/sass/components/color"; 
$primary-color: color("blue", "lighten-2") !default; 
@import 'materialize-css/sass/materialize'  

:app.cssは、あなたのページに含まれている必要があります。私の例のapp.cssあたりとして、あなたはrepo githubのマテリアライズド require('../app.scss');

訪問の公式としてVueの2にapp.scssまたはapp.cssをロードすることができたindex.html今

のと同じレベルで、プロジェクトのルートフォルダのIEでなければなりません完全なソースを表示する。

+0

'app.scss'がルートになければならない理由があるのでしょうか、それともちょうどそのようなものでしょうか? これまでのところ、このアプローチが機能しているようですが、回答を受け入れる前にもっとテストする時間がかかります。 – Traxo

+0

@Traxoいいえ、 'app.scss'をrootにする必要はありません。それは単なる例です。しかし、私がすでにあなたに言ったように、あなたは常に道に注意するべきです。したがって、別のフォルダに移動するときは、ファイル内のパスを更新するようにしてください。うん!あなたは自分の時間をかけてテストすることができます。 – geeksal

-1

実体-CSSをカスタマイズするには、CSSのソースを具体ダウンロードする必要が(Sass版)materializecssから。これにはソース.scssファイルが含まれます。抽出されたソースにはsassという名前のフォルダがあります。このフォルダにはmaterialize.scssというファイルがあります。これはソースファイルであり、実際のマテリアライズCSSを生成します。あなたはmaterialize.scssファイルが存在するフォルダ内のソースと実行、次のコマンドで_variables.scssを変更することができます。

sass materialize.scss materialize.css 

これは、あなたのvue.jsコード内で使用することができますmaterialize.cssを、生成されます。詳細はhereです。


ない正確に関連しますが、this questionはvue.js.で使用するブートストラップをカスタマイズするために同様のアプローチを使用しています

+2

これは悪いアプローチです。 Materializeは、デフォルト変数を使用します。これは、materialize.scssの前に_variables.scssをインポートすることで簡単にオーバーライドできます。ソースからCSSを生成する必要は全くありません。 –

+1

[その他](https://medium.com/@mancebo128/how-to-properly-add-custom-colors-to-materialize-css-52e5e4c58d58#.w6m86v8f4)こちらの記事をご覧ください。 – Saurabh

+1

Materialize.scssのバージョンが変更されるとすぐに、それを使用するためにもう一度コンパイルする必要がありますか?何らかの種類のモジュールバンドラを使用する場合、このプロセスは上記のコメントで説明したように簡単になるでしょう。 https://github.com/webpack-contrib/sass-loaderを見てください –

関連する問題