nsw-design-system 3.0.2 → 3.1.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.
Files changed (36) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/README.md +7 -1
  3. package/dist/css/core.css +1 -1
  4. package/dist/css/main.css +1 -1
  5. package/package.json +2 -3
  6. package/src/components/_all.scss +1 -0
  7. package/src/components/accordion/_accordion.scss +22 -0
  8. package/src/components/breadcrumbs/_breadcrumbs.scss +4 -0
  9. package/src/components/button/_button.scss +57 -44
  10. package/src/components/callout/_callout.scss +4 -34
  11. package/src/components/card/_card.scss +56 -6
  12. package/src/components/content-block/_content-block.scss +4 -0
  13. package/src/components/filters/_filters.scss +51 -4
  14. package/src/components/header/_header.scss +39 -4
  15. package/src/components/hero-banner/_hero-banner.scss +60 -26
  16. package/src/components/hero-search/_hero-search.scss +1 -1
  17. package/src/components/in-page-alert/_in-page-alert.scss +22 -2
  18. package/src/components/in-page-nav/_in-page-nav.scss +1 -1
  19. package/src/components/link-list/_link-list.scss +4 -0
  20. package/src/components/media/_media.scss +8 -0
  21. package/src/components/pagination/_pagination.scss +4 -0
  22. package/src/components/side-nav/_side-nav.scss +12 -0
  23. package/src/components/steps/_steps.scss +315 -0
  24. package/src/components/table/_table.scss +4 -0
  25. package/src/components/tabs/_tabs.scss +18 -1
  26. package/src/components/tag/_tag.scss +28 -0
  27. package/src/core/iconography/_icon.scss +4 -0
  28. package/src/core/section/_section.scss +4 -0
  29. package/src/core/typography/_typography.scss +71 -1
  30. package/src/global/scss/base/_mixins.scss +1 -1
  31. package/src/global/scss/helpers/_all.scss +2 -0
  32. package/src/global/scss/helpers/_border.scss +20 -0
  33. package/src/global/scss/helpers/_shadow.scss +3 -0
  34. package/src/global/scss/settings/_palette.scss +1 -1
  35. package/src/global/scss/settings/_theme.scss +3 -0
  36. package/src/main.scss +1 -0
@@ -65,7 +65,17 @@ $nsw-buttons: (
65
65
  border-hover: transparent,
66
66
  focus: var(--nsw-focus),
67
67
  hover: white
68
- )
68
+ ),
69
+ info: (
70
+ text-color: var(--nsw-text-light),
71
+ text-color-hover: var(--nsw-text-light),
72
+ background: var(--nsw-status-info),
73
+ background-hover: var(--nsw-status-info),
74
+ border: transparent,
75
+ border-hover: transparent,
76
+ focus: var(--nsw-focus),
77
+ hover: white
78
+ ),
69
79
  );
70
80
 
71
81
  .nsw-button {
@@ -97,49 +107,6 @@ $nsw-buttons: (
97
107
  @include nsw-focus;
98
108
  }
99
109
 
100
- @each $color, $property-map in $nsw-buttons {
101
- &--#{"" + $color} {
102
- color: map-get($property-map, text-color);
103
- background-color: map-get($property-map, background);
104
- border-color: map-get($property-map, border);
105
-
106
- &:visited {
107
- color: map-get($property-map, text-color);
108
- }
109
-
110
- &:focus {
111
- outline-color: map-get($property-map, focus);
112
- }
113
-
114
- &:hover {
115
- color: map-get($property-map, text-color-hover);
116
- background-color: map-get($property-map, background-hover);
117
- border-color: map-get($property-map, border-hover);
118
- @if map-get($property-map, hover) == white {
119
- background-image: linear-gradient(rgba(var(--nsw-white-rgb), 0.15), rgba(var(--nsw-white-rgb), 0.15));
120
- }
121
- @if map-get($property-map, hover) == black {
122
- background-image: linear-gradient(rgba(var(--nsw-black-rgb), 0.07), rgba(var(--nsw-black-rgb), 0.07));
123
- }
124
-
125
- .nsw-material-icons {
126
- color: map-get($property-map, text-color-hover);
127
- }
128
- }
129
-
130
- &:disabled,
131
- &.disabled {
132
- color: map-get($property-map, text-color);
133
- background-color: map-get($property-map, background);
134
- border-color: map-get($property-map, border);
135
- }
136
-
137
- .nsw-material-icons {
138
- color: map-get($property-map, text-color);
139
- }
140
- }
141
- }
142
-
143
110
  &:disabled,
