1. Utility-first: Viết bằng class nhỏ, tái sử dụng cao
Đây là phong cách phổ biến hiện nay nhờ các framework như Tailwind CSS. Bạn viết class rất ngắn gọn và mô tả trực tiếp style:
- Ưu điểm: Viết nhanh, ít cần tạo file CSS riêng, dễ tái sử dụng từng style nhỏ.
- Nhược điểm: HTML bị “nặng class”, khó đọc nếu chưa quen. Thiếu tính ngữ nghĩa nếu không đặt tên khéo.
Tip: Nên dùng kèm @apply
để gom nhóm các utility class thành component class nếu dùng Tailwind.
2. BEM: Block – Element – Modifier
BEM giúp tổ chức CSS logic và dễ đọc:
HTML đi kèm:
- Ưu điểm: Có cấu trúc rõ ràng, dễ maintain dự án lớn.
- Nhược điểm: Tốn thời gian viết tên class dài, khó tái sử dụng từng phần nhỏ.
3. Hybrid: Kết hợp Utility + BEM
Nhiều dev hiện đại dùng cách kết hợp smart utility và BEM. Ví dụ: BEM cho cấu trúc chính, còn utility để chỉnh padding, margin, màu…:
CSS chỉ cần khai báo phần logic liên quan tới bố cục:
- Ưu điểm: Dễ maintain, tối ưu performance và tổ chức hợp lý hơn.
- Nhược điểm: Cần quy định nội bộ rõ ràng tránh loạn naming.
4. Gợi ý khi nào nên dùng cách nào?
Trường hợp | Phong cách nên dùng |
---|---|
Landing page nhỏ | Utility-first (Tailwind, WindiCSS…) |
Ứng dụng web lớn nhiều component | BEM hoặc Hybrid |
Website cần style consistency cao | BEM + SCSS mixin |
Frontend hiện đại + team dev đông | Hybrid (Tailwind + class logic riêng) |
5. Tổng kết
Không có “phong cách đúng tuyệt đối” – hãy chọn theo dự án và năng lực team. Nếu bạn cần tốc độ, chọn utility. Nếu bạn cần cấu trúc rõ ràng và lâu dài, BEM hoặc Hybrid là lựa chọn hợp lý.
Bình Luận