@undrr/undrr-mangrove 1.8.2 → 2.0.0-alpha.2
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/components/BookCard.js +2 -2
- package/components/BookCard.js.LICENSE.txt +1 -1
- package/components/Breadcrumbs.js +3 -2
- package/components/Checkbox.js +3 -2
- package/components/Chips.js +3 -2
- package/components/CtaButton.js +3 -2
- package/components/EmbedContainer.js +3 -2
- package/components/Footer.js +2 -2
- package/components/Footer.js.LICENSE.txt +1 -1
- package/components/FormAction.js +6 -0
- package/components/FormAction.js.LICENSE.txt +9 -0
- package/components/FormErrorSummary.js +3 -2
- package/components/FormGroup.js +3 -2
- package/components/FullWidth.js +3 -2
- package/components/Gallery.js +2 -2
- package/components/Gallery.js.LICENSE.txt +1 -1
- package/components/Hero.js +2 -2
- package/components/Hero.js.LICENSE.txt +1 -1
- package/components/HighlightBox.js +3 -2
- package/components/HorizontalBookCard.js +2 -2
- package/components/HorizontalBookCard.js.LICENSE.txt +1 -1
- package/components/HorizontalCard.js +2 -2
- package/components/HorizontalCard.js.LICENSE.txt +1 -1
- package/components/IconCard.js +2 -2
- package/components/IconCard.js.LICENSE.txt +1 -1
- package/components/Loader.js +3 -2
- package/components/MegaMenu.js +2 -2
- package/components/MegaMenu.js.LICENSE.txt +1 -1
- package/components/PageHeader.js +3 -2
- package/components/Pager.js +2 -2
- package/components/Pager.js.LICENSE.txt +1 -1
- package/components/QuoteHighlight.js +3 -2
- package/components/Radio.js +3 -2
- package/components/ScrollContainer.js +3 -2
- package/components/Select.js +3 -2
- package/components/ShareButtons.js +2 -2
- package/components/ShareButtons.js.LICENSE.txt +1 -1
- package/components/ShowMore.js +3 -2
- package/components/StatsCard.js +2 -2
- package/components/StatsCard.js.LICENSE.txt +10 -0
- package/components/SyndicationSearchWidget.js +2 -2
- package/components/SyndicationSearchWidget.js.LICENSE.txt +1 -1
- package/components/Tab.js +3 -2
- package/components/TextCta.js +2 -2
- package/components/TextCta.js.LICENSE.txt +10 -0
- package/components/TextInput.js +3 -2
- package/components/Textarea.js +3 -2
- package/components/UserFeedback.js +6 -0
- package/components/UserFeedback.js.LICENSE.txt +9 -0
- package/components/VerticalCard.js +2 -2
- package/components/VerticalCard.js.LICENSE.txt +1 -1
- package/components/hydrate.js +1 -1
- package/css/style-all.css +422 -0
- package/css/style-all.css.map +1 -0
- package/css/style-delta.css +122 -171
- package/css/style-delta.css.map +1 -1
- package/css/style-gutenberg.css +55 -89
- package/css/style-gutenberg.css.map +1 -1
- package/css/style-irp.css +122 -161
- package/css/style-irp.css.map +1 -1
- package/css/style-mcr.css +122 -161
- package/css/style-mcr.css.map +1 -1
- package/css/style-preventionweb.css +122 -161
- package/css/style-preventionweb.css.map +1 -1
- package/css/style.css +121 -154
- package/css/style.css.map +1 -1
- package/package.json +2 -2
- package/scss/Atom/BaseTypography/Abbr/abbr.scss +1 -1
- package/scss/Atom/BaseTypography/Code/code.scss +41 -36
- package/scss/Atom/BaseTypography/Mark/mark.scss +2 -2
- package/scss/Atom/Images/AuthorImage/author-image.scss +8 -8
- package/scss/Atom/Images/ImageCaptionCredit/image-caption-credit.scss +9 -9
- package/scss/Atom/Layout/Container/container.scss +2 -4
- package/scss/Atom/Layout/Grid/grid.scss +15 -15
- package/scss/Atom/Navigation/MenuItems/menu-items.scss +10 -3
- package/scss/Atom/ReachElement/Details/details.scss +44 -39
- package/scss/Atom/Table/table.scss +22 -10
- package/scss/Atom/Tag/tag.scss +32 -32
- package/scss/Components/Boilerplate/boilerplate.scss +7 -7
- package/scss/Components/Breadcrumbs/breadcrumbs.scss +9 -9
- package/scss/Components/Buttons/Chips/chips.scss +63 -23
- package/scss/Components/Buttons/CtaButton/cta-button.scss +142 -20
- package/scss/Components/Buttons/ShareButtons/share-buttons.scss +16 -16
- package/scss/Components/Cards/Card/card.scss +77 -50
- package/scss/Components/Cards/StatsCard/stats-card.scss +32 -34
- package/scss/Components/CookieConsentBanner/cookie-consent-banner.scss +75 -74
- package/scss/Components/ErrorPages/error-pages.scss +9 -9
- package/scss/Components/Footer/footer.scss +12 -12
- package/scss/Components/Forms/FormAction/form-action.scss +50 -0
- package/scss/Components/Forms/FormGroup/form-group.scss +18 -7
- package/scss/Components/Forms/Select/select.scss +1 -1
- package/scss/Components/Forms/TextInput/text-input.scss +1 -1
- package/scss/Components/Forms/_form-base.scss +68 -61
- package/scss/Components/Gallery/gallery.scss +71 -70
- package/scss/Components/Hero/hero.scss +241 -74
- package/scss/Components/HighlightBox/highlight-box.scss +3 -3
- package/scss/Components/MegaMenu/mega-menu.scss +73 -76
- package/scss/Components/OnThisPageNav/on-this-page-nav.scss +36 -37
- package/scss/Components/PageHeader/page-header.scss +7 -7
- package/scss/Components/Pager/pager.scss +85 -62
- package/scss/Components/PreviewAccess/preview-access.scss +35 -35
- package/scss/Components/QuoteHighlight/quote-highlight.scss +32 -32
- package/scss/Components/ScrollContainer/scroll-container.scss +52 -32
- package/scss/Components/Snackbar/snackbar.scss +24 -31
- package/scss/Components/SyndicationSearchWidget/syndication-search-widget.scss +147 -139
- package/scss/Components/Tab/tab.scss +215 -34
- package/scss/Components/TableOfContents/table-of-contents.scss +6 -6
- package/scss/Components/TextCta/text-cta.scss +69 -23
- package/scss/Components/UserFeedback/user-feedback.scss +69 -0
- package/scss/Molecules/ImageCaption/image-caption.scss +16 -16
- package/scss/Molecules/SectionHeader/section-header.scss +1 -1
- package/scss/Utilities/FullWidth/full-width.scss +1 -1
- package/scss/Utilities/Loader/loader.scss +4 -4
- package/scss/assets/scss/_components.scss +3 -2
- package/scss/assets/scss/_foundational.scss +44 -26
- package/scss/assets/scss/_mixins.scss +34 -1
- package/scss/assets/scss/_theme-delta.scss +68 -0
- package/scss/assets/scss/_theme-irp.scss +39 -0
- package/scss/assets/scss/_theme-mcr.scss +56 -0
- package/scss/assets/scss/_theme-preventionweb.scss +37 -0
- package/scss/assets/scss/_utility.scss +112 -112
- package/scss/assets/scss/_variables.scss +358 -354
- package/scss/assets/scss/style-all.scss +19 -0
- package/scss/assets/scss/style-delta.scss +1 -1
- package/scss/assets/scss/style-irp.scss +1 -1
- package/scss/assets/scss/style-mcr.scss +1 -1
- package/scss/assets/scss/style-preventionweb.scss +1 -1
- package/css/style-irp-legacy.css +0 -476
- package/css/style-irp-legacy.css.map +0 -1
- package/css/style-legacy.css +0 -469
- package/css/style-legacy.css.map +0 -1
- package/css/style-mcr-legacy.css +0 -476
- package/css/style-mcr-legacy.css.map +0 -1
- package/css/style-preventionweb-legacy.css +0 -476
- package/css/style-preventionweb-legacy.css.map +0 -1
- package/scss/Components/Forms/_form-legacy.scss +0 -152
- package/scss/Components/Pagination/pagination.scss +0 -112
- package/scss/assets/scss/_variables-delta.scss +0 -110
- package/scss/assets/scss/_variables-irp.scss +0 -50
- package/scss/assets/scss/_variables-mcr.scss +0 -65
- package/scss/assets/scss/_variables-preventionweb.scss +0 -48
- package/scss/assets/scss/style-irp-legacy.scss +0 -20
- package/scss/assets/scss/style-legacy.scss +0 -20
- package/scss/assets/scss/style-mcr-legacy.scss +0 -20
- package/scss/assets/scss/style-preventionweb-legacy.scss +0 -20
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/* image caption start */
|
|
2
2
|
.mg-image-caption {
|
|
3
|
-
border-bottom: 2px solid
|
|
3
|
+
border-bottom: 2px solid rgb(var(--mg-color-black));
|
|
4
4
|
|
|
5
5
|
@include devicebreak(medium) {
|
|
6
6
|
display: flex;
|
|
7
7
|
justify-content: space-between;
|
|
8
|
-
padding-bottom:
|
|
8
|
+
padding-bottom: var(--mg-spacing-150);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
p {
|
|
12
|
-
color:
|
|
12
|
+
color: rgb(var(--mg-color-neutral-600));
|
|
13
13
|
font-size: $mg-font-size-200;
|
|
14
|
-
margin-bottom:
|
|
14
|
+
margin-bottom: var(--mg-spacing-50);
|
|
15
15
|
|
|
16
16
|
@include devicebreak(medium) {
|
|
17
17
|
border: 0;
|
|
@@ -20,20 +20,20 @@
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
+ .mg-credits {
|
|
23
|
-
border-top: 1px solid
|
|
23
|
+
border-top: 1px solid rgb(var(--mg-color-neutral-500));
|
|
24
24
|
display: flex;
|
|
25
25
|
flex-shrink: 0;
|
|
26
26
|
flex-wrap: wrap;
|
|
27
|
-
margin-bottom:
|
|
28
|
-
padding-top:
|
|
27
|
+
margin-bottom: var(--mg-spacing-50);
|
|
28
|
+
padding-top: var(--mg-spacing-50);
|
|
29
29
|
|
|
30
30
|
@include devicebreak(medium) {
|
|
31
|
-
border-left: 1px solid
|
|
31
|
+
border-left: 1px solid rgb(var(--mg-color-neutral-500));
|
|
32
32
|
border-top: 0;
|
|
33
33
|
display: block;
|
|
34
34
|
margin-bottom: 0;
|
|
35
|
-
margin-left:
|
|
36
|
-
padding-left:
|
|
35
|
+
margin-left: var(--mg-spacing-150);
|
|
36
|
+
padding-left: var(--mg-spacing-150);
|
|
37
37
|
padding-top: 0;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
.mg-credits {
|
|
43
43
|
display: flex;
|
|
44
|
-
margin-bottom:
|
|
44
|
+
margin-bottom: var(--mg-spacing-50);
|
|
45
45
|
|
|
46
46
|
@include devicebreak(medium) {
|
|
47
47
|
border-top: 0;
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
strong {
|
|
54
|
-
margin-left:
|
|
54
|
+
margin-left: var(--mg-spacing-25);
|
|
55
55
|
|
|
56
56
|
@include devicebreak(medium) {
|
|
57
57
|
margin-left: 0;
|
|
@@ -69,11 +69,11 @@
|
|
|
69
69
|
|
|
70
70
|
+ .mg-credits {
|
|
71
71
|
@include devicebreak(medium) {
|
|
72
|
-
border-right: 1px solid
|
|
72
|
+
border-right: 1px solid rgb(var(--mg-color-neutral-500));
|
|
73
73
|
border-top: 0;
|
|
74
74
|
display: block;
|
|
75
|
-
margin-right:
|
|
76
|
-
padding-right:
|
|
75
|
+
margin-right: var(--mg-spacing-150);
|
|
76
|
+
padding-right: var(--mg-spacing-150);
|
|
77
77
|
padding-top: 0;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
strong {
|
|
90
|
-
margin-right:
|
|
90
|
+
margin-right: var(--mg-spacing-25);
|
|
91
91
|
|
|
92
92
|
@include devicebreak(medium) {
|
|
93
93
|
margin-right: 0;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
position: absolute;
|
|
16
16
|
top: 0;
|
|
17
17
|
width: 100vw;
|
|
18
|
-
z-index:
|
|
18
|
+
z-index: var(--mg-z-index-behind); // pseudo-element background sits behind sibling content
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
[dir="rtl"] .mg-container-full-width::before {
|
|
@@ -14,15 +14,15 @@
|
|
|
14
14
|
.mg-loader {
|
|
15
15
|
@include animation(loader-animation 2s linear infinite);
|
|
16
16
|
|
|
17
|
-
border: 8px solid
|
|
17
|
+
border: 8px solid rgb(var(--mg-color-blue-600));
|
|
18
18
|
border-radius: 50%;
|
|
19
|
-
border-top: 8px solid
|
|
19
|
+
border-top: 8px solid rgb(var(--mg-color-neutral-300));
|
|
20
20
|
height: 40px;
|
|
21
21
|
width: 40px;
|
|
22
22
|
|
|
23
23
|
@include devicebreak(medium) {
|
|
24
|
-
border: 14px solid
|
|
25
|
-
border-top: 14px solid
|
|
24
|
+
border: 14px solid rgb(var(--mg-color-blue-600));
|
|
25
|
+
border-top: 14px solid rgb(var(--mg-color-neutral-300));
|
|
26
26
|
height: 96px;
|
|
27
27
|
width: 96px;
|
|
28
28
|
}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
// Components
|
|
36
36
|
@import "../../Components/Boilerplate/boilerplate";
|
|
37
37
|
@import "../../Components/Forms/form-base";
|
|
38
|
-
@import "../../Components/Forms/form-
|
|
38
|
+
@import "../../Components/Forms/FormAction/form-action";
|
|
39
39
|
@import "../../Components/Forms/FormGroup/form-group";
|
|
40
40
|
@import "../../Components/Forms/TextInput/text-input";
|
|
41
41
|
@import "../../Components/Forms/Textarea/textarea";
|
|
@@ -45,7 +45,6 @@
|
|
|
45
45
|
@import "../../Components/Breadcrumbs/breadcrumbs";
|
|
46
46
|
|
|
47
47
|
// Deprecated (February 2026) — removal planned by end of 2026. Use Pager instead.
|
|
48
|
-
// @import "../../Components/Pagination/pagination";
|
|
49
48
|
@import "../../Components/Pager/pager";
|
|
50
49
|
@import "../../Components/Gallery/gallery";
|
|
51
50
|
@import "../../Components/HighlightBox/highlight-box";
|
|
@@ -58,10 +57,12 @@
|
|
|
58
57
|
@import "../../Components/Cards/Card/card";
|
|
59
58
|
@import "../../Components/Cards/StatsCard/stats-card";
|
|
60
59
|
@import "../../Components/Snackbar/snackbar";
|
|
60
|
+
@import "../../Components/CookieConsentBanner/cookie-consent-banner";
|
|
61
61
|
@import "../../Components/Hero/hero";
|
|
62
62
|
@import "../../Components/TextCta/text-cta";
|
|
63
63
|
@import "../../Components/ScrollContainer/scroll-container";
|
|
64
64
|
@import "../../Components/Tab/tab";
|
|
65
|
+
@import "../../Components/UserFeedback/user-feedback";
|
|
65
66
|
|
|
66
67
|
// CSS+vanilla-JS component — Drupal integration via Gutenberg block, not a React export.
|
|
67
68
|
@import "../../Components/TableOfContents/table-of-contents";
|
|
@@ -7,18 +7,15 @@
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
html {
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
// browser default (or user-configured) root font-size is respected.
|
|
13
|
-
@if $mg-html-font-size != 16 {
|
|
14
|
-
font-size: $mg-html-font-size * 1px;
|
|
15
|
-
}
|
|
16
|
-
|
|
10
|
+
// No root font-size override: Mangrove uses the browser-standard 16px root
|
|
11
|
+
// (or the user's configured default). The legacy 10px root was removed in 2.0.
|
|
17
12
|
-webkit-tap-highlight-color: transparent;
|
|
13
|
+
-webkit-font-smoothing: antialiased;
|
|
14
|
+
-moz-osx-font-smoothing: grayscale;
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
body {
|
|
21
|
-
color:
|
|
18
|
+
color: rgb(var(--mg-color-text));
|
|
22
19
|
font-family: $mg-font-family;
|
|
23
20
|
font-size: $mg-font-size-300;
|
|
24
21
|
line-height: $mg-font-line-height-700;
|
|
@@ -35,8 +32,9 @@ h4,
|
|
|
35
32
|
h5,
|
|
36
33
|
h6,
|
|
37
34
|
caption {
|
|
38
|
-
margin:
|
|
39
|
-
padding:
|
|
35
|
+
margin: var(--mg-spacing-100) var(--mg-spacing-0);
|
|
36
|
+
padding: var(--mg-spacing-0);
|
|
37
|
+
text-wrap: balance;
|
|
40
38
|
}
|
|
41
39
|
|
|
42
40
|
// h1-h6 inherit Roboto from body. Roboto Condensed is reserved for compact UI
|
|
@@ -49,7 +47,6 @@ h1 {
|
|
|
49
47
|
font-size: $mg-font-size-600;
|
|
50
48
|
letter-spacing: 0.02em;
|
|
51
49
|
line-height: 1.08;
|
|
52
|
-
text-wrap: balance;
|
|
53
50
|
font-weight: 700;
|
|
54
51
|
}
|
|
55
52
|
|
|
@@ -85,38 +82,38 @@ p {
|
|
|
85
82
|
|
|
86
83
|
ul,
|
|
87
84
|
ol {
|
|
88
|
-
margin: 0 0
|
|
89
|
-
padding-left:
|
|
85
|
+
margin: 0 0 var(--mg-spacing-100);
|
|
86
|
+
padding-left: var(--mg-spacing-200);
|
|
90
87
|
list-style-position: outside;
|
|
91
88
|
|
|
92
89
|
li {
|
|
93
|
-
margin-bottom:
|
|
94
|
-
padding-left:
|
|
90
|
+
margin-bottom: var(--mg-spacing-0);
|
|
91
|
+
padding-left: var(--mg-spacing-0);
|
|
95
92
|
}
|
|
96
93
|
}
|
|
97
94
|
|
|
98
95
|
dl {
|
|
99
96
|
line-height: 1.37;
|
|
100
|
-
margin:
|
|
97
|
+
margin: var(--mg-spacing-0);
|
|
101
98
|
}
|
|
102
99
|
|
|
103
100
|
dt {
|
|
104
101
|
font-weight: 600;
|
|
105
|
-
margin-bottom:
|
|
102
|
+
margin-bottom: var(--mg-spacing-25);
|
|
106
103
|
}
|
|
107
104
|
|
|
108
105
|
dd {
|
|
109
|
-
margin-bottom:
|
|
110
|
-
margin-inline-start:
|
|
106
|
+
margin-bottom: var(--mg-spacing-50);
|
|
107
|
+
margin-inline-start: var(--mg-spacing-200);
|
|
111
108
|
|
|
112
109
|
@include devicebreak(medium) {
|
|
113
|
-
margin-bottom:
|
|
114
|
-
margin-inline-start:
|
|
110
|
+
margin-bottom: var(--mg-spacing-100);
|
|
111
|
+
margin-inline-start: var(--mg-spacing-300);
|
|
115
112
|
}
|
|
116
113
|
}
|
|
117
114
|
|
|
118
115
|
dd + dt {
|
|
119
|
-
margin-block-start:
|
|
116
|
+
margin-block-start: var(--mg-spacing-100);
|
|
120
117
|
}
|
|
121
118
|
|
|
122
119
|
header {
|
|
@@ -125,8 +122,8 @@ header {
|
|
|
125
122
|
|
|
126
123
|
hr {
|
|
127
124
|
border: 0;
|
|
128
|
-
border-block-start: 2px solid
|
|
129
|
-
margin-block:
|
|
125
|
+
border-block-start: 2px solid rgb(var(--mg-color-neutral-400)); // #808080 — 3.95:1 on white (non-text contrast)
|
|
126
|
+
margin-block: var(--mg-spacing-200);
|
|
130
127
|
}
|
|
131
128
|
|
|
132
129
|
img {
|
|
@@ -135,13 +132,34 @@ img {
|
|
|
135
132
|
}
|
|
136
133
|
|
|
137
134
|
a {
|
|
138
|
-
color:
|
|
135
|
+
color: rgb(var(--mg-color-interactive));
|
|
139
136
|
text-decoration: none;
|
|
140
137
|
|
|
138
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
139
|
+
transition: color 150ms ease;
|
|
140
|
+
}
|
|
141
|
+
|
|
141
142
|
&:hover {
|
|
142
|
-
color:
|
|
143
|
+
color: rgb(var(--mg-color-interactive-active));
|
|
143
144
|
text-decoration: underline;
|
|
144
145
|
}
|
|
146
|
+
|
|
147
|
+
&:focus-visible {
|
|
148
|
+
@include mg-focus-ring;
|
|
149
|
+
|
|
150
|
+
text-decoration: underline;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@media (prefers-reduced-motion: reduce) {
|
|
155
|
+
*,
|
|
156
|
+
*::before,
|
|
157
|
+
*::after {
|
|
158
|
+
animation-duration: 0.01ms !important;
|
|
159
|
+
animation-iteration-count: 1 !important;
|
|
160
|
+
scroll-behavior: auto !important;
|
|
161
|
+
transition-duration: 0.01ms !important;
|
|
162
|
+
}
|
|
145
163
|
}
|
|
146
164
|
|
|
147
165
|
[dir="rtl"] {
|
|
@@ -65,6 +65,39 @@
|
|
|
65
65
|
background: linear-gradient($direction, $list);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
// Focus ring — token-driven, theme-adaptive visible focus for keyboard users.
|
|
69
|
+
// Emits a consistent WCAG 2.2 AA focus indicator wherever an interactive
|
|
70
|
+
// element needs one. The ring colour follows `--mg-color-interactive`, so it
|
|
71
|
+
// adapts per theme automatically. On links, pair with an explicit
|
|
72
|
+
// `text-decoration: underline` so the affordance is not colour-only.
|
|
73
|
+
@mixin mg-focus-ring {
|
|
74
|
+
border-radius: var(--mg-focus-ring-radius);
|
|
75
|
+
outline: var(--mg-focus-ring-width) solid rgb(var(--mg-color-focus-ring));
|
|
76
|
+
outline-offset: var(--mg-focus-ring-offset);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Card image hover zoom — a subtle, modern "state affordance". Include inside
|
|
80
|
+
// a card variant whose visual has `overflow: hidden` so the scale stays framed.
|
|
81
|
+
// Motion is gated behind prefers-reduced-motion so it never animates for users
|
|
82
|
+
// who opt out.
|
|
83
|
+
@mixin mg-card-image-zoom {
|
|
84
|
+
.mg-card__image {
|
|
85
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
86
|
+
transition:
|
|
87
|
+
opacity var(--mg-motion-duration-medium) var(--mg-motion-easing-standard),
|
|
88
|
+
transform var(--mg-motion-duration-medium) var(--mg-motion-easing-standard);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&:hover .mg-card__image {
|
|
93
|
+
opacity: 0.78;
|
|
94
|
+
|
|
95
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
96
|
+
transform: scale(1.04);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
68
101
|
/* mixing end */
|
|
69
102
|
|
|
70
103
|
/* placeholder start */
|
|
@@ -94,7 +127,7 @@
|
|
|
94
127
|
}
|
|
95
128
|
|
|
96
129
|
%border-bottom {
|
|
97
|
-
border-bottom: 1px solid
|
|
130
|
+
border-bottom: 1px solid rgb(var(--mg-color-neutral-400));
|
|
98
131
|
}
|
|
99
132
|
|
|
100
133
|
%img-cover {
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Delta Resilience theme — runtime CSS custom property overrides.
|
|
2
|
+
// Applied when .mg-theme-delta is present on <body> or a wrapping element.
|
|
3
|
+
$_delta-color-primary--raw: 19 46 72;
|
|
4
|
+
$_delta-color-primary-800--raw: 12 30 48;
|
|
5
|
+
$_delta-color-dark--raw: 24 24 35;
|
|
6
|
+
$_delta-color-card-bg--raw: 250 250 250;
|
|
7
|
+
|
|
8
|
+
.mg-theme-delta {
|
|
9
|
+
// Runtime marker: lets JS/tooling detect that this brand theme is active
|
|
10
|
+
// (guards the sub-brand body-class trap). See docs/RELEASE-2.0.md.
|
|
11
|
+
--mg-theme-loaded: delta;
|
|
12
|
+
--mg-color-interactive: #{$_delta-color-primary--raw};
|
|
13
|
+
--mg-color-interactive-active: #{$_delta-color-primary--raw};
|
|
14
|
+
--mg-color-tag: var(--mg-color-interactive);
|
|
15
|
+
--mg-color-tag--hover: var(--mg-color-interactive-active);
|
|
16
|
+
--mg-radius-tag: var(--mg-spacing-50);
|
|
17
|
+
--mg-color-button: #{$_delta-color-primary--raw};
|
|
18
|
+
--mg-color-button--hover: #{$_delta-color-primary-800--raw};
|
|
19
|
+
--mg-color-button-background: transparent;
|
|
20
|
+
--mg-color-button-background--hover: rgb(#{$_delta-color-primary--raw} / 0.06);
|
|
21
|
+
--mg-color-button-secondary-background: transparent;
|
|
22
|
+
--mg-color-button-secondary-background--hover: rgb(#{$_delta-color-primary--raw} / 0.06);
|
|
23
|
+
--mg-color-button-outline-primary: #{$_delta-color-primary--raw};
|
|
24
|
+
--mg-color-button-outline-primary--hover: #{$_delta-color-primary-800--raw};
|
|
25
|
+
--mg-color-button-outline-secondary: #{$_delta-color-primary--raw};
|
|
26
|
+
--mg-color-button-outline-secondary--hover: #{$_delta-color-primary-800--raw};
|
|
27
|
+
--mg-color-text-button: #{$_delta-color-primary--raw};
|
|
28
|
+
--mg-border-color-button: #{$_delta-color-primary--raw};
|
|
29
|
+
--mg-radius-button: var(--mg-spacing-50);
|
|
30
|
+
--mg-border-width-button: 1px;
|
|
31
|
+
--mg-padding-button: var(--mg-spacing-100) var(--mg-spacing-200);
|
|
32
|
+
--mg-font-size-button: #{$mg-font-size-250};
|
|
33
|
+
--mg-card-background: rgb(#{$_delta-color-card-bg--raw});
|
|
34
|
+
--mg-card-padding: var(--mg-spacing-150);
|
|
35
|
+
--mg-card-border-radius: var(--mg-spacing-50);
|
|
36
|
+
--mg-card-icon-badge-radius: 15%;
|
|
37
|
+
--mg-color-form-check: var(--mg-color-interactive);
|
|
38
|
+
--mg-color-form-check--hover: var(--mg-color-interactive-active);
|
|
39
|
+
--mg-color-form-check--checked: var(--mg-color-interactive);
|
|
40
|
+
--mg-color-form-focus: var(--mg-color-interactive);
|
|
41
|
+
--mg-radius-form-input: var(--mg-spacing-50);
|
|
42
|
+
--mg-color-mega-content-bg: var(--mg-color-white);
|
|
43
|
+
--mg-color-hero: #{$_delta-color-primary--raw};
|
|
44
|
+
--mg-opacity-hero: 1;
|
|
45
|
+
--mg-hero-overlay-max-width: var(--mg-width-600);
|
|
46
|
+
--mg-hero-overlay-padding: var(--mg-spacing-400);
|
|
47
|
+
--mg-color-hero-title: oklch(68.5% 0.169 237.323);
|
|
48
|
+
--mg-color-hero--tertiary: rgb(#{$_delta-color-dark--raw});
|
|
49
|
+
--mg-color-hero-button-secondary-background: rgb(#{$_delta-color-primary--raw});
|
|
50
|
+
--mg-color-hero-button-secondary-color: var(--mg-color-white);
|
|
51
|
+
--mg-border-color-hero-button-secondary: var(--mg-color-white);
|
|
52
|
+
--mg-spacing-hero-overlay: #{mg-rem(20)} 0;
|
|
53
|
+
--mg-color-tabbar-background: none;
|
|
54
|
+
--mg-color-tab-background: rgb(#{$_delta-color-primary--raw});
|
|
55
|
+
--mg-color-tab-background--inactive: var(--mg-color-white);
|
|
56
|
+
--mg-color-tab-border: var(--mg-color-blue-200);
|
|
57
|
+
--mg-color-tab-border--hover: rgb(#{$_delta-color-primary-800--raw});
|
|
58
|
+
--mg-color-tab-border--active: var(--mg-color-blue-200);
|
|
59
|
+
--mg-color-tab-background--hover: rgb(#{$_delta-color-primary--raw} / 0.7);
|
|
60
|
+
--mg-radius-tab: var(--mg-spacing-50) var(--mg-spacing-50) 0 0;
|
|
61
|
+
--mg-padding-tab: var(--mg-spacing-150) var(--mg-spacing-200);
|
|
62
|
+
--mg-color-text-tab: var(--mg-color-neutral-700);
|
|
63
|
+
--mg-color-text-tab--hover: var(--mg-color-white);
|
|
64
|
+
--mg-color-text-tab-active: var(--mg-color-white);
|
|
65
|
+
--mg-padding-tab-section: var(--mg-spacing-300);
|
|
66
|
+
--mg-radius-tab-section: var(--mg-spacing-50);
|
|
67
|
+
--mg-box-shadow-tab-section: none;
|
|
68
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// IRP theme — runtime CSS custom property overrides.
|
|
2
|
+
// Applied when .mg-theme-irp is present on <body> or a wrapping element.
|
|
3
|
+
$_irp-color-primary--raw: 15 120 191;
|
|
4
|
+
$_irp-color-green--raw: 140 198 63;
|
|
5
|
+
|
|
6
|
+
.mg-theme-irp {
|
|
7
|
+
// Runtime marker: lets JS/tooling detect that this brand theme is active
|
|
8
|
+
// (guards the sub-brand body-class trap). See docs/RELEASE-2.0.md.
|
|
9
|
+
--mg-theme-loaded: irp;
|
|
10
|
+
--mg-color-interactive: #{$_irp-color-primary--raw};
|
|
11
|
+
--mg-color-interactive-active: #{$_irp-color-primary--raw};
|
|
12
|
+
--mg-color-tag: var(--mg-color-interactive);
|
|
13
|
+
--mg-color-tag--hover: var(--mg-color-interactive-active);
|
|
14
|
+
--mg-radius-tag: var(--mg-spacing-50);
|
|
15
|
+
--mg-color-button-background: #{$_irp-color-primary--raw};
|
|
16
|
+
--mg-color-button-background--hover: var(--mg-color-orange-900);
|
|
17
|
+
--mg-color-button-outline-primary: #{$_irp-color-primary--raw};
|
|
18
|
+
--mg-color-button-outline-primary--hover: var(--mg-color-orange-900);
|
|
19
|
+
--mg-color-button-outline-secondary: var(--mg-color-button-secondary-background);
|
|
20
|
+
--mg-color-button-outline-secondary--hover: var(--mg-color-button-secondary-background--hover);
|
|
21
|
+
--mg-radius-button: var(--mg-spacing-50);
|
|
22
|
+
--mg-color-form-check: var(--mg-color-interactive);
|
|
23
|
+
--mg-color-form-check--hover: var(--mg-color-interactive-active);
|
|
24
|
+
--mg-color-form-check--checked: var(--mg-color-interactive);
|
|
25
|
+
--mg-color-form-focus: var(--mg-color-interactive);
|
|
26
|
+
--mg-radius-form-input: var(--mg-spacing-50);
|
|
27
|
+
--mg-color-hero: var(--mg-color-interactive);
|
|
28
|
+
--mg-spacing-hero-overlay: #{mg-rem(20)} 0;
|
|
29
|
+
--mg-color-tabbar-background: rgb(#{$_irp-color-green--raw} / 0.1);
|
|
30
|
+
--mg-color-text-tab: var(--mg-color-neutral-500);
|
|
31
|
+
--mg-color-text-tab-active: var(--mg-color-neutral-700);
|
|
32
|
+
--mg-color-tab-background: rgb(#{$_irp-color-green--raw} / 0.3);
|
|
33
|
+
--mg-color-tab-background--inactive: var(--mg-color-tabbar-background);
|
|
34
|
+
--mg-color-tab-background--hover: rgb(#{$_irp-color-green--raw});
|
|
35
|
+
--mg-radius-tab: var(--mg-spacing-0) var(--mg-spacing-0) 0 0;
|
|
36
|
+
--mg-color-tab-border: var(--mg-color-neutral-300);
|
|
37
|
+
--mg-color-tab-border--hover: rgb(#{$_irp-color-green--raw} / 0.1);
|
|
38
|
+
--mg-color-tab-border--active: rgb(#{$_irp-color-green--raw} / 0.1);
|
|
39
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// MCR theme — runtime CSS custom property overrides.
|
|
2
|
+
// Applied when .mg-theme-mcr is present on <body> or a wrapping element.
|
|
3
|
+
// As v2.0 migration progresses, sections move from _variables-mcr.scss into here.
|
|
4
|
+
// When _variables-mcr.scss contains only comments, delete it.
|
|
5
|
+
|
|
6
|
+
// MCR brand palette (local to this file — not emitted as global :root properties)
|
|
7
|
+
$_mcr-purple--raw: 89 26 97;
|
|
8
|
+
$_mcr-purple-800--raw: 110 38 119;
|
|
9
|
+
$_mcr-purple-200--raw: 222 208 215;
|
|
10
|
+
|
|
11
|
+
.mg-theme-mcr {
|
|
12
|
+
// Runtime marker: lets JS/tooling detect that this brand theme is active
|
|
13
|
+
// (guards the sub-brand body-class trap). See docs/RELEASE-2.0.md.
|
|
14
|
+
--mg-theme-loaded: mcr;
|
|
15
|
+
|
|
16
|
+
// Tab overrides (migrated from _variables-mcr.scss)
|
|
17
|
+
--mg-color-tabbar-background: none;
|
|
18
|
+
--mg-color-tab-background: rgb(#{$_mcr-purple-800--raw});
|
|
19
|
+
--mg-color-tab-background--inactive: rgb(var(--mg-color-neutral-0));
|
|
20
|
+
--mg-color-tab-border: rgb(#{$_mcr-purple-200--raw});
|
|
21
|
+
--mg-color-tab-border--hover: rgb(#{$_mcr-purple-800--raw});
|
|
22
|
+
--mg-color-tab-border--active: rgb(#{$_mcr-purple-200--raw});
|
|
23
|
+
--mg-color-tab-background--hover: rgb(#{$_mcr-purple-800--raw} / 0.6);
|
|
24
|
+
--mg-radius-tab: var(--mg-spacing-150) var(--mg-spacing-150) 0 0;
|
|
25
|
+
--mg-padding-tab: var(--mg-spacing-200) var(--mg-spacing-300);
|
|
26
|
+
--mg-color-text-tab: rgb(var(--mg-color-neutral-700));
|
|
27
|
+
--mg-color-text-tab--hover: rgb(var(--mg-color-neutral-0));
|
|
28
|
+
--mg-color-text-tab-active: rgb(var(--mg-color-neutral-0));
|
|
29
|
+
--mg-padding-tab-section: var(--mg-spacing-500);
|
|
30
|
+
--mg-radius-tab-section: var(--mg-spacing-200);
|
|
31
|
+
--mg-box-shadow-tab-section: rgb(var(--mg-color-neutral-900) / 0.24) 0 6px 5px 0;
|
|
32
|
+
|
|
33
|
+
// Interactive + component overrides (moved from _variables-mcr.scss)
|
|
34
|
+
--mg-color-interactive: #{$_mcr-purple--raw};
|
|
35
|
+
--mg-color-interactive-active: #{$_mcr-purple--raw};
|
|
36
|
+
--mg-color-tag: var(--mg-color-interactive);
|
|
37
|
+
--mg-color-tag--hover: var(--mg-color-interactive-active);
|
|
38
|
+
--mg-radius-tag: var(--mg-spacing-100);
|
|
39
|
+
--mg-color-button-background: #{$_mcr-purple--raw};
|
|
40
|
+
--mg-color-button-background--hover: #{$_mcr-purple-800--raw};
|
|
41
|
+
--mg-color-button-outline-primary: #{$_mcr-purple--raw};
|
|
42
|
+
--mg-color-button-outline-primary--hover: #{$_mcr-purple-800--raw};
|
|
43
|
+
--mg-color-button-outline-secondary: var(--mg-color-button-secondary-background);
|
|
44
|
+
--mg-color-button-outline-secondary--hover: var(--mg-color-button-secondary-background--hover);
|
|
45
|
+
--mg-radius-button: var(--mg-spacing-300);
|
|
46
|
+
--mg-border-width-button: 2px;
|
|
47
|
+
--mg-padding-button: var(--mg-spacing-150) var(--mg-spacing-300);
|
|
48
|
+
--mg-font-size-button: #{$mg-font-size-400};
|
|
49
|
+
--mg-color-form-check: var(--mg-color-interactive);
|
|
50
|
+
--mg-color-form-check--hover: var(--mg-color-interactive-active);
|
|
51
|
+
--mg-color-form-check--checked: var(--mg-color-interactive);
|
|
52
|
+
--mg-color-form-focus: var(--mg-color-interactive);
|
|
53
|
+
--mg-radius-form-input: var(--mg-spacing-100);
|
|
54
|
+
--mg-color-hero: var(--mg-color-interactive);
|
|
55
|
+
--mg-spacing-hero-overlay: #{mg-rem(20)} 0;
|
|
56
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// PreventionWeb theme — runtime CSS custom property overrides.
|
|
2
|
+
// Applied when .mg-theme-preventionweb is present on <body> or a wrapping element.
|
|
3
|
+
$_pw-color-primary--raw: 10 105 105;
|
|
4
|
+
|
|
5
|
+
.mg-theme-preventionweb {
|
|
6
|
+
// Runtime marker: lets JS/tooling detect that this brand theme is active
|
|
7
|
+
// (guards the sub-brand body-class trap). See docs/RELEASE-2.0.md.
|
|
8
|
+
--mg-theme-loaded: preventionweb;
|
|
9
|
+
--mg-color-interactive: #{$_pw-color-primary--raw};
|
|
10
|
+
--mg-color-interactive-active: #{$_pw-color-primary--raw};
|
|
11
|
+
--mg-color-tag: var(--mg-color-interactive);
|
|
12
|
+
--mg-color-tag--hover: var(--mg-color-interactive-active);
|
|
13
|
+
--mg-color-button-background: #{$_pw-color-primary--raw};
|
|
14
|
+
--mg-color-button-background--hover: var(--mg-color-orange-900);
|
|
15
|
+
--mg-color-button-outline-primary: #{$_pw-color-primary--raw};
|
|
16
|
+
--mg-color-button-outline-primary--hover: var(--mg-color-orange-900);
|
|
17
|
+
--mg-color-button-outline-secondary: var(--mg-color-button-secondary-background);
|
|
18
|
+
--mg-color-button-outline-secondary--hover: var(--mg-color-button-secondary-background--hover);
|
|
19
|
+
--mg-radius-button: var(--mg-spacing-50);
|
|
20
|
+
--mg-color-form-check: var(--mg-color-interactive);
|
|
21
|
+
--mg-color-form-check--hover: var(--mg-color-interactive-active);
|
|
22
|
+
--mg-color-form-check--checked: var(--mg-color-interactive);
|
|
23
|
+
--mg-color-form-focus: var(--mg-color-interactive);
|
|
24
|
+
--mg-color-hero: var(--mg-color-interactive);
|
|
25
|
+
--mg-spacing-hero-overlay: #{mg-rem(20)} 0;
|
|
26
|
+
--mg-color-tabbar-background: rgb(#{$_pw-color-primary--raw} / 0.1);
|
|
27
|
+
--mg-color-tab-background: rgb(#{$_pw-color-primary--raw} / 0.1);
|
|
28
|
+
--mg-color-tab-border: var(--mg-color-interactive);
|
|
29
|
+
--mg-color-tab-border--hover: var(--mg-color-interactive);
|
|
30
|
+
--mg-color-tab-border--active: var(--mg-color-tab-background);
|
|
31
|
+
--mg-color-tab-background--inactive: var(--mg-color-tabbar-background);
|
|
32
|
+
--mg-color-tab-background--hover: rgb(#{$_pw-color-primary--raw} / 0.2);
|
|
33
|
+
--mg-radius-tab: var(--mg-spacing-50) var(--mg-spacing-50) 0 0;
|
|
34
|
+
--mg-color-text-tab: var(--mg-color-neutral-700);
|
|
35
|
+
--mg-color-text-tab--hover: var(--mg-color-neutral-700);
|
|
36
|
+
--mg-color-text-tab-active: var(--mg-color-neutral-900);
|
|
37
|
+
}
|