144
111
  &.disabled {
145
112
  opacity: 0.4;
@@ -206,3 +173,49 @@ $nsw-buttons: (
206
173
  }
207
174
  }
208
175
  }
176
+
177
+ .nsw-section--invert .nsw-button,
178
+ .nsw-button {
179
+ @each $color, $property-map in $nsw-buttons {
180
+ &--#{"" + $color} {
181
+ color: map-get($property-map, text-color);
182
+ background-color: map-get($property-map, background);
183
+ border-color: map-get($property-map, border);
184
+
185
+ &:visited {
186
+ color: map-get($property-map, text-color);
187
+ }
188
+
189
+ &:focus {
190
+ outline-color: map-get($property-map, focus);
191
+ }
192
+
193
+ &:hover {
194
+ color: map-get($property-map, text-color-hover);
195
+ background-color: map-get($property-map, background-hover);
196
+ border-color: map-get($property-map, border-hover);
197
+ @if map-get($property-map, hover) == white {
198
+ background-image: linear-gradient(rgba(var(--nsw-white-rgb), 0.15), rgba(var(--nsw-white-rgb), 0.15));
199
+ }
200
+ @if map-get($property-map, hover) == black {
201
+ background-image: linear-gradient(rgba(var(--nsw-black-rgb), 0.07), rgba(var(--nsw-black-rgb), 0.07));
202
+ }
203
+
204
+ .nsw-material-icons {
205
+ color: map-get($property-map, text-color-hover);
206
+ }
207
+ }
208
+
209
+ &:disabled,
210
+ &.disabled {
211
+ color: map-get($property-map, text-color);
212
+ background-color: map-get($property-map, background);
213
+ border-color: map-get($property-map, border);
214
+ }
215
+
216
+ .nsw-material-icons {
217
+ color: map-get($property-map, text-color);
218
+ }
219
+ }
220
+ }
221
+ }
@@ -1,39 +1,9 @@
1
1
  .nsw-callout {
2
2
  @include component-spacing();
3
3
  padding: rem(16px);
4
- background: var(--nsw-off-white);
5
- position: relative;
6
- border-left: solid 6px var(--nsw-brand-dark);
7
-
8
- @include breakpoint('md') {
9
- display: flex;
10
- flex-direction: row;
11
- flex-wrap: nowrap;
12
- padding: rem(24px) rem(24px) rem(24px) rem(16px);
13
- }
14
-
15
- .nsw-material-icons {
16
- font-size: rem(map-get($nsw-icon-sizes, 30));
17
- color: var(--nsw-brand-dark);
18
- display: block;
19
-
20
- + .nsw-callout__content {
21
- margin-top: rem(12px);
22
- }
23
-
24
- @include breakpoint('md') {
25
- margin-right: rem(16px);
26
- flex: 0 0 auto;
27
-
28
- + .nsw-callout__content {
29
- margin-top: 0;
30
- }
31
- }
32
- }
33
-
34
- &__content {
35
- *+p {
36
- margin-top: rem(12px);
37
- }
4
+ border-left: solid 4px var(--nsw-brand-dark);
5
+
6
+ .nsw-section--invert & {
7
+ border-color: var(--nsw-brand-light);
38
8
  }
39
9
  }
@@ -32,6 +32,18 @@
32
32
  .nsw-material-icons {
33
33
  color: var(--nsw-text-light);
34
34
  }
35
+
36
+ .nsw-section--invert & {
37
+ color: var(--nsw-text-dark);
38
+
39
+ .nsw-card__content {
40
+ background-color: var(--nsw-brand-light);
41
+
42
+ &::after {
43
+ background-color: transparent;
44
+ }
45
+ }
46
+ }
35
47
  }
36
48
 
37
49
  &:focus-within {
@@ -56,6 +68,10 @@
56
68
  @include breakpoint('lg') {
57
69
  padding: rem(32px) rem(32px) rem(94px) rem(32px);
58
70
  }
71
+
72
+ .nsw-section--invert & {
73
+ border-color: transparent;
74
+ }
59
75
  }
60
76
 
61
77
  &__title {
@@ -76,6 +92,10 @@
76
92
  background-color: transparent;
77
93
  outline: none;
78
94
  }
95
+
96
+ .nsw-section--invert & {
97
+ color: var(--nsw-text-dark);
98
+ }
79
99
  }
80
100
  }
81
101
 
@@ -111,6 +131,10 @@
111
131
  bottom: rem(32px);
112
132
  left: rem(32px);
113
133
  }
134
+
135
+ .nsw-section--invert & {
136
+ color: var(--nsw-brand-dark);
137
+ }
114
138
  }
115
139
 
116
140
  &__image {
@@ -136,6 +160,14 @@
136
160
  }
137
161
 
138
162
  &--light {
163
+ &:hover {
164
+ .nsw-section--invert & {
165
+ .nsw-card__content {
166
+ background-color: var(--nsw-white);
167
+ }
168
+ }
169
+ }
170
+
139
171
  .nsw-card__content {
140
172
  background-color: var(--nsw-brand-light);
141
173
  border-color: transparent;
@@ -171,6 +203,16 @@
171
203
  .nsw-material-icons {
172
204
  color: var(--nsw-brand-dark);
173
205
  }
206
+
207
+ .nsw-section--invert & {
208
+ .nsw-card__content {
209
+ background-color: var(--nsw-white);
210
+ }
211
+
212
+ .nsw-material-icons {
213
+ color: var(--nsw-brand-dark);
214
+ }
215
+ }
174
216
  }
175
217
 
176
218
  .nsw-card__content {
@@ -181,6 +223,10 @@
181
223
  &::after {
182
224
  display: none;
183
225
  }
226
+
227
+ .nsw-section--invert & {
228
+ border-color: var(--nsw-white);
229
+ }
184
230
  }
185
231
 
186
232
  .nsw-card__image {
@@ -195,6 +241,10 @@
195
241
 
196
242
  .nsw-material-icons {
197
243
  color: var(--nsw-text-light);
244
+
245
+ .nsw-section--invert & {
246
+ color: var(--nsw-text-light);
247
+ }
198
248
  }
199
249
  }
200
250
 
@@ -208,7 +258,7 @@
208
258
  .nsw-card__content {
209
259
  &::before {
210
260
  content: '';
211
- height: 6px;
261
+ height: 4px;
212
262
  }
213
263
 
214
264
  &::after {
@@ -217,7 +267,7 @@
217
267
  top: 0;
218
268
  left: 0;
219
269
  right: 0;
220
- height: 6px;
270
+ height: 4px;
221
271
  background-color: var(--nsw-brand-accent);
222
272
  transition: background $nsw-transition-duration;
223
273
  }
@@ -227,10 +277,10 @@
227
277
  &::after {
228
278
  content: '';
229
279
  position: absolute;
230
- bottom: -6px;
280
+ bottom: -4px;
231
281
  left: 0;
232
282
  right: 0;
233
- height: 6px;
283
+ height: 4px;
234
284
  background-color: var(--nsw-brand-accent);
235
285
  transition: background $nsw-transition-duration;
236
286
  }
@@ -269,8 +319,8 @@
269
319
  top: 0;
270
320
  bottom: 0;
271
321
  left: auto;
272
- right: -6px;
273
- width: 6px;
322
+ right: -4px;
323
+ width: 4px;
274
324
  height: auto;
275
325
  }
276
326
  }
@@ -22,6 +22,10 @@
22
22
  background-color: var(--nsw-text-dark);
23
23
  top: rem(18px);
24
24
  left: 0;
25
+
26
+ .nsw-section--invert & {
27
+ background-color: var(--nsw-text-light);
28
+ }
25
29
  }
26
30
  }
27
31
  }
