I am trying to use react-alice-carousel,
And in the section of How To Use, It said something like this.
Style import
SCSS
#import "react-alice-carousel/src/alice-carousel.scss";
CSS
#import "react-alice-carousel/lib/alice-carousel.css";
Webpack
#import "react-alice-carousel/lib/alice-carousel.css";
And I am unable to import these files in my local project and so I am not getting the desired outcome.
You may have the wrong .scss file path. It should be:
#import "react-alice-carousel/lib/scss/alice-carousel.scss";
If you don't have node-sass you'll probably need to import the css file. I'd recommend importing it in your top level css file. Which would be index.css if you're using create-react-app.
Related
is there a way to use Bootstrap SASS variables in SASS module?
For example I have file index.module.scss inside my react/NextJS project. How can I use in that sass module variable from bootstrap? Something like this:
.hero{
color: $blue-200;
}
If i just add this import at start of file:
#import '~bootstrap/scss/bootstrap.scss';
I got this error (from NextJS):
Let me notice, that when I use this import in non-module sass file (lets say in file index.scss), then it works. But I need (want) to use SASS modules...
Any idea how to solve it?
Thanks!
Oh, I find a solution. I can add this three imports (instead that one bootstrap imports):
#import "~bootstrap/scss/functions";
#import "~bootstrap/scss/variables";
#import "~bootstrap/scss/mixins";
These three imports together works and doesn't cause error...
Is there any way to import all _*.scss files to main App.scss file in React project? As I have separate folder for each component, I want to avoid typing
#import './components/UI/button';
#import './components/UI/menu';
#import './components/Forms/textInput';
What would be perfect is a working code like this:
#import './components/*';
I'm aware of order problem, I doesn't affect my css, files can be imported randomly.
The glob package will do it if you really wanted. I would advise against it though, including a sass file directly in the component is more efficient but mostly because order matters in CSS.
You can create file _index.scss in components directory and import all files from the subdirectories. After you can import writing #import './components/index'; or #import './components';
In my React app, instead of using styled-component or CSS-in-JS or importing a particular SCSS file into a component,
I used the SMACSS method where the only stylesheet that's being imported is the index.scss, which imports all the SCSS
files inside the styles directory.
Initially, I did the method of importing each SCSS file,
but I changed my mind after realizing that my file structure was messy and switched to the less modern way.
I'm just
wondering if there's a difference between importing each stylesheet and importing only one in terms of performance and
speed of an app.
I don't think it will make much difference in performance but you would be better off building up the good structure of code which is always recommended.
It's always good practice to create the single folder scss and then provide the references in main.scss of other files in folders like this way.
#import 'var';
#import 'mixins';
#import 'normalize';
#import 'default';
#import 'global/inputs';
#import 'global/btn';
#import 'components/modal-general';
#import 'components/modal-tabbed';
Then you can also use this single reference main.scss or index.scss in app.js or index.js
I'm using create-react-app and I integrated Sass to it. It is compiling just fine, the issue is that if I create a variable or mixin, use it in one of my sass files and then close the localhost and comeback later and run npm start, it will give me an error, like this one:
The files are not recognizing the variables (mixin in this case), which is located in a file named "base.scss".
I also have an index.scss file where I import all my other .scss components:
#import "./styles/base.scss";
#import "./styles/layout.scss";
#import "./styles/components/search-bar.scss";
#import "./styles/components/side-nav.scss";
#import "./styles/components/phone-navigation.scss";
#import "./styles/components/card.scss";
#import "./styles/components/pagination.scss";
#import "./styles/components/dropdown.scss";
#import "./styles/components/dashboard.scss";
#import "./styles/components/cast.scss";
In the index.css file I can see the compiled code from all my .scss components, so it seems that it is working properly, I can see even the mixin in the compiled index.css file.
Did you find an answer? I think in create-react-app you need to #import 'base' for every components.scss file, otherwise the variables are not found.
I'm used in Rails to be able to import many sass or scss files in a single import statement. In my application.scss I'd put the following, which would import all files and folders in the folders base/modules/layouts:
#import 'base/**/*';
#import 'blocks/**/*';
#import 'layouts/**/*';
Is there any way to accomplish this in a Webpack (2.0) and React (15) context?
You can use a preloader like this for webpack https://github.com/Aintaer/import-glob-loader to achieve the behaviour. Basically this preloader expands your import statement before compiling them. Read more on the github page.