- From: Lea Verou via GitHub <sysbot+gh@w3.org>
- Date: Sat, 30 Dec 2023 17:20:45 +0000
- To: public-css-archive@w3.org
LeaVerou has just created a new issue for https://github.com/w3c/csswg-drafts:
== [css-values-4] Allow `inherit` in `calc()` (and friends), `color-mix()`, RCS ==
In #2864 we resolved to add `inherit(property)` to CSS, starting from custom properties.
`inherit()` covers use cases across two main axes:
1. Using the inherited value of property A in property B (verbatim or with a calculation)
2. Doing math on the inherited value
However, for 2 we don’t actually *need* `inherit()`, simply allowing `inherit` in `calc()` would work fine, is more elegant and familiar than `inherit()`, and being more limited it could likely ship earlier, possibly even for regular properties.
One downside is that unlike `inherit()`, it does not allow for providing a fallback value.
## Use cases
_(These are a subset of the [use cases for `inherit()`](https://github.com/w3c/csswg-drafts/issues/2864))_
### Custom property value that depends on parent value
Generic `--depth` ([1](https://twitter.com/plinss/status/1350550362168545280), [2](https://twitter.com/kizmarh/status/1350937936804667394))
With `inherit()`:
```css
* {
--depth: calc(inherit(--depth, 0) + 1);
}
```
With `inherit` (note that the code had to be restructured due to the lack of fallback value):
```css
:root {
--depth: 1;
* {
--depth: calc(inherit + 1);
}
}
```
See also: https://github.com/w3c/csswg-drafts/issues/1962
### Font metrics relative to parent
- #2690
- #2764
With `inherit()`:
```css
strong {
font-weight: clamp(600, 1.2 * inherit(font-weight), 999);
}
```
With `inherit`:
```css
strong {
font-weight: clamp(600, 1.2 * inherit, 999);
}
```
And any other numerical typographic metric that can be specified in CSS, e.g. `font-stretch`, `font-style` (for variable fonts) etc
### A few of the `currentBackgroundColor` use cases
https://github.com/w3c/csswg-drafts/issues/5292
Way fewer use cases than `inherit()` but it could still be useful for creating variations of the parent background color like so:
```css
background-color: color-mix(in oklch, inherit, white 90%);
```
### Matching nested radii for simple cases
https://github.com/w3c/csswg-drafts/issues/7707
```css
.child {
padding: 1em;
border-radius: calc(inherit - 1em);
}
```
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9757 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Saturday, 30 December 2023 17:20:47 UTC