0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

シード色1つから調和の取れたカラーパレットを生成するツールを作りました(CSS / Tailwind / SwiftUI / Compose 対応)

0
Posted at

はじめに

UI を実装するとき、「ベースの色は決めたものの、それに合わせる色がなかなか決まらない」と悩んだ経験はないでしょうか。
配色のたびに色相環を調べたり、カラーコードを微調整したりするのは地味に手間がかかります。
そこで、シード色を1つ入力するだけで調和の取れたカラーパレットを生成できるツールを個人開発しました。本記事で紹介します。

配色は地味に時間がかかる

補色・類似色・トライアドといった配色ルール(カラーハーモニー)は知っていても、いざ実装するとなると手間がかかります。

  • 色相環上の角度を計算して、合う色を割り出す
  • カラーコードを1つずつ微調整する
  • 決まった配色を CSS や SwiftUI のコードに書き起こす

特に最後の「コードに書き起こす」工程は、Web・モバイルを並行して開発しているとフォーマットごとに書き直す必要があり、繰り返すと地味に面倒です。

作ったもの:Color Palette Generator

シード色を1つ選ぶだけで、6種類の配色パターンを自動生成します。生成結果は、そのまま開発で使えるコードとして4つのフォーマットで出力されます。

6種類の配色パターン

このツールが生成するのは、色彩理論にもとづいた以下の6種類です。

  • 補色(Complementary) — 色相環で正反対に位置する色の組み合わせ。コントラストが強く、アクセントカラーに向いています。
  • 類似色(Analogous) — 色相環で隣り合う色の組み合わせ。まとまりがあり、落ち着いた印象になります。
  • トライアド(Triadic) — 色相環を3等分した位置の色の組み合わせ。バランスの取れた、にぎやかな配色になります。
  • テトラード(Tetradic) — 補色のペアを2組使う4色の組み合わせ。色数が多く華やかですが、バランス調整はやや難しめです。
  • スプリットコンプリメンタリー(Split-Complementary) — 補色の両隣の2色を使う組み合わせ。補色よりもやわらかいコントラストになります。
  • モノクロマティック(Monochromatic) — 1つの色相で明度・彩度だけを変えた組み合わせ。最も安全で統一感のある配色です。

「とりあえず無難にまとめたい」ならモノクロマティックや類似色、「メリハリを付けたい」なら補色やトライアド、というように目的に応じて切り替えられます。

使い方

操作はシンプルで、3ステップで完了します。

  1. シード色を入力する — カラーピッカーで選ぶか、hex コード(例:#02816F)を直接入力します。
  2. 配色パターンを選ぶ — Complementary / Analogous / Triadic / Tetradic / Split-Comp / Monochromatic のタブから選びます。
  3. コードをコピーする — CODE OUTPUT で出力フォーマット(CSS / Tailwind / SwiftUI / Compose)を選び、コピーボタンで取得します。

主な機能

  • 6種類の配色パターン — 上記のカラーハーモニーをワンクリックで切り替え
  • 4つのフォーマットでコード出力 — CSS変数 / Tailwind / SwiftUI / Jetpack Compose
  • ワンクリックでコピー — 生成されたコードをそのままコピーして使えます
  • 100% クライアントサイド — すべての処理がブラウザ内で完結し、入力したデータが外部に送信されることはありません
  • 登録不要・無料 — アカウント作成なしですぐに使えます

出力例

たとえばシード色 #02816F でトライアド配色を選ぶと、次のようなコードが得られます。

CSS変数

:root {
  --base: #02816F;
  --tri-1: #6F0283;
  --tri-2: #836F02;
}

SwiftUI

extension Color {
    static let base = Color(red: 0.01, green: 0.51, blue: 0.44)
    static let tri1 = Color(red: 0.44, green: 0.01, blue: 0.51)
    static let tri2 = Color(red: 0.51, green: 0.44, blue: 0.01)
}

Jetpack Compose

val Base = Color(0xFF02816F)
val Tri1 = Color(0xFF6F0283)
val Tri2 = Color(0xFF836F02)

同じパレットを Web・モバイルのどちらの開発でもそのまま使えるので、フォーマットを変換する手間がありません。

こんな方におすすめ

  • 配色を考えるのに時間をかけたくない方
  • デザインツールを開かずに、ブラウザでサッと配色を決めたい方
  • Web とモバイルを並行して開発していて、同じパレットを複数フォーマットで使いたい方
  • 入力データを外部に送信したくない方

おわりに

配色で悩む時間を減らし、実装に集中できればと思って作りました。
ブラウザですぐに試せるので、よかったら触ってみてください。フィードバックや「こんな機能が欲しい」という要望もお待ちしています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?