Tailwind CSS
Có một vài lý do cốt lõi khiến Tailwind và AI "hợp nhau" đến vậy:
1. Không cần đặt tên — AI không bao giờ mắc kẹt
Vấn đề lớn nhất khi AI viết CSS truyền thống là phải đặt tên class (.card-header, .btn-primary-large…). AI dễ đặt tên mâu thuẫn hoặc trùng lặp với code có sẵn. Tailwind loại bỏ hoàn toàn bước này — mọi style đều là utility class có sẵn, AI chỉ cần chọn, không cần đặt tên.
2. Token-efficient — ngắn gọn, ít tốn context
<!-- CSS thuần: AI phải viết 2 khối, dễ lạc -->
<div class="product-card">...</div>
<style>
.product-card {
display: flex;
flex-direction: column;
padding: 16px;
border-radius: 8px;
background: white;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
</style>
<!-- Tailwind: AI viết 1 dòng, xong -->
<div class="flex flex-col p-4 rounded-lg bg-white shadow-sm">...</div>
Ít token hơn = AI còn "hơi sức" lo logic thay vì lo styling.
3. AI đã được train rất kỹ trên Tailwind
Tailwind cực kỳ phổ biến trên GitHub, StackOverflow, blog — AI thấy nó hàng triệu lần trong training data. Kết quả là AI generate Tailwind chính xác, ít hallucinate class tên hơn so với framework ít phổ biến hơn.
4. Constrained design system — AI không "phát minh" màu loạn
Tailwind có scale cố định: text-sm/base/lg/xl, p-2/4/6/8, gray-100 đến gray-900… AI bị ép dùng trong hệ thống này, kết quả là UI nhất quán hơn thay vì mỗi component một kích thước chữ tùy tiện.
5. Không cần switch file — AI giữ được context
Với CSS modules hay styled-components, AI phải nhảy qua lại giữa file .tsx và .module.css. Với Tailwind, toàn bộ style nằm ngay trong JSX — AI đọc một chỗ, hiểu một chỗ, sửa một chỗ.
6. Kết hợp hoàn hảo với shadcn/ui
shadcn/ui — bộ component được dùng nhiều nhất trong vibe coding — được build trên Tailwind. AI biết cả hai rất rõ, nên có thể customize component shadcn bằng Tailwind mà không cần đọc docs.
Tóm lại: Tailwind phổ biến với vibe coding không phải vì nó "tốt hơn" CSS thuần về mặt kỹ thuật, mà vì nó phù hợp với cách AI "nghĩ" — ít ambiguity, ít context switch, output ngắn và dự đoán được.