Tan Phat Media

CSS to Tailwind Converter

Dán khối CSS thuần, nhận lại chuỗi class Tailwind tương ứng theo từng selector

CSS đầu vào

Tắt công tắc trên nếu bạn muốn giữ đúng mã màu gốc bằng arbitrary value. Bảng ánh xạ đang tham chiếu Tailwind CSS v3.4.

Class Tailwind

Selector

4

Đã chuyển

19

Không chuyển được

0

.card

flex flex-col gap-4 py-6 px-8 max-w-screen-sm bg-gray-800 text-gray-100 border border-solid border-gray-700 rounded-xl shadow-md transition-all duration-300 ease-in-out

.card:hover

hover:bg-slate-800 hover:-translate-y-0.5

hover
.card__title

text-2xl font-bold leading-tight tracking-tight

.card

md:p-10 md:flex-row

md

Tổng cộng 19 khai báo được đọc từ khối CSS bạn dán vào.

Cảnh báo lệch giá trị (1)
  • .card:hoverbackground-color: #263243 — Màu #263243 không có trong bảng màu, đã thay bằng slate-800 (#1e293b), lệch khoảng 14 đơn vị RGB
Công cụ này khác gì hai công cụ Tailwind còn lại

Công cụ này dịch CSS thuần sang class Tailwind. Nếu chuỗi class của bạn đã là Tailwind và chỉ cần xếp lại cho đúng thứ tự khuyến nghị, hãy dùng Tailwind Class Sorter.

Nếu bạn đang làm việc với CSS thuần và cần rà soát biến custom property trong stylesheet, dùng CSS Variable Extractor. Muốn dựng nhanh một khối class từ giao diện thay vì dịch từ CSS có sẵn, xem Tailwind Generator Tailwind Config Generator.

Hợp tác ngay với Tấn Phát Digital

Chúng tôi không chỉ thiết kế website, mà còn giúp doanh nghiệp xây dựng thương hiệu số mạnh mẽ. Cung cấp dịch vụ thiết kế website trọn gói từ thiết kế đến tối ưu SEO. Hãy liên hệ ngay với Tấn Phát Digital để cùng tạo nên những giải pháp công nghệ đột phá, hiệu quả và bền vững cho doanh nghiệp của bạn tại Hồ Chí Minh.

Chuyển CSS thuần sang class Tailwind: đọc từng khai báo và trả về chuỗi class tương ứng

Công cụ nhận nguyên một khối CSS, tách thành từng selector và từng khai báo, rồi ánh xạ sang class Tailwind theo thang spacing 4px và bảng màu mặc định. Media query thành tiền tố responsive, pseudo-class thành tiền tố trạng thái, giá trị lệch thang thành arbitrary value kèm cảnh báo, và mọi khai báo không chuyển được đều được liệt kê rõ ràng thay vì bị bỏ qua âm thầm.

Tính năng nổi bật

  • Đọc cả file CSS nhiều selector lẫn một cụm khai báo rời không có dấu ngoặc nhọn
  • Ánh xạ khoảng cách theo thang 4px, giá trị lệch thang tự sinh arbitrary value dạng ngoặc vuông
  • Quy màu về bảng màu Tailwind gần nhất kèm cảnh báo mức lệch, có công tắc tắt để giữ đúng mã hex gốc
  • Nhận diện media query min-width và sinh tiền tố sm, md, lg, xl, 2xl tương ứng
  • Nhận diện hover, focus, active, disabled, before, after và các pseudo-class khác thành tiền tố trạng thái
  • Tách cú pháp rút gọn của margin, padding, border, flex, transition, transform thành nhiều class riêng
  • Liệt kê từng khai báo không chuyển được kèm lý do và hướng xử lý thay thế
  • Nút chép riêng cho từng selector và nút chép toàn bộ kết quả một lần

Vì sao nên dịch bằng bảng ánh xạ thay vì tra tay từng dòng

