Stylify CSS로 더 빠르게 Next.js 웹사이트 스타일 지정
더 쉽게 시작하려면 Stylify Stackblitz playground 🎮을(를) 확인하세요.
소개
Stylify은 작성하는 내용에 따라 동적으로 CSS를 생성합니다. 구문은 css
property:value
와 유사합니다. 정의된 유틸리티는 구성 요소 선택기와 결합되며 프로덕션에서는 .color\:red,.button {color:red}
~ _zx, _ga{color:red}
와 같이 최소한으로 축소됩니다.Stylify를 사용하면 매우 작은 번들을 얻을 수 있고 추가 레이지 로드된 CSS 청크를 생성하고 HTML 및 선택기를 작성하여 페이지 스타일을 지정할 수 있습니다 🤟.
Next.js 설정
Next.js를 설정하는 가장 쉬운 방법은 cli를 사용하는 것입니다.
yarn create next-app
이렇게 하면 기본 Next.js 애플리케이션 스켈레톤을 얻을 수 있습니다.
Stylify 통합
NPM 또는 Yarn을 사용하여 @stylify/unplugin 패키지를 설치합니다.
yarn add @stylify/unplugin
npm i @stylify/unplugin
next.config.js
를 열고 다음 콘텐츠를 복사합니다.const { webpackPlugin } = require('@stylify/unplugin');
const stylifyPlugin = (dev) => webpackPlugin({
dev: dev,
transformIncludeFilter: (id) => id.endsWith('js'),
bundles: [{
outputFile: './styles/stylify.css',
// Generate CSS from all js files
files: ['./pages/**/*.js'],
}],
extend: {
bundler: {
compiler: {
selectorsAreas: [
// For selecting className="selector"
'(?:^|\\s+)className="([^"]+)"',
'(?:^|\\s+)className=\'([^\']+)\'',
'(?:^|\\s+)className=\\{`((?:.|\n)+)`\\}'
]
}
}
}
});
module.exports = {
reactStrictMode: true,
webpack: (config, { dev }) => {
// Add Stylify Webpack plugin
config.plugins.push(stylifyPlugin(dev));
return config;
}
}
마지막 단계에서
pages/_app.js
를 열고 stylify.css
에 경로를 추가합니다.// ...
import '../styles/stylify.css';
function MyApp({ Component, pageProps }) {
return <Component {...pageProps} />
}
export default MyApp;
웹사이트 스타일링
아래 코드를
pages/index.js
에 복사하고 yarn dev
를 실행하면 스타일이 지정된 Hello World!
텍스트를 얻게 됩니다.export default function Home() {
return <div className="color:blue">Hello World!</div>;
}
Stylify는
js
파일의 변경 사항을 감시하고 css를 styles/stylify.css
로 생성합니다.font-size:24px
와 같은 선택기를 추가하면 CSS가 자동으로 업데이트됩니다 🎉.Stackblitz.com 💡에서 직접 Stylify를 사용해 보십시오.
구성품
유틸리티 선택기로 부풀어 오른 템플릿은 읽기 어렵습니다. Stylify를 사용하면 content options (대괄호 없는 javascript 객체 예상) 또는 compiler config 을 통해 사용되는 파일에서 구성 요소를 직접 정의할 수 있습니다.
/*
@stylify-components
container: 'max-width:800px margin:0__auto'
/@stylify-components
*/
export default function Home() {
return (
<div className="container">
<div className="color:blue">Hello World!</div>
</div>
)
}
변수
선택기에서 하드코딩된 값을 피하는 것이 좋습니다. Variables은 구성 요소와 동일한 방식으로 정의할 수 있습니다.
/*
@stylify-variables
blue: 'steelblue',
containerWidth: '800px'
/@stylify-variables
@stylify-components
container: 'max-width:$containerWidth margin:0__auto'
/@stylify-components
*/
export default function Home() {
return (
<div className="container">
<div className="color:$blue">Hello World!</div>
</div>
)
}
프로덕션 빌드
yarn build
+ yarn start
를 사용하여 프로덕션 빌드를 실행하면 jsx 마크업이 다음과 같이 엉망이 됩니다.export default function Home() {
return (
<div className="_7tcrv">
<div className="_ro073">Hello World!</div>
</div>
)
}
CSS도 단축됩니다.
:root {
--blue: #4682b4;
--containerWidth: 800px
}
._ro073 {color: #4682b4}
._7tcrv,._bcda8 { max-width: 800px }
._7tcrv,._m0vnad { margin: 0 auto }
필요한 모든 구성
위의 예에는 Stylify가 할 수 있는 모든 것이 포함되어 있지 않습니다.
ml:20px
와 같은 own macros 추가자세한 내용은 checkout the docs로 문의하십시오 💎.
당신이 무슨 생각을하는지 제게 알려주세요!
나는 어떤 피드백에도 기뻐할 것입니다! Stylify은 여전히 새로운 라이브러리이며 개선할 여지가 많습니다 🙂.
연락을 유지하다:
👉
👉
👉 stylifycss.com
👉
👉 medium.com/@8machy
Reference
이 문제에 관하여(Stylify CSS로 더 빠르게 Next.js 웹사이트 스타일 지정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/machy8/style-your-nextjs-website-faster-with-stylify-css-f7k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)