Làm cách nào để tạo một bảng màu tương tự như bảng màu trong thiết kế vật liệu của Google?


62

Thông số kỹ thuật thiết kế vật liệu của Google có bộ bảng màu :

nhập mô tả hình ảnh ở đây

Bắt đầu với màu cơ bản, được chỉ định là "500", sau đó chúng có một loạt các bước tăng dần của bóng râm, sáng hơn và tối hơn, để tạo ra một phạm vi khoảng 10 màu. Ánh sáng nhất được chỉ định là "50", và gần màu trắng, và tối nhất, "900", gần màu đen, nhưng cả hai đều giữ lại một số màu cơ bản.

Tôi hoàn toàn không thể xác định cách tính gia số. Tôi đã thử trình tạo swatch trực tuyến này , nhưng dường như tôi không thể quay số trong phạm vi.

Tôi nghĩ rằng đó chỉ là vấn đề điều chỉnh độ sáng lên xuống từ màu "500" cơ bản và tôi đoán rằng giá trị của "0" sẽ là màu trắng tinh khiết và "1000" sẽ là màu đen thuần túy, nhưng các phạm vi trong Google bảng màu dường như có nhiều độ bão hòa hơn một phạm vi độ sáng đơn giản.

Có ai biết thuật toán hoặc quy trình nào tôi có thể sử dụng để lấy màu cơ bản và tạo bảng màu phù hợp với bảng màu của Google không?


Chúng dường như là màu cơ bản với độ bão hòa và giá trị tương ứng tăng hoặc giảm ngược lại khi số tăng hoặc giảm
Supuhstar

1
Trên thực tế, lùi một bước khỏi màn hình, nó dường như sử dụng một thuật toán tương tự như bóng râm ... Tôi sẽ phải xem xét điều này
Supuhstar

Bạn đã tìm thấy bất kỳ giải pháp để tạo bảng màu?
MrBrightside

@MrBrightside Howdy! Bạn có thể tạo bảng màu bằng câu trả lời đã chọn, tại đây: mcg.mbitson.com - Xin lưu ý rằng màu sắc không hoàn toàn giống với bảng màu Thiết kế Vật liệu, mặc dù bạn có thể nhập bảng màu chính xác hoặc tạo biểu diễn gần với màu tùy chỉnh. Tìm hiểu thêm về lý do tại sao chúng không phải là màu chính xác ở đây: stackoverflow.com/questions/32942503/ trên
Mikel Bitson

1
Chất liệu CHỈ là màu đơn sắc cho phạm vi 50-500, xem codepen.io/sebilasse/pen/GQYKJd?editors=1010 để biết màu tối hơn và có dấu trọng lực
sebilasse

Câu trả lời:


41

Tôi đã tạo công cụ CSS3 / AngularJS nhỏ này cho một dự án để tạo các bảng màu Vật liệu. Bạn có thể nhập 500 màu hex và sử dụng một công cụ bên ngoài như ColorZilla để lấy các giá trị màu từ đó. Ngoài ra, những cái nhẹ hơn chính xác là những cái mà Google đã sử dụng, nhưng những cái tối hơn thì tắt đi một chút.

mcg.mbitson.com


Trình tạo bảng màu của bạn hoạt động thực sự tốt và theo như tôi có thể thấy, xấp xỉ các tiêu chuẩn Thiết kế Vật liệu của Google. Một điều: bạn có thể muốn tạo thêm độ tương phản cho văn bản trên trang. Các văn bản màu đen trên nền màu xám đen rất khó đọc.
hỏi

2
Này các cậu! Tôi là nhà phát triển đằng sau phiên bản cập nhật của công cụ. Gần đây tôi đã thay đổi cách tôi xử lý việc tạo màu. Nếu bất cứ ai có bất kỳ phản hồi trực tiếp nào cho công cụ này - đó là kỹ thuật tạo màu hoặc bất kỳ tính năng bổ sung nào họ muốn, vui lòng cho tôi biết! Tôi vẫn đang phát triển các cải tiến trong thời gian rảnh rỗi và tôi sợ việc tạo màu có thể bị tắt, mặc dù vẫn rất hữu ích. Tôi sẽ tiếp tục xem xét nó.
Mikel Bitson

1
@MikelBitson Trình tạo bảng màu thực sự đã tắt (chỉ cần nhập bất kỳ 500 màu nào từ tiêu chuẩn thiết kế vật liệu và so sánh để xem), tuy nhiên nó hoạt động tuyệt vời với nhiều màu cơ bản khác. Kịp các công việc tuyệt vời!
Chris Bornhoft 6/11/2015

1
@MikelBitson Giải thích tuyệt vời cảm ơn. Tôi đã hình dung nó giống như thế này ngay cả trước khi tôi đăng bình luận ban đầu của mình. Tôi tự hỏi "Bộ chọn màu chính thức" của Google tạo ra bao nhiêu? Thật là một tiêu đề :)
Chris Bornhoft 10/11/2015

1
Liên kết được cập nhật cho những bạn đang tìm kiếm phiên bản mới: mcg.mbitson.com/#
Mikel Bitson

18

Các bảng màu google là đơn sắc . Việc giữ tỷ lệ RGB giống nhau làm thay đổi Độ sáng và độ bão hòa lên hoặc xuống. Để làm điều này, bạn phải chuyển đổi giá trị RGB thành biểu diễn HSL (Hue, Saturation, Lightness), thay đổi độ sáng và độ bão hòa sau đó chuyển đổi trở lại nếu cần. Có thể giữ nó trong không gian RGB trong khi tính toán, nhưng toán học quá khó hiểu (đối với tôi để hiểu hoặc giải thích). HSL được tạo ra để pha trộn màu truyền thống (chúng ta dễ nghĩ hơn).

Nếu mục tiêu của bạn là tạo các bảng màu CSS, bạn có thể giữ màu trong HSL bằng cách sử dụng background-color: hsl(0,100%, 50%);.

Bạn có thể làm điều này bằng tay trong Photoshop bằng cách sử dụng công cụ chọn màu. HSB dành cho Độ sáng bão hòa Huế (Đồng nghĩa với HSL, điều tương tự). Chọn một màu bạn thích và thay đổi Độ bão hòa và Độ sáng theo một giá trị nhất quán. Trong hình ảnh bên dưới S = 54 và B = 77, tăng 5% khi sử dụng 54 + 54 * 0.0577 + 77 * 0.05. Hoặc để chuyển xuốngS - S * 0.05

chọn màu photoshop

Lưu ý bên để làm rõ giữa Hex & RGB. HEX # FFEB3B gồm 6 chữ số thực tế là 3 số riêng biệt, đại diện cho RGB.

#FFEB3B -> FF,EB,3B -> red:FF green:EB blue:3Bchuyển đổi các giá trị HEX thành số thập phân mang lại cho bạn red:255 green:235 blue:59 OR rgb(255,235,59).

Có các thuật toán để chuyển đổi RGB sang HSL nếu bạn thực sự muốn chúng trên Wikipedia nhưng cách đơn giản nhất là sử dụng lib màu. Ví dụ này tạo một bảng màu đơn sắc với Please.js, nó cũng có các thuật toán khác để tạo các bảng màu bổ sung hoặc làm hài lòng. Giống như kuler.adobe, cũng đá.

Please.make_scheme(
    Please.HEX_to_HSV('#ffeb3b'),
    {scheme_type: 'mono', format:'hex'}
);
// returns ->["#ffeb3b", "#ffe821", "#ffe508", "#e5d54c"]

4
Các bảng màu riêng của Google không hiển thị độ dốc ổn định trên HSV / HSB. Tôi đã tạo một minh họa để bạn có thể thấy những gì tôi đang nói. Dựa vào đó, có lẽ bạn sẽ tốt hơn khi chơi với một trong những mô hình màu khác. Ngoài ra, họ dường như đã điều chỉnh màu sắc của mình một chút cho các màu tối hơn của một số màu, để giữ cho chúng không bị lầy.
Tess

