sdga-ui 1.0.6 → 1.0.7

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 (71) hide show
  1. package/README.md +4 -4
  2. package/css/dga-ui.css +4146 -1040
  3. package/css/dga-ui.css.map +1 -1
  4. package/demo-angular/package-lock.json +41 -41
  5. package/demo-angular/package.json +8 -8
  6. package/demo-angular/public/404.html +35 -0
  7. package/demo-angular/public/i18n/ar.json +47 -0
  8. package/demo-angular/public/i18n/en.json +47 -0
  9. package/demo-angular/src/app/app.routes.ts +12 -4
  10. package/demo-angular/src/app/app.ts +8 -2
  11. package/demo-angular/src/app/views/alerts/alerts.component.html +10 -10
  12. package/demo-angular/src/app/views/alerts/alerts.component.ts +10 -10
  13. package/demo-angular/src/app/views/buttons/buttons.component.html +23 -23
  14. package/demo-angular/src/app/views/buttons/buttons.component.ts +14 -14
  15. package/demo-angular/src/app/views/cards/cards.component.html +6 -6
  16. package/demo-angular/src/app/views/cards/cards.component.ts +10 -10
  17. package/demo-angular/src/app/views/contexts/contexts.component.html +204 -0
  18. package/demo-angular/src/app/views/contexts/contexts.component.ts +10 -0
  19. package/demo-angular/src/app/views/footer/footer.html +282 -0
  20. package/demo-angular/src/app/views/footer/footer.scss +0 -0
  21. package/demo-angular/src/app/views/footer/footer.spec.ts +23 -0
  22. package/demo-angular/src/app/views/footer/footer.ts +142 -0
  23. package/demo-angular/src/app/views/header/header.html +1 -0
  24. package/demo-angular/src/app/views/header/header.scss +0 -0
  25. package/demo-angular/src/app/views/header/header.spec.ts +23 -0
  26. package/demo-angular/src/app/views/header/header.ts +11 -0
  27. package/demo-angular/src/app/views/home/home.component.html +0 -5
  28. package/demo-angular/src/app/views/links/links.component.html +2 -2
  29. package/demo-angular/src/app/views/toasts/toasts.component.html +7 -7
  30. package/demo-angular/src/app/views/toasts/toasts.component.ts +7 -7
  31. package/demo-angular/src/index.html +15 -1
  32. package/package.json +2 -2
  33. package/sdga-ui/README.md +45 -0
  34. package/sdga-ui/content/docs/components/alerts.mdx +475 -0
  35. package/sdga-ui/content/docs/index.mdx +239 -0
  36. package/sdga-ui/next.config.mjs +10 -0
  37. package/sdga-ui/package-lock.json +5851 -0
  38. package/sdga-ui/package.json +32 -0
  39. package/sdga-ui/postcss.config.mjs +5 -0
  40. package/sdga-ui/source.config.ts +27 -0
  41. package/sdga-ui/src/app/(home)/layout.tsx +6 -0
  42. package/sdga-ui/src/app/(home)/page.tsx +202 -0
  43. package/sdga-ui/src/app/api/search/route.ts +7 -0
  44. package/sdga-ui/src/app/docs/[[...slug]]/page.tsx +54 -0
  45. package/sdga-ui/src/app/docs/layout.tsx +11 -0
  46. package/sdga-ui/src/app/global.css +3 -0
  47. package/sdga-ui/src/app/layout.tsx +25 -0
  48. package/sdga-ui/src/app/llms-full.txt/route.ts +10 -0
  49. package/sdga-ui/src/app/og/docs/[...slug]/route.tsx +34 -0
  50. package/sdga-ui/src/app/sdga-scoped.css +7 -0
  51. package/sdga-ui/src/components/sdga-preview.tsx +105 -0
  52. package/sdga-ui/src/lib/layout.shared.tsx +9 -0
  53. package/sdga-ui/src/lib/source.ts +27 -0
  54. package/sdga-ui/src/mdx-components.tsx +9 -0
  55. package/sdga-ui/tsconfig.json +46 -0
  56. package/theme/_variables.scss +7 -5
  57. package/theme/components/_buttons.scss +105 -0
  58. package/theme/config/_base.scss +10 -0
  59. package/theme/config/_contexts.scss +471 -0
  60. package/theme/customizations/_alerts.scss +100 -112
  61. package/theme/customizations/_badges.scss +15 -0
  62. package/theme/customizations/_buttons.scss +288 -146
  63. package/theme/customizations/_cards.scss +52 -0
  64. package/theme/customizations/_contexts.scss +432 -0
  65. package/theme/customizations/_footer.scss +83 -0
  66. package/theme/customizations/_links.scss +55 -39
  67. package/theme/customizations/_toasts.scss +79 -100
  68. package/theme/dga-ui.scss +2 -0
  69. package/demo-angular/src/app/views/bootstrap/bootstrap.component.html +0 -14
  70. package/demo-angular/src/app/views/bootstrap/bootstrap.component.scss +0 -91
  71. package/demo-angular/src/app/views/bootstrap/bootstrap.component.ts +0 -23
