@codeforamerica/marcomms-design-system 1.9.0 → 1.11.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/src/core/grid.mdx CHANGED
@@ -1,231 +1,244 @@
1
- import { Meta } from '@storybook/addon-docs/blocks';
1
+ import { Meta, Unstyled } from '@storybook/addon-docs/blocks';
2
2
  import '../components/card';
3
3
  import '../components/placeholder';
4
4
 
5
5
  <Meta title="Core/Grid" />
6
6
 
7
- <div class="container-fluid wrapper stack">
8
- <div class="row">
9
- <div class="col-xs-12">
10
- <cfa-placeholder />
11
- </div>
12
- </div>
13
- <div class="row">
14
- <div class="col-xs-12 col-md-6">
15
- <cfa-placeholder />
16
- </div>
17
- <div class="col-xs-12 col-md-6">
18
- <cfa-placeholder />
19
- </div>
20
- </div>
21
- <div class="row">
22
- <div class="col-xs-12 col-md-4">
23
- <cfa-placeholder />
24
- </div>
25
- <div class="col-xs-12 col-md-4">
26
- <cfa-placeholder />
27
- </div>
28
- <div class="col-xs-12 col-md-4">
29
- <cfa-placeholder />
30
- </div>
31
- </div>
32
- <div class="row">
33
- <div class="col-xs-12 col-md-3">
34
- <cfa-placeholder />
35
- </div>
36
- <div class="col-xs-12 col-md-3">
37
- <cfa-placeholder />
38
- </div>
39
- <div class="col-xs-12 col-md-3">
40
- <cfa-placeholder />
41
- </div>
42
- <div class="col-xs-12 col-md-3">
43
- <cfa-placeholder />
44
- </div>
45
- </div>
46
- <div class="row row--no-gap">
47
- <div class="col-xs-12 col-md-3">
48
- <cfa-placeholder />
49
- </div>
50
- <div class="col-xs-12 col-md-3">
51
- <cfa-placeholder />
52
- </div>
53
- <div class="col-xs-12 col-md-3">
54
- <cfa-placeholder />
55
- </div>
56
- <div class="col-xs-12 col-md-3">
57
- <cfa-placeholder />
58
- </div>
59
- </div>
60
- <div class="row">
61
- <div class="col-xs-12 col-md-2">
62
- <cfa-placeholder />
63
- </div>
64
- <div class="col-xs-12 col-md-2">
65
- <cfa-placeholder />
66
- </div>
67
- <div class="col-xs-12 col-md-2">
68
- <cfa-placeholder />
69
- </div>
70
- <div class="col-xs-12 col-md-2">
71
- <cfa-placeholder />
72
- </div>
73
- <div class="col-xs-12 col-md-2">
74
- <cfa-placeholder />
75
- </div>
76
- <div class="col-xs-12 col-md-2">
77
- <cfa-placeholder />
78
- </div>
79
- </div>
80
- <div class="row">
81
- <div class="col-xs-12 col-md-1">
82
- <cfa-placeholder />
83
- </div>
84
- <div class="col-xs-12 col-md-1">
85
- <cfa-placeholder />
86
- </div>
87
- <div class="col-xs-12 col-md-1">
88
- <cfa-placeholder />
89
- </div>
90
- <div class="col-xs-12 col-md-1">
91
- <cfa-placeholder />
92
- </div>
93
- <div class="col-xs-12 col-md-1">
94
- <cfa-placeholder />
95
- </div>
96
- <div class="col-xs-12 col-md-1">
97
- <cfa-placeholder />
98
- </div>
99
- <div class="col-xs-12 col-md-1">
100
- <cfa-placeholder />
101
- </div>
102
- <div class="col-xs-12 col-md-1">
103
- <cfa-placeholder />
104
- </div>
105
- <div class="col-xs-12 col-md-1">
106
- <cfa-placeholder />
107
- </div>
108
- <div class="col-xs-12 col-md-1">
109
- <cfa-placeholder />
110
- </div>
111
- <div class="col-xs-12 col-md-1">
112
- <cfa-placeholder />
113
- </div>
114
- <div class="col-xs-12 col-md-1">
115
- <cfa-placeholder />
116
- </div>
117
- </div>
118
- <div class="row">
119
- <div class="col-xs-12 col-md-4">
120
- <cfa-placeholder />
121
- </div>
122
- <div class="col-xs-12 col-md-8">
123
- <cfa-placeholder />
124
- </div>
125
- </div>
7
+ <Unstyled>
8
+ <div class="container-fluid wrapper stack">
126
9
  <div class="row">
