@primer/brand-css 0.0.0-20250212132611

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 (75) hide show
  1. package/components/Accordion/Accordion.css +305 -0
  2. package/components/ActionMenu/ActionMenu.css +187 -0
  3. package/components/AnchorNav/AnchorNav.css +427 -0
  4. package/components/Avatar/Avatar.css +115 -0
  5. package/components/Bento/Bento.css +2157 -0
  6. package/components/Box/Box.css +2795 -0
  7. package/components/Box/Box.features.css +48 -0
  8. package/components/Breadcrumbs/Breadcrumbs.css +81 -0
  9. package/components/BreakoutBanner/BreakoutBanner.css +109 -0
  10. package/components/Button/Button.css +207 -0
  11. package/components/ButtonGroup/ButtonGroup.css +10 -0
  12. package/components/CTABanner/CTABanner.css +104 -0
  13. package/components/CTAForm/CTAForm.css +48 -0
  14. package/components/Card/Card.css +183 -0
  15. package/components/ComparisonTable/ComparisonTable.css +290 -0
  16. package/components/ExpandableArrow/ExpandableArrow.css +26 -0
  17. package/components/EyebrowBanner/EyebrowBanner.css +320 -0
  18. package/components/FAQ/FAQ.css +51 -0
  19. package/components/FAQ/FAQGroup.css +51 -0
  20. package/components/Footnotes/Footnotes.css +35 -0
  21. package/components/FrostedGlassVFX/FrostedGlassVFX.css +50 -0
  22. package/components/Grid/Grid.css +741 -0
  23. package/components/Heading/Heading.css +284 -0
  24. package/components/Hero/Hero.css +87 -0
  25. package/components/IDE/IDE.css +392 -0
  26. package/components/Icon/Icon.css +121 -0
  27. package/components/Image/Image.css +54 -0
  28. package/components/InlineLink/InlineLink.css +30 -0
  29. package/components/Label/Label.css +167 -0
  30. package/components/Link/Link.css +84 -0
  31. package/components/LogoSuite/LogoSuite.css +165 -0
  32. package/components/MinimalFooter/MinimalFooter.css +116 -0
  33. package/components/MonaSans/MonaSans.css +4 -0
  34. package/components/Pagination/Pagination.css +117 -0
  35. package/components/Pillar/Pillar.css +106 -0
  36. package/components/PricingOptions/PricingOptions.css +357 -0
  37. package/components/Prose/Prose.css +332 -0
  38. package/components/Section/Section.css +156 -0
  39. package/components/Section/Section.features.css +33 -0
  40. package/components/SectionIntro/SectionIntro.css +48 -0
  41. package/components/Stack/Stack.css +793 -0
  42. package/components/Statistic/Statistic.css +91 -0
  43. package/components/SubNav/SubNav.css +678 -0
  44. package/components/SubdomainNavBar/SubdomainNavBar.css +728 -0
  45. package/components/Testimonial/Testimonial.css +228 -0
  46. package/components/Text/Text.css +195 -0
  47. package/components/Timeline/Timeline.css +79 -0
  48. package/components/Tooltip/Tooltip.css +170 -0
  49. package/components/VideoPlayer/VideoPlayer.css +348 -0
  50. package/components/VideoPlayer/components/Captions/Captions.css +17 -0
  51. package/components/VideoPlayer/components/VolumeControl/VolumeControl.css +3 -0
  52. package/components/animation/Animation.css +192 -0
  53. package/components/animation/TextRevealAnimation/TextRevealAnimation.css +38 -0
  54. package/components/forms/Checkbox/Checkbox.css +88 -0
  55. package/components/forms/ControlGroup/ControlGroup.css +59 -0
  56. package/components/forms/FormControl/FormControl.css +113 -0
  57. package/components/forms/Radio/Radio.css +111 -0
  58. package/components/forms/Select/Select.css +143 -0
  59. package/components/forms/TextInput/TextInput.css +266 -0
  60. package/components/forms/Textarea/Textarea.css +129 -0
  61. package/components/list/ListItem/ListItem.css +29 -0
  62. package/components/list/OrderedList/OrderedList.css +3 -0
  63. package/components/list/list-shared.css +10 -0
  64. package/components/recipes/FeaturePreviewLPs/FeaturePreviewLevelOne/FeaturePreviewLevelOne.css +204 -0
  65. package/components/recipes/FeaturePreviewLPs/FeaturePreviewLevelTwo/FeaturePreviewLevelTwo.css +57 -0
  66. package/components/recipes/FeaturePreviewLPs/FeaturePreviewLevelZero/FeaturePreviewLevelZero.css +3 -0
  67. package/components/recipes/SolutionTemplates/CategoryPage/CategoryPage.css +83 -0
  68. package/components/recipes/SolutionTemplates/SolutionPage/SolutionPage.css +119 -0
  69. package/components/recipes/SolutionTemplates/SolutionsOverview/SolutionsOverview.css +35 -0
  70. package/components/recipes/SolutionTemplates/parallax.css +165 -0
  71. package/components/recipes/seo/Article/Article.css +289 -0
  72. package/components/recipes/seo/Category/CategoryPage.css +43 -0
  73. package/components/river/RiverStoryScroll/RiverStoryScroll.css +470 -0
  74. package/components/river/river-shared.css +205 -0
  75. package/package.json +42 -0