@@ -1,4 +1,4 @@
1
- .nsw-filters {
1
+ .nsw-filters {
2
2
  .nsw-layout__sidebar & {
3
3
  margin: rem(-8px) 0 rem(-16px) 0;
4
4
 
@@ -31,6 +31,10 @@
31
31
  display: flex;
32
32
  align-items: center;
33
33
  text-decoration: none;
34
+
35
+ .nsw-section--invert & {
36
+ color: var(--nsw-white);
37
+ }
34
38
 
35
39
  span {
36
40
  text-decoration: underline;
@@ -44,12 +48,21 @@
44
48
  padding: rem(1px);
45
49
  border: 2px solid var(--nsw-brand-dark);
46
50
  text-decoration: none;
51
+
52
+ .nsw-section--invert & {
53
+ border-color: var(--nsw-white);
54
+ }
47
55
  }
48
56
 
49
57
  &.active {
50
58
  .nsw-material-icons {
51
59
  background-color: var(--nsw-brand-dark);
52
- color: var(--nsw-text-light);
60
+ color: var(--nsw-text-light);
61
+
62
+ .nsw-section--invert & {
63
+ background-color: var(--nsw-white);
64
+ color: var(--nsw-brand-dark);
65
+ }
53
66
  }
54
67
  }
55
68
  }
@@ -67,6 +80,10 @@
67
80
  @include breakpoint('lg') {
68
81
  display: none;
69
82
  }
83
+
84
+ .nsw-section--invert & {
85
+ background-color: var(--nsw-brand-dark);
86
+ }
70
87
  }
71
88
 
72
89
  &__wrapper {
@@ -81,6 +98,10 @@
81
98
  overflow-y: auto;
82
99
  background-color: var(--nsw-white);
83
100
  padding: rem(73px) rem(16px) rem(101px) rem(16px);
101
+
102
+ .nsw-section--invert & {
103
+ background-color: var(--nsw-brand-dark);
104
+ }
84
105
 
85
106
  @include breakpoint('lg') {
86
107
  display: block;
@@ -88,6 +109,10 @@
88
109
  background-color: transparent;
89
110
  padding: 0;
90
111
  overflow-y: visible;
112
+
113
+ .nsw-section--invert & {
114
+ background-color: transparent;
115
+ }
91
116
  }
92
117
  }
93
118
 
@@ -122,14 +147,23 @@
122
147
  background-color: var(--nsw-white);
123
148
  padding: rem(24px) rem(16px);
124
149
 
150
+ .nsw-section--invert & {
151
+ background-color: var(--nsw-brand-dark);
152
+ }
153
+
125
154
  @include breakpoint('lg') {
126
155
  position: static;
127
156
  padding: rem(32px) 0;
157
+ background-color: transparent;
158
+
159
+ .nsw-section--invert & {
160
+ background-color: transparent;
161
+ }
128
162
  }
129
163
  }
130
164
  }
131
165
 
132
- &__cancel {
166
+ &__cancel {
133
167
  padding-bottom: rem(32px);
134
168
 
135
169
  .nsw-filters--fixed & {
@@ -139,6 +173,7 @@
139
173
  @include breakpoint('lg') {
140
174
  padding-top: 0;
141
175
  border: 0;
176
+ background-color: transparent;
142
177
  }
143
178
  }
144
179
 
@@ -149,13 +184,21 @@
149
184
 
150
185
  button {
151
186
  @include link-button;
187
+
188
+ .nsw-section--invert & {
189
+ @include link-light;
190
+ }
152
191
  }
153
192
  }
154
193
 
155
194
  &__more,
156
- &__less {
195
+ &__less {
157
196
  @include link-button;
158
197
  margin-top: rem(24px);
198
+
199
+ .nsw-section--invert & {
200
+ @include link-light;
201
+ }
159
202
  }
160
203
 
161
204
  .hidden {
@@ -165,4 +208,8 @@
165
208
 
166
209
  .filters-open {
167
210
  overflow: hidden;
211
+
212
+ @include breakpoint('lg') {
213
+ overflow: unset;
214
+ }
168
215
  }
@@ -102,12 +102,20 @@
102
102
  display: flex;
103
103
  justify-content: flex-start;
104
104
  align-items: center;
105
- margin: rem(12px) rem(72px) rem(12px) 0;
105
+ margin: rem(20px) rem(72px) rem(20px) 0;
106
106
 
107
107
  &:focus-within {
108
108
  @include nsw-focus;
109
109
  }
110
110
  }
111
+
112
+ .nsw-header__rectangular-logo {
113
+ @include breakpoint('lg') {
114
+ height: rem(60px);
115
+ margin-top: rem(8px);
116
+ margin-bottom: rem(8px);
117
+ }
118
+ }
111
119
  }
112
120
 
113
121
  &__waratah {
@@ -126,6 +134,14 @@
126
134
  @include breakpoint($nsw-desktop-breakpoint) {
127
135
  height: rem(76px);
128
136
  }
137
+
138
+ &.nsw-header__waratah-gov {
139
+ height: rem(55px);
140
+
141
+ @include breakpoint($nsw-desktop-breakpoint) {
142
+ height: rem(76px);
143
+ }
144
+ }
129
145
  }
130
146
 
131
147
  a {
@@ -155,19 +171,35 @@
155
171
  margin-left: rem(24px);
156
172
 
157
173
  @include breakpoint($nsw-desktop-breakpoint) {
158
- margin-left: rem(48px);
174
+ margin-left: rem(40px);
159
175
  }
160
176
  }
161
177
  }
