@zenit-hosting/zenit-ui 0.1.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.
Files changed (36) hide show
  1. package/README.md +400 -0
  2. package/fesm2022/zenit-hosting-zenit-ui.mjs +11289 -0
  3. package/fesm2022/zenit-hosting-zenit-ui.mjs.map +1 -0
  4. package/llms-full.txt +5120 -0
  5. package/llms.txt +179 -0
  6. package/package.json +44 -0
  7. package/schematics/collection.json +15 -0
  8. package/schematics/migrate-material/component.js +241 -0
  9. package/schematics/migrate-material/index.js +463 -0
  10. package/schematics/migrate-material/report.js +125 -0
  11. package/schematics/migrate-material/schema.js +2 -0
  12. package/schematics/migrate-material/schema.json +32 -0
  13. package/schematics/migrate-material/tables.js +138 -0
  14. package/schematics/migrate-material/template.js +871 -0
  15. package/schematics/ng-add/html.js +151 -0
  16. package/schematics/ng-add/index.js +609 -0
  17. package/schematics/ng-add/init-script.js +108 -0
  18. package/schematics/ng-add/schema.js +2 -0
  19. package/schematics/ng-add/schema.json +34 -0
  20. package/schematics/package.json +3 -0
  21. package/styles/_daten.css +138 -0
  22. package/styles/_formulare.css +97 -0
  23. package/styles/_grundlage.css +424 -0
  24. package/styles/_konfigurator.css +216 -0
  25. package/styles/_navigation.css +179 -0
  26. package/styles/_overlays.css +86 -0
  27. package/styles/_rueckmeldung.css +100 -0
  28. package/styles/_werkzeuge.css +119 -0
  29. package/styles/themes/accents.css +91 -0
  30. package/styles/themes/base.css +26 -0
  31. package/styles/themes/contrast.css +67 -0
  32. package/styles/themes/light.css +74 -0
  33. package/styles/themes.css +21 -0
  34. package/styles/tokens.css +76 -0
  35. package/styles/zenit-ui.css +12 -0
  36. package/types/zenit-hosting-zenit-ui.d.ts +5957 -0
