@nordcode/ui 2.2.0 → 2.2.2

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 (74) hide show
  1. package/CHANGELOG.md +65 -53
  2. package/package.json +79 -79
  3. package/src/assets/icons/ArrowRightSolid.svelte +0 -0
  4. package/src/assets/icons/arrow-right-solid.svg +0 -0
  5. package/src/styles/components/inputs/base.css +4 -0
  6. package/src/styles/utils/theme.css +1 -1
  7. package/.idea/copilot.data.migration.agent.xml +0 -6
  8. package/.idea/copilot.data.migration.ask.xml +0 -6
  9. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  10. package/.idea/copilot.data.migration.edit.xml +0 -6
  11. package/.idea/modules.xml +0 -8
  12. package/.idea/ui.iml +0 -9
  13. package/.idea/vcs.xml +0 -6
  14. package/out/bundle.css +0 -1469
  15. package/out/bundle_configless.css +0 -1253
  16. package/out/colors.css +0 -82
  17. package/out/complete.css +0 -2867
  18. package/out/complete_configless.css +0 -2651
  19. package/out/src/assets/fonts/DMMono-Regular.woff +0 -0
  20. package/out/src/assets/fonts/DMMono-Regular.woff2 +0 -0
  21. package/out/src/assets/fonts/fonts.css +0 -7
  22. package/out/src/assets/icons/ArrowRightSolid.svelte +0 -1
  23. package/out/src/assets/icons/arrow-right-solid.svg +0 -1
  24. package/out/src/assets/icons/favicon.png +0 -0
  25. package/out/src/assets/icons/favicon.svg +0 -8
  26. package/out/src/assets/logos/nordcode-logo-icon.svg +0 -3
  27. package/out/src/assets/logos/nordcode-logo.svg +0 -17
  28. package/out/src/modules/copyButtons/ts/copyButtons.ts +0 -9
  29. package/out/src/modules/dialogs/svelte/dialog.svelte +0 -27
  30. package/out/src/modules/dialogs/ts/LICENCE +0 -171
  31. package/out/src/modules/dialogs/ts/dialogs.ts +0 -111
  32. package/out/src/modules/notifications/js/notifications.js +0 -294
  33. package/out/src/modules/notifications/svelte/NotificationCenter.svelte +0 -18
  34. package/out/src/modules/notifications/svelte/NotificationTemplate.svelte +0 -16
  35. package/out/src/modules/sectionObserver/ts/sectionOberserver.ts +0 -34
  36. package/out/src/styles/bundle.css +0 -7
  37. package/out/src/styles/bundle_configless.css +0 -5
  38. package/out/src/styles/complete.css +0 -5
  39. package/out/src/styles/complete_configless.css +0 -5
  40. package/out/src/styles/components/alerts.css +0 -20
  41. package/out/src/styles/components/badges.css +0 -14
  42. package/out/src/styles/components/breadcrumbs.css +0 -37
  43. package/out/src/styles/components/bundle.css +0 -13
  44. package/out/src/styles/components/buttons.css +0 -260
  45. package/out/src/styles/components/card.css +0 -55
  46. package/out/src/styles/components/dialogs.css +0 -138
  47. package/out/src/styles/components/forms.css +0 -41
  48. package/out/src/styles/components/gallery.css +0 -66
  49. package/out/src/styles/components/icons.css +0 -60
  50. package/out/src/styles/components/inputs/base.css +0 -249
  51. package/out/src/styles/components/inputs/bundle.css +0 -5
  52. package/out/src/styles/components/inputs/fields.css +0 -76
  53. package/out/src/styles/components/inputs/segmented.css +0 -114
  54. package/out/src/styles/components/inputs/switch.css +0 -42
  55. package/out/src/styles/components/inputs/tag-select.css +0 -41
  56. package/out/src/styles/components/lists.css +0 -40
  57. package/out/src/styles/components/notifications.css +0 -135
  58. package/out/src/styles/components/tables.css +0 -7
  59. package/out/src/styles/config/bundle.css +0 -2
  60. package/out/src/styles/config/config.css +0 -700
  61. package/out/src/styles/config/extras.css +0 -12
  62. package/out/src/styles/exceptions/bundle.css +0 -3
  63. package/out/src/styles/exceptions/misc.css +0 -21
  64. package/out/src/styles/exceptions/spacings.css +0 -15
  65. package/out/src/styles/exceptions/typography.css +0 -57
  66. package/out/src/styles/theme/colors.css +0 -165
  67. package/out/src/styles/theme/colors_processed.css +0 -87
  68. package/out/src/styles/utils/base.css +0 -415
  69. package/out/src/styles/utils/bundle.css +0 -6
  70. package/out/src/styles/utils/easings.css +0 -364
  71. package/out/src/styles/utils/layouts.css +0 -281
  72. package/out/src/styles/utils/media.css +0 -55
  73. package/out/src/styles/utils/reset.css +0 -145
  74. package/out/src/styles/utils/theme.css +0 -125