162
178
  }
163
179
 
180
+ &__waratah-gov {
181
+ margin-bottom: rem(-7px);
182
+
183
+ @include breakpoint($nsw-desktop-breakpoint) {
184
+ margin-bottom: 0;
185
+ }
186
+
187
+ .hide {
188
+ display: none;
189
+
190
+ @include breakpoint($nsw-desktop-breakpoint) {
191
+ display: inline;
192
+ }
193
+ }
194
+ }
195
+
164
196
  &__name {
165
197
  padding: rem(12px) 0;
166
198
  color: var(--nsw-brand-dark);
167
199
 
168
200
  @include breakpoint($nsw-desktop-breakpoint) {
169
201
  padding: 0;
170
- margin-left: rem(32px);
202
+ margin-left: rem(40px);
171
203
  }
172
204
  }
173
205
 
@@ -178,6 +210,10 @@
178
210
  display: flex;
179
211
  align-items: center;
180
212
 
213
+ @include breakpoint('lg') {
214
+ line-height: rem(28px);
215
+ }
216
+
181
217
  .nsw-tag {
182
218
  margin-left: rem(24px);
183
219
  }
@@ -193,7 +229,6 @@
193
229
  justify-content: center;
194
230
 
195
231
  @include breakpoint($nsw-desktop-breakpoint) {
196
- padding-left: rem(16px);
197
232
  justify-content: flex-start;
198
233
  }
199
234
 
@@ -92,7 +92,7 @@
92
92
 
93
93
  &__list {
94
94
  @include z-index;
95
- border-left: solid 4px var(--nsw-brand-accent);
95
+ border-left: solid 2px var(--nsw-brand-accent);
96
96
  padding-left: rem(16px);
97
97
  position: relative;
98
98
 
@@ -145,34 +145,33 @@
145
145
  object-position: center;
146
146
  }
147
147
 
