@oslokommune/punkt-css 17.0.8 → 17.0.10

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.
@@ -39,3 +39,8 @@ body {
39
39
  text-rendering: optimizeSpeed;
40
40
  scroll-behavior: smooth;
41
41
  }
42
+
43
+ // Slot-omslag i komponentene: skal ikke lage en boks av seg selv.
44
+ .pkt-contents {
45
+ display: contents;
46
+ }
@@ -5,6 +5,7 @@
5
5
 
6
6
  @forward 'defaults';
7
7
  @forward 'typography';
8
+ @forward 'link';
8
9
 
9
10
  @forward 'containers';
10
11
  @forward 'grid';
@@ -0,0 +1,136 @@
1
+ /*
2
+ * Link
3
+ */
4
+
5
+ @use '../abstracts/variables';
6
+
7
+ a,
8
+ .pkt-link-button {
9
+ // Order of pseudoclasses is important for specificity:
10
+ // link, visited, hover, focus, active
11
+ // but we don't use visited, so we can skip :link
12
+
13
+ color: var(--pkt-color-text-action-normal);
14
+ text-decoration: underline;
15
+ word-wrap: break-word;
16
+ cursor: pointer;
17
+
18
+ span {
19
+ color: inherit;
20
+ text-decoration: inherit;
21
+ }
22
+
23
+ // visited
24
+ &:visited:not(.pkt-linkcard, .pkt-btn, .pkt-tabs__link):not(:hover) {
25
+ color: inherit;
26
+ }
27
+
28
+ // hover
29
+ &:hover,
30
+ &.pkt-link--hover {
31
+ color: var(--pkt-color-text-action-active);
32
+ text-decoration: underline;
33
+ svg {
34
+ --fg-color: currentColor;
35
+ }
36
+ }
37
+
38
+ // focus
39
+ &:focus-visible,
40
+ &.pkt-link--focus {
41
+ box-shadow:
42
+ 0px 0px 0px 0.125rem var(--pkt-color-text-action-active),
43
+ 0px 0px 0px 0.375rem var(--pkt-color-border-states-focus);
44
+ outline: none;
45
+ color: var(--pkt-color-text-action-active);
46
+ }
47
+
48
+ &:focus:not(:focus-visible) {
49
+ box-shadow: none;
50
+ outline: 0.125rem solid var(--pkt-color-text-action-active);
51
+ color: var(--pkt-color-text-action-active);
52
+ }
53
+
54
+ // active
55
+ &:active,
56
+ &.pkt-link--active {
57
+ color: var(--pkt-color-text-action-active);
58
+ }
59
+ }
60
+
61
+ .pkt-link {
62
+ display: inline;
63
+ text-align: left;
64
+ align-items: baseline;
65
+ }
66
+
67
+ .pkt-link {
68
+ &__icon {
69
+ --fg-color: currentColor;
70
+ width: 1.5rem;
71
+ height: 1.5rem;
72
+ flex-shrink: 0;
73
+ margin-inline: 0.25rem;
74
+ align-self: center;
75
+ }
76
+
77
+ &--icon-left,
78
+ &--icon-right {
79
+ display: inline-flex;
80
+ text-decoration: none;
81
+ align-items: baseline;
82
+ }
83
+
84
+ &--icon-left {
85
+ flex-direction: row;
86
+ }
87
+
88
+ &--icon-right {
89
+ flex-direction: row-reverse;
90
+ }
91
+
92
+ &--external::after {
93
+ display: inline-block;
94
+ content: ' ';
95
+ --svg: url(#{variables.$icon-path}/new-window-small.svg);
96
+ background-image: var(--svg);
97
+ background-repeat: no-repeat;
98
+ background-size: 18px 18px;
99
+ width: 1.125rem;
100
+ height: 1.125rem;
101
+ vertical-align: middle;
102
+ align-self: center;
103
+ }
104
+
105
+ &--external:hover::after {
106
+ // #1f42aa
107
+ filter: brightness(0) saturate(100%) invert(16%) sepia(99%) saturate(2420%) hue-rotate(222deg) brightness(93%)
108
+ contrast(90%);
109
+ }
110
+ }
111
+
112
+ button.pkt-link {
113
+ background: none;
114
+ border: none;
115
+ padding: 0;
116
+ font-family: inherit;
117
+ cursor: pointer;
118
+ font-weight: inherit;
119
+ }
120
+
121
+ @at-root [data-mode='dark'] {
122
+ .pkt-link {
123
+ &--external::after {
124
+ // white
125
+ filter: brightness(0) saturate(100%) invert(100%);
126
+ }
127
+
128
+ &--external:hover::after,
129
+ &:hover:not(.pkt-btn) pkt-icon,
130
+ &:hover:not(.pkt-btn) .pkt-icon {
131
+ // #b3f5ff
132
+ filter: brightness(0) saturate(100%) invert(80%) sepia(54%) saturate(502%) hue-rotate(173deg) brightness(109%)
133
+ contrast(105%);
134
+ }
135
+ }
136
+ }
@@ -36,137 +36,6 @@ strong {
36
36
  font-weight: map.get(variables.$font-weight, 'medium');
37
37
  }
38
38
 
39
- a,
40
- .pkt-link-button {
41
- // Order of pseudoclasses is important for specificity:
42
- // link, visited, hover, focus, active
43
- // but we don't use visited, so we can skip :link
44
-
45
- color: var(--pkt-color-text-action-normal);
46
- text-decoration: underline;
47
- word-wrap: break-word;
48
- cursor: pointer;
49
-
50
- span {
51
- color: inherit;
52
- text-decoration: inherit;
53
- }
54
-
55
- // visited
56
- &:visited:not(.pkt-linkcard, .pkt-btn, .pkt-tabs__link):not(:hover) {
57
- color: inherit;
58
- }
59
-
60
- // hover
61
- &:hover,
62
- &.pkt-link--hover {
63
- color: var(--pkt-color-text-action-active);
64
- text-decoration: underline;
65
- svg {
66
- --fg-color: currentColor;
67
- }
68
- }
69
-
70
- // focus
71
- &:focus-visible,
72
- &.pkt-link--focus {
73
- box-shadow:
74
- 0px 0px 0px 0.125rem var(--pkt-color-text-action-active),
75
- 0px 0px 0px 0.375rem var(--pkt-color-border-states-focus);
76
- outline: none;
77
- color: var(--pkt-color-text-action-active);
78
- }
79
-
80
- &:focus:not(:focus-visible) {
81
- box-shadow: none;
82
- outline: 0.125rem solid var(--pkt-color-text-action-active);
83
- color: var(--pkt-color-text-action-active);
84
- }
85
-
86
- // active
87
- &:active,
88
- &.pkt-link--active {
89
- color: var(--pkt-color-text-action-active);
90
- }
91
- }
92
-
93
- .pkt-link {
94
- display: inline;
95
- text-align: left;
96
- align-items: baseline;
97
- }
98
-
99
- .pkt-link {
100
- &__icon {
101
- --fg-color: currentColor;
102
- width: 1.5rem;
103
- height: 1.5rem;
104
- flex-shrink: 0;
105
- margin-inline: 0.25rem;
106
- align-self: center;
107
- }
108
-
109
- &--icon-left,
110
- &--icon-right {
111
- display: inline-flex;
112
- text-decoration: none;
113
- align-items: baseline;
114
- }
115
-
116
- &--icon-left {
117
- flex-direction: row;
118
- }
119
-
120
- &--icon-right {
121
- flex-direction: row-reverse;
122
- }
123
-
124
- &--external::after {
125
- display: inline-block;
126
- content: ' ';
127
- --svg: url(#{variables.$icon-path}/new-window-small.svg);
128
- background-image: var(--svg);
129
- background-repeat: no-repeat;
130
- background-size: 18px 18px;
131
- width: 1.125rem;
132
- height: 1.125rem;
133
- vertical-align: middle;
134
- align-self: center;
135
- }
136
-
137
- &--external:hover::after {
138
- // #1f42aa
139
- filter: brightness(0) saturate(100%) invert(16%) sepia(99%) saturate(2420%) hue-rotate(222deg) brightness(93%)
140
- contrast(90%);
141
- }
142
- }
143
-
144
- button.pkt-link {
145
- background: none;
146
- border: none;
147
- padding: 0;
148
- font-family: inherit;
149
- cursor: pointer;
150
- font-weight: inherit;
151
- }
152
-
153
- @at-root [data-mode='dark'] {
154
- .pkt-link {
155
- &--external::after {
156
- // white
157
- filter: brightness(0) saturate(100%) invert(100%);
158
- }
159
-
160
- &--external:hover::after,
161
- &:hover:not(.pkt-btn) pkt-icon,
162
- &:hover:not(.pkt-btn) .pkt-icon {
163
- // #b3f5ff
164
- filter: brightness(0) saturate(100%) invert(80%) sepia(54%) saturate(502%) hue-rotate(173deg) brightness(109%)
165
- contrast(105%);
166
- }
167
- }
168
- }
169
-
170
39
  /*
171
40
  * origo typography
172
41
  * prefix pkt
@@ -213,11 +82,3 @@ button.pkt-link {
213
82
  .pkt-truncate-text {
214
83
  @include typography.truncate-text();
215
84
  }
216
-
217
- /*
218
- * Display contents and disregard layout
219
- */
220
- .pkt-display-contents,
221
- .pkt-contents {
222
- display: contents;
223
- }
@@ -228,56 +228,55 @@ pkt-combobox,
228
228
  .pkt-listbox__open {
229
229
  margin-block-start: $-box-separator;
230
230
  }
231
- }
232
-
233
- .pkt-inputwrapper:not([data-navtype='pointer']) .pkt-combobox__input:focus-within {
234
- outline: 4px solid var(--pkt-color-border-states-focus);
235
- }
231
+ &.pkt-inputwrapper:not([data-navtype='pointer']) .pkt-combobox__input:focus-within {
232
+ outline: 4px solid var(--pkt-color-border-states-focus);
233
+ }
236
234
 
237
- // Dropdown scale follows input wrapper size (small / xsmall combobox fields)
238
- .pkt-inputwrapper--small,
239
- .pkt-inputwrapper--xsmall {
240
- .pkt-listbox {
241
- .pkt-listbox__option:not(.pkt-listbox__search) {
242
- padding: map.get(variables.$spacing, 'size-8') map.get(variables.$spacing, 'size-16');
243
- @include typography.get-text('pkt-txt-16-light');
244
- }
235
+ // Dropdown scale follows input wrapper size (small / xsmall combobox fields)
236
+ &.pkt-inputwrapper--small,
237
+ &.pkt-inputwrapper--xsmall {
238
+ .pkt-listbox {
239
+ .pkt-listbox__option:not(.pkt-listbox__search) {
240
+ padding: map.get(variables.$spacing, 'size-8') map.get(variables.$spacing, 'size-16');
241
+ @include typography.get-text('pkt-txt-16-light');
242
+ }
245
243
 
246
- .pkt-listbox__empty,
247
- .pkt-listbox__banner {
248
- padding: map.get(variables.$spacing, 'size-8') map.get(variables.$spacing, 'size-16');
249
- @include typography.get-text('pkt-txt-16-light');
250
- }
244
+ .pkt-listbox__empty,
245
+ .pkt-listbox__banner {
246
+ padding: map.get(variables.$spacing, 'size-8') map.get(variables.$spacing, 'size-16');
247
+ @include typography.get-text('pkt-txt-16-light');
248
+ }
251
249
 
252
- .pkt-listbox__search input {
253
- padding: map.get(variables.$spacing, 'size-8') map.get(variables.$spacing, 'size-12');
254
- @include typography.get-text('pkt-txt-16-light');
250
+ .pkt-listbox__search input {
251
+ padding: map.get(variables.$spacing, 'size-8') map.get(variables.$spacing, 'size-12');
252
+ @include typography.get-text('pkt-txt-16-light');
253
+ }
255
254
  }
256
255
  }
257
- }
258
256
 
259
- .pkt-inputwrapper--xsmall {
260
- .pkt-listbox {
261
- .pkt-listbox__option:not(.pkt-listbox__search) {
262
- padding: map.get(variables.$spacing, 'size-6') map.get(variables.$spacing, 'size-12');
263
- @include typography.get-text('pkt-txt-14-light');
264
- }
257
+ &.pkt-inputwrapper--xsmall {
258
+ .pkt-listbox {
259
+ .pkt-listbox__option:not(.pkt-listbox__search) {
260
+ padding: map.get(variables.$spacing, 'size-6') map.get(variables.$spacing, 'size-12');
261
+ @include typography.get-text('pkt-txt-14-light');
262
+ }
265
263
 
266
- .pkt-listbox__empty,
267
- .pkt-listbox__banner {
268
- padding: map.get(variables.$spacing, 'size-6') map.get(variables.$spacing, 'size-12');
269
- @include typography.get-text('pkt-txt-14-light');
270
- }
264
+ .pkt-listbox__empty,
265
+ .pkt-listbox__banner {
266
+ padding: map.get(variables.$spacing, 'size-6') map.get(variables.$spacing, 'size-12');
267
+ @include typography.get-text('pkt-txt-14-light');
268
+ }
271
269
 
272
- .pkt-listbox__banner-icon,
273
- .pkt-listbox__search-icon .pkt-icon {
274
- width: 1.125rem;
275
- height: 1.125rem;
276
- }
270
+ .pkt-listbox__banner-icon,
271
+ .pkt-listbox__search-icon .pkt-icon {
272
+ width: 1.125rem;
273
+ height: 1.125rem;
274
+ }
277
275
 
278
- .pkt-listbox__search input {
279
- padding: map.get(variables.$spacing, 'size-6') map.get(variables.$spacing, 'size-8');
280
- @include typography.get-text('pkt-txt-14-light');
276
+ .pkt-listbox__search input {
277
+ padding: map.get(variables.$spacing, 'size-6') map.get(variables.$spacing, 'size-8');
278
+ @include typography.get-text('pkt-txt-14-light');
279
+ }
281
280
  }
282
281
  }
283
282
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oslokommune/punkt-css",
3
- "version": "17.0.8",
3
+ "version": "17.0.10",
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",
@@ -62,5 +62,5 @@
62
62
  "dependencies": {
63
63
  "astro": "^7.2.0"
64
64
  },
65
- "gitHead": "e755eac6123dd25b4f93b1de4cc8febe170eee2d"
65
+ "gitHead": "d7aa97ec38415ce31bd73314e4669ca2ba04a8cf"
66
66
  }