@odx/ui 3.2.2 → 3.4.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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # @odx/ui
2
2
 
3
+ ## 3.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 40bef6d: Added header navigation component
8
+ - b18ae5a: Allow any content in header. The content is projected into it's own area inside the header
9
+ - 49f971d: Add footer component
10
+
11
+ ### Patch Changes
12
+
13
+ - 17bed8a: Align main menu title with corperate guidelines
14
+
15
+ ## 3.3.0
16
+
17
+ ### Minor Changes
18
+
19
+ - 4375380: Add notification component and service
20
+
3
21
  ## 3.2.2
4
22
 
5
23
  ### Patch Changes
package/core-theme.css CHANGED
@@ -3054,7 +3054,7 @@ html body .odx-fs-italic {
3054
3054
  }
3055
3055
 
3056
3056
  .odx-brand-logo {
3057
- color: var(--odx-c-text);
3057
+ color: inherit;
3058
3058
  display: inline-block;
3059
3059
  font-weight: var(--odx-typography-font-weight-bold);
3060
3060
  letter-spacing: var(--odx-typography-font-weight-bold-letter-spacing);
@@ -3836,6 +3836,87 @@ html body .odx-fs-italic {
3836
3836
  transform: scaleY(-1);
3837
3837
  }
3838
3838
 
3839
+ :root {
3840
+ --odx-footer-min-height: calc(var(--odx-vertical-rythm-base-size) * 10);
3841
+ --odx-footer-background-color: var(--odx-c-background-content);
3842
+ --odx-footer-text-color: var(--odx-c-text);
3843
+ --odx-footer-description-color: var(--odx-c-text-disabled);
3844
+ }
3845
+ :root .odx-footer--dark {
3846
+ --odx-footer-background-color: var(--odx-c-primary);
3847
+ --odx-footer-text-color: var(--odx-c-primary-text);
3848
+ --odx-footer-description-color: var(--odx-footer-text-color);
3849
+ }
3850
+
3851
+ :root:has([odxTheme=dark]) .odx-footer--dark,
3852
+ :root:has(.odx-theme-dark) .odx-footer--dark {
3853
+ --odx-footer-background-color: var(--blue-800);
3854
+ --odx-footer-text-color: var(--black);
3855
+ --odx-footer-description-color: var(--black);
3856
+ }
3857
+
3858
+ .odx-footer {
3859
+ background-color: var(--odx-footer-background-color);
3860
+ box-sizing: border-box;
3861
+ color: var(--odx-footer-text-color);
3862
+ display: flex;
3863
+ margin-block-start: auto;
3864
+ min-height: var(--odx-footer-min-height);
3865
+ padding-top: calc(var(--odx-vertical-rythm-base-size) * 1);
3866
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 1);
3867
+ padding-bottom: calc(var(--odx-vertical-rythm-base-size) * 1);
3868
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 1);
3869
+ }
3870
+ .odx-footer__inner, .odx-footer__navigation {
3871
+ row-gap: calc(var(--odx-vertical-rythm-base-size) * 0.25);
3872
+ }
3873
+ .odx-footer__content {
3874
+ grid-area: content;
3875
+ }
3876
+ .odx-footer__inner {
3877
+ -moz-column-gap: var(--odx-grid-gutter);
3878
+ column-gap: var(--odx-grid-gutter);
3879
+ display: grid;
3880
+ grid-template-areas: "content" "navigation" "meta";
3881
+ grid-template-rows: 1fr repeat(2, auto);
3882
+ margin-inline: auto;
3883
+ max-width: var(--odx-v-max-page-width, 100%);
3884
+ width: 100%;
3885
+ }
3886
+ .odx-footer__navigation {
3887
+ align-items: center;
3888
+ -moz-column-gap: calc(var(--odx-vertical-rythm-base-size) * 1);
3889
+ column-gap: calc(var(--odx-vertical-rythm-base-size) * 1);
3890
+ display: flex;
3891
+ flex-wrap: wrap;
3892
+ grid-area: navigation;
3893
+ grid-template-rows: 1fr auto;
3894
+ }
3895
+ .odx-footer__navigation > .odx-link {
3896
+ color: var(--odx-footer-text-color);
3897
+ }
3898
+ @media (min-width: 480px) {
3899
+ .odx-footer__navigation {
3900
+ justify-content: flex-end;
3901
+ text-align: right;
3902
+ }
3903
+ }
3904
+ .odx-footer__description {
3905
+ color: var(--odx-footer-description-color);
3906
+ grid-area: meta;
3907
+ -webkit-user-select: none;
3908
+ -moz-user-select: none;
3909
+ user-select: none;
3910
+ outline-color: transparent;
3911
+ pointer-events: none;
3912
+ font-size: calc(var(--odx-typography-base-size) * (1*1/var(--odx-typography-negative-font-scaling-factor)));
3913
+ }
3914
+ @media (min-width: 480px) {
3915
+ .odx-footer__description {
3916
+ text-align: right;
3917
+ }
3918
+ }
3919
+
3839
3920
  :root {
3840
3921
  --odx-form-field-hint-color: var(--gray-500);
3841
3922
  }
