@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.
Files changed (51) hide show
  1. package/dist/dsrc.css +10743 -0
  2. package/dist/dsrc.min.css +1 -0
  3. package/package.json +44 -0
  4. package/src/base/print.css +404 -0
  5. package/src/base/reset.css +106 -0
  6. package/src/components/accordion/accordion.css +216 -0
  7. package/src/components/alert/alert.css +187 -0
  8. package/src/components/badge/badge.css +178 -0
  9. package/src/components/breadcrumb/breadcrumb.css +235 -0
  10. package/src/components/button/button.css +805 -0
  11. package/src/components/callout/callout.css +95 -0
  12. package/src/components/card/card.css +551 -0
  13. package/src/components/checkbox/checkbox.css +257 -0
  14. package/src/components/consent/consent.css +297 -0
  15. package/src/components/download/download.css +66 -0
  16. package/src/components/dropdown/dropdown.css +295 -0
  17. package/src/components/highlight/highlight.css +74 -0
  18. package/src/components/input/input.css +337 -0
  19. package/src/components/label/label.css +29 -0
  20. package/src/components/link/link.css +208 -0
  21. package/src/components/logo/logo.css +86 -0
  22. package/src/components/modal/modal.css +271 -0
  23. package/src/components/notice/notice.css +211 -0
  24. package/src/components/pagination/pagination.css +132 -0
  25. package/src/components/password/password.css +195 -0
  26. package/src/components/quote/quote.css +156 -0
  27. package/src/components/radio/radio.css +270 -0
  28. package/src/components/range/range.css +362 -0
  29. package/src/components/search/search.css +129 -0
  30. package/src/components/select/select.css +130 -0
  31. package/src/components/sidemenu/sidemenu.css +268 -0
  32. package/src/components/spinner/spinner.css +73 -0
  33. package/src/components/stepper/stepper.css +140 -0
  34. package/src/components/summary/summary.css +142 -0
  35. package/src/components/tab/tab.css +184 -0
  36. package/src/components/table/table.css +556 -0
  37. package/src/components/tag/tag.css +201 -0
  38. package/src/components/tile/tile.css +389 -0
  39. package/src/components/toggle/toggle.css +229 -0
  40. package/src/components/tooltip/tooltip.css +158 -0
  41. package/src/components/translate/translate.css +356 -0
  42. package/src/components/upload/upload.css +185 -0
  43. package/src/index.css +77 -0
  44. package/src/layout/bandeau/bandeau.css +44 -0
  45. package/src/layout/entete/entete.css +130 -0
  46. package/src/layout/footer/footer.css +107 -0
  47. package/src/layout/grid/grid.css +197 -0
  48. package/src/layout/hero/hero.css +86 -0
  49. package/src/layout/main/main.css +123 -0
  50. package/src/layout/navigation/navigation.css +206 -0
  51. package/src/utilities/utilities.css +430 -0
@@ -0,0 +1,130 @@
1
+ /**
2
+ * DSRC Entete (Header) Component
3
+ *
4
+ * Usage:
5
+ * <header class="dsrc-entete">
6
+ * <div class="dsrc-entete__inner">
7
+ * <div class="dsrc-drapeau">
8
+ * <div class="dsrc-drapeau__vert"></div>
9
+ * <div class="dsrc-drapeau__rouge">
10
+ * <span class="dsrc-drapeau__etoile"></span>
11
+ * </div>
12
+ * <div class="dsrc-drapeau__jaune"></div>
13
+ * </div>
14
+ * <div class="dsrc-entete__texte">
15
+ * <h1 class="dsrc-entete__titre">Titre</h1>
16
+ * <p class="dsrc-entete__sous-titre">Sous-titre</p>
17
+ * </div>
18
+ * <div class="dsrc-entete__actions">
19
+ * <!-- Buttons, search, etc. -->
20
+ * </div>
21
+ * </div>
22
+ * </header>
23
+ */
24
+
25
+ .dsrc-entete {
26
+ background-color: var(--dsrc-color-blanc);
27
+ border-bottom: 1px solid var(--dsrc-color-gris-200);
28
+ }
29
+
30
+ .dsrc-entete__inner {
31
+ max-width: var(--dsrc-layout-max-width);
32
+ margin: 0 auto;
33
+ padding: var(--dsrc-spacing-5);
34
+ display: flex;
35
+ align-items: center;
36
+ gap: var(--dsrc-spacing-5);
37
+ }
38
+
39
+ .dsrc-entete__texte {
40
+ flex: 1;
41
+ }
42
+
43
+ .dsrc-entete__titre {
44
+ font-family: var(--dsrc-font-family-sans);
45
+ font-size: var(--dsrc-font-size-body);
46
+ font-weight: var(--dsrc-font-weight-bold);
47
+ color: var(--dsrc-color-noir);
48
+ line-height: var(--dsrc-font-line-height-snug);
49
+ margin: 0;
50
+ }
51
+
52
+ .dsrc-entete__sous-titre {
53
+ font-family: var(--dsrc-font-family-sans);
54
+ font-size: var(--dsrc-font-size-small);
55
+ color: var(--dsrc-color-gris-600);
56
+ margin: var(--dsrc-spacing-1) 0 0;
57
+ }
58
+
59
+ /* Actions area (buttons, search) */
60
+ .dsrc-entete__actions {
61
+ display: flex;
62
+ align-items: center;
63
+ gap: var(--dsrc-spacing-3);
64
+ flex-shrink: 0;
65
+ }
66
+
67
+ /* Drapeau Component */
68
+ .dsrc-drapeau {
69
+ display: flex;
70
+ width: 42px;
71
+ height: 28px;
72
+ flex-shrink: 0;
73
+ border: 1px solid var(--dsrc-color-gris-200);
74
+ }
75
+
76
+ .dsrc-drapeau__vert {
77
+ flex: 1;
78
+ background-color: var(--dsrc-color-drapeau-vert);
79
+ }
80
+
81
+ .dsrc-drapeau__rouge {
82
+ flex: 1;
83
+ background-color: var(--dsrc-color-drapeau-rouge);
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: center;
87
+ }
88
+
89
+ .dsrc-drapeau__jaune {
90
+ flex: 1;
91
+ background-color: var(--dsrc-color-drapeau-jaune);
92
+ }
93
+
94
+ .dsrc-drapeau__etoile {
95
+ display: block;
96
+ width: 10px;
97
+ height: 10px;
98
+ background-color: var(--dsrc-color-drapeau-jaune);
99
+ clip-path: polygon(
100
+ 50% 0%,
101
+ 61% 35%,
102
+ 98% 35%,
103
+ 68% 57%,
104
+ 79% 91%,
105
+ 50% 70%,
106
+ 21% 91%,
107
+ 32% 57%,
108
+ 2% 35%,
109
+ 39% 35%
110
+ );
111
+ }
112
+
113
+ /* Responsive: collapsible header on mobile */
114
+ @media (max-width: 47.999em) {
115
+ .dsrc-entete__inner {
116
+ flex-wrap: wrap;
117
+ padding: var(--dsrc-spacing-3);
118
+ gap: var(--dsrc-spacing-3);
119
+ }
120
+
121
+ .dsrc-entete__texte {
122
+ flex: 1;
123
+ min-width: 0;
124
+ }
125
+
126
+ .dsrc-entete__actions {
127
+ width: 100%;
128
+ order: 3;
129
+ }
130
+ }
@@ -0,0 +1,107 @@
1
+ /**
2
+ * DSRC Footer Component
3
+ *
4
+ * Usage:
5
+ * <footer class="dsrc-footer">
6
+ * <div class="dsrc-footer__inner">
7
+ * <div class="dsrc-footer__bloc">
8
+ * <h3 class="dsrc-footer__titre">Titre</h3>
9
+ * <p class="dsrc-footer__texte">Description</p>
10
+ * </div>
11
+ * <div class="dsrc-footer__bloc">
12
+ * <h3 class="dsrc-footer__titre">Liens</h3>
13
+ * <nav class="dsrc-footer__liens">
14
+ * <a href="#" class="dsrc-footer__lien">Lien</a>
15
+ * </nav>
16
+ * </div>
17
+ * </div>
18
+ * <div class="dsrc-footer__bas">
19
+ * <span>Copyright</span>
20
+ * <span>Credits</span>
21
+ * </div>
22
+ * </footer>
23
+ */
24
+
25
+ .dsrc-footer {
26
+ background-color: var(--dsrc-color-noir);
27
+ color: rgba(255, 255, 255, 0.55);
28
+ padding: var(--dsrc-spacing-7) var(--dsrc-spacing-5);
29
+ margin-top: var(--dsrc-spacing-8);
30
+ }
31
+
32
+ .dsrc-footer__inner {
33
+ max-width: var(--dsrc-layout-max-width);
34
+ margin: 0 auto;
35
+ display: grid;
36
+ grid-template-columns: 2fr 1fr 1fr 1fr;
37
+ gap: var(--dsrc-spacing-7);
38
+ }
39
+
40
+ .dsrc-footer__bloc {
41
+ min-width: 0;
42
+ }
43
+
44
+ .dsrc-footer__titre {
45
+ font-family: var(--dsrc-font-family-sans);
46
+ font-size: var(--dsrc-font-size-small);
47
+ font-weight: var(--dsrc-font-weight-semibold);
48
+ color: var(--dsrc-color-blanc);
49
+ margin: 0 0 var(--dsrc-spacing-3);
50
+ }
51
+
52
+ .dsrc-footer__texte {
53
+ font-family: var(--dsrc-font-family-sans);
54
+ font-size: var(--dsrc-font-size-small);
55
+ line-height: var(--dsrc-font-line-height-loose);
56
+ margin: 0;
57
+ }
58
+
59
+ .dsrc-footer__liens {
60
+ display: flex;
61
+ flex-direction: column;
62
+ gap: var(--dsrc-spacing-2);
63
+ }
64
+
65
+ .dsrc-footer__lien {
66
+ font-family: var(--dsrc-font-family-sans);
67
+ font-size: var(--dsrc-font-size-small);
68
+ color: rgba(255, 255, 255, 0.5);
69
+ text-decoration: none;
70
+ transition: color var(--dsrc-transition-duration-fast) ease;
71
+ }
72
+
73
+ .dsrc-footer__lien:hover,
74
+ .dsrc-footer__lien:active {
75
+ color: var(--dsrc-color-blanc);
76
+ }
77
+
78
+ .dsrc-footer__lien:focus-visible {
79
+ outline: var(--dsrc-outline-width) solid rgba(255, 255, 255, 0.5);
80
+ outline-offset: var(--dsrc-outline-offset);
81
+ }
82
+
83
+ .dsrc-footer__bas {
84
+ max-width: var(--dsrc-layout-max-width);
85
+ margin: var(--dsrc-spacing-5) auto 0;
86
+ padding-top: var(--dsrc-spacing-5);
87
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
88
+ display: flex;
89
+ justify-content: space-between;
90
+ flex-wrap: wrap;
91
+ gap: var(--dsrc-spacing-3);
92
+ font-family: var(--dsrc-font-family-sans);
93
+ font-size: var(--dsrc-font-size-micro);
94
+ color: rgba(255, 255, 255, 0.3);
95
+ }
96
+
97
+ @media (max-width: 768px) {
98
+ .dsrc-footer__inner {
99
+ grid-template-columns: 1fr 1fr;
100
+ }
101
+ }
102
+
103
+ @media (max-width: 576px) {
104
+ .dsrc-footer__inner {
105
+ grid-template-columns: 1fr;
106
+ }
107
+ }
@@ -0,0 +1,197 @@
1
+ /**
2
+ * DSRC Grid System
3
+ *
4
+ * A responsive 12-column CSS Grid layout system.
5
+ * Mobile-first with breakpoints at sm (576px), md (768px), lg (1024px).
6
+ *
7
+ * Usage:
8
+ * <div class="dsrc-grid">
9
+ * <div class="dsrc-col-12 dsrc-col-md-6 dsrc-col-lg-4">Col 1</div>
10
+ * <div class="dsrc-col-12 dsrc-col-md-6 dsrc-col-lg-4">Col 2</div>
11
+ * <div class="dsrc-col-12 dsrc-col-md-12 dsrc-col-lg-4">Col 3</div>
12
+ * </div>
13
+ *
14
+ * With offsets:
15
+ * <div class="dsrc-grid">
16
+ * <div class="dsrc-col-6 dsrc-offset-3">Centered column</div>
17
+ * </div>
18
+ *
19
+ * Nested grids:
20
+ * <div class="dsrc-grid">
21
+ * <div class="dsrc-col-8">
22
+ * <div class="dsrc-grid">
23
+ * <div class="dsrc-col-6">Nested 1</div>
24
+ * <div class="dsrc-col-6">Nested 2</div>
25
+ * </div>
26
+ * </div>
27
+ * </div>
28
+ */
29
+
30
+ /* ==========================================================================
31
+ Row container
32
+ ========================================================================== */
33
+
34
+ .dsrc-grid {
35
+ display: grid;
36
+ grid-template-columns: repeat(12, 1fr);
37
+ gap: var(--dsrc-spacing-4);
38
+ width: 100%;
39
+ }
40
+
41
+ /* No gutter variant */
42
+ .dsrc-grid--no-gutter {
43
+ gap: 0;
44
+ }
45
+
46
+ /* Row alignment variants */
47
+ .dsrc-grid--center {
48
+ align-items: center;
49
+ }
50
+
51
+ .dsrc-grid--end {
52
+ align-items: end;
53
+ }
54
+
55
+ .dsrc-grid--stretch {
56
+ align-items: stretch;
57
+ }
58
+
59
+ /* ==========================================================================
60
+ Default column classes (mobile-first, no breakpoint prefix)
61
+ ========================================================================== */
62
+
63
+ /* Auto equal-width column */
64
+ .dsrc-col {
65
+ grid-column: span 1;
66
+ }
67
+
68
+ /* Auto-sized column (shrink to content) */
69
+ .dsrc-col-auto {
70
+ grid-column: auto;
71
+ }
72
+
73
+ /* Explicit span columns: 1-12 */
74
+ .dsrc-col-1 { grid-column: span 1; }
75
+ .dsrc-col-2 { grid-column: span 2; }
76
+ .dsrc-col-3 { grid-column: span 3; }
77
+ .dsrc-col-4 { grid-column: span 4; }
78
+ .dsrc-col-5 { grid-column: span 5; }
79
+ .dsrc-col-6 { grid-column: span 6; }
80
+ .dsrc-col-7 { grid-column: span 7; }
81
+ .dsrc-col-8 { grid-column: span 8; }
82
+ .dsrc-col-9 { grid-column: span 9; }
83
+ .dsrc-col-10 { grid-column: span 10; }
84
+ .dsrc-col-11 { grid-column: span 11; }
85
+ .dsrc-col-12 { grid-column: span 12; }
86
+
87
+ /* ==========================================================================
88
+ Default offsets (mobile-first, no breakpoint prefix)
89
+ ========================================================================== */
90
+
91
+ .dsrc-offset-1 { grid-column-start: 2; }
92
+ .dsrc-offset-2 { grid-column-start: 3; }
93
+ .dsrc-offset-3 { grid-column-start: 4; }
94
+ .dsrc-offset-4 { grid-column-start: 5; }
95
+ .dsrc-offset-5 { grid-column-start: 6; }
96
+ .dsrc-offset-6 { grid-column-start: 7; }
97
+ .dsrc-offset-7 { grid-column-start: 8; }
98
+ .dsrc-offset-8 { grid-column-start: 9; }
99
+ .dsrc-offset-9 { grid-column-start: 10; }
100
+ .dsrc-offset-10 { grid-column-start: 11; }
101
+ .dsrc-offset-11 { grid-column-start: 12; }
102
+
103
+ /* ==========================================================================
104
+ sm breakpoint (>= 576px)
105
+ ========================================================================== */
106
+
107
+ @media (min-width: 576px) {
108
+ .dsrc-col-sm-1 { grid-column: span 1; }
109
+ .dsrc-col-sm-2 { grid-column: span 2; }
110
+ .dsrc-col-sm-3 { grid-column: span 3; }
111
+ .dsrc-col-sm-4 { grid-column: span 4; }
112
+ .dsrc-col-sm-5 { grid-column: span 5; }
113
+ .dsrc-col-sm-6 { grid-column: span 6; }
114
+ .dsrc-col-sm-7 { grid-column: span 7; }
115
+ .dsrc-col-sm-8 { grid-column: span 8; }
116
+ .dsrc-col-sm-9 { grid-column: span 9; }
117
+ .dsrc-col-sm-10 { grid-column: span 10; }
118
+ .dsrc-col-sm-11 { grid-column: span 11; }
119
+ .dsrc-col-sm-12 { grid-column: span 12; }
120
+
121
+ .dsrc-offset-sm-0 { grid-column-start: auto; }
122
+ .dsrc-offset-sm-1 { grid-column-start: 2; }
123
+ .dsrc-offset-sm-2 { grid-column-start: 3; }
124
+ .dsrc-offset-sm-3 { grid-column-start: 4; }
125
+ .dsrc-offset-sm-4 { grid-column-start: 5; }
126
+ .dsrc-offset-sm-5 { grid-column-start: 6; }
127
+ .dsrc-offset-sm-6 { grid-column-start: 7; }
128
+ .dsrc-offset-sm-7 { grid-column-start: 8; }
129
+ .dsrc-offset-sm-8 { grid-column-start: 9; }
130
+ .dsrc-offset-sm-9 { grid-column-start: 10; }
131
+ .dsrc-offset-sm-10 { grid-column-start: 11; }
132
+ .dsrc-offset-sm-11 { grid-column-start: 12; }
133
+ }
134
+
135
+ /* ==========================================================================
136
+ md breakpoint (>= 768px)
137
+ ========================================================================== */
138
+
139
+ @media (min-width: 768px) {
140
+ .dsrc-col-md-1 { grid-column: span 1; }
141
+ .dsrc-col-md-2 { grid-column: span 2; }
142
+ .dsrc-col-md-3 { grid-column: span 3; }
143
+ .dsrc-col-md-4 { grid-column: span 4; }
144
+ .dsrc-col-md-5 { grid-column: span 5; }
145
+ .dsrc-col-md-6 { grid-column: span 6; }
146
+ .dsrc-col-md-7 { grid-column: span 7; }
147
+ .dsrc-col-md-8 { grid-column: span 8; }
148
+ .dsrc-col-md-9 { grid-column: span 9; }
149
+ .dsrc-col-md-10 { grid-column: span 10; }
150
+ .dsrc-col-md-11 { grid-column: span 11; }
151
+ .dsrc-col-md-12 { grid-column: span 12; }
152
+
153
+ .dsrc-offset-md-0 { grid-column-start: auto; }
154
+ .dsrc-offset-md-1 { grid-column-start: 2; }
155
+ .dsrc-offset-md-2 { grid-column-start: 3; }
156
+ .dsrc-offset-md-3 { grid-column-start: 4; }
157
+ .dsrc-offset-md-4 { grid-column-start: 5; }
158
+ .dsrc-offset-md-5 { grid-column-start: 6; }
159
+ .dsrc-offset-md-6 { grid-column-start: 7; }
160
+ .dsrc-offset-md-7 { grid-column-start: 8; }
161
+ .dsrc-offset-md-8 { grid-column-start: 9; }
162
+ .dsrc-offset-md-9 { grid-column-start: 10; }
163
+ .dsrc-offset-md-10 { grid-column-start: 11; }
164
+ .dsrc-offset-md-11 { grid-column-start: 12; }
165
+ }
166
+
167
+ /* ==========================================================================
168
+ lg breakpoint (>= 1024px)
169
+ ========================================================================== */
170
+
171
+ @media (min-width: 1024px) {
172
+ .dsrc-col-lg-1 { grid-column: span 1; }
173
+ .dsrc-col-lg-2 { grid-column: span 2; }
174
+ .dsrc-col-lg-3 { grid-column: span 3; }
175
+ .dsrc-col-lg-4 { grid-column: span 4; }
176
+ .dsrc-col-lg-5 { grid-column: span 5; }
177
+ .dsrc-col-lg-6 { grid-column: span 6; }
178
+ .dsrc-col-lg-7 { grid-column: span 7; }
179
+ .dsrc-col-lg-8 { grid-column: span 8; }
180
+ .dsrc-col-lg-9 { grid-column: span 9; }
181
+ .dsrc-col-lg-10 { grid-column: span 10; }
182
+ .dsrc-col-lg-11 { grid-column: span 11; }
183
+ .dsrc-col-lg-12 { grid-column: span 12; }
184
+
185
+ .dsrc-offset-lg-0 { grid-column-start: auto; }
186
+ .dsrc-offset-lg-1 { grid-column-start: 2; }
187
+ .dsrc-offset-lg-2 { grid-column-start: 3; }
188
+ .dsrc-offset-lg-3 { grid-column-start: 4; }
189
+ .dsrc-offset-lg-4 { grid-column-start: 5; }
190
+ .dsrc-offset-lg-5 { grid-column-start: 6; }
191
+ .dsrc-offset-lg-6 { grid-column-start: 7; }
192
+ .dsrc-offset-lg-7 { grid-column-start: 8; }
193
+ .dsrc-offset-lg-8 { grid-column-start: 9; }
194
+ .dsrc-offset-lg-9 { grid-column-start: 10; }
195
+ .dsrc-offset-lg-10 { grid-column-start: 11; }
196
+ .dsrc-offset-lg-11 { grid-column-start: 12; }
197
+ }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * DSRC Hero Section
3
+ *
4
+ * Banniere d'accroche affichee en haut des pages principales.
5
+ * Fond vert primaire avec titre, description et metadonnees.
6
+ *
7
+ * Usage:
8
+ * <section class="dsrc-hero">
9
+ * <div class="dsrc-hero__inner">
10
+ * <h1 class="dsrc-hero__titre">Titre de la page</h1>
11
+ * <p class="dsrc-hero__description">Description courte de la page.</p>
12
+ * <p class="dsrc-hero__meta">Version 0.1.0</p>
13
+ * </div>
14
+ * </section>
15
+ */
16
+
17
+ /* ---------------------------------------------------------------------------
18
+ * Hero root
19
+ * ------------------------------------------------------------------------ */
20
+
21
+ .dsrc-hero {
22
+ background-color: var(--dsrc-color-primaire);
23
+ color: var(--dsrc-color-blanc);
24
+ padding: var(--dsrc-spacing-8) var(--dsrc-spacing-5);
25
+ }
26
+
27
+ /* ---------------------------------------------------------------------------
28
+ * Inner container
29
+ * ------------------------------------------------------------------------ */
30
+
31
+ .dsrc-hero__inner {
32
+ max-width: var(--dsrc-layout-max-width);
33
+ margin: 0 auto;
34
+ }
35
+
36
+ /* ---------------------------------------------------------------------------
37
+ * Title
38
+ *
39
+ * Uses clamp() for fluid typography that scales between mobile and desktop
40
+ * without a separate breakpoint. The max-width is expressed relative to
41
+ * the layout container so the title never stretches uncomfortably wide on
42
+ * large screens while still being free to fill mobile viewports.
43
+ * ------------------------------------------------------------------------ */
44
+
45
+ .dsrc-hero__titre {
46
+ font-family: var(--dsrc-font-family-sans);
47
+ font-size: clamp(var(--dsrc-font-size-h2), 4vw, var(--dsrc-font-size-h1));
48
+ font-weight: var(--dsrc-font-weight-bold);
49
+ line-height: var(--dsrc-font-line-height-tight);
50
+ max-width: 52ch;
51
+ margin: 0 0 var(--dsrc-spacing-4);
52
+ }
53
+
54
+ /* ---------------------------------------------------------------------------
55
+ * Description
56
+ * ------------------------------------------------------------------------ */
57
+
58
+ .dsrc-hero__description {
59
+ font-family: var(--dsrc-font-family-sans);
60
+ font-size: var(--dsrc-font-size-body);
61
+ color: rgba(255, 255, 255, 0.75);
62
+ max-width: 48ch;
63
+ line-height: var(--dsrc-font-line-height-loose);
64
+ margin: 0 0 var(--dsrc-spacing-5);
65
+ }
66
+
67
+ /* ---------------------------------------------------------------------------
68
+ * Meta line (version, date, etc.)
69
+ * ------------------------------------------------------------------------ */
70
+
71
+ .dsrc-hero__meta {
72
+ font-family: var(--dsrc-font-family-mono);
73
+ font-size: var(--dsrc-font-size-micro);
74
+ color: rgba(255, 255, 255, 0.4);
75
+ margin: 0;
76
+ }
77
+
78
+ /* ---------------------------------------------------------------------------
79
+ * Responsive
80
+ * ------------------------------------------------------------------------ */
81
+
82
+ @media (max-width: 768px) {
83
+ .dsrc-hero {
84
+ padding: var(--dsrc-spacing-7) var(--dsrc-spacing-4);
85
+ }
86
+ }
@@ -0,0 +1,123 @@
1
+ /**
2
+ * DSRC Main Content Area and Container System
3
+ *
4
+ * Fournit la zone de contenu principale, le systeme de conteneur, et les
5
+ * blocs de section reutilisables.
6
+ *
7
+ * Usage:
8
+ * <main class="dsrc-main">
9
+ * <div class="dsrc-container">
10
+ * <section class="dsrc-section">
11
+ * <h2 class="dsrc-section__titre">Titre de section</h2>
12
+ * <p class="dsrc-section__description">Description de la section.</p>
13
+ * <!-- contenu -->
14
+ * </section>
15
+ * </div>
16
+ * </main>
17
+ *
18
+ * Container variants:
19
+ * <div class="dsrc-container"> Standard (max 1140px)
20
+ * <div class="dsrc-container--fluid"> Pleine largeur
21
+ * <div class="dsrc-container--narrow"> Etroit (max 720px)
22
+ */
23
+
24
+ /* ---------------------------------------------------------------------------
25
+ * Container system
26
+ *
27
+ * .dsrc-container -- centres content with the standard max-width
28
+ * .dsrc-container--fluid -- full viewport width, same horizontal padding
29
+ * .dsrc-container--narrow -- tighter reading column for long-form text
30
+ * ------------------------------------------------------------------------ */
31
+
32
+ .dsrc-container {
33
+ max-width: var(--dsrc-layout-max-width);
34
+ margin-left: auto;
35
+ margin-right: auto;
36
+ padding-left: var(--dsrc-spacing-5);
37
+ padding-right: var(--dsrc-spacing-5);
38
+ }
39
+
40
+ .dsrc-container--fluid {
41
+ max-width: none;
42
+ margin-left: auto;
43
+ margin-right: auto;
44
+ padding-left: var(--dsrc-spacing-5);
45
+ padding-right: var(--dsrc-spacing-5);
46
+ }
47
+
48
+ .dsrc-container--narrow {
49
+ max-width: 720px;
50
+ margin-left: auto;
51
+ margin-right: auto;
52
+ padding-left: var(--dsrc-spacing-5);
53
+ padding-right: var(--dsrc-spacing-5);
54
+ }
55
+
56
+ /* ---------------------------------------------------------------------------
57
+ * Main content area
58
+ *
59
+ * Wraps the primary page content between the navigation/hero and the footer.
60
+ * Provides vertical padding and the standard centred max-width.
61
+ * ------------------------------------------------------------------------ */
62
+
63
+ .dsrc-main {
64
+ max-width: var(--dsrc-layout-max-width);
65
+ margin: 0 auto;
66
+ padding: var(--dsrc-spacing-7) var(--dsrc-spacing-5);
67
+ }
68
+
69
+ /* ---------------------------------------------------------------------------
70
+ * Section blocks
71
+ *
72
+ * Reusable titled section within the main content area.
73
+ * Each section has a title with an accent underline and an optional
74
+ * description paragraph.
75
+ * ------------------------------------------------------------------------ */
76
+
77
+ .dsrc-section {
78
+ margin-bottom: var(--dsrc-spacing-8);
79
+ }
80
+
81
+ .dsrc-section:last-child {
82
+ margin-bottom: 0;
83
+ }
84
+
85
+ .dsrc-section__titre {
86
+ font-family: var(--dsrc-font-family-sans);
87
+ font-size: var(--dsrc-font-size-h3);
88
+ font-weight: var(--dsrc-font-weight-bold);
89
+ color: var(--dsrc-color-noir);
90
+ padding-bottom: var(--dsrc-spacing-4);
91
+ border-bottom: var(--dsrc-border-width-thick) solid var(--dsrc-color-primaire);
92
+ margin: 0 0 var(--dsrc-spacing-3);
93
+ }
94
+
95
+ .dsrc-section__description {
96
+ font-family: var(--dsrc-font-family-sans);
97
+ font-size: var(--dsrc-font-size-small);
98
+ color: var(--dsrc-color-gris-600);
99
+ margin: 0 0 var(--dsrc-spacing-6);
100
+ max-width: 52ch;
101
+ line-height: var(--dsrc-font-line-height-loose);
102
+ }
103
+
104
+ /* ---------------------------------------------------------------------------
105
+ * Responsive
106
+ * ------------------------------------------------------------------------ */
107
+
108
+ @media (max-width: 768px) {
109
+ .dsrc-main {
110
+ padding: var(--dsrc-spacing-6) var(--dsrc-spacing-4);
111
+ }
112
+
113
+ .dsrc-container,
114
+ .dsrc-container--fluid,
115
+ .dsrc-container--narrow {
116
+ padding-left: var(--dsrc-spacing-4);
117
+ padding-right: var(--dsrc-spacing-4);
118
+ }
119
+
120
+ .dsrc-section {
121
+ margin-bottom: var(--dsrc-spacing-7);
122
+ }
123
+ }