class Sass::Value::Color::Space::Oklab
def bounded?
def bounded? false end
def convert(dest, lightness, a, b, alpha, # rubocop:disable Naming/MethodParameterName
def convert(dest, lightness, a, b, alpha, # rubocop:disable Naming/MethodParameterName missing_chroma: false, missing_hue: false) case dest when OKLCH Utils.lab_to_lch(dest, lightness, a, b, alpha) else missing_lightness = lightness.nil? missing_a = a.nil? missing_b = b.nil? lightness = 0 if missing_lightness a = 0 if missing_a b = 0 if missing_b LMS.convert( dest, ((Conversions::OKLAB_TO_LMS[0] * lightness) + (Conversions::OKLAB_TO_LMS[1] * a) + (Conversions::OKLAB_TO_LMS[2] * b))**3, ((Conversions::OKLAB_TO_LMS[3] * lightness) + (Conversions::OKLAB_TO_LMS[4] * a) + (Conversions::OKLAB_TO_LMS[5] * b))**3, ((Conversions::OKLAB_TO_LMS[6] * lightness) + (Conversions::OKLAB_TO_LMS[7] * a) + (Conversions::OKLAB_TO_LMS[8] * b))**3, alpha, missing_lightness:, missing_chroma:, missing_hue:, missing_a:, missing_b: ) end end
def initialize
def initialize super('oklab', [ LinearChannel.new('lightness', 0, 1, conventionally_percent: true, lower_clamped: true, upper_clamped: true).freeze, LinearChannel.new('a', -0.4, 0.4).freeze, LinearChannel.new('b', -0.4, 0.4).freeze ].freeze) end