Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adaptive color theme "Copy theme URL" function results in a broken link #211

Open
jesselcampbell opened this issue Apr 3, 2023 · 6 comments
Labels
bug Something isn't working UI Issues related to the Leonardo web interface

Comments

@jesselcampbell
Copy link

Description

When using the Adaptive color theme tool, by opening the Share dropdown and clicking Copy theme URL, a URL is copied to the clipboard. That URL contains all of the necessary information to load the color theme into the Leonardo Web Tool in a new tab or browser. However, the result of pasting that URL into a new tab is an indefinite loading screen.

Steps to reproduce

  1. Go to http://leonardocolor.io
  2. Click on Adaptive color theme
  3. Click on the Share button at the top right
  4. Click Copy theme URL
  5. Open a new tab and paste the URL into the address bar
  6. Observe an indefinite loading screen

Expected behavior

When I paste the copied URL into a new tab or browser window, I expect the resulting web page to be the same as the adaptive color theme I copied from.

Screenshots

image

image

Environment

  • Chrome version 111.0.5563.146 on MacOS Ventura 13.2.1
  • Safari version 16.3 (18614.4.6.1.6) on MacOS Ventura 13.2.1

Additional context

This isn't happening on every color set, but it has happened to me a handful of times. I have a feeling that some of the URL variables are causing this. Whether it's how they're getting translated into the URL, or read back into the app after pasting the URL.

Here is one that fails for reference:
https://leonardocolor.io/theme.html?name=Untitled&config=%7B%22baseScale%22%3A%22Sky%22%2C%22colorScales%22%3A%5B%7B%22name%22%3A%22Sky%22%2C%22colorKeys%22%3A%5B%22%23bbd2ec%22%2C%22%23837afa%22%5D%2C%22colorspace%22%3A%22OKLCH%22%2C%22ratios%22%3A%5B%221.025%22%2C%221.125%22%2C%221.25%22%2C%221.75%22%2C%222.5%22%2C%223.25%22%2C%224.5%22%2C%227%22%2C%229.25%22%2C%2213%22%2C%2218%22%5D%2C%22smooth%22%3Afalse%7D%5D%2C%22lightness%22%3A100%2C%22contrast%22%3A1%2C%22saturation%22%3A100%2C%22formula%22%3A%22wcag2%22%7D

@jesselcampbell jesselcampbell added bug Something isn't working UI Issues related to the Leonardo web interface labels Apr 3, 2023
@damiankorcz
Copy link

I've also encountered this issue.
Here is a link that doesn't load for me:
https://leonardocolor.io/theme.html?name=Prism+-+Periwinkle&config=%7B%22baseScale%22%3A%22blue%22%2C%22colorScales%22%3A%5B%7B%22name%22%3A%22grey%22%2C%22colorKeys%22%3A%5B%22%23333333%22%5D%2C%22colorspace%22%3A%22HSLuv%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Atrue%7D%2C%7B%22name%22%3A%22red%22%2C%22colorKeys%22%3A%5B%22%23df2020%22%5D%2C%22colorspace%22%3A%22OKLCH%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Afalse%7D%2C%7B%22name%22%3A%22orange%22%2C%22colorKeys%22%3A%5B%22%23ec8713%22%5D%2C%22colorspace%22%3A%22OKLCH%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Afalse%7D%2C%7B%22name%22%3A%22yellow%22%2C%22colorKeys%22%3A%5B%22%23f0c742%22%2C%22%23805100%22%5D%2C%22colorspace%22%3A%22HSLuv%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Afalse%7D%2C%7B%22name%22%3A%22green%22%2C%22colorKeys%22%3A%5B%22%2371c639%22%5D%2C%22colorspace%22%3A%22OKLCH%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Afalse%7D%2C%7B%22name%22%3A%22mint%22%2C%22colorKeys%22%3A%5B%22%233cdda7%22%5D%2C%22colorspace%22%3A%22OKLCH%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Afalse%7D%2C%7B%22name%22%3A%22cyan%22%2C%22colorKeys%22%3A%5B%22%233cd2dd%22%5D%2C%22colorspace%22%3A%22OKLCH%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Afalse%7D%2C%7B%22name%22%3A%22blue%22%2C%22colorKeys%22%3A%5B%22%232059df%22%5D%2C%22colorspace%22%3A%22OKLCH%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Afalse%7D%2C%7B%22name%22%3A%22purple%22%2C%22colorKeys%22%3A%5B%22%237513ec%22%5D%2C%22colorspace%22%3A%22OKLCH%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Afalse%7D%2C%7B%22name%22%3A%22pink%22%2C%22colorKeys%22%3A%5B%22%23d926a0%22%5D%2C%22colorspace%22%3A%22OKLCH%22%2C%22ratios%22%3A%5B%229%22%2C%2235%22%2C%2270%22%5D%2C%22smooth%22%3Afalse%7D%5D%2C%22lightness%22%3A96%2C%22contrast%22%3A0.95%2C%22saturation%22%3A95%2C%22formula%22%3A%22wcag3%22%7D

