@explorer-1/vue 0.3.9 → 1.0.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 (146) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/package.json +2 -2
  3. package/src/assets/fonts/helvetica-now/.gitkeep +0 -0
  4. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Bd It.otf +0 -0
  5. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Black.otf +0 -0
  6. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Blk It.otf +0 -0
  7. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Bold.otf +0 -0
  8. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Hair It.otf +0 -0
  9. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Hairline.otf +0 -0
  10. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display It.otf +0 -0
  11. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Light.otf +0 -0
  12. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Lt It.otf +0 -0
  13. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Md It.otf +0 -0
  14. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Medium.otf +0 -0
  15. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Th It.otf +0 -0
  16. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Thin.otf +0 -0
  17. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBd It.otf +0 -0
  18. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBlack.otf +0 -0
  19. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBlk It.otf +0 -0
  20. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBold.otf +0 -0
  21. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XLight.otf +0 -0
  22. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XLt It.otf +0 -0
  23. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display.otf +0 -0
  24. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Bd It.otf +0 -0
  25. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Bold.otf +0 -0
  26. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro ExtraBold.otf +0 -0
  27. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro ExtraLight.otf +0 -0
  28. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro It.otf +0 -0
  29. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Light.otf +0 -0
  30. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Lt It.otf +0 -0
  31. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Md It.otf +0 -0
  32. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Medium.otf +0 -0
  33. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro XBd It.otf +0 -0
  34. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro XLt It.otf +0 -0
  35. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro.otf +0 -0
  36. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Bd It.otf +0 -0
  37. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Black.otf +0 -0
  38. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Blk It.otf +0 -0
  39. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Bold.otf +0 -0
  40. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text ExtraBold.otf +0 -0
  41. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text ExtraLight.otf +0 -0
  42. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text It.otf +0 -0
  43. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Light.otf +0 -0
  44. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Lt It.otf +0 -0
  45. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Md It.otf +0 -0
  46. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Medium.otf +0 -0
  47. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Th It.otf +0 -0
  48. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Thin.otf +0 -0
  49. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text XBd It.otf +0 -0
  50. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text XLt It.otf +0 -0
  51. package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text.otf +0 -0
  52. package/src/components/AboutTheAuthor/AboutTheAuthor.vue +2 -2
  53. package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.vue +8 -6
  54. package/src/components/BaseAccordionItem/BaseAccordionItem.vue +1 -1
  55. package/src/components/BaseAudio/BaseAudio.vue +1 -1
  56. package/src/components/BaseButton/BaseButton.stories.ts +0 -6
  57. package/src/components/BaseButton/BaseButton.vue +1 -1
  58. package/src/components/BaseCheckboxGroup/BaseCheckboxGroup.vue +3 -3
  59. package/src/components/BaseImageCaption/BaseImageCaption.vue +1 -1
  60. package/src/components/BasePill/BasePill.vue +4 -4
  61. package/src/components/BaseRadioGroup/BaseRadioGroup.vue +4 -5
  62. package/src/components/BaseTimer/BaseTimer.vue +2 -1
  63. package/src/components/BlockCardGridItem/BlockCardGridItemElement.vue +2 -2
  64. package/src/components/BlockCsrTable/BlockCsrTable.vue +2 -2
  65. package/src/components/BlockCta/BlockCta.vue +2 -2
  66. package/src/components/BlockImageCarousel/BlockImageCarousel.vue +2 -2
  67. package/src/components/BlockKeyPoints/BlockKeyPoints.vue +1 -1
  68. package/src/components/BlockLinkCard/BlockLinkCard.stories.js +3 -1
  69. package/src/components/BlockLinkCard/BlockLinkCard.vue +6 -6
  70. package/src/components/BlockLinkCard/BlockLinkCardCollectionLg.vue +1 -1
  71. package/src/components/BlockLinkTile/BlockLinkTile.vue +2 -2
  72. package/src/components/BlockNewsletterSignup/BlockNewsletterSignup.vue +3 -3
  73. package/src/components/BlockRichTable/BlockRichTable.vue +2 -2
  74. package/src/components/BlockTeaser/BlockTeaser.vue +1 -1
  75. package/src/components/CalendarChip/CalendarChip.vue +2 -2
  76. package/src/components/DetailHeadline/DetailHeadline.vue +3 -3
  77. package/src/components/HeroLarge/HeroLarge.vue +3 -4
  78. package/src/components/HeroMedium/HeroMedium.vue +1 -1
  79. package/src/components/HomepageCarousel/HomepageCarousel.vue +1 -1
  80. package/src/components/HomepageCarouselItem/HomepageCarouselItem.vue +2 -2
  81. package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.vue +1 -1
  82. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue +1 -1
  83. package/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue +3 -3
  84. package/src/components/HomepageStats/HomepageStats.vue +1 -1
  85. package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue +1 -1
  86. package/src/components/ImageDetailContextImage/ImageDetailContextImage.vue +1 -1
  87. package/src/components/MetaPanel/MetaPanel.vue +4 -4
  88. package/src/components/MetaPanelAccordion/MetaPanelAccordion.vue +3 -3
  89. package/src/components/MetadataEduResource/MetadataEduResource.vue +1 -1
  90. package/src/components/MetadataEvent/MetadataEvent.vue +1 -1
  91. package/src/components/MissionDetailAbout/MissionDetailAbout.vue +1 -1
  92. package/src/components/MissionDetailHero/MissionDetailHero.vue +5 -3
  93. package/src/components/MissionDetailHighlights/MissionDetailHighlights.vue +1 -1
  94. package/src/components/MissionDetailHighlights/MissionDetailHighlightsCarouselItem.vue +2 -2
  95. package/src/components/MissionDetailStats/MissionDetailStatsMini.vue +2 -2
  96. package/src/components/MixinCarousel/MixinCarousel.vue +3 -3
  97. package/src/components/MixinFancybox/MixinFancybox.vue +1 -1
  98. package/src/components/MixinFancybox/MixinFancyboxOpenButton.vue +1 -1
  99. package/src/components/NavDesktop/NavDesktopDropdown.vue +1 -1
  100. package/src/components/NavDesktop/NavDesktopDropdownContent.vue +3 -3
  101. package/src/components/NavDesktop/NavDesktopDropdownMore.vue +1 -1
  102. package/src/components/NavDesktopEdu/NavDesktopEdu.vue +8 -8
  103. package/src/components/NavHeading/NavHeading.vue +2 -2
  104. package/src/components/NavHighlight/NavHighlight.vue +6 -1
  105. package/src/components/NavJumpMenu/NavJumpMenuContent.vue +1 -1
  106. package/src/components/NavLinkList/NavLinkList.vue +1 -1
  107. package/src/components/NavMobile/NavMobile.stories.js +1 -0
  108. package/src/components/NavMobile/NavMobile.vue +6 -6
  109. package/src/components/NavMobile/NavMobileDropdown.vue +1 -1
  110. package/src/components/NavMobile/NavMobileLink.vue +1 -1
  111. package/src/components/NavSecondary/NavSecondary.vue +2 -2
  112. package/src/components/NavSecondary/NavSecondaryDropdown.vue +3 -3
  113. package/src/components/NavSecondary/NavSecondaryDropdownContent.vue +6 -6
  114. package/src/components/NavSecondary/NavSecondaryLink.vue +3 -3
  115. package/src/components/NavSocial/NavSocial.vue +3 -2
  116. package/src/components/PodcastSeriesCarousel/PodcastSeriesCarousel.vue +1 -5
  117. package/src/components/SearchFilterGroup/SearchFilterGroup.vue +3 -3
  118. package/src/components/SearchInput/SearchInput.vue +7 -6
  119. package/src/components/SearchPagination/SearchPagination.vue +2 -0
  120. package/src/components/SearchResultGridItem/SearchResultGridItem.vue +1 -1
  121. package/src/components/SearchSelectMenu/SearchSelectMenu.vue +1 -1
  122. package/src/components/ShareButtons/ShareButtons.vue +4 -4
  123. package/src/components/ShareButtonsEdu/ShareButtonsEdu.vue +1 -1
  124. package/src/components/SwimlaneCTA/SwimlaneCTA.vue +4 -6
  125. package/src/components/TheFooter/TheFooter.vue +3 -3
  126. package/src/components/TimelineDialog/TimelineDialog.vue +7 -7
  127. package/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.vue +2 -2
  128. package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.vue +2 -4
  129. package/src/components/TopicDetailMore/TopicDetailMore.vue +1 -5
  130. package/src/docs/foundation/FontVariants.vue +49 -27
  131. package/src/docs/foundation/color.docs.mdx +544 -115
  132. package/src/docs/foundation/colorsemantic.docs.mdx +395 -0
  133. package/src/docs/foundation/typography.docs.mdx +10 -5
  134. package/src/docs/utils/ColorRow.jsx +138 -0
  135. package/src/templates/PageEventDetail/PageEventDetail.vue +1 -1
  136. package/src/templates/PageImageDetail/PageImageDetail.vue +6 -10
  137. package/src/templates/PageNewsDetail/PageNewsDetail.vue +1 -1
  138. package/src/templates/edu/PageEduEventDetail/PageEduEventDetail.vue +2 -2
  139. package/src/templates/edu/PageEduHome/PageEduHome.vue +1 -1
  140. package/src/templates/edu/PageEduMultimediaDetail/PageEduMultimediaDetail.vue +1 -1
  141. package/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.vue +1 -1
  142. package/src/templates/www/PageCuratedGallery/PageCuratedGallery.vue +1 -1
  143. package/src/templates/www/PageInfographicDetail/PageInfographicDetail.vue +1 -1
  144. package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.vue +1 -1
  145. package/src/templates/www/PagePodcast/PagePodcast.vue +1 -1
  146. package/src/templates/www/PagePodcastSeason/PagePodcastSeason.vue +1 -1
