<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="386552" data-post-id="386552">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kip" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/120/1440_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kip
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>ex_cldr Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yes, there is. Either directly during the conversion or separately to force a color into gamut.</p>
<p>TLDR; use <code>intent: :perceptual</code> on conversions to force gamut mapping. Its a no-op if the color is already in gamut.</p>
<h3><a name="p-386552-examples-1" class="anchor" href="#p-386552-examples-1" aria-label="Heading link" rel="nofollow"></a>Examples</h3>
<pre data-code-wrap="elixir"><code class="lang-elixir">wild = %Color.Oklch{l: 0.85, c: 0.3, h: 100.0}

# Perceptual gamut map — safe to display:
{:ok, mapped} = Color.convert(wild, Color.SRGB, intent: :perceptual)
Color.Gamut.in_gamut?(mapped, :SRGB)
# =&gt; true
Color.to_hex(mapped)
# =&gt; "#d7d200"

# Or using a separate gamut step:
{:ok, mapped} = Color.Gamut.to_gamut(wild, :SRGB)
</code></pre>
<p>You can also do gamut checking:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir"># Direct conversion — NOT displayable:
{:ok, raw_rgb} = Color.convert(wild, Color.RGB, working_space: :SRGB)
Color.Gamut.in_gamut?(raw_rgb, :SRGB)
# =&gt; false
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386552" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-386552" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386552"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="386561" data-post-id="386561">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="a-maze-d" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/a-maze-d/120/31720_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  a-maze-d
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>let me look at d50/d65 <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_smiling_face.png?v=15" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_face:" loading="lazy" width="20" height="20"></p>
<p><a href="https://www.superlightingled.com/PDF/SPEC/WS2814-RGBW-Datasheet.pdf" rel="noopener nofollow ugc">WS2814</a>: has RGBW (an extra white led)</p>
<p><a href="https://www.superlightingled.com/PDF/WS2805-IC-Specification.pdf" rel="noopener nofollow ugc">WS2805</a> has RGBW1W2 (two extra white leds)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386561" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-386561" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386561"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="386562" data-post-id="386562">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tozz" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tozz
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I don’t know what I will use this for, but I have to use it for something. Thank you for the great work!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386562" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-386562" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386562"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="386565" data-post-id="386565">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kip" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/120/1440_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kip
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>ex_cldr Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I learned a lot about LED lighting products (which is useful to understand my home installation better too).  d50/d65 was a red herring. They are applicable to reflective color whereas LEDs are, of course, emissive.</p>
<p>Hope you enjoy the all new <a href="https://hex.pm/packages/color/0.4.0" rel="nofollow">color 0.4.0</a>.  There is a bit of math to map the mix of RGB + W or RGB + WW that aims to give the nearest perceptual match but it’s quite possible the math isn’t the most optimal. Feedback definitely welcome. Here are some of the new functions:</p>
<h3><a name="p-386565-colorledrgbw-4-channel-r-g-b-w-1" class="anchor" href="#p-386565-colorledrgbw-4-channel-r-g-b-w-1" aria-label="Heading link" rel="nofollow"></a>Color.LED.RGBW — 4-channel (R, G, B, W)</h3>
<p>This is for chips with one fixed-temperature white LED per pixel like <code>WS2814</code> and <code>SK6812-RGBW</code>.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir"># 1. Build a pixel from a hex colour for a WS2814 neutral-white strip
{:ok, target} = Color.new("#ffa500")            # sRGB orange
pixel = Color.LED.RGBW.from_srgb(target, chip: :ws2814_nw)
# =&gt; %Color.LED.RGBW{r: 0.832…, g: 0.162…, b: 0.0, w: 0.252…, white_temperature: 4500, alpha: nil}

# 2. The white LED takes over for achromatic colours
{:ok, white} = Color.new("#ffffff")
pixel = Color.LED.RGBW.from_srgb(white, chip: :ws2814_ww)
# =&gt; r, g, b ≈ 0  |  w ≈ 1.0  (all light from the warm-white LED)

# 3. Pure saturated red can't use the white LED at all
{:ok, red} = Color.new("#ff0000")
pixel = Color.LED.RGBW.from_srgb(red, white_temperature: 3000)
# =&gt; r: 1.0, g: 0.0, b: 0.0, w: 0.0

