qc-trousse-sdg 1.2.5-dev → 1.3.0-develop.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 (97) hide show
  1. package/README.md +18 -3
  2. package/dist/css/qc-sdg-design-tokens.min.css +1 -1
  3. package/dist/css/qc-sdg-no-grid.min.css +1 -1
  4. package/dist/css/qc-sdg.min.css +1 -1
  5. package/dist/img/QUEBEC_blanc.svg +1 -1
  6. package/dist/img/QUEBEC_couleur.svg +24 -0
  7. package/dist/js/qc-sdg.min.js +1 -1
  8. package/package.json +23 -18
  9. package/public/css/qc-doc-sdg.css +247 -335
  10. package/public/css/qc-sdg-design-tokens.css +111 -64
  11. package/public/css/qc-sdg-no-grid.css +932 -428
  12. package/public/css/qc-sdg.css +941 -609
  13. package/public/img/QUEBEC_blanc.svg +1 -1
  14. package/public/img/QUEBEC_couleur.svg +24 -0
  15. package/public/img/ampoule.svg +1 -0
  16. package/public/img/note.svg +1 -0
  17. package/public/img/piv-MCE-theme-clair.svg +79 -0
  18. package/public/img/piv-MCE-theme-sombre.svg +62 -0
  19. package/public/img/piv-bas-MCE-theme-clair.png +0 -0
  20. package/public/img/piv-bas-MCE-theme-sombre.png +0 -0
  21. package/public/img/piv-logo-pied-de-page.svg +37 -0
  22. package/public/index.html +871 -715
  23. package/public/js/qc-doc-exemple.js +9 -0
  24. package/public/js/qc-doc-sdg.js +6893 -3724
  25. package/public/js/qc-sdg.js +2103 -962
  26. package/rollup.config.js +58 -23
  27. package/src/doc/components/Code.svelte +69 -0
  28. package/src/doc/components/Exemple.svelte +71 -0
  29. package/src/doc/components/Switch.svelte +108 -0
  30. package/src/doc/components/TopNav.svelte +53 -0
  31. package/src/doc/components/color-doc.svelte +44 -0
  32. package/src/doc/qc-doc-sdg.js +25 -14
  33. package/src/doc/scss/_tables.scss +1 -2
  34. package/src/doc/scss/components/_button.scss +14 -14
  35. package/src/doc/scss/components/_code.scss +106 -4
  36. package/src/doc/scss/jQueryUI/_jquery-ui.autocomplete.scss +48 -0
  37. package/src/doc/scss/qc-doc-sdg.scss +76 -75
  38. package/src/sdg/components/Button/IconButton.svelte +29 -0
  39. package/src/sdg/components/Icon.svelte +39 -0
  40. package/src/sdg/components/{pivHeader.svelte → PivHeader/pivHeader.svelte} +49 -69
  41. package/src/sdg/components/SearchBar/searchBar.svelte +87 -0
  42. package/src/sdg/components/SearchInput/SearchInput.svelte +48 -0
  43. package/src/sdg/components/alert.svelte +40 -23
  44. package/src/sdg/components/componentWrapper.js +0 -3
  45. package/src/sdg/components/externalLink.svelte +92 -0
  46. package/src/sdg/components/notice.svelte +61 -34
  47. package/src/sdg/components/pivFooter.svelte +37 -36
  48. package/src/sdg/components/toTop.svelte +16 -10
  49. package/src/sdg/components/utils.js +28 -4
  50. package/src/sdg/qc-sdg.js +11 -3
  51. package/src/sdg/scss/_qc-sdg-lib.scss +3 -0
  52. package/src/sdg/scss/base/_accessibility.scss +4 -0
  53. package/src/sdg/scss/base/_colors.scss +10 -10
  54. package/src/sdg/scss/base/_figure.scss +14 -9
  55. package/src/sdg/scss/base/_fonts.scss +4 -4
  56. package/src/sdg/scss/base/_form.scss +7 -0
  57. package/src/sdg/scss/base/_layout.scss +45 -0
  58. package/src/sdg/scss/base/_lists.scss +5 -5
  59. package/src/sdg/scss/base/_shadings.scss +3 -11
  60. package/src/sdg/scss/base/_typography.scss +42 -25
  61. package/src/sdg/scss/components/_alert.scss +11 -34
  62. package/src/sdg/scss/components/_icons.scss +67 -38
  63. package/src/sdg/scss/components/_notice.scss +51 -44
  64. package/src/sdg/scss/components/_pivFooter.scss +35 -23
  65. package/src/sdg/scss/components/_pivHeader.scss +131 -154
  66. package/src/sdg/scss/components/_searchBar.scss +75 -0
  67. package/src/sdg/scss/components/_searchInput.scss +64 -0
  68. package/src/sdg/scss/components/_separator.scss +2 -5
  69. package/src/sdg/scss/components/_toTop.scss +4 -6
  70. package/src/sdg/scss/grid/_grid-lib.scss +516 -0
  71. package/src/sdg/scss/grid/_grid.scss +78 -0
  72. package/src/sdg/scss/lib/_functions.scss +78 -0
  73. package/src/sdg/scss/lib/_gridless-lib.scss +4 -0
  74. package/src/sdg/scss/lib/_mixins.scss +221 -0
  75. package/src/sdg/scss/qc-design-tokens.scss +31 -8
  76. package/src/sdg/scss/qc-sdg-utilities.scss +1 -0
  77. package/src/sdg/scss/qc-sdg.scss +1 -1
  78. package/src/sdg/scss/qc-sgd-no-grid.scss +20 -15
  79. package/src/sdg/scss/settings/_base.scss +58 -0
  80. package/src/sdg/scss/settings/_tokens.scss +145 -77
  81. package/src/sdg/scss/utilities/_display.scss +43 -3
  82. package/src/sdg/scss/utilities/_themes.scss +17 -0
  83. package/src/sdg/scss/vendor/modern-css-reset/src/reset.css +9 -8
  84. package/dist/img/logo-quebec-piv-footer.svg +0 -1
  85. package/dist/img/quebec-logo.svg +0 -13
  86. package/public/img/logo-quebec-piv-footer.svg +0 -1
  87. package/src/doc/components/code.svelte +0 -54
  88. package/src/sdg/scss/base/_grid.scss +0 -9
  89. package/src/sdg/scss/functions/_tokens.scss +0 -12
  90. package/src/sdg/scss/functions/_utils.scss +0 -44
  91. package/src/sdg/scss/modules/_grid.scss +0 -19
  92. package/src/sdg/scss/modules/_helpers.scss +0 -32
  93. package/src/sdg/scss/modules/_map.scss +0 -14
  94. package/src/sdg/scss/modules/_tokens.scss +0 -3
  95. package/src/sdg/scss/modules/_utils.scss +0 -55
  96. package/src/sdg/scss/settings/_grid.scss +0 -24
  97. package/src/sdg/scss/settings/_settings.scss +0 -12
