postcss-enumerates-in-line 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.img/default_color.png +0 -0
- package/README.md +385 -12
- package/README_EN.md +385 -11
- package/_color.scss +138 -0
- package/index.mjs +196 -34
- package/package.json +1 -1
- package/test/gulp/src/css/app.scss +10 -22
- package/test/postcss/src/css/app.scss +10 -22
|
Binary file
|
package/README.md
CHANGED
|
@@ -5,9 +5,24 @@
|
|
|
5
5
|
|[<img width="24" height="24" align="left" src="README.img/1f1ef-1f1f5.png" alt="🇯🇵"> 日本語](README.md)|[<img width="24" height="24" align="left" src="README.img/1f1fa-1f1f8.png" alt="🇺🇸"> English](README_EN.md)|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
## 更新点: v0.
|
|
8
|
+
## 更新点: v0.3.0
|
|
9
|
+
|
|
10
|
+
- 以下の条件付きCSSプロパティを追加
|
|
11
|
+
+ `hover!`
|
|
12
|
+
+ `dark!`
|
|
13
|
+
+ `mq(<mediaQueries>)!`
|
|
14
|
+
+ `data(<customDataElements>)`
|
|
15
|
+
+ `aria(<ariaAttributes>)`
|
|
16
|
+
- デフォルトカラーを[Flexoki]に変更
|
|
17
|
+
- `_color.scss`を同梱
|
|
18
|
+
- 作成例の`test/gulp/`と`test/postcss/`を更新
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## 実装予定
|
|
22
|
+
|
|
23
|
+
- ユーザー定義ショートハンド機能
|
|
24
|
+
- `[[...]]`構文の改良と、デフォルトカラーにアルファチャンネルを設定できる`color-alpha[[...]]`構文の追加
|
|
9
25
|
|
|
10
|
-
- サンプルのパッケージ読み込みを[npmjs.com](https://www.npmjs.com/)経由に変更
|
|
11
26
|
|
|
12
27
|
---
|
|
13
28
|
|
|
@@ -39,12 +54,22 @@
|
|
|
39
54
|
>
|
|
40
55
|
> `:`記号の前がプロパティ名、後ろがプロパティ値になっています。
|
|
41
56
|
> ホワイトスペースはプロパティの区切り文字であるため、プロパティ値に半角スペース記号を使いたい場合は`^`で代用します。
|
|
42
|
-
>
|
|
43
|
-
> 詳しい書式は目次の次へお進みください。
|
|
44
57
|
|
|
45
|
-
|
|
58
|
+
~~プロパティの列挙を目的としているため、hoverのような状態遷移・メディアクエリ・ダークモードなどへの対応はしません。~~
|
|
46
59
|
|
|
47
|
-
|
|
60
|
+
~~> [Tailwind CSS]における`hover:`・`md:`・`dark:`などに対応する機能は備えていないという意味です。~~
|
|
61
|
+
|
|
62
|
+
☑️version 0.3.0以上
|
|
63
|
+
|
|
64
|
+
またCSSプロパティ名の先頭に以下の書式を加筆することで、条件付きCSSプロパティに対応することができます。
|
|
65
|
+
|
|
66
|
+
- `hover!`: :hover
|
|
67
|
+
- `dark!`: :root.dark
|
|
68
|
+
- `mq(<mediaQueries>)!`: @media screen and <mediaQueries>
|
|
69
|
+
- `data(<customDataElements>)!`: [data-<customDataElement>]
|
|
70
|
+
- `aria(<ariaAttributes>)!`: [aria-<ariaAttributes>]
|
|
71
|
+
|
|
72
|
+
> 詳しい書式は目次の次へお進みください。
|
|
48
73
|
|
|
49
74
|
基本的には[gulp]および[gulp-postcss]での動作を想定していますが、JS-APIによるPostCSS単体でも動作します。
|
|
50
75
|
|
|
@@ -53,6 +78,7 @@
|
|
|
53
78
|
[SCSS]: https://sass-lang.com/
|
|
54
79
|
[gulp]: https://gulpjs.com/
|
|
55
80
|
[gulp-postcss]: https://github.com/postcss/gulp-postcss
|
|
81
|
+
[Flexoki]: https://stephango.com/flexoki
|
|
56
82
|
|
|
57
83
|
<div class="x--hr"></div>
|
|
58
84
|
|
|
@@ -60,14 +86,22 @@
|
|
|
60
86
|
## 目次
|
|
61
87
|
|
|
62
88
|
- [PostCSS Enumerates in Line](#postcss-enumerates-in-line)
|
|
63
|
-
- [更新点: v0.
|
|
89
|
+
- [更新点: v0.3.0](#更新点-v030)
|
|
90
|
+
- [実装予定](#実装予定)
|
|
64
91
|
- [目次](#目次)
|
|
65
92
|
- [CSSでの記述方法](#cssでの記述方法)
|
|
93
|
+
- [条件付き書式](#条件付き書式)
|
|
94
|
+
- [ダークモード](#ダークモード)
|
|
95
|
+
- [マウスオーバー](#マウスオーバー)
|
|
96
|
+
- [メディアクエリ](#メディアクエリ)
|
|
97
|
+
- [カスタムデータ属性](#カスタムデータ属性)
|
|
98
|
+
- [ARIA属性](#aria属性)
|
|
66
99
|
- [特殊な記号](#特殊な記号)
|
|
67
100
|
- [コロン記号](#コロン記号)
|
|
68
101
|
- [エクスクラメーション記号](#エクスクラメーション記号)
|
|
69
102
|
- [サーカムフレックス記号](#サーカムフレックス記号)
|
|
70
103
|
- [二重角括弧記号](#二重角括弧記号)
|
|
104
|
+
- [デフォルトカラー](#デフォルトカラー)
|
|
71
105
|
- [プロパティ名のショートハンド](#プロパティ名のショートハンド)
|
|
72
106
|
- [プラグインを使用する方法](#プラグインを使用する方法)
|
|
73
107
|
- [gulpでの使い方](#gulpでの使い方)
|
|
@@ -100,7 +134,7 @@ html {
|
|
|
100
134
|
@enums background-color:#000 color:#fff;
|
|
101
135
|
|
|
102
136
|
h1 {
|
|
103
|
-
@enums font-size:100
|
|
137
|
+
@enums font-size:100% hover!color:red;
|
|
104
138
|
}
|
|
105
139
|
}
|
|
106
140
|
```
|
|
@@ -116,6 +150,303 @@ CSSスタイル宣言についても単純で、「`プロパティ名`・`半
|
|
|
116
150
|
プロパティ値は任意の値を取ることができるため、`border:1px^#888^solid`など自由な指示をすることができるでしょう。
|
|
117
151
|
|
|
118
152
|
|
|
153
|
+
### 条件付き書式
|
|
154
|
+
|
|
155
|
+
```scss
|
|
156
|
+
h1 {
|
|
157
|
+
@emums data(visible="hidden")!display:none
|
|
158
|
+
ct:blue hover!ct:red
|
|
159
|
+
cb:white dark!cb:black
|
|
160
|
+
mq(width:1000px-)!mx:auto;
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
上記のように`条件付き書式!CSSプロパティ名:CSSプロパティ値`と記法を拡張することができます。
|
|
165
|
+
|
|
166
|
+
`hover!`, `dark!`, `mq(...)!`, `data(...)!`, `aria(...)!`はそれぞれ重ね掛けが可能です。
|
|
167
|
+
|
|
168
|
+
```scss
|
|
169
|
+
h1 {
|
|
170
|
+
@enums dark!hover!ct:red;
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
ただしこれら条件付き書式は1つのCSSプロパティにつき1種しか設定できないため、`mq(...)!`・`data(...)!`・`aria(...)!`を連続して記述できません。
|
|
175
|
+
|
|
176
|
+
列挙する場合は`(`・`)`の中で、`,`を使ってください。
|
|
177
|
+
|
|
178
|
+
同種の条件付き書式を重複させた場合、最初のものだけが適用され、残りの指定内容は無視されます。
|
|
179
|
+
|
|
180
|
+
```scss
|
|
181
|
+
/* ❌️NG */
|
|
182
|
+
h1 {
|
|
183
|
+
@enums mq(width:-640px)!mq(orientation:portrait)!m2:auto
|
|
184
|
+
data(state="succeed")!data(target-href^="https://")!text-indent:1rem;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* ⭕️OK */
|
|
188
|
+
h1 {
|
|
189
|
+
@enums mq(width:-640px,orientation:portrait)!m2:auto
|
|
190
|
+
data(state="succeed",target-href^="https://")!text-indent:1rem;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/* 🙂Unzip */
|
|
194
|
+
@media screen and (max-width: 640px) and (orientation: portrait) {
|
|
195
|
+
h1 {
|
|
196
|
+
margin-bottom: auto;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
h1[data-state="succeed"][data-target-href^="https://"] {
|
|
200
|
+
text-indent: 1rem;
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
#### ダークモード
|
|
206
|
+
|
|
207
|
+
条件付き書式`dark!`を使うと、`root:`(html要素)に`dark`クラスが存在するかどうかで判定できるようになります。
|
|
208
|
+
|
|
209
|
+
```scss
|
|
210
|
+
/* 🚧Before */
|
|
211
|
+
h1 {
|
|
212
|
+
@emums cb:white dark!cb:black;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* 🚀After */
|
|
216
|
+
h1 {
|
|
217
|
+
background-color: white;
|
|
218
|
+
}
|
|
219
|
+
:root.dark h1 {
|
|
220
|
+
background-color: black;
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
#### マウスオーバー
|
|
226
|
+
|
|
227
|
+
条件付き書式`hover!`を使うと、`:hover`(マウスオーバー状態)擬似クラスを追加できます。
|
|
228
|
+
|
|
229
|
+
```scss
|
|
230
|
+
/* 🚧Before */
|
|
231
|
+
h1 {
|
|
232
|
+
@emums ct:blue hover!ct:red;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/* 🚀After */
|
|
236
|
+
h1 {
|
|
237
|
+
color: blue;
|
|
238
|
+
}
|
|
239
|
+
h1:hover {
|
|
240
|
+
color: red;
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
#### メディアクエリ
|
|
246
|
+
|
|
247
|
+
条件付き書式`mq(<mediaQueries>)!`を使うと、`@media`ルールの中に入れることができます。
|
|
248
|
+
|
|
249
|
+
複数のメディアクエリを組み合わせる場合は、`,`で区切ります。
|
|
250
|
+
|
|
251
|
+
```scss
|
|
252
|
+
/* 🚧Before */
|
|
253
|
+
h1 {
|
|
254
|
+
@emums mq(width:1000px-)!m2:auto
|
|
255
|
+
mq(height:-1000px,aspect-ratio:1-)!p:1.5rem;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/* 🚀After */
|
|
259
|
+
@media screen and (min-width: 1000px) {
|
|
260
|
+
h1 {
|
|
261
|
+
margin-bottom: auto;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
@media screen and (max-height: 1000px) and (min-aspect-ratio: 1) {
|
|
265
|
+
h1 {
|
|
266
|
+
padding: 1.5rem;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
`mq(...)`関数の引数となるメディアクエリは、`メディア特性`・`:`・`条件値`の組み合わせになっています。
|
|
272
|
+
|
|
273
|
+
利用可能なメディア特性は次の通りですが、条件値によって出力される実際のメディア特性が変化します。
|
|
274
|
+
|
|
275
|
+
- `orientation`: orientation
|
|
276
|
+
- `width`: width, min-width, max-width
|
|
277
|
+
- `height`: height, min-height, max-height
|
|
278
|
+
- `aspect-ratio`: aspect-ratio, min-aspect-ratio, max-aspect-ratio
|
|
279
|
+
|
|
280
|
+
> `orientation`に指定可能な条件値は、`portrait`(縦長または正方形)と`landscape`(横長)のいずれかのみです。
|
|
281
|
+
|
|
282
|
+
```scss
|
|
283
|
+
body {
|
|
284
|
+
@enums
|
|
285
|
+
mq(orientation:portrait)!m2:1rem
|
|
286
|
+
mq(orientation:landscape)!m8:1rem
|
|
287
|
+
;
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
> `width`に指定可能な条件値は、`-<length>`・`<length>-<length>`・`<length>-`の3種類です。
|
|
292
|
+
>
|
|
293
|
+
> `<length>`に指定可能なのは`px`・`rem`・`vw`など長さに関わる値です。
|
|
294
|
+
>
|
|
295
|
+
> + 1つのみある`<length>`の前に`-`を付けた場合、`<length>`以下のメディアクエリを意味します(適用されるメディア特性は`max-width`)
|
|
296
|
+
> + 2つの`<length>`を`-`で接続した場合、その区間以内であるメディアクエリを意味します(適用されるメディア特性は`min-width`と`max-width`)
|
|
297
|
+
> + 1つのみある`<length>`の後ろに`-`を付けた場合、`<length>`以上のメディアクエリを意味します(適用されるメディア特性は`min-width`)
|
|
298
|
+
|
|
299
|
+
```scss
|
|
300
|
+
body {
|
|
301
|
+
@enums
|
|
302
|
+
mq(width:-480px)!m2:1rem
|
|
303
|
+
mq(width:640px-1024px)!mx:1rem
|
|
304
|
+
mq(width:1280px)!m8:1rem
|
|
305
|
+
;
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
> `height`に指定可能な条件値、および動作は`width`と同じです。
|
|
310
|
+
>
|
|
311
|
+
> ただし適用されるメディア特性は、`height`・`min-height`・`max-height`に変化します。
|
|
312
|
+
|
|
313
|
+
```scss
|
|
314
|
+
body {
|
|
315
|
+
@enums
|
|
316
|
+
mq(height:-480px)!m2:1rem
|
|
317
|
+
mq(height:640px-1024px)!mx:1rem
|
|
318
|
+
mq(height:1280px)!m8:1rem
|
|
319
|
+
;
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
> `aspect-ratio`に指定可能な条件値は、`整数値`(1など)または`小数値`(0.85など)です。
|
|
324
|
+
>
|
|
325
|
+
> `@media (aspect-ratio: 16/9)`のような除算記号(`/`)を使った表記はできません。
|
|
326
|
+
>
|
|
327
|
+
> `width`・`height`に似た表記が可能で、`-<number>`・`<number>-<number>`・`<number>-`の3種類と`<number>`が実際に指定可能な条件値です。
|
|
328
|
+
>
|
|
329
|
+
> + 1つのみある`<number>`の前に`-`を付けた場合、`<number>`以下のメディアクエリを意味します(適用されるメディア特性は`max-aspect-ratio`)
|
|
330
|
+
> + 2つの`<number>`を`-`で接続した場合、その区間以内であるメディアクエリを意味します(適用されるメディア特性は`min-aspect-ratio`と`max-aspect-ratio`)
|
|
331
|
+
> + 1つのみある`<number>`の後ろに`-`を付けた場合、`<number>`以上のメディアクエリを意味します(適用されるメディア特性は`min-aspect-ratio`)
|
|
332
|
+
> + `<number>`が1つのみあって`-`がない場合、アスペクト比が`<number>`とまったく等しい状態を意味します(適用されるメディア特性は`aspect-ratio`)
|
|
333
|
+
|
|
334
|
+
```scss
|
|
335
|
+
body {
|
|
336
|
+
@enums
|
|
337
|
+
mq(aspect-ratio:-0.5)!m2:1rem
|
|
338
|
+
mq(aspect-ratio:0.55-0.95)!mx:1rem
|
|
339
|
+
mq(aspect-ratio:1.25-)!m8:1rem
|
|
340
|
+
mq(aspect-ratio:1)!p:1rem
|
|
341
|
+
;
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
#### カスタムデータ属性
|
|
347
|
+
|
|
348
|
+
条件付き書式`data(<customDataElements>)!`を使うと、`[data-foo="bar"]`のようなカスタムデータによる属性セレクターを追加できます。
|
|
349
|
+
|
|
350
|
+
複数の属性セレクターを組み合わせる場合は、`,`で区切ります。
|
|
351
|
+
|
|
352
|
+
```scss
|
|
353
|
+
/* 🚧Before */
|
|
354
|
+
h1 {
|
|
355
|
+
@emums data(visible="hidden")!display:none;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/* 🚀After */
|
|
359
|
+
h1[data-visible="hidden"] {
|
|
360
|
+
display: none;
|
|
361
|
+
}
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
属性セレクターは`属性名`、または`属性名`・`条件演算子`・`属性データ`の組み合わせになっています。
|
|
365
|
+
|
|
366
|
+
属性名が存在することだけを条件にする場合は、`条件演算子`と`属性データ`を必要としません。
|
|
367
|
+
|
|
368
|
+
```scss
|
|
369
|
+
/* 🚧Before */
|
|
370
|
+
h1 {
|
|
371
|
+
@enums data(loading)!display:none
|
|
372
|
+
data(is-empty="false")!m8:1rem;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/* 🚀After */
|
|
376
|
+
h1[data-loading] {
|
|
377
|
+
display: none;
|
|
378
|
+
}
|
|
379
|
+
h1[data-is-empty="false"] {
|
|
380
|
+
margin-top: 1rem;
|
|
381
|
+
}
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
> 属性名には`data-`に続く文字列を指定します。
|
|
385
|
+
>
|
|
386
|
+
> 具体的には`/[A-Za-z\d_\-]/`の文字が使用可能ですが、属性名の始端または終端を`-`の文字列とすることはできません。
|
|
387
|
+
|
|
388
|
+
> 条件演算子には次の種類を使用することができます。
|
|
389
|
+
> + `=`: 属性データと一致する場合(`[data-foo="bar"]`)
|
|
390
|
+
> + `~=`: 属性データが空白記号区切りリストであり、その中の1つと一致する場合(`[data-tags~="ipsum"]`, `<span data-tags="lorem ipsum dolor sit amet"></span>`)
|
|
391
|
+
> + `^=`: 属性データの文字列で始まる場合(`[data-href^="https://"]`)
|
|
392
|
+
> + `$=`: 属性データの文字列で終わる場合(`[data-href$=".webp"]`)
|
|
393
|
+
> + `*=`: 属性データの文字列を含む場合(`[data-alphabet*="bcdef"]`)
|
|
394
|
+
> + `|=`: 属性データと一致する文字列で始まり、かつその後ろに半角ハイフン記号を伴う場合(`[data-lang|="en"]`)
|
|
395
|
+
>
|
|
396
|
+
> > 言語タグとして`en-US`や`en-GB`など、ISO 639 + ISO 3166による表現を行う場合に利用されることの多い表現です。
|
|
397
|
+
|
|
398
|
+
> 属性データは、`"`または`'`で囲まれている必要があります。
|
|
399
|
+
>
|
|
400
|
+
> このため引用符を使う場合は注意してください。
|
|
401
|
+
>
|
|
402
|
+
> またパッケージの内部処理により、以下の文字が属性データに含まれる場合はパーセントエンコーディングを行います。
|
|
403
|
+
> + `%`: %25
|
|
404
|
+
> + `"`: %22
|
|
405
|
+
> + `'`: %27
|
|
406
|
+
> + ```: %60
|
|
407
|
+
> + `\`: %5D
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
#### ARIA属性
|
|
411
|
+
|
|
412
|
+
条件付き書式`aria(<ariaAttributes>)!`を使うと、`[aria-label="heading"]`のようなARIA属性によるセレクターを追加できます。
|
|
413
|
+
|
|
414
|
+
複数の属性セレクターを組み合わせる場合は、`,`で区切ります。
|
|
415
|
+
|
|
416
|
+
```scss
|
|
417
|
+
/* 🚧Before */
|
|
418
|
+
h1 {
|
|
419
|
+
@emums aria(label="heading")!fs:1.5rem;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/* 🚀After */
|
|
423
|
+
h1[aria-label="heading"] {
|
|
424
|
+
font-size: 1.5rem;
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
属性セレクターは`属性名`・`=`・`属性データ`の組み合わせになっています。
|
|
429
|
+
|
|
430
|
+
> 属性名には`aria-`に続く文字列を指定します。
|
|
431
|
+
>
|
|
432
|
+
> `/[a-z]/`の文字しか使うことはできません。
|
|
433
|
+
|
|
434
|
+
> 条件演算子は現在`=`のみを有効にしています。
|
|
435
|
+
>
|
|
436
|
+
> 必要になれば`data(...)!`と同等の条件にまで拡張するかもしれません。
|
|
437
|
+
|
|
438
|
+
> 属性データは、`"`または`'`で囲まれている必要があります。
|
|
439
|
+
>
|
|
440
|
+
> このため引用符を使う場合は注意してください。
|
|
441
|
+
>
|
|
442
|
+
> またパッケージの内部処理により、以下の文字が属性データに含まれる場合はパーセントエンコーディングを行います。
|
|
443
|
+
> + `%`: %25
|
|
444
|
+
> + `"`: %22
|
|
445
|
+
> + `'`: %27
|
|
446
|
+
> + ```: %60
|
|
447
|
+
> + `\`: %5D
|
|
448
|
+
|
|
449
|
+
|
|
119
450
|
### 特殊な記号
|
|
120
451
|
|
|
121
452
|
特殊な振る舞いを起こす文字は、`:`・`^`・`!`・`[[`・`]]`の5種類です。
|
|
@@ -134,6 +465,8 @@ CSSスタイル宣言についても単純で、「`プロパティ名`・`半
|
|
|
134
465
|
|
|
135
466
|
`padding-top:1rem!`などのようにして、`!`記号をプロパティ値の末尾に付けると`!important`宣言をしたことになります。
|
|
136
467
|
|
|
468
|
+
> 条件付き書式の`!`とは働きが異なるためご注意ください。
|
|
469
|
+
|
|
137
470
|
|
|
138
471
|
#### サーカムフレックス記号
|
|
139
472
|
|
|
@@ -173,7 +506,7 @@ CSSスタイル宣言についても単純で、「`プロパティ名`・`半
|
|
|
173
506
|
`width:calc(100vw^-^(100%^+^2rem)^*^2^+^1rem)`のような記述は視覚的ではないため、`[[`と`]]`に囲んだ中であれば`width:calc[[100vw-(100%+2rem)*(2)+1rem]]`としてサーカムフレックス記号を省くことができます。
|
|
174
507
|
|
|
175
508
|
> `var`関数など算術関数でないものに`[[`・`]]`記号は使わないでください。
|
|
176
|
-
>
|
|
509
|
+
>
|
|
177
510
|
> 例えば`var(--foo-bar)`が誤変換されて、`var(--foo - bar)`のようにして意味のないCSSへと破壊されてしまうためです。
|
|
178
511
|
|
|
179
512
|
しかし変換書式を改善中であるため、意図したように演算子の両端へ正常に空白記号が挿入されない可能性があります。
|
|
@@ -181,6 +514,46 @@ CSSスタイル宣言についても単純で、「`プロパティ名`・`半
|
|
|
181
514
|
こうした場合でも`^`記号を補えば正常な算術関数へと修正できるのですが、より確実な手段としては`[[`・`]]`記号を使わず人力で`^`記号を補う方が間違いは少ないでしょう。
|
|
182
515
|
|
|
183
516
|
|
|
517
|
+
|
|
518
|
+
### デフォルトカラー
|
|
519
|
+
|
|
520
|
+
デフォルトカラーは[Flexoki] v2.0からのフォークです。
|
|
521
|
+
|
|
522
|
+
CSSの`var()`関数を使い、CSS変数から呼び出して使用します。
|
|
523
|
+
|
|
524
|
+
```scss
|
|
525
|
+
body {
|
|
526
|
+
@enums ct:var(--color-red-400);
|
|
527
|
+
}
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
[<img src="README.img/default_color.png" alt="Default color">](README.img/default_color.png)
|
|
531
|
+
|
|
532
|
+
しかし現状では`#RRGGBBAA`書式のアルファチャンネル付き色設定ができないため、`_color.scss`を同梱しています。
|
|
533
|
+
|
|
534
|
+
```scss
|
|
535
|
+
@use '../node_modules/postcss-enumerates-in-line/_color.scss' as c;
|
|
536
|
+
|
|
537
|
+
html {
|
|
538
|
+
color: #{c.$color-red-400}99; // D14D4199
|
|
539
|
+
}
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
> 将来的には`color-alpha[[<color-theme>,<color-depth>,<alpha>,<optional:output-style>]]`関数の実装を予定しています。
|
|
543
|
+
|
|
544
|
+
```scss
|
|
545
|
+
/* 🚧Before */
|
|
546
|
+
html {
|
|
547
|
+
color: color-alpha[[red,400,60%,oklch]];
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
/* 🚀After */
|
|
551
|
+
html {
|
|
552
|
+
color: oklch(0.597 0.1692 28.38 / 60%);
|
|
553
|
+
}
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
|
|
184
557
|
### プロパティ名のショートハンド
|
|
185
558
|
|
|
186
559
|
いくつかのプロパティ名にはショートハンド定義がしてあります。
|
|
@@ -496,7 +869,7 @@ PostCSS処理の配列の中に、`enumSpreader({})`関数を差し込みます
|
|
|
496
869
|
|
|
497
870
|
```css
|
|
498
871
|
:root {
|
|
499
|
-
--
|
|
872
|
+
--color-red-400: hsl(5 61% 53.7%);
|
|
500
873
|
}
|
|
501
874
|
```
|
|
502
875
|
|
|
@@ -506,7 +879,7 @@ PostCSS処理の配列の中に、`enumSpreader({})`関数を差し込みます
|
|
|
506
879
|
|
|
507
880
|
```css
|
|
508
881
|
:root {
|
|
509
|
-
--
|
|
882
|
+
--color-red-400: #D14D41;
|
|
510
883
|
}
|
|
511
884
|
```
|
|
512
885
|
|
|
@@ -514,7 +887,7 @@ PostCSS処理の配列の中に、`enumSpreader({})`関数を差し込みます
|
|
|
514
887
|
|
|
515
888
|
```css
|
|
516
889
|
:root {
|
|
517
|
-
--
|
|
890
|
+
--color-red-400: oklch(0.597 0.1692 28.38);
|
|
518
891
|
}
|
|
519
892
|
```
|
|
520
893
|
|