<div dir="ltr">Oh, I get it now! Those -0.0001 and 1.0001 were weird, I think I accidentally carried it over from some code snippet I found on the internet. I also went with the okNilL:c:h: selector as you said and simplified the method that implements the binary search. I also implemented oklchLightness, oklchChroma and oklchHue as you suggested. Perhaps later we could remove HSL stuff and simplify it to just #lightness, #chroma and #hue. #luminance could still be useful, but it means something different to lightness.<div><br></div><div>Also, I've been playing a bit with shades, tints and tones. The nomenclature in the current messages is a bit weird, the correct names are 'shade' for a mix of a color with black, 'tint' for a mix with white, and 'tone' for a mix with gray (which in our case should be gray with the same lightness, not middle gray). I don't include those methods yet because I still have to implement interpolation. Currently, Color>>mixed:with: interpolates the RGB coordinates, but with OKLCH we can do it better (and somewhat slower, but I think it's worth it).</div><div><br></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Dec 10, 2025 at 1:46 AM Juan Vuletich <<a href="mailto:juan@cuis.st">juan@cuis.st</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><u></u>

  
    
  
  <div>
    <p><br>
    </p>
    <div>On 2025-12-09 3:07 PM, Luciano
      Notarfrancesco via Cuis-dev wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="auto">On Wed, Dec 10, 2025 at 00:21 Juan Vuletich <<a href="mailto:juan@cuis.st" target="_blank">juan@cuis.st</a>> wrote:</div>
      <div dir="auto">
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)" dir="auto">
            <br>
            Why didn't you use 0.0 and 1.0 as min and max values?</blockquote>
          <div dir="auto"><br>
          </div>
          <div dir="auto">I just followed the specification. The chroma
            parameter doesn’t really have an upper limit, I’m not sure
            why it was made in this way. In practice, it doesn’t seem to
            make a difference to go over 0.5, and CSS uses 0.4 as 100%.</div>
        </div>
      </div>
    </blockquote>
    <p>I wasn't clear. Apologies. I mean, in #okl:c:h: I read</p>
    <p>    min := -0.00001.<br>
          max := 1.00001.</p>
    <p>I think I'd prefer 0.0 and 1.0, unless there's some reason for
      that I don't see.</p>
    <blockquote type="cite">
      <div dir="auto">
        <div class="gmail_quote">
          <div dir="auto"><br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)" dir="auto">Would you provide the conversion from sRGB (i.e.
            our Color instances) to <br>
            OkLCH? That is really needed too. I'd also want an instance
            creation <br>
            method that answers nil if parameters lie outside our sRGB
            space of <br>
            Color instances (i.e. if the OkLCH values can not be
            accurately <br>
            represented by an instance of Color). Does #okOrNilL:c:h:
            sound <br>
            reasonable? Any better option? With these two, I could do
            something like <br>
            #experimentsTowardsANewColorPalette but using this better
            color space.<br>
          </blockquote>
          <div dir="auto"><br>
          </div>
          <div dir="auto">Yeah, my idea was to try to do some sort of
            parallel protocol for different color spaces, something like
            aColor okLChDo: [:L :C :h| …], HSLDo:, etc. Later we could
            rethink messages like #hue (that currently returns the HSL
            hue, and its different to the OkLCH hue), and I’m not sure
            if we should eliminate those methods or make a unifying
            choice of a specific color space and coordinates. </div>
        </div>
      </div>
    </blockquote>
    At least #okLCHhue, #okLCHluminance and #okLCHchroma are needed as a
    first step, it would be great if you could cook those. We can later
    decide if we want to keep HSL or not. We may decide to remove it.
    <blockquote type="cite">
      <div dir="auto">
        <div class="gmail_quote">
          <div dir="auto">The message okOrNilL:c:h: might be ok, aother
            option could be okl:c:h:ifFail: with a block as argument,
            not sure. </div>
        </div>
      </div>
    </blockquote>
    <p>Yep. That's good too.</p>
    <blockquote type="cite">
      <div dir="auto">
        <div class="gmail_quote">
          <div dir="auto">And perhaps later we could start cleaning up
            all those messages like veryVeryMuchDarker, quiteDarker,
            etc, or come up with something better (should again look at
            what designers do for these things, I think).</div>
          <div dir="auto"><br>
          </div>
          <div dir="auto"><br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)" dir="auto">Finally, it would be wonderful to migrate all our
            theme related stuff to <br>
            this. This is so much better! Also, all our 'groups of
            shades' and <br>
            'transformations' methods look so primitive... We really
            need to update <br>
            all that stuff.<br>
          </blockquote>
          <div dir="auto"><br>
          </div>
          <div dir="auto">Yes, absolutely, I think it would be great.
            I’ll try to help with anything necessary, perhaps do it in
            small steps so that we don’t break everyones themes.
            Hopefully more people will be interested in helping with all
            this… it’s a fun project and there are many small parts to
            it.</div>
          <div dir="auto"><br>
          </div>
          <div dir="auto">Cheers,</div>
          <div dir="auto">Luciano</div>
        </div>
      </div>
    </blockquote>
    <p>Thanks,</p>
    <pre cols="72">-- 
Juan Vuletich
<a href="http://www.cuis.st" target="_blank">www.cuis.st</a>
<a href="http://github.com/jvuletich" target="_blank">github.com/jvuletich</a>
<a href="http://researchgate.net/profile/Juan-Vuletich" target="_blank">researchgate.net/profile/Juan-Vuletich</a>
<a href="http://independent.academia.edu/JuanVuletich" target="_blank">independent.academia.edu/JuanVuletich</a>
<a href="http://patents.justia.com/inventor/juan-manuel-vuletich" target="_blank">patents.justia.com/inventor/juan-manuel-vuletich</a></pre>
  </div>

</blockquote></div>