Googleのマテリアルデザインのパレットに似たパレットをどのように生成しますか?


62

Googleのマテリアルデザイン仕様には、カラーパレットのセットがあります

ここに画像の説明を入力してください

「500」と指定されている基本の原色から始めて、約10色の範囲を作成するために、さまざまな段階的な明暗の段階があります。最も明るいものは「50」と指定され、白に近く、最も暗い「900」は黒に近いですが、どちらも基本色の一部を保持しています。

増分の計算方法を決定することはできません。このオンライン見本ジェネレーターを試しましたが、範囲内でダイヤルできないようです。

基本の「500」色から明度を上下に調整するだけの問題だと思います。「0」の値は真っ白、「1000」の値は真黒になると推測していますが、Googleの範囲はパレットは、単純な輝度範囲よりも彩度が高いようです。

基本色を取得し、Googleのパレットに合わせてパレットを生成するために使用できるアルゴリズムまたはプロセスを知っている人はいますか?


彼らは数がアップ状態またはダウン状態になって、それぞれ増加または減少し、逆彩度と値のベースカラーであるように見える
Supuhstar

1
実際には、画面からのバックステップを取って、それはフォンシェーディングと同様のアルゴリズムを使用するように見える...私はこれを検討する必要があります
Supuhstar

パレットを生成する解決策を見つけましたか?
MrBrightside 14年

わーい!選択した回答を使用してパレットを生成できます。mcg.mbitson.com-色はマテリアルデザインパレットとまったく同じではありませんが、正確なパレットをインポートしたり、カスタムカラーで厳密な表現を生成できます。:彼らはここでは正確な色じゃない理由の詳細stackoverflow.com/questions/32942503/...
ミケルBitson

1
素材は50〜500の範囲でのみ単色です。暗くてアクセントのある色についてはcodepen.io/sebilasse/pen/GQYKJd?editors=1010を参照してください…
sebilasse

回答:


41

マテリアルカラーパレットを生成するプロジェクト用に、この小さなCSS3 / AngularJSツールを作成しました。500 hexの色を入力し、ColorZillaなどの外部ツールを使用してそこから色の値を取得できます。また、明るいものはGoogleが使用したものとまったく同じですが、暗いものは少しずれています。

mcg.mbitson.com


パレットジェネレーターは非常にうまく機能し、私が見る限り、Googleマテリアルデザインの標準に近似しています。1つのこと:ページ上のテキストのコントラストを高めたい場合があります。暗い灰色の背景の黒いテキストは非常に読みにくいです。
質問者

2
やあみんな!私はツールの更新バージョンの開発者です。私は最近、色生成の処理方法を変更しています。このツールに対する直接のフィードバックがある場合は、色生成技術や追加機能が必要な場合はお知らせください!私はまだ余暇に機能強化を開発しており、色の生成がオフになっているのではないかと心配しています。引き続き調査します。
ミケルビットソン

1
@MikelBitsonパレットジェネレーターは実際にオフになっています(マテリアルデザイン標準から任意の500色を入力し、表示と比較するだけです)が、それでも他の多くの基本色で素晴らしい動作をします。これからもいい結果を出し続けてください!
クリスボーンホフ

1
@MikelBitson素晴らしい説明ありがとう。元のコメントを投稿する前から、このようなものだと思っていました。Googleの「公式カラーピッカー」はどれくらいの量になるのだろうか?何というタイトル:)
クリスボーンホフ

1
新しいバージョンをお探しの方へのリンクを更新しました:mcg.mbitson.com/#
Mikel Bitson

18

Googleパレットは単色です。同じRGB比を維持して、明度と彩度を上下にシフトします。これを行うには、RGB値をHSL表現(色相、彩度、明度)に変換し、明度と彩度を変更してから、必要に応じて元に戻す必要があります。計算中にRGB空間に保持することは可能ですが、数学はわかりにくいです(私が理解したり説明したりするには)。HSLは、従来の色混合用に作成されました(考えやすくなっています)。

CSSパレットを作成することが目的の場合は、を使用してHSLの色を維持できますbackground-color: hsl(0,100%, 50%);