Tôi muốn thêm một chút vào đây là giây phản hồi của @ Tess .. Tôi đã phát triển phiên bản nâng cao của trình tạo MCG và trong quá trình tôi đã nhận thấy một vài điều. Mỗi bảng màu google theo một sự tiến triển khác nhau của màu sắc, nó không đơn sắc. Không có công thức hay phương pháp nào để bắt chước chính xác các màu - vì công thức cho mỗi bảng kết thúc hoàn toàn khác nhau. Thông tin chi tiết và ví dụ về điều này có thể được tìm thấy ở đây: github.com/mbitson/mcg/issues/19
Mikel Bitson

@MikelBitson Nhưng để trả lời cho câu hỏi 'tôi có thể sử dụng thuật toán hoặc quy trình nào', tôi sẽ bỏ phiếu cho đơn sắc hoặc một phiên bản của nó en.wikipedia.org/wiki/Monochromatic_color Nhưng bạn và Tess không đúng đơn điệu màu sắc
Lex

1
@Lex - Tôi đồng ý với bạn, tôi sẽ sử dụng màu đơn sắc để ước tính bảng màu. Tôi chỉ tán thành câu trả lời của Tess vì câu trả lời của bạn nói rằng "Các bảng màu google là đơn sắc." và tôi đã dành rất nhiều thời gian gần đây phải vật lộn với những màu sắc này. :)
Mikel Bitson

1
HSB / HSV không giống như HSL en.wikipedia.org/wiki/HSL_and_HSV
Kevin Thibedeau

1

Bạn đã thử làm việc với Bánh xe màu của Adobe chưa? Tôi nghĩ rằng nó linh hoạt hơn một chút so với công cụ SlayerOffice mà bạn đang sử dụng.

https://color.adobe.com/

Đối với trường hợp chính xác của bạn, chọn "Sắc thái" và thử đánh lừa xung quanh từ đó. Nó sẽ không tạo ra thiết kế vật liệu như swatches, nhưng đó là một sự khởi đầu.


0

Bạn chỉ có thể tải xuống các bảng màu mà Google cung cấp một liên kết đến trên trang web? Vì nó cung cấp cho bạn tất cả các màu sắc?

Google Color Swatches Zip


12
Tôi nghĩ OP muốn biết làm thế nào để bắt đầu với màu sắc của chính mình và tạo ra một mẫu màu tương tự
Supuhstar

0

Để tạo gradient / bảng màu từ màu đã cho, về cơ bản bạn có thể sử dụng thuật toán sau.

  1. Quyết định màu tối thiểu và tối đa bạn muốn trong bảng màu của bạn
  2. Phân chia 'không gian màu' giữa các màu này trong phân vùng bằng nhau (xem bên dưới)
  3. Màu sắc đầu ra trên các bước này

Để phân chia không gian màu giữa, trước tiên bạn có thể chuyển đổi màu HEX của mình thành RGB. Chọn các giá trị trong mỗi kênh. Giả sử bạn có color1 (r1, g1, b1) và color2 (r2, g2, b2). Và bạn muốn có 3 màu giữa color1color2 , sau đó bạn có thể làm một cái gì đó như sau

all_colors = []
steps = no_of_colors + 1
rdelta, gdelta, bdelta = (r2 - r1) / steps, (g2 - g1) / steps, (b2 - b1) / steps
for step in range(steps - 1):
    r1 += rdelta
        g1 += gdelta
        b1 += bdelta
all_colors.append((r1, g1, b1)) 

Nhớ chuyển đổi giá trị RGB giữa (0 thành 1).

Trong trường hợp của bạn, bạn có thể lấy màu cơ bản và phân chia không gian màu giữa white to basecolorbasecolor to black. Bạn có thể điều chỉnh các bước của bạn theo nhu cầu của bạn.

Cuối cùng, tôi sẽ thực hiện một số quảng cáo không biết xấu hổ về thư viện python mà tôi đã tạo, chỉ vì nó có liên quan đến câu hỏi này liên quan đến việc tạo bảng màu. Nó được gọi là SecretColors . Bạn có thể tạo các bảng màu, độ dốc riêng hoặc sử dụng các bảng màu tiêu chuẩn như IBM, Design Design, ColorBrewer hoặc Clarity.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.