@undrr/undrr-mangrove 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -5
- package/components/BookCard.js +2 -2
- package/components/Breadcrumbs.js +2 -2
- package/components/Checkbox.js +2 -2
- package/components/Chips.js +2 -2
- package/components/CopyButton.js +2 -2
- package/components/CtaButton.js +2 -2
- package/components/Drawer.js +3 -3
- package/components/Drawer.js.LICENSE.txt +3 -1
- package/components/EmbedContainer.js +2 -2
- package/components/Footer.js +2 -2
- package/components/FormAction.js +2 -2
- package/components/FormErrorSummary.js +2 -2
- package/components/FormGroup.js +2 -2
- package/components/FullWidth.js +2 -2
- package/components/Gallery.js +3 -3
- package/components/Hero.js +3 -3
- package/components/HighlightBox.js +2 -2
- package/components/HorizontalBookCard.js +3 -3
- package/components/HorizontalBookCard.js.LICENSE.txt +3 -1
- package/components/HorizontalCard.js +3 -3
- package/components/HorizontalCard.js.LICENSE.txt +3 -1
- package/components/IconCard.js +3 -3
- package/components/IconCard.js.LICENSE.txt +3 -1
- package/components/Legend.js +2 -2
- package/components/Loader.js +3 -3
- package/components/MegaMenu.js +3 -3
- package/components/Notice.js +2 -2
- package/components/PageHeader.js +2 -2
- package/components/Pager.js +2 -2
- package/components/ProgressBar.js +9 -0
- package/components/ProgressBar.js.LICENSE.txt +9 -0
- package/components/QuoteHighlight.js +3 -3
- package/components/QuoteHighlight.js.LICENSE.txt +3 -1
- package/components/Radio.js +2 -2
- package/components/Range.js +2 -2
- package/components/ScrollContainer.js +2 -2
- package/components/SegmentedControl.js +2 -2
- package/components/Select.js +2 -2
- package/components/ServiceNotice.js +2 -2
- package/components/ShareButtons.js +3 -3
- package/components/ShowMore.js +3 -3
- package/components/SkipLink.js +2 -2
- package/components/StatsCard.js +3 -3
- package/components/StatsCard.js.LICENSE.txt +3 -1
- package/components/SyndicationSearchWidget.js +3 -3
- package/components/Tab.js +2 -2
- package/components/TextCta.js +3 -3
- package/components/TextCta.js.LICENSE.txt +3 -1
- package/components/TextInput.js +2 -2
- package/components/Textarea.js +2 -2
- package/components/Tree.js +2 -2
- package/components/UserFeedback.js +2 -2
- package/components/VerticalCard.js +3 -3
- package/components/VerticalCard.js.LICENSE.txt +3 -1
- package/components/hydrate.js +3 -3
- package/css/style-all.css +147 -128
- package/css/style-all.css.map +1 -1
- package/css/style-delta.css +147 -128
- package/css/style-delta.css.map +1 -1
- package/css/style-gutenberg.css +12 -12
- package/css/style-gutenberg.css.map +1 -1
- package/css/style-irp.css +147 -128
- package/css/style-irp.css.map +1 -1
- package/css/style-mcr.css +147 -128
- package/css/style-mcr.css.map +1 -1
- package/css/style-preventionweb.css +147 -128
- package/css/style-preventionweb.css.map +1 -1
- package/css/style.css +147 -128
- package/css/style.css.map +1 -1
- package/docs/EDITORIAL-MANUAL.md +193 -0
- package/docs/llms-editorial-manual.txt +200 -0
- package/docs/llms-motion.txt +125 -0
- package/docs/llms-page-building.txt +1140 -0
- package/docs/llms-search-widget.txt +765 -0
- package/error-pages/401.html +1 -1
- package/error-pages/403.html +1 -1
- package/error-pages/404.html +1 -1
- package/error-pages/429.html +1 -1
- package/error-pages/500.html +1 -1
- package/error-pages/502.html +1 -1
- package/error-pages/503.html +1 -1
- package/error-pages/504.html +1 -1
- package/error-pages/5xx.html +1 -1
- package/error-pages/challenge.html +1 -1
- package/error-pages/managed-challenge.html +1 -1
- package/js/cite-this.js +994 -0
- package/js/on-this-page-nav.js +80 -1
- package/js/show-more.js +149 -21
- package/package.json +6 -1
- package/scss/Atom/BaseTypography/Abbr/abbr.scss +1 -1
- package/scss/Atom/BaseTypography/Blockquote/blockquote.scss +1 -1
- package/scss/Atom/BaseTypography/Cite/cite.scss +1 -1
- package/scss/Atom/BaseTypography/Code/code.scss +1 -1
- package/scss/Atom/BaseTypography/Mark/mark.scss +1 -1
- package/scss/Atom/BaseTypography/Quotation/quotation.scss +1 -1
- package/scss/Atom/BaseTypography/Small/small.scss +1 -1
- package/scss/Atom/Colors/color.scss +1 -1
- package/scss/Atom/EmptyState/empty-state.scss +1 -1
- package/scss/Atom/Icons/_icon-definitions.scss +35 -3
- package/scss/Atom/Icons/icons.scss +1 -1
- package/scss/Atom/Images/AuthorImage/author-image.scss +10 -3
- package/scss/Atom/Images/Image/image.scss +1 -1
- package/scss/Atom/Images/ImageCaptionCredit/image-caption-credit.scss +7 -2
- package/scss/Atom/Images/ImageCredit/image-credit.scss +1 -1
- package/scss/Atom/Layout/Container/container.scss +1 -1
- package/scss/Atom/Layout/Grid/grid.scss +1 -1
- package/scss/Atom/Layout/Spacing/spacing.scss +1 -1
- package/scss/Atom/Logo/logo.scss +1 -1
- package/scss/Atom/Navigation/Breadcrumb/breadcrumb.scss +1 -1
- package/scss/Atom/Navigation/MenuItems/menu-items.scss +1 -1
- package/scss/Atom/ReachElement/Details/details.scss +5 -3
- package/scss/Atom/ReachElement/Figcaption/figcaption.scss +1 -1
- package/scss/Atom/StatusLabel/status-label.scss +1 -1
- package/scss/Atom/Table/table.scss +1 -1
- package/scss/Atom/Tag/tag.scss +1 -1
- package/scss/Atom/Video/video.scss +1 -1
- package/scss/Components/Boilerplate/boilerplate.scss +1 -1
- package/scss/Components/Breadcrumbs/breadcrumbs.scss +1 -1
- package/scss/Components/Buttons/Chips/chips.scss +1 -1
- package/scss/Components/Buttons/CopyButton/copy-button.scss +1 -1
- package/scss/Components/Buttons/CtaButton/buttons.scss +1 -1
- package/scss/Components/Buttons/CtaButton/cta-button.scss +1 -1
- package/scss/Components/Buttons/ShareButtons/share-buttons.scss +90 -1
- package/scss/Components/Cards/Card/card.scss +9 -3
- package/scss/Components/Cards/StatsCard/stats-card.scss +9 -2
- package/scss/Components/CiteThis/cite-this.scss +339 -0
- package/scss/Components/CookieConsentBanner/cookie-consent-banner.scss +1 -1
- package/scss/Components/DataViz/Legend/legend.scss +1 -1
- package/scss/Components/ErrorPages/error-pages.scss +1 -1
- package/scss/Components/Footer/footer.scss +1 -1
- package/scss/Components/Forms/Checkbox/checkbox.scss +1 -1
- package/scss/Components/Forms/FormAction/form-action.scss +1 -1
- package/scss/Components/Forms/FormGroup/form-group.scss +1 -1
- package/scss/Components/Forms/InputFields/input-fields.scss +1 -1
- package/scss/Components/Forms/Radio/radio.scss +1 -1
- package/scss/Components/Forms/Range/range.scss +1 -1
- package/scss/Components/Forms/SegmentedControl/segmented-control.scss +1 -1
- package/scss/Components/Forms/Select/select.scss +1 -1
- package/scss/Components/Forms/TextInput/text-input.scss +1 -1
- package/scss/Components/Forms/Textarea/textarea.scss +1 -1
- package/scss/Components/Forms/_form-base.scss +1 -1
- package/scss/Components/Gallery/gallery.scss +41 -16
- package/scss/Components/Hero/hero.scss +166 -1
- package/scss/Components/HighlightBox/highlight-box.scss +1 -1
- package/scss/Components/MegaMenu/mega-menu.scss +43 -122
- package/scss/Components/MegaMenu/megamenu.scss +1 -1
- package/scss/Components/Navigation/Drawer/drawer.scss +11 -1
- package/scss/Components/Navigation/Tree/tree.scss +1 -1
- package/scss/Components/Notice/notice.scss +1 -1
- package/scss/Components/OnThisPageNav/on-this-page-nav.scss +109 -4
- package/scss/Components/PageHeader/page-header.scss +1 -1
- package/scss/Components/Pager/pager.scss +1 -1
- package/scss/Components/PreviewAccess/preview-access.scss +1 -1
- package/scss/Components/ProgressBar/progress-bar.scss +215 -0
- package/scss/Components/QuoteHighlight/quote-highlight.scss +1 -1
- package/scss/Components/ScrollContainer/scroll-container.scss +1 -1
- package/scss/Components/Snackbar/snackbar.scss +1 -1
- package/scss/Components/SyndicationSearchWidget/_deprecated-teaser-hide.scss +1 -1
- package/scss/Components/SyndicationSearchWidget/syndication-search-widget.scss +253 -128
- package/scss/Components/Tab/tab.scss +3 -2
- package/scss/Components/TableOfContents/table-of-contents.scss +1 -1
- package/scss/Components/TextCta/text-cta.scss +1 -1
- package/scss/Components/TextCta/textcta.scss +1 -1
- package/scss/Components/UserFeedback/user-feedback.scss +1 -1
- package/scss/Molecules/ImageCaption/image-caption.scss +17 -3
- package/scss/Molecules/SectionHeader/section-header.scss +1 -1
- package/scss/Molecules/SectionHeader/sectionheader.scss +1 -1
- package/scss/Patterns/HubHeader/hub-header.scss +1 -1
- package/scss/Patterns/RichContent/rich-content.scss +177 -0
- package/scss/Patterns/_shared/pattern-demo.scss +6 -1
- package/scss/Utilities/EmbedContainer/embed-container.scss +1 -1
- package/scss/Utilities/FullWidth/full-width.scss +1 -1
- package/scss/Utilities/Loader/loader.scss +133 -12
- package/scss/Utilities/Normalize/normalize.scss +1 -1
- package/scss/Utilities/PagePatterns/page-patterns.scss +1 -1
- package/scss/Utilities/ShowMore/show-more.scss +7 -1
- package/scss/Utilities/SkipLink/skip-link.scss +1 -1
- package/scss/assets/scss/_components.scss +5 -0
- package/scss/assets/scss/_foundational.scss +23 -8
- package/scss/assets/scss/_mixins.scss +5 -0
- package/scss/assets/scss/_variables.scss +2 -2
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cite this (CiteThis)
|
|
3
|
+
*
|
|
4
|
+
* Citation button and dialog with a readable disclosure fallback.
|
|
5
|
+
*
|
|
6
|
+
* Full documentation:
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/CiteThis/CiteThis.mdx
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
.mg-cite-this {
|
|
11
|
+
max-inline-size: 48rem;
|
|
12
|
+
color: rgb(var(--mg-color-neutral-800));
|
|
13
|
+
font-family: var(--mg-font-family-text);
|
|
14
|
+
|
|
15
|
+
&__fallback {
|
|
16
|
+
background: rgb(var(--mg-color-neutral-50));
|
|
17
|
+
border-inline-start: var(--mg-spacing-50) solid
|
|
18
|
+
rgb(var(--mg-color-interactive));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&__trigger {
|
|
22
|
+
min-block-size: 44px;
|
|
23
|
+
padding: var(--mg-spacing-100) var(--mg-spacing-200);
|
|
24
|
+
background: rgb(var(--mg-color-interactive));
|
|
25
|
+
border: 0;
|
|
26
|
+
border-radius: var(--mg-radius-button);
|
|
27
|
+
color: rgb(var(--mg-color-white));
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
font-family: var(--mg-font-family-text);
|
|
30
|
+
font-size: var(--mg-font-size-300);
|
|
31
|
+
font-weight: 600;
|
|
32
|
+
transition: filter var(--mg-motion-duration-fast)
|
|
33
|
+
var(--mg-motion-easing-standard);
|
|
34
|
+
|
|
35
|
+
&:hover {
|
|
36
|
+
filter: brightness(0.92);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&:focus-visible {
|
|
40
|
+
@include mg-focus-ring;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@media (prefers-reduced-motion: reduce) {
|
|
44
|
+
transition: none;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// The filled trigger relies on its background, which forced colours remove.
|
|
48
|
+
@media (forced-colors: active) {
|
|
49
|
+
border: 1px solid ButtonText;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Default enhanced layout, with the same structure and metrics as
|
|
54
|
+
// ShareButtons: a label, the citation as a copyable field, and a quiet
|
|
55
|
+
// dialog link. `--compact` shows the dialog trigger alone.
|
|
56
|
+
&__panel {
|
|
57
|
+
display: flex;
|
|
58
|
+
flex-direction: column;
|
|
59
|
+
align-items: flex-start;
|
|
60
|
+
gap: var(--mg-spacing-100);
|
|
61
|
+
max-inline-size: mg-rem(400);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&__header {
|
|
65
|
+
margin: 0;
|
|
66
|
+
color: rgb(var(--mg-color-text));
|
|
67
|
+
font-family: var(--mg-font-family-text);
|
|
68
|
+
font-size: var(--mg-font-size-300);
|
|
69
|
+
font-weight: 600;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
&__preview {
|
|
73
|
+
box-sizing: border-box;
|
|
74
|
+
display: flex;
|
|
75
|
+
align-items: center;
|
|
76
|
+
gap: var(--mg-spacing-100);
|
|
77
|
+
inline-size: 100%;
|
|
78
|
+
min-block-size: mg-rem(40);
|
|
79
|
+
padding: var(--mg-spacing-100);
|
|
80
|
+
background-color: rgb(var(--mg-color-neutral-25));
|
|
81
|
+
border: 1px solid rgb(var(--mg-color-neutral-300) / 0.4);
|
|
82
|
+
border-radius: var(--mg-radius-button);
|
|
83
|
+
color: rgb(var(--mg-color-text));
|
|
84
|
+
cursor: pointer;
|
|
85
|
+
font-family: var(--mg-font-family-text);
|
|
86
|
+
text-align: start;
|
|
87
|
+
|
|
88
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
89
|
+
transition: background-color var(--mg-motion-duration-fast)
|
|
90
|
+
var(--mg-motion-easing-standard);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.mg-icon {
|
|
94
|
+
flex: 0 0 mg-rem(24);
|
|
95
|
+
text-align: center;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
&:hover {
|
|
99
|
+
background-color: rgb(var(--mg-color-neutral-50));
|
|
100
|
+
|
|
101
|
+
.mg-cite-this__preview-text {
|
|
102
|
+
text-decoration: underline;
|
|
103
|
+
text-underline-offset: 0.15em;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
&:focus-visible {
|
|
108
|
+
@include mg-focus-ring;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@media (forced-colors: active) {
|
|
112
|
+
border-color: ButtonText;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
&__preview-text {
|
|
117
|
+
display: -webkit-box;
|
|
118
|
+
flex: 1;
|
|
119
|
+
min-inline-size: 0;
|
|
120
|
+
overflow: hidden;
|
|
121
|
+
font-size: var(--mg-font-size-250);
|
|
122
|
+
line-height: 1.5;
|
|
123
|
+
overflow-wrap: anywhere;
|
|
124
|
+
-webkit-box-orient: vertical;
|
|
125
|
+
-webkit-line-clamp: 2;
|
|
126
|
+
line-clamp: 2;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Doubled selector outranks the filled `__trigger` styles.
|
|
130
|
+
& &__more {
|
|
131
|
+
min-block-size: 44px;
|
|
132
|
+
padding: 0;
|
|
133
|
+
background: transparent;
|
|
134
|
+
color: rgb(var(--mg-color-interactive));
|
|
135
|
+
font-size: var(--mg-font-size-250);
|
|
136
|
+
font-weight: 400;
|
|
137
|
+
text-decoration: underline;
|
|
138
|
+
text-underline-offset: 0.15em;
|
|
139
|
+
|
|
140
|
+
&:hover {
|
|
141
|
+
filter: none;
|
|
142
|
+
text-decoration-thickness: 2px;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
&__dialog {
|
|
147
|
+
inline-size: min(calc(100% - 2rem), 44rem);
|
|
148
|
+
max-block-size: calc(100vh - 2rem);
|
|
149
|
+
padding: 0;
|
|
150
|
+
overflow-y: auto;
|
|
151
|
+
background: rgb(var(--mg-color-white));
|
|
152
|
+
border: 0;
|
|
153
|
+
border-block-start: var(--mg-spacing-50) solid
|
|
154
|
+
rgb(var(--mg-color-interactive));
|
|
155
|
+
border-radius: var(--mg-radius-button);
|
|
156
|
+
color: rgb(var(--mg-color-neutral-800));
|
|
157
|
+
box-shadow: 0 12px 40px rgb(0 0 0 / 0.2);
|
|
158
|
+
|
|
159
|
+
&::backdrop {
|
|
160
|
+
background: var(--mg-color-modal-scrim);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.mg-cite-this__content {
|
|
164
|
+
padding-block: 0 var(--mg-spacing-200);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
&__dialog-header {
|
|
169
|
+
display: flex;
|
|
170
|
+
align-items: center;
|
|
171
|
+
justify-content: space-between;
|
|
172
|
+
gap: var(--mg-spacing-200);
|
|
173
|
+
padding: var(--mg-spacing-200) var(--mg-spacing-200) var(--mg-spacing-150);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
&__title {
|
|
177
|
+
margin: 0;
|
|
178
|
+
font-family: var(--mg-font-family-ui);
|
|
179
|
+
font-size: var(--mg-font-size-400);
|
|
180
|
+
line-height: 1.3;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
&__close {
|
|
184
|
+
flex-shrink: 0;
|
|
185
|
+
inline-size: 44px;
|
|
186
|
+
block-size: 44px;
|
|
187
|
+
min-inline-size: 44px;
|
|
188
|
+
min-block-size: 44px;
|
|
189
|
+
color: rgb(var(--mg-color-neutral-600));
|
|
190
|
+
|
|
191
|
+
&:hover {
|
|
192
|
+
color: rgb(var(--mg-color-neutral-900));
|
|
193
|
+
background-color: rgb(var(--mg-color-neutral-900) / 0.08);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
&__summary {
|
|
198
|
+
display: flex;
|
|
199
|
+
align-items: center;
|
|
200
|
+
justify-content: space-between;
|
|
201
|
+
gap: var(--mg-spacing-150);
|
|
202
|
+
min-block-size: 44px;
|
|
203
|
+
padding: var(--mg-spacing-150) var(--mg-spacing-200);
|
|
204
|
+
cursor: pointer;
|
|
205
|
+
font-family: var(--mg-font-family-ui);
|
|
206
|
+
font-size: var(--mg-font-size-400);
|
|
207
|
+
font-weight: 700;
|
|
208
|
+
list-style: none;
|
|
209
|
+
|
|
210
|
+
&::-webkit-details-marker {
|
|
211
|
+
display: none;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
&:focus-visible {
|
|
215
|
+
@include mg-focus-ring-inset;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
&::after {
|
|
219
|
+
content: "+";
|
|
220
|
+
font-family: var(--mg-font-family-text);
|
|
221
|
+
font-size: var(--mg-font-size-400);
|
|
222
|
+
font-weight: 400;
|
|
223
|
+
line-height: 1;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
&__fallback[open] .mg-cite-this__summary::after {
|
|
228
|
+
content: "−";
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
&__content {
|
|
232
|
+
padding: 0 var(--mg-spacing-200) var(--mg-spacing-200);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// Doubled selector outranks `.mg-code`, which earlier markup put on the
|
|
236
|
+
// citation; a citation is prose to read, not code.
|
|
237
|
+
& &__text {
|
|
238
|
+
margin: 0;
|
|
239
|
+
padding: var(--mg-spacing-150) var(--mg-spacing-200);
|
|
240
|
+
background: rgb(var(--mg-color-neutral-25));
|
|
241
|
+
border: 1px solid rgb(var(--mg-color-neutral-300) / 0.4);
|
|
242
|
+
border-radius: var(--mg-radius-form-input);
|
|
243
|
+
box-shadow: none;
|
|
244
|
+
color: rgb(var(--mg-color-neutral-800));
|
|
245
|
+
font-family: var(--mg-font-family-text);
|
|
246
|
+
font-size: var(--mg-font-size-300);
|
|
247
|
+
font-weight: 400;
|
|
248
|
+
line-height: 1.6;
|
|
249
|
+
overflow-wrap: anywhere;
|
|
250
|
+
text-wrap: pretty;
|
|
251
|
+
|
|
252
|
+
a {
|
|
253
|
+
color: rgb(var(--mg-color-interactive));
|
|
254
|
+
text-decoration: underline;
|
|
255
|
+
text-underline-offset: 0.15em;
|
|
256
|
+
|
|
257
|
+
&:focus-visible {
|
|
258
|
+
@include mg-focus-ring;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
&__actions {
|
|
264
|
+
display: flex;
|
|
265
|
+
align-items: center;
|
|
266
|
+
flex-wrap: wrap;
|
|
267
|
+
gap: var(--mg-spacing-150);
|
|
268
|
+
margin-block-start: var(--mg-spacing-150);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
&__copy {
|
|
272
|
+
min-block-size: 44px;
|
|
273
|
+
padding: var(--mg-spacing-50) var(--mg-spacing-150);
|
|
274
|
+
background: transparent;
|
|
275
|
+
border: 2px solid rgb(var(--mg-color-interactive));
|
|
276
|
+
border-radius: var(--mg-radius-button);
|
|
277
|
+
color: rgb(var(--mg-color-interactive));
|
|
278
|
+
cursor: pointer;
|
|
279
|
+
font-family: var(--mg-font-family-text);
|
|
280
|
+
font-size: var(--mg-font-size-250);
|
|
281
|
+
font-weight: 600;
|
|
282
|
+
transition-property: background-color, color, scale;
|
|
283
|
+
transition-duration: var(--mg-motion-duration-fast);
|
|
284
|
+
transition-timing-function: var(--mg-motion-easing-standard);
|
|
285
|
+
|
|
286
|
+
&:hover {
|
|
287
|
+
background: rgb(var(--mg-color-interactive));
|
|
288
|
+
color: rgb(var(--mg-color-white));
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
&:not(.mg-cite-this__copy-url) {
|
|
292
|
+
background: rgb(var(--mg-color-interactive));
|
|
293
|
+
color: rgb(var(--mg-color-white));
|
|
294
|
+
|
|
295
|
+
&:hover {
|
|
296
|
+
filter: brightness(0.92);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
&:active {
|
|
301
|
+
scale: 0.96;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
&:focus-visible {
|
|
305
|
+
@include mg-focus-ring;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
@media (prefers-reduced-motion: reduce) {
|
|
309
|
+
transition: none;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
&__exports {
|
|
314
|
+
display: flex;
|
|
315
|
+
flex-wrap: wrap;
|
|
316
|
+
gap: var(--mg-spacing-50) var(--mg-spacing-200);
|
|
317
|
+
margin-block-start: var(--mg-spacing-150);
|
|
318
|
+
padding-block-start: var(--mg-spacing-150);
|
|
319
|
+
border-block-start: 1px solid rgb(var(--mg-color-neutral-200));
|
|
320
|
+
font-size: var(--mg-font-size-250);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
&__export {
|
|
324
|
+
display: inline-flex;
|
|
325
|
+
align-items: center;
|
|
326
|
+
min-block-size: 44px;
|
|
327
|
+
color: rgb(var(--mg-color-interactive));
|
|
328
|
+
text-decoration: underline;
|
|
329
|
+
text-underline-offset: 0.15em;
|
|
330
|
+
|
|
331
|
+
&:focus-visible {
|
|
332
|
+
@include mg-focus-ring;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
&__status {
|
|
337
|
+
font-size: var(--mg-font-size-250);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Fixed bottom GDPR/privacy compliance consent notice with accept/manage preference controls.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/CookieConsentBanner/CookieConsentBanner.mdx
|
|
8
8
|
*/
|
|
9
9
|
// Mangrove theme bridge for the externally loaded vanilla-cookieconsent UI.
|
|
10
10
|
// The CDN stylesheet is appended after the local bundle and declares the same
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Continuous, stepped and categorical legend primitives for maps and charts.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/DataViz/Legend/Legend.mdx
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
.mg-legend {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Branded 404 Not Found and 500 Server Error status page layouts and illustrations.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/ErrorPages/ErrorPage.mdx
|
|
8
8
|
*/
|
|
9
9
|
.mg-error-page {
|
|
10
10
|
min-height: 100vh;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Site-wide mega footer with branding, navigation columns, copyright, and social links.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Footer/Footer.mdx
|
|
8
8
|
*/
|
|
9
9
|
.mg-footer {
|
|
10
10
|
--mg-gutenberg-spacer: 0;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Accessible custom checkbox inputs with focus rings, checked checkmarks, and disabled states.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/Checkbox/Checkbox.mdx
|
|
8
8
|
*/
|
|
9
9
|
// Checkbox-specific overrides.
|
|
10
10
|
// Shared form styles live in _form-base.scss (.mg-form-check).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Button row and submission action container for web forms.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/FormAction/FormAction.mdx
|
|
8
8
|
*/
|
|
9
9
|
.mg-form-action {
|
|
10
10
|
align-items: stretch;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Field wrapper associating labels, hint helper text, form inputs, and inline error validation messages.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/FormGroup/FormGroup.mdx
|
|
8
8
|
*/
|
|
9
9
|
// FormGroup — styled fieldset/legend for grouping related form controls.
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Rollup stylesheet for text inputs, select dropdowns, and form control elements.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/TextInput/TextInput.mdx
|
|
8
8
|
*/
|
|
9
9
|
// DEPRECATED — February 2026
|
|
10
10
|
// This file has been replaced by:
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Accessible radio input controls with styled checked indicators and keyboard focus states.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/Radio/Radio.mdx
|
|
8
8
|
*/
|
|
9
9
|
// Radio-specific overrides.
|
|
10
10
|
// Shared form styles live in _form-base.scss (.mg-form-check).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Range slider supporting continuous and stepped intervals with labelled tick marks.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/Range/Range.mdx
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
@mixin mg-range-thumb {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* view shows.
|
|
7
7
|
*
|
|
8
8
|
* Full documentation:
|
|
9
|
-
* https://github.com/
|
|
9
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/SegmentedControl/SegmentedControl.mdx
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
// The control is a presentation layer over a native radio group: a fieldset, a
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Custom styled <select> dropdown menus with custom chevron indicator and focus treatment.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/Select/Select.mdx
|
|
8
8
|
*/
|
|
9
9
|
// Select-specific overrides.
|
|
10
10
|
// Shared form styles live in _form-base.scss (.mg-form-select).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Single-line text input fields supporting prefix/suffix adornments, search variants, and error states.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/TextInput/TextInput.mdx
|
|
8
8
|
*/
|
|
9
9
|
// TextInput-specific overrides (date picker styling).
|
|
10
10
|
// Shared form styles live in _form-base.scss.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Multi-line text input fields with configurable resize behavior and validation styling.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/Textarea/Textarea.mdx
|
|
8
8
|
*/
|
|
9
9
|
// Textarea-specific overrides.
|
|
10
10
|
// Shared form styles live in _form-base.scss (.mg-form-textarea).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Foundational styling, typography, focus rings, and validation states shared across form controls.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Forms/TextInput/TextInput.mdx
|
|
8
8
|
*/
|
|
9
9
|
// Shared BEM-scoped form styles for Mangrove form components.
|
|
10
10
|
// All form components import this partial for consistent base styling.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Thumbnail grid gallery and full-screen lightbox image viewer with keyboard navigation.
|
|
5
5
|
*
|
|
6
6
|
* Full documentation:
|
|
7
|
-
* https://github.com/
|
|
7
|
+
* https://github.com/PreventionWeb/undrr-mangrove/blob/main/stories/Components/Gallery/Gallery.mdx
|
|
8
8
|
*/
|
|
9
9
|
/* Photo Gallery Component */
|
|
10
10
|
.mg-gallery {
|
|
@@ -105,21 +105,27 @@
|
|
|
105
105
|
top: 50%;
|
|
106
106
|
left: 50%;
|
|
107
107
|
transform: translate(-50%, -50%);
|
|
108
|
+
color: rgb(var(--mg-color-interactive));
|
|
109
|
+
font-size: var(--mg-spacing-300);
|
|
108
110
|
z-index: 3; // loading spinner above nav buttons — local to gallery stacking context
|
|
109
|
-
}
|
|
110
111
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
border-top-color: rgb(var(--mg-color-interactive));
|
|
116
|
-
border-radius: 50%;
|
|
117
|
-
animation: mg-gallery-spin 0.8s linear infinite;
|
|
118
|
-
}
|
|
112
|
+
@media (prefers-reduced-motion: reduce) {
|
|
113
|
+
// The shared Loader reveals translated text. Keep it inside the stage
|
|
114
|
+
// and give the label a stable surface over arbitrary video/posters.
|
|
115
|
+
width: max-content;
|
|
119
116
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
// Reserve both 44px arrow targets, their largest inset, and a focus gap.
|
|
118
|
+
$navigation-space: calc(
|
|
119
|
+
#{mg-rem(44)} + var(--mg-spacing-100) + var(--mg-spacing-50)
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
max-width: calc(100% - 2 * $navigation-space);
|
|
123
|
+
box-sizing: border-box;
|
|
124
|
+
pointer-events: none;
|
|
125
|
+
padding: var(--mg-spacing-75);
|
|
126
|
+
background: rgb(var(--mg-color-neutral-0));
|
|
127
|
+
color: rgb(var(--mg-color-text));
|
|
128
|
+
font-size: var(--mg-font-size-300);
|
|
123
129
|
}
|
|
124
130
|
}
|
|
125
131
|
|
|
@@ -213,7 +219,10 @@
|
|
|
213
219
|
padding: 0;
|
|
214
220
|
position: relative;
|
|
215
221
|
|
|
216
|
-
@include transition(
|
|
222
|
+
@include transition(
|
|
223
|
+
border-color var(--mg-motion-duration-fast)
|
|
224
|
+
var(--mg-motion-easing-standard)
|
|
225
|
+
);
|
|
217
226
|
|
|
218
227
|
@include devicebreak(medium) {
|
|
219
228
|
width: 100%;
|
|
@@ -366,7 +375,11 @@
|
|
|
366
375
|
align-items: center;
|
|
367
376
|
justify-content: center;
|
|
368
377
|
|
|
369
|
-
@include transition(
|
|
378
|
+
@include transition(
|
|
379
|
+
background-color var(--mg-motion-duration-fast)
|
|
380
|
+
var(--mg-motion-easing-standard),
|
|
381
|
+
opacity var(--mg-motion-duration-fast) var(--mg-motion-easing-standard)
|
|
382
|
+
);
|
|
370
383
|
|
|
371
384
|
&:hover {
|
|
372
385
|
background: rgb(var(--mg-color-neutral-600));
|
|
@@ -436,7 +449,11 @@
|
|
|
436
449
|
align-items: center;
|
|
437
450
|
justify-content: center;
|
|
438
451
|
|
|
439
|
-
@include transition(
|
|
452
|
+
@include transition(
|
|
453
|
+
background-color var(--mg-motion-duration-fast)
|
|
454
|
+
var(--mg-motion-easing-standard),
|
|
455
|
+
opacity var(--mg-motion-duration-fast) var(--mg-motion-easing-standard)
|
|
456
|
+
);
|
|
440
457
|
|
|
441
458
|
&:hover {
|
|
442
459
|
background: rgb(var(--mg-color-neutral-600));
|
|
@@ -511,3 +528,11 @@
|
|
|
511
528
|
}
|
|
512
529
|
}
|
|
513
530
|
}
|
|
531
|
+
|
|
532
|
+
@media (prefers-reduced-motion: reduce) {
|
|
533
|
+
.mg-gallery__thumbnail,
|
|
534
|
+
.mg-gallery__arrow,
|
|
535
|
+
.mg-gallery__arrow-button {
|
|
536
|
+
transition: none;
|
|
537
|
+
}
|
|
538
|
+
}
|