•8 min read

Tailwind CSS v4: Có gì mới và cách di chuyển

Tailwind CSS v4: Có gì mới và cách di chuyển
Audio Briefing
0:00 / 0:00

Giới thiệu

Tailwind CSS v4 đã chính thức ra mắt, và nó đại diện cho một trong những cuộc đại tu quan trọng nhất trong lịch sử của framework này. Được viết lại từ đầu, v4 hứa hẹn thời gian build cực nhanh, trải nghiệm phát triển đơn giản hóa và một bộ công cụ thống nhất.

Trong bài đăng này, chúng ta sẽ đi sâu vào những gì làm cho Tailwind CSS v4 trở thành một yếu tố thay đổi cuộc chơi và hướng dẫn quy trình di chuyển cho các ứng dụng hiện có của bạn.

Advertisement

Engine Oxide

Tính năng nổi bật của v4 là engine Oxide. Được viết bằng Rust, nó thay thế hoàn toàn pipeline xử lý dựa trên Node.js cũ. Kết quả? Thời gian build nhanh hơn tới 10 lần.

Đối với các nhà phát triển làm việc trên các codebase lớn, điều này có nghĩa là hot-module replacement (HMR) tức thì và thời gian pipeline CI/CD giảm đáng kể. Tốc độ phân tích của engine mới nhanh đến mức bạn sẽ hầu như không nhận thấy nó đang chạy.

Không cần cấu hình

Hãy nói lời tạm biệt với tailwind.config.js. Tailwind v4 áp dụng triết lý không cần cấu hình.

Cấu hình ưu tiên CSS

Thay vì một tệp cấu hình JavaScript cồng kềnh, việc tùy chỉnh giờ đây được thực hiện trực tiếp trong CSS của bạn bằng cách sử dụng các biến CSS tiêu chuẩn và các chỉ thị @theme mới.

@import "tailwindcss";

@theme {
  --color-primary: #3b82f6;
  --font-family-sans: 'Inter', sans-serif;
}

Cách tiếp cận này không chỉ đơn giản hóa việc thiết lập mà còn phù hợp hơn với các tính năng CSS gốc, giúp dễ dàng tích hợp với các công cụ và hệ thống thiết kế khác.

Phát hiện nội dung tự động

Trong các phiên bản trước, việc quản lý cẩn thận mảng content trong tệp cấu hình của bạn là rất quan trọng để đảm bảo các kiểu không bị loại bỏ sai. Tailwind v4 giới thiệu tính năng phát hiện nội dung tự động, thông minh. Nó phân tích cấu trúc dự án của bạn và tự động xác định tệp nào chứa các lớp Tailwind, loại bỏ nhu cầu chỉ định đường dẫn thủ công.

Advertisement

Cải thiện giá trị tùy ý

Các giá trị tùy ý đã được cải thiện để hỗ trợ các tính năng CSS phức tạp hơn. Giờ đây, bạn có thể dễ dàng viết các cấu trúc lồng nhau và các bộ chọn phức tạp trực tiếp trong HTML của mình.

<div class="hover:[&_p]:text-blue-500">
  <p>This text turns blue on hover</p>
</div>

Hướng dẫn di chuyển

Việc di chuyển lên v4 được thiết kế để không gây khó khăn nhất có thể, nhưng nó yêu cầu một vài bước do những thay đổi về kiến trúc.

Bước 1: Cập nhật các dependency

Cập nhật package.json của bạn để lấy các gói v4 mới nhất.

npm install tailwindcss@^4.0.0

Bước 2: Sử dụng công cụ di chuyển

Nhóm Tailwind đã cung cấp một công cụ CLI di chuyển chính thức tuyệt vời giúp xử lý 95% công việc nặng nhọc.

npx @tailwindcss/upgrade

Công cụ này sẽ:

  • Chuyển đổi tailwind.config.js của bạn thành các biến @theme CSS.
  • Cập nhật các chỉ thị @tailwind của bạn thành @import "tailwindcss" mới.
  • Gắn cờ bất kỳ plugin hoặc tính năng không dùng nữa nào cần được chú ý thủ công.

Bước 3: Xác minh và kiểm tra

Chạy quy trình build của bạn và kiểm tra kỹ lưỡng giao diện người dùng của bạn. Đặc biệt chú ý đến bất kỳ plugin tùy chỉnh cao hoặc biến thể tùy ý phức tạp nào mà công cụ nâng cấp có thể đã gắn cờ.

Kết luận