@@ -0,0 +1,395 @@
1
+ import { Meta, Story, Canvas } from '@storybook/addon-docs/blocks'
2
+ import { ColorRow } from './../utils/ColorRow'
3
+
4
+ <Meta title="Foundations/Colors/Semantic Colors (web)" />
5
+
6
+ # Semantic Colors
7
+
8
+ - [Brand Colors](#brand-colors)
9
+ - [Functional Gray Tones](#functional-gray-tones)
10
+ - [Semantic Colors](#semantic-colors)
11
+ - [Tokens](#tokens)
12
+
13
+ Some colors have been given a semantic alias that aids in theme development. These aliases are only applicable to web development.
14
+
15
+ Note that several of these aliases are using color names that are still supported but will be deprecated in future code releases.
16
+
17
+ <span id="brand-colors"></span>
18
+
19
+ ## Brand Colors
20
+
21
+ <table className="w-full">
22
+ <thead>
23
+ <tr>
24
+ <th style={{ width: '12rem' }}>Color</th>
25
+ <th>Name</th>
26
+ <th style={{ width: '12rem' }}>Token</th>
27
+ <th style={{ width: '6rem' }}>Hex</th>
28
+ <th style={{ width: '13rem' }}>RGB</th>
29
+ </tr>
30
+ </thead>
31
+ <tbody>
32
+ {/* --- JPL Red --- */}
33
+ <ColorRow
34
+ swatchClass="bg-jpl-red-lighter"
35
+ name="JPL Red Lighter"
36
+ token="jpl-red-lighter"
37
+ />
38
+ <ColorRow
39
+ swatchClass="bg-jpl-red-light"
40
+ name="JPL Red Light"
41
+ token="jpl-red-light"
42
+ />
43
+ <ColorRow
44
+ swatchClass="bg-jpl-red"
45
+ name="JPL Red"
46
+ token="jpl-red"
47
+ />
48
+ <ColorRow
49
+ swatchClass="bg-jpl-red-dark"
50
+ name="JPL Red Dark"
51
+ token="jpl-red-dark"
52
+ />
53
+ <ColorRow
54
+ swatchClass="bg-jpl-red-darker"
55
+ name="JPL Red Darker"
56
+ token="jpl-red-darker"
57
+ />
58
+
59
+ {/* --- JPL Orange --- */}
60
+
61
+ <ColorRow
62
+ swatchClass="bg-jpl-orange-lighter"
63
+ name="JPL Orange Lighter"
64
+ token="jpl-orange-lighter"
65
+ />
66
+ <ColorRow
67
+ swatchClass="bg-jpl-orange-light"
68
+ name="JPL Orange Light"
69
+ token="jpl-orange-light"
70
+ />
71
+ <ColorRow
72
+ swatchClass="bg-jpl-orange"
73
+ name="JPL Orange"
74
+ token="jpl-orange"
75
+ />
76
+ <ColorRow
77
+ swatchClass="bg-jpl-orange-dark"
78
+ name="JPL Orange Dark"
79
+ token="jpl-orange-dark"
80
+ />
81
+ <ColorRow
82
+ swatchClass="bg-jpl-orange-darker"
83
+ name="JPL Orange Darker"
84
+ token="jpl-orange-darker"
85
+ />
86
+
87
+ {/* --- JPL Yellow --- */}
88
+
89
+ <ColorRow
90
+ swatchClass="bg-jpl-yellow-lighter"
91
+ name="JPL Yellow Lighter"
92
+ token="jpl-yellow-lighter"
93
+ />
94
+ <ColorRow
95
+ swatchClass="bg-jpl-yellow-light"
96
+ name="JPL Yellow Light"
97
+ token="jpl-yellow-light"
98
+ />
99
+ <ColorRow
100
+ swatchClass="bg-jpl-yellow"
101
+ name="JPL Yellow"
102
+ token="jpl-yellow"
103
+ />
104
+ <ColorRow
105
+ swatchClass="bg-jpl-yellow-dark"
106
+ name="JPL Yellow Dark"
107
+ token="jpl-yellow-dark"
108
+ />
109
+ <ColorRow
110
+ swatchClass="bg-jpl-yellow-darker"
111
+ name="JPL Yellow Darker"
112
+ token="jpl-yellow-darker"
113
+ />
114
+
115
+ {/* --- JPL Teal --- */}
116
+
117
+ <ColorRow
118
+ swatchClass="bg-jpl-teal-lighter"
119
+ name="JPL Teal Lighter"
120
+ token="jpl-teal-lighter"
121
+ />
122
+ <ColorRow
123
+ swatchClass="bg-jpl-teal-light"
124
+ name="JPL Teal Light"
125
+ token="jpl-teal-light"
126
+ />
127
+ <ColorRow
128
+ swatchClass="bg-jpl-teal"
129
+ name="JPL Teal"
130
+ token="jpl-teal"
131
+ />
132
+ <ColorRow
133
+ swatchClass="bg-jpl-teal-dark"
134
+ name="JPL Teal Dark"
135
+ token="jpl-teal-dark"
136
+ />
137
+ <ColorRow
138
+ swatchClass="bg-jpl-teal-darker"
139
+ name="JPL Teal Darker"
140
+ token="jpl-teal-darker"
141
+ />
142
+
143
+ {/* --- JPL Blue --- */}
144
+
145
+ <ColorRow
146
+ swatchClass="bg-jpl-blue-lighter"
147
+ name="JPL Blue Lighter"
148
+ token="jpl-blue-lighter"
149
+ />
150
+ <ColorRow
151
+ swatchClass="bg-jpl-blue-light"
152
+ name="JPL Blue Light"
153
+ token="jpl-blue-light"
154
+ />
155
+ <ColorRow
156
+ swatchClass="bg-jpl-blue"
157
+ name="JPL Blue"
158
+ token="jpl-blue"
159
+ />
160
+ <ColorRow
161
+ swatchClass="bg-jpl-blue-dark"
162
+ name="JPL Blue Dark"
163
+ token="jpl-blue-dark"
164
+ />
165
+ <ColorRow
166
+ swatchClass="bg-jpl-blue-darker"
167
+ name="JPL Blue Darker"
168
+ token="jpl-blue-darker"
169
+ />
170
+
171
+ {/* --- JPL Violet --- */}
172
+
173
+ <ColorRow
174
+ swatchClass="bg-jpl-violet-lighter"
175
+ name="JPL Violet Lighter"
176
+ token="jpl-violet-lighter"
177
+ />
178
+ <ColorRow
179
+ swatchClass="bg-jpl-violet-light"
180
+ name="JPL Violet Light"
181
+ token="jpl-violet-light"
182
+ />
183
+ <ColorRow
184
+ swatchClass="bg-jpl-violet"
185
+ name="JPL Violet"
186
+ token="jpl-violet"
187
+ />
188
+ <ColorRow
189
+ swatchClass="bg-jpl-violet-dark"
190
+ name="JPL Violet Dark"
191
+ token="jpl-violet-dark"
192
+ />
193
+ <ColorRow
194
+ swatchClass="bg-jpl-violet-darker"
195
+ name="JPL Violet Darker"
196
+ token="jpl-violet-darker"
197
+ />
198
+ {/* --- JPL Magenta --- */}
199
+ <ColorRow
200
+ swatchClass="bg-jpl-magenta-lighter"
201
+ name="JPL Magenta Lighter"
202
+ token="jpl-magenta-lighter"
203
+ />
204
+ <ColorRow
205
+ swatchClass="bg-jpl-magenta-light"
206
+ name="JPL Magenta Light"
207
+ token="jpl-magenta-light"
208
+ />
209
+ <ColorRow
210
+ swatchClass="bg-jpl-magenta"
211
+ name="JPL Magenta"
212
+ token="jpl-magenta"
213
+ />
214
+ <ColorRow
215
+ swatchClass="bg-jpl-magenta-dark"
216
+ name="JPL Magenta Dark"
217
+ token="jpl-magenta-dark"
218
+ />
219
+ <ColorRow
220
+ swatchClass="bg-jpl-magenta-darker"
221
+ name="JPL Magenta Darker"
222
+ token="jpl-magenta-darker"
223
+ />
224
+
225
+ </tbody>
226
+ </table>
227
+
228
+ <span id="functional-gray-tones"></span>
229
+
230
+ ## Functional Gray Tones
231
+
232
+ Grayscale colors are used throughout the site for text and layout.
233
+
234
+ <table>
235
+ <thead>
236
+ <tr>
237
+ <th style={{ width: '12rem' }}>Color</th>
238
+ <th>Name</th>
239
+ <th style={{ width: '12rem' }}>Token</th>
240
+ <th style={{ width: '6rem' }}>Hex</th>
241
+ <th style={{ width: '13rem' }}>RGB</th>
242
+ </tr>
243
+ </thead>
244
+ <tbody>
245
+ <ColorRow
246
+ swatchClass="bg-white"
247
+ name="White"
248
+ token="white"
249
+ />
250
+ <ColorRow
251
+ swatchClass="bg-off-white"
252
+ name="Off White"
253
+ token="off-white"
254
+ />
255
+ <ColorRow
256
+ swatchClass="bg-gray-light"
257
+ name="Gray Light"
258
+ token="gray-light"
259
+ />
260
+ <ColorRow
261
+ swatchClass="bg-gray-light-mid"
262
+ name="Gray Light Mid"
263
+ token="gray-light-mid"
264
+ />
265
+ <ColorRow
266
+ swatchClass="bg-gray-mid"
267
+ name="Gray Mid"
268
+ token="gray-mid"
269
+ />
270
+ <ColorRow
271
+ swatchClass="bg-gray-mid-dark"
272
+ name="Gray Mid Dark"
273
+ token="gray-mid-dark"
274
+ />
275
+ <ColorRow
276
+ swatchClass="bg-gray-dark"
277
+ name="Gray Dark"
278
+ token="gray-dark"
279
+ />
280
+ <ColorRow
281
+ swatchClass="bg-black"
282
+ name="Black"
283
+ token="black"
284
+ />
285
+ </tbody>
286
+ </table>
287
+
288
+ Although several gradations are available via Tailwind CSS classNamees, make sure to only use the intended colors for text:
289
+
290
+ - <div className="w-3 h-3 bg-gray-dark inline-block"></div>
291
+ <code>.text-gray-dark</code>
292
+ - <div className="w-3 h-3 bg-gray-mid-dark inline-block"></div>
293
+ <code>.text-gray-mid-dark</code>
294
+ - <div className="w-3 h-3 bg-gray-mid inline-block"></div>
295
+ <code>.text-gray-mid</code>
296
+
297
+ <span id="semantic-colors"></span>
298
+
299
+ ## Semantic Colors
300
+
301
+ Recommended for use in forms, alerts, or any element meant to communicate a state.
302
+
303
+ **Note:** Color should never be the _only_ means used to convey state information;
304
+ it must always be accompanied by text or iconography that makes it clear for colorblind users.
305
+
306
+ <table>
307
+ <thead>
308
+ <tr>
309
+ <th style={{ width: '12rem' }}>Color</th>
310
+ <th>Name</th>
311
+ <th style={{ width: '12rem' }}>Token</th>
312
+ <th style={{ width: '6rem' }}>Hex</th>
313
+ <th style={{ width: '13rem' }}>RGB</th>
314
+ </tr>
315
+ </thead>
316
+ <tbody>
317
+ <ColorRow
318
+ swatchClass="bg-warning-light"
319
+ name="Alert Light"
320
+ token="warning-light"
321
+ />
322
+ <ColorRow
323
+ swatchClass="bg-warning"
324
+ name="Alert"
325
+ token="warning"
326
+ />
327
+ <ColorRow
328
+ swatchClass="bg-warning-dark"
329
+ name="Alert Dark"
330
+ token="warning-dark"
331
+ />
332
+ <ColorRow
333
+ swatchClass="bg-error-light"
334
+ name="Error Light"
335
+ token="error-light"
336
+ />
337
+ <ColorRow
338
+ swatchClass="bg-error"
339
+ name="Error"
340
+ token="error"
341
+ />
342
+ <ColorRow
343
+ swatchClass="bg-error-dark"
344
+ name="Error Dark"
345
+ token="error-dark"
346
+ />
347
+ <ColorRow
348
+ swatchClass="bg-success-light"
349
+ name="Success Light"
350
+ token="success-light"
351
+ />
352
+ <ColorRow
353
+ swatchClass="bg-success"
354
+ name="Success"
355
+ token="success"
356
+ />
357
+ <ColorRow
358
+ swatchClass="bg-success-dark"
359
+ name="Success Dark"
360
+ token="success-dark"
361
+ />
362
+ <ColorRow
363
+ swatchClass="bg-focus-light"
364
+ name="Focus Light"
365
+ token="focus-light"
366
+ />
367
+ <ColorRow
368
+ swatchClass="bg-focus"
369
+ name="Focus"
370
+ token="focus"
371
+ />
372
+ <ColorRow
373
+ swatchClass="bg-focus-dark"
374
+ name="Focus Dark"
375
+ token="focus-dark"
376
+ />
377
+ <ColorRow
378
+ swatchClass="bg-disabled"
379
+ name="Disabled"
380
+ token="disabled"
381
+ />
382
+ </tbody>
383
+ </table>
384
+
385
+ <span id="tokens"></span>
386
+
387
+ ## Tokens
388
+
389
+ All colors are available via Tailwind CSS classNamees using tokens:
390
+
391
+ ```
392
+ .bg-{token}
393
+ .text-{token}
394
+ .border-{token}
395
+ ```
@@ -7,15 +7,20 @@ import * as Stories from './typography.stories'
7
7
 
8
8
  ## Fonts
9
9
 
10
- Below are all fonts used in the design system.
10
+ Helvetica Now is the main typeface used in Explorer-1. Each family has a specific use-case:
11
11
 
12
- ### Metropolis
12
+ ### Helvetica Now Display
13
13
 
14
- Metropolis is used for all heading levels and body copy.
14
+ <em>Display</em> is used for headlines and other large text. It is also used in body text when the
15
+ font size is large enough.
15
16
 
16
- ### Archivo Narrow
17
+ ### Helvetica Now Text
17
18
 
18
- Archivo Narrow is used for subtitles and buttons and is always used in UPPERCASE.
19
+ <em>Text</em> is used for regular-sized text.
20
+
21
+ ### Helvetica Now Micro
22
+
23
+ Helvetica Now Micro is used for subtitles and buttons and in UPPERCASE. It also used for small text (captions) in normal-case.
19
24
 
20
25
  <Canvas of={Stories.Fonts} />
21
26
 
@@ -0,0 +1,138 @@
1
+ // .storybook/components/ColorRow.jsx
2
+
3
+ import React, { useState, useEffect, useRef } from 'react'
4
+
5
+ // Helper function to convert "rgb(r, g, b)" to "#RRGGBB"
6
+ const rgbToHex = (rgb) => {
7
+ // Match the numbers in 'rgb(r, g, b)'
8
+ const match = rgb.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/)
9
+ if (!match) return rgb // Return original if not a standard rgb string
10
+
11
+ // Convert each number (0-255) to a 2-digit hex string
12
+ const toHex = (c) => ('0' + parseInt(c, 10).toString(16)).slice(-2)
13
+
14
+ return `#${toHex(match[1])}${toHex(match[2])}${toHex(match[3])}`
15
+ }
16
+
17
+ export const ColorRow = ({ swatchClass, name, token }) => {
18
+ const [copied, setCopied] = useState(false)
19
+ // This state will hold the color we read from the DOM
20
+ const [computedToken, setToken] = useState('')
21
+ const [computedHex, setComputedHex] = useState('')
22
+ const [computedRgb, setRgbColor] = useState('')
23
+ // This ref gives us access to the swatch <div> element
24
+ const swatchRef = useRef(null)
25
+
26
+ // This effect runs after the component renders
27
+ useEffect(() => {
28
+ // We only run this if the ref is attached to an element
29
+ if (swatchRef.current) {
30
+ // 1. Get the computed style from the DOM element
31
+ const style = window.getComputedStyle(swatchRef.current)
32
+ const rgbColor = style.backgroundColor
33
+ // 2. Convert the 'rgb(r, g, b)' string to a hex string
34
+ setComputedHex(rgbToHex(rgbColor))
35
+ // 3. Also save the rgb values
36
+ setRgbColor(rgbColor)
37
+ // 4. Also save the token
38
+ setToken(token)
39
+ }
40
+ }, [swatchClass]) // Re-run if the class name changes
41
+
42
+ const copyHexToClipboard = () => {
43
+ if (!computedHex) return // Don't copy if we haven't read the color yet
44
+ navigator.clipboard
45
+ .writeText(computedHex)
46
+ .then(() => {
47
+ setCopied(true)
48
+ // Reset the "Copied!" text after 2 seconds
49
+ setTimeout(() => setCopied(false), 2000)
50
+ })
51
+ .catch((err) => {
52
+ console.error('Failed to copy: ', err)
53
+ })
54
+ }
55
+
56
+ const copyRgbToClipboard = () => {
57
+ if (!computedRgb) return // Don't copy if we haven't read the color yet
58
+ navigator.clipboard
59
+ .writeText(computedRgb)
60
+ .then(() => {
61
+ setCopied(true)
62
+ // Reset the "Copied!" text after 2 seconds
63
+ setTimeout(() => setCopied(false), 2000)
64
+ })
65
+ .catch((err) => {
66
+ console.error('Failed to copy: ', err)
67
+ })
68
+ }
69
+
70
+ const copyTokenToClipboard = () => {
71
+ if (!computedToken) return // Don't copy if we haven't read the color yet
72
+ navigator.clipboard
73
+ .writeText(computedToken)
74
+ .then(() => {
75
+ setCopied(true)
76
+ // Reset the "Copied!" text after 2 seconds
77
+ setTimeout(() => setCopied(false), 2000)
78
+ })
79
+ .catch((err) => {
80
+ console.error('Failed to copy: ', err)
81
+ })
82
+ }
83
+
84
+ return (
85
+ <tr>
86
+ {/* Column 1: The Swatch */}
87
+ <td>
88
+ <div
89
+ ref={swatchRef}
90
+ className={swatchClass}
91
+ onClick={copyHexToClipboard}
92
+ title={computedHex ? `Click to copy ${computedHex}` : 'Copy color'}
93
+ style={{
94
+ width: '100%',
95
+ height: '30px',
96
+ cursor: 'pointer'
97
+ }}
98
+ />
99
+ </td>
100
+
101
+ {/* Column 2: The Name */}
102
+ <td>{name}</td>
103
+
104
+ {/* Column 3: The Token */}
105
+ <td>
106
+ <button
107
+ className="text-left w-full hover:text-blue-500"
108
+ title={computedToken ? `Click to copy ${computedToken}` : 'Copy color'}
109
+ onClick={copyTokenToClipboard}
110
+ >
111
+ <code>{token}</code>
112
+ </button>
113
+ </td>
114
+
115
+ {/* Column 4: Feedback Text */}
116
+ <td style={{ minWidth: '70px', textAlign: 'center' }}>
117
+ {/* {copied ? <strong>Copied!</strong> : ''} */}
118
+ <button
119
+ className="text-left w-full hover:text-blue-500"
120
+ title={computedHex ? `Click to copy ${computedHex}` : 'Copy color'}
121
+ onClick={copyHexToClipboard}
122
+ >
123
+ <code>{computedHex}</code>
124
+ </button>
125
+ </td>
126
+ {/* Column 5: Copy RGB*/}
127
+ <td style={{ minWidth: '70px', textAlign: 'left' }}>
128
+ <button
129
+ className="text-left w-full hover:text-blue-500"
130
+ title={computedRgb ? `Click to copy ${computedRgb}` : 'Copy color'}
131
+ onClick={copyRgbToClipboard}
132
+ >
133
+ <code>{computedRgb}</code>
134
+ </button>
135
+ </td>
136
+ </tr>
137
+ )
138
+ }
@@ -220,7 +220,7 @@
220
220
  <BlockLinkCarousel
221
221
  item-type="cards"
222
222
  class="print:!px-4"
223
- heading="MORE EVENTS"
223
+ heading="More Events"
224
224
  :items="moreEvents"
225
225
  />
226
226
  </div>
@@ -108,7 +108,7 @@
108
108
  v-if="data.relatedMission && data.relatedMission.length"
109
109
  class="lg:mb-16 mb-8"
110
110
  >
111
- <span class="font-secondary w-full text-base tracking-wider uppercase"> Mission </span>
111
+ <span class="font-secondary w-full text-base uppercase"> Mission </span>
112
112
  <ul>
113
113
  <li
114
114
  v-for="(block, index) in data.relatedMission"
@@ -150,7 +150,7 @@
150
150
  v-if="data.targets && data.targets.length"
151
151
  class="lg:mb-16 mb-8"
152
152
  >
153
- <span class="font-secondary w-full text-base tracking-wider uppercase"> Target </span>
153
+ <span class="font-secondary w-full text-base uppercase"> Target </span>
154
154
  <ul>
155
155
  <li
156
156
  v-for="(item, index) in data.targets"
@@ -170,9 +170,7 @@
170
170
  v-if="data.spacecraft && data.spacecraft.length"
171
171
  class="lg:mb-16 mb-8"
172
172
  >
173
- <span class="font-secondary w-full text-base tracking-wider uppercase">
174
- Spacecraft
175
- </span>
173
+ <span class="font-secondary w-full text-base uppercase"> Spacecraft </span>
176
174
  <ul>
177
175
  <li
178
176
  v-for="(item, index) in data.spacecraft"
@@ -188,9 +186,7 @@
188
186
  v-if="data.instruments && data.instruments.length"
189
187
  class="lg:mb-16 mb-8"
190
188
  >
191
- <span class="font-secondary w-full text-base tracking-wider uppercase">
192
- Instrument
193
- </span>
189
+ <span class="font-secondary w-full text-base uppercase"> Instrument </span>
194
190
  <ul>
195
191
  <li
196
192
  v-for="(item, index) in data.instruments"
@@ -207,7 +203,7 @@
207
203
  v-if="data.image.credit"
208
204
  class="lg:mb-16 mb-8"
209
205
  >
210
- <span class="font-secondary w-full text-base tracking-wider uppercase"> Credit </span>
206
+ <span class="font-secondary w-full text-base uppercase"> Credit </span>
211
207
  <BlockText :text="data.image.credit" />
212
208
  </div>
213
209
  </aside>
@@ -222,7 +218,7 @@
222
218
  indent="col-2"
223
219
  >
224
220
  <h2
225
- class="font-primary text-gray-dark lg:mb-5 lg:text-6xl mb-6 text-3xl font-semibold leading-normal tracking-normal uppercase"
221
+ class="font-primary text-gray-dark lg:mb-5 lg:text-6xl mb-6 text-3xl font-bold leading-normal tracking-normal uppercase"
226
222
  >
227
223
  Keep Exploring
228
224
  </h2>
@@ -81,7 +81,7 @@
81
81
  :text="data.topper"
82
82
  />
83
83
  <p
84
- class="text-body-lg font-semibold"
84
+ class="text-body-lg font-bold"
85
85
  itemprop="abstract"
86
86
  >
87
87
  {{ data.summary }}
@@ -35,7 +35,7 @@
35
35
  >
36
36
  <BasePill
37
37
  variant="primary"
38
- size="lg"
38
+ size="md"
39
39
  :text="data.eventType"
40
40
  />
41
41
  </div>
@@ -125,7 +125,7 @@
125
125
 
126
126
  <p
127
127
  v-if="data.summary"
128
- class="BlockText text-body-lg mb-8 px-4 lg:px-0 font-semibold"
128
+ class="BlockText text-body-lg mb-8 px-4 lg:px-0 font-bold"
129
129
  >
130
130
  {{ data.summary }}
131
131
  </p>
@@ -89,7 +89,7 @@ const submitSearch = () => {
89
89
  class="md:flex flex-row mt-10"
90
90
  >
91
91
  <h2
92
- class="text-subtitle mt-1 text-white font-semibold whitespace-nowrap mr-5 mb-3 md:mb-0 lg:mr-8"
92
+ class="text-subtitle mt-1 text-white font-bold whitespace-nowrap mr-5 mb-3 md:mb-0 lg:mr-8"
93
93
  >
94
94
  Hot Topics
95
95
  </h2>
@@ -364,7 +364,7 @@ const { data } = reactive(props)
364
364
  v-if="creditText"
365
365
  class="lg:mb-16 mb-8"
366
366
  >
367
- <span class="font-secondary w-full text-base tracking-wider uppercase"> Credit </span>
367
+ <span class="font-secondary w-full text-base uppercase"> Credit </span>
368
368
  <BlockText :text="creditText" />
369
369
  </div>
370
370
  </aside>
@@ -147,7 +147,7 @@ defineExpose({
147
147
  :text="data.topper"
148
148
  />
149
149
  <p
150
- class="text-body-lg font-semibold"
150
+ class="text-body-lg font-bold"
151
151
  itemprop="abstract"
152
152
  >
153
153
  {{ data.summary }}
@@ -57,7 +57,7 @@
57
57
  <!-- toggle gallery view -->
58
58
  <div
59
59
  v-if="allowGridView"
60
- class="align-end flex text-2xl font-secondary font-semibold tracking-wider"
60
+ class="align-end flex text-2xl font-secondary font-bold"
61
61
  >
62
62
  <button
63
63
  class="lg:ml-6"