@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.
- package/CHANGELOG.md +12 -0
- package/package.json +2 -2
- package/src/assets/fonts/helvetica-now/.gitkeep +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Bd It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Black.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Blk It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Bold.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Hair It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Hairline.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Light.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Lt It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Md It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Medium.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Th It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display Thin.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBd It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBlack.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBlk It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XBold.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XLight.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display XLt It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Display.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Bd It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Bold.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro ExtraBold.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro ExtraLight.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Light.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Lt It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Md It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro Medium.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro XBd It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro XLt It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Micro.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Bd It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Black.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Blk It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Bold.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text ExtraBold.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text ExtraLight.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Light.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Lt It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Md It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Medium.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Th It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text Thin.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text XBd It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text XLt It.otf +0 -0
- package/src/assets/fonts/helvetica-now/Monotype - Helvetica Now Text.otf +0 -0
- package/src/components/AboutTheAuthor/AboutTheAuthor.vue +2 -2
- package/src/components/AsteroidWatchWidget/AsteroidWatchWidget.vue +8 -6
- package/src/components/BaseAccordionItem/BaseAccordionItem.vue +1 -1
- package/src/components/BaseAudio/BaseAudio.vue +1 -1
- package/src/components/BaseButton/BaseButton.stories.ts +0 -6
- package/src/components/BaseButton/BaseButton.vue +1 -1
- package/src/components/BaseCheckboxGroup/BaseCheckboxGroup.vue +3 -3
- package/src/components/BaseImageCaption/BaseImageCaption.vue +1 -1
- package/src/components/BasePill/BasePill.vue +4 -4
- package/src/components/BaseRadioGroup/BaseRadioGroup.vue +4 -5
- package/src/components/BaseTimer/BaseTimer.vue +2 -1
- package/src/components/BlockCardGridItem/BlockCardGridItemElement.vue +2 -2
- package/src/components/BlockCsrTable/BlockCsrTable.vue +2 -2
- package/src/components/BlockCta/BlockCta.vue +2 -2
- package/src/components/BlockImageCarousel/BlockImageCarousel.vue +2 -2
- package/src/components/BlockKeyPoints/BlockKeyPoints.vue +1 -1
- package/src/components/BlockLinkCard/BlockLinkCard.stories.js +3 -1
- package/src/components/BlockLinkCard/BlockLinkCard.vue +6 -6
- package/src/components/BlockLinkCard/BlockLinkCardCollectionLg.vue +1 -1
- package/src/components/BlockLinkTile/BlockLinkTile.vue +2 -2
- package/src/components/BlockNewsletterSignup/BlockNewsletterSignup.vue +3 -3
- package/src/components/BlockRichTable/BlockRichTable.vue +2 -2
- package/src/components/BlockTeaser/BlockTeaser.vue +1 -1
- package/src/components/CalendarChip/CalendarChip.vue +2 -2
- package/src/components/DetailHeadline/DetailHeadline.vue +3 -3
- package/src/components/HeroLarge/HeroLarge.vue +3 -4
- package/src/components/HeroMedium/HeroMedium.vue +1 -1
- package/src/components/HomepageCarousel/HomepageCarousel.vue +1 -1
- package/src/components/HomepageCarouselItem/HomepageCarouselItem.vue +2 -2
- package/src/components/HomepageEmbedBlock/HomepageEmbedBlock.vue +1 -1
- package/src/components/HomepageMissionsCarousel/HomepageMissionsCarousel.vue +1 -1
- package/src/components/HomepageMissionsCarousel/HomepageMissionsCarouselItem.vue +3 -3
- package/src/components/HomepageStats/HomepageStats.vue +1 -1
- package/src/components/HomepageTeaserBlock/HomepageTeaserBlock.vue +1 -1
- package/src/components/ImageDetailContextImage/ImageDetailContextImage.vue +1 -1
- package/src/components/MetaPanel/MetaPanel.vue +4 -4
- package/src/components/MetaPanelAccordion/MetaPanelAccordion.vue +3 -3
- package/src/components/MetadataEduResource/MetadataEduResource.vue +1 -1
- package/src/components/MetadataEvent/MetadataEvent.vue +1 -1
- package/src/components/MissionDetailAbout/MissionDetailAbout.vue +1 -1
- package/src/components/MissionDetailHero/MissionDetailHero.vue +5 -3
- package/src/components/MissionDetailHighlights/MissionDetailHighlights.vue +1 -1
- package/src/components/MissionDetailHighlights/MissionDetailHighlightsCarouselItem.vue +2 -2
- package/src/components/MissionDetailStats/MissionDetailStatsMini.vue +2 -2
- package/src/components/MixinCarousel/MixinCarousel.vue +3 -3
- package/src/components/MixinFancybox/MixinFancybox.vue +1 -1
- package/src/components/MixinFancybox/MixinFancyboxOpenButton.vue +1 -1
- package/src/components/NavDesktop/NavDesktopDropdown.vue +1 -1
- package/src/components/NavDesktop/NavDesktopDropdownContent.vue +3 -3
- package/src/components/NavDesktop/NavDesktopDropdownMore.vue +1 -1
- package/src/components/NavDesktopEdu/NavDesktopEdu.vue +8 -8
- package/src/components/NavHeading/NavHeading.vue +2 -2
- package/src/components/NavHighlight/NavHighlight.vue +6 -1
- package/src/components/NavJumpMenu/NavJumpMenuContent.vue +1 -1
- package/src/components/NavLinkList/NavLinkList.vue +1 -1
- package/src/components/NavMobile/NavMobile.stories.js +1 -0
- package/src/components/NavMobile/NavMobile.vue +6 -6
- package/src/components/NavMobile/NavMobileDropdown.vue +1 -1
- package/src/components/NavMobile/NavMobileLink.vue +1 -1
- package/src/components/NavSecondary/NavSecondary.vue +2 -2
- package/src/components/NavSecondary/NavSecondaryDropdown.vue +3 -3
- package/src/components/NavSecondary/NavSecondaryDropdownContent.vue +6 -6
- package/src/components/NavSecondary/NavSecondaryLink.vue +3 -3
- package/src/components/NavSocial/NavSocial.vue +3 -2
- package/src/components/PodcastSeriesCarousel/PodcastSeriesCarousel.vue +1 -5
- package/src/components/SearchFilterGroup/SearchFilterGroup.vue +3 -3
- package/src/components/SearchInput/SearchInput.vue +7 -6
- package/src/components/SearchPagination/SearchPagination.vue +2 -0
- package/src/components/SearchResultGridItem/SearchResultGridItem.vue +1 -1
- package/src/components/SearchSelectMenu/SearchSelectMenu.vue +1 -1
- package/src/components/ShareButtons/ShareButtons.vue +4 -4
- package/src/components/ShareButtonsEdu/ShareButtonsEdu.vue +1 -1
- package/src/components/SwimlaneCTA/SwimlaneCTA.vue +4 -6
- package/src/components/TheFooter/TheFooter.vue +3 -3
- package/src/components/TimelineDialog/TimelineDialog.vue +7 -7
- package/src/components/TopicDetailMissionCarouselItem/TopicDetailMissionCarouselItem.vue +2 -2
- package/src/components/TopicDetailMissionSpotlight/TopicDetailMissionSpotlight.vue +2 -4
- package/src/components/TopicDetailMore/TopicDetailMore.vue +1 -5
- package/src/docs/foundation/FontVariants.vue +49 -27
- package/src/docs/foundation/color.docs.mdx +544 -115
- package/src/docs/foundation/colorsemantic.docs.mdx +395 -0
- package/src/docs/foundation/typography.docs.mdx +10 -5
- package/src/docs/utils/ColorRow.jsx +138 -0
- package/src/templates/PageEventDetail/PageEventDetail.vue +1 -1
- package/src/templates/PageImageDetail/PageImageDetail.vue +6 -10
- package/src/templates/PageNewsDetail/PageNewsDetail.vue +1 -1
- package/src/templates/edu/PageEduEventDetail/PageEduEventDetail.vue +2 -2
- package/src/templates/edu/PageEduHome/PageEduHome.vue +1 -1
- package/src/templates/edu/PageEduMultimediaDetail/PageEduMultimediaDetail.vue +1 -1
- package/src/templates/edu/PageEduNewsDetail/PageEduNewsDetail.vue +1 -1
- package/src/templates/www/PageCuratedGallery/PageCuratedGallery.vue +1 -1
- package/src/templates/www/PageInfographicDetail/PageInfographicDetail.vue +1 -1
- package/src/templates/www/PageMaintenanceMode/PageMaintenanceMode.vue +1 -1
- package/src/templates/www/PagePodcast/PagePodcast.vue +1 -1
- 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
|
-
|
|
10
|
+
Helvetica Now is the main typeface used in Explorer-1. Each family has a specific use-case:
|
|
11
11
|
|
|
12
|
-
###
|
|
12
|
+
### Helvetica Now Display
|
|
13
13
|
|
|
14
|
-
|
|
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
|
-
###
|
|
17
|
+
### Helvetica Now Text
|
|
17
18
|
|
|
18
|
-
|
|
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
|
+
}
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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>
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
>
|
|
36
36
|
<BasePill
|
|
37
37
|
variant="primary"
|
|
38
|
-
size="
|
|
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-
|
|
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-
|
|
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
|
|
367
|
+
<span class="font-secondary w-full text-base uppercase"> Credit </span>
|
|
368
368
|
<BlockText :text="creditText" />
|
|
369
369
|
</div>
|
|
370
370
|
</aside>
|