- From: Sebastian Zartner via GitHub <sysbot+gh@w3.org>
- Date: Wed, 05 Mar 2025 22:22:06 +0000
- To: public-css-archive@w3.org
With explicit type conversion as discussed in #6408, I think your examples would look different.
```css
progress::fill {
inline-size: convert(calc(convert(content-value(), <number>) * 100), <percentage>);
}
```
and
```css
input[type=color]::color-swatch {
background-color: convert(content-value(), <color>);
}
```
Note that there is no need for a `type()` function. And as @nt1m pointed out in the previous comment, it also isn't part of the draft spec.
With the type attribute from the spec., those examples should look like this:
```css
progress::fill {
inline-size: convert(calc(content-value(<number>) * 100), <percentage>);
}
```
and
```css
input[type=color]::color-swatch {
background-color: content-value(<color>);
}
```
-----
Though maybe it is also possible to make the return value of the function context-sensitive, i.e. let it return a `<number>` value for `<progress>`, `<input type="range">` and other elements, a `<color>` value for `<input type="color">`, a `<url>` value for `<input type="url">`, etc.
With that, you could skip the explicit type definition/conversion for the `content-value()` function for the given use cases and write this:
```css
progress::fill {
inline-size: convert(calc(content-value() * 100), <percentage>);
}
```
and
```css
input[type=color]::color-swatch {
background-color: content-value();
}
```
Sebastian
--
GitHub Notification of comment by SebastianZ
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/11842#issuecomment-2702211969 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Wednesday, 5 March 2025 22:22:07 UTC