@@ -0,0 +1,4 @@
1
+ @use "qc-sdg-lib" as *;
2
+ .qc-sr-only {
3
+ @include sr-only();
4
+ }
@@ -1,12 +1,12 @@
1
- @use "modules/utils" as *;
2
- @use "modules/tokens" as *;
3
- @use "modules/map" as *;
1
+ @use "qc-sdg-lib" as *;
4
2
  @use "sass:map";
5
3
 
6
- $colors : (color : map.get($xl-tokens, color));
7
- @include map-deep-parse($colors) using ($path,$value)
8
- {
9
- .qc-bg-#{deep-implode($path, '-')} {
10
- background-color: $value;
11
- }
12
- };
4
+ @mixin generate-color-classes($colors) {
5
+ @include map-deep-parse($colors) using ($path,$value)
6
+ {
7
+ .qc-bg-#{deep-implode($path, '-')} {
8
+ background-color: token-value($path);
9
+ }
10
+ };
11
+ }
12
+ @include generate-color-classes((color : map.get($lg-tokens, color)));
@@ -1,25 +1,30 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
1
+ @use "qc-sdg-lib" as *;
2
+
3
+ img {
4
+ border: none;
5
+ vertical-align: middle;
6
+ }
3
7
 
4
8
  figure {
5
- display: inline-block;
6
- flex-direction: column;
9
+ margin: 0 0 token-value(spacer content-block mb);
10
+ display: table;
11
+ overflow-x: auto;
7
12
  img {
8
- max-width: 100%;
13
+ width: 100%;
9
14
  height: auto;
10
15
  }
11
16
  }
