Skip to content

Instantly share code, notes, and snippets.

View facelessuser's full-sized avatar
💭
Screaming into the void 😱

Isaac Muse facelessuser

💭
Screaming into the void 😱
View GitHub Profile
@facelessuser
facelessuser / okhsl.py
Last active September 25, 2021 17:01
Okhsl and Okhsv
"""
Okhsl class.
Translation to/from Oklab is licenced under MIT by the original author, all
other code also licensed under MIT: Copyright (c) 2021 Isaac Muse.
---- Oklab license ----
Copyright (c) 2021 Björn Ottosson
@facelessuser
facelessuser / playground.md
Last active August 29, 2023 16:06
Page: Coloraide - Playground

Color Notebook

ColorAide's documentation is rendered with Python Markdown and Pymdown Extensions. The color notebook implements a dynamic, live environment allowing for on the fly page rendering. This is accomplished by using Pyodide to execute the required Python modules to render the desired pages.

Pages can contain most Markdown but also special code blocks called playgrounds. These playgrounds are simple fenced code blocks that allow for a user to input and execute Python code. Each playground exposes access to ColorAide allowing for sandboxes to explore the features of ColorAide. Additionally, the playgrounds will search for color objects, interpolation objects, and color

@facelessuser
facelessuser / okfit.py
Last active January 15, 2022 16:11
Okfit
from coloraide.distance.delta_e_76 import DE76
from coloraide.gamut.fit_lch_chroma import LchChroma
from coloraide import Color as OrigColor
class DEOK(DE76):
"""Delta E OK class."""
NAME = "ok"
SPACE = "oklab"
@facelessuser
facelessuser / gamut_compare.md
Last active February 16, 2022 18:11
Gamut Comparison

This implements the gamut mapping algorithm according to CSS Level 4 specification.

from coloraide.gamut import Fit
from coloraide.util import NaN


class OklchChroma(Fit):
    """Lch chroma gamut mapping class."""
@facelessuser
facelessuser / css_l4_gamut.py
Last active February 18, 2022 17:16
CSS Level 4 Gamut mapping
from coloraide.gamut import Fit, clip_channels
from coloraide.util import NaN
class OklchChroma(Fit):
"""Lch chroma gamut mapping class."""
NAME = "oklch-chroma"
EPSILON = 0.0001
@facelessuser
facelessuser / gamut_issues.py
Last active July 25, 2022 04:16
Gamut Issues CSS
print('---- Gamut Mapping with Oklch ----')
class Color2(Color):
FIT = "oklch-chroma"
colors = ['green', 'blue']
Color2.interpolate(colors, space="lab")
Color2.interpolate(colors, space="lch")
Color2.interpolate(colors, space="oklab")
Color2.interpolate(colors, space="oklch")
print('---- Gamut Mapping with CIE LCH ----')
@facelessuser
facelessuser / test.py
Last active March 7, 2022 13:39
CSS L4 OKLCH Gamut map mix
from coloraide.gamut import Fit, clip_channels
from coloraide.util import NaN
class OklchChroma(Fit):
"""Lch chroma gamut mapping class."""
NAME = "oklch-chroma"
EPSILON = 0.0001
inputs = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
colors = Color(inputs[0]).steps(inputs[1:], steps=20, space='srgb')
colors
ColorRow()
[c.cvd('achromatopsia').clip() for c in colors]
ColorRow()
[c.cvd('brettel-protan').clip() for c in colors]
ColorRow()
[c.cvd('brettel-deutan').clip() for c in colors]
ColorRow()
@facelessuser
facelessuser / contrast.py
Created July 15, 2022 22:20
Color Contrast
from coloraide.contrast import ColorContrast
class Weber(ColorContrast):
"""Weber contrast."""
NAME = "weber"
@classmethod
def contrast(cls, color1, color2, **kwargs):
"""Contrast."""
@facelessuser
facelessuser / cam16.py
Last active January 19, 2023 15:58
ColorAide CAM16
"""CAM16 class."""
import math
from coloraide.spaces import Space, Labish
from coloraide.distance import DeltaE
from coloraide.cat import WHITES
from coloraide.channels import Channel, FLG_ANGLE
from coloraide import util
from coloraide import algebra as alg
from coloraide.types import Vector, VectorLike
from typing import Optional