Tailwind CSS v4 là một bước nhảy vọt đáng kể, ưu tiên hiệu suất và trải nghiệm nhà phát triển hơn tất cả. Việc chuyển sang engine dựa trên Rust và cấu hình ưu tiên CSS làm cho framework nhanh hơn và dễ sử dụng hơn bao giờ hết. Hãy bắt đầu nâng cấp dự án của bạn ngay hôm nay và trải nghiệm tốc độ!

Tìm hiểu sâu: Cơ chế cốt lõi

Khi chúng ta nhìn sâu hơn, các cơ chế cơ bản cho thấy sự tương tác phức tạp của các hệ thống. Trong phát triển hiện đại, việc hiểu các cơ chế này là điều phân biệt một người mới với một chuyên gia.

Hãy xem xét ví dụ thực tế này:

// A comprehensive example demonstrating advanced patterns
class ServiceManager {
  constructor() {
    this.services = new Map();
    this.initialized = false;
  }

  register(name, service) {
    if (this.services.has(name)) {
      throw new Error(`Service ${name} already registered`);
    }
    this.services.set(name, service);
  }

  async initializeAll() {
    this.initialized = true;
    for (const [name, service] of this.services) {
      if (typeof service.init === 'function') {
        await service.init();
      }
    }
  }

  get(name) {
    if (!this.initialized) {
      console.warn('Accessing services before initialization');
    }
    return this.services.get(name);
  }
}

Mô hình này đảm bảo rằng kiến trúc của chúng ta vẫn có thể mở rộng và mạnh mẽ ngay cả khi các yêu cầu kinh doanh thay đổi. Đó là một cách tiếp cận cơ bản mang lại lợi ích trong các ứng dụng quy mô lớn.

Ứng dụng thực tế và khả năng mở rộng

Việc triển khai điều này trong môi trường sản xuất đặt ra một loạt thách thức mới. Chúng ta phải tính đến tính đồng thời, quản lý trạng thái và rò rỉ bộ nhớ.

Ví dụ, khi xử lý các hệ thống có thông lượng cao, mọi tối ưu hóa nhỏ đều có giá trị. Chúng ta thường dựa vào các công cụ phân tích hiệu suất để xác định các điểm nghẽn không rõ ràng trong quá trình phát triển cục bộ.

Sơ đồ trên minh họa một chiến lược triển khai điển hình, nơi ứng dụng của chúng ta mở rộng theo chiều ngang.

Kiểm tra sự hiểu biết của bạn

Bạn cũng có thể thích

Các câu hỏi thường gặp

Oxide là engine cốt lõi mới của Tailwind được biên dịch bằng Rust. Nó hoàn toàn bỏ qua các phép biến đổi PostCSS AST của JavaScript, sử dụng tính năng quét hệ thống tệp gốc đa luồng để đạt được thời gian build đầy đủ nhanh hơn tới 10 lần và Hot Module Replacement (HMR) dưới mili giây trong các công cụ như Vite và Next.js.
Tailwind v4 loại bỏ tệp cấu hình JavaScript để ưu tiên CSS gốc. Các màu tùy chỉnh, nhóm phông chữ và điểm ngắt được khai báo trực tiếp trong stylesheet của bạn bằng cách sử dụng @theme { --color-brand: #3b82f6; }. Chúng ánh xạ trực tiếp đến các thuộc tính tùy chỉnh CSS tiêu chuẩn mà không yêu cầu trình đánh giá JS trong bước build.
Tailwind v4 tự động quét cây thư mục dự án để tìm các tệp nguồn chứa các lớp tiện ích, loại bỏ nhu cầu cấu hình rõ ràng content: ['./src/**/*.{ts,tsx}'] trong JavaScript. Điều này ngăn chặn các lỗi sản xuất phổ biến khi các kiểu đã bị loại bỏ không hiển thị do cấu hình glob sai.
Các plugin của bên thứ nhất giờ đây được nhập trực tiếp vào CSS bằng chỉ thị @plugin: @import 'tailwindcss'; @plugin '@tailwindcss/typography';. Chạy npx @tailwindcss/upgrade tự động dịch các plugin tailwind.config.js và các phần mở rộng chủ đề hiện có thành các chỉ thị CSS v4 hợp lệ.
Có. Tailwind v4 mặc định sử dụng không gian màu OKLCH cho bảng màu tiêu chuẩn của nó, cung cấp các bước độ sáng đồng nhất về mặt nhận thức trên các tông màu và mở khóa các màu gam màu rộng sống động trên màn hình P3 hiện đại.
Share this article:

Stay Updated

Get the latest posts delivered straight to your inbox.

Free Developer Utilities

Free In-Browser Developer Tools

Clean AI CLI logs, build cron expressions, decode JWTs, and calculate chmod permissions offline.

Explore Tools
Advertisement