Menu

Tạo gradient CSS

Thiết kế gradient CSS trực quan với code đầu ra trực tiếp.

Tác giả Nethanel Bar, Co-founder & CEO

Cập nhật lần cuối

Sẵn sàng học code thật sự?

Coddy dạy bạn bằng cách viết code thật ngay trên trình duyệt: bài học tương tác, phản hồi tức thì và AI hỗ trợ khi bạn bị kẹt.

Công cụ tạo CSS gradient là gì?

Công cụ tạo CSS gradient là trình chỉnh sửa trực quan cho các hàm linear-gradient, radial-gradient và conic-gradient trong CSS. Nó giúp bạn khỏi phải gõ tay từng điểm dừng màu: kéo màu trên thanh trượt, xem bản xem trước cập nhật và sao chép CSS dùng ngay, dán thẳng vào stylesheet.

Gradient có mặt khắp nơi trong giao diện hiện đại: phần hero, lớp phủ trên thẻ, trạng thái nút, hiệu ứng phát sáng, chi tiết tinh tế ở chế độ tối, skeleton khi tải trang và viền trang trí. Biết đọc và viết gradient bằng tay giúp bạn làm nhanh hơn, nhưng để phác thảo ý tưởng thì không gì bằng một công cụ trực quan.

CSS hỗ trợ ba loại gradient. *Linear* chạy dọc theo một đường thẳng ở góc bất kỳ. *Radial* tỏa ra từ một điểm theo hình tròn hoặc elip. *Conic* quét màu quanh một tâm như mặt đồng hồ. Mỗi loại có trường hợp dùng riêng, và bạn có thể kết hợp nhiều gradient trên cùng một nền.

Bạn học được gì khi thiết kế gradient

  • Một gradient được xác định bởi *hướng* (hoặc hình dạng) và các *điểm dừng màu*, tức các màu kèm vị trí tùy chọn.
  • Hai điểm dừng màu ở cùng một vị trí tạo ra *cạnh sắc*, hữu ích cho sọc hoặc nền chia đôi.
  • Các không gian màu hiện đại như oklch cho gradient mượt hơn và đồng đều hơn theo cảm nhận so với rgb hay hsl.
  • Gradient là hình ảnh trong CSS: bạn có thể dùng chúng ở mọi nơi background-image, border-image, mask-image hoặc filter chấp nhận một hình ảnh.

Cách tạo CSS gradient từng bước

  1. Chọn loại gradient

    Chọn linear cho dải màu thẳng, radial cho hiệu ứng mờ dần hình tròn, hoặc conic cho dải màu quét quanh một tâm.

  2. Đặt góc hoặc vị trí

    Với linear, chọn góc theo độ (0deg là từ dưới lên trên trong CSS). Với radial và conic, đặt vị trí tâm.

  3. Thêm và sắp xếp điểm dừng màu

    Thêm bao nhiêu màu tùy thích. Kéo từng điểm dừng dọc thanh trượt để đổi vị trí. Hai điểm dừng ở cùng vị trí tạo ra cạnh sắc.

  4. Xem trước trên hình dạng thật

    Chuyển giữa phần hero toàn chiều rộng, một thẻ và một nút để xem gradient trông thế nào ở các tỷ lệ khung hình khác nhau.

  5. Sao chép CSS

    Sao chép khai báo background dùng ngay và dán vào stylesheet.

Tra cứu nhanh CSS gradient

Ba hàm gradient và các thành phần bên trong chúng. Tài liệu đầy đủ trên MDN: linear-gradient, radial-gradient, conic-gradient.