Khi chuyển một dự án đang dùng CSS viết tay sang Tailwind, phần mất thời gian nhất không phải là học class mới mà là tra đi tra lại cùng một nhóm giá trị. Bạn nhìn thấy padding 24px, phải nhớ 24 chia 4 bằng 6 nên là p-6. Thấy màu #3b82f6, phải nhớ đó là blue-500 hay blue-600. Thấy font-size 18px, phải nhớ đó là text-lg. Mỗi lần tra chỉ mất vài giây nhưng một file style vài trăm dòng thì cộng lại thành cả buổi, và càng về sau càng dễ nhầm vì mắt đã mỏi. Nguy hiểm hơn là những giá trị gần đúng: 22px không có trên thang nào, #3c83f7 không phải blue-500 mà chỉ gần giống, 0.28s không nằm trong thang duration. Nếu tra tay bạn sẽ có xu hướng làm tròn cho tiện và giao diện lệch đi một chút ở khắp nơi mà không ai chỉ ra được chỗ nào sai. Bảng ánh xạ chạy tự động thì không mệt, không làm tròn ngầm, và mỗi lần phải làm tròn nó đều nói cho bạn biết.

Lợi ích khi sử dụng

  • Rút ngắn việc chuyển đổi một file style dài từ hàng giờ xuống vài phút
  • Không bao giờ im lặng làm tròn giá trị, mọi sai lệch đều hiện thành cảnh báo
  • Giữ được đúng mã màu thương hiệu khi cần, chỉ bằng một công tắc
  • Thấy ngay danh sách khai báo phải xử lý tay nên không sót phần nào khi dọn file cũ
  • Chạy hoàn toàn trên trình duyệt nên dán được cả CSS của dự án nội bộ mà không lo gửi mã ra ngoài

Cách chuyển một khối CSS sang class Tailwind

  1. 1Dán khối CSS vào ô bên trái, có thể dán cả file nhiều selector, cả khối media query, hoặc chỉ một cụm khai báo rời.
  2. 2Kết quả hiện ngay ở ô bên phải, chia theo từng selector kèm chuỗi class và các nhãn biến thể được sinh ra.
  3. 3Xem khối cảnh báo bên dưới để biết giá trị nào bị làm tròn hoặc phải chuyển thành arbitrary value.
  4. 4Xem khối khai báo không chuyển được để biết phần nào phải giữ lại trong file CSS hoặc khai báo trong tailwind.config.
  5. 5Tắt công tắc quy màu nếu dự án của bạn yêu cầu đúng mã màu thương hiệu, khi đó công cụ giữ nguyên hex bằng arbitrary value.
  6. 6Bấm nút chép của từng selector để dán thẳng vào thuộc tính class trong file giao diện.

Thang spacing 4px, và vì sao một số giá trị buộc phải thành arbitrary value

Toàn bộ khoảng cách trong Tailwind dựng trên một đơn vị gốc là 0.25rem, tương đương 4px ở cỡ chữ gốc mặc định. Con số đứng sau tên class chính là số lần của đơn vị đó: p-1 là 4px, p-2 là 8px, p-4 là 16px, p-6 là 24px, p-8 là 32px. Thang này không liên tục ở đoạn lớn, sau 12 thì nhảy sang 14, 16, 20, 24 rồi 28, nghĩa là bước nhảy tăng dần chứ không phải mọi bội số của 4 đều có class. Ngoài ra còn ba giá trị đặc biệt nằm ngoài quy luật: px đúng bằng 1px, 0.5 bằng 2px, và 1.5 bằng 6px, dùng cho những chỗ cần đường kẻ mảnh. Khi bạn dán vào một giá trị như 22px, 15px hay 30px, công cụ không tìm thấy điểm nào trên thang nên sinh ra arbitrary value dạng ngoặc vuông và ghi kèm cảnh báo. Đây không phải lỗi mà là tín hiệu để bạn quyết định: hoặc chỉnh thiết kế về 20px hay 24px cho khớp thang, hoặc giữ nguyên nếu con số đó thực sự có lý do. Điều nên tránh là để rải rác hàng chục arbitrary value khác nhau, vì lúc đó bạn mất luôn cái lợi lớn nhất của Tailwind là giao diện tự đồng nhất theo một thang chung.

Màu sắc: khi nào chấp nhận lệch để về bảng màu, khi nào phải giữ nguyên mã hex