127
- <div class="col-xs-12 col-md-3">
128
- <cfa-placeholder />
129
- </div>
130
- <div class="col-xs-12 col-md-6">
131
- <cfa-placeholder />
132
- </div>
133
- <div class="col-xs-12 col-md-3">
134
- <cfa-placeholder />
135
- </div>
136
- </div>
137
- <div class="row">
138
- <div class="col-xs-12 col-md-3">
139
- <cfa-placeholder />
140
- </div>
141
- <div class="col-xs-12 col-md-3">
142
- <cfa-placeholder />
143
- </div>
144
- <div class="col-xs-12 col-md-3">
145
- <cfa-placeholder />
146
- </div>
147
- <div class="col-xs-12 col-md-3">
148
- <cfa-placeholder />
149
- </div>
150
- <div class="col-xs-12 col-md-3">
151
- <cfa-placeholder />
10
+ <div class="col-xs-12">
11
+ <cfa-placeholder />
12
+ </div>
152
13
  </div>
153
- <div class="col-xs-12 col-md-3">
154
- <cfa-placeholder />
14
+ <div class="row">
15
+ <div class="col-xs-12 col-md-6">
16
+ <cfa-placeholder />
17
+ </div>
18
+ <div class="col-xs-12 col-md-6">
19
+ <cfa-placeholder />
20
+ </div>
155
21
  </div>
156
- </div>
157
- <div class="row between-md">
158
- <div class="col-xs-12 col-md-4">
159
- <cfa-placeholder />
22
+ <div class="row">
23
+ <div class="col-xs-12 col-md-4">
24
+ <cfa-placeholder />
25
+ </div>
26
+ <div class="col-xs-12 col-md-4">
27
+ <cfa-placeholder />
28
+ </div>
29
+ <div class="col-xs-12 col-md-4">
30
+ <cfa-placeholder />
31
+ </div>
160
32
  </div>
161
- <div class="col-xs-12 col-md-4">
162
- <cfa-placeholder />
33
+ <div class="row">
34
+ <div class="col-xs-12 col-md-3">
35
+ <cfa-placeholder />
36
+ </div>
37
+ <div class="col-xs-12 col-md-3">
38
+ <cfa-placeholder />
39
+ </div>
40
+ <div class="col-xs-12 col-md-3">
41
+ <cfa-placeholder />
42
+ </div>
43
+ <div class="col-xs-12 col-md-3">
44
+ <cfa-placeholder />
45
+ </div>
163
46
  </div>
164
- </div>
165
- <div class="row middle-md">
166
- <div class="col-xs-12 col-md-4">
167
- <cfa-placeholder style={{ "--height": "var(--spacing-layout-4)" }} />
47
+ <div class="row row--no-gap">
48
+ <div class="col-xs-12 col-md-3">
49
+ <cfa-placeholder />
50
+ </div>
51
+ <div class="col-xs-12 col-md-3">
52
+ <cfa-placeholder />
53
+ </div>
54
+ <div class="col-xs-12 col-md-3">
55
+ <cfa-placeholder />
56
+ </div>
57
+ <div class="col-xs-12 col-md-3">
58
+ <cfa-placeholder />
59
+ </div>
168
60
  </div>
169
- <div class="col-xs-12 col-md-4">
170
- <cfa-placeholder style={{ "--height": "var(--spacing-layout-3)" }} />
61
+ <div class="row">
62
+ <div class="col-xs-12 col-md-2">
63
+ <cfa-placeholder />
64
+ </div>
65
+ <div class="col-xs-12 col-md-2">
66
+ <cfa-placeholder />
67
+ </div>
68
+ <div class="col-xs-12 col-md-2">
69
+ <cfa-placeholder />
70
+ </div>
71
+ <div class="col-xs-12 col-md-2">
72
+ <cfa-placeholder />
73
+ </div>
74
+ <div class="col-xs-12 col-md-2">
75
+ <cfa-placeholder />
76
+ </div>
77
+ <div class="col-xs-12 col-md-2">
78
+ <cfa-placeholder />
79
+ </div>
171
80
  </div>
172
- <div class="col-xs-12 col-md-4">
173
- <cfa-placeholder style={{ "--height": "var(--spacing-layout-2)" }} />
81
+ <div class="row">
82
+ <div class="col-xs-12 col-md-1">
83
+ <cfa-placeholder />
84
+ </div>
85
+ <div class="col-xs-12 col-md-1">
86
+ <cfa-placeholder />
87
+ </div>
88
+ <div class="col-xs-12 col-md-1">
89
+ <cfa-placeholder />
90
+ </div>
91
+ <div class="col-xs-12 col-md-1">
92
+ <cfa-placeholder />
93
+ </div>
94
+ <div class="col-xs-12 col-md-1">
95
+ <cfa-placeholder />
96
+ </div>
97
+ <div class="col-xs-12 col-md-1">
98
+ <cfa-placeholder />
99
+ </div>
100
+ <div class="col-xs-12 col-md-1">
101
+ <cfa-placeholder />
102
+ </div>
103
+ <div class="col-xs-12 col-md-1">
104
+ <cfa-placeholder />
105
+ </div>
106
+ <div class="col-xs-12 col-md-1">
107
+ <cfa-placeholder />
108
+ </div>
109
+ <div class="col-xs-12 col-md-1">
110
+ <cfa-placeholder />
111
+ </div>
112
+ <div class="col-xs-12 col-md-1">
113
+ <cfa-placeholder />
114
+ </div>
115
+ <div class="col-xs-12 col-md-1">
116
+ <cfa-placeholder />
117
+ </div>
174
118
  </div>
175
- </div>
176
- <div class="row bottom-md">
177
- <div class="col-xs-12 col-md-4">
178
- <cfa-placeholder style={{ "--height": "var(--spacing-layout-4)" }} />
119
+ <div class="row">
120
+ <div class="col-xs-12 col-md-4">
121
+ <cfa-placeholder />
122
+ </div>
123
+ <div class="col-xs-12 col-md-8">
124
+ <cfa-placeholder />
125
+ </div>
179
126
  </div>
180
- <div class="col-xs-12 col-md-4">
181
- <cfa-placeholder style={{ "--height": "var(--spacing-layout-3)" }} />
127
+ <div class="row">
128
+ <div class="col-xs-12 col-md-3">
129
+ <cfa-placeholder />
130
+ </div>
131
+ <div class="col-xs-12 col-md-6">
132
+ <cfa-placeholder />
133
+ </div>
134
+ <div class="col-xs-12 col-md-3">
135
+ <cfa-placeholder />
136
+ </div>
182
137
  </div>
183
- <div class="col-xs-12 col-md-4">
184
- <cfa-placeholder style={{ "--height": "var(--spacing-layout-2)" }} />
138
+ <div class="row">
139
+ <div class="col-xs-12 col-md-3">
140
+ <cfa-placeholder />
141
+ </div>
142
+ <div class="col-xs-12 col-md-3">
143
+ <cfa-placeholder />
144
+ </div>
145
+ <div class="col-xs-12 col-md-3">
146
+ <cfa-placeholder />
147
+ </div>
148
+ <div class="col-xs-12 col-md-3">
149
+ <cfa-placeholder />
150
+ </div>
151
+ <div class="col-xs-12 col-md-3">
152
+ <cfa-placeholder />
153
+ </div>
154
+ <div class="col-xs-12 col-md-3">
155
+ <cfa-placeholder />
156
+ </div>
185
157
  </div>
186
- </div>
187
- <div class="row">
188
- <div class="col-xs-12 col-md-4 last-md">
189
- <cfa-placeholder style={{ "--bg-color": "var(--purple-60)" }} />
158
+ <div class="row between-md">
159
+ <div class="col-xs-12 col-md-4">
160
+ <cfa-placeholder />
161
+ </div>
162
+ <div class="col-xs-12 col-md-4">
163
+ <cfa-placeholder />
164
+ </div>
190
165
  </div>
191
- <div class="col-xs-12 col-md-4">
192
- <cfa-placeholder />
166
+ <div class="row">
167
+ <div class="col-xs-12 col-md-4">
168
+ <cfa-placeholder />
169
+ </div>
170
+ <div class="col-xs-12 col-md-3 col-md-offset-2">
171
+ <cfa-placeholder />
172
+ </div>
173
+ <div class="col-xs-12 col-md-2 col-md-offset-1">
174
+ <cfa-placeholder />
175
+ </div>
193
176
  </div>
194
- <div class="col-xs-12 col-md-4">
195
- <cfa-placeholder />
177
+ <div class="row middle-md">
178
+ <div class="col-xs-12 col-md-4">
179
+ <cfa-placeholder style={{ "--height": "var(--spacing-layout-4)" }} />
180
+ </div>
181
+ <div class="col-xs-12 col-md-4">
182
+ <cfa-placeholder style={{ "--height": "var(--spacing-layout-3)" }} />
183
+ </div>
184
+ <div class="col-xs-12 col-md-4">
185
+ <cfa-placeholder style={{ "--height": "var(--spacing-layout-2)" }} />
186
+ </div>
196
187
  </div>