# 4. Specify the white LED temperature explicitly instead of a chip preset
{:ok, sky} = Color.new("#87ceeb")
pixel = Color.LED.RGBW.from_srgb(sky, white_temperature: 5000)

# 5. Preview what the pixel will actually emit
{:ok, preview} = Color.LED.RGBW.to_srgb(pixel)
Color.to_hex(preview)
# =&gt; "#87ceea" (or very close — exact round-trip for most sRGB colours)

# 6. Go all the way to XYZ for analysis
{:ok, xyz} = Color.LED.RGBW.to_xyz(pixel)
</code></pre>
<h3><a name="p-386565-colorledrgbww-5-channel-r-g-b-ww-cw-2" class="anchor" href="#p-386565-colorledrgbww-5-channel-r-g-b-ww-cw-2" aria-label="Heading link" rel="nofollow"></a>Color.LED.RGBWW — 5-channel (R, G, B, WW, CW)</h3>
<p>This is for chips with warm-white + cool-white LEDs per pixel like <code>WS2805</code> and RGB+CCT SK6812 variants. The two whites blend to reach any CCT between them. Hence why these need to be specified.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir"># 1. Build a pixel for a WS2805 from an sRGB colour
{:ok, target} = Color.new("#ffa500")
pixel = Color.LED.RGBWW.from_srgb(target, chip: :ws2805)
# =&gt; %Color.LED.RGBWW{r: …, g: …, b: …, ww: …, cw: …, warm_temperature: 3000, cool_temperature: 6500, alpha: nil}

# 2. A warm target drives mostly the warm-white LED
{:ok, warm} = Color.new([1.0, 0.85, 0.6])
pixel = Color.LED.RGBWW.from_srgb(warm, chip: :ws2805)
# =&gt; pixel.ww &gt; pixel.cw

# 3. A cool target drives mostly the cool-white LED
{:ok, cool} = Color.new([0.85, 0.9, 1.0])
pixel = Color.LED.RGBWW.from_srgb(cool, chip: :ws2805)
# =&gt; pixel.cw &gt; pixel.ww

# 4. Pure white splits across both whites to land on ~D65
{:ok, white} = Color.new("#ffffff")
pixel = Color.LED.RGBWW.from_srgb(white, chip: :ws2805)
# =&gt; ww + cw ≈ 1.0,  r, g, b ≈ 0

# 5. Custom warm/cool temperatures (e.g. a 2700 K + 5700 K fixture)
{:ok, target} = Color.new("rebeccapurple")
pixel =
  Color.LED.RGBWW.from_srgb(target,
    warm_temperature: 2700,
    cool_temperature: 5700
  )

# 6. Or pass chip_options/1 directly
options = Color.LED.chip_options(:ws2805)
# =&gt; [kind: :rgbww, warm_temperature: 3000, cool_temperature: 6500]
{:ok, target} = Color.new("#336699")
pixel = Color.LED.RGBWW.from_srgb(target, options)

# 7. Simulate what the pixel emits
{:ok, preview} = Color.LED.RGBWW.to_srgb(pixel)
</code></pre>
<h3><a name="p-386565-picking-the-right-chip-preset-3" class="anchor" href="#p-386565-picking-the-right-chip-preset-3" aria-label="Heading link" rel="nofollow"></a>Picking the right chip preset</h3>
<pre data-code-wrap="elixir"><code class="lang-elixir">Color.LED.chips()
# =&gt; [:sk6812_cw, :sk6812_nw, :sk6812_ww,
#     :ws2805, :ws2814_cw, :ws2814_nw, :ws2814_ww]

Color.LED.chip_options(:ws2814_ww)
# =&gt; [kind: :rgbw, white_temperature: 3000]

Color.LED.chip_options(:sk6812_cw)
# =&gt; [kind: :rgbw, white_temperature: 6500]