HàmTác dụngVí dụ
linear-gradientDải màu chạy theo một đường thẳnglinear-gradient(135deg, #6c8cff, #b18cff)
radial-gradientMàu tỏa ra từ một điểmradial-gradient(circle at 30% 20%, #fff, #000)
conic-gradientMàu quét quanh một tâmconic-gradient(from 0deg, red, yellow, red)
repeating-linear-gradientHọa tiết sọc lặp lạirepeating-linear-gradient(45deg, #000 0 10px, #fff 10px 20px)
Điểm dừng màuMột màu kèm vị trí tùy chọn#6c8cff 25%
Điểm dừng cứngCùng vị trí hai lần → cạnh sắc#000 50%, #fff 50%
Nhiều gradientXếp chồng trên một phần tửbackground: g1, g2, g3;

Ví dụ CSS gradient để thử

Gradient nhẹ nhàng cho phần hero

CSS
.hero {  background: linear-gradient(135deg, #6c8cff 0%, #b18cff 100%);}

Gradient chéo hai màu. Kiểu hero kinh điển của các sản phẩm SaaS độc lập: dễ chịu cho mắt và thân thiện với chữ.

Đèn chiếu radial

CSS
.card {  background:    radial-gradient(circle at 30% 20%, rgba(255,255,255,0.15), transparent 40%),    #1f2230;}

Xếp một vệt sáng radial bán trong suốt lên trên một màu đặc để giả lập nguồn sáng mềm, rất hợp với thẻ ở chế độ tối.

Sọc với điểm dừng cứng

CSS
.stripes {  background: repeating-linear-gradient(    45deg,    #1a1a1a 0 12px,    #2a2a2a 12px 24px  );}

Hai điểm dừng ở cùng vị trí tạo ra cạnh sắc. Đặt nó trong repeating-linear-gradient để họa tiết lặp lại.

Lỗi thường gặp với CSS gradient

  • Dùng quá nhiều điểm dừng màu: ba hoặc bốn thường là đủ; nhiều hơn dễ làm kết quả bị đục màu.
  • Quên rằng 0deg là từ dưới lên trên trong CSS gradient (khác với nhiều công cụ thiết kế, nơi 0° là hướng sang phải).
  • Đặt chữ trên gradient có độ tương phản cao mà không kiểm tra độ dễ đọc ở cả hai đầu: hãy nhớ đến độ tương phản WCAG.
  • Tạo animation trực tiếp cho background-image. Phần lớn trình duyệt không chuyển mượt giữa các gradient: hãy tạo animation cho background-position hoặc dùng transition trên một biến dùng chung.
  • Kéo giãn gradient trên phần tử rất rộng mà không để ý hiện tượng phân dải màu. Thêm điểm dừng trung gian hoặc dùng oklch để chuyển màu mượt hơn.

Câu hỏi thường gặp về CSS gradient

Làm sao để tạo một CSS gradient?
Dùng linear-gradient, radial-gradient hoặc conic-gradient làm giá trị của thuộc tính background hoặc background-image. Mỗi hàm nhận một hướng (hoặc tâm) và danh sách điểm dừng màu.
Gradient linear, radial và conic khác nhau thế nào?

Gradient linear quét màu dọc theo một đường thẳng. Gradient radial tỏa ra từ một điểm theo hình tròn hoặc elip. Gradient conic quét màu quanh một tâm như mặt đồng hồ.

Có thể tạo animation cho CSS gradient không?
Trình duyệt không chuyển mượt giữa các hình ảnh gradient. Các mẹo phổ biến là tạo animation cho background-position để có gradient chuyển động, chuyển giữa hai lớp gradient bằng độ mờ, hoặc tạo animation cho CSS custom property dùng làm điểm dừng màu.
Vì sao gradient của tôi bị phân dải màu?
Hiện tượng phân dải xảy ra khi có quá ít bước màu rời rạc trải trên một vùng rộng. Thêm điểm dừng trung gian, chuyển sang không gian màu theo cảm nhận như oklch, hoặc phủ thêm một lớp nhiễu dithering nhẹ.
CSS gradient có được mọi trình duyệt hỗ trợ không?
Gradient linear và radial được hỗ trợ ở mọi nơi. Gradient conic được hỗ trợ trên mọi trình duyệt hiện đại. Với trình duyệt rất cũ, bạn thêm một background-color đặc làm phương án dự phòng trước khai báo gradient.

Tìm hiểu thêm

Công cụ lập trình khác

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu