@db-ux/core-components 4.0.4 → 4.2.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 +25 -0
- package/build/assets/fonts/OpenSans-Bold-EU.woff2 +0 -0
- package/build/assets/fonts/OpenSans-ExtraBold-EU.woff2 +0 -0
- package/build/assets/fonts/OpenSans-Light-EU.woff2 +0 -0
- package/build/assets/fonts/OpenSans-Medium-EU.woff2 +0 -0
- package/build/assets/fonts/OpenSans-Regular-EU.woff2 +0 -0
- package/build/assets/fonts/OpenSans-SemiBold-EU.woff2 +0 -0
- package/build/assets/fonts/generate-eu-fonts.ts +1 -1
- package/build/assets/fonts/unicode-eu.txt +1 -0
- package/build/components/badge/badge.css +2 -1
- package/build/components/button/button.css +10 -5
- package/build/components/button/button.scss +10 -5
- package/build/components/custom-select/custom-select.css +47 -4
- package/build/components/custom-select/custom-select.scss +4 -0
- package/build/components/input/input.css +46 -5
- package/build/components/notification/notification-grid-default.scss +50 -0
- package/build/components/notification/notification-grid-non-overlay.scss +71 -57
- package/build/components/notification/notification-grid-overlay.scss +153 -52
- package/build/components/notification/notification-grid-shared.css +1 -0
- package/build/components/notification/notification-grid-shared.scss +80 -0
- package/build/components/notification/notification.css +165 -67
- package/build/components/notification/notification.scss +54 -66
- package/build/components/select/select.css +44 -4
- package/build/components/tag/tag.css +2 -1
- package/build/components/textarea/textarea.css +44 -4
- package/build/styles/absolute.css +6 -6
- package/build/styles/index.css +6 -6
- package/build/styles/internal/_button-components.scss +2 -1
- package/build/styles/internal/_form-components.scss +14 -1
- package/build/styles/relative.css +6 -6
- package/build/styles/rollup.css +6 -6
- package/build/styles/webpack.css +6 -6
- package/package.json +5 -5
- package/build/assets/icons/check-circle.svg +0 -1
|
@@ -1,55 +1,156 @@
|
|
|
1
|
+
@use "notification-grid-shared" as shared;
|
|
2
|
+
|
|
3
|
+
// Wrapper mixins for overlay variants that use shared grid logic
|
|
4
|
+
@mixin overlay-base-grid($areas, $columns) {
|
|
5
|
+
@include shared.shared-base-grid($areas, $columns);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@mixin overlay-with-close($areas, $columns) {
|
|
9
|
+
@include shared.shared-with-close($areas, $columns);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@mixin overlay-with-header($areas, $columns) {
|
|
13
|
+
@include shared.shared-with-header($areas, $columns);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@mixin overlay-with-header-close($areas, $columns) {
|
|
17
|
+
@include shared.shared-with-header-close($areas, $columns);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@mixin overlay-with-icon($areas, $columns) {
|
|
21
|
+
@include shared.shared-with-icon($areas, $columns);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@mixin overlay-with-icon-close($areas, $columns) {
|
|
25
|
+
@include shared.shared-with-icon-close($areas, $columns);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@mixin overlay-with-icon-header($areas, $columns) {
|
|
29
|
+
@include shared.shared-with-icon-header($areas, $columns);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@mixin overlay-with-icon-header-close($areas, $columns) {
|
|
33
|
+
@include shared.shared-with-icon-header-close($areas, $columns);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@mixin overlay-timestamp-area-layouts() {
|
|
37
|
+
// 1. Base layout: content + timestamp
|
|
38
|
+
@include overlay-base-grid("content timestamp", 1fr min-content);
|
|
39
|
+
@include overlay-with-close(
|
|
40
|
+
"content timestamp close",
|
|
41
|
+
1fr min-content min-content
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
// 2. Progressive enhancement: adds headline
|
|
45
|
+
@include overlay-with-header(
|
|
46
|
+
"head timestamp" "content content",
|
|
47
|
+
1fr min-content
|
|
48
|
+
);
|
|
49
|
+
@include overlay-with-header-close(
|
|
50
|
+
"head timestamp close" "content content content",
|
|
51
|
+
1fr min-content min-content
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
// 3. Progressive enhancement: adds icon or image
|
|
55
|
+
@include overlay-with-icon(
|
|
56
|
+
"icon content timestamp",
|
|
57
|
+
min-content 1fr min-content
|
|
58
|
+
);
|
|
59
|
+
@include overlay-with-icon-close(
|
|
60
|
+
"icon content timestamp close",
|
|
61
|
+
min-content 1fr min-content min-content
|
|
62
|
+
);
|
|
63
|
+
@include overlay-with-icon-header(
|
|
64
|
+
"icon head timestamp" "icon content content",
|
|
65
|
+
min-content 1fr min-content
|
|
66
|
+
);
|
|
67
|
+
@include overlay-with-icon-header-close(
|
|
68
|
+
"icon head timestamp close" "icon content content content",
|
|
69
|
+
min-content 1fr min-content min-content
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@mixin overlay-block-layouts-without-timestamp() {
|
|
74
|
+
// 1. Base layout: content + block link (overridden by subsequent mixins when additional elements detected)
|
|
75
|
+
@include overlay-base-grid("content" "link", 1fr);
|
|
76
|
+
@include overlay-with-close("content close" "link link", 1fr min-content);
|
|
77
|
+
|
|
78
|
+
// 2. Progressive enhancement: adds headline
|
|
79
|
+
@include overlay-with-header("head" "content" "link", 1fr);
|
|
80
|
+
@include overlay-with-header-close(
|
|
81
|
+
"head close" "content content" "link link",
|
|
82
|
+
1fr min-content
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
// 3. Progressive enhancement: adds icon or image
|
|
86
|
+
@include overlay-with-icon("icon content" "icon link", min-content 1fr);
|
|
87
|
+
@include overlay-with-icon-close(
|
|
88
|
+
"icon content close" "icon link link",
|
|
89
|
+
min-content 1fr min-content
|
|
90
|
+
);
|
|
91
|
+
@include overlay-with-icon-header(
|
|
92
|
+
"icon head" "icon content" "icon link",
|
|
93
|
+
min-content 1fr
|
|
94
|
+
);
|
|
95
|
+
@include overlay-with-icon-header-close(
|
|
96
|
+
"icon head close" "icon content content" "icon link link",
|
|
97
|
+
min-content 1fr min-content
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@mixin overlay-block-layouts() {
|
|
102
|
+
// 1. Base layout when content, timestamp, and block link are present (more specific rules apply when additional elements are detected)
|
|
103
|
+
@include overlay-base-grid(
|
|
104
|
+
"content timestamp" "link link",
|
|
105
|
+
1fr min-content
|
|
106
|
+
);
|
|
107
|
+
@include overlay-with-close(
|
|
108
|
+
"content timestamp close" "link link link",
|
|
109
|
+
1fr min-content min-content
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
// 2. Progressive enhancement: adds headline
|
|
113
|
+
@include overlay-with-header(
|
|
114
|
+
"head timestamp" "content content" "link link",
|
|
115
|
+
1fr min-content
|
|
116
|
+
);
|
|
117
|
+
@include overlay-with-header-close(
|
|
118
|
+
"head timestamp close" "content content content" "link link link",
|
|
119
|
+
1fr min-content min-content
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
// 3. Progressive enhancement: adds icon or image
|
|
123
|
+
@include overlay-with-icon(
|
|
124
|
+
"icon content timestamp" "icon link link",
|
|
125
|
+
min-content 1fr min-content
|
|
126
|
+
);
|
|
127
|
+
@include overlay-with-icon-close(
|
|
128
|
+
"icon content timestamp close" "icon link link link",
|
|
129
|
+
min-content 1fr min-content min-content
|
|
130
|
+
);
|
|
131
|
+
@include overlay-with-icon-header(
|
|
132
|
+
"icon head timestamp" "icon content content" "icon link link",
|
|
133
|
+
min-content 1fr min-content
|
|
134
|
+
);
|
|
135
|
+
@include overlay-with-icon-header-close(
|
|
136
|
+
"icon head timestamp close" "icon content content content"
|
|
137
|
+
"icon link link link",
|
|
138
|
+
min-content 1fr min-content min-content
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
1
142
|
%grid-layout-variant-overlay {
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
&:has(header) {
|
|
15
|
-
grid-template-columns: 1fr min-content;
|
|
16
|
-
grid-template-areas:
|
|
17
|
-
"head timestamp"
|
|
18
|
-
"content content";
|
|
19
|
-
|
|
20
|
-
&:has(.db-button) {
|
|
21
|
-
grid-template-columns: 1fr min-content min-content;
|
|
22
|
-
grid-template-areas:
|
|
23
|
-
"head timestamp close"
|
|
24
|
-
"content content content";
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// 3. icon or img
|
|
29
|
-
&[data-icon],
|
|
30
|
-
&[data-semantic]:not([data-semantic="adaptive"]),
|
|
31
|
-
&:has(img) {
|
|
32
|
-
grid-template-areas: "icon content timestamp";
|
|
33
|
-
grid-template-columns: min-content 1fr min-content;
|
|
34
|
-
|
|
35
|
-
&:has(.db-button) {
|
|
36
|
-
grid-template-columns: min-content 1fr min-content min-content;
|
|
37
|
-
grid-template-areas: "icon content timestamp close";
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
&:has(header) {
|
|
41
|
-
grid-template-columns: min-content 1fr min-content;
|
|
42
|
-
grid-template-areas:
|
|
43
|
-
"icon head timestamp"
|
|
44
|
-
"icon content content";
|
|
45
|
-
|
|
46
|
-
&:has(.db-button) {
|
|
47
|
-
grid-template-columns: min-content 1fr min-content min-content;
|
|
48
|
-
grid-template-areas:
|
|
49
|
-
"icon head timestamp close"
|
|
50
|
-
"icon content content content";
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
143
|
+
// 1. Standard: Layout for inline links AND timestamps
|
|
144
|
+
// Both use the 'timestamp' area, which moves to the header when a header is present.
|
|
145
|
+
@include overlay-timestamp-area-layouts;
|
|
146
|
+
|
|
147
|
+
// 2. Override: When explicitly "block" link variant with timestamp
|
|
148
|
+
&:has(span)[data-link-variant="block"] {
|
|
149
|
+
@include overlay-block-layouts;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// 3. Override: When "block" link variant WITHOUT timestamp
|
|
153
|
+
&:not(:has(span))[data-link-variant="block"] {
|
|
154
|
+
@include overlay-block-layouts-without-timestamp;
|
|
54
155
|
}
|
|
55
156
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Shared grid mixins for notification layouts
|
|
2
|
+
// These mixins contain the common grid logic used by both overlay and non-overlay variants
|
|
3
|
+
|
|
4
|
+
@mixin shared-base-grid($areas, $columns) {
|
|
5
|
+
grid-template-areas: $areas;
|
|
6
|
+
grid-template-columns: $columns;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@mixin shared-with-close($areas, $columns) {
|
|
10
|
+
&:has(.db-button) {
|
|
11
|
+
grid-template-areas: $areas;
|
|
12
|
+
grid-template-columns: $columns;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@mixin shared-with-header($areas, $columns) {
|
|
17
|
+
&:has(header) {
|
|
18
|
+
grid-template-areas: $areas;
|
|
19
|
+
grid-template-columns: $columns;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@mixin shared-with-header-close($areas, $columns) {
|
|
24
|
+
&:has(header):has(.db-button) {
|
|
25
|
+
grid-template-areas: $areas;
|
|
26
|
+
grid-template-columns: $columns;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@mixin shared-with-icon($areas, $columns) {
|
|
31
|
+
// Only treat the element as having an icon when the "data-show-icon"
|
|
32
|
+
// attribute is not explicitly set to "false". This prevents reserving
|
|
33
|
+
// grid space for an icon when the component has an `icon` prop but
|
|
34
|
+
// `showIcon` is false (the common cause for unintended left padding).
|
|
35
|
+
&[data-icon]:not([data-show-icon="false"]),
|
|
36
|
+
&[data-semantic]:not([data-semantic="adaptive"], [data-show-icon="false"]),
|
|
37
|
+
&:has(img) {
|
|
38
|
+
grid-template-areas: $areas;
|
|
39
|
+
grid-template-columns: $columns;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@mixin shared-with-icon-close($areas, $columns) {
|
|
44
|
+
// Same as shared-with-icon but for variants that also have a close button
|
|
45
|
+
&[data-icon]:not([data-show-icon="false"]):has(.db-button),
|
|
46
|
+
&[data-semantic]:not(
|
|
47
|
+
[data-semantic="adaptive"],
|
|
48
|
+
[data-show-icon="false"]
|
|
49
|
+
):has(.db-button),
|
|
50
|
+
&:has(img):has(.db-button) {
|
|
51
|
+
grid-template-areas: $areas;
|
|
52
|
+
grid-template-columns: $columns;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@mixin shared-with-icon-header($areas, $columns) {
|
|
57
|
+
// Same as shared-with-icon but for variants that also have a header
|
|
58
|
+
&[data-icon]:not([data-show-icon="false"]):has(header),
|
|
59
|
+
&[data-semantic]:not(
|
|
60
|
+
[data-semantic="adaptive"],
|
|
61
|
+
[data-show-icon="false"]
|
|
62
|
+
):has(header),
|
|
63
|
+
&:has(img):has(header) {
|
|
64
|
+
grid-template-areas: $areas;
|
|
65
|
+
grid-template-columns: $columns;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@mixin shared-with-icon-header-close($areas, $columns) {
|
|
70
|
+
// Same as shared-with-icon but for variants that have a header and close button
|
|
71
|
+
&[data-icon]:not([data-show-icon="false"]):has(header):has(.db-button),
|
|
72
|
+
&[data-semantic]:not(
|
|
73
|
+
[data-semantic="adaptive"],
|
|
74
|
+
[data-show-icon="false"]
|
|
75
|
+
):has(header):has(.db-button),
|
|
76
|
+
&:has(img):has(header):has(.db-button) {
|
|
77
|
+
grid-template-areas: $areas;
|
|
78
|
+
grid-template-columns: $columns;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -840,12 +840,12 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
|
|
|
840
840
|
|
|
841
841
|
@layer variables {}
|
|
842
842
|
|
|
843
|
-
.db-notification a[data-size=small], .db-notification p {
|
|
843
|
+
.db-notification a[data-size=small], .db-notification p, .db-notification[data-link-variant=inline] a {
|
|
844
844
|
font: var(--db-type-body-md);
|
|
845
845
|
/* stylelint-disable-next-line at-rule-prelude-no-invalid,layer-name-pattern */
|
|
846
846
|
}
|
|
847
847
|
@layer variables {
|
|
848
|
-
.db-notification a[data-size=small], .db-notification p {
|
|
848
|
+
.db-notification a[data-size=small], .db-notification p, .db-notification[data-link-variant=inline] a {
|
|
849
849
|
/* Those variables are only for components to calculate heights and change icons */
|
|
850
850
|
--db-icon-font-weight: var(--db-base-body-icon-weight-md);
|
|
851
851
|
--db-icon-font-size: var(--db-base-body-icon-font-size-md);
|
|
@@ -1100,98 +1100,213 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
|
|
|
1100
1100
|
grid-template-areas: "content";
|
|
1101
1101
|
grid-template-columns: 1fr;
|
|
1102
1102
|
}
|
|
1103
|
+
[data-link-variant=inline].db-notification {
|
|
1104
|
+
grid-template-columns: 1fr min-content;
|
|
1105
|
+
grid-template-areas: "content timestamp";
|
|
1106
|
+
}
|
|
1103
1107
|
.db-notification:has(.db-button) {
|
|
1104
1108
|
grid-template-columns: 1fr min-content;
|
|
1105
1109
|
grid-template-areas: "content close";
|
|
1106
1110
|
}
|
|
1111
|
+
.db-notification:has(.db-button)[data-link-variant=inline] {
|
|
1112
|
+
grid-template-columns: 1fr min-content min-content;
|
|
1113
|
+
grid-template-areas: "content timestamp close";
|
|
1114
|
+
}
|
|
1107
1115
|
.db-notification:has(header) {
|
|
1108
1116
|
grid-template-columns: 1fr;
|
|
1109
1117
|
grid-template-areas: "head" "content";
|
|
1110
1118
|
}
|
|
1119
|
+
.db-notification:has(header)[data-link-variant=inline] {
|
|
1120
|
+
grid-template-columns: 1fr min-content;
|
|
1121
|
+
grid-template-areas: "head timestamp" "content content";
|
|
1122
|
+
}
|
|
1111
1123
|
.db-notification:has(header):has(.db-button) {
|
|
1112
1124
|
grid-template-columns: 1fr min-content;
|
|
1113
1125
|
grid-template-areas: "head close" "content content";
|
|
1114
1126
|
}
|
|
1127
|
+
.db-notification:has(header):has(.db-button)[data-link-variant=inline] {
|
|
1128
|
+
grid-template-columns: 1fr min-content min-content;
|
|
1129
|
+
grid-template-areas: "head timestamp close" "content content .";
|
|
1130
|
+
}
|
|
1115
1131
|
[data-icon].db-notification, [data-semantic].db-notification:not([data-semantic=adaptive]), .db-notification:has(img) {
|
|
1116
1132
|
grid-template-areas: "icon content";
|
|
1117
1133
|
grid-template-columns: min-content 1fr;
|
|
1118
1134
|
}
|
|
1135
|
+
[data-icon][data-link-variant=inline].db-notification, [data-semantic].db-notification:not([data-semantic=adaptive])[data-link-variant=inline], .db-notification:has(img)[data-link-variant=inline] {
|
|
1136
|
+
grid-template-columns: min-content 1fr min-content;
|
|
1137
|
+
grid-template-areas: "icon content timestamp";
|
|
1138
|
+
}
|
|
1119
1139
|
[data-icon].db-notification:has(.db-button), [data-semantic].db-notification:not([data-semantic=adaptive]):has(.db-button), .db-notification:has(img):has(.db-button) {
|
|
1120
1140
|
grid-template-columns: min-content 1fr min-content;
|
|
1121
1141
|
grid-template-areas: "icon content close";
|
|
1122
1142
|
}
|
|
1143
|
+
[data-icon].db-notification:has(.db-button)[data-link-variant=inline], [data-semantic].db-notification:not([data-semantic=adaptive]):has(.db-button)[data-link-variant=inline], .db-notification:has(img):has(.db-button)[data-link-variant=inline] {
|
|
1144
|
+
grid-template-columns: min-content 1fr min-content min-content;
|
|
1145
|
+
grid-template-areas: "icon content timestamp close";
|
|
1146
|
+
}
|
|
1123
1147
|
[data-icon].db-notification:has(header), [data-semantic].db-notification:not([data-semantic=adaptive]):has(header), .db-notification:has(img):has(header) {
|
|
1124
1148
|
grid-template-columns: min-content 1fr;
|
|
1125
1149
|
grid-template-areas: "icon head" "icon content";
|
|
1126
1150
|
}
|
|
1151
|
+
[data-icon].db-notification:has(header)[data-link-variant=inline], [data-semantic].db-notification:not([data-semantic=adaptive]):has(header)[data-link-variant=inline], .db-notification:has(img):has(header)[data-link-variant=inline] {
|
|
1152
|
+
grid-template-columns: min-content 1fr min-content;
|
|
1153
|
+
grid-template-areas: "icon head timestamp" "icon content content";
|
|
1154
|
+
}
|
|
1127
1155
|
[data-icon].db-notification:has(header):has(.db-button), [data-semantic].db-notification:not([data-semantic=adaptive]):has(header):has(.db-button), .db-notification:has(img):has(header):has(.db-button) {
|
|
1128
1156
|
grid-template-columns: min-content 1fr min-content;
|
|
1129
1157
|
grid-template-areas: "icon head close" "icon content content";
|
|
1130
1158
|
}
|
|
1159
|
+
[data-icon].db-notification:has(header):has(.db-button)[data-link-variant=inline], [data-semantic].db-notification:not([data-semantic=adaptive]):has(header):has(.db-button)[data-link-variant=inline], .db-notification:has(img):has(header):has(.db-button)[data-link-variant=inline] {
|
|
1160
|
+
grid-template-columns: min-content 1fr min-content min-content;
|
|
1161
|
+
grid-template-areas: "icon head timestamp close" "icon content content .";
|
|
1162
|
+
}
|
|
1131
1163
|
|
|
1132
|
-
.db-notification[data-variant=overlay]
|
|
1164
|
+
.db-notification[data-variant=overlay] {
|
|
1133
1165
|
grid-template-areas: "content timestamp";
|
|
1134
1166
|
grid-template-columns: 1fr min-content;
|
|
1135
1167
|
}
|
|
1136
|
-
.db-notification[data-variant=overlay]:has(
|
|
1137
|
-
grid-template-columns: 1fr min-content min-content;
|
|
1168
|
+
.db-notification[data-variant=overlay]:has(.db-button) {
|
|
1138
1169
|
grid-template-areas: "content timestamp close";
|
|
1170
|
+
grid-template-columns: 1fr min-content min-content;
|
|
1139
1171
|
}
|
|
1140
|
-
.db-notification[data-variant=overlay]:has(
|
|
1141
|
-
grid-template-columns: 1fr min-content;
|
|
1172
|
+
.db-notification[data-variant=overlay]:has(header) {
|
|
1142
1173
|
grid-template-areas: "head timestamp" "content content";
|
|
1174
|
+
grid-template-columns: 1fr min-content;
|
|
1143
1175
|
}
|
|
1144
|
-
.db-notification[data-variant=overlay]:has(
|
|
1145
|
-
grid-template-columns: 1fr min-content min-content;
|
|
1176
|
+
.db-notification[data-variant=overlay]:has(header):has(.db-button) {
|
|
1146
1177
|
grid-template-areas: "head timestamp close" "content content content";
|
|
1178
|
+
grid-template-columns: 1fr min-content min-content;
|
|
1147
1179
|
}
|
|
1148
|
-
.db-notification[data-variant=overlay]:
|
|
1180
|
+
[data-icon].db-notification[data-variant=overlay]:not([data-show-icon=false]), [data-semantic].db-notification[data-variant=overlay]:not([data-semantic=adaptive], [data-show-icon=false]), .db-notification[data-variant=overlay]:has(img) {
|
|
1149
1181
|
grid-template-areas: "icon content timestamp";
|
|
1150
1182
|
grid-template-columns: min-content 1fr min-content;
|
|
1151
1183
|
}
|
|
1152
|
-
.db-notification[data-variant=overlay]:
|
|
1153
|
-
|
|
1184
|
+
[data-icon].db-notification[data-variant=overlay]:not([data-show-icon=false]):has(.db-button), [data-semantic].db-notification[data-variant=overlay]:not([data-semantic=adaptive],
|
|
1185
|
+
[data-show-icon=false]):has(.db-button), .db-notification[data-variant=overlay]:has(img):has(.db-button) {
|
|
1154
1186
|
grid-template-areas: "icon content timestamp close";
|
|
1187
|
+
grid-template-columns: min-content 1fr min-content min-content;
|
|
1155
1188
|
}
|
|
1156
|
-
.db-notification[data-variant=overlay]:
|
|
1157
|
-
|
|
1189
|
+
[data-icon].db-notification[data-variant=overlay]:not([data-show-icon=false]):has(header), [data-semantic].db-notification[data-variant=overlay]:not([data-semantic=adaptive],
|
|
1190
|
+
[data-show-icon=false]):has(header), .db-notification[data-variant=overlay]:has(img):has(header) {
|
|
1158
1191
|
grid-template-areas: "icon head timestamp" "icon content content";
|
|
1192
|
+
grid-template-columns: min-content 1fr min-content;
|
|
1159
1193
|
}
|
|
1160
|
-
.db-notification[data-variant=overlay]:
|
|
1161
|
-
|
|
1194
|
+
[data-icon].db-notification[data-variant=overlay]:not([data-show-icon=false]):has(header):has(.db-button), [data-semantic].db-notification[data-variant=overlay]:not([data-semantic=adaptive],
|
|
1195
|
+
[data-show-icon=false]):has(header):has(.db-button), .db-notification[data-variant=overlay]:has(img):has(header):has(.db-button) {
|
|
1162
1196
|
grid-template-areas: "icon head timestamp close" "icon content content content";
|
|
1197
|
+
grid-template-columns: min-content 1fr min-content min-content;
|
|
1198
|
+
}
|
|
1199
|
+
.db-notification[data-variant=overlay]:has(span)[data-link-variant=block] {
|
|
1200
|
+
grid-template-areas: "content timestamp" "link link";
|
|
1201
|
+
grid-template-columns: 1fr min-content;
|
|
1202
|
+
}
|
|
1203
|
+
.db-notification[data-variant=overlay]:has(span)[data-link-variant=block]:has(.db-button) {
|
|
1204
|
+
grid-template-areas: "content timestamp close" "link link link";
|
|
1205
|
+
grid-template-columns: 1fr min-content min-content;
|
|
1206
|
+
}
|
|
1207
|
+
.db-notification[data-variant=overlay]:has(span)[data-link-variant=block]:has(header) {
|
|
1208
|
+
grid-template-areas: "head timestamp" "content content" "link link";
|
|
1209
|
+
grid-template-columns: 1fr min-content;
|
|
1210
|
+
}
|
|
1211
|
+
.db-notification[data-variant=overlay]:has(span)[data-link-variant=block]:has(header):has(.db-button) {
|
|
1212
|
+
grid-template-areas: "head timestamp close" "content content content" "link link link";
|
|
1213
|
+
grid-template-columns: 1fr min-content min-content;
|
|
1214
|
+
}
|
|
1215
|
+
.db-notification[data-variant=overlay]:has(span)[data-link-variant=block][data-icon]:not([data-show-icon=false]), .db-notification[data-variant=overlay]:has(span)[data-link-variant=block][data-semantic]:not([data-semantic=adaptive], [data-show-icon=false]), .db-notification[data-variant=overlay]:has(span)[data-link-variant=block]:has(img) {
|
|
1216
|
+
grid-template-areas: "icon content timestamp" "icon link link";
|
|
1217
|
+
grid-template-columns: min-content 1fr min-content;
|
|
1218
|
+
}
|
|
1219
|
+
.db-notification[data-variant=overlay]:has(span)[data-link-variant=block][data-icon]:not([data-show-icon=false]):has(.db-button), .db-notification[data-variant=overlay]:has(span)[data-link-variant=block][data-semantic]:not([data-semantic=adaptive],
|
|
1220
|
+
[data-show-icon=false]):has(.db-button), .db-notification[data-variant=overlay]:has(span)[data-link-variant=block]:has(img):has(.db-button) {
|
|
1221
|
+
grid-template-areas: "icon content timestamp close" "icon link link link";
|
|
1222
|
+
grid-template-columns: min-content 1fr min-content min-content;
|
|
1223
|
+
}
|
|
1224
|
+
.db-notification[data-variant=overlay]:has(span)[data-link-variant=block][data-icon]:not([data-show-icon=false]):has(header), .db-notification[data-variant=overlay]:has(span)[data-link-variant=block][data-semantic]:not([data-semantic=adaptive],
|
|
1225
|
+
[data-show-icon=false]):has(header), .db-notification[data-variant=overlay]:has(span)[data-link-variant=block]:has(img):has(header) {
|
|
1226
|
+
grid-template-areas: "icon head timestamp" "icon content content" "icon link link";
|
|
1227
|
+
grid-template-columns: min-content 1fr min-content;
|
|
1228
|
+
}
|
|
1229
|
+
.db-notification[data-variant=overlay]:has(span)[data-link-variant=block][data-icon]:not([data-show-icon=false]):has(header):has(.db-button), .db-notification[data-variant=overlay]:has(span)[data-link-variant=block][data-semantic]:not([data-semantic=adaptive],
|
|
1230
|
+
[data-show-icon=false]):has(header):has(.db-button), .db-notification[data-variant=overlay]:has(span)[data-link-variant=block]:has(img):has(header):has(.db-button) {
|
|
1231
|
+
grid-template-areas: "icon head timestamp close" "icon content content content" "icon link link link";
|
|
1232
|
+
grid-template-columns: min-content 1fr min-content min-content;
|
|
1233
|
+
}
|
|
1234
|
+
.db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block] {
|
|
1235
|
+
grid-template-areas: "content" "link";
|
|
1236
|
+
grid-template-columns: 1fr;
|
|
1237
|
+
}
|
|
1238
|
+
.db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block]:has(.db-button) {
|
|
1239
|
+
grid-template-areas: "content close" "link link";
|
|
1240
|
+
grid-template-columns: 1fr min-content;
|
|
1241
|
+
}
|
|
1242
|
+
.db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block]:has(header) {
|
|
1243
|
+
grid-template-areas: "head" "content" "link";
|
|
1244
|
+
grid-template-columns: 1fr;
|
|
1245
|
+
}
|
|
1246
|
+
.db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block]:has(header):has(.db-button) {
|
|
1247
|
+
grid-template-areas: "head close" "content content" "link link";
|
|
1248
|
+
grid-template-columns: 1fr min-content;
|
|
1249
|
+
}
|
|
1250
|
+
.db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block][data-icon]:not([data-show-icon=false]), .db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block][data-semantic]:not([data-semantic=adaptive], [data-show-icon=false]), .db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block]:has(img) {
|
|
1251
|
+
grid-template-areas: "icon content" "icon link";
|
|
1252
|
+
grid-template-columns: min-content 1fr;
|
|
1253
|
+
}
|
|
1254
|
+
.db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block][data-icon]:not([data-show-icon=false]):has(.db-button), .db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block][data-semantic]:not([data-semantic=adaptive],
|
|
1255
|
+
[data-show-icon=false]):has(.db-button), .db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block]:has(img):has(.db-button) {
|
|
1256
|
+
grid-template-areas: "icon content close" "icon link link";
|
|
1257
|
+
grid-template-columns: min-content 1fr min-content;
|
|
1258
|
+
}
|
|
1259
|
+
.db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block][data-icon]:not([data-show-icon=false]):has(header), .db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block][data-semantic]:not([data-semantic=adaptive],
|
|
1260
|
+
[data-show-icon=false]):has(header), .db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block]:has(img):has(header) {
|
|
1261
|
+
grid-template-areas: "icon head" "icon content" "icon link";
|
|
1262
|
+
grid-template-columns: min-content 1fr;
|
|
1263
|
+
}
|
|
1264
|
+
.db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block][data-icon]:not([data-show-icon=false]):has(header):has(.db-button), .db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block][data-semantic]:not([data-semantic=adaptive],
|
|
1265
|
+
[data-show-icon=false]):has(header):has(.db-button), .db-notification[data-variant=overlay]:not(:has(span))[data-link-variant=block]:has(img):has(header):has(.db-button) {
|
|
1266
|
+
grid-template-areas: "icon head close" "icon content content" "icon link link";
|
|
1267
|
+
grid-template-columns: min-content 1fr min-content;
|
|
1163
1268
|
}
|
|
1164
1269
|
|
|
1165
|
-
.db-notification:not([data-variant=overlay]) span {
|
|
1270
|
+
.db-notification:not([data-variant=overlay])[data-link-variant=block] span, .db-notification:not([data-variant=overlay]):not([data-link-variant]):has(a) span {
|
|
1166
1271
|
display: none;
|
|
1167
1272
|
}
|
|
1168
|
-
.db-notification:
|
|
1273
|
+
[data-link-variant=block].db-notification:not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a):not([data-variant=overlay]) {
|
|
1169
1274
|
grid-template-areas: "content" "link";
|
|
1170
1275
|
grid-template-columns: 1fr;
|
|
1171
1276
|
}
|
|
1172
|
-
.db-notification:has(
|
|
1173
|
-
grid-template-columns: 1fr min-content;
|
|
1277
|
+
[data-link-variant=block].db-notification:has(.db-button):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a):has(.db-button):not([data-variant=overlay]) {
|
|
1174
1278
|
grid-template-areas: "content close" "link link";
|
|
1279
|
+
grid-template-columns: 1fr min-content;
|
|
1175
1280
|
}
|
|
1176
|
-
.db-notification:has(
|
|
1177
|
-
grid-template-columns: 1fr;
|
|
1281
|
+
[data-link-variant=block].db-notification:has(header):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a):has(header):not([data-variant=overlay]) {
|
|
1178
1282
|
grid-template-areas: "head" "content" "link";
|
|
1283
|
+
grid-template-columns: 1fr;
|
|
1179
1284
|
}
|
|
1180
|
-
.db-notification:has(
|
|
1181
|
-
grid-template-columns: 1fr min-content;
|
|
1285
|
+
[data-link-variant=block].db-notification:has(header):has(.db-button):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a):has(header):has(.db-button):not([data-variant=overlay]) {
|
|
1182
1286
|
grid-template-areas: "head close" "content content" "link link";
|
|
1287
|
+
grid-template-columns: 1fr min-content;
|
|
1183
1288
|
}
|
|
1184
|
-
.db-notification:
|
|
1289
|
+
[data-link-variant=block][data-icon].db-notification:not([data-show-icon=false]):not([data-variant=overlay]), [data-link-variant=block][data-semantic].db-notification:not([data-semantic=adaptive], [data-show-icon=false]):not([data-variant=overlay]), [data-link-variant=block].db-notification:has(img):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a)[data-icon]:not([data-show-icon=false]):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a)[data-semantic]:not([data-semantic=adaptive], [data-show-icon=false]):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a):has(img):not([data-variant=overlay]) {
|
|
1185
1290
|
grid-template-areas: "icon content" "icon link";
|
|
1186
1291
|
grid-template-columns: min-content 1fr;
|
|
1187
1292
|
}
|
|
1188
|
-
|
|
1189
|
-
|
|
1293
|
+
[data-link-variant=block][data-icon].db-notification:not([data-show-icon=false]):has(.db-button):not([data-variant=overlay]), [data-link-variant=block][data-semantic].db-notification:not([data-semantic=adaptive],
|
|
1294
|
+
[data-show-icon=false]):has(.db-button):not([data-variant=overlay]), [data-link-variant=block].db-notification:has(img):has(.db-button):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a)[data-icon]:not([data-show-icon=false]):has(.db-button):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a)[data-semantic]:not([data-semantic=adaptive],
|
|
1295
|
+
[data-show-icon=false]):has(.db-button):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a):has(img):has(.db-button):not([data-variant=overlay]) {
|
|
1296
|
+
grid-template-areas: "icon content close" "icon link link";
|
|
1297
|
+
grid-template-columns: min-content 1fr min-content;
|
|
1298
|
+
}
|
|
1299
|
+
[data-link-variant=block][data-icon].db-notification:not([data-show-icon=false]):has(header):not([data-variant=overlay]), [data-link-variant=block][data-semantic].db-notification:not([data-semantic=adaptive],
|
|
1300
|
+
[data-show-icon=false]):has(header):not([data-variant=overlay]), [data-link-variant=block].db-notification:has(img):has(header):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a)[data-icon]:not([data-show-icon=false]):has(header):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a)[data-semantic]:not([data-semantic=adaptive],
|
|
1301
|
+
[data-show-icon=false]):has(header):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a):has(img):has(header):not([data-variant=overlay]) {
|
|
1190
1302
|
grid-template-areas: "icon head" "icon content" "icon link";
|
|
1303
|
+
grid-template-columns: min-content 1fr;
|
|
1191
1304
|
}
|
|
1192
|
-
|
|
1193
|
-
|
|
1305
|
+
[data-link-variant=block][data-icon].db-notification:not([data-show-icon=false]):has(header):has(.db-button):not([data-variant=overlay]), [data-link-variant=block][data-semantic].db-notification:not([data-semantic=adaptive],
|
|
1306
|
+
[data-show-icon=false]):has(header):has(.db-button):not([data-variant=overlay]), [data-link-variant=block].db-notification:has(img):has(header):has(.db-button):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a)[data-icon]:not([data-show-icon=false]):has(header):has(.db-button):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a)[data-semantic]:not([data-semantic=adaptive],
|
|
1307
|
+
[data-show-icon=false]):has(header):has(.db-button):not([data-variant=overlay]), .db-notification:not([data-link-variant]):has(a):has(img):has(header):has(.db-button):not([data-variant=overlay]) {
|
|
1194
1308
|
grid-template-areas: "icon head close" "icon content content" "icon link link";
|
|
1309
|
+
grid-template-columns: min-content 1fr min-content;
|
|
1195
1310
|
}
|
|
1196
1311
|
|
|
1197
1312
|
.db-notification:has(span) header,
|
|
@@ -1213,10 +1328,6 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
|
|
|
1213
1328
|
.db-notification::before {
|
|
1214
1329
|
--db-icon-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
|
|
1215
1330
|
}
|
|
1216
|
-
.db-notification a {
|
|
1217
|
-
grid-area: link;
|
|
1218
|
-
white-space: nowrap;
|
|
1219
|
-
}
|
|
1220
1331
|
.db-notification a::before, .db-notification a::after {
|
|
1221
1332
|
content: none !important;
|
|
1222
1333
|
margin: 0 !important;
|
|
@@ -1261,19 +1372,30 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
|
|
|
1261
1372
|
max-block-size: var(--db-sizing-md);
|
|
1262
1373
|
max-inline-size: var(--db-sizing-md);
|
|
1263
1374
|
border-radius: var(--db-border-radius-xs);
|
|
1375
|
+
object-fit: cover;
|
|
1376
|
+
grid-area: icon;
|
|
1264
1377
|
}
|
|
1265
1378
|
.db-notification span {
|
|
1266
1379
|
grid-area: timestamp;
|
|
1267
1380
|
white-space: nowrap;
|
|
1381
|
+
justify-self: end;
|
|
1268
1382
|
}
|
|
1269
1383
|
.db-notification .db-button {
|
|
1270
1384
|
grid-area: close;
|
|
1271
1385
|
}
|
|
1272
|
-
.db-notification
|
|
1273
|
-
|
|
1386
|
+
.db-notification[data-link-variant=inline] a {
|
|
1387
|
+
grid-area: timestamp;
|
|
1388
|
+
white-space: nowrap;
|
|
1389
|
+
justify-self: end;
|
|
1274
1390
|
}
|
|
1275
|
-
.db-notification[data-
|
|
1276
|
-
|
|
1391
|
+
.db-notification[data-link-variant=inline]:has(a) > span {
|
|
1392
|
+
display: none;
|
|
1393
|
+
}
|
|
1394
|
+
.db-notification:not([data-link-variant=inline]) a {
|
|
1395
|
+
grid-area: link;
|
|
1396
|
+
white-space: nowrap;
|
|
1397
|
+
}
|
|
1398
|
+
.db-notification[data-icon]::before, .db-notification::before {
|
|
1277
1399
|
--db-icon-margin-end: 0;
|
|
1278
1400
|
--db-icon-font-family: var(
|
|
1279
1401
|
--db-icon-filled-font-family,
|
|
@@ -1282,37 +1404,13 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
|
|
|
1282
1404
|
);
|
|
1283
1405
|
grid-area: icon;
|
|
1284
1406
|
}
|
|
1285
|
-
.db-notification
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
.db-notification:has(a)[data-link-variant=inline]:has(.db-button), .db-notification:has(a)[data-variant=overlay]:has(.db-button) {
|
|
1290
|
-
grid-template-columns: 1fr min-content min-content;
|
|
1291
|
-
grid-template-areas: "content link close";
|
|
1292
|
-
}
|
|
1293
|
-
.db-notification:has(a)[data-link-variant=inline]:has(header), .db-notification:has(a)[data-variant=overlay]:has(header) {
|
|
1294
|
-
grid-template-columns: 1fr min-content;
|
|
1295
|
-
grid-template-areas: "head link" "content content";
|
|
1296
|
-
}
|
|
1297
|
-
.db-notification:has(a)[data-link-variant=inline]:has(header):has(.db-button), .db-notification:has(a)[data-variant=overlay]:has(header):has(.db-button) {
|
|
1298
|
-
grid-template-columns: 1fr min-content min-content;
|
|
1299
|
-
grid-template-areas: "head link close" "content content content";
|
|
1300
|
-
}
|
|
1301
|
-
.db-notification:has(a)[data-link-variant=inline][data-icon], .db-notification:has(a)[data-link-variant=inline][data-semantic]:not([data-semantic=adaptive]), .db-notification:has(a)[data-link-variant=inline]:has(img), .db-notification:has(a)[data-variant=overlay][data-icon], .db-notification:has(a)[data-variant=overlay][data-semantic]:not([data-semantic=adaptive]), .db-notification:has(a)[data-variant=overlay]:has(img) {
|
|
1302
|
-
grid-template-areas: "icon content link";
|
|
1303
|
-
grid-template-columns: min-content 1fr min-content;
|
|
1304
|
-
}
|
|
1305
|
-
.db-notification:has(a)[data-link-variant=inline][data-icon]:has(.db-button), .db-notification:has(a)[data-link-variant=inline][data-semantic]:not([data-semantic=adaptive]):has(.db-button), .db-notification:has(a)[data-link-variant=inline]:has(img):has(.db-button), .db-notification:has(a)[data-variant=overlay][data-icon]:has(.db-button), .db-notification:has(a)[data-variant=overlay][data-semantic]:not([data-semantic=adaptive]):has(.db-button), .db-notification:has(a)[data-variant=overlay]:has(img):has(.db-button) {
|
|
1306
|
-
grid-template-columns: min-content 1fr min-content min-content;
|
|
1307
|
-
grid-template-areas: "icon content link close";
|
|
1308
|
-
}
|
|
1309
|
-
.db-notification:has(a)[data-link-variant=inline][data-icon]:has(header), .db-notification:has(a)[data-link-variant=inline][data-semantic]:not([data-semantic=adaptive]):has(header), .db-notification:has(a)[data-link-variant=inline]:has(img):has(header), .db-notification:has(a)[data-variant=overlay][data-icon]:has(header), .db-notification:has(a)[data-variant=overlay][data-semantic]:not([data-semantic=adaptive]):has(header), .db-notification:has(a)[data-variant=overlay]:has(img):has(header) {
|
|
1310
|
-
grid-template-columns: min-content 1fr min-content;
|
|
1311
|
-
grid-template-areas: "icon head link" "icon content content";
|
|
1407
|
+
.db-notification[data-show-icon=false]::before {
|
|
1408
|
+
/* Hidden when showIcon is explicitly false. Using `display:none`
|
|
1409
|
+
is sufficient; avoid extra properties that don't affect layout. */
|
|
1410
|
+
display: none;
|
|
1312
1411
|
}
|
|
1313
|
-
.db-notification:has(
|
|
1314
|
-
|
|
1315
|
-
grid-template-areas: "icon head link close" "icon content content content";
|
|
1412
|
+
.db-notification:has(img)::before {
|
|
1413
|
+
content: none !important;
|
|
1316
1414
|
}
|
|
1317
1415
|
.db-notification[data-variant=overlay] {
|
|
1318
1416
|
box-shadow: var(--db-elevation-md);
|