@@ -1,249 +0,0 @@
1
- @layer components.inputs {
2
- :where(label:not([class]), .nc-input-label) {
3
- font-family: var(--font-family-default);
4
- letter-spacing: var(--tracking-tight);
5
- font-weight: var(--font-weight-active);
6
- color: var(--color-text-base);
7
- display: inline-flex;
8
- font-size: inherit;
9
- gap: 0;
10
- align-items: center;
11
- }
12
-
13
- :where(input[type="text"],
14
- input[type="email"],
15
- input[type="password"],
16
- input[type="number"],
17
- input[type="url"],
18
- input[type="search"],
19
- input[type="date"],
20
- input[type="month"],
21
- input[type="week"],
22
- input[type="text"],
23
- input[type="datetime"],
24
- input[type="datetime-local"],
25
- input[type="time"],
26
- input[type="tel"],
27
- input[type="color"],
28
- input[type="file"],
29
- input[type="checkbox"],
30
- input[type="radio"],
31
- textarea,
32
- select,
33
- .nc-input,
34
- .nc-select,
35
- .nc-textarea,
36
- .nc-input-checkbox,
37
- .nc-input-radio,
38
- .nc-input-label,
39
- .nc-input-color,
40
- .nc-input-field,
41
- .nc-input-error,
42
- .nc-checkbox-wrapper,
43
- .nc-input-switch,
44
- .nc-radio-field,
45
- .nc-checkbox-field) {
46
- --_input-background: var(--input-background, var(--color-surface-subtle));
47
- --_input-background-active: var(--input-background-active, var(--color-surface-base));
48
- --_input-color: var(--input-color, var(--color-text-base));
49
- --_input-border: var(--input-border,
50
- var(--border-width-thin) solid var(--color-border-base));
51
- --_input-border-radius: var(--input-border-radius, var(--border-radius-medium));
52
-
53
- --_input-box-shadow: var(--input-box-shadow, var(--shadow-inset));
54
- --_input-outline: var(--input-outline,
55
- var(--border-width-medium) solid var(--color-brand-primary-base));
56
- --_input-disabled-filter: var(--input-disabled-filter, contrast(0.72) opacity(0.72));
57
-
58
- --_input-padding-block: var(--input-padding-block, 0.125lh);
59
- --_input-padding-inline: var(--input-padding-inline, 1ch);
60
- --_input-hover-background: var(--input-hover-background, var(--color-brand-primary-hover));
61
- }
62
-
63
- :where(input[type="text"],
64
- input[type="email"],
65
- input[type="password"],
66
- input[type="number"],
67
- input[type="url"],
68
- input[type="search"],
69
- input[type="date"],
70
- input[type="month"],
71
- input[type="week"],
72
- input[type="text"],
73
- input[type="datetime"],
74
- input[type="datetime-local"],
75
- input[type="time"],
76
- input[type="tel"],
77
- input[type="color"],
78
- input[type="file"],
79
- textarea,
80
- select,
81
- .nc-input) {
82
- font: inherit;
83
- letter-spacing: inherit;
84
- word-spacing: inherit;
85
- appearance: none;
86
-
87
- color: var(--_input-color);
88
- background-color: var(--_input-background);
89
- border: var(--_input-border);
90
- border-radius: var(--_input-border-radius);
91
- block-size: var(--button-height-base);
92
- padding-inline: var(--_input-padding-inline);
93
- box-shadow: var(--_input-box-shadow);
94
- inline-size: var(--input-inline-size, auto);
95
- line-height: var(--line-height-base);
96
-
97
- &:focus,
98
- &:hover:focus {
99
- --current-background: var(--_input-background-active);
100
- outline: var(--_input-outline);
101
- outline-offset: 0;
102
- background-color: var(--_input-background-active);
103
- }
104
-
105
- &:disabled {
106
- filter: var(--_input-disabled-filter);
107
- cursor: not-allowed;
108
- }
109
-
110
- &:hover {
111
- --current-background: var(--_input-hover-background);
112
- background-color: var(--_input-hover-background);
113
- }
114
-
115
- &[required] {
116
- border-inline-start-width: var(--border-width-thick);
117
- }
118
-
119
- &::placeholder {
120
- color: var(--color-text-subtle);
121
- }
122
- }
123
-
124
- :where(select:not([class]), .nc-select) {
125
- padding-inline-end: 3.5ch;
126
- background-image: var(--triangle-down-url);
127
- background-position: right 1ch top 50%;
128
- background-size: 1.5ch 1.25ch;
129
- }
130
-
131
- :where(textarea:not([class]), .nc-textarea) {
132
- min-block-size: calc(5lh + 2 * var(--_input-padding-block));
133
- max-block-size: 80svh;
134
- min-inline-size: var(--input-inline-size, 100%);
135
- max-inline-size: 100%;
136
- padding-block: var(--_input-padding-block);
137
-
138
- resize: block;
139
- field-sizing: content;
140
- }
141
-
142
- :where(input[type="checkbox"]:not([class]),
143
- input[type="radio"]:not([class]),
144
- .nc-input-checkbox,
145
- .nc-input-radio,
146
- .nc-input-switch) {
147
- inline-size: 1lh;
148
- block-size: 1lh;
149
- padding: 0;
150
- appearance: none;
151
- display: inline-flex;
152
- align-items: center;
153
- justify-content: center;
154
- border: var(--_input-border);
155
- --current-background: var(--_input-background);
156
- background: var(--current-background);
157
- transition: var(--transition-duration-short) background var(--ease-2);
158
- box-shadow: var(--_input-box-shadow);
159
- }
160
-
161
- :where(input[type="checkbox"]:not([class]), .nc-input-checkbox) {
162
- --_transition-duration: 0ms;
163
- overflow: hidden;
164
- border-radius: var(--_input-border-radius);
165
-
166
- &:before {
167
- content: "";
168
- display: inline-flex;
169
- align-items: center;
170
- justify-content: center;
171
- inline-size: 0.75lh;
172
- block-size: 0.75lh;
173
- background-color: var(--color-brand-primary-contrast);
174
- transform: scale(0.8) translateY(2em);
175
- transition: transform var(--ease-out-2) var(--transition-duration-short);
176
- font-family: var(--font-family-sans);
177
- --font-weight: var(--font-weight-active);
178
- line-height: 1;
179
- color: var(--_input-background);
180
- clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
181
- }
182
-
183
- &:checked {
184
- --current-background: var(--color-brand-primary-base);
185
-
186
- &:before {
187
- transform: scale(1) translateY(0%);
188
- }
189
- }
190
- }
191
-
192
- :where(input[type="radio"], .nc-input-radio) {
193
- border-radius: var(--border-radius-round);
194
- overflow: hidden;
195
-
196
- &:before {
197
- content: "";
198
- display: inline-flex;
199
- block-size: 50%;
200
- inline-size: 50%;
201
- border-radius: var(--border-radius-round);
202
- transform: scale(0.8) translateY(2em);
203
- background-color: var(--color-brand-primary-contrast);
204
- transition: transform var(--ease-out-2) var(--transition-duration-short);
205
- }
206
-
207
- &:checked {
208
- --current-background: var(--color-brand-primary-base);
209
-
210
- &:before {
211
- transform: scale(1) translateY(0%);
212
- }
213
- }
214
- }
215
-
216
- :where(input[type="color"], .nc-input-color) {
217
- aspect-ratio: 1;
218
- inline-size: auto;
219
- padding: calc(var(--button-height-base) / 12);
220
- }
221
-
222
- :where(input[type="date"], .nc-input-date) {
223
- flex-flow: row nowrap;
224
- }
225
-
226
- :where(input[type="range"], .nc-input-range) {
227
- &>.nc-hint {
228
- margin-inline-start: auto;
229
- }
230
-
231
- &::-webkit-slider-thumb,
232
- &::-moz-range-thumb {
233
- appearance: none;
234
- inline-size: calc(var(--button-height-base) * 0.7);
235
- block-size: calc(var(--button-height-base) * 0.7);
236
- border-radius: var(--_input-border-radius);
237
- border: var(--_input-border);
238
- border-color: var(--color-text-base);
239
- background-color: var(--color-text-base);
240
- box-shadow: var(--shadow-near);
241
- cursor: pointer;
242
-
243
- &:hover {
244
- background-color: var(--color-brand-primary-base);
245
- border-color: var(--color-brand-primary-base);
246
- }
247
- }
248
- }
249
- }
@@ -1,5 +0,0 @@
1
- @import "./base.css";
2
- @import "./fields.css";
3
- @import "./segmented.css";
4
- @import "./switch.css";
5
- @import "./tag-select.css";
@@ -1,76 +0,0 @@
1
- @layer components.input-fields {
2
- :where(.nc-input-field) {
3
- display: grid;
4
- gap: 0.25lh;
5
- grid-template-columns: minmax(0, 1fr);
6
- inline-size: 100%;
7
- min-inline-size: var(--input-field-min-inline-size);
8
- max-inline-size: var(--input-field-max-inline-size);
9
- place-items: start;
10
-
11
- &>label,
12
- &>.nc-stack {
13
- gap: 0;
14
- }
15
-
16
- &>.nc-cluster {
17
- gap: 1ch;
18
- }
19
- }
20
-
21
- :where(.nc-input-error) {
22
- --color-base: var(--color-status-danger-emphasis);
23
- color: var(--color-base);
24
- font-size: var(--font-size-small);
25
-
26
- &:before {
27
- content: "!";
28
- font-family: var(--font-family-default);
29
- letter-spacing: var(--tracking-tight);
30
- font-weight: var(--font-weight-default);
31
- display: inline-flex;
32
- align-items: center;
33
- justify-content: center;
34
- background-color: var(--color-base);
35
- color: var(--color-surface-subtle);
36
- margin-inline-end: 1ch;
37
- inline-size: 1em;
38
- block-size: 1em;
39
- flex-shrink: 0;
40
- }
41
- }
42
-
43
- :where(.nc-checkbox-wrapper) {
44
- display: grid;
45
- grid-template:
46
- "checkbox label" 1fr
47
- / auto 1fr;
48
- place-items: start;
49
- gap: 0;
50
-
51
- &>[data-label] {
52
- grid-area: label;
53
- padding-inline-start: 1ch;
54
- }
55
-
56
- & .nc-input-label {
57
- min-block-size: var(--line-height-base);
58
- }
59
-
60
- &>[data-input] {
61
- grid-area: checkbox;
62
- }
63
-
64
- &:hover:not(:has(input:checked)) input {
65
- background: var(--_input-hover-background);
66
- }
67
- }
68
-
69
- :where(.nc-radio-field, .nc-checkbox-field) {
70
- gap: 0;
71
-
72
- >*:not(:first-child) {
73
- margin-block-start: 0.6lh;
74
- }
75
- }
76
- }
@@ -1,114 +0,0 @@
1
- @layer components.inputs-segmented {
2
- :where(.nc-segmented-control-group) {
3
- --_segmented-control-border-radius: var(--segmented-control-border-radius,
4
- var(--_input-border-radius));
5
- --_segmented-control-checked-text-color: var(--segmented-control-checked-text-color,
6
- var(--color-brand-primary-contrast));
7
- --_segmented-control-checked-surface-color: var(--segmented-control-checked-surface-color,
8
- var(--color-brand-primary-base));
9
-
10
- container: segmented-control / inline-size;
11
-
12
- --nc-legend-spacing: 0.25lh;
13
- }
14
-
15
- :where(.nc-segmented-control) {
16
- display: grid;
17
- grid-auto-rows: 1fr;
18
- grid-auto-flow: row;
19
-
20
- block-size: auto;
21
- inline-size: 100%;
22
- background: var(--_input-background);
23
- box-shadow: var(--_input-box-shadow);
24
- border-radius: var(--_segmented-control-border-radius);
25
-
26
- &:focus-within {
27
- outline: var(--_input-outline);
28
- outline-offset: 0;
29
- }
30
-
31
- & input {
32
- opacity: 0;
33
- position: absolute;
34
- }
35
-
36
- & label {
37
- display: flex;
38
- padding-inline: var(--_input-padding-inline);
39
- padding-block: var(--_input-padding-block);
40
- min-block-size: var(--segmented-control-min-height, var(--button-height-base));
41
- color: var(--_input-color);
42
- border: var(--_input-border);
43
- align-items: center;
44
- justify-content: center;
45
-
46
- >.nc-input-label {
47
- color: inherit;
48
- }
49
-
50
- &:hover {
51
- --current-background: var(--_input-hover-background);
52
- background-color: var(--_input-hover-background);
53
- }
54
-
55
- &:first-child {
56
- border-radius: var(--_segmented-control-border-radius) var(--_segmented-control-border-radius) 0 0;
57
- }
58
-
59
- &:last-child {
60
- border-radius: 0 0 var(--_segmented-control-border-radius) var(--_segmented-control-border-radius);
61
- }
62
-
63
- &:not(:last-child) {
64
- border-block-end: var(--border-width-thin) solid var(--color-border-muted);
65
- }
66
-
67
- &:not(:first-child) {
68
- border-block-start: none;
69
- }
70
-
71
- &:has(input:checked) {
72
- background: var(--_segmented-control-checked-surface-color);
73
- color: var(--_segmented-control-checked-text-color);
74
- box-shadow: var(--shadow-near);
75
- }
76
-
77
- &:focus-within {
78
- outline: none;
79
- }
80
-
81
- &:has(input:disabled) {
82
- filter: var(--_input-disabled-filter);
83
- cursor: not-allowed;
84
- }
85
- }
86
- }
87
-
88
- @container segmented-control (min-width: 32rem) {
89
- :where(.nc-segmented-control) {
90
- grid-auto-columns: 1fr;
91
- grid-auto-flow: column;
92
-
93
- >label {
94
- &:first-child {
95
- border-radius: var(--_segmented-control-border-radius) 0 0 var(--_segmented-control-border-radius);
96
- }
97
-
98
- &:last-child {
99
- border-radius: 0 var(--_segmented-control-border-radius) var(--_segmented-control-border-radius) 0;
100
- }
101
-
102
- &:not(:last-child) {
103
- border-block-end: var(--_input-border);
104
- border-inline-end: var(--border-width-thin) solid var(--color-border-muted);
105
- }
106
-
107
- &:not(:first-child) {
108
- border-block-start: var(--_input-border);
109
- border-inline-start: none;
110
- }
111
- }
112
- }
113
- }
114
- }
@@ -1,42 +0,0 @@
1
- @layer components.input-switch {
2
- :where(.nc-input-switch) {
3
- --_switch-width: var(--switch-width, calc(var(--line-height-base) * 2rem));
4
- --_switch-height: var(--switch-height, calc(var(--_switch-width) / 2));
5
- --_switch-color: var(--switch-color, var(--_input-background));
6
- --_switch-color-checked: var(--switch-color-checked, var(--color-brand-primary-base));
7
- --_thumb-margin: var(--thumb-margin, calc(var(--_switch-width) / 12));
8
- --_thumb-color: var(--thumb-color, var(--_input-color));
9
-
10
- vertical-align: var(--_thumb-margin);
11
- inline-size: var(--_switch-width);
12
- block-size: var(--_switch-height);
13
- border-radius: var(--_input-border-radius);
14
- --current-background: var(--_switch-color);
15
- justify-content: flex-start;
16
-
17
- &:before {
18
- content: "";
19
- display: block;
20
- aspect-ratio: 1;
21
- margin-block: var(--_thumb-margin);
22
- transform: translateX(var(--_thumb-margin));
23
- block-size: calc(100% - 2 * var(--_thumb-margin));
24
- background-color: var(--_thumb-color);
25
- border-radius: var(--_input-border-radius);
26
- box-shadow: var(--shadow-near);
27
- transition: transform, background-color;
28
- transition-duration: var(--transition-duration-base);
29
- transition-timing-function: var(--ease-2);
30
- }
31
-
32
- &:checked {
33
- --current-background: var(--_switch-color-checked);
34
- }
35
-
36
- &:checked:before {
37
- transform: translateX(
38
- calc(var(--_switch-width) - var(--_switch-height) + var(--_thumb-margin))
39
- );
40
- }
41
- }
42
- }
@@ -1,41 +0,0 @@
1
- @layer components.inputs {
2
- :where(.nc-tag-select-field) {
3
- --_tag-select-checked-text-color: var(--tag-select-checked-text-color,
4
- var(--color-brand-primary-contrast));
5
- --_tag-select-checked-surface-color: var(--tag-select-checked-surface-color,
6
- var(--color-brand-primary-base));
7
- --_tag-select-border-radius: var(--tag-select-border-radius, var(--_input-border-radius));
8
- --nc-legend-spacing: 0.25lh;
9
-
10
- &:focus-within:has(:focus-visible) {
11
- outline-offset: 1ch;
12
- outline: var(--_input-outline);
13
- border-radius: var(--_tag-select-border-radius);
14
- }
15
-
16
- & input {
17
- opacity: 0;
18
- position: absolute;
19
- }
20
-
21
- & label {
22
- display: grid;
23
-
24
- &:hover,
25
- &:focus-within {
26
- background-color: var(--_input-hover-background);
27
- }
28
-
29
- &:has(input:checked) {
30
- background: var(--_tag-select-checked-surface-color);
31
- color: var(--_tag-select-checked-text-color);
32
- box-shadow: var(--shadow-near);
33
- }
34
-
35
- &:has(input:disabled) {
36
- filter: var(--_input-disabled-filter);
37
- cursor: not-allowed;
38
- }
39
- }
40
- }
41
- }
@@ -1,40 +0,0 @@
1
- @layer components.lists {
2
- :where(.nc-meta-list) {
3
- inline-size: 100%;
4
- container: metalist / inline-size;
5
- }
6
-
7
- :where(.nc-meta-list-item) {
8
- overflow-wrap: break-word;
9
- max-inline-size: 100%;
10
- hyphens: auto;
11
- inline-size: 100%;
12
-
13
- &:not(:last-child) {
14
- margin-block-end: 1ch;
15
- }
16
- }
17
-
18
- @container metalist (min-width: 20rem) {
19
- :where(.nc-meta-list-item) {
20
- inline-size: auto;
21
-
22
- &:not(:last-child):after {
23
- content: '';
24
- border-right: var(--border-width-medium) solid var(--color-border-muted);
25
- margin: 0 1ch;
26
- transform: calc(var(--border-width-medium) / 2);
27
- }
28
- }
29
- }
30
-
31
- :where(.nc-list-reset) {
32
- list-style: none;
33
- padding: 0;
34
- margin: 0;
35
-
36
- & li {
37
- margin: 0;
38
- }
39
- }
40
- }
@@ -1,135 +0,0 @@
1
- @layer components.notifications {
2
- :root {
3
- --_notification-max-width: var(--notifications-max-width, 20rem);
4
- --_notification-gap: var(--notification-gap, var(--spacing-base));
5
- --_notification-border-color: var(--notification-border-color, var(--color-border-base));
6
- --_notification-center-background: var(--notification-center-background,
7
- color-mix(in oklch, var(---color-surface-subtle), transparent 95%);
8
- );
9
- }
10
-
11
- :where(.nc-notification-center, .nc-notification-output) {
12
- position: fixed;
13
- inset-block-start: 0;
14
- inset-block-end: 0;
15
- inset-inline-end: 0;
16
- inline-size: 100%;
17
- block-size: 100%;
18
- max-inline-size: var(--_notification-max-width);
19
- padding-block: var(--_notification-gap);
20
- pointer-events: none;
21
- }
22
-
23
- :where(.nc-notification-center) {
24
- block-size: 100%;
25
- backdrop-filter: blur(3px);
26
- background-color: var(--_notification-center-background);
27
- transform: translate(100%, 0);
28
- transition: transform var(--transition-duration-base) ease-in-out;
29
- }
30
-
31
- :where(.nc-notification-output, .nc-notification-center-container) {
32
- display: flex;
33
- flex-direction: column;
34
- align-items: flex-end;
35
- gap: var(--_notification-gap);
36
- inline-size: 100%;
37
- overflow-y: scroll;
38
- max-block-size: 100%;
39
- padding-inline: var(--_notification-gap);
40
- min-inline-size: 0;
41
- min-block-size: 100%;
42
- flex-grow: 1;
43
- }
44
-
45
- :where(.nc-notification-center.-open) {
46
- pointer-events: all;
47
- transform: translate(0, 0);
48
- }
49
-
50
- :where(.nc-notification-center.-open:has(+ .nc-notification-output > .nc-notification)) {
51
- opacity: 0.5;
52
- filter: contrast(0.5);
53
- }
54
-
55
- :where(.nc-notification-center-header) {
56
- display: flex;
57
- align-items: center;
58
- gap: var(--_notification-gap);
59
- padding-inline: var(--_notification-gap);
60
- margin-block-end: var(--_notification-gap);
61
- }
62
-
63
- :where(.nc-notification) {
64
- padding: 0.5lh 2ch;
65
- background: var(--color-surface-base);
66
- border: var(--border-width-thin) solid var(--_notification-border-color);
67
- display: flex;
68
- flex-direction: column;
69
- inline-size: 100%;
70
- border-radius: var(--border-radius-small);
71
- box-shadow: var(--shadow-far);
72
- animation: pop-in var(--transition-duration-base) cubic-bezier(0, 0.6, 0.58, 1);
73
- color: var(--color-text-base);
74
- pointer-events: all;
75
- }
76
-
77
- :where(.nc-notification) p {
78
- margin: 0;
79
- padding: 0;
80
- }
81
-
82
- :where(.nc-notification-title) {
83
- font-size: var(--font-size-base);
84
- font-weight: var(--font-weight-heading);
85
- }
86
-
87
- :where(.nc-notification-description) {
88
- font-size: var(--font-size-small);
89
- }
90
-
91
- :where(.nc-notification-time) {
92
- font-size: var(--font-size-small);
93
- color: var(--color-text-subtle);
94
- }
95
-
96
- :where(.nc-notification-footer) {
97
- display: flex;
98
- justify-content: space-between;
99
- align-items: flex-end;
100
- inline-size: 100%;
101
- margin-block-start: 0.5ch;
102
- }
103
-
104
- :where(.nc-notification .nc-button, .nc-notification-center .nc-button) {
105
- --button-height-base: 1em;
106
- font-size: var(--font-size-small);
107
- }
108
-
109
- :where(.nc-notification.-closing) {
110
- animation: remove-notification var(--transition-duration-base) cubic-bezier(0.7, 0, 1, 1) forwards;
111
- }
112
-
113
- @keyframes pop-in {
114
- 0% {
115
- transform: translate(3vmin, -2vmin) scale(0.98);
116
- opacity: 0;
117
- }
118
-
119
- 50% {
120
- transform: translate(0, -1vmin) scale(0.98);
121
- }
122
-
123
- 100% {
124
- transform: translate(0, 0) scale(1);
125
- opacity: 1;
126
- }
127
- }
128
-
129
- @keyframes remove-notification {
130
- to {
131
- transform: translate(0, 4vmin) scale(0.98);
132
- opacity: 0;
133
- }
134
- }
135
- }