@odx/ui 1.0.0-rc.23 → 1.0.0-rc.24

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 (31) hide show
  1. package/README.md +1 -1
  2. package/core-theme.css +1 -1
  3. package/package.json +1 -1
  4. package/scss/3rdparty/ag-grid/theme.scss +1 -1
  5. package/scss/abstract/_utils.scss +7 -0
  6. package/scss/assets/icons.css.hbs +23 -0
  7. package/scss/components/area-header.component.scss +1 -1
  8. package/scss/components/badge.component.scss +1 -1
  9. package/scss/components/bar.component.scss +8 -1
  10. package/scss/components/button-group.component.scss +1 -1
  11. package/scss/components/button.component.scss +1 -1
  12. package/scss/components/card.component.scss +2 -0
  13. package/scss/components/form-field.component.scss +1 -1
  14. package/scss/components/link.component.scss +8 -0
  15. package/scss/components/loading-spinner.component.scss +12 -1
  16. package/scss/components/logo.component.scss +6 -1
  17. package/scss/components/main-menu-item.component.scss +10 -1
  18. package/scss/components/main-menu.component.scss +7 -1
  19. package/scss/components/mainfilter-group.component.scss +61 -0
  20. package/scss/components/modal.component.scss +4 -2
  21. package/scss/components/select.component.scss +1 -1
  22. package/scss/components/tooltip.component.scss +2 -1
  23. package/scss/core.scss +5 -0
  24. package/scss/skeleton/_skeleton.scss +49 -0
  25. package/scss/variables/_color-palettes-dark.scss +53 -0
  26. package/scss/variables/_color-palettes.scss +1 -1
  27. package/scss/variables/_colors-dark.scss +43 -0
  28. package/scss/variables/_colors.scss +3 -2
  29. package/scss/variables/_controls.scss +1 -1
  30. package/scss/variables/_index.scss +2 -0
  31. package/scss/variables/_visuals.scss +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/ui",
3
- "version": "1.0.0-rc.23",
3
+ "version": "1.0.0-rc.24",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -1,4 +1,4 @@
1
- @use '@odx/icons/core/utils' as icons;
1
+ @use '@odx/icons/core/core-utils' as icons;
2
2
  @use '../../abstract/dimensions';
3
3
  @use '../../abstract/typography';
4
4
 
@@ -122,3 +122,10 @@
122
122
  pointer-events: none;
123
123
  user-select: none;
124
124
  }
