csstools / csstools/postcss-plugins

Incorrect font-feature-settings on multiple values for font-variant-numeric

Open
#1,546 1 comment 0 reactions 0 assignees View on GitHub
bug plugins/postcss-font-variant upstream
Dominant language
CSS
Stars
1.1k
Forks
83
Avg merge
10h 16m
Merged PRs (30d)
16

Description

### Bug description

When I specify multiple values for `font-variant-numeric`, PostCSS just copies them in `font-feature-settings` which makes feature declarations invalid.

### Source CSS

```css
.lining-nums {
font-variant-numeric: lining-nums;
}

.tabular-nums {
font-variant-numeric: tabular-nums;
}

.tabular-and-lining-nums {
font-variant-numeric: tabular-nums lining-nums;
}
```

### Expected CSS

```css
.lining-nums {
font-feature-settings: "lnum";
font-variant-numeric: lining-nums;
}

.tabular-nums {
font-feature-settings: "tnum";
font-variant-numeric: tabular-nums;
}

.tabular-and-lining-nums {
font-feature-settings: "tnum", "lnum";
font-variant-numeric: tabular-nums lining-nums;
}
```

### Actual CSS

```css
.lining-nums {
font-feature-settings: "lnum";
font-variant-numeric: lining-nums;
}

.tabular-nums {
font-feature-settings: "tnum";
font-variant-numeric: tabular-nums;
}

.tabular-and-lining-nums {
font-feature-settings: tabular-nums lining-nums;
font-variant-numeric: tabular-nums lining-nums;
}
```

### Playgound example

https://preset-env.cssdb.org/playground/#JTdCJTIyc291cmNlJTIyJTNBJTIyLmxpbmluZy1udW1zJTIwJTdCJTVDbiUyMCUyMGZvbnQtdmFyaWFudC1udW1lcmljJTNBJTIwbGluaW5nLW51bXMlM0IlNUNuJTdEJTVDbiU1Q24udGFidWxhci1udW1zJTIwJTdCJTVDbiUyMCUyMGZvbnQtdmFyaWFudC1udW1lcmljJTNBJTIwdGFidWxhci1udW1zJTNCJTVDbiU3RCU1Q24lNUNuLnRhYnVsYXItYW5kLWxpbmluZy1udW1zJTIwJTdCJTVDbiUyMCUyMGZvbnQtdmFyaWFudC1udW1lcmljJTNBJTIwdGFidWxhci1udW1zJTIwbGluaW5nLW51bXMlM0IlNUNuJTdEJTVDbiUyMiUyQyUyMmNvbmZpZyUyMiUzQSU3QiUyMmJyb3dzZXJzJTIyJTNBJTVCJTIyZGVmYXVsdHMlMjIlNUQlMkMlMjJtaW5pbXVtVmVuZG9ySW1wbGVtZW50YXRpb25zJTIyJTNBMCUyQyUyMnN0YWdlJTIyJTNBMiUyQyUyMmxvZ2ljYWwlMjIlM0ElN0IlMjJpbmxpbmVEaXJlY3Rpb24lMjIlM0ElMjJsZWZ0LXRvLXJpZ2h0JTIyJTJDJTIyYmxvY2tEaXJlY3Rpb24lMjIlM0ElMjJ0b3AtdG8tYm90dG9tJTIyJTdEJTJDJTIycHJlc2VydmUlMjIlM0F0cnVlJTdEJTdE

### Does it happen with `npx @csstools/csstools-cli minimal-example.css`?

N/A

### Debug output

_No response_

### Extra config

_No response_

### What plugin are you experiencing this issue on?

PostCSS Preset Env

### Plugin version

10.1.3

### What OS are you experiencing this on?

macOS

### Node Version

23.5.0

### Validations

- [X] Follow our [Code of Conduct](https://github.com/csstools/postcss-plugins/blob/master/CODE_OF_CONDUCT.md)
- [X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

### Would you like to open a PR for this bug?

- [ ] I'm willing to open a PR

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.