@@ -0,0 +1,67 @@
1
+ /* Zenit themes / contrast.
2
+
3
+ A high contrast variant of the dark scheme, for glare, cheap panels and
4
+ everyone who turns the operating system setting on. Same token names, same
5
+ roles, same hues: only the distance between them grows. The derivation:
6
+
7
+ 1. Surfaces. The ground drops to pure black and the three steps above it grow
8
+ wider than in the dark scheme (#000000, #0b0b0e, #17171d, #24242c), so the
9
+ four levels stay apart although the whole ramp is darker.
10
+ 2. Text. text is pure white, text-muted and text-subtle are lifted until they
11
+ clear 7:1 and 4.5:1 with room to spare on all three surfaces; in the dark
12
+ scheme text-subtle sits at 4.78:1 on surface-raised, here at 8.77:1.
13
+ 3. Borders. This is the one place where a role really changes: border is no
14
+ longer purely decorative. In the dark scheme it is a hairline at about
15
+ 1.3:1; here it reaches 3:1 on surface (3.07:1, and 3.29:1 on bg, 2.79:1
16
+ on surface-raised), so the line between two rows is visible without
17
+ relying on the difference between the two surfaces. border-control stays
18
+ clearly above it (2.75:1 between the two lines).
19
+ 4. Accent. The fill is the one of the dark scheme. A deeper fill sinks into
20
+ the black ground (the former hover #ab1033 stood at 2.85:1 against bg), a
21
+ lighter one costs white as on-accent its 4.5:1: 4.70:1 on accent, 6.29:1
22
+ on accent-hover. accent-text is brightened so red text clears 4.5:1 on a
23
+ black ground.
24
+ 5. Status. The four status colours are brightened versions of the dark ones
25
+ and the -subtle fills go from 12 % to 16 % opacity, so a badge is a fill
26
+ and not a guess. danger is pushed towards orange: with a red-green
27
+ deficiency (deuteranopia) the former #ffa08c sat next to success at a
28
+ colour difference of about 3.5, #ff9661 at about 17.8. It keeps its
29
+ distance from accent-text in luminance as well.
30
+ 6. focus stays white; against every surface and against accent it is far
31
+ above the required 3:1.
32
+ 7. scrim and shadow-overlay go to 80 % black: on a black ground a 50 % scrim
33
+ no longer separates the dialog from the page.
34
+
35
+ No new effects: no gradient, one shadow, same radii, same type scale.
36
+ All values are verified by tools/check-theme-contrast.mjs. */
37
+ [data-theme="contrast"] {
38
+ color-scheme: dark;
39
+ --bg: #000000;
40
+ --surface: #0b0b0e;
41
+ --surface-raised: #17171d;
42
+ --surface-hover: #24242c;
43
+ --border: #5e5e6a;
44
+ --border-control: #a9a9b5;
45
+ --text: #ffffff;
46
+ --text-muted: #d5d9e1;
47
+ --text-subtle: #b0b6c2;
48
+ --accent: #e11d48;
49
+ --accent-hover: #be123c;
50
+ --on-accent: #ffffff;
51
+ --accent-text: #ff6b85;
52
+ --accent-subtle: rgba(255, 107, 133, 0.16);
53
+ --scrim: rgba(0, 0, 0, 0.8);
54
+ --focus: #ffffff;
55
+ --success: #7ce38b;
56
+ --success-subtle: rgba(124, 227, 139, 0.16);
57
+ --warning: #ffc75c;
58
+ --warning-subtle: rgba(255, 199, 92, 0.16);
59
+ --danger: #ff9661;
60
+ --danger-subtle: rgba(255, 150, 97, 0.16);
61
+ --info: #9ccdff;
62
+ --info-subtle: rgba(156, 205, 255, 0.16);
63
+ --mc-accent: #78d964;
64
+ --mc-accent-hover: #63bd51;
65
+ --on-mc: #031e06;
66
+ --shadow-overlay: 0 8px 24px rgba(0, 0, 0, 0.8);
67
+ }
@@ -0,0 +1,74 @@
1
+ /* Zenit themes / light.
2
+
3
+ Every token name and role of tokens.css stays as it is; only the values
4
+ change. The dark scheme is not touched. These values are derived, not
5
+ specified: spec/tokens.json knows one colour scheme (dark). The derivation:
6
+
7
+ 1. Surfaces. Dark steps up from the page ground (#060608) to the active row
8
+ (#1b1b21) in four values. Light mirrors that and steps DOWN from white, in
9
+ slightly larger absolute steps because the eye separates light greys less
10
+ well: #ffffff, #f4f4f6, #eaeaee, #dfdfe5. The faint blue cast of the dark
11
+ ramp (blue channel a few points above red and green) is kept.
12
+ 2. Text. Three levels, measured against bg, surface AND surface-raised; the
13
+ darkest of the three (surface-raised) is the worst case for dark type.
14
+ text >= 12:1, text-muted >= 7:1, text-subtle >= 4.5:1.
15
+ 3. Borders. border is decorative and stays low contrast. border-control
16
+ carries meaning and keeps >= 3:1 on surface.
17
+ 4. Accent. Rot stays the brand. The fill (accent, accent-hover) is deepened
18
+ until white as on-accent clears 4.5:1 on both, and accent-text is deepened
19
+ further until it clears 4.5:1 on bg and on surface.
20
+ 5. Status. On a light ground a status colour has to be dark, so success,
21
+ warning, danger and info are the deep variants of the dark hues. The
22
+ -subtle fills are NOT the same colour at 10 % opacity: on a light ground
23
+ that darkens the badge and eats the contrast the word inside it needs.
24
+ They are opaque light tints of the same hue instead, lighter than
25
+ surface-raised, which keeps the status word above 4.5:1 on its own badge.
26
+ 6. danger stays visibly apart from accent-text (CLAUDE.md, "Farbe"): it is
27
+ the more orange and the lighter of the two, measured as >= 1.25:1 between
28
+ the two colours. It is also read on surface-raised and surface-hover (the
29
+ danger item of a menu and its hover), so it clears 4.5:1 there as well;
30
+ surface-hover is the binding ground (4.59:1).
31
+ 7. focus is near black here, the counterpart of white in the dark scheme. It
32
+ keeps >= 3:1 against all four surfaces and against accent. It does not
33
+ against accent-hover (2.41:1 with rot), and it cannot: a fill that keeps
34
+ white at 4.5:1 and near black at 3:1 has to sit in a band so narrow that
35
+ hover would look like rest. The ring does not need it, because it is
36
+ drawn with a 2px offset and lies on the surface around the button, never
37
+ on the fill.
38
+ 8. scrim and shadow-overlay stay black based but lose weight; a light page
39
+ does not need a 50 % shadow to lift a dialog.
40
+ 9. Minecraft subtheme: mc-accent is deepened so the primary button carries on
41
+ a white ground, and on-mc becomes white instead of the dark green.
42
+
43
+ All values are verified by tools/check-theme-contrast.mjs. */
44
+ [data-theme="light"] {
45
+ color-scheme: light;
46
+ --bg: #ffffff;
47
+ --surface: #f4f4f6;
48
+ --surface-raised: #eaeaee;
49
+ --surface-hover: #dfdfe5;
50
+ --border: #dcdce2;
51
+ --border-control: #85858f;
52
+ --text: #18181b;
53
+ --text-muted: #4a4a54;
54
+ --text-subtle: #66666f;
55
+ --accent: #c2123f;
56
+ --accent-hover: #9d0e33;
57
+ --on-accent: #ffffff;
58
+ --accent-text: #a11039;
59
+ --accent-subtle: #fbe7ec;
60
+ --scrim: rgba(9, 9, 11, 0.5);
61
+ --focus: #09090b;
62
+ --success: #166534;
63
+ --success-subtle: #e4f3e7;
64
+ --warning: #8a5300;
65
+ --warning-subtle: #fdf0dc;
66
+ --danger: #b5330f;
67
+ --danger-subtle: #fdece7;
68
+ --info: #17548f;
69
+ --info-subtle: #e4eefa;
70
+ --mc-accent: #2f7d32;
71
+ --mc-accent-hover: #276b2a;
72
+ --on-mc: #ffffff;
73
+ --shadow-overlay: 0 8px 24px rgba(9, 9, 11, 0.18);
74
+ }
@@ -0,0 +1,21 @@
1
+ /* Zenit themes: every colour scheme and every accent of the library in one
2
+ file. Opt in, never part of zenit-ui.css, because a product that only ships
3
+ the dark scheme should not pay for the rest.
4
+
5
+ Include order: tokens.css, then this file, then zenit-ui.css. tokens.css has
6
+ to come first: :root and [data-theme="light"] have the same specificity
7
+ (0,1,0), so the later rule wins, not the more specific one.
8
+
9
+ From a package: @import "zenit-ui/styles/themes.css";
10
+ Single schemes: @import "zenit-ui/styles/themes/base.css";
11
+ @import "zenit-ui/styles/themes/light.css";
12
+ The order inside this file is fixed: base sets color-scheme for dark, light
13
+ and contrast override it, accents override the accent tokens of all three.
14
+
15
+ Checked by tools/check-theme-contrast.mjs, which reads this file to learn
16
+ the include order. */
17
+
18
+ @import "./themes/base.css";
19
+ @import "./themes/light.css";
20
+ @import "./themes/contrast.css";
21
+ @import "./themes/accents.css";
@@ -0,0 +1,76 @@
1
+ /* Zenit tokens.css: kompiliert aus tokens.json (Version 1). Einzige Stelle mit Hex- und Pixel-Werten. Nicht von Hand ändern. */
2
+ :root, [data-theme="dark"] {
3
+ --bg: #060608;
4
+ --surface: #0e0e11;
5
+ --surface-raised: #15151a;
6
+ --surface-hover: #1b1b21;
7
+ --border: #26262c;
8
+ --border-control: #62626d;
9
+ --text: #f2f2f3;
10
+ --text-muted: #9ca3af;
11
+ --text-subtle: #7d838f;
12
+ --accent: #e11d48;
13
+ --accent-hover: #be123c;
14
+ --on-accent: #ffffff;
15
+ --accent-text: #ff2d4f;
16
+ --accent-subtle: rgba(255, 45, 79, 0.1);
17
+ --scrim: rgba(0, 0, 0, 0.6);
18
+ --focus: #ffffff;
19
+ --success: #4caf50;
20
+ --success-subtle: rgba(76, 175, 80, 0.12);
21
+ --warning: #f5a524;
22
+ --warning-subtle: rgba(245, 165, 36, 0.12);
23
+ --danger: #ff6b6b;
24
+ --danger-subtle: rgba(255, 107, 107, 0.12);
25
+ --info: #6cb6ff;
26
+ --info-subtle: rgba(108, 182, 255, 0.12);
27
+ --mc-accent: #5fb84e;
28
+ --mc-accent-hover: #4ea03f;
29
+ --on-mc: #06280a;
30
+ --chart-1: #3987e5;
31
+ --chart-2: #d95926;
32
+ --chart-3: #199e70;
33
+ --chart-4: #c98500;
34
+ --shadow-overlay: 0 8px 24px rgba(0, 0, 0, 0.5);
35
+ }
36
+ :root {
37
+ --space-1: 4px;
38
+ --space-2: 8px;
39
+ --space-3: 12px;
40
+ --space-4: 16px;
41
+ --space-5: 24px;
42
+ --space-6: 32px;
43
+ --space-7: 48px;
44
+ --space-8: 64px;
45
+ --space-9: 96px;
46
+ --radius-sm: 4px;
47
+ --radius-md: 8px;
48
+ --radius-full: 9999px;
49
+ --control-sm: 32px;
50
+ --control-md: 40px;
51
+ --control-lg: 48px;
52
+ --icon: 20px;
53
+ --container: 1120px;
54
+ --sidebar: 240px;
55
+ --header: 56px;
56
+ --measure: 65ch;
57
+ --z-header: 100;
58
+ --z-overlay: 1000;
59
+ --z-toast: 1100;
60
+ --font-display: "Space Grotesk", system-ui, sans-serif;
61
+ --font-body: "Inter", system-ui, sans-serif;
62
+ --font-mono: "JetBrains Mono", ui-monospace, monospace;
63
+ }
64
+ .display-xl { font-family: var(--font-display); font-size: 56px; line-height: 60px; font-weight: 700; letter-spacing: -0.02em; }
65
+ .display-lg { font-family: var(--font-display); font-size: 40px; line-height: 44px; font-weight: 700; letter-spacing: -0.02em; }
66
+ .heading-1 { font-family: var(--font-display); font-size: 28px; line-height: 34px; font-weight: 600; letter-spacing: -0.01em; }
67
+ .heading-2 { font-family: var(--font-display); font-size: 20px; line-height: 28px; font-weight: 600; }
68
+ .body-lg { font-family: var(--font-body); font-size: 20px; line-height: 30px; font-weight: 400; }
69
+ .body { font-family: var(--font-body); font-size: 16px; line-height: 24px; font-weight: 400; }
70
+ .body-sm { font-family: var(--font-body); font-size: 14px; line-height: 20px; font-weight: 400; }
71
+ .title-sm { font-family: var(--font-body); font-size: 14px; line-height: 20px; font-weight: 600; }
72
+ .caption { font-family: var(--font-body); font-size: 12px; line-height: 16px; font-weight: 400; }
73
+ .mono-xl { font-family: var(--font-mono); font-size: 28px; line-height: 34px; font-weight: 600; }
74
+ .mono-lg { font-family: var(--font-mono); font-size: 20px; line-height: 28px; font-weight: 600; }
75
+ .mono { font-family: var(--font-mono); font-size: 14px; line-height: 20px; font-weight: 400; }
76
+ .mono-sm { font-family: var(--font-mono); font-size: 12px; line-height: 16px; font-weight: 400; }
@@ -0,0 +1,12 @@
1
+ /* Zenit UI: styles of the zenit-ui library. Every value comes from tokens.css.
2
+ Include order: tokens.css, then @angular/cdk/overlay-prebuilt.css, then this file.
3
+ The class z-root belongs on <html> and <body>. */
4
+
5
+ @import "./_grundlage.css";
6
+ @import "./_formulare.css";
7
+ @import "./_navigation.css";
8
+ @import "./_daten.css";
9
+ @import "./_rueckmeldung.css";
10
+ @import "./_overlays.css";
11
+ @import "./_werkzeuge.css";
12
+ @import "./_konfigurator.css";