@thi.ng/meta-css 0.5.0 → 0.6.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/CHANGELOG.md +21 -1
- package/README.md +223 -123
- package/index.js +6 -6
- package/package.json +15 -15
- package/specs/anim.mcss.json +44 -0
- package/specs/{aspect.json → aspect.mcss.json} +29 -7
- package/specs/{borders.json → borders.mcss.json} +4 -4
- package/specs/{colors.json → colors.mcss.json} +59 -13
- package/specs/content.mcss.json +10 -0
- package/specs/{dimensions.json → dimensions.mcss.json} +11 -10
- package/specs/display.mcss.json +28 -0
- package/specs/flex.mcss.json +39 -0
- package/specs/{grids.json → grids.mcss.json} +10 -10
- package/specs/{icons.json → icons.mcss.json} +1 -1
- package/specs/margins.mcss.json +52 -0
- package/specs/{normalize.json → normalize.mcss.json} +1 -0
- package/specs/{overflows.json → overflows.mcss.json} +1 -1
- package/specs/{positions.json → positions.mcss.json} +1 -1
- package/specs/print.mcss.json +25 -0
- package/specs/scroll.mcss.json +24 -0
- package/specs/{shadows.json → shadows.mcss.json} +3 -3
- package/specs/{typography.json → typography.mcss.json} +1 -1
- package/specs/anim.json +0 -21
- package/specs/display.json +0 -28
- package/specs/margins.json +0 -32
- /package/specs/{_info.json → _info.mcss.json} +0 -0
- /package/specs/{a11y.json → a11y.mcss.json} +0 -0
- /package/specs/{background.json → background.mcss.json} +0 -0
- /package/specs/{cursor.json → cursor.mcss.json} +0 -0
- /package/specs/{lists.json → lists.mcss.json} +0 -0
- /package/specs/{selection.json → selection.mcss.json} +0 -0
package/README.md
CHANGED
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|

|
|
8
8
|
[](https://mastodon.thi.ng/@toxi)
|
|
9
9
|
|
|
10
|
-
This project
|
|
11
|
-
[@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo and
|
|
10
|
+
This is a standalone project, maintained as part of the
|
|
11
|
+
[@thi.ng/umbrella](https://github.com/thi-ng/umbrella/) monorepo and
|
|
12
|
+
anti-framework.
|
|
12
13
|
|
|
13
14
|
- [About](#about)
|
|
14
15
|
- [Generating CSS frameworks](#generating-css-frameworks)
|
|
@@ -21,6 +22,7 @@ This project is part of the
|
|
|
21
22
|
- [Properties](#properties)
|
|
22
23
|
- [Key value generation](#key-value-generation)
|
|
23
24
|
- [Media query definitions](#media-query-definitions)
|
|
25
|
+
- [Custom declarations](#custom-declarations)
|
|
24
26
|
- [Converting meta stylesheets to CSS](#converting-meta-stylesheets-to-css)
|
|
25
27
|
- [Meta-stylesheets syntax](#meta-stylesheets-syntax)
|
|
26
28
|
- [Class identifiers & media query prefixes](#class-identifiers--media-query-prefixes)
|
|
@@ -44,42 +46,52 @@ This project is part of the
|
|
|
44
46
|
|
|
45
47
|
Data-driven CSS framework codegen, transpiler & bundler.
|
|
46
48
|
|
|
47
|
-
This
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
This toolkit (started as experiment in 2016) and the overall design approach and
|
|
50
|
+
workflows proposed by it are heavily building atop the concept of _CSS utility
|
|
51
|
+
classes_ (as known from [Tachyons](https://tachyons.io/),
|
|
52
|
+
[Turret](https://turretcss.com/) or the newer
|
|
53
|
+
[Tailwind](https://tailwindcss.com/) projects). How and where those CSS classes
|
|
54
|
+
are defined and later applied is however a major defining point of difference to
|
|
55
|
+
these other existing approaches and will be explained in this document. To
|
|
56
|
+
remove the need for any complex & bloated CSS-related dependencies (parsers
|
|
57
|
+
etc.) and to simplify building secondary tooling (e.g. part of this readme is an
|
|
58
|
+
[auto-generated report of the included base framework
|
|
59
|
+
specs](#bundled-css-base-framework)), we're using JSON — rather than CSS — as
|
|
60
|
+
data format to: 1) express the _generative_ rules to define all the CSS classes,
|
|
61
|
+
declarations, media query criteria which are forming a framework and
|
|
62
|
+
2) as intermediate data format for a generated CSS framework itself. **The
|
|
63
|
+
entire toolkit (incl. all bundled dependencies) is currently only 32KB!**
|
|
56
64
|
|
|
57
65
|
This readme aims to provide a thorough overview of this toolchain and some
|
|
58
66
|
concrete usage examples...
|
|
59
67
|
|
|
60
68
|
Note: In all cases, final CSS generation itself is handled by
|
|
61
69
|
[thi.ng/hiccup-css](https://github.com/thi-ng/umbrella/blob/develop/packages/hiccup-css/).
|
|
70
|
+
Please see its readme for further useful information.
|
|
62
71
|
|
|
63
|
-
**👷🏻 This is all WIP!**
|
|
72
|
+
**👷🏻 This is all WIP!** See included & [linked examples](#usage-examples) for
|
|
73
|
+
concrete usage...
|
|
64
74
|
|
|
65
75
|
## Generating CSS frameworks
|
|
66
76
|
|
|
67
|
-
The `generate` command is used to generate custom frameworks with (likely)
|
|
68
|
-
hundreds of
|
|
69
|
-
JSON rule specs. This process generates all desired, combinatorial
|
|
70
|
-
various rules/declarations and exports them to
|
|
71
|
-
intermediary for the other commands provided by this toolchain.
|
|
72
|
-
[syntax/format of the generator rules](#framework-generation-specs--syntax)
|
|
73
|
-
further on. These
|
|
74
|
-
handling, can define [
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
are
|
|
82
|
-
|
|
77
|
+
The `generate` command is used to generate custom CSS frameworks with (likely)
|
|
78
|
+
hundreds of utility classes, all derived from a number of extremely compact,
|
|
79
|
+
parametric JSON rule specs. This process generates all desired, combinatorial
|
|
80
|
+
versions of various rules/declarations and exports them to a framework JSON file
|
|
81
|
+
used as intermediary stage for the other commands provided by this toolchain.
|
|
82
|
+
The [syntax/format of the generator rules](#framework-generation-specs--syntax)
|
|
83
|
+
is explained further on. These framework specs can be split up into multiple
|
|
84
|
+
files for better handling and organization, can define [CSS base
|
|
85
|
+
declarations](#custom-declarations) (e.g. for normalization purposes),
|
|
86
|
+
[arbitrary media query criteria](#media-query-definitions) (all later
|
|
87
|
+
combinable), shared lookup tables for colors, margins, sizes, timings etc.
|
|
88
|
+
|
|
89
|
+
The package includes dozens of generator specs for a basic, fully customizable,
|
|
90
|
+
Tachyons-derived [CSS framework](#bundled-css-base-framework). These specs and
|
|
91
|
+
resulting framework are still being worked on and are used for some example
|
|
92
|
+
projects in this repo, but are mostly intended as basic starting points for
|
|
93
|
+
creating other custom frameworks (_in the hope some useful specs will be shared back
|
|
94
|
+
similarly_)...
|
|
83
95
|
|
|
84
96
|
```text
|
|
85
97
|
metacss generate --help
|
|
@@ -100,8 +112,8 @@ Main:
|
|
|
100
112
|
### Framework generation specs & syntax
|
|
101
113
|
|
|
102
114
|
This section gives an overview of the JSON format used to generate CSS
|
|
103
|
-
frameworks of dozens (usually hundreds) of utility classes,
|
|
104
|
-
possible variations (per spec).
|
|
115
|
+
frameworks of dozens (usually hundreds or thousands) of utility classes,
|
|
116
|
+
including many possible variations (per spec).
|
|
105
117
|
|
|
106
118
|
Generation specs use a simple JSON structure as shown below. The specs can be
|
|
107
119
|
split over multiple files and will all be merged by the `generate` command of
|
|
@@ -117,14 +129,15 @@ the toolchain.
|
|
|
117
129
|
// optional media queries and their criteria, will be merged from multiple spec files
|
|
118
130
|
"media": {
|
|
119
131
|
"large": { "min-width": "60rem" },
|
|
120
|
-
"dark": { "prefers-color-scheme": "dark" }
|
|
132
|
+
"dark": { "prefers-color-scheme": "dark" },
|
|
133
|
+
"anim": { "prefers-reduced-motion": false }
|
|
121
134
|
},
|
|
122
135
|
// optional shared values/LUTs (arrays or objects)
|
|
123
|
-
//
|
|
136
|
+
// (local to the current file only)
|
|
124
137
|
"tables": {
|
|
125
138
|
"margins": [0, 0.25, 0.5, 1, 2, 4]
|
|
126
139
|
},
|
|
127
|
-
// optional shared variations
|
|
140
|
+
// optional shared variations (local to current file only)
|
|
128
141
|
"vars": {
|
|
129
142
|
"size": ["width", "height"]
|
|
130
143
|
},
|
|
@@ -150,7 +163,7 @@ For each additional value added to the `margins` table, 7 more CSS classes will
|
|
|
150
163
|
generated. The `name` (class) and `props` (CSS property name) are parametric and
|
|
151
164
|
will be explained in more detail further below.
|
|
152
165
|
|
|
153
|
-
```json tangle:export/readme-margins.json
|
|
166
|
+
```json tangle:export/readme-margins.mcss.json
|
|
154
167
|
{
|
|
155
168
|
"tables": {
|
|
156
169
|
"margins": [0, 0.5, 1]
|
|
@@ -161,18 +174,18 @@ will be explained in more detail further below.
|
|
|
161
174
|
"props": "margin<var>",
|
|
162
175
|
"values": "margins",
|
|
163
176
|
"unit": "rem",
|
|
164
|
-
"
|
|
177
|
+
"vars": ["a", "t", "r", "b", "l", "h", "v"]
|
|
165
178
|
}
|
|
166
179
|
]
|
|
167
180
|
}
|
|
168
181
|
```
|
|
169
182
|
|
|
170
|
-
Assuming the above spec has been saved to file `
|
|
183
|
+
Assuming the above spec has been saved to file `margins.mcss.json`...
|
|
171
184
|
|
|
172
185
|
```bash
|
|
173
186
|
# the generate cmd can merge specs from multiple input files
|
|
174
187
|
# if no `--out` file is given, the result will go to stdout
|
|
175
|
-
metacss generate --pretty
|
|
188
|
+
metacss generate --pretty margins.mcss.json
|
|
176
189
|
```
|
|
177
190
|
|
|
178
191
|
...this command (with the above spec) will generate the following output (here
|
|
@@ -221,26 +234,28 @@ An individual generator spec JSON object can contain the following keys:
|
|
|
221
234
|
|
|
222
235
|
| **ID** | **Type** | **Description** |
|
|
223
236
|
|----------|-------------------------|--------------------------------------------------------------|
|
|
237
|
+
| `key` | string, optional | Method for deriving keys from current value |
|
|
224
238
|
| `name` | string | Parametric name for the generated CSS class(es) |
|
|
225
239
|
| `props` | string or object | CSS property name(s), possibly parametric |
|
|
226
|
-
| `values` | string, array or object | Values to be assigned to CSS properties, possibly parametric |
|
|
227
240
|
| `unit` | string, optional | CSS unit to use for values |
|
|
228
|
-
| `
|
|
229
|
-
| `
|
|
230
|
-
| `
|
|
241
|
+
| `user` | any, optional | Custom, arbitrary user data, comments, metadata etc. |
|
|
242
|
+
| `values` | string, array or object | Values to be assigned to CSS properties, possibly parametric |
|
|
243
|
+
| `vars` | string[], optional | Array of variation IDs (see section below) |
|
|
231
244
|
|
|
232
245
|
The number of generated CSS classes per spec is the number of items in `values`
|
|
233
246
|
multiplied by the number of variations in `var` (if any).
|
|
234
247
|
|
|
235
248
|
Any `user` data will be stored (as is) with each generated CSS class, but
|
|
236
|
-
currently has no
|
|
237
|
-
user-defined tooling.
|
|
249
|
+
currently has no direct use in the toolchain and is purely intended for
|
|
250
|
+
additional user-defined custom tooling.
|
|
238
251
|
|
|
239
252
|
#### Variations
|
|
240
253
|
|
|
241
254
|
Variations can be requested by providing an array of valid variation IDs. If
|
|
242
|
-
used, `<vid>` or `<var>` parameters must be used in the `name` or else
|
|
243
|
-
conflicts will occur.
|
|
255
|
+
used, `<vid>` or `<var>` parameters **must** be used in the `name` or else
|
|
256
|
+
naming conflicts will occur.
|
|
257
|
+
|
|
258
|
+
The following variation presets are available:
|
|
244
259
|
|
|
245
260
|
| **ID** | **Expanded values** |
|
|
246
261
|
|------------|-----------------------|
|
|
@@ -259,26 +274,60 @@ conflicts will occur.
|
|
|
259
274
|
| `"x"` | `["-x"]` |
|
|
260
275
|
| `"y"` | `["-y"]` |
|
|
261
276
|
|
|
277
|
+
Custom, file-local variations can also be used (parameters in `name` and `props`
|
|
278
|
+
will be explained next), e.g.:
|
|
279
|
+
|
|
280
|
+
```json tangle:export/readme-custom-vars.mcss.json
|
|
281
|
+
{
|
|
282
|
+
"vars": {
|
|
283
|
+
"svg": ["fill", "stroke"]
|
|
284
|
+
},
|
|
285
|
+
"specs": [
|
|
286
|
+
{
|
|
287
|
+
"name": "<var>-<k>",
|
|
288
|
+
"props": { "<var>": "<v>" },
|
|
289
|
+
"values": { "black": "#000", "white": "#fff", "current": "currentColor" },
|
|
290
|
+
"vars": ["svg"]
|
|
291
|
+
}
|
|
292
|
+
]
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
This spec will generate the following classes:
|
|
297
|
+
|
|
298
|
+
```json
|
|
299
|
+
{
|
|
300
|
+
"fill-black": { "fill": "#000" },
|
|
301
|
+
"fill-white": { "fill": "#fff" },
|
|
302
|
+
"fill-current": { "fill": "currentColor" },
|
|
303
|
+
"stroke-black": { "stroke": "#000" },
|
|
304
|
+
"stroke-white": { "stroke": "#fff" },
|
|
305
|
+
"stroke-current": { "stroke": "currentColor" }
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
262
309
|
#### Parametric IDs
|
|
263
310
|
|
|
264
311
|
The following parameters can (and should) be used in a spec's `name` and `props`
|
|
265
312
|
to generate multiple pattern-based values (more examples below).
|
|
266
313
|
|
|
267
|
-
- `<vid>` is
|
|
268
|
-
variations are requested,
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
314
|
+
- `<vid>` is the ID of the currently processed variation (e.g. a value from the
|
|
315
|
+
ID column in the above table). If no variations are requested, this value will
|
|
316
|
+
be an empty string.
|
|
317
|
+
- `<var>` is one of the expanded values for the current variation (e.g. 2nd
|
|
318
|
+
column of variations table). If no variations are defined, this too will be an
|
|
319
|
+
empty string.
|
|
272
320
|
- `<v>` is the currently processed value of a spec's `values`.
|
|
273
|
-
- `<k>` is the
|
|
274
|
-
spec's `values` and will depend on the type of `values` (see
|
|
321
|
+
- `<k>` is the (possibly derived) key for the currently processed value of a
|
|
322
|
+
spec's `values` collection and will depend on the type of `values` (see [key
|
|
323
|
+
value generation](#key-value-generation))
|
|
275
324
|
|
|
276
325
|
#### Values
|
|
277
326
|
|
|
278
327
|
The `values` are used to populate the `props` (CSS properties). If `values` is a
|
|
279
328
|
string it will be used as table-name to look up in the current spec file's
|
|
280
|
-
`tables`, an object storing
|
|
281
|
-
the same file).
|
|
329
|
+
`tables`, an object storing value collections which should be shared among specs
|
|
330
|
+
(only in the same file).
|
|
282
331
|
|
|
283
332
|
Other allowed types of `values`: string array, numeric array or object of
|
|
284
333
|
key-value pairs (where values are strings or numbers too). The following
|
|
@@ -293,7 +342,7 @@ Using a named `tables` entry:
|
|
|
293
342
|
},
|
|
294
343
|
"specs": [
|
|
295
344
|
{
|
|
296
|
-
"name": "test
|
|
345
|
+
"name": "test-<v>",
|
|
297
346
|
"props": "color",
|
|
298
347
|
"values": "test"
|
|
299
348
|
}
|
|
@@ -305,7 +354,7 @@ Using an array directly (here only showing the spec itself for brevity):
|
|
|
305
354
|
|
|
306
355
|
```json
|
|
307
356
|
{
|
|
308
|
-
"name": "test
|
|
357
|
+
"name": "test-<v>",
|
|
309
358
|
"props": "color",
|
|
310
359
|
"values": ["red", "green", "blue"]
|
|
311
360
|
}
|
|
@@ -315,7 +364,7 @@ Using an object (ignoring the keys, only using the values here):
|
|
|
315
364
|
|
|
316
365
|
```json
|
|
317
366
|
{
|
|
318
|
-
"name": "test
|
|
367
|
+
"name": "test-<v>",
|
|
319
368
|
"props": "color",
|
|
320
369
|
"values": { "r": "red", "g": "green", "b": "blue"}
|
|
321
370
|
}
|
|
@@ -363,13 +412,13 @@ Will result in these definitions:
|
|
|
363
412
|
|
|
364
413
|
The `key` field is only used when `values` is resolving to an array. In this
|
|
365
414
|
case this field determines how a "key" value (aka the `<k>` param for string
|
|
366
|
-
interpolation
|
|
415
|
+
interpolation) will be derived for each value in `values`:
|
|
367
416
|
|
|
368
417
|
| **`key`** | **`values`** | **Description** | **Examples** |
|
|
369
418
|
|-----------|-----------------|-------------------------|--------------|
|
|
370
419
|
| `v` | `[10, 20, ...]` | Actual array item value | 10, 20, ... |
|
|
371
420
|
| `i` | `[10, 20, ...]` | Array item index | 0, 1,... |
|
|
372
|
-
| `
|
|
421
|
+
| `i+1` | `[10, 20, ...]` | Array item index + 1 | 1, 2,... |
|
|
373
422
|
|
|
374
423
|
If `values` resolves to an object, the `<k>` param will always be the key of the
|
|
375
424
|
currently processed value.
|
|
@@ -410,16 +459,37 @@ ALWAYS combined using `and`:
|
|
|
410
459
|
See [media queries in the bundled base
|
|
411
460
|
specs](https://github.com/thi-ng/umbrella/blob/982fff7bfcc48f108b6ad88f854ef00be4078510/packages/meta-css/specs/_info.json#L6-L24)
|
|
412
461
|
|
|
462
|
+
### Custom declarations
|
|
463
|
+
|
|
464
|
+
Each of the JSON spec files can provide fixed CSS declarations via the `decls`
|
|
465
|
+
key. These declarations are to be given in
|
|
466
|
+
[thi.ng/hiccup-css](https://github.com/thi-ng/umbrella/blob/develop/packages/hiccup-css/)
|
|
467
|
+
format and are passed as is to the CSS serializer used by the `convert` and
|
|
468
|
+
`export` commands. Please see
|
|
469
|
+
[`/specs/normalize.mcss.json`](https://github.com/thi-ng/umbrella/blob/develop/packages/meta-css/specs/normalize.mcss.json)
|
|
470
|
+
for examples and the [thi.ng/hiccup-css
|
|
471
|
+
readme](https://github.com/thi-ng/umbrella/blob/develop/packages/hiccup-css/README.md)
|
|
472
|
+
for detailed reference.
|
|
473
|
+
|
|
474
|
+
```json
|
|
475
|
+
{
|
|
476
|
+
"decls": [
|
|
477
|
+
[":root", { "font-size": "16px" }],
|
|
478
|
+
["*", { "margin": 0 }]
|
|
479
|
+
]
|
|
480
|
+
}
|
|
481
|
+
```
|
|
482
|
+
|
|
413
483
|
## Converting meta stylesheets to CSS
|
|
414
484
|
|
|
415
485
|
The `convert` command is used to compile & bundle actual CSS from user-provided
|
|
416
|
-
MetaCSS stylesheets (
|
|
486
|
+
MetaCSS stylesheets (`.mcss` files) and the JSON framework specs created by the
|
|
417
487
|
`generate` command. The meta-stylesheets support any CSS selectors, are nestable
|
|
418
488
|
and compose full CSS declarations from lists of the utility classes in the
|
|
419
489
|
generated framework.
|
|
420
490
|
|
|
421
491
|
Each item (aka utility class name) can be prefixed with an arbitrary number of
|
|
422
|
-
media query IDs (also custom defined in the framework): e.g. `dark:bg-black`
|
|
492
|
+
media query IDs (also custom defined in the framework): e.g. `dark:bg-color-black`
|
|
423
493
|
might refer to a CSS class to set a black ground, with the `dark:` prefix
|
|
424
494
|
referring to a defined media query which only applies this class when dark mode
|
|
425
495
|
is enabled...
|
|
@@ -429,9 +499,8 @@ from multiple input files. **The resulting CSS will only contain referenced
|
|
|
429
499
|
rules** and can be generated in minified or pretty printed formats (it's also
|
|
430
500
|
possible to [force include CSS classes which are otherwise
|
|
431
501
|
unreferenced](#force-inclusion-of-unreferenced-classes)). Additionally, multiple
|
|
432
|
-
`.
|
|
433
|
-
merged), and existing CSS files can be included (prepended) in the
|
|
434
|
-
output too.
|
|
502
|
+
`.mcss` stylesheets can be watched for changes (their definitions getting
|
|
503
|
+
merged), and existing CSS files can be included (prepended) in the output(s) too.
|
|
435
504
|
|
|
436
505
|
```text
|
|
437
506
|
metacss convert --help
|
|
@@ -440,8 +509,10 @@ Usage: metacss convert [opts] input [...]
|
|
|
440
509
|
|
|
441
510
|
Flags:
|
|
442
511
|
|
|
512
|
+
-b, --bundle Bundle inputs (see `out` option)
|
|
443
513
|
-d, --no-decls Don't emit framework decls
|
|
444
514
|
--no-header Don't emit generated header comment
|
|
515
|
+
--no-write Don't write files, use stdout only
|
|
445
516
|
-p, --pretty Pretty print output
|
|
446
517
|
-v, --verbose Display extra process information
|
|
447
518
|
-w, --watch Watch input files for changes
|
|
@@ -457,6 +528,16 @@ Main:
|
|
|
457
528
|
-s STR, --specs STR [required] Path to generated JSON defs
|
|
458
529
|
```
|
|
459
530
|
|
|
531
|
+
Notes:
|
|
532
|
+
|
|
533
|
+
- The `--no-write` flag is only used if `--bundle` is **disabled**
|
|
534
|
+
- The `--out` file arg is only used if `--bundle` is **enabled**
|
|
535
|
+
|
|
536
|
+
If bundling is disabled (default), each input `.mcss` file is converted
|
|
537
|
+
individually and results are written to the same directory, but using `.css` as
|
|
538
|
+
file extension (and unless `--no-write` is enabled). This behavior is intended
|
|
539
|
+
for local style definitions of web components.
|
|
540
|
+
|
|
460
541
|
### Meta-stylesheets syntax
|
|
461
542
|
|
|
462
543
|
As mentioned earlier, the `convert` command transpiles meta-stylesheets into
|
|
@@ -480,8 +561,8 @@ selector {
|
|
|
480
561
|
|
|
481
562
|
#### Class identifiers & media query prefixes
|
|
482
563
|
|
|
483
|
-
As indicated by the above file structure,
|
|
484
|
-
CSS selectors and the names of the
|
|
564
|
+
As indicated by the above file structure, `.mcss` stylesheets purely consist of
|
|
565
|
+
CSS selectors and the names of the utility classes defined in a generated framework.
|
|
485
566
|
For example, using the [bundled framework specs](#bundled-css-base-framework),
|
|
486
567
|
this simple meta-stylesheet `body { ma0 monospace blue }` creates a CSS rule for
|
|
487
568
|
`body` with the definitions of the generated `ma0`, `monospace` and `blue`
|
|
@@ -498,11 +579,11 @@ body {
|
|
|
498
579
|
#### Media query prefixes
|
|
499
580
|
|
|
500
581
|
This toolchain doesn't pre-generate media-query-specific versions of any CSS
|
|
501
|
-
class, and any class ID/token can be prefixed with any number of media
|
|
502
|
-
(separated by `:`). These [media queries are defined as part of the
|
|
503
|
-
generation specs](#media-query-definitions) and when used as a prefix,
|
|
504
|
-
query IDs can be combined freely. For example, the meta-stylesheet
|
|
505
|
-
dark:bg-blue dark:anim:bg-anim2 }` will auto-create two separate CSS
|
|
582
|
+
class, and any utility class ID/token can be prefixed with any number of media
|
|
583
|
+
query IDs (separated by `:`). These [media queries are defined as part of the
|
|
584
|
+
framework generation specs](#media-query-definitions) and when used as a prefix,
|
|
585
|
+
multiple query IDs can be combined freely. For example, the meta-stylesheet
|
|
586
|
+
`a:hover { dark:bg-color-blue dark:anim:bg-anim2 }` will auto-create two separate CSS
|
|
506
587
|
`@media`-query blocks for the query IDs `dark` and `(dark AND anim)`:
|
|
507
588
|
|
|
508
589
|
```css
|
|
@@ -521,44 +602,45 @@ dark:bg-blue dark:anim:bg-anim2 }` will auto-create two separate CSS
|
|
|
521
602
|
|
|
522
603
|
A more detailed example, split over two files (for merging & bundling):
|
|
523
604
|
|
|
524
|
-
readme.
|
|
605
|
+
readme.mcss:
|
|
525
606
|
|
|
526
|
-
```text tangle:export/readme.
|
|
607
|
+
```text tangle:export/readme.mcss
|
|
527
608
|
body {
|
|
528
609
|
// no margins
|
|
529
610
|
ma0
|
|
530
611
|
// default colors
|
|
531
|
-
bg-white black
|
|
612
|
+
bg-color-white color-black
|
|
532
613
|
// colors for dark mode
|
|
533
|
-
dark:bg-black dark:white
|
|
614
|
+
dark:bg-color-black dark:color-white
|
|
534
615
|
}
|
|
535
616
|
|
|
536
617
|
#app { ma3 }
|
|
537
618
|
|
|
538
619
|
.bt-group-v > a {
|
|
539
620
|
db w-100 l:w-50 ph3 pv2 bwb1
|
|
540
|
-
dark:bg-purple dark:white dark:b--black
|
|
541
|
-
light:bg-light-blue light:black light:b--white
|
|
621
|
+
dark:bg-color-purple dark:color-white dark:b--color-black
|
|
622
|
+
light:bg-color-light-blue light:color-black light:b--color-white
|
|
542
623
|
|
|
543
624
|
// nested selectors
|
|
544
625
|
{
|
|
545
|
-
:hover { bg-gold black anim:bg-anim2 }
|
|
626
|
+
:hover { bg-color-gold color-black anim:bg-anim2 }
|
|
546
627
|
:first-child { brt3 }
|
|
547
628
|
:last-child { brb3 bwb0 }
|
|
548
629
|
}
|
|
549
630
|
}
|
|
550
631
|
```
|
|
551
632
|
|
|
552
|
-
readme2.
|
|
633
|
+
readme2.mcss:
|
|
553
634
|
|
|
554
635
|
We will merge the definitions in this file with the ones above (i.e. adding &
|
|
555
636
|
overriding some of the declarations, here: a larger border radius):
|
|
556
637
|
|
|
557
|
-
```text tangle:export/readme2.
|
|
638
|
+
```text tangle:export/readme2.mcss
|
|
558
639
|
#app { pa2 }
|
|
559
640
|
|
|
560
641
|
.bt-group-v > a {
|
|
561
642
|
{
|
|
643
|
+
// override border radii
|
|
562
644
|
:first-child { brt4 }
|
|
563
645
|
:last-child { brb4 }
|
|
564
646
|
}
|
|
@@ -568,10 +650,10 @@ overriding some of the declarations, here: a larger border radius):
|
|
|
568
650
|
```bash
|
|
569
651
|
# if no --out dir is specified, writes result to stdout...
|
|
570
652
|
# use previously generated framework for resolving all identifiers & media queries
|
|
571
|
-
metacss convert --pretty --specs framework.json readme.
|
|
653
|
+
metacss convert --pretty --specs framework.json readme.mcss readme2.mcss
|
|
572
654
|
```
|
|
573
655
|
|
|
574
|
-
Resulting CSS bundle output:
|
|
656
|
+
Resulting merged CSS bundle output:
|
|
575
657
|
|
|
576
658
|
```css
|
|
577
659
|
/*! MetaCSS base v0.0.1 - generated by thi.ng/meta-css @ 2023-12-18T12:22:36.548Z */
|
|
@@ -665,7 +747,7 @@ verbatim and will **not** be transformed or reformatted in any way.
|
|
|
665
747
|
### Force inclusion of unreferenced classes
|
|
666
748
|
|
|
667
749
|
Only the CSS classes (and their optionally associated media queries) referenced
|
|
668
|
-
in a `.
|
|
750
|
+
in a `.mcss` stylesheet will appear in the export CSS bundle. This ensures that
|
|
669
751
|
the resulting CSS will only contain what's actually used (same effect as
|
|
670
752
|
tree-shaking, only vastly more efficient). However, this also means any CSS
|
|
671
753
|
classes (and optionally, their media query qualifiers) which are otherwise
|
|
@@ -689,23 +771,13 @@ framework generation aspects of this toolchain. This command merely takes an
|
|
|
689
771
|
existing generated framework JSON file and serializes it to a single CSS file,
|
|
690
772
|
e.g. to be then used with other CSS tooling (e.g. `postcss`).
|
|
691
773
|
|
|
692
|
-
### Media query variations
|
|
693
|
-
|
|
694
|
-
Users can choose to generate variations of all defined utility classes for any
|
|
695
|
-
of the framework-defined media query IDs. This will create additional suffixed
|
|
696
|
-
versions of all classes (with their appropriate media query wrappers) and cause
|
|
697
|
-
a potentially massive output (depending on the overall number/complexity of the
|
|
698
|
-
generated classes). Again, the idea is that the resulting CSS file will be
|
|
699
|
-
post-processed with 3rd party CSS tooling...
|
|
700
|
-
|
|
701
|
-
For example, if the framework contains a CSS class `w-50` (e.g. to set the width
|
|
702
|
-
to 50%) and media queries for different screen sizes (e.g. named `ns`, `l`),
|
|
703
|
-
then the export with said media queries will also generate classes `w-50-ns`
|
|
704
|
-
and `w-50-l` (incl. their corresponding `@media` wrappers).
|
|
705
|
-
|
|
706
774
|
As with the `convert` command, additional CSS files can also be included
|
|
707
775
|
(prepended) in the output file.
|
|
708
776
|
|
|
777
|
+
If the `--only-decls` option is used, **only** the [framework
|
|
778
|
+
declarations](#custom-declarations) but none of the generated utility classes
|
|
779
|
+
will be exported.
|
|
780
|
+
|
|
709
781
|
```text
|
|
710
782
|
metacss export --help
|
|
711
783
|
|
|
@@ -715,6 +787,7 @@ Flags:
|
|
|
715
787
|
|
|
716
788
|
-d, --no-decls Don't emit framework decls
|
|
717
789
|
--no-header Don't emit generated header comment
|
|
790
|
+
--only-decls Only emit framework decls
|
|
718
791
|
-p, --pretty Pretty print output
|
|
719
792
|
-v, --verbose Display extra process information
|
|
720
793
|
|
|
@@ -725,11 +798,25 @@ Main:
|
|
|
725
798
|
-o STR, --out STR Output file (or stdout)
|
|
726
799
|
```
|
|
727
800
|
|
|
801
|
+
### Media query variations
|
|
802
|
+
|
|
803
|
+
Users can choose to generate variations of all defined utility classes for any
|
|
804
|
+
of the framework-defined media query IDs. This will create additional suffixed
|
|
805
|
+
versions of all classes (with their appropriate media query wrappers) and cause
|
|
806
|
+
a potentially massive output (depending on the overall number/complexity of the
|
|
807
|
+
generated classes). Again, the idea is that the resulting CSS file will be
|
|
808
|
+
post-processed with 3rd party CSS tooling...
|
|
809
|
+
|
|
810
|
+
For example, if the framework contains a CSS class `w-50` (e.g. to set the width
|
|
811
|
+
to 50%) and media queries for different screen sizes (e.g. named `ns`, `l`),
|
|
812
|
+
then the export with said media queries will also generate classes `w-50-ns`
|
|
813
|
+
and `w-50-l` (incl. their corresponding `@media` wrappers).
|
|
814
|
+
|
|
728
815
|
## Bundled CSS base framework
|
|
729
816
|
|
|
730
|
-
The package includes a large number of useful specs in [/specs](https://github.com/thi-ng/umbrella/blob/develop/packages/meta-css/specs/). These are provided as starting point to define your custom framework(s)...
|
|
817
|
+
The package includes a large number of useful specs in [/specs](https://github.com/thi-ng/umbrella/blob/develop/packages/meta-css/specs/). These are readily usable, but also are provided as starting point to define your own custom framework(s)...
|
|
731
818
|
|
|
732
|
-
Currently
|
|
819
|
+
Currently, there are 940 CSS utility classes defined in MetaCSS base v0.0.1:
|
|
733
820
|
|
|
734
821
|
### Classes by category
|
|
735
822
|
|
|
@@ -739,11 +826,11 @@ Currently available CSS classes in MetaCSS base v0.0.1:
|
|
|
739
826
|
|
|
740
827
|
#### Animations / transitions <!-- notoc -->
|
|
741
828
|
|
|
742
|
-
`bg-anim1` / `bg-anim2` / `bg-anim3` / `fadein1` / `fadein2` / `fadein3`
|
|
829
|
+
`anim-alternate` / `anim-alternate-reverse` / `anim-normal` / `anim-reverse` / `bg-anim1` / `bg-anim2` / `bg-anim3` / `fadein1` / `fadein2` / `fadein3` / `fadeout1` / `fadeout2` / `fadeout3` / `spin1` / `spin2` / `spin3`
|
|
743
830
|
|
|
744
831
|
#### Aspect ratios <!-- notoc -->
|
|
745
832
|
|
|
746
|
-
`aspect-ratio-16x9` / `aspect-ratio-1x1` / `aspect-ratio-3x4` / `aspect-ratio-4x3` / `aspect-ratio-
|
|
833
|
+
`aspect-ratio-1x1` / `aspect-ratio-1x2` / `aspect-ratio-2x1` / `aspect-ratio-2x3` / `aspect-ratio-3x2` / `aspect-ratio-3x4` / `aspect-ratio-4x3` / `aspect-ratio-5x7` / `aspect-ratio-7x5` / `aspect-ratio-9x16` / `aspect-ratio-16x9` / `bg-aspect-ratio-1x1` / `bg-aspect-ratio-1x2` / `bg-aspect-ratio-2x1` / `bg-aspect-ratio-2x3` / `bg-aspect-ratio-3x2` / `bg-aspect-ratio-3x4` / `bg-aspect-ratio-4x3` / `bg-aspect-ratio-5x7` / `bg-aspect-ratio-7x5` / `bg-aspect-ratio-9x16` / `bg-aspect-ratio-16x9` / `bg-aspect-ratio-object`
|
|
747
834
|
|
|
748
835
|
#### Background <!-- notoc -->
|
|
749
836
|
|
|
@@ -751,15 +838,19 @@ Currently available CSS classes in MetaCSS base v0.0.1:
|
|
|
751
838
|
|
|
752
839
|
#### Border radius <!-- notoc -->
|
|
753
840
|
|
|
754
|
-
`
|
|
841
|
+
`br0` / `br1` / `br2` / `br3` / `br4` / `br-100` / `br-pill` / `brb0` / `brb1` / `brb2` / `brb3` / `brb4` / `brl0` / `brl1` / `brl2` / `brl3` / `brl4` / `brr0` / `brr1` / `brr2` / `brr3` / `brr4` / `brt0` / `brt1` / `brt2` / `brt3` / `brt4`
|
|
755
842
|
|
|
756
843
|
#### Border width <!-- notoc -->
|
|
757
844
|
|
|
758
|
-
`
|
|
845
|
+
`bw0` / `bw1` / `bw2` / `bw3` / `bw4` / `bw5` / `bw-1px` / `bwb0` / `bwb1` / `bwb2` / `bwb3` / `bwb4` / `bwb5` / `bwb-1px` / `bwl0` / `bwl1` / `bwl2` / `bwl3` / `bwl4` / `bwl5` / `bwl-1px` / `bwr0` / `bwr1` / `bwr2` / `bwr3` / `bwr4` / `bwr5` / `bwr-1px` / `bwt0` / `bwt1` / `bwt2` / `bwt3` / `bwt4` / `bwt5` / `bwt-1px`
|
|
759
846
|
|
|
760
847
|
#### Colors <!-- notoc -->
|
|
761
848
|
|
|
762
|
-
`b--black` / `b--blue` / `b--dark-blue` / `b--dark-gray` / `b--dark-green` / `b--dark-pink` / `b--dark-red` / `b--gold` / `b--gray` / `b--green` / `b--hot-pink` / `b--light-blue` / `b--light-gray` / `b--light-green` / `b--light-pink` / `b--light-purple` / `b--light-red` / `b--light-silver` / `b--light-yellow` / `b--lightest-blue` / `b--mid-gray` / `b--moon-gray` / `b--navy` / `b--near-black` / `b--near-white` / `b--orange` / `b--pink` / `b--purple` / `b--red` / `b--silver` / `b--transparent` / `b--
|
|
849
|
+
`b--color-black` / `b--color-blue` / `b--color-current` / `b--color-dark-blue` / `b--color-dark-gray` / `b--color-dark-green` / `b--color-dark-pink` / `b--color-dark-red` / `b--color-gold` / `b--color-gray` / `b--color-green` / `b--color-hot-pink` / `b--color-light-blue` / `b--color-light-gray` / `b--color-light-green` / `b--color-light-pink` / `b--color-light-purple` / `b--color-light-red` / `b--color-light-silver` / `b--color-light-yellow` / `b--color-lightest-blue` / `b--color-mid-gray` / `b--color-moon-gray` / `b--color-navy` / `b--color-near-black` / `b--color-near-white` / `b--color-orange` / `b--color-pink` / `b--color-purple` / `b--color-red` / `b--color-silver` / `b--color-transparent` / `b--color-washed-blue` / `b--color-washed-green` / `b--color-washed-red` / `b--color-washed-yellow` / `b--color-white` / `b--color-yellow` / `b--color1` / `b--color2` / `b--color3` / `b--color4` / `b--color5` / `b--color6` / `b--color7` / `b--color8` / `b--color9` / `b--color10` / `b--color11` / `b--color12` / `b--color13` / `b--color14` / `b--color15` / `b--color16` / `bg-color-black` / `bg-color-blue` / `bg-color-current` / `bg-color-dark-blue` / `bg-color-dark-gray` / `bg-color-dark-green` / `bg-color-dark-pink` / `bg-color-dark-red` / `bg-color-gold` / `bg-color-gray` / `bg-color-green` / `bg-color-hot-pink` / `bg-color-light-blue` / `bg-color-light-gray` / `bg-color-light-green` / `bg-color-light-pink` / `bg-color-light-purple` / `bg-color-light-red` / `bg-color-light-silver` / `bg-color-light-yellow` / `bg-color-lightest-blue` / `bg-color-mid-gray` / `bg-color-moon-gray` / `bg-color-navy` / `bg-color-near-black` / `bg-color-near-white` / `bg-color-orange` / `bg-color-pink` / `bg-color-purple` / `bg-color-red` / `bg-color-silver` / `bg-color-transparent` / `bg-color-washed-blue` / `bg-color-washed-green` / `bg-color-washed-red` / `bg-color-washed-yellow` / `bg-color-white` / `bg-color-yellow` / `bg-color1` / `bg-color2` / `bg-color3` / `bg-color4` / `bg-color5` / `bg-color6` / `bg-color7` / `bg-color8` / `bg-color9` / `bg-color10` / `bg-color11` / `bg-color12` / `bg-color13` / `bg-color14` / `bg-color15` / `bg-color16` / `color-black` / `color-blue` / `color-current` / `color-dark-blue` / `color-dark-gray` / `color-dark-green` / `color-dark-pink` / `color-dark-red` / `color-gold` / `color-gray` / `color-green` / `color-hot-pink` / `color-light-blue` / `color-light-gray` / `color-light-green` / `color-light-pink` / `color-light-purple` / `color-light-red` / `color-light-silver` / `color-light-yellow` / `color-lightest-blue` / `color-mid-gray` / `color-moon-gray` / `color-navy` / `color-near-black` / `color-near-white` / `color-orange` / `color-pink` / `color-purple` / `color-red` / `color-silver` / `color-transparent` / `color-washed-blue` / `color-washed-green` / `color-washed-red` / `color-washed-yellow` / `color-white` / `color-yellow` / `color1` / `color2` / `color3` / `color4` / `color5` / `color6` / `color7` / `color8` / `color9` / `color10` / `color11` / `color12` / `color13` / `color14` / `color15` / `color16` / `fill-color-black` / `fill-color-blue` / `fill-color-current` / `fill-color-dark-blue` / `fill-color-dark-gray` / `fill-color-dark-green` / `fill-color-dark-pink` / `fill-color-dark-red` / `fill-color-gold` / `fill-color-gray` / `fill-color-green` / `fill-color-hot-pink` / `fill-color-light-blue` / `fill-color-light-gray` / `fill-color-light-green` / `fill-color-light-pink` / `fill-color-light-purple` / `fill-color-light-red` / `fill-color-light-silver` / `fill-color-light-yellow` / `fill-color-lightest-blue` / `fill-color-mid-gray` / `fill-color-moon-gray` / `fill-color-navy` / `fill-color-near-black` / `fill-color-near-white` / `fill-color-orange` / `fill-color-pink` / `fill-color-purple` / `fill-color-red` / `fill-color-silver` / `fill-color-transparent` / `fill-color-washed-blue` / `fill-color-washed-green` / `fill-color-washed-red` / `fill-color-washed-yellow` / `fill-color-white` / `fill-color-yellow` / `fill-color1` / `fill-color2` / `fill-color3` / `fill-color4` / `fill-color5` / `fill-color6` / `fill-color7` / `fill-color8` / `fill-color9` / `fill-color10` / `fill-color11` / `fill-color12` / `fill-color13` / `fill-color14` / `fill-color15` / `fill-color16` / `o-0` / `o-10` / `o-20` / `o-30` / `o-40` / `o-50` / `o-60` / `o-70` / `o-80` / `o-90` / `o-100` / `stroke-color-black` / `stroke-color-blue` / `stroke-color-current` / `stroke-color-dark-blue` / `stroke-color-dark-gray` / `stroke-color-dark-green` / `stroke-color-dark-pink` / `stroke-color-dark-red` / `stroke-color-gold` / `stroke-color-gray` / `stroke-color-green` / `stroke-color-hot-pink` / `stroke-color-light-blue` / `stroke-color-light-gray` / `stroke-color-light-green` / `stroke-color-light-pink` / `stroke-color-light-purple` / `stroke-color-light-red` / `stroke-color-light-silver` / `stroke-color-light-yellow` / `stroke-color-lightest-blue` / `stroke-color-mid-gray` / `stroke-color-moon-gray` / `stroke-color-navy` / `stroke-color-near-black` / `stroke-color-near-white` / `stroke-color-orange` / `stroke-color-pink` / `stroke-color-purple` / `stroke-color-red` / `stroke-color-silver` / `stroke-color-transparent` / `stroke-color-washed-blue` / `stroke-color-washed-green` / `stroke-color-washed-red` / `stroke-color-washed-yellow` / `stroke-color-white` / `stroke-color-yellow` / `stroke-color1` / `stroke-color2` / `stroke-color3` / `stroke-color4` / `stroke-color5` / `stroke-color6` / `stroke-color7` / `stroke-color8` / `stroke-color9` / `stroke-color10` / `stroke-color11` / `stroke-color12` / `stroke-color13` / `stroke-color14` / `stroke-color15` / `stroke-color16`
|
|
850
|
+
|
|
851
|
+
#### Content <!-- notoc -->
|
|
852
|
+
|
|
853
|
+
`content-data-lang` / `content-href` / `content-id` / `content-name` / `content-slot` / `content-title`
|
|
763
854
|
|
|
764
855
|
#### Cursors <!-- notoc -->
|
|
765
856
|
|
|
@@ -767,7 +858,11 @@ Currently available CSS classes in MetaCSS base v0.0.1:
|
|
|
767
858
|
|
|
768
859
|
#### Display mode <!-- notoc -->
|
|
769
860
|
|
|
770
|
-
`db` / `
|
|
861
|
+
`db` / `di` / `dib` / `dif` / `dig` / `dn` / `dt` / `dtc` / `dtr` / `flex` / `grid`
|
|
862
|
+
|
|
863
|
+
#### Flex layout <!-- notoc -->
|
|
864
|
+
|
|
865
|
+
`align-content-center` / `align-content-end` / `align-content-start` / `flex-column` / `flex-column-reverse` / `flex-grow0` / `flex-grow1` / `flex-nowrap` / `flex-row` / `flex-row-reverse` / `flex-shrink0` / `flex-shrink1` / `flex-wrap` / `flex-wrap-reverse` / `justify-content-center` / `justify-content-end` / `justify-content-start`
|
|
771
866
|
|
|
772
867
|
#### Font families <!-- notoc -->
|
|
773
868
|
|
|
@@ -791,11 +886,11 @@ Currently available CSS classes in MetaCSS base v0.0.1:
|
|
|
791
886
|
|
|
792
887
|
#### Grid layout <!-- notoc -->
|
|
793
888
|
|
|
794
|
-
`align-items-center` / `align-items-end` / `align-items-start` / `align-items-stretch` / `align-self-center` / `align-self-end` / `align-self-start` / `align-self-stretch` / `
|
|
889
|
+
`align-items-center` / `align-items-end` / `align-items-start` / `align-items-stretch` / `align-self-center` / `align-self-end` / `align-self-start` / `align-self-stretch` / `gap0` / `gap1` / `gap2` / `gap3` / `gap4` / `gap5` / `gap-1px` / `gap-2px` / `gap-4px` / `gap-8px` / `grid-cols-1` / `grid-cols-2` / `grid-cols-3` / `grid-cols-4` / `grid-cols-5` / `grid-cols-6` / `grid-cols-7` / `grid-cols-8` / `grid-cols-9` / `grid-cols-10` / `grid-rows-1` / `grid-rows-2` / `grid-rows-3` / `grid-rows-4` / `grid-rows-5` / `grid-rows-6` / `grid-rows-7` / `grid-rows-8` / `grid-rows-9` / `grid-rows-10` / `justify-items-center` / `justify-items-end` / `justify-items-start` / `justify-items-stretch` / `justify-self-center` / `justify-self-end` / `justify-self-start` / `justify-self-stretch`
|
|
795
890
|
|
|
796
891
|
#### Height <!-- notoc -->
|
|
797
892
|
|
|
798
|
-
`
|
|
893
|
+
`h1` / `h2` / `h3` / `h4` / `h5` / `h-10` / `h-16` / `h-17` / `h-20` / `h-25` / `h-30` / `h-33` / `h-34` / `h-40` / `h-50` / `h-60` / `h-66` / `h-67` / `h-70` / `h-75` / `h-80` / `h-83` / `h-84` / `h-90` / `h-100` / `vh-25` / `vh-50` / `vh-75` / `vh-100`
|
|
799
894
|
|
|
800
895
|
#### Icons <!-- notoc -->
|
|
801
896
|
|
|
@@ -803,7 +898,7 @@ Currently available CSS classes in MetaCSS base v0.0.1:
|
|
|
803
898
|
|
|
804
899
|
#### Letter spacing <!-- notoc -->
|
|
805
900
|
|
|
806
|
-
`ls
|
|
901
|
+
`ls-0` / `ls-1` / `ls-2` / `ls-3` / `ls--1` / `ls--2`
|
|
807
902
|
|
|
808
903
|
#### Line heights <!-- notoc -->
|
|
809
904
|
|
|
@@ -815,23 +910,23 @@ Currently available CSS classes in MetaCSS base v0.0.1:
|
|
|
815
910
|
|
|
816
911
|
#### Margin <!-- notoc -->
|
|
817
912
|
|
|
818
|
-
`center` / `ma0` / `ma1` / `ma2` / `ma3` / `ma4` / `mb0` / `mb1` / `mb2` / `mb3` / `mb4` / `mh0` / `mh1` / `mh2` / `mh3` / `mh4` / `ml0` / `ml1` / `ml2` / `ml3` / `ml4` / `mr0` / `mr1` / `mr2` / `mr3` / `mr4` / `mt0` / `mt1` / `mt2` / `mt3` / `mt4` / `mv0` / `mv1` / `mv2` / `mv3` / `mv4`
|
|
913
|
+
`center` / `ma0` / `ma1` / `ma2` / `ma3` / `ma4` / `ma5` / `mb0` / `mb1` / `mb2` / `mb3` / `mb4` / `mb5` / `mbe-0` / `mbe-1` / `mbe-2` / `mbe-3` / `mbe-4` / `mbe-5` / `mbs-0` / `mbs-1` / `mbs-2` / `mbs-3` / `mbs-4` / `mbs-5` / `mh0` / `mh1` / `mh2` / `mh3` / `mh4` / `mh5` / `ml0` / `ml1` / `ml2` / `ml3` / `ml4` / `ml5` / `mr0` / `mr1` / `mr2` / `mr3` / `mr4` / `mr5` / `mt0` / `mt1` / `mt2` / `mt3` / `mt4` / `mt5` / `mv0` / `mv1` / `mv2` / `mv3` / `mv4` / `mv5`
|
|
819
914
|
|
|
820
915
|
#### Max. height <!-- notoc -->
|
|
821
916
|
|
|
822
|
-
`
|
|
917
|
+
`maxh1` / `maxh2` / `maxh3` / `maxh4` / `maxh5` / `maxh-10` / `maxh-16` / `maxh-17` / `maxh-20` / `maxh-25` / `maxh-30` / `maxh-33` / `maxh-34` / `maxh-40` / `maxh-50` / `maxh-60` / `maxh-66` / `maxh-67` / `maxh-70` / `maxh-75` / `maxh-80` / `maxh-83` / `maxh-84` / `maxh-90` / `maxh-100`
|
|
823
918
|
|
|
824
919
|
#### Max. width <!-- notoc -->
|
|
825
920
|
|
|
826
|
-
`
|
|
921
|
+
`maxw1` / `maxw2` / `maxw3` / `maxw4` / `maxw5` / `maxw-10` / `maxw-16` / `maxw-17` / `maxw-20` / `maxw-25` / `maxw-30` / `maxw-33` / `maxw-34` / `maxw-40` / `maxw-50` / `maxw-60` / `maxw-66` / `maxw-67` / `maxw-70` / `maxw-75` / `maxw-80` / `maxw-83` / `maxw-84` / `maxw-90` / `maxw-100`
|
|
827
922
|
|
|
828
923
|
#### Min. height <!-- notoc -->
|
|
829
924
|
|
|
830
|
-
`
|
|
925
|
+
`minh1` / `minh2` / `minh3` / `minh4` / `minh5` / `minh-10` / `minh-16` / `minh-17` / `minh-20` / `minh-25` / `minh-30` / `minh-33` / `minh-34` / `minh-40` / `minh-50` / `minh-60` / `minh-66` / `minh-67` / `minh-70` / `minh-75` / `minh-80` / `minh-83` / `minh-84` / `minh-90` / `minh-100`
|
|
831
926
|
|
|
832
927
|
#### Min. width <!-- notoc -->
|
|
833
928
|
|
|
834
|
-
`
|
|
929
|
+
`minw1` / `minw2` / `minw3` / `minw4` / `minw5` / `minw-10` / `minw-16` / `minw-17` / `minw-20` / `minw-25` / `minw-30` / `minw-33` / `minw-34` / `minw-40` / `minw-50` / `minw-60` / `minw-66` / `minw-67` / `minw-70` / `minw-75` / `minw-80` / `minw-83` / `minw-84` / `minw-90` / `minw-100`
|
|
835
930
|
|
|
836
931
|
#### Overflow <!-- notoc -->
|
|
837
932
|
|
|
@@ -839,11 +934,19 @@ Currently available CSS classes in MetaCSS base v0.0.1:
|
|
|
839
934
|
|
|
840
935
|
#### Padding <!-- notoc -->
|
|
841
936
|
|
|
842
|
-
`pa0` / `pa1` / `pa2` / `pa3` / `pa4` / `pb0` / `pb1` / `pb2` / `pb3` / `pb4` / `ph0` / `ph1` / `ph2` / `ph3` / `ph4` / `pl0` / `pl1` / `pl2` / `pl3` / `pl4` / `pr0` / `pr1` / `pr2` / `pr3` / `pr4` / `pt0` / `pt1` / `pt2` / `pt3` / `pt4` / `pv0` / `pv1` / `pv2` / `pv3` / `pv4`
|
|
937
|
+
`pa0` / `pa1` / `pa2` / `pa3` / `pa4` / `pa5` / `pb0` / `pb1` / `pb2` / `pb3` / `pb4` / `pb5` / `pbe-0` / `pbe-1` / `pbe-2` / `pbe-3` / `pbe-4` / `pbe-5` / `pbs-0` / `pbs-1` / `pbs-2` / `pbs-3` / `pbs-4` / `pbs-5` / `ph0` / `ph1` / `ph2` / `ph3` / `ph4` / `ph5` / `pl0` / `pl1` / `pl2` / `pl3` / `pl4` / `pl5` / `pr0` / `pr1` / `pr2` / `pr3` / `pr4` / `pr5` / `pt0` / `pt1` / `pt2` / `pt3` / `pt4` / `pt5` / `pv0` / `pv1` / `pv2` / `pv3` / `pv4` / `pv5`
|
|
843
938
|
|
|
844
939
|
#### Positions <!-- notoc -->
|
|
845
940
|
|
|
846
|
-
`absolute` / `bottom
|
|
941
|
+
`absolute` / `bottom-0` / `bottom-1` / `bottom-2` / `bottom--1` / `bottom--2` / `fixed` / `left-0` / `left-1` / `left-2` / `left--1` / `left--2` / `relative` / `right-0` / `right-1` / `right-2` / `right--1` / `right--2` / `static` / `sticky` / `top-0` / `top-1` / `top-2` / `top--1` / `top--2`
|
|
942
|
+
|
|
943
|
+
#### Print <!-- notoc -->
|
|
944
|
+
|
|
945
|
+
`break-after-avoid` / `break-after-avoid-column` / `break-after-avoid-page` / `break-after-column` / `break-after-left` / `break-after-page` / `break-after-recto` / `break-after-right` / `break-after-verso` / `break-before-avoid` / `break-before-avoid-column` / `break-before-avoid-page` / `break-before-column` / `break-before-left` / `break-before-page` / `break-before-recto` / `break-before-right` / `break-before-verso`
|
|
946
|
+
|
|
947
|
+
#### Scrolling <!-- notoc -->
|
|
948
|
+
|
|
949
|
+
`ss-always` / `ss-both` / `ss-center` / `ss-end` / `ss-normal` / `ss-start` / `ss-x` / `ss-y`
|
|
847
950
|
|
|
848
951
|
#### Selection <!-- notoc -->
|
|
849
952
|
|
|
@@ -865,17 +968,13 @@ Currently available CSS classes in MetaCSS base v0.0.1:
|
|
|
865
968
|
|
|
866
969
|
`ttc` / `ttfsk` / `ttfw` / `tti` / `ttl` / `ttn` / `ttu`
|
|
867
970
|
|
|
868
|
-
#### Undefined <!-- notoc -->
|
|
869
|
-
|
|
870
|
-
`vh-100` / `vh-25` / `vh-50` / `vh-75` / `vw-100` / `vw-25` / `vw-50` / `vw-75`
|
|
871
|
-
|
|
872
971
|
#### Vertical align <!-- notoc -->
|
|
873
972
|
|
|
874
973
|
`v-base` / `v-btm` / `v-mid` / `v-top`
|
|
875
974
|
|
|
876
975
|
#### Visibility <!-- notoc -->
|
|
877
976
|
|
|
878
|
-
`hidden` / `visible`
|
|
977
|
+
`collapse` / `hidden` / `visible`
|
|
879
978
|
|
|
880
979
|
#### Whitespace <!-- notoc -->
|
|
881
980
|
|
|
@@ -883,7 +982,7 @@ Currently available CSS classes in MetaCSS base v0.0.1:
|
|
|
883
982
|
|
|
884
983
|
#### Width <!-- notoc -->
|
|
885
984
|
|
|
886
|
-
`
|
|
985
|
+
`vw-25` / `vw-50` / `vw-75` / `vw-100` / `w1` / `w2` / `w3` / `w4` / `w5` / `w-10` / `w-16` / `w-17` / `w-20` / `w-25` / `w-30` / `w-33` / `w-34` / `w-40` / `w-50` / `w-60` / `w-66` / `w-67` / `w-70` / `w-75` / `w-80` / `w-83` / `w-84` / `w-90` / `w-100`
|
|
887
986
|
|
|
888
987
|
#### Z-indices <!-- notoc -->
|
|
889
988
|
|
|
@@ -920,7 +1019,7 @@ distributed as CLI bundle with **no runtime dependencies**. The following
|
|
|
920
1019
|
dependencies are only shown for informational purposes and are (partially)
|
|
921
1020
|
included in the bundle.
|
|
922
1021
|
|
|
923
|
-
Package sizes (brotli'd, pre-treeshake): ESM: 11.
|
|
1022
|
+
Package sizes (brotli'd, pre-treeshake): ESM: 11.77 KB
|
|
924
1023
|
|
|
925
1024
|
## Dependencies
|
|
926
1025
|
|
|
@@ -947,6 +1046,7 @@ directory are using this package:
|
|
|
947
1046
|
| Screenshot | Description | Live demo | Source |
|
|
948
1047
|
|:-----------------------------------------------------------------------------------------------------------------------|:-----------------------------------------|:------------------------------------------------------|:-----------------------------------------------------------------------------------|
|
|
949
1048
|
| <img src="https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/examples/meta-css-basics.png" width="240"/> | Basic thi.ng/meta-css usage & testbed | [Demo](https://demo.thi.ng/umbrella/meta-css-basics/) | [Source](https://github.com/thi-ng/umbrella/tree/develop/examples/meta-css-basics) |
|
|
1049
|
+
| <img src="https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/examples/rdom-dnd.png" width="240"/> | rdom drag & drop example | [Demo](https://demo.thi.ng/umbrella/rdom-dnd/) | [Source](https://github.com/thi-ng/umbrella/tree/develop/examples/rdom-dnd) |
|
|
950
1050
|
| <img src="https://raw.githubusercontent.com/thi-ng/umbrella/develop/assets/examples/rdom-lazy-load.png" width="240"/> | Lazy loading components via @thi.ng/rdom | [Demo](https://demo.thi.ng/umbrella/rdom-lazy-load/) | [Source](https://github.com/thi-ng/umbrella/tree/develop/examples/rdom-lazy-load) |
|
|
951
1051
|
|
|
952
1052
|
## Authors
|
|
@@ -966,4 +1066,4 @@ If this project contributes to an academic publication, please cite it as:
|
|
|
966
1066
|
|
|
967
1067
|
## License
|
|
968
1068
|
|
|
969
|
-
© 2023 Karsten Schmidt // Apache License 2.0
|
|
1069
|
+
© 2023 - 2024 Karsten Schmidt // Apache License 2.0
|