Gatsby에서 SCSS를 Mixin하는 방법
하고 싶었던 일
Scoped Style에 mixin으로 정의한 CSS를 include로 읽고 싶었습니다.
mixin의 파일 예
src/assets/scss/foundation/_mixin.scss// flexbox
@mixin flexbox($wrap: nowrap, $align: stretch, $justify: center) {
display: flex;
flex-wrap: $wrap;
align-items: $align;
justify-content: $justify;
}
SASS/SCSS 설정
$ yarn add node-sass gatsby-plugin-sass
gatsby-config.jsmodule.exports = {
--- (中略) ---
plugins: [
{
resolve: `gatsby-plugin-sass`,
options: {
data: `@import "./src/assets/scss/foundation/_mixin.scss";`
},
}
--- (中略) ---
Scoped Style에서 Mixin을 사용할 때
다음은 gatsby-starter-default를 사용하여 프로젝트를 만든 것에 대해 index.js에서 Scoped Style을 사용하려는 경우의 예입니다.
src/pages/index.module.scss.hoge {
@include flexbox(nowrap, normal, center);
}
src/pages/index.jsimport React from "react"
import { Link } from "gatsby"
import Layout from "../components/layout"
import Image from "../components/image"
import SEO from "../components/seo"
import Style from "./index.module.scss" // 追加
const IndexPage = () => (
<Layout>
<SEO title="Home" />
<h1>Hi people</h1>
<div className={Style.hoge}> // 追加
<p>Welcome to your new Gatsby site.</p>
<p>Now go build something great.</p>
</div>
<div style={{ maxWidth: `300px`, marginBottom: `1.45rem` }}>
<Image />
</div>
<Link to="/page-2/">Go to page 2</Link> <br />
<Link to="/using-typescript/">Go to "Using TypeScript"</Link>
</Layout>
)
export default IndexPage
스타일을 맞춘 Div가 가운데 정렬되어 있습니다.
Reference
이 문제에 관하여(Gatsby에서 SCSS를 Mixin하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naoto_koyama/items/950da4629a8c398f3cd3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
src/assets/scss/foundation/_mixin.scss
// flexbox
@mixin flexbox($wrap: nowrap, $align: stretch, $justify: center) {
display: flex;
flex-wrap: $wrap;
align-items: $align;
justify-content: $justify;
}
SASS/SCSS 설정
$ yarn add node-sass gatsby-plugin-sass
gatsby-config.jsmodule.exports = {
--- (中略) ---
plugins: [
{
resolve: `gatsby-plugin-sass`,
options: {
data: `@import "./src/assets/scss/foundation/_mixin.scss";`
},
}
--- (中略) ---
Scoped Style에서 Mixin을 사용할 때
다음은 gatsby-starter-default를 사용하여 프로젝트를 만든 것에 대해 index.js에서 Scoped Style을 사용하려는 경우의 예입니다.
src/pages/index.module.scss.hoge {
@include flexbox(nowrap, normal, center);
}
src/pages/index.jsimport React from "react"
import { Link } from "gatsby"
import Layout from "../components/layout"
import Image from "../components/image"
import SEO from "../components/seo"
import Style from "./index.module.scss" // 追加
const IndexPage = () => (
<Layout>
<SEO title="Home" />
<h1>Hi people</h1>
<div className={Style.hoge}> // 追加
<p>Welcome to your new Gatsby site.</p>
<p>Now go build something great.</p>
</div>
<div style={{ maxWidth: `300px`, marginBottom: `1.45rem` }}>
<Image />
</div>
<Link to="/page-2/">Go to page 2</Link> <br />
<Link to="/using-typescript/">Go to "Using TypeScript"</Link>
</Layout>
)
export default IndexPage
스타일을 맞춘 Div가 가운데 정렬되어 있습니다.
Reference
이 문제에 관하여(Gatsby에서 SCSS를 Mixin하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naoto_koyama/items/950da4629a8c398f3cd3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ yarn add node-sass gatsby-plugin-sass
module.exports = {
--- (中略) ---
plugins: [
{
resolve: `gatsby-plugin-sass`,
options: {
data: `@import "./src/assets/scss/foundation/_mixin.scss";`
},
}
--- (中略) ---
다음은 gatsby-starter-default를 사용하여 프로젝트를 만든 것에 대해 index.js에서 Scoped Style을 사용하려는 경우의 예입니다.
src/pages/index.module.scss
.hoge {
@include flexbox(nowrap, normal, center);
}
src/pages/index.js
import React from "react"
import { Link } from "gatsby"
import Layout from "../components/layout"
import Image from "../components/image"
import SEO from "../components/seo"
import Style from "./index.module.scss" // 追加
const IndexPage = () => (
<Layout>
<SEO title="Home" />
<h1>Hi people</h1>
<div className={Style.hoge}> // 追加
<p>Welcome to your new Gatsby site.</p>
<p>Now go build something great.</p>
</div>
<div style={{ maxWidth: `300px`, marginBottom: `1.45rem` }}>
<Image />
</div>
<Link to="/page-2/">Go to page 2</Link> <br />
<Link to="/using-typescript/">Go to "Using TypeScript"</Link>
</Layout>
)
export default IndexPage
스타일을 맞춘 Div가 가운데 정렬되어 있습니다.
Reference
이 문제에 관하여(Gatsby에서 SCSS를 Mixin하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naoto_koyama/items/950da4629a8c398f3cd3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)