Bảng màu mặc định gồm hai mươi hai tông màu, mỗi tông mười một mức đậm nhạt từ 50 tới 950, cộng thêm đen, trắng và trong suốt. Công cụ đọc mã màu bạn nhập ở mọi dạng thường gặp là hex ba hoặc sáu ký tự, rgb, rgba, hsl, hsla và tên màu chuẩn, rồi tìm ô gần nhất trong bảng bằng khoảng cách trong không gian RGB. Nếu trùng khít, class sinh ra sạch sẽ, không có cảnh báo. Nếu chỉ gần giống, công cụ đưa ra token gần nhất kèm con số cho biết lệch bao nhiêu đơn vị, và nếu lệch quá xa thì nó tự bỏ ý định quy về bảng màu mà giữ nguyên hex bằng arbitrary value. Cách quyết định thực tế như sau: với màu nền phụ, màu viền mờ, màu chữ phụ, việc lệch vài đơn vị RGB không ai nhìn ra nên cứ để công cụ quy về bảng màu cho gọn. Với màu thương hiệu chính, màu logo, màu nút gọi hành động thì tuyệt đối không được lệch, hãy tắt công tắc quy màu để giữ đúng hex, và bước tiếp theo là khai báo màu đó vào tailwind.config để dùng như một token có tên thay vì rải hex khắp giao diện.

Media query và pseudo-class được đổi thành tiền tố như thế nào

Trong CSS thuần bạn tách trạng thái ra thành một khối riêng, còn Tailwind gộp nó vào chính chuỗi class bằng tiền tố ngăn cách bởi dấu hai chấm. Công cụ đọc khối media query, tìm điều kiện min-width rồi so với năm điểm ngắt mặc định là 640, 768, 1024, 1280 và 1536 pixel. Trùng thì sinh tiền tố sm, md, lg, xl hoặc 2xl. Không trùng thì sinh tiền tố tùy chỉnh dạng min kèm ngoặc vuông và nhắc bạn rằng dự án đang dùng điểm ngắt riêng, nên cân nhắc khai báo lại trong tailwind.config cho thống nhất. Điều kiện max-width được đổi sang họ tiền tố max, còn prefers-color-scheme dark thành dark và prefers-reduced-motion thành motion-reduce. Với selector, công cụ quét các pseudo-class quen thuộc và đổi thành tiền tố tương ứng: hover, focus, focus-visible, focus-within, active, disabled, checked, first, last, odd, even, before, after. Khi một selector vừa nằm trong media query vừa có pseudo-class, các tiền tố được nối lại theo đúng thứ tự Tailwind chấp nhận. Một điểm cần nhớ là Tailwind áp dụng nguyên tắc thiết kế cho màn hình nhỏ trước, nên khai báo không tiền tố là mặc định cho mọi cỡ màn hình, còn md chỉ có hiệu lực từ 768 pixel trở lên chứ không phải chỉ trong khoảng 768 tới 1024.

Những khai báo không chuyển được và cách xử lý từng loại

Có bốn nhóm khai báo mà bảng ánh xạ không thể tự lo, và công cụ liệt kê tất cả ra thay vì bỏ qua. Nhóm thứ nhất là hoạt ảnh: khai báo animation gắn với một khối keyframes riêng, mà keyframes thì bắt buộc phải khai báo trong tailwind.config phần keyframes rồi đặt tên cho nó ở phần animation, không có class dựng sẵn nào thay được. Nhóm thứ hai là các cú pháp rút gọn gộp quá nhiều lớp, điển hình là background gộp cả ảnh, vị trí, kích thước và độ lặp trong một dòng, hoặc font gộp cả cỡ chữ, chiều cao dòng và bộ chữ; cách xử lý là tách chúng thành từng khai báo con rồi dán lại. Nhóm thứ ba là những thuộc tính Tailwind cố tình không phủ vì ít dùng, khi đó bạn có hai lựa chọn là giữ nguyên trong file CSS hoặc viết arbitrary property dạng tên thuộc tính và giá trị đặt trong ngoặc vuông. Nhóm thứ tư là các khối at-rule như font-face, import, supports hay chính khối keyframes, vốn không thuộc phạm vi của class tiện ích và phải nằm lại trong file CSS toàn cục. Danh sách này thường ngắn hơn bạn nghĩ, và chính nó cho biết phần CSS nào của dự án thực sự cần viết tay.

Sau khi có chuỗi class rồi thì làm gì tiếp

