Công Cụ CSS Cho Developer: Tạo Gradient, Shadow, Chuyển Đổi Đơn Vị và Kiểm Tra Accessibility
Hướng dẫn thực hành về các công cụ CSS trên trình duyệt — tạo gradient và box shadow trực quan, chuyển đổi giữa px/rem/em, kiểm tra độ tương phản màu WCAG, tạo bảng màu, và chuyển đổi CSS sang các class Tailwind.
CSS vừa là phần trực quan nhất lại vừa là phần tẻ nhạt nhất trong lập trình front-end. Tự tay chỉnh từng giá trị hex và góc độ để tạo gradient là việc rất mất thời gian. Tính tỷ lệ tương phản WCAG giữa hai màu đòi hỏi phải tính toán. Chuyển đổi giá trị px sang rem cần biết kích thước font gốc. Tất cả những tác vụ này đáng ra chỉ mất vài giây — và với những công cụ phù hợp, điều đó hoàn toàn có thể.
Dưới đây là tổng quan về các công cụ CSS trên trình duyệt giúp bạn loại bỏ mọi sự phỏng đoán.
1. CSS Gradient Generator
Tự viết CSS gradient bằng tay rất phức tạp. linear-gradient(135deg, #667eea 0%, #764ba2 100%) có thể hiểu được khi bạn đã nắm cú pháp, nhưng việc điều chỉnh góc, các điểm màu và vị trí một cách trực quan sẽ nhanh hơn nhiều khi dùng công cụ tạo gradient.
Công cụ CSS Gradient Generator của chúng tôi hỗ trợ:
- Linear gradient — đặt góc, thêm các điểm màu tại bất kỳ vị trí nào
- Radial gradient — dạng tròn hoặc elip, có thể điều chỉnh vị trí tâm
- Nhiều điểm màu — thêm bao nhiêu điểm gradient tùy ý
- Xem trước trực tiếp — preview toàn chiều rộng cập nhật ngay khi bạn thay đổi bất kỳ giá trị nào
Ví dụ đầu ra:
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
Mẹo hay:
- Dùng điểm màu có độ trong suốt thấp (với alpha) để tạo hiệu ứng kính mờ
- Đặt góc gradient trùng với đường chéo của layout để tạo hiệu ứng nghiêng hiện đại
- Với nền nhẹ nhàng, giữ độ bão hòa màu thấp và độ sáng cao
2. CSS Box Shadow Generator
Box shadow khó hình dung hơn gradient. Cú pháp là offset-x offset-y blur spread color inset — và việc kết hợp nhiều shadow để tạo hiệu ứng độ sâu chân thực đòi hỏi phải điều phối tất cả các tham số đó cùng lúc.
Công cụ CSS Box Shadow Generator của chúng tôi cho phép bạn:
- Thêm nhiều lớp shadow — xếp chồng chúng trực quan
- Xem preview trực tiếp trên một phần tử card thực tế
- Bật/tắt
insetcho từng lớp để tạo hiệu ứng nhấn/khắc - Điều chỉnh blur, spread, offset và màu sắc độc lập cho từng lớp
Các mẫu shadow phổ biến:
/* Card nổi nhẹ */
box-shadow:
0 1px 3px rgba(0,0,0,.12),
0 4px 12px rgba(0,0,0,.08);
/* Độ nổi sâu (modal) */
box-shadow:
0 4px 6px rgba(0,0,0,.05),
0 10px 15px rgba(0,0,0,.1),
0 20px 25px rgba(0,0,0,.06);
/* Ánh sáng màu (nút bấm) */
box-shadow: 0 4px 15px rgba(99,102,241,.4);
/* Inset (trạng thái nhấn) */
box-shadow: inset 0 2px 4px rgba(0,0,0,.15);
Kỹ thuật nhiều lớp chính là bí quyết để có shadow chân thực — một lớp duy nhất trông phẳng và cứng, trong khi hai hoặc ba lớp ở các tỷ lệ khác nhau tạo ra độ sâu tự nhiên.
3. CSS Unit Converter: px ↔ rem ↔ em ↔ vw
CSS có vô số đơn vị gây rối. Hiểu khi nào nên dùng đơn vị nào — và chuyển đổi giữa chúng — là công việc hàng ngày của các front-end developer.
Công cụ CSS Unit Converter của chúng tôi chuyển đổi giữa:
| Đơn vị | Tương đối với |
|---|---|
px |
Pixel tuyệt đối |
rem |
Kích thước font gốc (mặc định 16px) |
em |
Kích thước font của phần tử cha |
pt |
Điểm in (1pt = 1.33px) |
cm / mm |
Đo lường vật lý |
vw / vh |
Chiều rộng / chiều cao viewport |
% |
Kích thước của phần tử cha |
Các tham số có thể điều chỉnh:
- Kích thước font gốc — thay đổi từ 16px để khớp với cài đặt
html { font-size }của bạn - Kích thước font cha — dùng cho tính toán
em - Kích thước viewport — dùng cho tính toán
vw/vh
Khi nào dùng đơn vị nào:
remcho kích thước font — tự co giãn theo cài đặt accessibility của trình duyệt người dùngpxcho viền, shadow và chi tiết nhỏ không cần co giãnemcho padding/margin cần co giãn theo kích thước văn bản của chính component đóvw/vhcho layout toàn màn hình và section hero%cho chiều rộng responsive trong một container
4. Color Contrast Checker: Accessibility theo WCAG
Những màu sắc trông ổn trên màn hình của bạn vẫn có thể không đạt tiêu chuẩn accessibility WCAG — nghĩa là người dùng thị lực kém, mù màu hoặc dùng màn hình cũ có thể không đọc được nội dung của bạn.
Công cụ Color Contrast Checker của chúng tôi tính toán tỷ lệ tương phản giữa màu chữ và màu nền, đồng thời hiển thị trạng thái đạt/không đạt cho từng cấp độ WCAG:
| Cấp độ | Tỷ lệ yêu cầu | Áp dụng cho |
|---|---|---|
| AA (văn bản thường) | 4.5:1 | Văn bản nội dung, đoạn văn |
| AA (văn bản lớn) | 3:1 | 18px trở lên hoặc 14px+ bold |
| AAA (văn bản thường) | 7:1 | Accessibility nâng cao |
| AAA (văn bản lớn) | 4.5:1 | Nâng cao, văn bản lớn |
Các tổ hợp màu thường gặp vấn đề:
Chữ xám nhạt trên nền trắng: #999 trên #fff → tỷ lệ 2.85:1 ❌ Không đạt AA
Xám vừa trên nền trắng: #767 trên #fff → tỷ lệ 4.48:1 ⚠ Vừa không đạt
Xám đậm trên nền trắng: #595 trên #fff → tỷ lệ 5.74:1 ✅ Đạt AA
Công cụ hiển thị preview trực tiếp văn bản trên nền để bạn thấy trải nghiệm thực tế của người dùng — không chỉ là các con số.
Cách khắc phục nhanh khi không đạt:
- Làm tối màu chữ (không phải làm sáng nền — điều đó làm giảm độ tương phản)
- Tăng kích thước font để đủ điều kiện "văn bản lớn" (ngưỡng thấp hơn)
- Thêm lớp phủ tối bán trong suốt lên hình ảnh có chữ bên trên
5. Color Palette Generator
Thiết kế một hệ thống màu nhất quán từ một màu thương hiệu duy nhất đòi hỏi hiểu biết về lý thuyết màu sắc. Công cụ Color Palette Generator của chúng tôi tạo ra bốn loại bảng màu hài hòa từ bất kỳ màu cơ bản nào:
Complementary (Bổ sung): Màu đối diện trên vòng màu. Tạo ra các cặp màu rực rỡ, tương phản cao. Phù hợp cho CTA.
Analogous (Tương tự): Ba màu kề nhau trên vòng màu. Tạo bảng màu gắn kết, không căng thẳng. Phù hợp cho nền và khu vực nội dung.
Triadic (Tam giác): Ba màu cách đều nhau. Tạo bảng màu năng động, cân bằng. Phù hợp cho trực quan hóa dữ liệu.
Monochromatic (Đơn sắc): Các biến thể tint và shade của một màu duy nhất. Tạo bảng màu chuyên nghiệp, tinh tế. Phù hợp cho các cặp dark mode / light mode.
Mỗi bảng màu được hiển thị kèm mã hex, giá trị RGB và tên CSS custom property sẵn sàng để sao chép.
6. Color Format Converter: HEX ↔ RGB ↔ HSL
Các công cụ thiết kế xuất màu dưới dạng HEX. CSS đôi khi cần RGB cho rgba(). Một số designer làm việc với HSL. Công cụ Color Format Converter của chúng tôi chuyển đổi giữa tất cả các định dạng ngay lập tức:
#6366f1
↕
rgb(99, 102, 241)
↕
hsl(239, 84%, 67%)
↕
hsb(239, 59%, 95%) ← HSB của Photoshop/Figma
Tại sao HSL thường là định dạng hữu ích nhất:
hsl(H, S%, L%)tách biệt màu sắc, độ bão hòa và độ sáng- Để tạo phiên bản nhạt hơn của một màu: tăng
L% - Để tạo phiên bản tối hơn: giảm
L% - Để giảm bão hòa: giảm
S% - Dễ dàng tạo tint và shade theo chương trình
7. Tailwind CSS Converter: CSS ↔ Tailwind
Nếu bạn đang chuyển dự án sang Tailwind, hoặc làm việc với designer viết CSS và cần dịch sang các utility class, công cụ Tailwind CSS Converter của chúng tôi xử lý cả hai chiều.
CSS → Tailwind:
/* Input */
.card {
display: flex;
flex-direction: column;
padding: 1rem;
border-radius: 0.5rem;
background-color: #fff;
box-shadow: 0 1px 3px rgba(0,0,0,.12);
}
<!-- Output -->
<div class="flex flex-col p-4 rounded-lg bg-white shadow-sm">
Tailwind → CSS: Chiều ngược lại — hữu ích khi bạn cần hiểu một class Tailwind thực sự làm gì, hoặc khi trích xuất style vào component stylesheet.
8. Color Picker: Lấy HEX, RGB và HSL từ Bất Kỳ Màu Nào
Để chọn một màu cụ thể và lấy giá trị của nó ở tất cả các định dạng cùng lúc, công cụ Color Picker của chúng tôi cung cấp vòng màu đầy đủ cùng bộ chọn độ bão hòa/độ sáng với đầu ra theo thời gian thực.
Khác với color picker trong devtools của trình duyệt chỉ hoạt động bên trong devtools, công cụ này luôn sẵn sàng và cho phép bạn sao chép giá trị ở bất kỳ định dạng nào bạn cần.
Kết Hợp Tất Cả: Một Quy Trình Làm Việc với CSS
Đây là quy trình điển hình từ thiết kế đến code sử dụng các công cụ này:
- Chọn màu thương hiệu với Color Picker
- Tạo bảng màu đầy đủ với Color Palette Generator — lấy các biến thể complementary và monochromatic
- Kiểm tra mọi tổ hợp chữ/nền đạt chuẩn WCAG với Color Contrast Checker
- Chuyển đổi giữa HEX/RGB/HSL khi cần với Color Format Converter
- Xây dựng nền cho component với CSS Gradient Generator
- Thêm độ sâu cho card và modal với CSS Box Shadow Generator
- Chuyển đổi đơn vị từ thông số thiết kế (px) sang CSS dễ tiếp cận (rem) với CSS Unit Converter
- Dịch sang Tailwind nếu dự án của bạn dùng utility class với Tailwind Converter
Mỗi bước mất chưa đến một phút. Toàn bộ quy trình — từ màu thương hiệu đến CSS sẵn sàng cho production — mất ít thời gian hơn một lần tìm kiếm trên Stack Overflow.