Color.LED.chip_options(:ws2805)
# =&gt; [kind: :rgbww, warm_temperature: 3000, cool_temperature: 6500]
</code></pre>
<h3><a name="p-386565-writing-pixel-bytes-to-a-strip-4" class="anchor" href="#p-386565-writing-pixel-bytes-to-a-strip-4" aria-label="Heading link" rel="nofollow"></a>Writing pixel bytes to a strip</h3>
<p>The channel values are linear floats in <code>[0, 1]</code>. For a typical 8-bit addressable strip, scale and round. Its just plain old bitstring composition (gotta love OTP):</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defp to_bytes(%Color.LED.RGBW{r: r, g: g, b: b, w: w}) do
  &lt;&lt;round(r * 255), round(g * 255), round(b * 255), round(w * 255)&gt;&gt;
end

defp to_bytes(%Color.LED.RGBWW{r: r, g: g, b: b, ww: ww, cw: cw}) do
  &lt;&lt;round(r * 255), round(g * 255), round(b * 255),
    round(ww * 255), round(cw * 255)&gt;&gt;
end
</code></pre>
<p>It seems that the WS2814 datasheet order is typically <strong>GRBW</strong>, and WS2805 is typically <strong>GRB-WW-CW</strong>, so you may need to swap the first two bytes to match your specific chip and SPI driver. I’m fine to add a <code>to_bytes/1</code> (or maybe better named <code>to_bitstring/1</code>) but I’d need guidance on the canonical byte order - or a configurable option.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386565" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-386565" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386565"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="386566" data-post-id="386566">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="LostKobrakai" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/LostKobrakai/120/3072_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  LostKobrakai
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="kip" data-post="15" data-topic="74930">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/48/1440_2.png" class="avatar"> kip:</div>
<blockquote>
<p><code>Color.LED.chips()</code></p>
</blockquote>
</aside>
<p>Does it really make sense for color to have knowledge about individual chips? This doesn’t look very scalable to me and I’m not sure how useful a subset of chips is.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386566" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-386566" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386566"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="386568" data-post-id="386568">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kip" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/120/1440_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kip
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>ex_cldr Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>You may be right.  Hopefully <a class="mention" href="/u/a-maze-d" rel="nofollow">@a-maze-d</a> has an informed opinion about this.  My reading suggested there is a small number of standard chips but I am definitely not a domain expert so feedback very welcome.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386568" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-386568" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386568"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="386570" data-post-id="386570">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="a-maze-d" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/a-maze-d/120/31720_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  a-maze-d
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>wow! <img src="https://forum.elixirforum.com/images/emoji/apple/hushed_face.png?v=15" title=":hushed_face:" class="emoji" alt=":hushed_face:" loading="lazy" width="20" height="20"></p>
<p>I would agree that the LED specific part should be left out from your library</p>
<p>I think it makes more sense for me to integrate it into Fledex. But with the RGBW(W) addition I should be able to kigrate most color related things to your library.</p>
<p>Let me take a look at it at home in the evening (hopefully) and get back to you</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386570" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-386570" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386570"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="386571" data-post-id="386571">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kip" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kip/120/1440_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kip
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>ex_cldr Core Team</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I don’t think I can leave all the LED-specific stuff out because colour conversion needs to know the CCT of the white LED(s). But if, after your consideration, you think taking the chip-specific code out I’m happy to do that.  The CCTs can be specified in degrees-K instead without knowing the chipset.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386571" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-386571" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386571"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="386751" data-post-id="386751">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="idmitrievskii" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  idmitrievskii
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>That’s really cool! I didn’t look into the color libraries, so I have a possibly stupid question.</p>
<p>I imagine that this library is mostly data transformations, and doesn’t contain many BEAM-specific features. If that’s the case, would it make sense to implement this in C or Zig, to make it available to the broader ecosystem? Then it would be trivial to wrap the library in any other language, e.g. Python, and get a high quality color library out of it.</p>
<p>I understand if it’s not something you’re personally interested in doing, just wondering about the approach.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386751" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-386751" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386751"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="386755" data-post-id="386755">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="hauleth" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hauleth/120/18942_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  hauleth
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>There are already similar libraries in other languages as well. Implementing that in NIF and then doing port would make deployment way harder for almost no gain.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386755" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/color-a-comprehensive-color-library/74930/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-386755" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386755"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/74930/load_more?page=3">Load more posts (27 remaining)</a>
</div></template></turbo-stream>