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

Model named colors as Color instances instead of strings #514

Open
oliverklee opened this issue Mar 1, 2024 · 3 comments
Open

Model named colors as Color instances instead of strings #514

oliverklee opened this issue Mar 1, 2024 · 3 comments

Comments

@oliverklee
Copy link
Contributor

#510 (comment)

@JakeQZ JakeQZ changed the title Model names colors as Color instances instead of strings Model named colors as Color instances instead of strings Mar 2, 2024
@JakeQZ
Copy link
Contributor

JakeQZ commented Mar 3, 2024

Looking at the class hierarchy, Color extends CSSFunction extends ValueList extends Value. But a named colour would be neither a CSSFunction nor a ValueList - though would be a Color. Not sure how best to reconcile this. In #353 I suggested the possibility of a Keyword/Identifier type that could represent a any sort of named value, including a named color and a border-style, with the non-specific type simply wrapping a string (of unknown meaning). Something to think about...

@JakeQZ
Copy link
Contributor

JakeQZ commented Mar 3, 2024

Not sure how best to reconcile this.

Maybe the named colour class type would need to be quite separate in the class inheritance hierarchy, focusing more on how it is parsed than what it actually represents. If there's a need to provide common functionality between named colours and RGB colours, an interface could be provided, which both implement. That interface might be Color, with the existing Color being renamed to RgbColor.

These are just thoughts that might help with the design for this change.

@sabberworm
Copy link
Contributor

IMHO named colors should be parsed into rgb colors with an additional flag. On output, these could be rendered to names again using a reverse-lookup table.
Also, we should add format options on whether to prefer outputting colors the way they were input, or as hex, as function, or as named (if possible).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants