1 | import { length, percentage } from './dataTypes'
|
2 | import { splitAtTopLevelOnly } from './splitAtTopLevelOnly'
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | export function backgroundSize(value) {
|
23 | let keywordValues = ['cover', 'contain']
|
24 |
|
25 |
|
26 | return splitAtTopLevelOnly(value, ',').every((part) => {
|
27 | let sizes = splitAtTopLevelOnly(part, '_').filter(Boolean)
|
28 | if (sizes.length === 1 && keywordValues.includes(sizes[0])) return true
|
29 |
|
30 | if (sizes.length !== 1 && sizes.length !== 2) return false
|
31 |
|
32 | return sizes.every((size) => length(size) || percentage(size) || size === 'auto')
|
33 | })
|
34 | }
|