12
17
  figcaption {
18
+ display: table-caption;
19
+ caption-side: bottom;
13
20
  @include content-font(sm);
21
+ max-inline-size: token-value(max-content-width);
14
22
  background-color: token-value(color, grey, pale);
15
23
  padding: rem($base-spacer);
16
24
  margin-top: rem($base-spacer);
17
25
  p {
18
26
  @include content-font(sm);
19
- &:last-child {
20
- margin-bottom: 0;
21
- }
27
+ margin-bottom: 0;
22
28
  }
23
- //margin-bottom: token-value(spacer md);
24
29
  }
25
30
 
@@ -1,12 +1,12 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
1
+ @use "sass:meta";
2
+ @use "qc-sdg-lib" as *;
3
3
  @use "sass:map";
4
4
  @use "sass:list";
5
5
 
6
6
  @if $google-api-font {
7
7
  // ci dessous on construit l'url pour importer les fonts google
8
8
  // en se basant sur la déclaration des tokens (les font-weights)
9
- $font-weights : map.values(map-get($xl-tokens, font, weight));
9
+ $font-weights : map.values(map.get($lg-tokens, font, weight));
10
10
  $url : 'https://fonts.googleapis.com/css2';
11
11
  $param-separator : '?';
12
12
  @each $name, $fonts in $google-fonts {
@@ -15,7 +15,7 @@
15
15
  $separator : '@';
16
16
  @each $i in (0,1) {
17
17
  @each $scale in $font-weights {
18
- @if type-of($scale) != 'map' {
18
+ @if meta.type-of($scale) != 'map' {
19
19
  $request : '#{$request}#{$separator}#{$i},#{$scale}';
20
20
  $separator : ';';
21
21
  }
@@ -0,0 +1,7 @@
1
+ // Inherit fonts for inputs and buttons
2
+ input,
3
+ button,
4
+ textarea,
5
+ select {
6
+ font: inherit;
7
+ }
@@ -0,0 +1,45 @@
1
+ @use "qc-sdg-lib" as *;
2
+
3
+ :root {
4
+ font-size: token-value(font size root-percent);
5
+ }
6
+
7
+ // Box sizing rules
8
+ *,
9
+ *::before,
10
+ *::after {
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ body {
15
+ @include content-font($scale: md , $include-family: 1);
16
+ margin:0;
17
+ background-color: token-value(color, background);
18
+ color: token-value(color, text, primary);
19
+ min-height: 100vh;
20
+ text-rendering: optimizeSpeed;
21
+ &:focus-within {
22
+ scroll-behavior: smooth;
23
+ }
24
+
25
+ }
26
+
27
+
28
+ // Remove all animations and transitions for people that prefer not to see them
29
+ @media (prefers-reduced-motion: reduce) {
30
+ html:focus-within {
31
+ scroll-behavior: auto;
32
+ }
33
+ *,
34
+ *::before,
35
+ *::after {
36
+ animation-duration: 0.01ms !important;
37
+ animation-iteration-count: 1 !important;
38
+ transition-duration: 0.01ms !important;
39
+ scroll-behavior: auto !important;
40
+ }
41
+ }
42
+
43
+ legend {
44
+ padding: 0;
45
+ }
@@ -1,18 +1,18 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
1
+ @use "qc-sdg-lib" as *;
3
2
 
4
3
  ul {
5
4
  max-inline-size: token-value(max-content-width);
6
5
  list-style: disc;
7
6
  margin-top: 0;
8
- margin-bottom: token-value(spacer list mb);
7
+ margin-bottom: token-value(spacer content-block mb);
9
8
  padding-left: token-value(spacer list pl);
10
9
  li {
11
10
  margin-bottom: token-value(spacer list-item mb);
11
+ margin-top: token-value(spacer list-item mb);
12
12
  }
13
13
  ul {
14
- margin-top: token-value(spacer list-item mb);
15
- margin-bottom: token-value(spacer list embedded-mb);
14
+ margin-top: 0;
15
+ margin-bottom: 0;
16
16
  list-style: circle;
17
17
  }
18
18
  }
@@ -1,16 +1,8 @@
1
- @use "../modules/tokens" as *;
2
- @use "../modules/utils" as *;
3
- @use "../modules/map" as *;
1
+ @use "qc-sdg-lib" as *;
4
2
  @use "sass:map";
5
3
 
6
- @each $index, $blur in map.get($xl-tokens, box-shadow, blur) {
7
- $color : token-value(box-shadow color);
8
- // qc-shading-0 and qc-shading-1
9
- @if($index in [0,1]){
10
- $color: token-value(color, grey, light);
11
- }
12
- $offset : map.get($xl-tokens, box-shadow, offset, $index);
4
+ @each $index,$settings in map.get($lg-tokens, box_shadow) {
13
5
  .qc-shading-#{$index} {
14
- box-shadow: 0 $offset $blur $color;
6
+ @include qc-shading($index)
15
7
  }
16
8
  }
@@ -1,23 +1,8 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
3
-
4
- :root {
5
- font-size: token-value(font size root-percent);
6
- }
7
-
8
- body {
9
- @include content-font($scale: md , $include-family: 1);
10
- background-color: token-value(color, white);
11
- color: token-value(color, text, primary);
12
- }
13
-
1
+ @use "qc-sdg-lib" as *;
14
2
 
15
3
  @for $i from 1 through 6 {
16
4
  h#{$i}, .qc-h#{$i} {
17
- @include header-font(h#{$i});
18
- max-inline-size: token-value(max-content-width);
19
- margin-top: token-value(spacer h#{$i} mt);
20
- margin-bottom: token-value(spacer h#{$i} mb);
5
+ @include heading($i);
21
6
  }
22
7
  }
23
8
 
@@ -46,33 +31,65 @@ p {
46
31
  max-inline-size: token-value(max-content-width);
47
32
  }
48
33
 
49
- img {
50
- border: none;
51
- vertical-align: middle;
52
- }
53
-
54
34
  a {
55
35
  color: token-value(color, link, text);
56
36
  &:visited {
57
37
  color: token-value(color, link, visited);
58
38
  }
59
- &:hover,&:focus {
39
+ &:hover {
60
40
  @include hover-link();
61
41
  }
42
+ &:focus, &:focus-visible {
43
+ @include focus-link();
44
+ }
62
45
  &:active {
63
46
  @include active-link();
64
47
  }
65
- /* to assure non breaking space inter last word and icon */
48
+ //DEPRECATED: use <qc-external-link> instead.
49
+ // to assure non breaking space inter last word and icon
66
50
  .qc-external-link-tail {
67
51
  white-space: nowrap;
68
52
  img {
69
53
  @include external-link-img();
70
- content:url(#{$img-dir}/external-link.svg?v={{pkg-version}});
54
+ content:getImageUrl(external-link);
71
55
  }
72
56
  }
57
+ .img-wrap {
58
+ white-space: nowrap;
59
+ }
60
+
73
61
 
74
62
  }
63
+ span.qc-ext-link-img {
64
+ @include external-link-img();
65
+ .img-wrap + & {
66
+ display: none;
67
+ }
68
+ }
75
69
 
76
70
  code, .qc-code {
77
71
  font-family: token-value(font, family, code);
78
72
  }
73
+
74
+ // pour les très petites résolutions, on ajoute des tirets aux mots.
75
+ @media (max-width: 320px) {
76
+ body {
77
+ overflow-wrap: break-word;
78
+ hyphens: auto;
79
+ }
80
+ }
81
+
82
+
83
+ .qc-font-size-sm {
84
+ @include content-font("sm");
85
+ }
86
+
87
+ .qc-font-size-lg {
88
+ @include content-font("lg");
89
+ }
90
+ .qc-font-size-xl {
91
+ @include content-font("xl");
92
+ }
93
+ .qc-font-size-md {
94
+ @include content-font("md");
95
+ }
@@ -1,18 +1,14 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
3
- @use "../modules/grid" as *;
1
+ @use "qc-sdg-lib" as *;
4
2
 
5
3
  .qc-general-alert {
6
- max-inline-size: token-value(max-content-width);
7
- padding: token-value(spacer, md) token-value(spacer, sm);
4
+ padding: token-value(spacer, md) 0;
8
5
 
9
6
  @include media-mobile() {
10
- padding: token-value(spacer, sm);
7
+ padding: token-value(spacer, sm) 0;
11
8
  }
12
9
 
13
10
  .qc-general-alert-elements {
14
11
  display: flex;
15
- padding: 0;
16
12
  }
17
13
 
18
14
  &.warning {
@@ -23,11 +19,6 @@
23
19
  background-color: token-value(color, blue, pale);
24
20
  }
25
21
 
26
- .qc-icon {
27
- min-width: token-value(spacer, md);
28
- height: token-value(spacer, md);
29
- }
30
-
31
22
  .qc-alert-content {
32
23
  @include content-font(md, semi-bold);
33
24
  margin: 0 token-value(spacer, md);
@@ -38,39 +29,25 @@
38
29
  }
39
30
  }
40
31
 
41
- .qc-alert-close {
42
- display: flex;
43
- align-items: center;
44
- @include media-mobile() {
45
- align-items: inherit;
46
- }
47
- }
48
-
49
- .qc-close {
50
- padding: 0;
51
- background-color: transparent;
52
- border: 0;
53
- display: inline-flex;
54
- justify-content: center;
55
-
56
- .qc-close-alert-icon {
57
- display: inline-block;
58
- min-width: token-value(spacer, sm);
59
- height: token-value(spacer, sm);
60
- vertical-align: middle;
61
- cursor: pointer;
32
+ button {
33
+ @include qc-formcontrol-box;
34
+ flex-shrink: 0;
35
+ &::before {
36
+ background: transparent;
62
37
  }
38
+ cursor: pointer;
63
39
  }
64
40
  }
65
41
 
66
42
  qc-alert {
43
+ display: block;
67
44
  [slot], &:not([slot=content]) {
68
45
  * {
69
46
  margin-bottom: 0;
70
47
  }
71
48
 
72
49
  a {
73
- color: token-value(color blue dark);
50
+ color: token-value(color blue piv);
74
51
  }
75
52
  }
76
53
  }
@@ -1,17 +1,33 @@
1
- @use "modules/tokens" as *;
2
- @use "modules/utils" as *;
3
- @use "modules/helpers" as *;
4
- @use "modules/grid" as *;
1
+ @use "qc-sdg-lib" as *;
5
2
 
6
- /* TODO voir si meilleure façon d'intégrer en scss... */
3
+ qc-icon {
4
+ display: inline-flex;
5
+ align-items: stretch;
6
+ }
7
+
8
+
9
+
10
+
11
+ // TODO retirer une fois toutes les icônes remplacées par Icon dans les composants
7
12
  .qc-icon {
8
13
  display: inline-block;
9
- content: "";
10
- background-repeat: no-repeat;
11
- background-position: center;
12
- background-size: 100% auto;
13
- min-width: 32px;
14
- height: 32px;
14
+ flex-shrink: 0;
15
+ width: var(--img-width);
16
+ height: var(--img-height);
17
+ // TODO questionner une échelle [0 - 10 ou 100]
18
+ @each $size-type, $size in (xs: 12, sm: 16, md: 20, nm: 24, lg: 28, xl: 32) {
19
+ &[data-img-size=#{$size-type}] {
20
+ height: rem($size);
21
+ width: rem($size);
22
+ }
23
+ }
24
+ background-color: var(--img-color);
25
+ @each $name, $url in $images {
26
+ &[data-img-type=#{$name}] {
27
+ mask: getImageUrl($name) no-repeat;
28
+ mask-size: 100% 100%;
29
+ }
30
+ }
15
31
 
16
32
  &.qc-icon-sm {
17
33
  min-width: 12px;
@@ -35,16 +51,16 @@
35
51
  &.qc-warning {
36
52
  background-image: getImageUrl(warning);
37
53
  }
38
-
54
+
39
55
  &.qc-arrow-up-white {
40
56
  background-image: getImageUrl(arrow-up-white);
41
57
  }
42
58
 
43
-
59
+
44
60
  &.qc-clipboard {
45
61
  background-image: getImageUrl(clipboard);
46
62
  }
47
-
63
+
48
64
  &.qc-error {
49
65
  background-image: getImageUrl(error);
50
66
  }
@@ -52,75 +68,75 @@
52
68
  &.qc-error-white {
53
69
  background-image: getImageUrl(error-white);
54
70
  }
55
-
71
+
56
72
  &.qc-information {
57
- background-image: getImageUrl(information);
73
+ background-image: getImageUrl(information);
58
74
  }
59
-
75
+
60
76
  &.qc-information-white {
61
- background-image: getImageUrl(information-white);
77
+ background-image: getImageUrl(information-white);
62
78
  }
63
-
79
+
64
80
  &.qc-minus {
65
- background-image: getImageUrl(minus);
81
+ background-image: getImageUrl(minus);
66
82
  }
67
-
83
+
68
84
  &.qc-plus {
69
- background-image: getImageUrl(plus);
85
+ background-image: getImageUrl(plus);
70
86
  }
71
-
87
+
72
88
  &.qc-question-mark {
73
- background-image: getImageUrl(question-mark);
89
+ background-image: getImageUrl(question-mark);
74
90
  }
75
-
91
+
76
92
  &.qc-success {
77
- background-image: getImageUrl(success);
93
+ background-image: getImageUrl(success);
78
94
  }
79
95
  &.qc-success-white {
80
- background-image: getImageUrl(success-white);
96
+ background-image: getImageUrl(success-white);
81
97
  }
82
-
98
+
83
99
  &.qc-xclose-white {
84
100
  width: 16px;
85
101
  height: 16px;
86
102
  min-width: 16px;
87
- background-image: getImageUrl(xclose-white);
103
+ background-image: getImageUrl(xclose-white);
88
104
  }
89
105
  &.qc-xclose-blue {
90
106
  width: 16px;
91
107
  height: 16px;
92
108
  min-width: 16px;
93
- background-image: getImageUrl(xclose-blue);
109
+ background-image: getImageUrl(xclose-blue);
94
110
  }
95
-
111
+
96
112
  &.qc-chevron-blue,
97
113
  &.qc-chevron-white {
98
114
  width: 16px;
99
115
  min-width: 16px;
100
116
  height: 10px;
101
117
  }
102
-
118
+
103
119
  &.qc-chevron-blue {
104
120
  background-image: getImageUrl(chevron-blue);
105
121
  }
106
-
122
+
107
123
  &.qc-chevron-white {
108
124
  background-image: getImageUrl(chevron-white);
109
125
  }
110
-
126
+
111
127
  &.qc-facebook {
112
128
  background-image: getImageUrl(facebook);
113
129
  }
114
-
130
+
115
131
  &.qc-linkedin {
116
132
  background-image: getImageUrl(linkedin);
117
133
  height: 30px;
118
134
  }
119
-
135
+
120
136
  &.qc-twitter {
121
137
  background-image: getImageUrl(twitter);
122
138
  }
123
-
139
+
124
140
  &.qc-youtube {
125
141
  background-image: getImageUrl(youtube);
126
142
  }
@@ -140,4 +156,17 @@
140
156
  background-image: getImageUrl(loupe-piv-fonce);
141
157
  }
142
158
 
143
- }
159
+ }
160
+
161
+ .qc-icon-button {
162
+ display: flex;
163
+ align-items: center;
164
+ justify-content: center;
165
+ flex-shrink: 0;
166
+ @each $size-type, $size in ( sm: 16, md: 20, nm: 24, lg: 32, xl: 40) {
167
+ &[data-button-size=#{$size-type}] {
168
+ height: rem($size);
169
+ width: rem($size);
170
+ }
171
+ }
172
+ }
@@ -1,6 +1,13 @@
1
- @use "../modules/tokens" as *;
2
- @use "../modules/utils" as *;
3
- @use "../modules/grid" as *;
1
+ @use "qc-sdg-lib" as *;
2
+
3
+ @mixin qc-notice-title() {
4
+ h1,h2,h3,h4,h5,h6,[role=heading] {
5
+ margin: 0;
6
+ padding: 0;
7
+ @include content-font(sm, bold);
8
+ font-family: token-value(font, family, content);
9
+ }
10
+ }
4
11
 
5
12
  .qc-notice {
6
13
  max-inline-size: token-value(max-content-width);
@@ -26,58 +33,58 @@
26
33
  width: 100%;
27
34
  }
28
35
 
29
- &.qc-information .icon-container {
30
- background-color: token-value(color,blue,pale);
31
- }
32
- &.qc-warning .icon-container {
33
- background-color: token-value(color,yellow,pale);
34
- }
35
- &.qc-success .icon-container {
36
- background-color: token-value(color,green,pale);
37
- }
36
+ @include qc-notice-title();
38
37
 
39
- &.qc-error .icon-container {
40
- background-color: token-value(color,pink,pale);
41
- }
38
+ //TODO Quelle est la marge entre le titre et le texte? Rien de spécifié dans le SDG.
42
39
 
43
40
 
44
- /*TODO Quelle est la marge entre le titre et le texte? Rien de spécifié dans le SDG. */
45
- .title {
46
- margin: 0;
47
- padding: 0;
48
- @include content-font(sm, bold);
49
- font-family: token-value(font, family, content);
50
- }
51
-
52
41
  .content {
53
42
  margin:
54
- token-value(spacer notice my)
55
- token-value(spacer notice mx)
56
- token-value(spacer notice my)
43
+ token-value(spacer md)
44
+ token-value(spacer md)
45
+ token-value(spacer md)
57
46
  token-value(spacer, sm);
47
+ }
58
48
 
59
- .text {
60
- ::slotted(ul) {
61
- padding-left: token-value(spacer, sm) !important;
62
- margin-top: token-value(spacer, sm) !important;
49
+ @each $type, $color in (
50
+ "information": "blue",
51
+ "warning": "yellow",
52
+ "neutral": "grey",
53
+ "error": "red",
54
+ "success": "green",
55
+ ) {
56
+ &.qc-#{$type} .icon-container {
57
+ background-color: token-value(color,$color,pale);
58
+ [role=img] {
59
+ background-color: token-value(color,$color,dark);
60
+
61
+ &[data-img-type=success], &[data-img-type=error] {
62
+ background-color: token-value(color,$color,regular);
63
+ }
63
64
  }
64
65
  }
65
66
  }
66
67
  }
67
68
 
68
- /* Links in a error notice (eg. error summary) */
69
- qc-notice[type="error"] ul li a {
70
- color: token-value(color,red,regular);
71
- &:hover, &:focus {
72
- text-decoration: none;
73
- }
74
- }
75
-
76
-
77
- @include media-mobile(){
78
- .qc-notice {
79
- .content {
80
- margin-right: token-value(spacer notice my);
69
+ // Links in a error notice (eg. error summary)
70
+ qc-notice {
71
+ display: block;
72
+ @include qc-notice-title();
73
+ ul {
74
+ padding-left: token-value(spacer, sm) !important;
75
+ //margin-top: token-value(spacer, sm) !important;
76
+ }
77
+ &[type="error"] ul li {
78
+ &::marker {
79
+ color:token-value(color text primary);
80
+ }
81
+ color: token-value(color, red, regular);
82
+ a {
83
+ color: inherit;
84
+ &:hover, &:focus {
85
+ text-decoration: none;
86
+ }
81
87
  }
82
88
  }
83
- }
89
+
90
+ }