Skip to content

Commit 11da334

Browse files
martinkutterMoOx
authored andcommitted
Added: support for selector transformation (#29)
([#29](#29) - @uniquegestaltung)
1 parent 82d259e commit 11da334

File tree

5 files changed

+32
-0
lines changed

5 files changed

+32
-0
lines changed

README.md

+19
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,25 @@ var out = postcss()
134134
.css
135135
```
136136

137+
#### `selectors` (default: `false`)
138+
139+
Allows calc() usage as part of selectors.
140+
141+
```js
142+
var out = postcss()
143+
.use(calc({selectors: true}))
144+
.process(css)
145+
.css
146+
```
147+
148+
Example:
149+
150+
```css
151+
div[data-size="calc(3*3)"] {
152+
width: 100px;
153+
}
154+
```
155+
137156
---
138157

139158
## Contributing

index.js

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ module.exports = postcss.plugin("postcss-calc", function(options) {
1616
var preserve = options.preserve
1717
var warnWhenCannotResolve = options.warnWhenCannotResolve
1818
var mediaQueries = options.mediaQueries
19+
var selectors = options.selectors
1920

2021
return function(style, result) {
2122
function transformValue(node, property) {
@@ -53,6 +54,9 @@ module.exports = postcss.plugin("postcss-calc", function(options) {
5354
else if (rule.type === "decl") {
5455
return transformValue(rule, "value")
5556
}
57+
else if (selectors && rule.type === "rule") {
58+
return transformValue(rule, "selector")
59+
}
5660
})
5761
}
5862
})

test/fixtures/selector.css

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
div[data-size="calc(3 * 3)"] {}

test/fixtures/selector.expected.css

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
div[data-size="9"] {}

test/index.js

+7
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ test("calc", function(t) {
4949
"should resolve media queries"
5050
)
5151

52+
compareFixtures(
53+
t,
54+
"selector",
55+
{selectors: true},
56+
"should resolve selectors"
57+
)
58+
5259
compareFixtures(
5360
t,
5461
"precision",

0 commit comments

Comments
 (0)