- From: Sebastian Zartner via GitHub <sysbot+gh@w3.org>
- Date: Thu, 29 Aug 2024 11:50:03 +0000
- To: public-css-archive@w3.org
To make progress on this, here's a concrete proposal: Let's introduce a `convert()` function that converts one value into another value. It's syntax should look like this: ```ebnf convert() = convert( <declaration-value>, <conversion-type>, <conversion-unit>? ) ``` where `<conversion-type>` must be a [syntax string](https://drafts.css-houdini.org/css-properties-values-api/#syntax-string) and `<conversion-unit>` a unit string. Which syntax strings are allowed as `<conversion-type>` needs to be discussed. The current use cases would then look like this: * #1026 needs `"<number>"`. E.g. `margin-left: 1.5rem * calc(convert(counter(), "<number>")))` * #542 needs `"<string>". E.g. `background-image: src("http://someimageprovider.com/" + convert(3, "<string>"))` Definition for converting to `<string>`: - From `<integer>`: The integer will be converted including a possible negative sign, e.g. `5` ⇒ `"5"`, `-5` ⇒ `"-5"`. - From `<number>`: The number will be converted including the decimal dot, e.g. `3.1415` ⇒ `"3.1415"`. - From `<dimension>`, `<percentage>`, or `<flex>`: The dimension, percentage, or flexible value will be converted including the value plus a possible negative sign and the unit, e.g. `2em` ⇒ `"2em"`, `1.2s` ⇒ `"1.2s"`, `-90deg` ⇒ `"-90deg"`, `25%` ⇒ `"25%"`, `2fr` ⇒ `"2fr"`. - From `<string>`: No change happens, e.g. `"foo"` ⇒ `"foo"`. Definition for converting to `<number>`: - From `<integer>`: The integer will be converted directly, e.g. `5` ⇒ `5`, `-5` ⇒ `-5`. - From `<number>`: No change happens, e.g. `3.1415` ⇒ `3.1415`. - From `<dimension>`, `<percentage>`, or `<flex>`: The dimension, percentage, or flexible value will be converted by taking its value and stripping away the unit, e.g. `2em` ⇒ `2`, `1.2s` ⇒ `1.2`, `-90deg` ⇒ `-90`, `25%` ⇒ `25`, `2fr` ⇒ `2`. - From `<string>`: In case the string consists of a numeric value, it is converted, e.g. `"2"` ⇒ `2`, `"3.1415"` ⇒ `3.1415`, `"-5"` ⇒ `-5`. Otherwise, the conversion fails and results in an invalid value. Sebastian -- GitHub Notification of comment by SebastianZ Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6408#issuecomment-2317424601 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 29 August 2024 11:50:04 UTC