Kết quả công cụ trả về là bản dịch trung thành từng khai báo, chưa phải là chuỗi class bạn nên giữ nguyên mãi mãi. Có ba việc nên làm ngay sau đó. Thứ nhất là dọn phần dư: CSS viết tay hay chứa những khai báo lặp lại giữa quy tắc chung và quy tắc riêng, khi dịch sang class chúng thành các class cùng đặt một thuộc tính và bạn chỉ cần giữ lại một. Thứ hai là gom lại theo hướng dùng lại: nếu cùng một cụm class lặp ở nhiều nơi, hãy tách nó thành một component thay vì sao chép chuỗi, vì đó mới là cách Tailwind được thiết kế để dùng. Thứ ba là đẩy các giá trị đặc thù lên tệp cấu hình: mọi arbitrary value xuất hiện quá ba lần đều là dấu hiệu dự án của bạn có một token riêng chưa được đặt tên, hãy khai báo nó vào tailwind.config để lần sau viết bằng tên thay vì viết bằng con số. Cuối cùng, sắp xếp lại chuỗi class theo thứ tự chuẩn giúp người sau đọc nhanh hơn và giảm hẳn khả năng hai người sửa cùng một dòng gây xung đột khi hợp nhất mã nguồn.

Câu hỏi thường gặp (FAQ)

Vì sao padding 22px lại ra dạng ngoặc vuông chứ không ra một class thường?

Vì thang khoảng cách của Tailwind đi theo bội số 4px và 22 không nằm trên thang đó. Công cụ không tự làm tròn xuống 20 hay lên 24 vì như vậy sẽ đổi giao diện của bạn mà không báo. Nó sinh arbitrary value giữ đúng 22px và ghi cảnh báo để bạn tự quyết định chỉnh thiết kế hay giữ nguyên.

Công cụ báo màu của tôi lệch bao nhiêu đơn vị, con số đó nghĩa là gì?

Đó là khoảng cách hình học giữa hai màu trong không gian RGB, tính từ ba kênh đỏ, lục, lam. Lệch dưới mười đơn vị gần như không nhìn thấy trên màn hình thường. Lệch trên hai mươi bốn đơn vị thì công cụ tự bỏ ý định quy về bảng màu và giữ nguyên mã hex gốc của bạn.

Tôi cần giữ đúng màu thương hiệu, có cách nào không cho công cụ đổi màu không?

Có, hãy tắt công tắc quy màu về bảng màu Tailwind ở dưới ô nhập. Khi tắt, mọi màu đều được giữ nguyên bằng arbitrary value. Bước tiếp theo nên làm là khai báo màu thương hiệu vào phần colors trong tailwind.config để dùng bằng tên thay vì rải mã hex khắp giao diện.

Khối media query của tôi dùng breakpoint 900px, kết quả ra gì?

Công cụ sinh tiền tố tùy chỉnh dạng min kèm ngoặc vuông vì 900 không nằm trong năm điểm ngắt mặc định. Kèm theo là cảnh báo nhắc rằng dự án đang dùng điểm ngắt riêng. Nếu 900px xuất hiện thường xuyên, hãy khai báo nó vào phần screens trong tailwind.config rồi dùng tên ngắn.

Khai báo animation của tôi bị liệt vào phần không chuyển được, phải làm sao?

Hoạt ảnh gắn với khối keyframes riêng nên không có class dựng sẵn tương đương. Bạn giữ khối keyframes trong file CSS toàn cục, rồi khai báo tên hoạt ảnh vào phần keyframes và animation trong tailwind.config. Sau đó dùng class animate kèm tên bạn vừa đặt trên phần tử cần chạy.

Vì sao khai báo background gộp nhiều thứ lại không chuyển được?

Vì cú pháp rút gọn của background có thể gộp ảnh nền, vị trí, kích thước, độ lặp và màu trong một dòng theo thứ tự linh hoạt, việc tách chính xác dễ sai. Hãy tách thành background-color, background-image, background-position, background-size rồi dán lại, công cụ sẽ chuyển được từng phần.

Chuỗi class công cụ trả về có chạy giống hệt CSS gốc không?

Về từng khai báo được chuyển thì giống. Nhưng cả khối có thể khác ở hai điểm: những khai báo nằm trong danh sách không chuyển được sẽ thiếu nếu bạn không xử lý tay, và độ ưu tiên của selector lồng nhau trong CSS gốc không còn nữa vì class tiện ích đều cùng một mức ưu tiên.