@@ -4112,17 +4193,29 @@ html body .odx-fs-italic {
4112
4193
  padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4113
4194
  margin-top: calc(var(--odx-vertical-rythm-base-size) * 0);
4114
4195
  margin-bottom: calc(var(--odx-vertical-rythm-base-size) * 0);
4115
- height: calc(var(--odx-vertical-rythm-base-size) * 2);
4196
+ min-height: calc(var(--odx-vertical-rythm-base-size) * 2);
4116
4197
  display: flex;
4117
4198
  align-items: center;
4118
4199
  background-color: var(--odx-c-background-content);
4119
4200
  }
4120
4201
  .odx-header .odx-main-menu-button {
4121
- margin-left: calc(var(--odx-vertical-rythm-base-size) * -0.3333);
4122
- margin-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4202
+ margin-inline-end: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4203
+ margin-inline-start: calc(var(--odx-vertical-rythm-base-size) * -0.3333);
4123
4204
  }
4124
- .odx-header > .odx-logo, .odx-header__title {
4125
- margin-right: auto;
4205
+ .odx-header > * {
4206
+ margin-block: 0;
4207
+ min-height: auto;
4208
+ }
4209
+ .odx-header__content {
4210
+ margin-inline-end: auto;
4211
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4212
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4213
+ }
4214
+ @media (min-width: 768px) {
4215
+ .odx-header__content {
4216
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 1);
4217
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 1);
4218
+ }
4126
4219
  }
4127
4220
  .odx-header__title {
4128
4221
  overflow: hidden;
@@ -4130,13 +4223,13 @@ html body .odx-fs-italic {
4130
4223
  white-space: nowrap;
4131
4224
  }
4132
4225
  .odx-header .odx-action-group:not(:last-child) {
4133
- border-right: 1px solid var(--odx-c-separator);
4134
- margin-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4135
- padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4226
+ border-inline-end: 1px solid var(--odx-c-separator);
4227
+ margin-inline-end: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4228
+ padding-inline-end: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4136
4229
  }
4137
4230
  .odx-header:has(> .odx-title, > .odx-header__title) > .odx-logo {
4138
4231
  display: none;
4139
- margin-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4232
+ margin-inline-end: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4140
4233
  }
4141
4234
  @media (min-width: 768px) {
4142
4235
  .odx-header:has(> .odx-title, > .odx-header__title) > .odx-logo {
@@ -4144,6 +4237,31 @@ html body .odx-fs-italic {
4144
4237
  }
4145
4238
  }
4146
4239
 
4240
+ .odx-header-navigation {
4241
+ background-color: var(--odx-c-background-content);
4242
+ border-block-start: 1px solid var(--odx-c-separator);
4243
+ display: block;
4244
+ margin-block-start: -1px;
4245
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4246
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.5);
4247
+ padding-top: calc(var(--odx-vertical-rythm-base-size) * 0.25);
4248
+ padding-bottom: calc(var(--odx-vertical-rythm-base-size) * 0.25);
4249
+ }
4250
+ .odx-header-navigation__inner {
4251
+ flex-wrap: wrap;
4252
+ height: auto;
4253
+ margin: 0;
4254
+ }
4255
+ .odx-header-navigation--centered .odx-header-navigation__inner {
4256
+ display: flex;
4257
+ justify-content: center;
4258
+ margin-inline: auto;
4259
+ max-width: var(--odx-v-max-page-width);
4260
+ }
4261
+ .odx-header-navigation__inner > .odx-button {
4262
+ margin-block: 0;
4263
+ }
4264
+
4147
4265
  .odx-inline-message {
4148
4266
  --odx-c-default: var(--blue-50);
4149
4267
  --odx-c-warning: var(--yellow-50);
@@ -4738,8 +4856,8 @@ html body .odx-fs-italic {
4738
4856
  }
4739
4857
 
4740
4858
  .odx-main-menu {
4741
- --odx-area-header-title-color: var(--odx-main-menu-highlight-color);
4742
- --odx-area-header-subtitle-color: var(--odx-c-text-inverse);
4859
+ --odx-area-header-title-color: var(--odx-main-menu-text-color);
4860
+ --odx-area-header-subtitle-color: var(--odx-main-menu-text-color);
4743
4861
  z-index: var(--odx-v-layer-6);
4744
4862
  }
4745
4863
  .odx-main-menu__inner {
@@ -5074,6 +5192,107 @@ html body .odx-fs-italic {
5074
5192
  border: none;
5075
5193
  }
5076
5194
 
5195
+ .odx-notification-center-overlay {
5196
+ --odx-cdk-connected-overlay-min-height: calc(var(--odx-vertical-rythm-base-size) * 9);
5197
+ --odx-cdk-connected-overlay-max-height-modified: min(var(--odx-cdk-connected-overlay-max-height), calc(var(--odx-vertical-rythm-base-size) * 18));
5198
+ }
5199
+ .odx-notification-center-overlay .odx-dropdown {
5200
+ --odx-cdk-connected-overlay-max-height: var(--odx-cdk-connected-overlay-max-height-modified);
5201
+ }
5202
+
5203
+ .odx-notification-center {
5204
+ --odx-notification-center-padding-x: calc(var(--odx-vertical-rythm-base-size) * 0.5);
5205
+ --odx-notification-center-padding-y: calc(var(--odx-vertical-rythm-base-size) * 0.5);
5206
+ --odx-notification-center-header-height: calc(var(--odx-vertical-rythm-base-size) * 2);
5207
+ --odx-notification-center-footer-height: calc(var(--odx-vertical-rythm-base-size) * 2.5);
5208
+ background-color: var(--odx-c-background-content);
5209
+ max-height: min(var(--odx-cdk-connected-overlay-max-height), calc(var(--odx-vertical-rythm-base-size) * 15));
5210
+ }
5211
+ .odx-notification-center__header, .odx-notification-center__footer {
5212
+ background-color: inherit;
5213
+ border-radius: var(--odx-v-border-radius);
5214
+ left: 0;
5215
+ margin-right: var(--odx-notification-center-padding-x);
5216
+ padding-left: var(--odx-notification-center-padding-x);
5217
+ position: absolute;
5218
+ right: 0;
5219
+ z-index: 1;
5220
+ }
5221
+ .odx-notification-center__header {
5222
+ border-bottom-left-radius: 0;
5223
+ border-bottom-right-radius: 0;
5224
+ height: var(--odx-notification-center-header-height);
5225
+ line-height: var(--odx-notification-center-header-height);
5226
+ top: 0;
5227
+ -webkit-user-select: none;
5228
+ -moz-user-select: none;
5229
+ user-select: none;
5230
+ font-size: calc(var(--odx-typography-base-size) * 1);
5231
+ font-weight: var(--odx-typography-font-weight-bold);
5232
+ letter-spacing: var(--odx-typography-font-weight-bold-letter-spacing);
5233
+ }
5234
+ .odx-notification-center__content {
5235
+ display: grid;
5236
+ padding-bottom: calc(var(--odx-notification-center-footer-height) - var(--odx-notification-center-padding-y));
5237
+ padding-top: calc(var(--odx-notification-center-header-height) - var(--odx-notification-center-padding-y));
5238
+ }
5239
+ .odx-notification-center__content > .odx-list-item {
5240
+ border-radius: 0;
5241
+ }
5242
+ .odx-notification-center__content > .odx-list-item:first-child {
5243
+ border-top-left-radius: var(--odx-v-border-radius-controls);
5244
+ border-top-right-radius: var(--odx-v-border-radius-controls);
5245
+ }
5246
+ .odx-notification-center__content > .odx-list-item:last-child {
5247
+ border-bottom-left-radius: var(--odx-v-border-radius-controls);
5248
+ border-bottom-right-radius: var(--odx-v-border-radius-controls);
5249
+ }
5250
+ .odx-notification-center__footer {
5251
+ align-items: center;
5252
+ border-top-left-radius: 0;
5253
+ border-top-right-radius: 0;
5254
+ bottom: 0;
5255
+ display: flex;
5256
+ height: var(--odx-notification-center-footer-height);
5257
+ justify-content: flex-end;
5258
+ }
5259
+ .odx-notification-center__footer > .odx-button {
5260
+ margin: 0;
5261
+ }
5262
+
5263
+ .odx-notification-item {
5264
+ -moz-column-gap: calc(var(--odx-vertical-rythm-base-size) * 0.6667);
5265
+ column-gap: calc(var(--odx-vertical-rythm-base-size) * 0.6667);
5266
+ display: grid;
5267
+ grid-template-areas: "avatar title actions" ". description .";
5268
+ grid-template-columns: auto 1fr auto;
5269
+ grid-template-rows: auto auto;
5270
+ min-width: calc(var(--odx-vertical-rythm-base-size) * 10);
5271
+ padding-right: calc(var(--odx-vertical-rythm-base-size) * 0.25);
5272
+ padding-left: calc(var(--odx-vertical-rythm-base-size) * 0.25);
5273
+ }
5274
+ @media (min-width: 480px) {
5275
+ .odx-notification-item {
5276
+ max-width: calc(var(--odx-vertical-rythm-base-size) * 16);
5277
+ }
5278
+ }
5279
+ .odx-notification-item__title, .odx-notification-item__description {
5280
+ padding-top: calc(var(--odx-vertical-rythm-base-size) * 0);
5281
+ padding-bottom: calc(var(--odx-vertical-rythm-base-size) * 0);
5282
+ line-height: calc(var(--odx-vertical-rythm-base-size) * 1);
5283
+ }
5284
+ .odx-notification-item__title {
5285
+ align-self: center;
5286
+ grid-area: title;
5287
+ }
5288
+ .odx-notification-item__description {
5289
+ grid-area: description;
5290
+ font-size: calc(var(--odx-typography-base-size) * (1*1/var(--odx-typography-negative-font-scaling-factor)*1/var(--odx-typography-negative-font-scaling-factor)));
5291
+ }
5292
+ .odx-notification-item__actions {
5293
+ grid-area: actions;
5294
+ }
5295
+
5077
5296
  .odx-option {
5078
5297
  padding-top: calc(var(--odx-vertical-rythm-base-size) * 0.25);
5079
5298
  padding-bottom: calc(var(--odx-vertical-rythm-base-size) * 0.25);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odx/ui",
3
- "version": "3.2.2",
3
+ "version": "3.4.0",
4
4
  "author": "Drägerwerk AG & Co.KGaA",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "peerDependencies": {
@@ -1,7 +1,7 @@
1
1
  @use '../abstract/typography';
2
2
 
3
3
  .odx-brand-logo {
4
- color: var(--odx-c-text);
4
+ color: inherit;
5
5
  display: inline-block;
6
6
 
7
7
  @include typography.font-weight(bold);
@@ -0,0 +1,86 @@
1
+ @use '../abstract/breakpoints';
2
+ @use '../abstract/dimensions';
3
+ @use '../abstract/typography';
4
+ @use '../abstract/utils';
5
+
6
+ :root {
7
+ --odx-footer-min-height: #{dimensions.get-size(10)};
8
+ --odx-footer-background-color: var(--odx-c-background-content);
9
+ --odx-footer-text-color: var(--odx-c-text);
10
+ --odx-footer-description-color: var(--odx-c-text-disabled);
11
+
12
+ .odx-footer--dark {
13
+ --odx-footer-background-color: var(--odx-c-primary);
14
+ --odx-footer-text-color: var(--odx-c-primary-text);
15
+ --odx-footer-description-color: var(--odx-footer-text-color);
16
+ }
17
+ }
18
+
19
+ @include utils.theme-selector(dark) {
20
+ .odx-footer--dark {
21
+ --odx-footer-background-color: var(--blue-800);
22
+ --odx-footer-text-color: var(--black);
23
+ --odx-footer-description-color: var(--black);
24
+ }
25
+ }
26
+
27
+ .odx-footer {
28
+ background-color: var(--odx-footer-background-color);
29
+ box-sizing: border-box;
30
+ color: var(--odx-footer-text-color);
31
+ display: flex;
32
+ margin-block-start: auto;
33
+ min-height: var(--odx-footer-min-height);
34
+
35
+ @include dimensions.padding(1);
36
+
37
+ &__inner,
38
+ &__navigation {
39
+ row-gap: #{dimensions.get-size(0.25)};
40
+ }
41
+
42
+ &__content {
43
+ grid-area: content;
44
+ }
45
+
46
+ &__inner {
47
+ column-gap: var(--odx-grid-gutter);
48
+ display: grid;
49
+ grid-template-areas: 'content' 'navigation' 'meta';
50
+ grid-template-rows: 1fr repeat(2, auto);
51
+ margin-inline: auto;
52
+ max-width: var(--odx-v-max-page-width, 100%);
53
+ width: 100%;
54
+ }
55
+
56
+ &__navigation {
57
+ align-items: center;
58
+ column-gap: #{dimensions.get-size(1)};
59
+ display: flex;
60
+ flex-wrap: wrap;
61
+ grid-area: navigation;
62
+ grid-template-rows: 1fr auto;
63
+
64
+ > .odx-link {
65
+ color: var(--odx-footer-text-color);
66
+ }
67
+
68
+ @include breakpoints.up(phone) {
69
+ justify-content: flex-end;
70
+ text-align: right;
71
+ }
72
+ }
73
+
74
+ &__description {
75
+ color: var(--odx-footer-description-color);
76
+ grid-area: meta;
77
+ user-select: none;
78
+
79
+ @include utils.non-interactive();
80
+ @include typography.font-size(-1);
81
+
82
+ @include breakpoints.up(phone) {
83
+ text-align: right;
84
+ }
85
+ }
86
+ }
@@ -0,0 +1,35 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/breakpoints';
3
+ @use '../abstract/dimensions';
4
+ @use '../abstract/utils';
5
+ @use '../abstract/typography';
6
+ @use '../layout/typography' as *;
7
+
8
+ .odx-header-navigation {
9
+ $root: &;
10
+
11
+ background-color: var(--odx-c-background-content);
12
+ border-block-start: 1px solid var(--odx-c-separator);
13
+ display: block;
14
+ margin-block-start: -1px;
15
+
16
+ @include dimensions.padding-x(0.5);
17
+ @include dimensions.padding-y(0.25);
18
+
19
+ &__inner {
20
+ flex-wrap: wrap;
21
+ height: auto;
22
+ margin: 0;
23
+
24
+ #{$root}--centered & {
25
+ display: flex;
26
+ justify-content: center;
27
+ margin-inline: auto;
28
+ max-width: var(--odx-v-max-page-width);
29
+ }
30
+
31
+ > .odx-button {
32
+ margin-block: 0;
33
+ }
34
+ }
35
+ }
@@ -8,19 +8,29 @@
8
8
  .odx-header {
9
9
  @include dimensions.padding(math.div(20, 24), 'left');
10
10
  @include dimensions.padding(0.5, 'right');
11
- @include dimensions.height(2);
11
+ @include dimensions.min-height(2);
12
12
  @include utils.vertical-center-content();
13
13
 
14
14
  background-color: var(--odx-c-background-content);
15
15
 
16
16
  .odx-main-menu-button {
17
- margin-left: dimensions.get-size(-1 * math.div(1, 3));
18
- margin-right: dimensions.get-size(0.5);
17
+ margin-inline-end: dimensions.get-size(0.5);
18
+ margin-inline-start: dimensions.get-size(-1 * math.div(1, 3));
19
19
  }
20
20
 
21
- > .odx-logo,
22
- &__title {
23
- margin-right: auto;
21
+ > * {
22
+ margin-block: 0;
23
+ min-height: auto;
24
+ }
25
+
26
+ &__content {
27
+ margin-inline-end: auto;
28
+
29
+ @include dimensions.padding-x(0.5);
30
+
31
+ @include breakpoints.up(tablet) {
32
+ @include dimensions.padding-x(1);
33
+ }
24
34
  }
25
35
 
26
36
  &__title {
@@ -30,14 +40,14 @@
30
40
  }
31
41
 
32
42
  .odx-action-group:not(:last-child) {
33
- border-right: 1px solid var(--odx-c-separator);
34
- margin-right: dimensions.get-size(0.5);
35
- padding-right: dimensions.get-size(0.5);
43
+ border-inline-end: 1px solid var(--odx-c-separator);
44
+ margin-inline-end: dimensions.get-size(0.5);
45
+ padding-inline-end: dimensions.get-size(0.5);
36
46
  }
37
47
 
38
48
  &:has(> .odx-title) > .odx-logo {
39
49
  display: none;
40
- margin-right: dimensions.get-size(0.5);
50
+ margin-inline-end: dimensions.get-size(0.5);
41
51
 
42
52
  @include breakpoints.up(tablet) {
43
53
  display: block;
@@ -25,8 +25,8 @@
25
25
  }
26
26
 
27
27
  .odx-main-menu {
28
- --odx-area-header-title-color: var(--odx-main-menu-highlight-color);
29
- --odx-area-header-subtitle-color: var(--odx-c-text-inverse);
28
+ --odx-area-header-title-color: var(--odx-main-menu-text-color);
29
+ --odx-area-header-subtitle-color: var(--odx-main-menu-text-color);
30
30
 
31
31
  z-index: var(--odx-v-layer-6);
32
32
 
@@ -0,0 +1,79 @@
1
+ @use '../abstract/dimensions';
2
+ @use '../abstract/typography';
3
+
4
+ .odx-notification-center-overlay {
5
+ --odx-cdk-connected-overlay-min-height: #{dimensions.get-size(9)};
6
+ --odx-cdk-connected-overlay-max-height-modified: min(var(--odx-cdk-connected-overlay-max-height), #{dimensions.get-size(18)});
7
+
8
+ .odx-dropdown {
9
+ --odx-cdk-connected-overlay-max-height: var(--odx-cdk-connected-overlay-max-height-modified);
10
+ }
11
+ }
12
+
13
+ .odx-notification-center {
14
+ --odx-notification-center-padding-x: #{dimensions.get-size(0.5)};
15
+ --odx-notification-center-padding-y: #{dimensions.get-size(0.5)};
16
+ --odx-notification-center-header-height: #{dimensions.get-size(2)};
17
+ --odx-notification-center-footer-height: #{dimensions.get-size(2.5)};
18
+
19
+ background-color: var(--odx-c-background-content);
20
+ max-height: min(var(--odx-cdk-connected-overlay-max-height), #{dimensions.get-size(15)});
21
+
22
+ &__header,
23
+ &__footer {
24
+ background-color: inherit;
25
+ border-radius: var(--odx-v-border-radius);
26
+ left: 0;
27
+ margin-right: var(--odx-notification-center-padding-x);
28
+ padding-left: var(--odx-notification-center-padding-x);
29
+ position: absolute;
30
+ right: 0;
31
+ z-index: 1;
32
+ }
33
+
34
+ &__header {
35
+ border-bottom-left-radius: 0;
36
+ border-bottom-right-radius: 0;
37
+ height: var(--odx-notification-center-header-height);
38
+ line-height: var(--odx-notification-center-header-height);
39
+ top: 0;
40
+ user-select: none;
41
+
42
+ @include typography.font-size(0);
43
+ @include typography.font-weight(bold);
44
+ }
45
+
46
+ &__content {
47
+ display: grid;
48
+ padding-bottom: calc(var(--odx-notification-center-footer-height) - var(--odx-notification-center-padding-y));
49
+ padding-top: calc(var(--odx-notification-center-header-height) - var(--odx-notification-center-padding-y));
50
+
51
+ > .odx-list-item {
52
+ border-radius: 0;
53
+
54
+ &:first-child {
55
+ border-top-left-radius: var(--odx-v-border-radius-controls);
56
+ border-top-right-radius: var(--odx-v-border-radius-controls);
57
+ }
58
+
59
+ &:last-child {
60
+ border-bottom-left-radius: var(--odx-v-border-radius-controls);
61
+ border-bottom-right-radius: var(--odx-v-border-radius-controls);
62
+ }
63
+ }
64
+ }
65
+
66
+ &__footer {
67
+ align-items: center;
68
+ border-top-left-radius: 0;
69
+ border-top-right-radius: 0;
70
+ bottom: 0;
71
+ display: flex;
72
+ height: var(--odx-notification-center-footer-height);
73
+ justify-content: flex-end;
74
+
75
+ > .odx-button {
76
+ margin: 0;
77
+ }
78
+ }
79
+ }
@@ -0,0 +1,41 @@
1
+ @use 'sass:math';
2
+ @use '../abstract/breakpoints';
3
+ @use '../abstract/dimensions';
4
+ @use '../abstract/typography';
5
+
6
+ .odx-notification-item {
7
+ $root: &;
8
+
9
+ column-gap: dimensions.get-size(math.div(16, 24));
10
+ display: grid;
11
+ grid-template-areas: 'avatar title actions' '. description .';
12
+ grid-template-columns: auto 1fr auto;
13
+ grid-template-rows: auto auto;
14
+ min-width: dimensions.get-size(10);
15
+
16
+ @include dimensions.padding-x(0.25);
17
+
18
+ @include breakpoints.up(phone) {
19
+ max-width: dimensions.get-size(16);
20
+ }
21
+
22
+ &__title,
23
+ &__description {
24
+ @include dimensions.line-height(1);
25
+ }
26
+
27
+ &__title {
28
+ align-self: center;
29
+ grid-area: title;
30
+ }
31
+
32
+ &__description {
33
+ grid-area: description;
34
+
35
+ @include typography.font-size(-2);
36
+ }
37
+
38
+ &__actions {
39
+ grid-area: actions;
40
+ }
41
+ }
package/scss/core.scss CHANGED
@@ -52,8 +52,10 @@ Layout
52
52
  @use 'components/dropdown.component';
53
53
  @use 'components/error-page.component';
54
54
  @use 'components/expandable-list-item.component';
55
+ @use 'components/footer.component';
55
56
  @use 'components/form-field.component';
56
57
  @use 'components/header.component';
58
+ @use 'components/header-navigation.component';
57
59
  @use 'components/icon.component';
58
60
  @use 'components/inline-message.component';
59
61
  @use 'components/link.component';
@@ -66,6 +68,8 @@ Layout
66
68
  @use 'components/menu.component';
67
69
  @use 'components/modal.component';
68
70
  @use 'components/navigation-back.component';
71
+ @use 'components/notification-center.component';
72
+ @use 'components/notification-item.component';
69
73
  @use 'components/option.component';
70
74
  @use 'components/progress.component';
71
75
  @use 'components/radio-button.component';