@@ -0,0 +1,432 @@
1
+ // Context System Customizations
2
+ // Enhancements and specific component adaptations within context wrappers
3
+
4
+ // ============================================
5
+ // CONTEXT-AWARE LINK VARIANTS
6
+ // ============================================
7
+
8
+ // Apply context link colors to all link variants
9
+ @each $context-name, $context-props in $contexts {
10
+ .#{$context-name} {
11
+ // Default links (without variant classes) use context colors
12
+ a:not([class*="link-"]):not(.btn) {
13
+ color: map-get($context-props, link-color) !important;
14
+ text-decoration-color: map-get($context-props, link-color) !important;
15
+
16
+ &:visited,
17
+ &:focus-visible {
18
+ color: map-get($context-props, link-color) !important;
19
+ text-decoration-color: map-get($context-props, link-color) !important;
20
+ }
21
+
22
+ &:hover,
23
+ &:focus {
24
+ color: map-get($context-props, link-hover) !important;
25
+ text-decoration-color: map-get($context-props, link-hover) !important;
26
+ }
27
+
28
+ &:active {
29
+ color: map-get($context-props, link-active) !important;
30
+ text-decoration-color: map-get($context-props, link-active) !important;
31
+ }
32
+ }
33
+
34
+ // Link variants adapt to maintain their semantic meaning in context
35
+ // Primary link -> uses primary color adapted for this context
36
+ .link-primary {
37
+ @if map-get($context-props, text) == $white {
38
+ // On dark backgrounds, primary links are bright
39
+ color: $primary-300 !important;
40
+ &:hover { color: $primary-200 !important; }
41
+ &:active { color: $primary-400 !important; }
42
+ } @else {
43
+ // On light backgrounds, primary links are darker
44
+ color: $primary-700 !important;
45
+ &:hover { color: $primary-800 !important; }
46
+ &:active { color: $primary-900 !important; }
47
+ }
48
+ }
49
+
50
+ .link-secondary {
51
+ @if map-get($context-props, text) == $white {
52
+ color: $gray-300 !important;
53
+ &:hover { color: $gray-200 !important; }
54
+ &:active { color: $gray-400 !important; }
55
+ } @else {
56
+ color: $gray-700 !important;
57
+ &:hover { color: $gray-800 !important; }
58
+ &:active { color: $gray-900 !important; }
59
+ }
60
+ }
61
+
62
+ .link-success {
63
+ @if map-get($context-props, text) == $white {
64
+ color: $success-300 !important;
65
+ &:hover { color: $success-200 !important; }
66
+ &:active { color: $success-400 !important; }
67
+ } @else {
68
+ color: $success-700 !important;
69
+ &:hover { color: $success-800 !important; }
70
+ &:active { color: $success-900 !important; }
71
+ }
72
+ }
73
+
74
+ .link-danger {
75
+ @if map-get($context-props, text) == $white {
76
+ color: $danger-300 !important;
77
+ &:hover { color: $danger-200 !important; }
78
+ &:active { color: $danger-400 !important; }
79
+ } @else {
80
+ color: $danger-700 !important;
81
+ &:hover { color: $danger-800 !important; }
82
+ &:active { color: $danger-900 !important; }
83
+ }
84
+ }
85
+
86
+ .link-warning {
87
+ @if map-get($context-props, text) == $white {
88
+ color: $warning-300 !important;
89
+ &:hover { color: $warning-200 !important; }
90
+ &:active { color: $warning-400 !important; }
91
+ } @else {
92
+ color: $warning-700 !important;
93
+ &:hover { color: $warning-800 !important; }
94
+ &:active { color: $warning-900 !important; }
95
+ }
96
+ }
97
+
98
+ .link-info {
99
+ @if map-get($context-props, text) == $white {
100
+ color: $info-300 !important;
101
+ &:hover { color: $info-200 !important; }
102
+ &:active { color: $info-400 !important; }
103
+ } @else {
104
+ color: $info-700 !important;
105
+ &:hover { color: $info-800 !important; }
106
+ &:active { color: $info-900 !important; }
107
+ }
108
+ }
109
+
110
+ .link-neutral {
111
+ @if map-get($context-props, text) == $white {
112
+ color: $gray-300 !important;
113
+ &:hover { color: $gray-200 !important; }
114
+ &:active { color: $gray-400 !important; }
115
+ } @else {
116
+ color: $neutral-700 !important;
117
+ &:hover { color: $neutral-800 !important; }
118
+ &:active { color: $neutral-900 !important; }
119
+ }
120
+ }
121
+
122
+ .link-lavender {
123
+ @if map-get($context-props, text) == $white {
124
+ color: $lavender-300 !important;
125
+ &:hover { color: $lavender-200 !important; }
126
+ &:active { color: $lavender-400 !important; }
127
+ } @else {
128
+ color: $lavender-700 !important;
129
+ &:hover { color: $lavender-800 !important; }
130
+ &:active { color: $lavender-900 !important; }
131
+ }
132
+ }
133
+
134
+ // Button variants adapt to maintain their semantic meaning in context
135
+ // Success button
136
+ .btn-success {
137
+ @if map-get($context-props, text) == $white {
138
+ // On dark backgrounds
139
+ --#{$prefix}btn-bg: #{$success-600};
140
+ --#{$prefix}btn-color: #{$white};
141
+ --#{$prefix}btn-border-color: #{$success-600};
142
+ --#{$prefix}btn-hover-bg: #{$success-500};
143
+ --#{$prefix}btn-hover-color: #{$white};
144
+ --#{$prefix}btn-active-bg: #{$success-700};
145
+ --#{$prefix}btn-active-color: #{$white};
146
+ } @else {
147
+ // On light backgrounds
148
+ --#{$prefix}btn-bg: #{$success-600};
149
+ --#{$prefix}btn-color: #{$white};
150
+ --#{$prefix}btn-border-color: #{$success-600};
151
+ --#{$prefix}btn-hover-bg: #{$success-700};
152
+ --#{$prefix}btn-hover-color: #{$white};
153
+ --#{$prefix}btn-active-bg: #{$success-800};
154
+ --#{$prefix}btn-active-color: #{$white};
155
+ }
156
+ }
157
+
158
+ .btn-danger {
159
+ @if map-get($context-props, text) == $white {
160
+ --#{$prefix}btn-bg: #{$danger-600};
161
+ --#{$prefix}btn-color: #{$white};
162
+ --#{$prefix}btn-border-color: #{$danger-600};
163
+ --#{$prefix}btn-hover-bg: #{$danger-500};
164
+ --#{$prefix}btn-hover-color: #{$white};
165
+ --#{$prefix}btn-active-bg: #{$danger-700};
166
+ --#{$prefix}btn-active-color: #{$white};
167
+ } @else {
168
+ --#{$prefix}btn-bg: #{$danger-600};
169
+ --#{$prefix}btn-color: #{$white};
170
+ --#{$prefix}btn-border-color: #{$danger-600};
171
+ --#{$prefix}btn-hover-bg: #{$danger-700};
172
+ --#{$prefix}btn-hover-color: #{$white};
173
+ --#{$prefix}btn-active-bg: #{$danger-800};
174
+ --#{$prefix}btn-active-color: #{$white};
175
+ }
176
+ }
177
+
178
+ .btn-warning {
179
+ @if map-get($context-props, text) == $white {
180
+ --#{$prefix}btn-bg: #{$warning-600};
181
+ --#{$prefix}btn-color: #{$gray-900};
182
+ --#{$prefix}btn-border-color: #{$warning-600};
183
+ --#{$prefix}btn-hover-bg: #{$warning-500};
184
+ --#{$prefix}btn-hover-color: #{$gray-900};
185
+ --#{$prefix}btn-active-bg: #{$warning-700};
186
+ --#{$prefix}btn-active-color: #{$gray-900};
187
+ } @else {
188
+ --#{$prefix}btn-bg: #{$warning-600};
189
+ --#{$prefix}btn-color: #{$gray-900};
190
+ --#{$prefix}btn-border-color: #{$warning-600};
191
+ --#{$prefix}btn-hover-bg: #{$warning-700};
192
+ --#{$prefix}btn-hover-color: #{$gray-900};
193
+ --#{$prefix}btn-active-bg: #{$warning-800};
194
+ --#{$prefix}btn-active-color: #{$gray-900};
195
+ }
196
+ }
197
+
198
+ .btn-info {
199
+ @if map-get($context-props, text) == $white {
200
+ --#{$prefix}btn-bg: #{$info-600};
201
+ --#{$prefix}btn-color: #{$white};
202
+ --#{$prefix}btn-border-color: #{$info-600};
203
+ --#{$prefix}btn-hover-bg: #{$info-500};
204
+ --#{$prefix}btn-hover-color: #{$white};
205
+ --#{$prefix}btn-active-bg: #{$info-700};
206
+ --#{$prefix}btn-active-color: #{$white};
207
+ } @else {
208
+ --#{$prefix}btn-bg: #{$info-600};
209
+ --#{$prefix}btn-color: #{$white};
210
+ --#{$prefix}btn-border-color: #{$info-600};
211
+ --#{$prefix}btn-hover-bg: #{$info-700};
212
+ --#{$prefix}btn-hover-color: #{$white};
213
+ --#{$prefix}btn-active-bg: #{$info-800};
214
+ --#{$prefix}btn-active-color: #{$white};
215
+ }
216
+ }
217
+
218
+ .btn-neutral {
219
+ @if map-get($context-props, text) == $white {
220
+ --#{$prefix}btn-bg: #{$gray-700};
221
+ --#{$prefix}btn-color: #{$white};
222
+ --#{$prefix}btn-border-color: #{$gray-700};
223
+ --#{$prefix}btn-hover-bg: #{$gray-600};
224
+ --#{$prefix}btn-hover-color: #{$white};
225
+ --#{$prefix}btn-active-bg: #{$gray-800};
226
+ --#{$prefix}btn-active-color: #{$white};
227
+ } @else {
228
+ --#{$prefix}btn-bg: #{$neutral-900};
229
+ --#{$prefix}btn-color: #{$white};
230
+ --#{$prefix}btn-border-color: #{$neutral-900};
231
+ --#{$prefix}btn-hover-bg: #{$neutral-800};
232
+ --#{$prefix}btn-hover-color: #{$white};
233
+ --#{$prefix}btn-active-bg: #{$black};
234
+ --#{$prefix}btn-active-color: #{$white};
235
+ }
236
+ }
237
+
238
+ .btn-lavender {
239
+ @if map-get($context-props, text) == $white {
240
+ --#{$prefix}btn-bg: #{$lavender-600};
241
+ --#{$prefix}btn-color: #{$white};
242
+ --#{$prefix}btn-border-color: #{$lavender-600};
243
+ --#{$prefix}btn-hover-bg: #{$lavender-500};
244
+ --#{$prefix}btn-hover-color: #{$white};
245
+ --#{$prefix}btn-active-bg: #{$lavender-700};
246
+ --#{$prefix}btn-active-color: #{$white};
247
+ } @else {
248
+ --#{$prefix}btn-bg: #{$lavender-600};
249
+ --#{$prefix}btn-color: #{$white};
250
+ --#{$prefix}btn-border-color: #{$lavender-600};
251
+ --#{$prefix}btn-hover-bg: #{$lavender-700};
252
+ --#{$prefix}btn-hover-color: #{$white};
253
+ --#{$prefix}btn-active-bg: #{$lavender-800};
254
+ --#{$prefix}btn-active-color: #{$white};
255
+ }
256
+ }
257
+
258
+ // Outline button variants
259
+ .btn-outline-success {
260
+ @if map-get($context-props, text) == $white {
261
+ --#{$prefix}btn-color: #{$success-300};
262
+ --#{$prefix}btn-border-color: #{$success-400};
263
+ --#{$prefix}btn-hover-bg: #{$success-600};
264
+ --#{$prefix}btn-hover-color: #{$white};
265
+ --#{$prefix}btn-active-bg: #{$success-700};
266
+ --#{$prefix}btn-active-color: #{$white};
267
+ } @else {
268
+ --#{$prefix}btn-color: #{$success-700};
269
+ --#{$prefix}btn-border-color: #{$success-600};
270
+ --#{$prefix}btn-hover-bg: #{$success-600};
271
+ --#{$prefix}btn-hover-color: #{$white};
272
+ --#{$prefix}btn-active-bg: #{$success-700};
273
+ --#{$prefix}btn-active-color: #{$white};
274
+ }
275
+ }
276
+
277
+ .btn-outline-danger {
278
+ @if map-get($context-props, text) == $white {
279
+ --#{$prefix}btn-color: #{$danger-300};
280
+ --#{$prefix}btn-border-color: #{$danger-400};
281
+ --#{$prefix}btn-hover-bg: #{$danger-600};
282
+ --#{$prefix}btn-hover-color: #{$white};
283
+ --#{$prefix}btn-active-bg: #{$danger-700};
284
+ --#{$prefix}btn-active-color: #{$white};
285
+ } @else {
286
+ --#{$prefix}btn-color: #{$danger-700};
287
+ --#{$prefix}btn-border-color: #{$danger-600};
288
+ --#{$prefix}btn-hover-bg: #{$danger-600};
289
+ --#{$prefix}btn-hover-color: #{$white};
290
+ --#{$prefix}btn-active-bg: #{$danger-700};
291
+ --#{$prefix}btn-active-color: #{$white};
292
+ }
293
+ }
294
+
295
+ .btn-outline-warning {
296
+ @if map-get($context-props, text) == $white {
297
+ --#{$prefix}btn-color: #{$warning-300};
298
+ --#{$prefix}btn-border-color: #{$warning-400};
299
+ --#{$prefix}btn-hover-bg: #{$warning-600};
300
+ --#{$prefix}btn-hover-color: #{$gray-900};
301
+ --#{$prefix}btn-active-bg: #{$warning-700};
302
+ --#{$prefix}btn-active-color: #{$gray-900};
303
+ } @else {
304
+ --#{$prefix}btn-color: #{$warning-700};
305
+ --#{$prefix}btn-border-color: #{$warning-600};
306
+ --#{$prefix}btn-hover-bg: #{$warning-600};
307
+ --#{$prefix}btn-hover-color: #{$gray-900};
308
+ --#{$prefix}btn-active-bg: #{$warning-700};
309
+ --#{$prefix}btn-active-color: #{$gray-900};
310
+ }
311
+ }
312
+
313
+ .btn-outline-info {
314
+ @if map-get($context-props, text) == $white {
315
+ --#{$prefix}btn-color: #{$info-300};
316
+ --#{$prefix}btn-border-color: #{$info-400};
317
+ --#{$prefix}btn-hover-bg: #{$info-600};
318
+ --#{$prefix}btn-hover-color: #{$white};
319
+ --#{$prefix}btn-active-bg: #{$info-700};
320
+ --#{$prefix}btn-active-color: #{$white};
321
+ } @else {
322
+ --#{$prefix}btn-color: #{$info-700};
323
+ --#{$prefix}btn-border-color: #{$info-600};
324
+ --#{$prefix}btn-hover-bg: #{$info-600};
325
+ --#{$prefix}btn-hover-color: #{$white};
326
+ --#{$prefix}btn-active-bg: #{$info-700};
327
+ --#{$prefix}btn-active-color: #{$white};
328
+ }
329
+ }
330
+
331
+ .btn-outline-lavender {
332
+ @if map-get($context-props, text) == $white {
333
+ --#{$prefix}btn-color: #{$lavender-300};
334
+ --#{$prefix}btn-border-color: #{$lavender-400};
335
+ --#{$prefix}btn-hover-bg: #{$lavender-600};
336
+ --#{$prefix}btn-hover-color: #{$white};
337
+ --#{$prefix}btn-active-bg: #{$lavender-700};
338
+ --#{$prefix}btn-active-color: #{$white};
339
+ } @else {
340
+ --#{$prefix}btn-color: #{$lavender-700};
341
+ --#{$prefix}btn-border-color: #{$lavender-600};
342
+ --#{$prefix}btn-hover-bg: #{$lavender-600};
343
+ --#{$prefix}btn-hover-color: #{$white};
344
+ --#{$prefix}btn-active-bg: #{$lavender-700};
345
+ --#{$prefix}btn-active-color: #{$white};
346
+ }
347
+ }
348
+
349
+ // Button active states for primary/secondary/outline (already defined in context)
350
+ .btn-primary:active,
351
+ .btn-primary.active {
352
+ --#{$prefix}btn-active-bg: #{map-get($context-props, btn-primary-active-bg)};
353
+ --#{$prefix}btn-active-color: #{map-get($context-props, btn-primary-active-color)};
354
+ --#{$prefix}btn-active-border-color: #{map-get($context-props, btn-primary-active-bg)};
355
+ }
356
+
357
+ .btn-secondary:active,
358
+ .btn-secondary.active {
359
+ --#{$prefix}btn-active-bg: #{map-get($context-props, btn-secondary-active-bg)};
360
+ --#{$prefix}btn-active-color: #{map-get($context-props, btn-secondary-active-color)};
361
+ }
362
+
363
+ .btn-outline-primary:active,
364
+ .btn-outline-primary.active,
365
+ .btn-outline-secondary:active,
366
+ .btn-outline-secondary.active,
367
+ .btn-outline-neutral:active,
368
+ .btn-outline-neutral.active {
369
+ --#{$prefix}btn-active-bg: #{map-get($context-props, btn-outline-active-bg)};
370
+ --#{$prefix}btn-active-color: #{map-get($context-props, btn-outline-active-color)};
371
+ --#{$prefix}btn-active-border-color: #{map-get($context-props, btn-outline-active-bg)};
372
+ }
373
+ }
374
+ }
375
+
376
+ // ============================================
377
+ // CONTEXT-AWARE TRANSITIONS
378
+ // ============================================
379
+
380
+ [class*="on-"] {
381
+ transition: background-color 0.3s ease, color 0.3s ease;
382
+
383
+ // Smooth transitions for interactive elements
384
+ a,
385
+ button,
386
+ .btn,
387
+ input,
388
+ textarea,
389
+ select {
390
+ transition: all 0.2s ease;
391
+ }
392
+ }
393
+
394
+ // ============================================
395
+ // CONTEXT-AWARE COMPONENT ENHANCEMENTS
396
+ // ============================================
397
+
398
+ // Card adaptations within contexts
399
+ @each $context-name, $context-props in $contexts {
400
+ .#{$context-name} {
401
+ .card {
402
+ background-color: rgba(map-get($context-props, bg), 0.1);
403
+ border-color: map-get($context-props, border);
404
+ color: map-get($context-props, text);
405
+ }
406
+
407
+ .badge {
408
+ background-color: rgba(map-get($context-props, text), 0.2);
409
+ color: map-get($context-props, text);
410
+ }
411
+
412
+ .alert {
413
+ background-color: rgba(map-get($context-props, text), 0.1);
414
+ border-color: map-get($context-props, border);
415
+ color: map-get($context-props, text);
416
+ }
417
+ }
418
+ }
419
+
420
+ // ============================================
421
+ // FOCUS STATES IN CONTEXTS
422
+ // ============================================
423
+
424
+ @each $context-name, $context-props in $contexts {
425
+ .#{$context-name} {
426
+ *:focus-visible {
427
+ outline-color: map-get($context-props, link-color);
428
+ outline-offset: 2px;
429
+ outline-width: 2px;
430
+ }
431
+ }
432
+ }
@@ -0,0 +1,83 @@
1
+ .dga-footer {
2
+ padding: 2.5rem 2rem;
3
+
4
+ .dga-list-group-container {
5
+ gap: 1.5rem;
6
+ margin-bottom: 3rem;
7
+
8
+ .dga-link-group {
9
+ min-width: 12rem;
10
+ }
11
+ }
12
+ .dga-social-container {
13
+ display: flex;
14
+ gap: 2rem;
15
+ flex-direction: column;
16
+ flex-wrap: wrap;
17
+ min-width: 12rem;
18
+
19
+ & > div {
20
+ flex: 1;
21
+ }
22
+ }
23
+
24
+ .dga-footer-bottom {
25
+ margin-top: 1rem;
26
+
27
+
28
+
29
+ .dga-footer-bottom-links {
30
+ display: flex;
31
+ flex-wrap: wrap;
32
+ gap: 1rem;
33
+ margin-bottom: 2.5rem;
34
+ }
35
+
36
+
37
+ .dga-footer-copyright {
38
+ margin-bottom: 0.5rem;
39
+
40
+ .dga-footer-copyright-links {
41
+ display: flex;
42
+ flex-wrap: wrap;
43
+ gap: 1rem;
44
+
45
+ }
46
+ }
47
+
48
+ .dga-logo-container {
49
+ display: flex;
50
+ gap: 1rem;
51
+ justify-content: flex-end;
52
+ flex-wrap: wrap;
53
+ }
54
+
55
+ }
56
+ }
57
+
58
+ @media (max-width: $tablet) {
59
+ .dga-footer {
60
+ .dga-social-container {
61
+ flex-direction: row;
62
+ flex-wrap: wrap;
63
+ }
64
+ .dga-footer-bottom {
65
+ .dga-footer-bottom-links {
66
+ justify-content: center;
67
+ padding: 2rem 0;
68
+ }
69
+ .dga-footer-copyright {
70
+ text-align: center;
71
+ padding: 2rem 0;
72
+
73
+ .dga-footer-copyright-links {
74
+ justify-content: center;
75
+ }
76
+ }
77
+
78
+ .dga-logo-container {
79
+ justify-content: space-between;
80
+ }
81
+ }
82
+ }
83
+ }
@@ -8,76 +8,92 @@
8
8
  // Define link color variants with their shades