@@ -0,0 +1,165 @@
1
+ /*
2
+ * Parallax effect
3
+ * Opt-in feature. Not officialy-support Primer Brand pattern.
4
+ */
5
+
6
+ .hero {
7
+ --parallax-start-spacing: 74px;
8
+ --hero-height: 110vh;
9
+
10
+ position: relative;
11
+ height: calc(var(--hero-height) - var(--parallax-start-spacing));
12
+ }
13
+
14
+ @media screen and (min-height: 600px) {
15
+ .hero {
16
+ --hero-height: 100vh;
17
+ }
18
+ }
19
+
20
+ @media screen and (min-height: 700px) {
21
+ .hero {
22
+ --hero-height: 80vh;
23
+ }
24
+ }
25
+
26
+ @media screen and (min-height: 900px) {
27
+ .hero {
28
+ --hero-height: 75vh;
29
+ }
30
+ }
31
+
32
+ @media screen and (min-height: 1000px) {
33
+ .hero {
34
+ --hero-height: 60vh;
35
+ }
36
+ }
37
+
38
+ @media screen and (min-height: 1280px) and (min-height: 1000px) {
39
+ .hero {
40
+ --hero-height: 60vh;
41
+ }
42
+ }
43
+
44
+ .parallax {
45
+ position: absolute;
46
+ top: calc(-1 * var(--parallax-start-spacing));
47
+ width: 100%;
48
+ height: var(--hero-height);
49
+ max-height: 600px;
50
+ }
51
+
52
+ .background,
53
+ .foreground {
54
+ width: 100%;
55
+ height: 100vh;
56
+
57
+ animation-fill-mode: forwards;
58
+ animation-timing-function: linear;
59
+ animation-timeline: scroll();
60
+ animation-range: 0vh var(--hero-height);
61
+ }
62
+
63
+ .background {
64
+ position: absolute;
65
+ }
66
+
67
+ .foreground {
68
+ position: relative;
69
+ }
70
+
71
+ .centeredHero {
72
+ display: flex;
73
+ height: var(--hero-height);
74
+ justify-content: center;
75
+ }
76
+
77
+ .heroImage {
78
+ min-width: 100%;
79
+ min-height: 100%;
80
+ }
81
+
82
+ .heroImageOverlay {
83
+ position: absolute;
84
+ top: 0;
85
+ width: 100%;
86
+ height: 100%;
87
+ }
88
+
89
+ .lightHero .heroImageOverlay {
90
+ background: linear-gradient(
91
+ 0deg,
92
+ rgba(255, 255, 255, 0.8) 0%,
93
+ rgba(255, 255, 255, 0) 50%,
94
+ rgba(255, 255, 255, 0.6) 100%
95
+ );
96
+ }
97
+
98
+ .darkHero .heroImageOverlay {
99
+ background: linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.6) 100%);
100
+ }
101
+
102
+ .heroImageOverlayDark {
103
+ position: absolute;
104
+ top: 0;
105
+ width: 100%;
106
+ height: 100%;
107
+ background: linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.6) 100%);
108
+ }
109
+
110
+ .foregroundContents {
111
+ padding: 0;
112
+ padding-block-start: calc(var(--base-size-20) + var(--parallax-start-spacing));
113
+ height: 100%;
114
+ }
115
+
116
+ .articleContents {
117
+ border-radius: var(--brand-borderRadius-xlarge);
118
+ margin-top: calc(-1 * var(--brand-borderRadius-xlarge));
119
+ background-color: var(--brand-color-canvas-default);
120
+ position: relative;
121
+ z-index: 90;
122
+ }
123
+
124
+ .lightHero .articleContents {
125
+ box-shadow: 0px -2px 49px 0px rgba(0, 0, 0, 0.25);
126
+ }
127
+
128
+ @keyframes parallax-background {
129
+ from {
130
+ top: 0;
131
+ filter: blur(0px);
132
+ }
133
+ to {
134
+ top: calc(var(--hero-height) * -0.4);
135
+ filter: blur(0) brightness(0%);
136
+ }
137
+ }
138
+
139
+ @keyframes parallax-foreground {
140
+ from {
141
+ top: 0;
142
+ }
143
+ to {
144
+ top: calc(calc(var(--hero-height) * 2) * -0.2);
145
+ filter: blur(10px) brightness(0%);
146
+ }
147
+ }
148
+
149
+ /* Progressive enhancement opt-in */
150
+ @supports (animation-timeline: scroll()) {
151
+ @media (prefers-reduced-motion: no-preference) {
152
+ .parallax {
153
+ position: fixed;
154
+ top: 0;
155
+ }
156
+
157
+ .foreground {
158
+ animation-name: parallax-foreground;
159
+ }
160
+
161
+ .background {
162
+ animation-name: parallax-background;
163
+ }
164
+ }
165
+ }
@@ -0,0 +1,289 @@
1
+ .articleCol {
2
+ order: 1;
3
+ }
4
+
5
+ .asideCol {
6
+ order: 2;
7
+ }
8
+
9
+ .socialLinks {
10
+ list-style: none;
11
+ display: inline-flex;
12
+ align-items: center;
13
+ gap: var(--base-size-16);
14
+ margin: 0;
15
+ padding: 0;
16
+ }
17
+
18
+ .hero {
19
+ --parallax-start-spacing: 74px;
20
+ --hero-height: 70vh;
21
+
22
+ position: relative;
23
+ height: calc(var(--hero-height) - var(--parallax-start-spacing));
24
+ }
25
+
26
+ .lightHero .hero {
27
+ background: var(--base-color-scale-white-0);
28
+ }
29
+
30
+ .darkHero .hero {
31
+ background: var(--base-color-scale-black-0);
32
+ }
33
+
34
+ .parallax {
35
+ position: absolute;
36
+ top: calc(-1 * var(--parallax-start-spacing));
37
+ width: 100%;
38
+ height: var(--hero-height);
39
+ }
40
+
41
+ .background,
42
+ .foreground {
43
+ width: 100%;
44
+ height: 100%;
45
+
46
+ animation-fill-mode: forwards;
47
+ animation-timing-function: linear;
48
+ animation-timeline: scroll();
49
+ animation-range: 0vh var(--hero-height);
50
+ }
51
+
52
+ .background {
53
+ position: absolute;
54
+ }
55
+
56
+ .foreground {
57
+ position: relative;
58
+ }
59
+
60
+ .heroImage {
61
+ min-width: 100%;
62
+ min-height: 100%;
63
+ }
64
+
65
+ .heroImageOverlay {
66
+ position: absolute;
67
+ top: 0;
68
+ width: 100%;
69
+ height: 100%;
70
+ }
71
+
72
+ .lightHero .heroImageOverlay {
73
+ background: linear-gradient(
74
+ 0deg,
75
+ rgba(255, 255, 255, 0.8) 0%,
76
+ rgba(255, 255, 255, 0) 50%,
77
+ rgba(255, 255, 255, 0.6) 100%
78
+ );
79
+ }
80
+
81
+ .darkHero .heroImageOverlay {
82
+ background: linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.6) 100%);
83
+ }
84
+
85
+ .heroImageOverlayDark {
86
+ position: absolute;
87
+ top: 0;
88
+ width: 100%;
89
+ height: 100%;
90
+ background: linear-gradient(0deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.6) 100%);
91
+ }
92
+
93
+ .foregroundContents {
94
+ padding: 0;
95
+ padding-block-start: calc(var(--base-size-20) + var(--parallax-start-spacing));
96
+ height: 100%;
97
+ }
98
+
99
+ .articleContents {
100
+ position: relative;
101
+ z-index: 90;
102
+ }
103
+
104
+ .lightHero .articleContents {
105
+ box-shadow: 0px -2px 49px 0px rgba(0, 0, 0, 0.25);
106
+ }
107
+
108
+ @keyframes parallax-background {
109
+ from {
110
+ top: 0;
111
+ filter: blur(0px);
112
+ }
113
+ to {
114
+ top: calc(var(--hero-height) * -0.4);
115
+ filter: blur(10px) brightness(0%);
116
+ }
117
+ }
118
+
119
+ @keyframes parallax-foreground {
120
+ from {
121
+ top: 0;
122
+ }
123
+ to {
124
+ top: calc(var(--hero-height) * -0.7);
125
+ filter: blur(2px) brightness(0%);
126
+ }
127
+ }
128
+
129
+ /* Progressive enhancement opt-in */
130
+ @supports (animation-timeline: scroll()) {
131
+ @media (prefers-reduced-motion: no-preference) {
132
+ .parallax {
133
+ position: fixed;
134
+ top: 0;
135
+ }
136
+
137
+ .foreground {
138
+ animation-name: parallax-foreground;
139
+ }
140
+
141
+ .background {
142
+ animation-name: parallax-background;
143
+ }
144
+ }
145
+ }
146
+
147
+ .lede {
148
+ max-width: var(--brand-Prose-lineLength);
149
+ line-height: 1.3;
150
+ }
151
+
152
+ .lede::first-letter {
153
+ font-size: var(--base-size-64);
154
+ line-height: 1;
155
+ padding: var(--base-size-4) var(--base-size-12);
156
+ border: var(--base-size-4) solid var(--brand-color-accent-primary);
157
+ color: var(--brand-color-accent-primary);
158
+ margin-inline-end: var(--base-size-12);
159
+ float: left;
160
+ }
161
+
162
+ .asideHeading {
163
+ color: var(--brand-color-text-muted);
164
+ letter-spacing: 0.031rem;
165
+ }
166
+
167
+ @media screen and (max-width: 63.25rem) {
168
+ .aside {
169
+ position: fixed;
170
+ top: 0;
171
+ left: 0;
172
+ right: 0;
173
+ width: 100%;
174
+ z-index: 99;
175
+ }
176
+
177
+ .asideContent {
178
+ display: flex;
179
+ opacity: 0;
180
+ visibility: hidden;
181
+ background-color: var(--brand-color-canvas-default);
182
+ padding: var(--base-size-16);
183
+ width: 100%;
184
+ box-shadow: 0px 100px 80px rgba(0, 0, 0, 0.01), 0px 41px 33px rgba(0, 0, 0, 0.02), 0px 22px 17px rgba(0, 0, 0, 0.02),
185
+ 0px 12px 10px rgba(0, 0, 0, 0.03), 0px 6px 5px rgba(0, 0, 0, 0.04), 0px 2px 2px rgba(0, 0, 0, 0.07);
186
+ justify-content: center;
187
+ transition: visibility var(--brand-animation-duration-default) var(--brand-animation-easing-default),
188
+ opacity var(--brand-animation-duration-default) var(--brand-animation-easing-default),
189
+ transform var(--brand-animation-duration-default) var(--brand-animation-easing-default);
190
+ transform: translateY(-100%);
191
+ }
192
+
193
+ .asideContent--visible {
194
+ opacity: 1;
195
+ visibility: visible;
196
+ transform: none;
197
+ }
198
+
199
+ .asideContent--open {
200
+ height: auto;
201
+ display: flex;
202
+ justify-content: center;
203
+ padding: var(--base-size-16) var(--base-size-16) var(--base-size-32);
204
+ }
205
+
206
+ .asideContent--open::after {
207
+ content: '';
208
+ position: fixed;
209
+ top: 0;
210
+ left: 0;
211
+ width: 100%;
212
+ height: 100%;
213
+ z-index: -1;
214
+ background-color: var(--brand-color-canvas-subtle);
215
+ opacity: 0.8;
216
+ }
217
+
218
+ .asideHeading {
219
+ height: 45px;
220
+ display: flex;
221
+ align-items: center;
222
+ }
223
+ }
224
+
225
+ @media screen and (min-width: 64rem) {
226
+ .aside {
227
+ position: sticky;
228
+ top: 0;
229
+ margin-block-start: -64px;
230
+ padding-block-start: var(--base-size-64);
231
+ }
232
+ }
233
+
234
+ .asideHeading {
235
+ font-size: var(--brand-text-size-100);
236
+ text-transform: uppercase;
237
+ }
238
+
239
+ .tableOfContentsList {
240
+ list-style: none;
241
+ margin: 0;
242
+ padding: 0;
243
+ display: flex;
244
+ flex-direction: column;
245
+ gap: var(--base-size-16);
246
+ }
247
+
248
+ .tableOfContentsList a {
249
+ color: var(--brand-color-text-muted);
250
+ text-decoration: none;
251
+ }
252
+
253
+ .tableOfContentsMenuToggle {
254
+ display: none;
255
+ }
256
+
257
+ .tableOfContentsMenuToggle:hover {
258
+ background-color: var(--brand-color-neutral-subtle);
259
+ }
260
+
261
+ @media screen and (max-width: 63.25rem) {
262
+ .asideHeading {
263
+ padding-inline-start: var(--base-size-12);
264
+ }
265
+ .tableOfContentsMenuToggle {
266
+ display: block;
267
+ background-color: var(--brand-color-canvas-subtle);
268
+ border-radius: var(--brand-borderRadius-full);
269
+ padding: var(--base-size-4);
270
+ width: var(--base-size-32);
271
+ border: none;
272
+ cursor: pointer;
273
+ }
274
+ .tableOfContentsNav,
275
+ .tableOfContentsFeaturesBox {
276
+ display: none;
277
+ }
278
+ .tableOfContentsNav--visible {
279
+ display: block;
280
+ }
281
+ .tableOfContentsList a {
282
+ padding: var(--base-size-8) var(--base-size-12);
283
+ display: block;
284
+ }
285
+ .tableOfContentsList a[aria-current] {
286
+ background-color: var(--brand-color-neutral-subtle);
287
+ border-radius: var(--brand-borderRadius-medium);
288
+ }
289
+ }
@@ -0,0 +1,43 @@
1
+ .navListHeading {
2
+ font-size: var(--brand-text-size-100);
3
+ color: var(--brand-color-text-muted);
4
+ text-transform: uppercase;
5
+ letter-spacing: 0.031rem;
6
+ }
7
+
8
+ .navList {
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: var(--base-size-4);
12
+ list-style: none;
13
+ padding: 0;
14
+ margin: 0;
15
+ }
16
+
17
+ .navListItem {
18
+ display: block;
19
+ padding: var(--base-size-8) var(--base-size-12);
20
+ border-radius: var(--brand-borderRadius-medium);
21
+ cursor: pointer;
22
+ color: var(--brand-color-text-muted);
23
+ text-decoration: none;
24
+ }
25
+
26
+ .navListItem * {
27
+ color: inherit;
28
+ }
29
+
30
+ .navListItemSelected,
31
+ .navListItem:hover {
32
+ color: var(--brand-color-text-default);
33
+ background-color: var(--base-color-scale-gray-1);
34
+ }
35
+
36
+ [data-color-mode='dark'] .navListItemSelected,
37
+ [data-color-mode='dark'] .navListItem:hover {
38
+ background-color: var(--base-color-scale-gray-6);
39
+ }
40
+
41
+ .cardGrid {
42
+ --brand-Grid-spacing-row: var(--base-size-48);
43
+ }