@dsrc-cm/core 0.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.
- package/dist/dsrc.css +10743 -0
- package/dist/dsrc.min.css +1 -0
- package/package.json +44 -0
- package/src/base/print.css +404 -0
- package/src/base/reset.css +106 -0
- package/src/components/accordion/accordion.css +216 -0
- package/src/components/alert/alert.css +187 -0
- package/src/components/badge/badge.css +178 -0
- package/src/components/breadcrumb/breadcrumb.css +235 -0
- package/src/components/button/button.css +805 -0
- package/src/components/callout/callout.css +95 -0
- package/src/components/card/card.css +551 -0
- package/src/components/checkbox/checkbox.css +257 -0
- package/src/components/consent/consent.css +297 -0
- package/src/components/download/download.css +66 -0
- package/src/components/dropdown/dropdown.css +295 -0
- package/src/components/highlight/highlight.css +74 -0
- package/src/components/input/input.css +337 -0
- package/src/components/label/label.css +29 -0
- package/src/components/link/link.css +208 -0
- package/src/components/logo/logo.css +86 -0
- package/src/components/modal/modal.css +271 -0
- package/src/components/notice/notice.css +211 -0
- package/src/components/pagination/pagination.css +132 -0
- package/src/components/password/password.css +195 -0
- package/src/components/quote/quote.css +156 -0
- package/src/components/radio/radio.css +270 -0
- package/src/components/range/range.css +362 -0
- package/src/components/search/search.css +129 -0
- package/src/components/select/select.css +130 -0
- package/src/components/sidemenu/sidemenu.css +268 -0
- package/src/components/spinner/spinner.css +73 -0
- package/src/components/stepper/stepper.css +140 -0
- package/src/components/summary/summary.css +142 -0
- package/src/components/tab/tab.css +184 -0
- package/src/components/table/table.css +556 -0
- package/src/components/tag/tag.css +201 -0
- package/src/components/tile/tile.css +389 -0
- package/src/components/toggle/toggle.css +229 -0
- package/src/components/tooltip/tooltip.css +158 -0
- package/src/components/translate/translate.css +356 -0
- package/src/components/upload/upload.css +185 -0
- package/src/index.css +77 -0
- package/src/layout/bandeau/bandeau.css +44 -0
- package/src/layout/entete/entete.css +130 -0
- package/src/layout/footer/footer.css +107 -0
- package/src/layout/grid/grid.css +197 -0
- package/src/layout/hero/hero.css +86 -0
- package/src/layout/main/main.css +123 -0
- package/src/layout/navigation/navigation.css +206 -0
- package/src/utilities/utilities.css +430 -0
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DSRC Table Component
|
|
3
|
+
* Aligned with DSFR multi-layer table architecture
|
|
4
|
+
*
|
|
5
|
+
* Structure (multi-layer wrapper for proper overflow & layout):
|
|
6
|
+
*
|
|
7
|
+
* <div class="dsrc-table" id="table-component">
|
|
8
|
+
* <div class="dsrc-table__header">
|
|
9
|
+
* <!-- Optional: search bar, display toggles, filters -->
|
|
10
|
+
* </div>
|
|
11
|
+
* <div class="dsrc-table__wrapper">
|
|
12
|
+
* <div class="dsrc-table__container">
|
|
13
|
+
* <div class="dsrc-table__content">
|
|
14
|
+
* <table>
|
|
15
|
+
* <caption>Titre du tableau</caption>
|
|
16
|
+
* <thead>
|
|
17
|
+
* <tr>
|
|
18
|
+
* <th scope="col">Colonne 1</th>
|
|
19
|
+
* <th scope="col">Colonne 2</th>
|
|
20
|
+
* </tr>
|
|
21
|
+
* </thead>
|
|
22
|
+
* <tbody>
|
|
23
|
+
* <tr>
|
|
24
|
+
* <td>Donnee 1</td>
|
|
25
|
+
* <td>Donnee 2</td>
|
|
26
|
+
* </tr>
|
|
27
|
+
* </tbody>
|
|
28
|
+
* </table>
|
|
29
|
+
* </div>
|
|
30
|
+
* </div>
|
|
31
|
+
* </div>
|
|
32
|
+
* <div class="dsrc-table__footer">
|
|
33
|
+
* <div class="dsrc-table__footer--start">
|
|
34
|
+
* <p class="dsrc-table__detail">215 lignes</p>
|
|
35
|
+
* </div>
|
|
36
|
+
* <div class="dsrc-table__footer--end">
|
|
37
|
+
* <!-- Pagination or actions -->
|
|
38
|
+
* </div>
|
|
39
|
+
* </div>
|
|
40
|
+
* </div>
|
|
41
|
+
*
|
|
42
|
+
* Variants:
|
|
43
|
+
* --sm ................. Compact padding
|
|
44
|
+
* --lg ................. Spacious padding
|
|
45
|
+
* --bordered ........... All cell borders
|
|
46
|
+
* --striped ............ Alternating row backgrounds
|
|
47
|
+
* --no-scroll .......... Disable horizontal overflow
|
|
48
|
+
* --no-caption ......... Visually hide caption (still accessible)
|
|
49
|
+
* --caption-bottom ..... Caption below table
|
|
50
|
+
* --fixed .............. Sticky thead
|
|
51
|
+
*
|
|
52
|
+
* Column sizing (on <th>):
|
|
53
|
+
* .dsrc-col--xs ........ 5%
|
|
54
|
+
* .dsrc-col--sm ........ 10%
|
|
55
|
+
* .dsrc-col--md ........ 25%
|
|
56
|
+
* .dsrc-col--lg ........ 50%
|
|
57
|
+
*
|
|
58
|
+
* Cell alignment:
|
|
59
|
+
* .dsrc-cell--top ...... vertical-align: top
|
|
60
|
+
* .dsrc-cell--center ... text-align: center
|
|
61
|
+
* .dsrc-cell--right .... text-align: right
|
|
62
|
+
*
|
|
63
|
+
* Sortable:
|
|
64
|
+
* <th scope="col" aria-sort="none|ascending|descending">
|
|
65
|
+
* <button>Nom</button>
|
|
66
|
+
* </th>
|
|
67
|
+
*
|
|
68
|
+
* Selected rows:
|
|
69
|
+
* <tr aria-selected="true">
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
/* ============================================
|
|
74
|
+
* 1. Root wrapper
|
|
75
|
+
* ============================================ */
|
|
76
|
+
|
|
77
|
+
.dsrc-table {
|
|
78
|
+
display: flex;
|
|
79
|
+
flex-direction: column;
|
|
80
|
+
font-family: var(--dsrc-font-family-sans);
|
|
81
|
+
font-size: var(--dsrc-font-size-small);
|
|
82
|
+
background-color: var(--dsrc-color-blanc);
|
|
83
|
+
border: var(--dsrc-border-width-thin) solid var(--dsrc-color-gris-200);
|
|
84
|
+
border-radius: var(--dsrc-radius-default);
|
|
85
|
+
overflow: hidden;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
/* ============================================
|
|
90
|
+
* 2. Header area (search, filters, controls)
|
|
91
|
+
* ============================================ */
|
|
92
|
+
|
|
93
|
+
.dsrc-table__header {
|
|
94
|
+
display: flex;
|
|
95
|
+
align-items: center;
|
|
96
|
+
justify-content: space-between;
|
|
97
|
+
gap: var(--dsrc-spacing-3);
|
|
98
|
+
padding: var(--dsrc-spacing-3) var(--dsrc-spacing-4);
|
|
99
|
+
border-bottom: var(--dsrc-border-width-thin) solid var(--dsrc-color-gris-200);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.dsrc-table__header:empty {
|
|
103
|
+
display: none;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
/* ============================================
|
|
108
|
+
* 3. Wrapper / Container / Content layers
|
|
109
|
+
* Enables horizontal scroll without breaking
|
|
110
|
+
* the outer border-radius or header/footer
|
|
111
|
+
* ============================================ */
|
|
112
|
+
|
|
113
|
+
.dsrc-table__wrapper {
|
|
114
|
+
overflow: hidden;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.dsrc-table__container {
|
|
118
|
+
overflow-x: auto;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.dsrc-table__content {
|
|
122
|
+
min-width: 100%;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
/* ============================================
|
|
127
|
+
* 4. The <table> element itself
|
|
128
|
+
* ============================================ */
|
|
129
|
+
|
|
130
|
+
.dsrc-table table {
|
|
131
|
+
width: 100%;
|
|
132
|
+
border-collapse: collapse;
|
|
133
|
+
border-spacing: 0;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
/* ============================================
|
|
138
|
+
* 5. Caption
|
|
139
|
+
* ============================================ */
|
|
140
|
+
|
|
141
|
+
.dsrc-table caption {
|
|
142
|
+
caption-side: top;
|
|
143
|
+
text-align: start;
|
|
144
|
+
font-family: var(--dsrc-font-family-sans);
|
|
145
|
+
font-size: var(--dsrc-font-size-body);
|
|
146
|
+
font-weight: var(--dsrc-font-weight-bold);
|
|
147
|
+
color: var(--dsrc-color-noir);
|
|
148
|
+
padding: var(--dsrc-spacing-4);
|
|
149
|
+
background-color: var(--dsrc-color-gris-50);
|
|
150
|
+
border-bottom: var(--dsrc-border-width-thin) solid var(--dsrc-color-gris-200);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* --caption-bottom: move caption below table */
|
|
154
|
+
.dsrc-table--caption-bottom caption {
|
|
155
|
+
caption-side: bottom;
|
|
156
|
+
border-bottom: none;
|
|
157
|
+
border-top: var(--dsrc-border-width-thin) solid var(--dsrc-color-gris-200);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/* --no-caption: visually hide but keep accessible */
|
|
161
|
+
.dsrc-table--no-caption caption {
|
|
162
|
+
position: absolute;
|
|
163
|
+
width: 1px;
|
|
164
|
+
height: 1px;
|
|
165
|
+
padding: 0;
|
|
166
|
+
margin: -1px;
|
|
167
|
+
overflow: hidden;
|
|
168
|
+
clip: rect(0, 0, 0, 0);
|
|
169
|
+
white-space: nowrap;
|
|
170
|
+
border: 0;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
/* ============================================
|
|
175
|
+
* 6. Table head
|
|
176
|
+
* ============================================ */
|
|
177
|
+
|
|
178
|
+
.dsrc-table thead {
|
|
179
|
+
background-color: var(--dsrc-color-gris-50);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.dsrc-table th {
|
|
183
|
+
padding: var(--dsrc-spacing-3) var(--dsrc-spacing-4);
|
|
184
|
+
text-align: start;
|
|
185
|
+
font-size: var(--dsrc-font-size-micro);
|
|
186
|
+
font-weight: var(--dsrc-font-weight-semibold);
|
|
187
|
+
font-family: var(--dsrc-font-family-mono);
|
|
188
|
+
text-transform: uppercase;
|
|
189
|
+
letter-spacing: var(--dsrc-font-letter-spacing-caps);
|
|
190
|
+
color: var(--dsrc-color-gris-600);
|
|
191
|
+
border-bottom: var(--dsrc-border-width-thin) solid var(--dsrc-color-gris-200);
|
|
192
|
+
white-space: nowrap;
|
|
193
|
+
vertical-align: middle;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
/* ============================================
|
|
198
|
+
* 7. Table body cells
|
|
199
|
+
* ============================================ */
|
|
200
|
+
|
|
201
|
+
.dsrc-table td {
|
|
202
|
+
padding: var(--dsrc-spacing-3) var(--dsrc-spacing-4);
|
|
203
|
+
border-bottom: var(--dsrc-border-width-thin) solid var(--dsrc-color-gris-100);
|
|
204
|
+
color: var(--dsrc-color-gris-800);
|
|
205
|
+
vertical-align: middle;
|
|
206
|
+
line-height: var(--dsrc-font-line-height-relaxed);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.dsrc-table tbody tr:last-child td {
|
|
210
|
+
border-bottom: none;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
/* ============================================
|
|
215
|
+
* 8. Row hover
|
|
216
|
+
* ============================================ */
|
|
217
|
+
|
|
218
|
+
.dsrc-table tbody tr:hover td {
|
|
219
|
+
background-color: var(--dsrc-color-gris-50);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
/* ============================================
|
|
224
|
+
* 9. Selected rows
|
|
225
|
+
* ============================================ */
|
|
226
|
+
|
|
227
|
+
.dsrc-table tr[aria-selected="true"] td {
|
|
228
|
+
background-color: var(--dsrc-color-primaire-clair);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.dsrc-table tr[aria-selected="true"]:hover td {
|
|
232
|
+
background-color: var(--dsrc-color-primaire-clair);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
/* ============================================
|
|
237
|
+
* 10. Sortable headers
|
|
238
|
+
* <th scope="col" aria-sort="none">
|
|
239
|
+
* <button type="button">Nom</button>
|
|
240
|
+
* </th>
|
|
241
|
+
* ============================================ */
|
|
242
|
+
|
|
243
|
+
.dsrc-table th[aria-sort] {
|
|
244
|
+
cursor: pointer;
|
|
245
|
+
position: relative;
|
|
246
|
+
user-select: none;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.dsrc-table th[aria-sort]:hover {
|
|
250
|
+
background-color: var(--dsrc-color-gris-100);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/* Sort button inside th (DSFR pattern) */
|
|
254
|
+
.dsrc-table th[aria-sort] button {
|
|
255
|
+
all: unset;
|
|
256
|
+
display: inline-flex;
|
|
257
|
+
align-items: center;
|
|
258
|
+
gap: var(--dsrc-spacing-2);
|
|
259
|
+
cursor: pointer;
|
|
260
|
+
font: inherit;
|
|
261
|
+
color: inherit;
|
|
262
|
+
text-transform: inherit;
|
|
263
|
+
letter-spacing: inherit;
|
|
264
|
+
width: 100%;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.dsrc-table th[aria-sort] button:focus-visible {
|
|
268
|
+
outline: var(--dsrc-outline-width) solid var(--dsrc-color-primaire-focus);
|
|
269
|
+
outline-offset: calc(-1 * var(--dsrc-outline-offset));
|
|
270
|
+
border-radius: 2px;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/* Sort indicator arrow via pseudo-element */
|
|
274
|
+
.dsrc-table th[aria-sort] button::after {
|
|
275
|
+
content: "";
|
|
276
|
+
display: inline-block;
|
|
277
|
+
width: 0;
|
|
278
|
+
height: 0;
|
|
279
|
+
flex-shrink: 0;
|
|
280
|
+
margin-left: auto;
|
|
281
|
+
border-left: 4px solid transparent;
|
|
282
|
+
border-right: 4px solid transparent;
|
|
283
|
+
border-bottom: 5px solid var(--dsrc-color-gris-400);
|
|
284
|
+
transition: transform var(--dsrc-transition-duration-fast) ease,
|
|
285
|
+
border-color var(--dsrc-transition-duration-fast) ease;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/* Ascending: arrow points up (default position) */
|
|
289
|
+
.dsrc-table th[aria-sort="ascending"] button::after {
|
|
290
|
+
border-bottom-color: var(--dsrc-color-primaire);
|
|
291
|
+
transform: rotate(0deg);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/* Descending: arrow points down */
|
|
295
|
+
.dsrc-table th[aria-sort="descending"] button::after {
|
|
296
|
+
border-bottom-color: var(--dsrc-color-primaire);
|
|
297
|
+
transform: rotate(180deg);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/* Unsorted: neutral double arrow (stacked) */
|
|
301
|
+
.dsrc-table th[aria-sort="none"] button::after {
|
|
302
|
+
border-bottom-color: var(--dsrc-color-gris-400);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/* Focus-visible fallback on th itself (no inner button) */
|
|
306
|
+
.dsrc-table th[aria-sort]:focus-visible {
|
|
307
|
+
outline: var(--dsrc-outline-width) solid var(--dsrc-color-primaire-focus);
|
|
308
|
+
outline-offset: calc(-1 * var(--dsrc-outline-offset));
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
/* ============================================
|
|
313
|
+
* 11. Footer area (row count, pagination)
|
|
314
|
+
* ============================================ */
|
|
315
|
+
|
|
316
|
+
.dsrc-table__footer {
|
|
317
|
+
display: flex;
|
|
318
|
+
align-items: center;
|
|
319
|
+
justify-content: space-between;
|
|
320
|
+
gap: var(--dsrc-spacing-3);
|
|
321
|
+
padding: var(--dsrc-spacing-3) var(--dsrc-spacing-4);
|
|
322
|
+
border-top: var(--dsrc-border-width-thin) solid var(--dsrc-color-gris-200);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.dsrc-table__footer:empty {
|
|
326
|
+
display: none;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.dsrc-table__footer--start {
|
|
330
|
+
display: flex;
|
|
331
|
+
align-items: center;
|
|
332
|
+
gap: var(--dsrc-spacing-2);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.dsrc-table__footer--end {
|
|
336
|
+
display: flex;
|
|
337
|
+
align-items: center;
|
|
338
|
+
gap: var(--dsrc-spacing-2);
|
|
339
|
+
margin-left: auto;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.dsrc-table__detail {
|
|
343
|
+
font-size: var(--dsrc-font-size-caption);
|
|
344
|
+
color: var(--dsrc-color-gris-600);
|
|
345
|
+
margin: 0;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
/* ============================================
|
|
350
|
+
* 12. Size variants
|
|
351
|
+
* ============================================ */
|
|
352
|
+
|
|
353
|
+
/* Small: tighter padding */
|
|
354
|
+
.dsrc-table--sm th,
|
|
355
|
+
.dsrc-table--sm td {
|
|
356
|
+
padding: var(--dsrc-spacing-2) var(--dsrc-spacing-3);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
.dsrc-table--sm caption {
|
|
360
|
+
padding: var(--dsrc-spacing-3);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.dsrc-table--sm .dsrc-table__header,
|
|
364
|
+
.dsrc-table--sm .dsrc-table__footer {
|
|
365
|
+
padding: var(--dsrc-spacing-2) var(--dsrc-spacing-3);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/* Large: more spacious padding */
|
|
369
|
+
.dsrc-table--lg th,
|
|
370
|
+
.dsrc-table--lg td {
|
|
371
|
+
padding: var(--dsrc-spacing-4) var(--dsrc-spacing-5);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
.dsrc-table--lg caption {
|
|
375
|
+
padding: var(--dsrc-spacing-5);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.dsrc-table--lg .dsrc-table__header,
|
|
379
|
+
.dsrc-table--lg .dsrc-table__footer {
|
|
380
|
+
padding: var(--dsrc-spacing-4) var(--dsrc-spacing-5);
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
/* ============================================
|
|
385
|
+
* 13. Bordered variant (all cell borders)
|
|
386
|
+
* ============================================ */
|
|
387
|
+
|
|
388
|
+
.dsrc-table--bordered th,
|
|
389
|
+
.dsrc-table--bordered td {
|
|
390
|
+
border: var(--dsrc-border-width-thin) solid var(--dsrc-color-gris-200);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
/* ============================================
|
|
395
|
+
* 14. Striped variant
|
|
396
|
+
* ============================================ */
|
|
397
|
+
|
|
398
|
+
.dsrc-table--striped tbody tr:nth-child(even) td {
|
|
399
|
+
background-color: var(--dsrc-color-gris-50);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
/* Override hover to maintain striped look */
|
|
403
|
+
.dsrc-table--striped tbody tr:nth-child(even):hover td {
|
|
404
|
+
background-color: var(--dsrc-color-gris-100);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
/* ============================================
|
|
409
|
+
* 15. No-scroll variant
|
|
410
|
+
* ============================================ */
|
|
411
|
+
|
|
412
|
+
.dsrc-table--no-scroll .dsrc-table__container {
|
|
413
|
+
overflow-x: visible;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
.dsrc-table--no-scroll table {
|
|
417
|
+
table-layout: fixed;
|
|
418
|
+
word-wrap: break-word;
|
|
419
|
+
overflow-wrap: break-word;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
/* ============================================
|
|
424
|
+
* 16. Fixed / sticky header
|
|
425
|
+
* ============================================ */
|
|
426
|
+
|
|
427
|
+
.dsrc-table--fixed thead {
|
|
428
|
+
position: sticky;
|
|
429
|
+
top: 0;
|
|
430
|
+
z-index: 1;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
.dsrc-table--fixed thead th {
|
|
434
|
+
background-color: var(--dsrc-color-gris-50);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
/* ============================================
|
|
439
|
+
* 17. Column sizing classes (on <th>)
|
|
440
|
+
* ============================================ */
|
|
441
|
+
|
|
442
|
+
.dsrc-col--xs {
|
|
443
|
+
width: 5%;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.dsrc-col--sm {
|
|
447
|
+
width: 10%;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
.dsrc-col--md {
|
|
451
|
+
width: 25%;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
.dsrc-col--lg {
|
|
455
|
+
width: 50%;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
/* ============================================
|
|
460
|
+
* 18. Cell alignment utilities
|
|
461
|
+
* ============================================ */
|
|
462
|
+
|
|
463
|
+
/* Vertical alignment */
|
|
464
|
+
.dsrc-cell--top {
|
|
465
|
+
vertical-align: top;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
/* Horizontal alignment */
|
|
469
|
+
.dsrc-cell--center {
|
|
470
|
+
text-align: center;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
.dsrc-cell--right {
|
|
474
|
+
text-align: end;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
/* ============================================
|
|
479
|
+
* 19. Scroll shadow indicators
|
|
480
|
+
* Applied to .dsrc-table__container
|
|
481
|
+
* via data-scroll attribute (JS driven)
|
|
482
|
+
* ============================================ */
|
|
483
|
+
|
|
484
|
+
.dsrc-table__container {
|
|
485
|
+
position: relative;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
.dsrc-table__container::before,
|
|
489
|
+
.dsrc-table__container::after {
|
|
490
|
+
content: "";
|
|
491
|
+
position: sticky;
|
|
492
|
+
top: 0;
|
|
493
|
+
bottom: 0;
|
|
494
|
+
width: var(--dsrc-spacing-6);
|
|
495
|
+
pointer-events: none;
|
|
496
|
+
opacity: 0;
|
|
497
|
+
transition: opacity var(--dsrc-transition-duration-fast) ease;
|
|
498
|
+
z-index: 1;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
.dsrc-table__container::before {
|
|
502
|
+
left: 0;
|
|
503
|
+
background: linear-gradient(to right, var(--dsrc-color-gris-100), transparent);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
.dsrc-table__container::after {
|
|
507
|
+
right: 0;
|
|
508
|
+
background: linear-gradient(to left, var(--dsrc-color-gris-100), transparent);
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
/* JS sets data-scroll attribute on .dsrc-table__container */
|
|
512
|
+
.dsrc-table__container[data-scroll="right"]::after,
|
|
513
|
+
.dsrc-table__container[data-scroll="both"]::after {
|
|
514
|
+
opacity: 1;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
.dsrc-table__container[data-scroll="left"]::before,
|
|
518
|
+
.dsrc-table__container[data-scroll="both"]::before {
|
|
519
|
+
opacity: 1;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
/* ============================================
|
|
524
|
+
* 20. High contrast (forced-colors)
|
|
525
|
+
* ============================================ */
|
|
526
|
+
|
|
527
|
+
@media (forced-colors: active) {
|
|
528
|
+
.dsrc-table {
|
|
529
|
+
border: 1px solid ButtonText;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
.dsrc-table th {
|
|
533
|
+
border-bottom: 2px solid ButtonText;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
.dsrc-table td {
|
|
537
|
+
border-bottom: 1px solid ButtonText;
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
.dsrc-table tr[aria-selected="true"] td {
|
|
541
|
+
border: 2px solid Highlight;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
.dsrc-table th[aria-sort] button::after {
|
|
545
|
+
border-bottom-color: ButtonText;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
.dsrc-table th[aria-sort="ascending"] button::after,
|
|
549
|
+
.dsrc-table th[aria-sort="descending"] button::after {
|
|
550
|
+
border-bottom-color: Highlight;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
.dsrc-table th[aria-sort] button:focus-visible {
|
|
554
|
+
outline: 2px solid Highlight;
|
|
555
|
+
}
|
|
556
|
+
}
|