Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. CSS: カスケーディングスタイルシート
  3. CSS 色
  4. 色形式コンバーター

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

色形式コンバーター

このツールでは、色を入力または選択し、対応する値を任意の CSS色形式でコピーできます。生成された色値は、CSSで<color> データ型が対応している場所ならどこでも使用できます。同時に、このツールは様々な色表記の構文を理解するのにも役立ちます。

このツールの使い方

任意の書式で色を入力するか、sRGB色空間から選択してください。不透明度(アルファチャンネル)を同時に調整することもできます。

対応する色形式の横にあるコピーボタンをクリックすると、その値をすばやくコピーできます。色形式名をクリックすると、同時に詳細を確認することもできます。

<div>  <dialog open>    <p>      <label for="color-text">        任意の形式で色値を入力するか、色を選択するかしてください。      </label>      <span>        <input type="text" />        <input type="color" />      </span>    </p>    <p>      <label for="opacity-input">不透明度を調整: </label>      <input        type="range"               value="1"        min="0"        max="1"        step="0.01" />    </p>    <hr />    <table>      <caption>        さまざまな形式での色:      </caption>      <tbody>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Web/CSS/color_value/rgb"             >              RGB            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Web/CSS/hex-color"             >              HEX            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Web/CSS/color_value/hsl"             >              HSL            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Web/CSS/color_value/hwb"             >              HWB            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Web/CSS/color_value/color"             >              color()            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Web/CSS/color_value/lab"             >              Lab            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Web/CSS/color_value/lch"             >              LCH            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Web/CSS/color_value/oklab"             >              Oklab            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Web/CSS/color_value/oklch"             >              OkLCh            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Glossary/Color_space#xyz-d50"             >              XYZ D50            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>        <tr>          <th>            <a              href="https://developer.mozilla.org/ja/docs/Glossary/Color_space#xyz"             >              XYZ D65            </a>          </th>          <td><button>コピー</button><span></span></td>        </tr>      </tbody>    </table>  </dialog></div>
dialog {  border: 1px solid;  border-radius: 5px;  box-shadow: 3px 3px 10px rgb(0 0 0 / 0.2);  background-color: white;  font-family: segue, arial, helvetica, sans-serif;  margin-top: 5vh;  width: 550px;}table {  width: 100%;}td,th {  padding: 3px 0;}th {  background-color: #ededed;}td {  background-color: #dedede;  font-family: monospace;}body {  background:    linear-gradient(      -90deg,      transparent 0 38%,      47%,      rgb(0 0 0 / 0.7) 50%,      white 50% 100%    ),    conic-gradient(      black 0 90deg,      transparent 90deg 180deg,      black 180deg 270deg,      transparent 270deg 360deg    );  background-size:    100% 100%,    20px 20px;  padding: 0;  margin: 0;}.container {  width: 100vw;  height: 100vh;}.color-inputs {  display: inline-flex;  margin-top: 0.6rem;  margin-bottom: 1.5rem;}button {  margin-right: 0.5rem;}input[type="text"] {  width: 300px;  margin-right: 0.5rem;}input[type="range"] {  width: 350px;}label {  user-select: none;}p {  display: flex;  flex-flow: column;  align-items: center;  margin: 0;}
const background = document.querySelector("body div");const colorText = document.getElementById("color-text");const colorPicker = document.getElementById("color-input");const opacityPicker = document.getElementById("opacity-input");const hexOutput = document.querySelector("#hex td > span");const rgbFunctionOutput = document.querySelector("#rgb-function td > span");const colorFunctionOutput = document.querySelector("#color-function td > span");const hslFunctionOutput = document.querySelector("#hsl-function td > span");const hwbFunctionOutput = document.querySelector("#hwb-function td > span");const labFunctionOutput = document.querySelector("#lab-function td > span");const okLabFunctionOutput = document.querySelector("#oklab-function td > span");const lchFunctionOutput = document.querySelector("#lch-function td > span");const okLchFunctionOutput = document.querySelector("#oklch-function td > span");const xyzD50FunctionOutput = document.querySelector(  "#xyz-d50-function td > span",);const xyzD65FunctionOutput = document.querySelector(  "#xyz-d65-function td > span",);const LRGB_LMS_MATRIX = [  [0.4122214708, 0.5363325363, 0.0514459929],  [0.2119034982, 0.6806995451, 0.1073969566],  [0.0883024619, 0.2817188376, 0.6299787005],];const LMS_LAB_MATRIX = [  [+0.2104542553, +0.793617785, -0.0040720468],  [+1.9779984951, -2.428592205, +0.4505937099],  [+0.0259040371, +0.7827717662, -0.808675766],];// srgb-linear to xyz-d50// matrix taken from http://www.brucelindbloom.com/index.html?Eqn_RGB_to_XYZ.htmlconst LRGB_XYZ_D50_MATRIX = [  [0.4360747, 0.3850649, 0.1430804],  [0.2225045, 0.7168786, 0.0606169],  [0.0139322, 0.0971045, 0.7141733],];// srgb-linear to xyz-d65// matrix taken from http://www.brucelindbloom.com/index.html?Eqn_RGB_to_XYZ.htmlconst LRGB_XYZ_D65_MATRIX = [  [0.4124564, 0.3575761, 0.1804375],  [0.2126729, 0.7151522, 0.072175],  [0.0193339, 0.119192, 0.9503041],];const currentColor = { r: 186, g: 218, b: 85, alpha: 1.0 }; // #bada55function multiplyByMatrix(matrix, tuple) {  let i = [0, 0, 0];  let j = matrix.length;  let k = matrix[0].length;  for (let l = 0; l < j; l++)    for (let m = 0; m < k; m++) i[l] += matrix[l][m] * tuple[m];  return i;}function rgbToLinear(c) {  return c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);}function intToHex(i) {  return Math.floor(i).toString(16).padStart(2, "0").toLowerCase();}function rgbToHEXText(c) {  return `#${intToHex(c.r)}${intToHex(c.g)}${intToHex(c.b)}`;}function rgbaToHEXAText(color) {  const hexText = rgbToHEXText(color);  if (color.alpha === 1.0) {    return hexText;  }  const alpha = intToHex(color.alpha * 255);  return `${hexText}${alpha}`;}function rgbaToHSLA(color) {  let { r, g, b, alpha } = color;  // Let's have r, g, b in the range [0, 1]  r = r / 255;  g = g / 255;  b = b / 255;  const min = Math.min(r, g, b);  const max = Math.max(r, g, b);  const delta = max - min;  let h, s, l;  if (delta === 0) {    h = 0;  } else if (max === r) {    h = ((g - b) / delta) % 6;  } else if (max === g) {    h = (b - r) / delta + 2;  } else h = (r - g) / delta + 4;  h = Math.round(h * 60);  // We want an angle between 0 and 360°  if (h < 0) {    h += 360;  }  l = (max + min) / 2;  s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));  s = Number((s * 100).toFixed(1));  l = Number((l * 100).toFixed(1));  return { h, s, l, alpha };}function toHSLAText(color) {  const { h, s, l, alpha } = rgbaToHSLA(color);  return `hsl(${h.toFixed(0)} ${s.toFixed(0)}% ${l.toFixed(0)}%${    alpha < 1.0 ? ` / ${alpha.toFixed(3)}` : ""  })`;}function rgbaToHWBAText(color) {  let { h, s, l, alpha } = rgbaToHSLA(color);  const chroma = s * (1 - Math.abs(l / 50 - 1));  let W = (l - chroma / 2).toFixed(0);  let B = (100 - l - chroma / 2).toFixed(0);  return `hwb(${h} ${W}% ${B}%${alpha < 1.0 ? ` / ${alpha.toFixed(3)}` : ""})`;}function rgbaToXYZD50(color) {  let { r, g, b, alpha } = color;  r = rgbToLinear(r / 255) * 255;  g = rgbToLinear(g / 255) * 255;  b = rgbToLinear(b / 255) * 255;  const xyz = multiplyByMatrix(LRGB_XYZ_D50_MATRIX, [r, g, b]);  return { x: xyz[0] / 255, y: xyz[1] / 255, z: xyz[2] / 255, alpha };}function rgbaToXYZD50Text(color) {  let { alpha } = color;  const xyz = rgbaToXYZD50(color);  return `color(xyz-d50 ${xyz.x.toFixed(5)} ${xyz.y.toFixed(5)} ${xyz.z.toFixed(    5,  )}${alpha < 1.0 ? ` / ${alpha.toFixed(3)}` : ""})`;}function rgbaToXYZD65(color) {  let { r, g, b, alpha } = color;  r = rgbToLinear(r / 255) * 255;  g = rgbToLinear(g / 255) * 255;  b = rgbToLinear(b / 255) * 255;  const xyz = multiplyByMatrix(LRGB_XYZ_D65_MATRIX, [r, g, b]);  return { x: xyz[0] / 255, y: xyz[1] / 255, z: xyz[2] / 255, alpha };}function rgbaToXYZD65Text(color) {  let { alpha } = color;  const xyz = rgbaToXYZD65(color);  return `color(xyz-d65 ${xyz.x.toFixed(5)} ${xyz.y.toFixed(5)} ${xyz.z.toFixed(    5,  )}${alpha < 1.0 ? ` / ${alpha.toFixed(3)}` : ""})`;}const D65 = [0.3457 / 0.3585, 1, 0.2958 / 0.3585];function xyzToLab(color) {  let { x, y, z, alpha } = color;  [x, y, z] = [x, y, z].map((v, i) => {    v = v / D65[i];    return v > 0.0088564516 ? Math.cbrt(v) : v * 903.2962962962963 + 16 / 116;  });  return { l: 116 * y - 16, a: 500 * (x - y), b: 200 * (y - z), alpha };}function rgbaToLabText(color) {  let { alpha } = color;  const xyz = rgbaToXYZD50(color);  const lab = xyzToLab(xyz);  return `lab(${lab.l.toFixed(3)} ${lab.a.toFixed(3)} ${lab.b.toFixed(3)}${    alpha < 1.0 ? ` / ${alpha.toFixed(3)}` : ""  })`;}function rgbToOklab(color) {  let { r, g, b, alpha } = color;  r = rgbToLinear(r / 255);  g = rgbToLinear(g / 255);  b = rgbToLinear(b / 255);  const lms = multiplyByMatrix(LRGB_LMS_MATRIX, [r, g, b]).map((v) =>    Math.cbrt(v),  );  const oklab = multiplyByMatrix(LMS_LAB_MATRIX, lms);  return { l: oklab[0], a: oklab[1], b: oklab[2], alpha };}function toOkLabText(color) {  let { alpha } = color;  const oklab = rgbToOklab(color);  return `oklab(${oklab.l.toFixed(5)} ${oklab.a.toFixed(5)} ${oklab.b.toFixed(    5,  )}${alpha < 1.0 ? ` / ${alpha.toFixed(3)}` : ""})`;}function labToLCH(color) {  const { l, a, b, alpha } = color;  const c = Math.sqrt(a * a + b * b);  let h = Math.atan2(b, a) * (180 / Math.PI);  if (h < 0) {    h += 360;  }  return { l, c, h, alpha };}function toLCHText(color) {  let { alpha } = color;  const xyz = rgbaToXYZD50(color);  const lab = xyzToLab(xyz);  const lch = labToLCH(lab);  return `lch(${lch.l.toFixed(3)} ${lch.c.toFixed(3)} ${lch.h.toFixed(3)}${    alpha < 1.0 ? ` / ${alpha.toFixed(3)}` : ""  })`;}function rgbaToOkLCh(color) {  const lab = rgbToOklab(color);  const oklch = labToLCH(lab);  return { l: oklch.l, c: oklch.c, h: oklch.h, alpha: color.alpha };}function toOkLChText(color) {  let { alpha } = color;  const oklch = rgbaToOkLCh(color);  return `oklch(${oklch.l.toFixed(5)} ${oklch.c.toFixed(5)} ${oklch.h.toFixed(    5,  )}${alpha < 1.0 ? ` / ${alpha.toFixed(3)}` : ""})`;}function colorToRGBA(c) {  const ctx = new OffscreenCanvas(1, 1).getContext("2d");  ctx.fillStyle = c;  ctx.fillRect(0, 0, 1, 1);  const data = ctx.getImageData(0, 0, 1, 1).data;  return {    r: data[0],    g: data[1],    b: data[2],    alpha: data[3] / 255,  };}function updateOutput(c) {  background.style.backgroundColor = rgbaToHEXAText(c);  hexOutput.innerText = rgbaToHEXAText(c);  rgbFunctionOutput.innerText = `rgb(${c.r} ${c.g} ${c.b}${c.alpha < 1 ? ` / ${c.alpha.toFixed(3)}` : ""})`;  colorFunctionOutput.innerText = `color(srgb ${(c.r / 255).toFixed(3)} ${(c.g / 255).toFixed(3)} ${(c.b / 255).toFixed(3)}${c.alpha < 1 ? ` / ${c.alpha.toFixed(3)}` : ""})`;  hslFunctionOutput.innerText = toHSLAText(c);  hwbFunctionOutput.innerText = rgbaToHWBAText(c);  labFunctionOutput.innerText = rgbaToLabText(c);  xyzD50FunctionOutput.innerText = rgbaToXYZD50Text(c);  xyzD65FunctionOutput.innerText = rgbaToXYZD65Text(c);  lchFunctionOutput.innerText = toLCHText(c);  okLabFunctionOutput.innerText = toOkLabText(c);  okLchFunctionOutput.innerText = toOkLChText(c);}function init() {  colorText.addEventListener("input", (e) => {    const color = colorToRGBA(e.target.value);    Object.assign(currentColor, color);    colorPicker.value = rgbToHEXText(currentColor);    opacityPicker.value = currentColor.alpha;    updateOutput(currentColor);  });  colorPicker.addEventListener("input", (e) => {    const text = e.target.value;    currentColor.r = parseInt(text.slice(1, 3), 16);    currentColor.g = parseInt(text.slice(3, 5), 16);    currentColor.b = parseInt(text.slice(5, 7), 16);    colorText.value = rgbaToHEXAText(currentColor);    opacityPicker.value = currentColor.alpha;    updateOutput(currentColor);  });  opacityPicker.addEventListener("input", (e) => {    const value = parseFloat(e.target.value);    currentColor.alpha = value;    colorText.value = rgbaToHEXAText(currentColor);    updateOutput(currentColor);  });  document.querySelectorAll("#output-colors button").forEach((button) => {    button.addEventListener("click", (e) => {      const text = e.target.nextElementSibling.innerText;      navigator.clipboard.writeText(text);      e.target.innerText = "Copied!";      setTimeout(() => {        e.target.innerText = "Copy";      }, 1000);    });  });  colorText.value = rgbaToHEXAText(currentColor);  colorPicker.value = rgbToHEXText(currentColor);  opacityPicker.value = currentColor.alpha;  updateOutput(currentColor);}init();

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp