@bgord/design 0.28.0 → 0.29.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/dist/main.css +2018 -2005
- package/dist/main.min.css +1 -1
- package/dist/main.min.css.br +0 -0
- package/dist/main.min.css.gz +0 -0
- package/dist/normalize.css +20 -25
- package/dist/normalize.min.css +1 -1
- package/dist/normalize.min.css.br +0 -0
- package/dist/normalize.min.css.gz +0 -0
- package/package.json +28 -49
- package/src/generate-css.ts +25 -168
- package/src/generator.ts +4 -69
- package/src/{axis-placements-generator.ts → generators/axis-placements-generator.ts} +13 -19
- package/src/generators/backdrops-generator.ts +18 -0
- package/src/{backgrounds-generator.ts → generators/backgrounds-generator.ts} +8 -8
- package/src/{border-colors-generator.ts → generators/border-colors-generator.ts} +11 -11
- package/src/generators/border-radiuses-generator.ts +17 -0
- package/src/{border-widths-generator.ts → generators/border-widths-generator.ts} +11 -15
- package/src/generators/cursors-generator.ts +28 -0
- package/src/{displays-generator.ts → generators/displays-generator.ts} +10 -16
- package/src/generators/flex-directions-generator.ts +27 -0
- package/src/generators/flex-grows-generator.ts +28 -0
- package/src/generators/flex-shrinks-generator.ts +28 -0
- package/src/generators/flex-wraps-generator.ts +28 -0
- package/src/{font-colors-generator.ts → generators/font-colors-generator.ts} +8 -8
- package/src/generators/font-size-generator.ts +28 -0
- package/src/generators/font-weight-generator.ts +18 -0
- package/src/generators/gap-generator.ts +28 -0
- package/src/generators/heights-generator.ts +28 -0
- package/src/generators/index.ts +34 -0
- package/src/generators/letter-spacings-generator.ts +18 -0
- package/src/generators/line-height-generator.ts +18 -0
- package/src/{margins-generator.ts → generators/margins-generator.ts} +20 -26
- package/src/generators/max-heights-generator.ts +28 -0
- package/src/generators/max-widths-generator.ts +28 -0
- package/src/generators/object-fits-generator.ts +28 -0
- package/src/generators/object-positions-generator.ts +28 -0
- package/src/generators/overflows-generator.ts +18 -0
- package/src/{paddings-generator.ts → generators/paddings-generator.ts} +20 -26
- package/src/generators/pointer-events-generator.ts +28 -0
- package/src/{positioners-generator.ts → generators/positioners-generator.ts} +7 -13
- package/src/generators/positions-generator.ts +28 -0
- package/src/generators/rotates-generator.ts +28 -0
- package/src/generators/shadows-generator.ts +18 -0
- package/src/{transforms-generator.ts → generators/transforms-generator.ts} +10 -14
- package/src/generators/widths-generator.ts +28 -0
- package/src/generators/z-index-generator.ts +18 -0
- package/src/index.ts +3 -0
- package/src/normalize.css +18 -19
- package/src/rules/button-empty-content.css +5 -0
- package/src/rules/button-icon-title.css +1 -1
- package/src/rules/focusable-hidden-element.css +5 -0
- package/src/rules/image-alt.css +1 -1
- package/src/rules/input-missing-id.css +4 -0
- package/src/rules/input-missing-name.css +4 -0
- package/src/rules/invalid-list-element.css +1 -1
- package/src/rules/link-empty-href.css +5 -0
- package/src/rules/target-blank-referer.css +3 -3
- package/src/rules/title-truncate.css +6 -6
- package/src/tokens.ts +245 -275
- package/src/ui/button.css +15 -11
- package/src/ui/checkbox.css +1 -1
- package/src/ui/input.css +6 -2
- package/src/ui/label.css +2 -2
- package/src/ui/link.css +1 -1
- package/src/ui/range.css +6 -10
- package/src/ui/select.css +1 -1
- package/src/ui/textarea.css +6 -2
- package/dist/axis-placements-generator.d.ts +0 -7
- package/dist/backdrops-generator.d.ts +0 -6
- package/dist/backgrounds-generator.d.ts +0 -6
- package/dist/border-colors-generator.d.ts +0 -9
- package/dist/border-radiuses-generator.d.ts +0 -6
- package/dist/border-widths-generator.d.ts +0 -6
- package/dist/cursors-generator.d.ts +0 -7
- package/dist/design.cjs.development.js +0 -2663
- package/dist/design.cjs.development.js.map +0 -1
- package/dist/design.cjs.production.min.js +0 -2
- package/dist/design.cjs.production.min.js.map +0 -1
- package/dist/design.esm.js +0 -2659
- package/dist/design.esm.js.map +0 -1
- package/dist/displays-generator.d.ts +0 -7
- package/dist/file.d.ts +0 -10
- package/dist/flex-directions-generator.d.ts +0 -7
- package/dist/flex-grows-generator.d.ts +0 -7
- package/dist/flex-shrinks-generator.d.ts +0 -7
- package/dist/flex-wraps-generator.d.ts +0 -7
- package/dist/font-colors-generator.d.ts +0 -6
- package/dist/font-size-generator.d.ts +0 -7
- package/dist/font-weight-generator.d.ts +0 -6
- package/dist/gap-generator.d.ts +0 -7
- package/dist/generate-css.d.ts +0 -1
- package/dist/generator.d.ts +0 -43
- package/dist/heights-generator.d.ts +0 -7
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -8
- package/dist/letter-spacings-generator.d.ts +0 -6
- package/dist/line-height-generator.d.ts +0 -6
- package/dist/margins-generator.d.ts +0 -7
- package/dist/max-heights-generator.d.ts +0 -7
- package/dist/max-widths-generator.d.ts +0 -7
- package/dist/object-fits-generator.d.ts +0 -7
- package/dist/object-positions-generator.d.ts +0 -7
- package/dist/overflows-generator.d.ts +0 -6
- package/dist/paddings-generator.d.ts +0 -7
- package/dist/pointer-events-generator.d.ts +0 -7
- package/dist/positioners-generator.d.ts +0 -7
- package/dist/positions-generator.d.ts +0 -7
- package/dist/rotates-generator.d.ts +0 -7
- package/dist/tokens.d.ts +0 -67
- package/dist/transforms-generator.d.ts +0 -6
- package/dist/widths-generator.d.ts +0 -7
- package/dist/z-index-generator.d.ts +0 -6
- package/src/backdrops-generator.ts +0 -22
- package/src/border-radiuses-generator.ts +0 -20
- package/src/cursors-generator.ts +0 -34
- package/src/file.ts +0 -24
- package/src/flex-directions-generator.ts +0 -33
- package/src/flex-grows-generator.ts +0 -34
- package/src/flex-shrinks-generator.ts +0 -34
- package/src/flex-wraps-generator.ts +0 -35
- package/src/font-size-generator.ts +0 -34
- package/src/font-weight-generator.ts +0 -22
- package/src/gap-generator.ts +0 -34
- package/src/heights-generator.ts +0 -34
- package/src/index.tsx +0 -3
- package/src/letter-spacings-generator.ts +0 -22
- package/src/line-height-generator.ts +0 -22
- package/src/max-heights-generator.ts +0 -34
- package/src/max-widths-generator.ts +0 -34
- package/src/object-fits-generator.ts +0 -35
- package/src/object-positions-generator.ts +0 -35
- package/src/overflows-generator.ts +0 -22
- package/src/pointer-events-generator.ts +0 -34
- package/src/positions-generator.ts +0 -35
- package/src/rotates-generator.ts +0 -35
- package/src/widths-generator.ts +0 -34
- package/src/z-index-generator.ts +0 -21
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class FlexShrinksGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Flex shrinks");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-shrink="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.FlexShrinks)) {
|
|
13
|
+
output += `*[data-shrink='${key}'] {\n flex-shrink: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.FlexShrinks)) {
|
|
20
|
+
output += ` *[data-${name}-shrink='${key}'] {\n flex-shrink: ${value};\n }\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class FlexWrapGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Flex wraps");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-wrap="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.FlexWraps)) {
|
|
13
|
+
output += `*[data-wrap='${key}'] {\n flex-wrap: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.FlexWraps)) {
|
|
20
|
+
output += ` *[data-${name}-wrap='${key}'] {\n flex-wrap: ${value};\n }\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { AbstractGenerator, GeneratorConfigType } from
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
2
|
|
|
3
3
|
export class FontColorsGenerator extends AbstractGenerator {
|
|
4
|
-
colors: GeneratorConfigType[
|
|
4
|
+
colors: GeneratorConfigType["Grayscale"];
|
|
5
5
|
|
|
6
6
|
constructor(config: GeneratorConfigType) {
|
|
7
|
-
super(
|
|
7
|
+
super("Font colors");
|
|
8
8
|
|
|
9
9
|
this.colors = {
|
|
10
|
-
...config.
|
|
11
|
-
...config.
|
|
12
|
-
...config.
|
|
13
|
-
...config.
|
|
10
|
+
...config.Grayscale,
|
|
11
|
+
...config.Greens,
|
|
12
|
+
...config.Reds,
|
|
13
|
+
...config.Oranges,
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
generateCss(): string {
|
|
18
|
-
let output =
|
|
18
|
+
let output = "";
|
|
19
19
|
|
|
20
20
|
// Regular display: data-color="*"
|
|
21
21
|
for (const [key, value] of Object.entries(this.colors)) {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class FontSizeGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Font sizes");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-fs="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.FontSizes)) {
|
|
13
|
+
output += `*[data-fs='${key}'] {\n font-size: ${value}px;\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.FontSizes)) {
|
|
20
|
+
output += ` *[data-${name}-fs='${key}'] {\n font-size: ${value}px;\n }\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class FontWeightGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Font weights");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-fw="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.FontWeights)) {
|
|
13
|
+
output += `*[data-fw='${key}'] {\n font-weight: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return output;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class GapGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Gaps");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular gap: data-gap="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
13
|
+
output += `*[data-gap='${key}'] {\n gap: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
20
|
+
output += ` *[data-${name}-gap='${key}'] {\n gap: ${value};\n }\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class HeightsGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Heights");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-height="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.Heights)) {
|
|
13
|
+
output += `*[data-height='${key}'] {\n height: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.Heights)) {
|
|
20
|
+
output += ` *[data-${name}-height='${key}'] {\n height: ${value};\n }\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export * from "./axis-placements-generator";
|
|
2
|
+
export * from "./backdrops-generator";
|
|
3
|
+
export * from "./backgrounds-generator";
|
|
4
|
+
export * from "./border-colors-generator";
|
|
5
|
+
export * from "./border-radiuses-generator";
|
|
6
|
+
export * from "./border-widths-generator";
|
|
7
|
+
export * from "./cursors-generator";
|
|
8
|
+
export * from "./displays-generator";
|
|
9
|
+
export * from "./flex-directions-generator";
|
|
10
|
+
export * from "./flex-grows-generator";
|
|
11
|
+
export * from "./flex-shrinks-generator";
|
|
12
|
+
export * from "./flex-wraps-generator";
|
|
13
|
+
export * from "./font-colors-generator";
|
|
14
|
+
export * from "./font-size-generator";
|
|
15
|
+
export * from "./font-weight-generator";
|
|
16
|
+
export * from "./gap-generator";
|
|
17
|
+
export * from "./heights-generator";
|
|
18
|
+
export * from "./letter-spacings-generator";
|
|
19
|
+
export * from "./line-height-generator";
|
|
20
|
+
export * from "./margins-generator";
|
|
21
|
+
export * from "./max-heights-generator";
|
|
22
|
+
export * from "./max-widths-generator";
|
|
23
|
+
export * from "./object-fits-generator";
|
|
24
|
+
export * from "./object-positions-generator";
|
|
25
|
+
export * from "./overflows-generator";
|
|
26
|
+
export * from "./paddings-generator";
|
|
27
|
+
export * from "./pointer-events-generator";
|
|
28
|
+
export * from "./positioners-generator";
|
|
29
|
+
export * from "./positions-generator";
|
|
30
|
+
export * from "./rotates-generator";
|
|
31
|
+
export * from "./shadows-generator";
|
|
32
|
+
export * from "./transforms-generator";
|
|
33
|
+
export * from "./widths-generator";
|
|
34
|
+
export * from "./z-index-generator";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class LetterSpacingsGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Letter spacings");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-ls="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.LetterSpacings)) {
|
|
13
|
+
output += `*[data-ls='${key}'] {\n letter-spacing: ${value}px;\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return output;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class LineHeightsGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Line heights");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-lh="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.LineHeights)) {
|
|
13
|
+
output += `*[data-lh='${key}'] {\n line-height: ${value}px;\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return output;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,79 +1,73 @@
|
|
|
1
|
-
import { AbstractGenerator, GeneratorConfigType } from
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
2
|
|
|
3
3
|
export class Margins extends AbstractGenerator {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
constructor(config: GeneratorConfigType) {
|
|
8
|
-
super('Margins');
|
|
9
|
-
|
|
10
|
-
this.spacing = config.spacing;
|
|
11
|
-
this.breakpoints = config.breakpoints;
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Margins");
|
|
12
6
|
}
|
|
13
7
|
|
|
14
8
|
generateCss(): string {
|
|
15
|
-
let output =
|
|
9
|
+
let output = "";
|
|
16
10
|
|
|
17
|
-
for (const [key, value] of Object.entries(this.
|
|
11
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
18
12
|
output += `*[data-m='${key}'] {\n margin: ${value};\n}\n`;
|
|
19
13
|
}
|
|
20
14
|
|
|
21
|
-
for (const [key, value] of Object.entries(this.
|
|
15
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
22
16
|
output += `*[data-mx='${key}'] {\n margin-left: ${value};\n margin-right: ${value};\n}\n`;
|
|
23
17
|
}
|
|
24
18
|
|
|
25
|
-
for (const [key, value] of Object.entries(this.
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
26
20
|
output += `*[data-my='${key}'] {\n margin-top: ${value};\n margin-bottom: ${value};\n}\n`;
|
|
27
21
|
}
|
|
28
22
|
|
|
29
|
-
for (const [key, value] of Object.entries(this.
|
|
23
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
30
24
|
output += `*[data-mt='${key}'] {\n margin-top: ${value};\n}\n`;
|
|
31
25
|
}
|
|
32
26
|
|
|
33
|
-
for (const [key, value] of Object.entries(this.
|
|
27
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
34
28
|
output += `*[data-mr='${key}'] {\n margin-right: ${value};\n}\n`;
|
|
35
29
|
}
|
|
36
30
|
|
|
37
|
-
for (const [key, value] of Object.entries(this.
|
|
31
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
38
32
|
output += `*[data-mb='${key}'] {\n margin-bottom: ${value};\n}\n`;
|
|
39
33
|
}
|
|
40
34
|
|
|
41
|
-
for (const [key, value] of Object.entries(this.
|
|
35
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
42
36
|
output += `*[data-ml='${key}'] {\n margin-left: ${value};\n}\n`;
|
|
43
37
|
}
|
|
44
38
|
|
|
45
|
-
for (const [name, value] of Object.entries(this.
|
|
39
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
46
40
|
output += `@media (max-width: ${value}px) {\n`;
|
|
47
41
|
|
|
48
|
-
for (const [key, value] of Object.entries(this.
|
|
42
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
49
43
|
output += ` *[data-${name}-m='${key}'] {\n margin: ${value};\n }\n`;
|
|
50
44
|
}
|
|
51
45
|
|
|
52
|
-
for (const [key, value] of Object.entries(this.
|
|
46
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
53
47
|
output += ` *[data-${name}-mx='${key}'] {\n margin-left: ${value};\n margin-right: ${value};\n }\n`;
|
|
54
48
|
}
|
|
55
49
|
|
|
56
|
-
for (const [key, value] of Object.entries(this.
|
|
50
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
57
51
|
output += ` *[data-${name}-my='${key}'] {\n margin-top: ${value};\n margin-bottom: ${value};\n }\n`;
|
|
58
52
|
}
|
|
59
53
|
|
|
60
|
-
for (const [key, value] of Object.entries(this.
|
|
54
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
61
55
|
output += ` *[data-${name}-mt='${key}'] {\n margin-top: ${value};\n }\n`;
|
|
62
56
|
}
|
|
63
57
|
|
|
64
|
-
for (const [key, value] of Object.entries(this.
|
|
58
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
65
59
|
output += ` *[data-${name}-mr='${key}'] {\n margin-right: ${value};\n }\n`;
|
|
66
60
|
}
|
|
67
61
|
|
|
68
|
-
for (const [key, value] of Object.entries(this.
|
|
62
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
69
63
|
output += ` *[data-${name}-mb='${key}'] {\n margin-bottom: ${value};\n }\n`;
|
|
70
64
|
}
|
|
71
65
|
|
|
72
|
-
for (const [key, value] of Object.entries(this.
|
|
66
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
73
67
|
output += ` *[data-${name}-ml='${key}'] {\n margin-left: ${value};\n }\n`;
|
|
74
68
|
}
|
|
75
69
|
|
|
76
|
-
output +=
|
|
70
|
+
output += "}\n";
|
|
77
71
|
}
|
|
78
72
|
|
|
79
73
|
return output;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class MaxHeightsGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Max heights");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-max-height="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.MaxHeights)) {
|
|
13
|
+
output += `*[data-max-height='${key}'] {\n max-height: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.MaxHeights)) {
|
|
20
|
+
output += `*[data-${name}-max-height='${key}'] {\n max-height: ${value};\n}\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class MaxWidthsGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Max widths");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-max-width="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.MaxWidths)) {
|
|
13
|
+
output += `*[data-max-width='${key}'] {\n max-width: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.MaxWidths)) {
|
|
20
|
+
output += `*[data-${name}-max-width='${key}'] {\n max-width: ${value};\n}\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class ObjectFitsGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Object fits");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-object-fit="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.ObjectFits)) {
|
|
13
|
+
output += `*[data-object-fit='${key}'] {\n object-fit: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.ObjectFits)) {
|
|
20
|
+
output += ` *[data-${name}-object-fit='${key}'] {\n object-fit: ${value};\n }\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class ObjectPositionsGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Object positions");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-object-position="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.ObjectPositions)) {
|
|
13
|
+
output += `*[data-object-position='${key}'] {\n object-position: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.ObjectPositions)) {
|
|
20
|
+
output += ` *[data-${name}-object-position='${key}'] {\n object-position: ${value};\n }\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class OverflowsGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Overflows");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-overflow="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.Overflows)) {
|
|
13
|
+
output += `*[data-overflow='${key}'] {\n overflow: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return output;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,86 +1,80 @@
|
|
|
1
|
-
import { AbstractGenerator, GeneratorConfigType } from
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
2
|
|
|
3
3
|
export class Paddings extends AbstractGenerator {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
constructor(config: GeneratorConfigType) {
|
|
8
|
-
super('Paddings');
|
|
9
|
-
|
|
10
|
-
this.spacing = config.spacing;
|
|
11
|
-
this.breakpoints = config.breakpoints;
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Paddings");
|
|
12
6
|
}
|
|
13
7
|
|
|
14
8
|
generateCss(): string {
|
|
15
|
-
let output =
|
|
9
|
+
let output = "";
|
|
16
10
|
|
|
17
11
|
// Regular padding: data-p="*"
|
|
18
|
-
for (const [key, value] of Object.entries(this.
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
19
13
|
output += `*[data-p='${key}'] {\n padding: ${value};\n}\n`;
|
|
20
14
|
}
|
|
21
15
|
|
|
22
16
|
// Horizontal padding: data-px="*"
|
|
23
|
-
for (const [key, value] of Object.entries(this.
|
|
17
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
24
18
|
output += `*[data-px='${key}'] {\n padding-left: ${value};\n padding-right: ${value};\n}\n`;
|
|
25
19
|
}
|
|
26
20
|
|
|
27
21
|
// Vertical padding: data-py="*"
|
|
28
|
-
for (const [key, value] of Object.entries(this.
|
|
22
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
29
23
|
output += `*[data-py='${key}'] {\n padding-top: ${value};\n padding-bottom: ${value};\n}\n`;
|
|
30
24
|
}
|
|
31
25
|
|
|
32
26
|
// Top padding: data-pt="*"
|
|
33
|
-
for (const [key, value] of Object.entries(this.
|
|
27
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
34
28
|
output += `*[data-pt='${key}'] {\n padding-top: ${value};\n}\n`;
|
|
35
29
|
}
|
|
36
30
|
|
|
37
31
|
// Right padding: data-pr="*"
|
|
38
|
-
for (const [key, value] of Object.entries(this.
|
|
32
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
39
33
|
output += `*[data-pr='${key}'] {\n padding-right: ${value};\n}\n`;
|
|
40
34
|
}
|
|
41
35
|
|
|
42
36
|
// Bottom padding: data-pb="*"
|
|
43
|
-
for (const [key, value] of Object.entries(this.
|
|
37
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
44
38
|
output += `*[data-pb='${key}'] {\n padding-bottom: ${value};\n}\n`;
|
|
45
39
|
}
|
|
46
40
|
|
|
47
41
|
// Left padding: data-pl="*"
|
|
48
|
-
for (const [key, value] of Object.entries(this.
|
|
42
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
49
43
|
output += `*[data-pl='${key}'] {\n padding-left: ${value};\n}\n`;
|
|
50
44
|
}
|
|
51
45
|
|
|
52
|
-
for (const [name, value] of Object.entries(this.
|
|
46
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
53
47
|
output += `@media (max-width: ${value}px) {\n`;
|
|
54
48
|
|
|
55
|
-
for (const [key, value] of Object.entries(this.
|
|
49
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
56
50
|
output += ` *[data-${name}-p='${key}'] {\n padding: ${value};\n }\n`;
|
|
57
51
|
}
|
|
58
52
|
|
|
59
|
-
for (const [key, value] of Object.entries(this.
|
|
53
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
60
54
|
output += ` *[data-${name}-px='${key}'] {\n padding-left: ${value};\n padding-right: ${value};\n }\n`;
|
|
61
55
|
}
|
|
62
56
|
|
|
63
|
-
for (const [key, value] of Object.entries(this.
|
|
57
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
64
58
|
output += ` *[data-${name}-py='${key}'] {\n padding-top: ${value};\n padding-bottom: ${value};\n }\n`;
|
|
65
59
|
}
|
|
66
60
|
|
|
67
|
-
for (const [key, value] of Object.entries(this.
|
|
61
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
68
62
|
output += ` *[data-${name}-pt='${key}'] {\n padding-top: ${value};\n }\n`;
|
|
69
63
|
}
|
|
70
64
|
|
|
71
|
-
for (const [key, value] of Object.entries(this.
|
|
65
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
72
66
|
output += ` *[data-${name}-pr='${key}'] {\n padding-right: ${value};\n }\n`;
|
|
73
67
|
}
|
|
74
68
|
|
|
75
|
-
for (const [key, value] of Object.entries(this.
|
|
69
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
76
70
|
output += ` *[data-${name}-pb='${key}'] {\n padding-bottom: ${value};\n }\n`;
|
|
77
71
|
}
|
|
78
72
|
|
|
79
|
-
for (const [key, value] of Object.entries(this.
|
|
73
|
+
for (const [key, value] of Object.entries(this.config.Spacing)) {
|
|
80
74
|
output += ` *[data-${name}-pl='${key}'] {\n padding-left: ${value};\n }\n`;
|
|
81
75
|
}
|
|
82
76
|
|
|
83
|
-
output +=
|
|
77
|
+
output += "}\n";
|
|
84
78
|
}
|
|
85
79
|
|
|
86
80
|
return output;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AbstractGenerator, GeneratorConfigType } from "../generator";
|
|
2
|
+
|
|
3
|
+
export class PointerEventsGenerator extends AbstractGenerator {
|
|
4
|
+
constructor(private readonly config: GeneratorConfigType) {
|
|
5
|
+
super("Pointer events");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
generateCss(): string {
|
|
9
|
+
let output = "";
|
|
10
|
+
|
|
11
|
+
// Regular display: data-pointer-events="*"
|
|
12
|
+
for (const [key, value] of Object.entries(this.config.PointerEvents)) {
|
|
13
|
+
output += `*[data-pointer-events='${key}'] {\n pointer-events: ${value};\n}\n`;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
for (const [name, value] of Object.entries(this.config.Breakpoints)) {
|
|
17
|
+
output += `@media (max-width: ${value}px) {\n`;
|
|
18
|
+
|
|
19
|
+
for (const [key, value] of Object.entries(this.config.PointerEvents)) {
|
|
20
|
+
output += ` *[data-${name}-pointer-events='${key}'] {\n pointer-events: ${value};\n }\n`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
output += "}\n";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return output;
|
|
27
|
+
}
|
|
28
|
+
}
|