Khai báo có !important thì công cụ xử lý thế nào?

Công cụ bỏ phần !important khi đọc giá trị và chuyển bình thường phần còn lại. Nếu bạn thực sự cần giữ mức ưu tiên đó, hãy thêm dấu chấm than vào trước tên tiện ích trong chuỗi kết quả, đặt sau các tiền tố biến thể nếu có.

Tôi dán CSS dùng biến var() thì kết quả ra sao?

Công cụ giữ nguyên lời gọi biến bằng arbitrary value và ghi chú nhắc bạn cân nhắc khai báo giá trị đó trong tailwind.config. Nếu bạn muốn rà soát toàn bộ hệ biến trước khi chuyển, hãy chạy stylesheet qua công cụ trích biến CSS rồi mới quay lại đây.

Công cụ có xử lý được gradient không?

Có với linear-gradient dạng đơn giản. Nó nhận tám hướng dựng sẵn và tối đa ba điểm dừng màu tương ứng from, via, to. Gradient xoay theo góc lẻ, gradient tỏa tròn hay gradient nhiều hơn ba điểm dừng thì được giữ nguyên bằng arbitrary value kèm ghi chú.

Dán vào một cụm khai báo không có dấu ngoặc nhọn thì có chạy không?

Chạy được. Khi trong đoạn dán không có dấu ngoặc nhọn nào, công cụ coi toàn bộ là một danh sách khai báo rời và trả về một chuỗi class duy nhất. Cách này tiện khi bạn chỉ chép vài dòng từ bảng kiểm tra phần tử của trình duyệt.

Bảng ánh xạ đang theo phiên bản Tailwind nào, khi lên phiên bản mới thì sao?

Bảng đang tham chiếu Tailwind CSS v3.4 với cấu hình mặc định chưa tùy biến. Các thang spacing, bảng màu, cỡ chữ, bo góc và điểm ngắt đều được đặt thành hằng số riêng trong mã nguồn kèm chú thích, nên khi Tailwind ra phiên bản mới chỉ cần rà lại đúng những hằng số đó.

Từ khóa liên quan

  • chuyển css sang tailwind
  • css to tailwind converter
  • đổi css thuần sang class tailwind
  • thang spacing tailwind 4px
  • bảng màu tailwind mặc định
  • arbitrary value tailwind
  • tiền tố responsive tailwind sm md lg
  • tiền tố hover focus tailwind
  • chuyển media query sang tailwind
  • chuyển padding css sang class tailwind
  • tìm màu tailwind gần nhất với mã hex
  • chuyển box-shadow sang shadow tailwind
  • chuyển border-radius sang rounded tailwind
  • chuyển transition sang tailwind
  • chuyển transform sang tailwind
  • chuyển gradient css sang tailwind
  • khai báo keyframes trong tailwind config
  • migrate css sang tailwind
  • công cụ chuyển css sang tailwind miễn phí
  • class tailwind tương đương css

Công cụ Design Tools liên quan

Dịch vụ của Tấn Phát Digital

Thiết kế xong rồi cần người biến nó thành sản phẩm chạy được trên web:

Dịch vụ thiết kế website tại Hồ Chí Minh

Website doanh nghiệp, bán hàng và đặt lịch, chuẩn SEO ngay từ cấu trúc, tốc độ tải dưới 3 giây.

Từ 5.000.000đXem chi tiết →

Dịch vụ thiết kế landing page

Trang đích riêng cho từng chiến dịch quảng cáo, tỷ lệ chuyển đổi 3–8%, bàn giao trong 5–21 ngày.

Từ 3.000.000đXem chi tiết →

Dịch vụ chăm sóc website định kỳ

Viết content SEO, tối ưu thứ hạng và A/B test chuyển đổi hàng tháng, cam kết KPI theo hợp đồng.

Từ 2.000.000đ/thángXem chi tiết →

Dịch vụ content social media

20–40 bài đăng và reels mỗi tháng cho Facebook, Instagram, TikTok, kèm quản lý cộng đồng.

Từ 5.000.000đ/thángXem chi tiết →

Tư vấn và báo giá miễn phí trong 24 giờ. Xem toàn bộ dịch vụ

Zalo
Facebook
Tấn Phát Digital
Zalo
Facebook