@GarthDB
Copy link
Member

GarthDB commented Sep 19, 2023

Looking at the console, it looks like there's something wrong with at least one of the hex colors in the URL.

To make debugging easier, I converted the URL strings to a data object.

@jesselcampbell here is yours:

config = {
  baseScale: "Sky",
  colorScales: [
    {
      name: "Sky",
      colorKeys: ["#bbd2ec", "#837afa"],
      colorspace: "OKLCH",
      ratios: [
        "1.025",
        "1.125",
        "1.25",
        "1.75",
        "2.5",
        "3.25",
        "4.5",
        "7",
        "9.25",
        "13",
        "18",
      ],
      smooth: false,
    },
  ],
  lightness: 100,
  contrast: 1,
  saturation: 100,
  formula: "wcag2",
};

@damiankorcz here is yours:

let config = {
  baseScale: "blue",
  colorScales: [
    {
      name: "grey",
      colorKeys: ["#333333"],
      colorspace: "HSLuv",
      ratios: ["9", "35", "70"],
      smooth: true,
    },
    {
      name: "red",
      colorKeys: ["#df2020"],
      colorspace: "OKLCH",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "orange",
      colorKeys: ["#ec8713"],
      colorspace: "OKLCH",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "yellow",
      colorKeys: ["#f0c742", "#805100"],
      colorspace: "HSLuv",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "green",
      colorKeys: ["#71c639"],
      colorspace: "OKLCH",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "mint",
      colorKeys: ["#3cdda7"],
      colorspace: "OKLCH",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "cyan",
      colorKeys: ["#3cd2dd"],
      colorspace: "OKLCH",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "blue",
      colorKeys: ["#2059df"],
      colorspace: "OKLCH",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "purple",
      colorKeys: ["#7513ec"],
      colorspace: "OKLCH",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "pink",
      colorKeys: ["#d926a0"],
      colorspace: "OKLCH",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
  ],
  lightness: 96,
  contrast: 0.95,
  saturation: 95,
  formula: "wcag3",
};

@GarthDB
Copy link
Member

GarthDB commented Sep 19, 2023

@jesselcampbell I think it's the OKLCH colorspace that's causing the issue. If I change your URL data to RGB, it loads:

This URL uses this data:

config = {
  baseScale: "Sky",
  colorScales: [
    {
      name: "Sky",
      colorKeys: ["#bbd2ec", "#837afa"],
      colorspace: "RGB",
      ratios: [
        "1.025",
        "1.125",
        "1.25",
        "1.75",
        "2.5",
        "3.25",
        "4.5",
        "7",
        "9.25",
        "13",
        "18",
      ],
      smooth: false,
    },
  ],
  lightness: 100,
  contrast: 1,
  saturation: 100,
  formula: "wcag2",
};

@GarthDB
Copy link
Member

GarthDB commented Sep 19, 2023

@damiankorcz same issue with your url - leonardo is converting the color to an RGB colorspace in the config (as a hex color), but it isn't changing the colorspace to RGB, so it's failing to trying to load an RGB color in a different color space. If I convert your data to use the RGB colorspace, it loads.

Here's that updated URL using this data:

config = {
  baseScale: "blue",
  colorScales: [
    {
      name: "grey",
      colorKeys: ["#333333"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: true,
    },
    {
      name: "red",
      colorKeys: ["#df2020"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "orange",
      colorKeys: ["#ec8713"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "yellow",
      colorKeys: ["#f0c742", "#805100"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "green",
      colorKeys: ["#71c639"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "mint",
      colorKeys: ["#3cdda7"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "cyan",
      colorKeys: ["#3cd2dd"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "blue",
      colorKeys: ["#2059df"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "purple",
      colorKeys: ["#7513ec"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
    {
      name: "pink",
      colorKeys: ["#d926a0"],
      colorspace: "RGB",
      ratios: ["9", "35", "70"],
      smooth: false,
    },
  ],
  lightness: 96,
  contrast: 0.95,
  saturation: 95,
  formula: "wcag3",
};

@GarthDB
Copy link
Member

GarthDB commented May 15, 2024

@dmthrill, that might have been related to a separate issue, #242 which I fixed this morning. Could you recheck it? Trying your URL now, I'm seeing this:
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working UI Issues related to the Leonardo web interface
Projects
None yet
Development

No branches or pull requests

4 participants