148
- &__graphic {
149
- width: 100%;
150
- height: 100%;
151
- display: flex;
152
- justify-content: flex-end;
153
- align-items: flex-end;
148
+ &__lines {
149
+ display: none;
150
+ background-color: var(--nsw-brand-light);
151
+ position: relative;
154
152
 
155
- &--transparent {
156
- opacity: 0.2;
153
+ @include breakpoint('md') {
154
+ display: block;
155
+ width: 100%;
157
156
  }
158
- }
159
157
 
160
- &__bg {
161
- width: 100%;
162
- height: 100%;
163
- overflow: hidden;
164
- color: var(--nsw-brand-dark);
165
- opacity: 0.2;
166
- /*
167
- background-image: url("data:image/svg+xml,%3Csvg width='206' height='220' viewBox='0 0 206 220' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M206 220V36.232L32.136 220H206zm-189.5 0H0L206 2.143v17.46L16.5 220z'/%3E%3C/svg%3E");
168
- background-size: rem(206px);
169
- background-position: right bottom;
170
- background-repeat: no-repeat;
171
- */
158
+ &::after {
159
+ content: '';
160
+ position: absolute;
161
+ top: 0;
162
+ bottom: 0;
163
+ left: rem(-16px);
164
+ width: rem(32px);
165
+ background-color: var(--nsw-brand-supplementary);
166
+ }
172
167
  }
173
168
 
174
169
  &--light {
175
170
  background-color: var(--nsw-brand-light);
171
+
172
+ .nsw-hero-banner__lines {
173
+ background-color: var(--nsw-brand-dark);
174
+ }
176
175
  }
177
176
 
178
177
  &--dark {
@@ -190,10 +189,45 @@
190
189
  }
191
190
  }
192
191
 
193
- /*
194
- .nsw-hero-banner__bg {
195
- background-image: url("data:image/svg+xml,%3Csvg width='206' height='220' viewBox='0 0 206 220' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' d='M206 220V36.232L32.136 220H206zm-189.5 0H0L206 2.143v17.46L16.5 220z'/%3E%3C/svg%3E");
192
+ .nsw-hero-banner__list {
193
+ border-color: var(--nsw-brand-light);
194
+ }
195
+ }
196
+
197
+ &--lines {
198
+ border-bottom: rem(32px) solid var(--nsw-brand-light);
199
+
200
+ @include breakpoint('md') {
201
+ border: 0;
202
+ }
203
+
204
+ &.nsw-hero-banner--light {
205
+ border-color: var(--nsw-brand-dark);
206
+ }
207
+
208
+ &::after {
209
+ visibility: hidden;
210
+
211
+ @include breakpoint('md') {
212
+ visibility: visible;
213
+ }
214
+ }
215
+
216
+ .nsw-hero-banner__container {
217
+ border-bottom: rem(16px) solid var(--nsw-brand-supplementary);
218
+
219
+ @include breakpoint('md') {
220
+ border: 0;
221
+ }
222
+ }
223
+
224
+ .nsw-hero-banner__box {
225
+ width: 25%;
226
+
227
+ @include breakpoint('xl') {
228
+ width: 50%;
229
+ padding-left: calc(var(--nsw-container-width)/4+#{rem($grid-gutters)}*2);
230
+ }
196
231
  }
197
- */
198
232
  }
199
233
  }
@@ -16,7 +16,7 @@
16
16
  &__wrapper {
17
17
  padding: rem(32px) rem(16px);
18
18
  background-color: var(--nsw-off-white);
19
- border-bottom: solid 6px var(--nsw-brand-accent);
19
+ border-bottom: solid 4px var(--nsw-brand-accent);
20
20
 
21
21
  @include breakpoint('md') {
22
22
  border-top-left-radius: var(--nsw-border-radius);
@@ -26,7 +26,7 @@ $nsw-in-page-alerts: (
26
26
  @include component-spacing();
27
27
  padding: rem(16px);
28
28
  position: relative;
29
- border-left: solid 6px var(--nsw-brand-accent);
29
+ border-left: solid 4px var(--nsw-brand-accent);
30
30
  background-color: var(--nsw-grey-04);
31
31
  display: flex;
32
32
  flex-direction: row;
@@ -35,10 +35,19 @@ $nsw-in-page-alerts: (
35
35
  @include breakpoint('md') {
36
36
  padding: rem(24px) rem(24px) rem(24px) rem(16px);
37
37
  }
38
+
39
+ .nsw-section--invert & {
40
+ color: var(--nsw-text-dark);
41
+
42
+ a {
43
+ @include link-dark;
44
+ }
45
+ }
38
46
 
39
47
  &__icon {
40
- font-size: rem(map-get($nsw-icon-sizes, 36));
48
+ font-size: rem(map-get($nsw-icon-sizes, 30));
41
49
  margin-right: rem(16px);
50
+ margin-top: rem(-2px);
42
51
  }
43
52
 
44
53
  @each $color, $variant in $nsw-in-page-alerts {
@@ -51,4 +60,15 @@ $nsw-in-page-alerts: (
51
60
  }
52
61
  }
53
62
  }
63
+
64
+ &--compact {
65
+ padding: rem(8px);
66
+ border: 0;
67
+
68
+ .nsw-in-page-alert__icon {
69
+ font-size: rem(map-get($nsw-icon-sizes, 20));
70
+ margin-right: rem(8px);
71
+ margin-top: 0;
72
+ }
73
+ }
54
74
  }