125
+
126
+ @mixin dark-theme-selector() {
127
+ &[odxTheme='dark'],
128
+ &.odx-theme-dark {
129
+ @content;
130
+ }
131
+ }
@@ -0,0 +1,23 @@
1
+ @font-face {
2
+ font-display: block;
3
+ font-family: "{{ name }}";
4
+ src: {{{ fontSrc }}};
5
+ }
6
+
7
+ .{{prefix}}::before,
8
+ [class^="{{prefix}}-"]::before,
9
+ [class*=" {{prefix}}-"]::before {
10
+ font-family: {{ name }} !important;
11
+ font-style: normal;
12
+ font-weight: normal !important;
13
+ font-variant: normal;
14
+ text-transform: none;
15
+ line-height: 1;
16
+ vertical-align: top;
17
+ -webkit-font-smoothing: antialiased;
18
+ -moz-osx-font-smoothing: grayscale;
19
+ }
20
+
21
+ {{# each codepoints }}
22
+ .{{ ../prefix }}-{{ @key }}::before { content: "\\{{ codepoint this }}"; }
23
+ {{/ each }}
@@ -6,7 +6,7 @@
6
6
  @use 'avatar.component';
7
7
  @use '../layout/typography' as *;
8
8
 
9
- :root {
9
+ body {
10
10
  --odx-area-header-title-color: var(--odx-c-headline);
11
11
  --odx-area-header-subtitle-color: var(--odx-c-headline);
12
12
  }
@@ -3,7 +3,7 @@
3
3
  @use '../abstract/utils';
4
4
  @use '../abstract/typography';
5
5
 
6
- :root {
6
+ body {
7
7
  --odx-badge-contrast-color: var(--odx-c-background-content);
8
8
  }
9
9
 
@@ -5,12 +5,19 @@
5
5
  @use '../abstract/motion';
6
6
  @use './dropdown.component' as dropdown;
7
7
 
8
- :root {
8
+ body {
9
9
  --odx-bar-background-color: var(--cyan-500);
10
10
  --odx-bar-background-color-hover: var(--cyan-600);
11
11
  --odx-bar-background-color-active: var(--cyan-700);
12
12
  --odx-bar-text-color: var(--white);
13
13
  --odx-bar-text-color-disabled: var(--cyan-700);
14
+
15
+ @include utils.dark-theme-selector() {
16
+ --odx-bar-background-color-hover: var(--cyan-400);
17
+ --odx-bar-background-color-active: var(--cyan-300);
18
+ --odx-bar-text-color: var(--black);
19
+ --odx-bar-text-color-disabled: var(--cyan-200);
20
+ }
14
21
  }
15
22
 
16
23
  .odx-bar {
@@ -34,7 +34,7 @@
34
34
  }
35
35
  }
36
36
 
37
- &:not(:first-child, :last-child) {
37
+ &:not(:first-of-type, :last-of-type) {
38
38
  border-radius: 0;
39
39
  }
40
40
  }
@@ -66,7 +66,7 @@
66
66
  }
67
67
 
68
68
  &--highlight:focus-visible {
69
- outline-color: var(--blue-400);
69
+ outline-color: var(--odx-c-focus-outline-dark);
70
70
  }
71
71
 
72
72
  @each $variant in $variants {
@@ -134,6 +134,8 @@
134
134
  }
135
135
 
136
136
  &__footer {
137
+ @include dimensions.padding-x(0.5);
138
+
137
139
  display: flex;
138
140
  gap: dimensions.get-size(math.div(12, 24));
139
141
  justify-content: flex-end;
@@ -8,7 +8,7 @@ $form-field-label-height: math.div(20, 24);
8
8
  $form-field-hint-height: math.div(16, 24);
9
9
  $form-field-inner-padding: math.div(8, 24);
10
10
 
11
- :root {
11
+ body {
12
12
  --odx-form-field-hint-color: var(--gray-500);
13
13
  }
14
14
 
@@ -1,6 +1,14 @@
1
1
  @use '../abstract/motion';
2
2
  @use '../abstract/utils';
3
3
 
4
+ body {
5
+ @include utils.dark-theme-selector() {
6
+ --odx-c-link: var(--cyan-700);
7
+ --odx-c-link-hover: var(--cyan-800);
8
+ --odx-c-link-active: var(--cyan-900);
9
+ }
10
+ }
11
+
4
12
  .odx-link {
5
13
  @include motion.transition(color background-color outline);
6
14
  @include utils.interactive();
@@ -2,6 +2,17 @@
2
2
  @use '../abstract/motion';
3
3
  @use '../abstract/utils';
4
4
 
5
+ body {
6
+ --odx-loading-spinner-track-stroke-color: var(--blue-700-15);
7
+
8
+ @include utils.dark-theme-selector() {
9
+ .odx-button {
10
+ --odx-loading-spinner-track-stroke-color: var(--blue-700-15);
11
+ }
12
+ --odx-loading-spinner-track-stroke-color: var(--gray-200);
13
+ }
14
+ }
15
+
5
16
  .odx-loading-spinner {
6
17
  $root: &;
7
18
 
@@ -35,7 +46,7 @@
35
46
  z-index: var(--odx-v-layer-3);
36
47
 
37
48
  &__track {
38
- stroke: var(--blue-700-15);
49
+ stroke: var(--odx-loading-spinner-track-stroke-color);
39
50
  }
40
51
  }
41
52
 
@@ -1,8 +1,13 @@
1
1
  @use '../abstract/dimensions';
2
+ @use '../abstract/utils';
2
3
 
3
- :root {
4
+ body {
4
5
  --odx-logo-color: var(--odx-c-primary);
5
6
  --odx-logo-color-inverse: var(--odx-c-text-inverse);
7
+
8
+ @include utils.dark-theme-selector() {
9
+ --odx-logo-color: var(--odx-c-text-inverse);
10
+ }
6
11
  }
7
12
 
8
13
  .odx-logo {
@@ -4,12 +4,17 @@
4
4
  @use '../abstract/utils';
5
5
  @use '../abstract/typography';
6
6
 
7
- :root {
7
+ body {
8
8
  --odx-main-menu-item-background-color: transparent;
9
9
  --odx-main-menu-item-background-color-hover: var(--white-5);
10
10
  --odx-main-menu-item-background-color-active: var(--odx-c-focus);
11
11
  --odx-main-menu-item-text-color: inherit;
12
12
  --odx-main-menu-item-text-color-disabled: var(--odx-c-primary-text-disabled);
13
+
14
+ @include utils.dark-theme-selector() {
15
+ --odx-main-menu-item-background-color-active: var(--cyan-500-15);
16
+ --odx-main-menu-item-text-color-disabled: var(--blue-500);
17
+ }
13
18
  }
14
19
 
15
20
  .odx-main-menu-item {
@@ -44,4 +49,8 @@
44
49
  @include dimensions.margin(math.div(1, 3), right);
45
50
  @include dimensions.margin(math.div(-1, 3), left);
46
51
  }
52
+
53
+ &:focus-visible {
54
+ background-color: var(--odx-main-menu-item-background-color-active);
55
+ }
47
56
  }
@@ -7,12 +7,18 @@
7
7
  @use 'main-menu-button.component';
8
8
  @use 'main-menu-item.component';
9
9
 
10
- :root {
10
+ body {
11
11
  --odx-main-menu-max-width: 100dvw;
12
12
  --odx-main-menu-background-color: var(--odx-c-primary);
13
13
  --odx-main-menu-text-color: var(--odx-c-primary-text);
14
14
  --odx-main-menu-highlight-color: var(--odx-c-highlight);
15
15
 
16
+ @include utils.dark-theme-selector() {
17
+ --odx-main-menu-background-color: var(--blue-800);
18
+ --odx-main-menu-text-color: var(--black);
19
+ --odx-main-menu-highlight-color: var(--cyan-500);
20
+ }
21
+
16
22
  @include breakpoints.up(phone) {
17
23
  --odx-main-menu-max-width: min(100dvw, 384px);
18
24
  }
@@ -1,5 +1,20 @@
1
1
  @use 'sass:math';
2
2
  @use '../abstract/dimensions';
3
+ @use '../abstract/typography';
4
+ @use '../abstract/utils';
5
+
6
+ body {
7
+ @include utils.dark-theme-selector() {
8
+ .odx-mainfilter-group {
9
+ --odx-input-control-outline-color: var(--blue-900);
10
+ --odx-input-control-outline-color-hover: var(--blue-900);
11
+ --odx-c-highlight: var(--blue-900);
12
+ --odx-c-highlight-text: var(--white);
13
+ --odx-c-focus-outline: var(--cyan-800);
14
+ --odx-c-focus: var(--focus-bg);
15
+ }
16
+ }
17
+ }
3
18
 
4
19
  .odx-mainfilter-group {
5
20
  --odx-input-control-background-color: var(--gray-50);
@@ -15,8 +30,19 @@
15
30
  --odx-c-highlight-active: var(--odx-c-focus-outline);
16
31
 
17
32
  .odx-form-field {
33
+ flex: 0;
18
34
  position: relative;
19
35
 
36
+ &__control {
37
+ .odx-form-field-control {
38
+ min-width: dimensions.get-size(math.div(150, 24));
39
+
40
+ &.odx-spinbox {
41
+ min-width: dimensions.get-size(math.div(172, 24));
42
+ }
43
+ }
44
+ }
45
+
20
46
  &__label {
21
47
  margin-top: 0;
22
48
  position: absolute;
@@ -48,7 +74,11 @@
48
74
  }
49
75
 
50
76
  .odx-button {
77
+ margin-top: calc(var(--odx-vertical-rythm-base-size) * 0.8334);
78
+ outline-offset: -1px;
51
79
  outline-width: var(--odx-v-outline-width);
80
+ overflow: visible;
81
+ position: relative;
52
82
 
53
83
  &:not(:focus-visible) {
54
84
  outline-color: var(--odx-input-control-outline-color);
@@ -57,6 +87,37 @@
57
87
  &:focus-visible {
58
88
  background-color: var(--odx-c-focus);
59
89
  }
90
+
91
+ &::before {
92
+ @include dimensions.padding-x(math.div(3, 24));
93
+ @include dimensions.padding-y(math.div(2, 24));
94
+ @include typography.prevent-text-overflow();
95
+
96
+ background-color: var(--odx-input-control-background-color);
97
+ border-radius: var(--odx-v-border-radius-controls);
98
+ content: attr(label);
99
+ display: inline-block;
100
+ font-size: dimensions.get-size(math.div(10, 24));
101
+ font-weight: var(--odx-typography-font-weight-normal);
102
+ line-height: 1;
103
+ margin-top: 0;
104
+ position: absolute;
105
+ right: dimensions.get-size(math.div(8, 24));
106
+ top: dimensions.get-size(math.div(-7, 24));
107
+ z-index: 1;
108
+ }
109
+ }
110
+
111
+ .odx-spinbox {
112
+ .odx-spinbox__action {
113
+ &:hover {
114
+ border-color: var(--odx-input-control-outline-color);
115
+ }
116
+
117
+ &:active {
118
+ background-color: var(--odx-c-secondary-active);
119
+ }
120
+ }
60
121
  }
61
122
 
62
123
  .odx-toggle-button-group {
@@ -10,6 +10,7 @@ $modal-padding: math.div(12, 24);
10
10
  --odx-modal-margin-y: #{dimensions.get-size(2)};
11
11
  --odx-modal-margin-x: #{dimensions.get-size(math.div(8, 24))};
12
12
  --odx-modal-max-width: #{dimensions.get-size(20)};
13
+ --odx-modal-margin-bottom: #{dimensions.get-size(0.5)};
13
14
 
14
15
  $root: &;
15
16
 
@@ -27,6 +28,7 @@ $modal-padding: math.div(12, 24);
27
28
  @include breakpoints.up(phone) {
28
29
  --odx-modal-margin-y: #{dimensions.get-size(3)};
29
30
  --odx-modal-margin-x: #{dimensions.get-size(1)};
31
+ --odx-modal-margin-bottom: #{dimensions.get-size(1)};
30
32
  }
31
33
 
32
34
  &--sidesheet {
@@ -43,7 +45,7 @@ $modal-padding: math.div(12, 24);
43
45
  display: flex;
44
46
  flex-direction: column;
45
47
  margin: var(--odx-modal-margin-y) auto 0;
46
- max-height: calc(100% - var(--odx-modal-margin-y));
48
+ max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
47
49
  min-height: dimensions.get-size(7);
48
50
  width: min(var(--odx-modal-max-width), calc(100% - 2 * var(--odx-modal-margin-x)));
49
51
 
@@ -62,7 +64,7 @@ $modal-padding: math.div(12, 24);
62
64
  #{$root}--sidesheet & {
63
65
  height: 100%;
64
66
  left: unset;
65
- max-height: calc(100% - var(--odx-modal-margin-y) - #{dimensions.get-size(0.5)});
67
+ max-height: calc(100% - var(--odx-modal-margin-y) - var(--odx-modal-margin-bottom));
66
68
  right: 0;
67
69
 
68
70
  @include breakpoints.up(phone) {
@@ -4,7 +4,7 @@
4
4
  @use '../abstract/typography';
5
5
  @use '../abstract/utils';
6
6
 
7
- :root {
7
+ body {
8
8
  --odx-select-max-height: 220px;
9
9
  }
10
10
 
@@ -1,6 +1,7 @@
1
1
  @use '../abstract/dimensions';
2
+ @use '../abstract/utils';
2
3
 
3
- :root {
4
+ body {
4
5
  --odx-tooltip-background-color: var(--blue-800);
5
6
  --odx-tooltip-color: var(--odx-c-text-inverse);
6
7
  --odx-tooltip-size-small: #{dimensions.get-size(5)};
package/scss/core.scss CHANGED
@@ -19,6 +19,11 @@ Layout
19
19
  @use 'cdk/active-indicator';
20
20
  @use 'cdk/connected-overlay';
21
21
 
22
+ /*
23
+ Skeleton
24
+ */
25
+ @use 'skeleton/skeleton';
26
+
22
27
  /*
23
28
  Components
24
29
  */
@@ -0,0 +1,49 @@
1
+ @keyframes skeleton-animation {
2
+ from {
3
+ opacity: 1;
4
+ }
5
+
6
+ to {
7
+ opacity: 0.5;
8
+ }
9
+ }
10
+
11
+ .odx-skeleton {
12
+ background-color: transparent;
13
+ color: transparent;
14
+ pointer-events: none;
15
+ position: relative;
16
+ user-select: none;
17
+
18
+ &::after {
19
+ animation: skeleton-animation ease-in-out 1s infinite alternate;
20
+ background-color: var(--gray-200);
21
+ border-radius: var(--odx-v-border-radius);
22
+ content: '';
23
+ height: 100%;
24
+ left: 0;
25
+ position: absolute;
26
+ top: 0;
27
+ width: 100%;
28
+ }
29
+
30
+ &--text::before {
31
+ content: '\a0';
32
+ }
33
+
34
+ &--short::after {
35
+ width: 40%;
36
+ }
37
+
38
+ &--center::after {
39
+ left: 50%;
40
+ position: absolute;
41
+ transform: translate(-50%, 0);
42
+ width: 40%;
43
+ }
44
+
45
+ * {
46
+ opacity: 0;
47
+ visibility: hidden;
48
+ }
49
+ }
@@ -0,0 +1,53 @@
1
+ @use '../abstract/utils';
2
+
3
+ body {
4
+ @include utils.dark-theme-selector() {
5
+ --white: #293642;
6
+ --white-dark: #060a12;
7
+ --black: #ffffff;
8
+
9
+ --focus-bg: #284e68;
10
+
11
+ --white-60: #{rgba(var(--white), 0.6)};
12
+
13
+ --gray-50: #2e3d49;
14
+ --gray-100: #344351;
15
+ --gray-200: #3e5160;
16
+ --gray-300: #495e6e;
17
+ --gray-400: #556c7c;
18
+ --gray-500: #607a8a;
19
+ --gray-600: #6d8797;
20
+ --gray-700: #7d94a1;
21
+ --gray-800: #e9eef4;
22
+ --gray-900: #9cacb4;
23
+
24
+ --blue-50: #455e85;
25
+ --blue-100: #043c95;
26
+ --blue-600: #a8c4f0;
27
+ --blue-700: #cbe9ff;
28
+ --blue-700-5: #{rgba(#cbe9ff, 0.1)};
29
+ --blue-700-10: #{rgba(#cbe9ff, 0.2)};
30
+ --blue-900: #d5e2f6;
31
+
32
+ --cyan-50: #002766;
33
+ --cyan-100: #003c66;
34
+ --cyan-200: #00508a;
35
+ --cyan-300: #0065ad;
36
+ --cyan-400: #007ad1;
37
+ --cyan-600: #1fa2ff;
38
+ --cyan-700: #47b3ff;
39
+ --cyan-800: #70c4ff;
40
+ --cyan-900: #9dd7ff;
41
+
42
+ --red-00: #4b3138;
43
+ --red-50: #724956;
44
+ --red-100: #bc0000;
45
+ --red-700: #ff9898;
46
+ --red-800: #ffb4b4;
47
+ --red-900: #ffe0e3;
48
+
49
+ --yellow-50: #5f5439;
50
+
51
+ --green-00: #355e54;
52
+ }
53
+ }
@@ -1,4 +1,4 @@
1
- :root {
1
+ body {
2
2
  --white: #ffffff;
3
3
  --black: #00060f;
4
4
 
@@ -0,0 +1,43 @@
1
+ @use '../abstract/utils';
2
+
3
+ body {
4
+ @include utils.dark-theme-selector() {
5
+ --odx-c-headline: var(--blue-900);
6
+
7
+ --odx-c-text: var(--blue-900);
8
+ --odx-c-text-inverse: var(--black);
9
+
10
+ --odx-c-link-disabled: var(--gray-400);
11
+
12
+ --odx-c-error: var(--red-00);
13
+ --odx-c-error-outline: var(--red-50);
14
+ --odx-c-error-outline-hover: var(--red-100);
15
+ --odx-c-error-text: var(--red-700);
16
+
17
+ --odx-c-focus: var(--focus-bg);
18
+ --odx-c-focus-outline: var(--cyan-200);
19
+ --odx-c-focus-outline-dark: var(--odx-c-focus-outline);
20
+
21
+ --odx-c-highlight-text: var(--black);
22
+
23
+ --odx-c-primary: var(--blue-900);
24
+ --odx-c-primary-hover: var(--blue-600);
25
+ --odx-c-primary-active: var(--blue-200);
26
+ --odx-c-primary-disabled: var(--odx-c-primary);
27
+ --odx-c-primary-text: var(--white);
28
+ --odx-c-primary-text-disabled: var(--blue-300);
29
+
30
+ --odx-c-secondary-text-disabled: var(--gray-100);
31
+
32
+ --odx-c-highlight-hover: var(--cyan-400);
33
+ --odx-c-highlight-active: var(--cyan-300);
34
+ --odx-c-highlight-text-disabled: var(--cyan-200);
35
+
36
+ --odx-c-danger-active: var(--red-100);
37
+ --odx-c-danger-text-disabled: var(--red-50);
38
+
39
+ --odx-c-success-text: var(--cyan-50);
40
+
41
+ --odx-c-confirmation-text: var(--cyan-50);
42
+ }
43
+ }
@@ -1,4 +1,4 @@
1
- :root {
1
+ body {
2
2
  --odx-c-headline: var(--blue-700);
3
3
 
4
4
  --odx-c-text: var(--blue-700);
@@ -22,7 +22,8 @@
22
22
  --odx-c-error-warning-text: var(--orange-500);
23
23
 
24
24
  --odx-c-focus: var(--cyan-500-15);
25
- --odx-c-focus-outline: var(--cyan-300);
25
+ --odx-c-focus-outline: var(--cyan-200);
26
+ --odx-c-focus-outline-dark: var(--cyan-400);
26
27
 
27
28
  --odx-c-selected: var(--cyan-500-15);
28
29
  --odx-c-selected-hover: var(--cyan-500-20);
@@ -1,4 +1,4 @@
1
- :root {
1
+ body {
2
2
  --odx-control-color: var(--odx-c-text);
3
3
  --odx-control-background-color: var(--gray-200);
4
4
  --odx-control-outline-color: var(--gray-300);
@@ -1,5 +1,7 @@
1
1
  @forward 'color-palettes';
2
+ @forward 'color-palettes-dark';
2
3
  @forward 'colors';
4
+ @forward 'colors-dark';
3
5
  @forward 'controls';
4
6
  @forward 'typography';
5
7
  @forward 'vertical-rythm';
@@ -1,4 +1,4 @@
1
- :root {
1
+ body {
2
2
  --odx-v-border-radius: calc(var(--odx-typography-base-size) * 0.375);
3
3
  --odx-v-border-radius-controls: calc(var(--odx-typography-base-size) * 0.19);
4
4