@oslokommune/punkt-css 12.38.0 → 12.39.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.
@@ -6,7 +6,7 @@
6
6
  @forward 'spacing';
7
7
 
8
8
  // Default icon path
9
- $icon-path: 'https://punkt-cdn.oslo.kommune.no/12.38/icons' !default;
9
+ $icon-path: 'https://punkt-cdn.oslo.kommune.no/12.39/icons' !default;
10
10
 
11
11
  // Borders
12
12
  $border-width: (
@@ -10,136 +10,220 @@ $pkt-modal-gap: map.get(variables.$spacing, 'size-32');
10
10
  $pkt-modal-padding-sides: map.get(variables.$spacing, 'size-40');
11
11
 
12
12
  .pkt-modal {
13
- &:not([open]) {
14
- display: none;
13
+ border: none;
14
+ padding: 0;
15
+ background-color: transparent;
16
+ opacity: 0;
17
+ transition:
18
+ translate 0.2s ease-in-out,
19
+ opacity 0.2s ease-in-out,
20
+ overlay 0.2s ease-in-out allow-discrete,
21
+ display 0.2s ease-in-out allow-discrete;
22
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
23
+ position: fixed;
24
+
25
+ &:focus {
26
+ outline: none;
15
27
  }
28
+
16
29
  &[open] {
17
- background-color: transparent;
18
- border: none;
30
+ opacity: 1;
31
+ @starting-style {
32
+ opacity: 0;
33
+ }
34
+ }
35
+ &__wrapper {
36
+ display: grid;
37
+ grid-template-columns: 1fr;
38
+ grid-template-rows: auto 1fr;
39
+ }
40
+ &__dialog {
19
41
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
20
- padding: 0;
21
- max-height: 90vh;
22
- max-height: 90svh;
23
- display: block;
24
-
42
+ translate: 0 10%;
43
+ &[open] {
44
+ translate: 0 0;
45
+ @starting-style {
46
+ translate: 0 -10%;
47
+ }
48
+ }
49
+ .pkt-modal__wrapper {
50
+ max-height: 90vh;
51
+ max-height: 90svh;
52
+ }
25
53
  @supports not (selector(::backdrop)) {
26
- position: fixed;
27
54
  top: 50%;
28
55
  left: 50%;
29
56
  transform: translate(-50%, -50%);
30
- & + .backdrop {
31
- background-color: rgba(0, 0, 0, 0.55);
32
- position: fixed;
33
- top: 0;
34
- left: 0;
35
- width: 100vw;
36
- height: 100vh;
57
+ }
58
+ }
59
+ &__drawer {
60
+ top: 0;
61
+ height: 100vh;
62
+ height: 100dvh;
63
+ max-height: 100vh;
64
+ max-height: 100dvh;
65
+ margin: 0;
66
+ overflow-y: auto;
67
+ .pkt-modal__wrapper {
68
+ min-height: 100vh;
69
+ min-height: 100dvh;
70
+ }
71
+ &[open] {
72
+ translate: 0 0;
73
+ }
74
+ &--right {
75
+ left: auto;
76
+ right: 0;
77
+ margin-right: 0;
78
+ translate: 100% 0;
79
+ @starting-style {
80
+ &[open] {
81
+ translate: 100% 0;
82
+ }
37
83
  }
38
84
  }
39
-
40
- &::backdrop {
41
- background-color: rgba(0, 0, 0, 0.55);
85
+ &--left {
86
+ left: 0;
87
+ right: auto;
88
+ margin-left: 0;
89
+ translate: -100% 0;
90
+ @starting-style {
91
+ &[open] {
92
+ translate: -100% 0;
93
+ }
94
+ }
42
95
  }
96
+ }
97
+
98
+ &::backdrop {
99
+ opacity: 0;
100
+ background-color: rgba(0, 0, 0, 0.55);
101
+ transition:
102
+ opacity 0.2s ease-out,
103
+ overlay 0.2s ease-out allow-discrete,
104
+ display 0.2s allow-discrete;
105
+ }
43
106
 
44
- .pkt-modal__container {
45
- padding-top: $pkt-modal-gap;
46
- background: var(--pkt-color-background-default);
47
- overflow-y: auto;
48
- max-height: calc(100vh - 4rem);
107
+ &[open]::backdrop {
108
+ opacity: 1;
109
+ @starting-style {
110
+ opacity: 0;
49
111
  }
112
+ }
50
113
 
51
- .pkt-modal__header {
52
- display: grid;
53
- grid-template-columns: 1fr auto;
54
- grid-template-rows: auto;
55
- justify-content: flex-start;
56
- width: 100%;
114
+ @supports not (selector(::backdrop)) {
115
+ position: fixed;
116
+ & + .backdrop {
117
+ background-color: rgba(0, 0, 0, 0.55);
118
+ position: fixed;
119
+ top: 0;
120
+ left: 0;
121
+ width: 100vw;
122
+ height: 100vh;
57
123
  }
124
+ }
58
125
 
59
- .pkt-modal__header-background {
60
- background: var(--pkt-color-background-default);
61
- grid-column: 1 / 2;
62
- grid-row: 1 / 2;
126
+ .pkt-modal__container {
127
+ padding-top: $pkt-modal-gap;
128
+ background: var(--pkt-color-background-default);
129
+ overflow-y: auto;
130
+ }
63
131
 
64
- width: 100%;
65
- height: 100%;
66
- }
132
+ .pkt-modal__header {
133
+ display: grid;
134
+ grid-template-columns: 1fr 4rem;
135
+ grid-template-rows: 4rem 1fr;
136
+ grid-template-areas:
137
+ 'header close'
138
+ 'header empty';
139
+ justify-content: flex-start;
140
+ width: 100%;
141
+ }
67
142
 
68
- .pkt-modal__headingText {
69
- grid-column: 1 / 2;
70
- grid-row: 1 / 2;
71
- padding: $pkt-modal-gap 0 0 $pkt-modal-padding-sides;
72
- margin: 0;
73
- color: var(--pkt-color-text-body-default);
74
- }
143
+ .pkt-modal__header-background {
144
+ background: var(--pkt-color-background-default);
145
+ grid-area: empty;
146
+ }
147
+
148
+ .pkt-modal__headingText {
149
+ background: var(--pkt-color-background-default);
150
+ grid-area: header;
151
+ padding: $pkt-modal-gap 0 0 $pkt-modal-padding-sides;
152
+ margin: 0;
153
+ color: var(--pkt-color-text-body-default);
154
+ }
75
155
 
76
- .pkt-modal__closeButton {
77
- grid-column: 2 / 3;
78
- grid-row: 1 / 2;
156
+ .pkt-modal__closeButton {
157
+ grid-area: close;
79
158
 
80
- display: flex;
81
- flex-direction: row-reverse;
82
- align-self: flex-start;
83
- }
159
+ display: flex;
160
+ flex-direction: row-reverse;
161
+ align-self: flex-start;
162
+ }
84
163
 
85
- .pkt-modal__closeButton--blue {
86
- height: 100%;
87
- background: var(--pkt-color-background-default);
88
- .pkt-btn {
89
- margin: map.get(variables.$spacing, 'size-4');
90
- }
164
+ .pkt-modal__closeButton--blue {
165
+ height: 100%;
166
+ background: var(--pkt-color-background-default);
167
+ .pkt-btn {
168
+ margin: map.get(variables.$spacing, 'size-4');
91
169
  }
170
+ }
92
171
 
93
- .pkt-modal__closeButton--yellow-filled {
94
- .pkt-btn {
95
- height: 4rem;
96
- width: 4rem;
97
- justify-content: center;
98
- align-items: center;
99
- border: none;
100
- border-radius: 50%;
101
- color: var(--pkt-color-surface-strong-dark-blue);
102
- background-color: var(--pkt-color-brand-yellow-1000);
103
-
104
- &:hover,
105
- &:focus {
106
- background-color: var(--pkt-color-brand-warm-blue-1000);
172
+ .pkt-modal__closeButton--yellow-filled {
173
+ .pkt-btn {
174
+ height: 4rem;
175
+ width: 4rem;
176
+ justify-content: center;
177
+ align-items: center;
178
+ border: none;
179
+ border-radius: 50%;
180
+ color: var(--pkt-color-surface-strong-dark-blue);
181
+ background-color: var(--pkt-color-brand-yellow-1000);
182
+ border: 4px solid var(--pkt-color-brand-yellow-1000);
183
+ outline: 0;
184
+
185
+ &:hover,
186
+ &:focus {
187
+ background-color: var(--pkt-color-brand-warm-blue-1000);
188
+ border-color: var(--pkt-color-brand-warm-blue-1000);
189
+ color: var(--pkt-color-background-default);
190
+ .pkt-icon {
107
191
  color: var(--pkt-color-background-default);
108
- .pkt-icon {
109
- color: var(--pkt-color-background-default);
110
- }
111
- }
112
- .pkt-link__icon {
113
- width: unset;
114
- height: 1.75rem;
115
192
  }
116
193
  }
194
+ &:focus-visible {
195
+ outline: 0;
196
+ border-color: var(--pkt-color-border-states-focus);
197
+ }
198
+ .pkt-btn__icon {
199
+ width: 2rem;
200
+ height: 2rem;
201
+ }
117
202
  }
203
+ }
118
204
 
119
- .pkt-modal__content {
120
- display: flex;
121
- flex-direction: column;
122
- flex-grow: 1;
123
- gap: map.get(variables.$spacing, 'size-16');
124
- overflow-y: auto;
125
- padding: map.get(variables.$spacing, 'size-32') map.get(variables.$spacing, 'size-40');
126
- padding-top: 0;
127
- position: relative;
128
- color: var(--pkt-color-text-body-default);
129
- background:
130
- linear-gradient(var(--pkt-color-white) 30%, transparent) top,
131
- linear-gradient(transparent, var(--pkt-color-border-subtle) 60%) bottom,
132
- radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, 0.3), transparent) top,
133
- radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.3), transparent) bottom;
134
- background-attachment: local, local, scroll, scroll;
135
- background-repeat: no-repeat;
136
- background-size:
137
- 100% 40px,
138
- 100% 50px,
139
- 100% 16px,
140
- 100% 16px;
141
- max-height: calc(100vh - 10rem);
142
- }
205
+ .pkt-modal__content {
206
+ display: flex;
207
+ flex-direction: column;
208
+ flex-grow: 1;
209
+ gap: map.get(variables.$spacing, 'size-16');
210
+ overflow-y: auto;
211
+ padding: map.get(variables.$spacing, 'size-32') map.get(variables.$spacing, 'size-40');
212
+ padding-top: 0;
213
+ position: relative;
214
+ color: var(--pkt-color-text-body-default);
215
+ background:
216
+ linear-gradient(var(--pkt-color-white) 30%, transparent) top,
217
+ linear-gradient(transparent, var(--pkt-color-border-subtle) 60%) bottom,
218
+ radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, 0.3), transparent) top,
219
+ radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.3), transparent) bottom;
220
+ background-attachment: local, local, scroll, scroll;
221
+ background-repeat: no-repeat;
222
+ background-size:
223
+ 100% 40px,
224
+ 100% 50px,
225
+ 100% 16px,
226
+ 100% 16px;
143
227
  }
144
228
  }
145
229
 
@@ -152,7 +236,6 @@ body.pkt-modal--open {
152
236
  // SIZES
153
237
  .pkt-modal--small {
154
238
  width: 480px;
155
- padding: map.get(variables.$spacing, 'size-16') map.get(variables.$spacing, 'size-32');
156
239
  }
157
240
 
158
241
  .pkt-modal--medium {
@@ -177,7 +260,6 @@ body.pkt-modal--open {
177
260
  @media screen and (max-width: 640px) {
178
261
  .pkt-modal {
179
262
  &[open] {
180
- gap: map.get(variables.$spacing, 'size-16') 0;
181
263
  line-height: map.get(variables.$line-height, 'lh-24');
182
264
 
183
265
  .pkt-modal__headingText {
@@ -191,9 +273,7 @@ body.pkt-modal--open {
191
273
  }
192
274
 
193
275
  &--large {
194
- position: absolute;
195
276
  width: 100vh;
196
- padding: map.get(variables.$spacing, 'size-16') map.get(variables.$spacing, 'size-24');
197
277
  }
198
278
  }
199
279
  }
@@ -201,7 +281,6 @@ body.pkt-modal--open {
201
281
  @media screen and (max-width: 480px) {
202
282
  .pkt-modal {
203
283
  &--small {
204
- position: absolute;
205
284
  width: 100vh;
206
285
  }
207
286
  }
@@ -210,7 +289,6 @@ body.pkt-modal--open {
210
289
  @media screen and (max-width: map.get(variables.$breakpoints, 'phablet')) {
211
290
  .pkt-modal {
212
291
  &--medium {
213
- position: absolute;
214
292
  width: 100vh;
215
293
  }
216
294
  }
@@ -232,6 +310,22 @@ body.pkt-modal--open {
232
310
  }
233
311
  }
234
312
 
313
+ .pkt-modal--noShadow {
314
+ box-shadow: none;
315
+ }
316
+
317
+ .pkt-modal--transparentBackdrop {
318
+ &::backdrop,
319
+ &[open]::backdrop {
320
+ background-color: transparent;
321
+ }
322
+ @supports not (selector(::backdrop)) {
323
+ & + .backdrop {
324
+ background-color: transparent;
325
+ }
326
+ }
327
+ }
328
+
235
329
  // Adjustments for padding
236
330
 
237
331
  .pkt-modal.pkt-modal--removePadding {
@@ -420,8 +420,8 @@ $-skins: (
420
420
  div.pkt-btn:not([data-disabled]):active,
421
421
  &:enabled:active,
422
422
  &:active:not(:disabled):not([disabled]):not([data-disabled]),
423
- &.pkt-btn--active,
424
- &.pkt-btn--active:hover {
423
+ &.pkt-btn--active:not(:disabled):not([disabled]):not([data-disabled]),
424
+ &.pkt-btn--active:not(:disabled):not([disabled]):not([data-disabled]):hover {
425
425
  background-color: var(--pkt-color-button-background-active);
426
426
  border-color: var(--pkt-color-button-border-active);
427
427
  color: var(--pkt-color-button-text-active);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oslokommune/punkt-css",
3
- "version": "12.38.0",
3
+ "version": "12.39.0",
4
4
  "description": "CSS-rammeverket til Punkt, et designsystem laget av Oslo Origo",
5
5
  "homepage": "https://punkt.oslo.kommune.no",
6
6
  "author": "Team Designsystem, Oslo Origo",
@@ -57,5 +57,5 @@
57
57
  "url": "https://github.com/oslokommune/punkt/issues"
58
58
  },
59
59
  "license": "MIT",
60
- "gitHead": "02f166beaa93cb948806b224d4af7c1aafe8d346"
60
+ "gitHead": "ddb0e674ed86b95519a7a40e5785c05b85047504"
61
61
  }