197
- </div>
198
- <div class="row">
199
- <div class="col-xs-12 col-md">
200
- <cfa-placeholder/>
188
+ <div class="row bottom-md">
189
+ <div class="col-xs-12 col-md-4">
190
+ <cfa-placeholder style={{ "--height": "var(--spacing-layout-4)" }} />
191
+ </div>
192
+ <div class="col-xs-12 col-md-4">
193
+ <cfa-placeholder style={{ "--height": "var(--spacing-layout-3)" }} />
194
+ </div>
195
+ <div class="col-xs-12 col-md-4">
196
+ <cfa-placeholder style={{ "--height": "var(--spacing-layout-2)" }} />
197
+ </div>
201
198
  </div>
202
- <div class="col-xs-12 col-md">
203
- <cfa-placeholder />
199
+ <div class="row">
200
+ <div class="col-xs-12 col-md-4 last-md">
201
+ <cfa-placeholder style={{ "--bg-color": "var(--purple-60)" }} />
202
+ </div>
203
+ <div class="col-xs-12 col-md-4">
204
+ <cfa-placeholder />
205
+ </div>
206
+ <div class="col-xs-12 col-md-4">
207
+ <cfa-placeholder />
208
+ </div>
204
209
  </div>
205
- <div class="col-xs-12 col-md">
206
- <cfa-placeholder />
210
+ <div class="row">
211
+ <div class="col-xs-12 col-md">
212
+ <cfa-placeholder/>
213
+ </div>
214
+ <div class="col-xs-12 col-md">
215
+ <cfa-placeholder />
216
+ </div>
217
+ <div class="col-xs-12 col-md">
218
+ <cfa-placeholder />
219
+ </div>
207
220
  </div>
208
- </div>
209
- <div class="row stretch-md">
210
- <div class="col-xs-12 col-md">
211
- <div>
212
- <p>
213
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
214
- </p>
215
- <p>
216
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
217
- </p>
218
- </div>
219
- </div>
220
- <div class="col-xs-12 col-md">
221
- <cfa-placeholder />
222
- </div>
223
- <div class="col-xs-12 col-md">
224
- <cfa-card
225
- eyebrow="Program"
226
- title="Removing barriers resulting from the criminal legal system"
227
- actionLabel="Learn more"
228
- />
221
+ <div class="row stretch-md">
222
+ <div class="col-xs-12 col-md">
223
+ <div>
224
+ <p>
225
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
226
+ </p>
227
+ <p>
228
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
229
+ </p>
230
+ </div>
231
+ </div>
232
+ <div class="col-xs-12 col-md">
233
+ <cfa-placeholder />
234
+ </div>
235
+ <div class="col-xs-12 col-md">
236
+ <cfa-card
237
+ eyebrow="Program"
238
+ title="Removing barriers resulting from the criminal legal system"
239
+ actionLabel="Learn more"
240
+ />
241
+ </div>
229
242
  </div>
230
243
  </div>
231
- </div>
244
+ </Unstyled>
@@ -61,6 +61,22 @@ $half-gap-width: calc($gap-width * 0.5);
61
61
  max-width: $width;
62
62
  }
63
63
 
64
+ @mixin col-offset($size) {
65
+ @if $size == 0 {
66
+ margin-left: 0;
67
+ }
68
+
69
+ @else {
70
+ // Calculate offset accounting for gaps between columns
71
+ $gap-count: $grid-columns - 1;
72
+ $total-gap-width: $gap-count * $gap-width;
73
+ $available-width: calc(100% - #{$total-gap-width});
74
+ $additional-gaps: $size;
75
+
76
+ margin-left: calc(#{$available-width} / #{$grid-columns} * #{$size} + #{$additional-gaps * $gap-width});
77
+ }
78
+ }
79
+
64
80
  // ----------
65
81
  // Containers
66
82
  // ----------
@@ -220,6 +236,13 @@ $half-gap-width: calc($gap-width * 0.5);
220
236
  }
221
237
  }
222
238
 
239
+ // Offset columns (0-12)
240
+ @for $i from 0 through $grid-columns {
241
+ .col-xs-offset-#{$i} {
242
+ @include col-offset($i);
243
+ }
244
+ }
245
+
223
246
  // Column reverse
224
247
  .col.reverse {
225
248
  flex-direction: column-reverse;
@@ -255,6 +278,13 @@ $half-gap-width: calc($gap-width * 0.5);
255
278
  }
256
279
  }
257
280
 
281
+ // Offset columns (0-12)
282
+ @for $i from 0 through $grid-columns {
283
+ .col-#{$name}-offset-#{$i} {
284
+ @include col-offset($i);
285
+ }
286
+ }
287
+
258
288
  // Row flex sizing
259
289
  @for $i from 1 through 3 {
260
290
  .row-#{$name}-#{$i} {