
2026/06/04 6:22
Splas はカラーフォーマットです
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
最も重要な革新は「Splash」であり、これは赤、緑、青のチャンネル値(0〜9)をそれぞれ各桁が表す、人間もコンピュータも読み込める 3 桁の色形式です。これにより正確に 1,000 の離散的な色が得られ、決定麻痺を軽減します。例としては、900 が純粋な赤、555 がニュートラルグレー、000 が黒、999 が白を示します。当初は Cellpond でドラッグ&ドロップインターフェースのために採用されましたが、Splash は無限の RGB スライダーや従来のヘックスコードと比較して色選択を簡素化します。このシステムは、すべての 1,000 の変換をリスト化した静的リスト(例:090 → #000071)、Splash コードを変換する JavaScript 関数(数学計算またはルックアップテーブルを使用して)、Matan から提供された SCSS 関数(
@function splash($r, $g, $b))およびすべての色を含むプリバックド CSS ファイルによってサポートされています。デザイナーは手作りのルックアップテーブルを使用してテーマをカスタマイズでき、Roman Komarov は --splash-bg: 971 といった直接的なスタイル定義のための CSS ミクスインをサポートを追加しました。Felix Roos の「garten」サイトをインスピレーション源とし、Splash は多様なプロジェクト要件を満たしつつ美的精度を維持し、ユーザーらを完璧主義から解放する効率的なエコシステムを構築します。
Text to translate:
Summary:
The most significant innovation is "Splash," a human- and computer-readable three-digit color format where each digit represents red, green, or blue channel values (0–9), yielding exactly 1,000 discrete colors to reduce decision paralysis. Examples include 900 for full red, 555 for neutral grey, 000 for black, and 999 for white. Originally adopted by Cellpond for its drag-and-drop interface, Splash simplifies color selection compared to infinite RGB sliders or traditional hex codes. The system is supported by a static list of all 1,000 conversions (e.g., 090 → #000071), a JavaScript function that converts splash codes via math or lookup tables, and an SCSS function (
@function splash($r, $g, $b)) from Matan alongside a pre-baked CSS file with all colors. Designers can customize themes using hand-crafted lookup tables, and Roman Komarov added CSS mixin support for direct style definitions like --splash-bg: 971. Drawing inspiration from Felix Roos's "garten" site, Splash creates an efficient ecosystem that meets diverse project requirements while maintaining aesthetic precision and liberating users from perfectionism.本文
Splash カラーシステム:簡易 RGB の魅力
Splash は、色のフォーマットを3 桁の数字で表すシステムです。
システムの特徴と仕組み
- 構造: 各桁はそれぞれ異なる色チャンネルに対応します。
- 1 桁目:赤 (Red)
- 2 桁目:緑 (Green)
- 3 桁目:青 (Blue)
- 値の範囲: 各数は
から0
の整数です(例:9
は赤が最大で緑・青が最小)。900 - 決断麻痺防止:
- 完璧な色を探すための頭を抱え込む手間を省きます。
- 感情的な負担なく、「どれを選んでも大丈夫」という安心感を提供します。
標準的な色組み合わせの例
基本的には以下の組み合わせが最も一般的です。
| コード | 名称 | 備考 |
|---|---|---|
| 黒 | すべてのチャンネルが最小 |
| 白 | すべてのチャンネルが最大 |
| グレー | チャンネルのバランスが等しい |
| 淡い水色 | |
| 緑 | |
| シアン | |
| 青 | |
| ピンク | |
| ライトピンク | 淡い色合いを含む |
| 赤 | |
| オレンジ | |
| 黄色 |
自由度の確保: 標準的な組み合わせだけでなく、独自スタイルを作る十分な余地があります。
- 例:
(より深いシアン)、289
(パープル) など529 - 完璧でなくても問題ありません。この制約こそが、ミスを恐れずに色を選べる「解放感」を生み出します。
なぜ「1,000 種類」なのか?
Splash カラーは合計 1,000 種類しか存在しないため、すべての組み合わせをリスト化する現実的なメリットがあります。
- 高速動作: コードが静的に生成できるため、パフォーマンスに優れています(Cellpond プロジェクトの戦略の一例)。
- 直感的な操作: ユーザーは
から1
の個々の値のみを扱うだけで済み、ドラッグ&ドロップも容易です。9
JavaScript での実装方法
Splash コードから標準的な RGB / 十六進法 (#Hex) に変換する方法はいくつかあります。
方法 1:自動計算によるマッピング
単純な数学式で
0-9 を 0-255 にマッピングします。ライブラリ不要でゼロから構築可能です。
function getHexFromSplash(splash) { // 1. 入力を文字列とし、不足分を '0' で埋める (例: "9" -> "009") const splashChannels = splash.toString().padStart(3, "0").split("") // 2. 各値を線形マッピングする (値 / 9 * 255) const rgbChannels = splashChannels.map((v) => Math.floor((v / 9) * 255)) // 3. 各成分を十六進法に変換し連結する const hexChannels = rgbChannels.map((v) => v.toString(16).padStart(2, "0")) return "#" + hexChannels.join("") } // 例: Splash "900" -> "#f00" (赤) console.log(getHexFromSplash("900"));
方法 2:テーマに合わせたカスタマイズ
「完全な黒」や特定の色バランスを好む場合は、ルックアップテーブルを手作業で作成し使用します。
例えば、暗い背景でも視認性が高く、かつ青み・緑みが少し入ったようなパステル調を実現したい場合:
const CHANNEL_VALUES = [ // Red channel values (0-9 mapped to hex) ['17', '37', '46', '62', '80', '9f', 'ae', 'cc', 'f2', 'ff'], // Green channel values ['1d', '43', '62', '80', '9f', 'ae', 'cc', 'de', 'f5', 'ff'], // Blue channel values ['28', '46', '62', '80', '99', 'ae', 'cc', 'de', 'f7', 'ff'] // ※調整済み例 ] function getHexFromSplash(splash) { const splashChannels = splash.toString().padStart(3, "0").split("") // ルックアップテーブルから直接取得 const hexChannels = splashChannels.map((v, i) => CHANNEL_VALUES[i][v]) return "#" + hexChannels.join("") }
方法 3:静的ルックアップテーブル(超高速化)
計算ロジックを完全に省略し、配列の直接参照のみを使用する方法です。パフォーマンスが最大化されます。
const SPLASH_TO_HEX = [ "#000000", "#00001c", "...", "#ffffff" // 全ての 000〜999 のケースを事前に定義 ]; function getHexFromSplash(splash) { return SPLASH_TO_HEX[splash] }
その他の言語・フレームワークでの利用
SCSS (Matan)
SCSS 関数として実装され、
splash() で指定可能です。
@function splash($r, $g, $b) { @return rgb($r * 28.34, $g * 28.34, $b * 28.34); } .foo { background-color: splash(0, 0, 9); // Splash "009" }
- プリセット CSS: すべてのカラーを含む静的なファイルも利用可能です。
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/matan-h/splash-css@master/dist/styles.css"> <!-- 使用例 --> <span style="background-color: var(--sp090)">090</span>
CSS ミックスイン (Roman Komarov)
CSS 変数と組み合わせることで、以下のように簡潔に記述できます。
<span style="--splash-bg: 971">971</span>
- 利点: 3 桁の数字のみを入力するため、テキストコードとの相性が抜群です。
まとめ
Splash カラーは、人間が扱いやすく、コンピュータでも高速に処理できる理想的な色システムです。
- 読みやすさ:
という数字だけで「赤」と即座に理解できます。900 - 柔軟性: 計算ロジックを使わず、静的テーブルで完全に抽象化することも可能です。
- 心身の健康: 選択肢が多すぎることで生じる「決断麻痺」を防ぎます。
ご意見やアイデアがありましたら、お気軽にお知らせください!