9
9
  $link-variants: (
10
10
  "primary": (
11
- base: $primary-600,
12
- hover: $primary-400,
13
- active: $primary-300 ),
11
+ base: rgba($primary-600, var(--#{$prefix}link-opacity, 1)),
12
+ base-decoration: rgba($primary-600, var(--#{$prefix}link-decoration-opacity, 1)),
13
+ hover: rgba($primary-400, var(--#{$prefix}link-opacity, 1)),
14
+ hover-decoration: rgba($primary-400, var(--#{$prefix}link-decoration-opacity, 1)),
15
+ active: rgba($primary-300, var(--#{$prefix}link-opacity, 1)),
16
+ active-decoration: rgba($primary-300, var(--#{$prefix}link-decoration-opacity, 1)) ),
14
17
  "secondary": (
15
- base: $secondary-600,
16
- hover: $secondary-400,
17
- active: $secondary-300 ),
18
+ base: rgba($secondary-600, var(--#{$prefix}link-opacity, 1)),
19
+ base-decoration: rgba($secondary-600, var(--#{$prefix}link-decoration-opacity, 1)),
20
+ hover: rgba($secondary-400, var(--#{$prefix}link-opacity, 1)),
21
+ hover-decoration: rgba($secondary-400, var(--#{$prefix}link-decoration-opacity, 1)),
22
+ active: rgba($secondary-300, var(--#{$prefix}link-opacity, 1)),
23
+ active-decoration: rgba($secondary-300, var(--#{$prefix}link-decoration-opacity, 1)) ),
18
24
  "success": (
19
- base: $success-600,
20
- hover: $success-400,
21
- active: $success-300 ),
25
+ base: rgba($success-600, var(--#{$prefix}link-opacity, 1)),
26
+ base-decoration: rgba($success-600, var(--#{$prefix}link-decoration-opacity, 1)),
27
+ hover: rgba($success-400, var(--#{$prefix}link-opacity, 1)),
28
+ hover-decoration: rgba($success-400, var(--#{$prefix}link-decoration-opacity, 1)),
29
+ active: rgba($success-300, var(--#{$prefix}link-opacity, 1)),
30
+ active-decoration: rgba($success-300, var(--#{$prefix}link-decoration-opacity, 1)) ),
22
31
  "danger": (
23
- base: $danger-600,
24
- hover: $danger-400,
25
- active: $danger-300 ),
32
+ base: rgba($danger-600, var(--#{$prefix}link-opacity, 1)),
33
+ base-decoration: rgba($danger-600, var(--#{$prefix}link-decoration-opacity, 1)),
34
+ hover: rgba($danger-400, var(--#{$prefix}link-opacity, 1)),
35
+ hover-decoration: rgba($danger-400, var(--#{$prefix}link-decoration-opacity, 1)),
36
+ active: rgba($danger-300, var(--#{$prefix}link-opacity, 1)),
37
+ active-decoration: rgba($danger-300, var(--#{$prefix}link-decoration-opacity, 1)) ),
26
38
  "warning": (
27
- base: $warning-600,
28
- hover: $warning-400,
29
- active: $warning-300 ),
39
+ base: rgba($warning-600, var(--#{$prefix}link-opacity, 1)),
40
+ base-decoration: rgba($warning-600, var(--#{$prefix}link-decoration-opacity, 1)),
41
+ hover: rgba($warning-400, var(--#{$prefix}link-opacity, 1)),
42
+ hover-decoration: rgba($warning-400, var(--#{$prefix}link-decoration-opacity, 1)),
43
+ active: rgba($warning-300, var(--#{$prefix}link-opacity, 1)),
44
+ active-decoration: rgba($warning-300, var(--#{$prefix}link-decoration-opacity, 1)) ),
30
45
  "info": (
31
- base: $info-600,
32
- hover: $info-400,
33
- active: $info-300 ),
46
+ base: rgba($info-600, var(--#{$prefix}link-opacity, 1)),
47
+ base-decoration: rgba($info-600, var(--#{$prefix}link-decoration-opacity, 1)),
48
+ hover: rgba($info-400, var(--#{$prefix}link-opacity, 1)),
49
+ hover-decoration: rgba($info-400, var(--#{$prefix}link-decoration-opacity, 1)),
50
+ active: rgba($info-300, var(--#{$prefix}link-opacity, 1)),
51
+ active-decoration: rgba($info-300, var(--#{$prefix}link-decoration-opacity, 1)) ),
34
52
  "neutral": (
35
- base: $neutral-700,
36
- hover: $neutral-500,
37
- active: $neutral-400 ),
53
+ base: rgba($neutral-700, var(--#{$prefix}link-opacity, 1)),
54
+ base-decoration: rgba($neutral-700, var(--#{$prefix}link-decoration-opacity, 1)),
55
+ hover: rgba($neutral-500, var(--#{$prefix}link-opacity, 1)),
56
+ hover-decoration: rgba($neutral-500, var(--#{$prefix}link-decoration-opacity, 1)),
57
+ active: rgba($neutral-400, var(--#{$prefix}link-opacity, 1)),
58
+ active-decoration: rgba($neutral-400, var(--#{$prefix}link-decoration-opacity, 1)) ),
38
59
  "lavender": (
39
- base: $lavender-600,
40
- hover: $lavender-500,
41
- active: $lavender-400 ),
42
- "oncolor": (
43
- base: $white,
44
- hover: rgba($white, 0.8),
45
- active: rgba($white, 0.6) )
60
+ base: rgba($lavender-600, var(--#{$prefix}link-opacity, 1)),
61
+ base-decoration: rgba($lavender-600, var(--#{$prefix}link-decoration-opacity, 1)),
62
+ hover: rgba($lavender-500, var(--#{$prefix}link-opacity, 1)),
63
+ hover-decoration: rgba($lavender-500, var(--#{$prefix}link-decoration-opacity, 1)),
64
+ active: rgba($lavender-400, var(--#{$prefix}link-opacity, 1)),
65
+ active-decoration: rgba($lavender-400, var(--#{$prefix}link-decoration-opacity, 1)) )
46
66
  );
47
67
 
48
68
  // Generate link variant classes
49
69
  @each $name, $colors in $link-variants {
50
70
  .link-#{$name} {
51
71
  color: map-get($colors, base) !important;
52
- text-decoration-color: map-get($colors, base) !important;
72
+ text-decoration-color: map-get($colors, base-decoration) !important;
53
73
 
54
74
  &:visited,
55
75
  &:focus-visible {
56
76
  color: map-get($colors, base) !important;
57
- text-decoration-color: map-get($colors, base) !important;
77
+ text-decoration-color: map-get($colors, base-decoration) !important;
58
78
  }
59
79
 
60
80
  &:hover,
61
81
  &:focus {
62
82
  color: map-get($colors, hover) !important;
63
- text-decoration-color: map-get($colors, hover) !important;
83
+ text-decoration-color: map-get($colors, hover-decoration) !important;
64
84
  }
65
85
 
66
86
  &:active {
67
87
  color: map-get($colors, active) !important;
68
- text-decoration-color: map-get($colors, active) !important;
88
+ text-decoration-color: map-get($colors, active-decoration) !important;
69
89
  }
70
90
  }
71
91
  }
72
92
 
73
93
  a.disabled {
74
- color: $gray-400 !important;
75
- text-decoration-color: $gray-400 !important;
76
- pointer-events: none;
94
+ color: rgba($gray-400, var(--#{$prefix}link-opacity, 1)) !important;
95
+ text-decoration-color: rgba($gray-400, var(--#{$prefix}link-opacity, 1)) !important;
77
96
 
78
- &.link-oncolor {
79
- color: rgba($white, 0.3) !important;
80
- text-decoration-color: rgba($white, 0.3) !important;
81
- }
97
+ pointer-events: none;
82
98
  }
83
99