CSS Modules ใน Next.js

CSS Modules เป็นวิธีหนึ่งในการเขียน CSS สำหรับ React applications โดยที่แต่ละไฟล์ CSS จะมีชื่อคลาส CSS เฉพาะตัว ซึ่งจะช่วยลดปัญหาการชนกันของชื่อคลาส CSS ไฟล์ CSS Modules จะใช้นามสกุลไฟล์ .module.css

Next.js รองรับ CSS Modules อยู่แล้ว ดังนั้นคุณจึงสามารถใช้ CSS Modules กับ Next.js ได้โดยไม่จำเป็นต้องตั้งค่าอะไรเพิ่มเติม

ตัวอย่างเช่น ไฟล์ CSS Modules ต่อไปนี้จะสร้างคลาส CSS เฉพาะตัวชื่อ my-button:

1
2
3
4
.my-button {
background-color: red;
color: white;
}

คุณสามารถใช้คลาสนี้ในไฟล์ React component ของคุณดังนี้:

1
2
3
4
5
6
7
8
9
10
11
12
import React from 'react';
import styles from './styles.module.css';

const Button = () => {
return (
<button className={styles.my-button}>
Click me!
</button>
);
};

export default Button;

เมื่อคุณ render ไฟล์ React component นี้ คลาส my-button จะถูกแปลงเป็นชื่อคลาส CSS เฉพาะตัว ซึ่งจะช่วยลดปัญหาการชนกันของชื่อคลาส CSS

CSS Modules เป็นวิธีที่ดีในการเขียน CSS สำหรับ Next.js applications ช่วยให้คุณสามารถเขียน CSS ที่อ่านง่ายและ maintainable ได้มากขึ้น

Here are some of the benefits of using CSS Modules with Next.js:

  • No class name collisions: Each CSS Modules file has its own unique class name, so you don’t have to worry about class name collisions.
  • Better performance: CSS Modules are compiled into inline CSS, which can improve performance.
  • Easy to maintain: CSS Modules files are self-contained, so it’s easy to find and update the CSS for a particular component.

If you’re looking for a way to write CSS for your Next.js applications, I recommend using CSS Modules. It’s a simple and effective way to write maintainable and performant CSS.