カラーピッカーを使用して、Photoshopでこれを手動で行うことができます。HSBは、Hue Saturation Brightness(HSLと同義、同じこと)用です。好みの色相を選択し、彩度と明るさを一定の値で変更します。S = 54およびB = 77の下の画像では、54 + 54 * 0.05とを使用して5%シフトアップし77 + 77 * 0.05ます。またはシフトダウンするS - S * 0.05

フォトショップカラーピッカー

16進数とRGBを明確にするための補足事項。6桁の16進数#FFEB3Bは、実際にはRGBを表す3つの個別の数字です。

#FFEB3B -> FF,EB,3B -> red:FF green:EB blue:3BHEX値を10進数に変換すると、が得られますred:255 green:235 blue:59 OR rgb(255,235,59)

ウィキペディアで RGBを本当に必要とする場合、RGBをHSLに変換するアルゴリズムがありますが、最も簡単な方法はカラーライブラリを使用することです。この例では、please.jsを使用して単色パレットを作成しますが、補完的なパレットまたは快適なパレットを作成するためのその他のアルゴリズムもあります。kuler.adobeによく似ています。

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

4
Google独自のパレットは、HSV / HSB全体で安定した明るさの勾配を示していません。私が話していることを見ることができるように、イラストを作成しました。それに基づいて、おそらく他のカラーモデルのいずれかで遊ぶ方が良いでしょう。さらに、いくつかの色の暗い色合いのために、色合いを少し調整して、濁らないようにしているようです。
テス

ここで、@ Tessの応答の秒を少し追加したいと思います。MCGジェネレーターの拡張バージョンを開発し、その過程でいくつかのことに気付きました。各Googleパレットは色の異なる進行に従いますが、単色ではありません。色を正確に模倣する式や方法はありません。各パレットの式は完全に異なるためです。詳細と例については、github.com
Mikel Bitson

@MikelBitsonしかし、「どのアルゴリズムまたはプロセスを使用できるか」という質問への回答では、単色またはそのバージョンに投票しますen.wikipedia.org/wiki/Monochromatic_color色相。
レックス

1
@Lex-賛成です。単色を使用してパレットを推定します。あなたの答えは「グーグルパレットは単色です」と述べているので、私はテスの回答を出しただけです。最近、これらの色に苦労しています。:)
ミケルビットソン

1
HSB / HSVはHSLと同じではありませんen.wikipedia.org/wiki/HSL_and_HSV
ケビンティベドー

1

Adobeのカラーホイールを使用してみましたか?使用しているSlayerOfficeツールよりも少し柔軟性があると思います。

https://color.adobe.com/

正確な場合、「シェード」を選択し、そこからだましてみてください。スウォッチのようなマテリアルデザインは生成されませんが、開始点です。


0

Googleがサイトでリンクを提供するパレットをダウンロードできますか?それはあなたにすべての色を与えるので?

Google Color Swatches Zip


12
私はOPは自分の色で開始し、同様の見本を生成する方法を知りたいと思ったと思う
Supuhstar

0

特定の色から色のグラデーション/パレットを生成するには、基本的に次のアルゴリズムを使用できます。

  1. パレットに必要な最小と最大の色合いを決定します
  2. これらの色の間の「色空間」を等しいパーティションに分割します(以下を参照)
  3. これらの手順で出力色

色空間を分割するには、まずHEXの色をRGBに変換します。各チャネルの値を選択します。あなたが持っていると言うカラー1(R1、G1、B1)とカラー2(R2、G2、B2)を。そして、あなたは間の3色たいカラー1カラー2を、あなたは、次のような何かを行うことができます

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)) 

RGB値を(0から1)に変換することを忘れないでください。

あなたの場合、ベースカラーを取得し、カラースペースをwhite to basecolorとの間で分割できますbasecolor to black。必要に応じてステップを調整できます。

最後に、カラーパレットの生成に関するこの質問に関連しているという理由だけで、作成したpythonライブラリの恥知らずなプロモーションを行います。SecretColorsと呼ばれます。独自のカラーパレット、グラデーションを生成するか、IBM、Material Design、ColorBrewer、Clarityなどの標準のカラーパレットを使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.