@primer/react-brand 0.8.0-rc.6962b2d → 0.8.0-rc.7dd9ecb

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 (111) hide show
  1. package/lib/AnchorNav/AnchorNav.d.ts +65 -0
  2. package/lib/AnchorNav/AnchorNav.visual.spec.d.ts +1 -0
  3. package/lib/AnchorNav/index.d.ts +1 -0
  4. package/lib/AnchorNav/useExpandedMenu.d.ts +2 -0
  5. package/lib/component-helpers.d.ts +7 -1
  6. package/lib/css/main.css +407 -20
  7. package/lib/design-tokens/css/tokens/base/colors/color-scales-with-modes.css +1 -1
  8. package/lib/design-tokens/css/tokens/base/colors/color-scales.css +1 -1
  9. package/lib/design-tokens/css/tokens/base/size/size.css +1 -1
  10. package/lib/design-tokens/css/tokens/base/typography/typography.css +1 -1
  11. package/lib/design-tokens/css/tokens/functional/colors/global-with-modes.css +1 -1
  12. package/lib/design-tokens/css/tokens/functional/colors/global.css +1 -1
  13. package/lib/design-tokens/css/tokens/functional/components/accordion/colors-with-modes.css +1 -1
  14. package/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css +15 -0
  15. package/lib/design-tokens/css/tokens/functional/components/button/colors-with-modes.css +1 -1
  16. package/lib/design-tokens/css/tokens/functional/components/comparison-table/colors-with-modes.css +1 -1
  17. package/lib/design-tokens/css/tokens/functional/components/control/base.css +1 -1
  18. package/lib/design-tokens/css/tokens/functional/components/control/colors-with-modes.css +1 -1
  19. package/lib/design-tokens/css/tokens/functional/components/cta-banner/colors-with-modes.css +1 -1
  20. package/lib/design-tokens/css/tokens/functional/components/faq/base.css +1 -1
  21. package/lib/design-tokens/css/tokens/functional/components/faq/colors-with-modes.css +1 -1
  22. package/lib/design-tokens/css/tokens/functional/components/faq/colors.css +1 -1
  23. package/lib/design-tokens/css/tokens/functional/components/hero/base.css +1 -1
  24. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors-with-modes.css +1 -1
  25. package/lib/design-tokens/css/tokens/functional/components/inline-link/colors.css +1 -1
  26. package/lib/design-tokens/css/tokens/functional/components/river/base.css +1 -1
  27. package/lib/design-tokens/css/tokens/functional/components/subdomain-nav-bar/colors-with-modes.css +1 -1
  28. package/lib/design-tokens/css/tokens/functional/size/border.css +1 -1
  29. package/lib/design-tokens/css/tokens/functional/size/breakpoints.css +1 -1
  30. package/lib/design-tokens/css/tokens/functional/size/size-coarse.css +1 -1
  31. package/lib/design-tokens/css/tokens/functional/size/size-fine.css +1 -1
  32. package/lib/design-tokens/css/tokens/functional/size/size.css +1 -1
  33. package/lib/design-tokens/css/tokens/functional/typography/typography-responsive.css +1 -1
  34. package/lib/design-tokens/css/tokens/functional/typography/typography.css +1 -1
  35. package/lib/design-tokens/js/module/tokens/base/colors/color-scales.js +1 -1
  36. package/lib/design-tokens/js/module/tokens/base/size/size.js +1 -1
  37. package/lib/design-tokens/js/module/tokens/base/typography/typography.js +1 -1
  38. package/lib/design-tokens/js/module/tokens/functional/colors/global.js +1 -1
  39. package/lib/design-tokens/js/module/tokens/functional/components/control/base.js +1 -1
  40. package/lib/design-tokens/js/module/tokens/functional/components/faq/base.js +1 -1
  41. package/lib/design-tokens/js/module/tokens/functional/components/faq/colors.js +1 -1
  42. package/lib/design-tokens/js/module/tokens/functional/components/hero/base.js +1 -1
  43. package/lib/design-tokens/js/module/tokens/functional/components/inline-link/colors.js +1 -1
  44. package/lib/design-tokens/js/module/tokens/functional/components/river/base.js +1 -1
  45. package/lib/design-tokens/js/module/tokens/functional/size/border.js +1 -1
  46. package/lib/design-tokens/js/module/tokens/functional/size/breakpoints.js +1 -1
  47. package/lib/design-tokens/js/module/tokens/functional/size/size-coarse.js +1 -1
  48. package/lib/design-tokens/js/module/tokens/functional/size/size-fine.js +1 -1
  49. package/lib/design-tokens/js/module/tokens/functional/size/size.js +1 -1
  50. package/lib/design-tokens/js/module/tokens/functional/size/viewport.js +1 -1
  51. package/lib/design-tokens/js/module/tokens/functional/typography/typography-responsive.js +1 -1
  52. package/lib/design-tokens/js/module/tokens/functional/typography/typography.js +1 -1
  53. package/lib/design-tokens/js/tokens/base/colors/color-scales.js +1 -1
  54. package/lib/design-tokens/js/tokens/base/size/size.js +1 -1
  55. package/lib/design-tokens/js/tokens/base/typography/typography.js +1 -1
  56. package/lib/design-tokens/js/tokens/functional/colors/global.js +1 -1
  57. package/lib/design-tokens/js/tokens/functional/components/control/base.js +1 -1
  58. package/lib/design-tokens/js/tokens/functional/components/faq/base.js +1 -1
  59. package/lib/design-tokens/js/tokens/functional/components/faq/colors.js +1 -1
  60. package/lib/design-tokens/js/tokens/functional/components/hero/base.js +1 -1
  61. package/lib/design-tokens/js/tokens/functional/components/inline-link/colors.js +1 -1
  62. package/lib/design-tokens/js/tokens/functional/components/river/base.js +1 -1
  63. package/lib/design-tokens/js/tokens/functional/size/border.js +1 -1
  64. package/lib/design-tokens/js/tokens/functional/size/breakpoints.js +1 -1
  65. package/lib/design-tokens/js/tokens/functional/size/size-coarse.js +1 -1
  66. package/lib/design-tokens/js/tokens/functional/size/size-fine.js +1 -1
  67. package/lib/design-tokens/js/tokens/functional/size/size.js +1 -1
  68. package/lib/design-tokens/js/tokens/functional/size/viewport.js +1 -1
  69. package/lib/design-tokens/js/tokens/functional/typography/typography-responsive.js +1 -1
  70. package/lib/design-tokens/js/tokens/functional/typography/typography.js +1 -1
  71. package/lib/design-tokens/ts/tokens/base/colors/color-scales.d.ts +1 -1
  72. package/lib/design-tokens/ts/tokens/base/colors/color-scales.js +1 -1
  73. package/lib/design-tokens/ts/tokens/base/size/size.d.ts +1 -1
  74. package/lib/design-tokens/ts/tokens/base/size/size.js +1 -1
  75. package/lib/design-tokens/ts/tokens/base/typography/typography.d.ts +1 -1
  76. package/lib/design-tokens/ts/tokens/base/typography/typography.js +1 -1
  77. package/lib/design-tokens/ts/tokens/functional/colors/global.d.ts +1 -1
  78. package/lib/design-tokens/ts/tokens/functional/colors/global.js +1 -1
  79. package/lib/design-tokens/ts/tokens/functional/components/control/base.d.ts +1 -1
  80. package/lib/design-tokens/ts/tokens/functional/components/control/base.js +1 -1
  81. package/lib/design-tokens/ts/tokens/functional/components/faq/base.d.ts +1 -1
  82. package/lib/design-tokens/ts/tokens/functional/components/faq/base.js +1 -1
  83. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.d.ts +1 -1
  84. package/lib/design-tokens/ts/tokens/functional/components/faq/colors.js +1 -1
  85. package/lib/design-tokens/ts/tokens/functional/components/hero/base.d.ts +1 -1
  86. package/lib/design-tokens/ts/tokens/functional/components/hero/base.js +1 -1
  87. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.d.ts +1 -1
  88. package/lib/design-tokens/ts/tokens/functional/components/inline-link/colors.js +1 -1
  89. package/lib/design-tokens/ts/tokens/functional/components/river/base.d.ts +1 -1
  90. package/lib/design-tokens/ts/tokens/functional/components/river/base.js +1 -1
  91. package/lib/design-tokens/ts/tokens/functional/size/border.d.ts +1 -1
  92. package/lib/design-tokens/ts/tokens/functional/size/border.js +1 -1
  93. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.d.ts +1 -1
  94. package/lib/design-tokens/ts/tokens/functional/size/breakpoints.js +1 -1
  95. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.d.ts +1 -1
  96. package/lib/design-tokens/ts/tokens/functional/size/size-coarse.js +1 -1
  97. package/lib/design-tokens/ts/tokens/functional/size/size-fine.d.ts +1 -1
  98. package/lib/design-tokens/ts/tokens/functional/size/size-fine.js +1 -1
  99. package/lib/design-tokens/ts/tokens/functional/size/size.d.ts +1 -1
  100. package/lib/design-tokens/ts/tokens/functional/size/size.js +1 -1
  101. package/lib/design-tokens/ts/tokens/functional/size/viewport.d.ts +1 -1
  102. package/lib/design-tokens/ts/tokens/functional/size/viewport.js +1 -1
  103. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.d.ts +1 -1
  104. package/lib/design-tokens/ts/tokens/functional/typography/typography-responsive.js +1 -1
  105. package/lib/design-tokens/ts/tokens/functional/typography/typography.d.ts +1 -1
  106. package/lib/design-tokens/ts/tokens/functional/typography/typography.js +1 -1
  107. package/lib/hooks/useWindowSize.d.ts +1 -0
  108. package/lib/index.d.ts +1 -0
  109. package/lib/index.js +1 -1
  110. package/lib/test-utils/mocks/match-media-mock.d.ts +0 -0
  111. package/package.json +1 -1
@@ -0,0 +1,65 @@
1
+ import React from 'react';
2
+ import type { BaseProps } from '../component-helpers';
3
+ /**
4
+ * Design tokens
5
+ */
6
+ import '@primer/brand-primitives/lib/design-tokens/css/tokens/functional/components/anchor-nav/colors-with-modes.css';
7
+ export declare type AnchorNavProps = BaseProps<HTMLElement> & {
8
+ /**
9
+ * Accepts all of `AnchorNav.Item` and `AnchorNav.Action` child components.
10
+ */
11
+ children: React.ReactNode[];
12
+ /**
13
+ * Enable the idle state background color, which is transparent by default.
14
+ */
15
+ enableDefaultBgColor?: boolean;
16
+ } & React.ComponentPropsWithoutRef<'nav'>;
17
+ declare function _AnchorNav({ children, enableDefaultBgColor, ...props }: AnchorNavProps): JSX.Element;
18
+ declare type AnchorNavLinkIntersectionOptions = {
19
+ /**
20
+ * The area of the element that should trigger the next linked section to be highlighted.
21
+ */
22
+ rootMargin: 'start' | 'middle';
23
+ };
24
+ declare type AnchorNavLinkProps = BaseProps<HTMLAnchorElement> & {
25
+ /**
26
+ * Optional text alignment for the link. Defaults to 'start' if there are less than 4 links, otherwise 'center'.
27
+ */
28
+ alignment?: 'start' | 'center';
29
+ /**
30
+ * Required path or location for the anchor to link to.
31
+ */
32
+ href: string;
33
+ /**
34
+ * Optional boolean to indicate if the link is the current active link.
35
+ * Typically doesn't need to be sset unless custom animation is being used.
36
+ */
37
+ isActive?: boolean;
38
+ toggleMenuCallback?: () => void;
39
+ intersectionOptions?: AnchorNavLinkIntersectionOptions;
40
+ prefersReducedMotion?: boolean;
41
+ updateCurrentActiveNav?: (id: string | null) => void;
42
+ } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>;
43
+ declare function _AnchorNavLink({ alignment, children, href, isActive, toggleMenuCallback, prefersReducedMotion, intersectionOptions, updateCurrentActiveNav, ...rest }: AnchorNavLinkProps): JSX.Element;
44
+ declare type AnchorNavActionProps = {
45
+ /**
46
+ * Required path or location for the action button to link to.
47
+ */
48
+ href: string;
49
+ } & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>;
50
+ declare function _AnchorNavAction({ children, href, ...rest }: AnchorNavActionProps): JSX.Element;
51
+ /**
52
+ * AnchorNav allows users to navigate to different sections of a page.
53
+ * @see https://primer.style/brand/components/AnchorNav
54
+ */
55
+ export declare const AnchorNav: typeof _AnchorNav & {
56
+ Link: typeof _AnchorNavLink;
57
+ Action: typeof _AnchorNavAction;
58
+ testIds: {
59
+ root: string;
60
+ readonly menuButton: string;
61
+ readonly menuLinks: string;
62
+ readonly action: string;
63
+ };
64
+ };
65
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './AnchorNav';
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const useExpandedMenu: (open: boolean, containerRef: React.RefObject<HTMLElement>, anchorRef: React.RefObject<HTMLElement>) => void;
@@ -1,4 +1,4 @@
1
- import React, { Ref } from 'react';
1
+ import React, { Ref, PropsWithChildren } from 'react';
2
2
  /**
3
3
  * Layout
4
4
  */
@@ -6,6 +6,11 @@ export declare const Container: ({ children, style }: {
6
6
  children: React.ReactElement[] | React.ReactElement;
7
7
  style?: React.CSSProperties | undefined;
8
8
  }) => JSX.Element;
9
+ declare type RedlineBackgroundProps = {
10
+ height?: number;
11
+ hasBorder?: boolean;
12
+ };
13
+ export declare function RedlineBackground({ height, hasBorder, ...rest }: PropsWithChildren<RedlineBackgroundProps>): JSX.Element;
9
14
  /**
10
15
  * Base Types
11
16
  */
@@ -23,3 +28,4 @@ export declare type BaseProps<T> = {
23
28
  id?: string;
24
29
  ref?: Ref<T>;
25
30
  };
31
+ export {};
package/lib/css/main.css CHANGED
@@ -89,7 +89,7 @@ select {
89
89
 
90
90
  /**
91
91
  * Do not edit directly
92
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
92
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
93
93
  */
94
94
 
95
95
  :root,
@@ -629,7 +629,7 @@ select {
629
629
 
630
630
  /**
631
631
  * Do not edit directly
632
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
632
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
633
633
  */
634
634
 
635
635
  :root {
@@ -654,7 +654,7 @@ select {
654
654
 
655
655
  /**
656
656
  * Do not edit directly
657
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
657
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
658
658
  */
659
659
 
660
660
  :root {
@@ -669,7 +669,7 @@ select {
669
669
 
670
670
  /**
671
671
  * Do not edit directly
672
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
672
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
673
673
  */
674
674
 
675
675
  :root {
@@ -848,7 +848,7 @@ select {
848
848
 
849
849
  /**
850
850
  * Do not edit directly
851
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
851
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
852
852
  */
853
853
 
854
854
  :root {
@@ -862,7 +862,7 @@ select {
862
862
 
863
863
  /**
864
864
  * Do not edit directly
865
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
865
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
866
866
  */
867
867
 
868
868
  :root {
@@ -880,7 +880,7 @@ select {
880
880
 
881
881
  /**
882
882
  * Do not edit directly
883
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
883
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
884
884
  */
885
885
 
886
886
  :root,
@@ -1076,7 +1076,7 @@ select {
1076
1076
 
1077
1077
  /**
1078
1078
  * Do not edit directly
1079
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
1079
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
1080
1080
  */
1081
1081
 
1082
1082
  :root,
@@ -1266,7 +1266,7 @@ select {
1266
1266
 
1267
1267
  /**
1268
1268
  * Do not edit directly
1269
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
1269
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
1270
1270
  */
1271
1271
 
1272
1272
  :root {
@@ -1287,7 +1287,7 @@ select {
1287
1287
 
1288
1288
  /**
1289
1289
  * Do not edit directly
1290
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
1290
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
1291
1291
  */
1292
1292
 
1293
1293
  :root {
@@ -2073,7 +2073,7 @@ select {
2073
2073
 
2074
2074
  /**
2075
2075
  * Do not edit directly
2076
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
2076
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
2077
2077
  */
2078
2078
 
2079
2079
  :root,
@@ -2101,7 +2101,7 @@ select {
2101
2101
 
2102
2102
  /**
2103
2103
  * Do not edit directly
2104
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
2104
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
2105
2105
  */
2106
2106
 
2107
2107
  :root,
@@ -2206,7 +2206,7 @@ select {
2206
2206
 
2207
2207
  /**
2208
2208
  * Do not edit directly
2209
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
2209
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
2210
2210
  */
2211
2211
 
2212
2212
  :root,
@@ -2348,7 +2348,7 @@ details[open] > .Primer_Brand__Accordion-module__Accordion__content___wMZGe {
2348
2348
 
2349
2349
  /**
2350
2350
  * Do not edit directly
2351
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
2351
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
2352
2352
  */
2353
2353
 
2354
2354
  :root {
@@ -2358,7 +2358,7 @@ details[open] > .Primer_Brand__Accordion-module__Accordion__content___wMZGe {
2358
2358
 
2359
2359
  /**
2360
2360
  * Do not edit directly
2361
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
2361
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
2362
2362
  */
2363
2363
 
2364
2364
  :root,
@@ -2428,7 +2428,7 @@ details[open] > .Primer_Brand__Accordion-module__Accordion__content___wMZGe {
2428
2428
 
2429
2429
  /**
2430
2430
  * Do not edit directly
2431
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
2431
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
2432
2432
  */
2433
2433
 
2434
2434
  :root {
@@ -2447,7 +2447,7 @@ details[open] > .Primer_Brand__Accordion-module__Accordion__content___wMZGe {
2447
2447
 
2448
2448
  /**
2449
2449
  * Do not edit directly
2450
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
2450
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
2451
2451
  */
2452
2452
 
2453
2453
  :root,
@@ -3390,7 +3390,7 @@ Fixes safari bug where outline doesn't respect border-radius
3390
3390
 
3391
3391
  /**
3392
3392
  * Do not edit directly
3393
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
3393
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
3394
3394
  */
3395
3395
 
3396
3396
  :root {
@@ -3707,7 +3707,7 @@ Fixes safari bug where outline doesn't respect border-radius
3707
3707
 
3708
3708
  /**
3709
3709
  * Do not edit directly
3710
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
3710
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
3711
3711
  */
3712
3712
 
3713
3713
  :root,
@@ -4011,7 +4011,394 @@ Fixes safari bug where outline doesn't respect border-radius
4011
4011
 
4012
4012
  /**
4013
4013
  * Do not edit directly
4014
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
4014
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
4015
+ */
4016
+
4017
+ :root,
4018
+ [data-color-mode="light"] {
4019
+ --brand-AnchorNav-link-underline-default: var(--base-color-scale-gray-9);
4020
+ --brand-AnchorNav-link-underline-pressed: var(--base-color-scale-black-0);
4021
+ }
4022
+
4023
+ [data-color-mode="dark"] {
4024
+ --brand-AnchorNav-link-underline-default: var(--base-color-scale-gray-3);
4025
+ --brand-AnchorNav-link-underline-pressed: var(--base-color-scale-white-0);
4026
+ }
4027
+
4028
+ /*
4029
+ * AnchorNav
4030
+ *
4031
+ * 1. Globals
4032
+ * 2. AnchorNav root and inner bounding containers
4033
+ * 3. AnchorNav links
4034
+ * 4. AnchorNav link labels
4035
+ * 5. AnchorNav menu toggle button (narrow)
4036
+ * 6. AnchorNav action
4037
+ * 7. Custom animations
4038
+ */
4039
+
4040
+ /*
4041
+ * 1. Globals
4042
+ * TODO: Move into global reset
4043
+ */
4044
+ html {
4045
+ scroll-behavior: smooth;
4046
+ }
4047
+
4048
+ @media screen and (prefers-reduced-motion: reduce) {
4049
+ html {
4050
+ scroll-behavior: auto;
4051
+ }
4052
+ }
4053
+
4054
+ /*
4055
+ * 2. AnchorNav root and inner bounding containers
4056
+ */
4057
+ .Primer_Brand__AnchorNav-module__AnchorNav___bwgAJ {
4058
+ display: flex;
4059
+ position: sticky;
4060
+ top: 0;
4061
+ left: 0;
4062
+ right: 0;
4063
+ padding: var(--base-size-12) var(--base-size-16);
4064
+ z-index: 91; /* must be higher than subdomain nav bar */
4065
+ }
4066
+
4067
+ .Primer_Brand__AnchorNav-module__AnchorNav--with-default-background-color___aFdXc {
4068
+ background-color: var(--brand-color-canvas-default);
4069
+ }
4070
+
4071
+ .Primer_Brand__AnchorNav-module__AnchorNav--stuck___AtvLO {
4072
+ box-shadow: 0 3px 6px rgba(140, 149, 159, 0.15), 0 1px 1px rgba(0, 0, 0, 0.1); /* TODO: replace with a global token */
4073
+ }
4074
+
4075
+ .Primer_Brand__AnchorNav-module__AnchorNav--expanded___wVGbk {
4076
+ transform-style: preserve-3d;
4077
+ z-index: 91;
4078
+ }
4079
+
4080
+ .Primer_Brand__AnchorNav-module__AnchorNav-link-container___VpHV2 {
4081
+ display: flex;
4082
+ width: 100%;
4083
+ position: relative;
4084
+ }
4085
+
4086
+ .Primer_Brand__AnchorNav-module__AnchorNav-inner-container___lshlZ {
4087
+ max-width: 1280px;
4088
+ width: 100%;
4089
+ position: relative;
4090
+ z-index: 91; /* must be higher than subdomain nav bar */
4091
+ }
4092
+
4093
+ .Primer_Brand__AnchorNav-module__AnchorNav--with-default-background-color___aFdXc .Primer_Brand__AnchorNav-module__AnchorNav-inner-container___lshlZ {
4094
+ background-color: var(--brand-color-canvas-default);
4095
+ }
4096
+
4097
+ /* Up to large breakpoint */
4098
+ @media screen and (max-width: 63.25rem) {
4099
+ .Primer_Brand__AnchorNav-module__AnchorNav___bwgAJ {
4100
+ background-color: var(--brand-color-canvas-default);
4101
+ }
4102
+
4103
+ .Primer_Brand__AnchorNav-module__AnchorNav-inner-container--expanded____aoje {
4104
+ height: auto;
4105
+ }
4106
+
4107
+ .Primer_Brand__AnchorNav-module__AnchorNav-link-container___VpHV2 {
4108
+ display: none;
4109
+ padding-left: var(--base-size-16);
4110
+ }
4111
+ .Primer_Brand__AnchorNav-module__AnchorNav--expanded___wVGbk .Primer_Brand__AnchorNav-module__AnchorNav-link-container___VpHV2 {
4112
+ display: flex;
4113
+ flex-direction: column;
4114
+ }
4115
+ }
4116
+
4117
+ /* Large breakpoint and up */
4118
+ @media screen and (min-width: 63.25rem) {
4119
+ .Primer_Brand__AnchorNav-module__AnchorNav___bwgAJ {
4120
+ padding: var(--base-size-12) var(--base-size-40);
4121
+ }
4122
+
4123
+ .Primer_Brand__AnchorNav-module__AnchorNav--with-default-background-color___aFdXc {
4124
+ background-color: var(--brand-color-canvas-default);
4125
+ }
4126
+
4127
+ .Primer_Brand__AnchorNav-module__AnchorNav--stuck___AtvLO {
4128
+ background-color: var(--brand-color-canvas-default);
4129
+ }
4130
+ .Primer_Brand__AnchorNav-module__AnchorNav-inner-container___lshlZ {
4131
+ margin: 0 auto;
4132
+ display: flex;
4133
+ }
4134
+ }
4135
+
4136
+ /*
4137
+ * 3. AnchorNav links
4138
+ */
4139
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2 {
4140
+ display: flex;
4141
+ width: calc(100% - 80px);
4142
+ text-decoration: none;
4143
+ height: 48px;
4144
+ align-items: center;
4145
+ justify-items: flex-start;
4146
+ }
4147
+
4148
+ .Primer_Brand__AnchorNav-module__AnchorNav--expanded___wVGbk .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2 {
4149
+ margin: 0 0 2px; /* allow space for focus border */
4150
+ animation: Primer_Brand__AnchorNav-module__fade-in___KfA_2 1s;
4151
+ animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); /* TODO: replace with global token for animation timings */
4152
+ }
4153
+
4154
+ /* Up to large breakpoint */
4155
+ @media screen and (max-width: 63.25rem) {
4156
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2 {
4157
+ position: absolute;
4158
+ left: 0;
4159
+ padding: 0 0 0 var(--base-size-16);
4160
+ }
4161
+
4162
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2::before {
4163
+ content: '';
4164
+ position: absolute;
4165
+ left: 0;
4166
+ width: 2px;
4167
+ height: 50%;
4168
+ background-color: var(--brand-AnchorNav-link-underline-default);
4169
+ transition: opacity 300ms, transform 300ms;
4170
+ opacity: 1;
4171
+ transform: scale(0);
4172
+ transform-origin: left;
4173
+ }
4174
+
4175
+ .Primer_Brand__AnchorNav-module__AnchorNav--expanded___wVGbk .Primer_Brand__AnchorNav-module__AnchorNav-link--is-active___xbYDS::before {
4176
+ transform: scale(1);
4177
+ }
4178
+ }
4179
+
4180
+ /* Large breakpoint and up */
4181
+ @media screen and (min-width: 63.25rem) {
4182
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2 {
4183
+ position: relative;
4184
+ margin: 0 1px; /* to provide space for focus border */
4185
+ }
4186
+
4187
+ .Primer_Brand__AnchorNav-module__AnchorNav-link--center___aryYq {
4188
+ justify-content: center;
4189
+ }
4190
+
4191
+ .Primer_Brand__AnchorNav-module__AnchorNav-link--start___COZM3 {
4192
+ justify-content: flex-start;
4193
+ width: auto;
4194
+ margin-right: var(--base-size-48);
4195
+ }
4196
+
4197
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2::after {
4198
+ content: '';
4199
+ position: absolute;
4200
+ bottom: 10px;
4201
+ left: 0;
4202
+ width: 100%;
4203
+ height: 2px;
4204
+ background-color: var(--brand-AnchorNav-link-underline-default);
4205
+ transition: opacity 300ms, transform 300ms;
4206
+ opacity: 1;
4207
+ transform: scale(0);
4208
+ transform-origin: center;
4209
+ }
4210
+
4211
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2:hover::after,
4212
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2:focus::after,
4213
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2[data-active='true']::after {
4214
+ opacity: 1;
4215
+ transform: translate3d(0, 0.2em, 0);
4216
+ transform: scale(0.4, 0.5);
4217
+ }
4218
+
4219
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2:active::after {
4220
+ background-color: var(--brand-AnchorNav-link-underline-pressed);
4221
+ transform: scale(0.6, 1);
4222
+ }
4223
+
4224
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2[data-active='true']::after {
4225
+ background-color: var(--brand-AnchorNav-link-underline-pressed);
4226
+ opacity: 1;
4227
+ }
4228
+
4229
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2.Primer_Brand__AnchorNav-module__focus-visible___dsg4c::after {
4230
+ opacity: 0;
4231
+ }
4232
+
4233
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2:focus-visible::after {
4234
+ opacity: 0;
4235
+ }
4236
+ }
4237
+
4238
+ /*
4239
+ * 4. AnchorNav link labels
4240
+ */
4241
+ .Primer_Brand__AnchorNav-module__AnchorNav-link-label___x3JtK {
4242
+ font-weight: var(--brand-heading-weight-400);
4243
+ font-size: var(--brand-text-size-300);
4244
+ line-height: var(--brand-text-lineHeight-300);
4245
+ font-family: var(--brand-heading-fontFamily);
4246
+ letter-spacing: var(--brand-heading-letterSpacing-400);
4247
+ color: var(--brand-color-text-default);
4248
+ transition: color cubic-bezier(0.33, 1, 0.68, 1) 0.2s; /* TODO: replace with global token for animation timings */
4249
+ white-space: nowrap;
4250
+ }
4251
+
4252
+ .Primer_Brand__AnchorNav-module__AnchorNav--with-default-background-color___aFdXc .Primer_Brand__AnchorNav-module__AnchorNav-link-label___x3JtK {
4253
+ background-color: var(--brand-color-canvas-default);
4254
+ }
4255
+
4256
+ /* Up to large breakpoint */
4257
+ @media screen and (max-width: 63.25rem) {
4258
+ .Primer_Brand__AnchorNav-module__AnchorNav-link-label___x3JtK {
4259
+ background-color: var(--brand-color-canvas-default);
4260
+ }
4261
+
4262
+ .Primer_Brand__AnchorNav-module__AnchorNav--expanded___wVGbk .Primer_Brand__AnchorNav-module__AnchorNav-link-label--is-active___DyUFY {
4263
+ color: var(--brand-color-focus);
4264
+ }
4265
+
4266
+ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2:not(.Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2[data-active='true']) {
4267
+ visibility: hidden;
4268
+ }
4269
+
4270
+ .Primer_Brand__AnchorNav-module__AnchorNav--stuck___AtvLO .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2[data-active='false'][data-first='true'] {
4271
+ visibility: visible;
4272
+ }
4273
+
4274
+ .Primer_Brand__AnchorNav-module__AnchorNav___bwgAJ .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2[data-active='false'][data-first='true'] {
4275
+ visibility: visible;
4276
+ }
4277
+
4278
+ .Primer_Brand__AnchorNav-module__AnchorNav-inner-container--expanded____aoje .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2 {
4279
+ visibility: visible !important;
4280
+ }
4281
+
4282
+ .Primer_Brand__AnchorNav-module__AnchorNav-inner-container--expanded____aoje .Primer_Brand__AnchorNav-module__AnchorNav-link___f5YJ2 {
4283
+ display: flex;
4284
+ position: relative;
4285
+ left: auto;
4286
+ right: auto;
4287
+ top: auto;
4288
+ flex-direction: column;
4289
+ text-align: left;
4290
+ justify-content: center;
4291
+ align-items: flex-start;
4292
+ }
4293
+ }
4294
+
4295
+ /*
4296
+ * 5. AnchorNav menu toggle button (narrow)
4297
+ */
4298
+ .Primer_Brand__AnchorNav-module__AnchorNav-menu-button___tputP {
4299
+ display: none;
4300
+ }
4301
+
4302
+ /* Up to large breakpoint */
4303
+ @media screen and (max-width: 63.25rem) {
4304
+ .Primer_Brand__AnchorNav-module__AnchorNav-menu-button___tputP {
4305
+ all: unset;
4306
+ display: inline-flex;
4307
+ cursor: pointer;
4308
+ padding: var(--base-size-8) var(--base-size-16);
4309
+ padding-left: 0; /* space for focus */
4310
+ align-items: center;
4311
+ height: var(--base-size-32);
4312
+ z-index: 2;
4313
+ border-radius: var(--brand-borderRadius-small);
4314
+ }
4315
+
4316
+ .Primer_Brand__AnchorNav-module__AnchorNav-menu-button-arrow___v5tcA {
4317
+ padding: 0 calc(var(--base-size-12) / 2);
4318
+ width: 32px;
4319
+ height: 32px;
4320
+ color: var(--brand-color-text-default);
4321
+ }
4322
+
4323
+ .Primer_Brand__AnchorNav-module__AnchorNav-menu-button___tputP.Primer_Brand__AnchorNav-module__focus-visible___dsg4c {
4324
+ border-color: var(--brand-color-focus);
4325
+ outline: none;
4326
+ box-shadow: 0 0 0 2px var(--brand-color-focus);
4327
+ }
4328
+
4329
+ .Primer_Brand__AnchorNav-module__AnchorNav-menu-button___tputP:focus-visible {
4330
+ border-color: var(--brand-color-focus);
4331
+ outline: none;
4332
+ box-shadow: 0 0 0 2px var(--brand-color-focus);
4333
+ }
4334
+
4335
+ .Primer_Brand__AnchorNav-module__AnchorNav-overlay--expanded___xXv6O {
4336
+ position: absolute;
4337
+ top: 0;
4338
+ left: 0;
4339
+ right: 0;
4340
+ z-index: -3;
4341
+ width: 100%;
4342
+ height: 100vh; /* Keep as fallback */
4343
+ height: 100dvh;
4344
+ background: hsla(var(--base-color-scale-black-0-hsl) / 0.5);
4345
+ transform: translateZ(-1px);
4346
+ animation: Primer_Brand__AnchorNav-module__fade-in___KfA_2 0.5s;
4347
+ animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1);
4348
+ cursor: pointer;
4349
+ }
4350
+ }
4351
+
4352
+ /*
4353
+ * 6. AnchorNav action
4354
+ */
4355
+
4356
+ .Primer_Brand__AnchorNav-module__AnchorNav-action___DWzcE {
4357
+ z-index: 1;
4358
+ display: flex;
4359
+ margin-left: auto;
4360
+ white-space: nowrap;
4361
+ padding: var(--base-size-12) var(--base-size-24);
4362
+ }
4363
+
4364
+ .Primer_Brand__AnchorNav-module__AnchorNav--expanded___wVGbk .Primer_Brand__AnchorNav-module__AnchorNav-action___DWzcE {
4365
+ align-self: flex-start;
4366
+ }
4367
+
4368
+ @media screen and (max-width: 34rem) {
4369
+ .Primer_Brand__AnchorNav-module__AnchorNav-action___DWzcE {
4370
+ display: none;
4371
+ }
4372
+ .Primer_Brand__AnchorNav-module__AnchorNav--expanded___wVGbk .Primer_Brand__AnchorNav-module__AnchorNav-action___DWzcE {
4373
+ display: flex;
4374
+ margin-top: var(--base-size-8);
4375
+ }
4376
+ }
4377
+
4378
+ @media screen and (min-width: 34rem) and (max-width: 63.25rem) {
4379
+ .Primer_Brand__AnchorNav-module__AnchorNav-action___DWzcE {
4380
+ display: flex;
4381
+ position: absolute;
4382
+ top: 0;
4383
+ right: 0;
4384
+ }
4385
+ }
4386
+
4387
+ /*
4388
+ * 7. Custom animations
4389
+ */
4390
+ @keyframes Primer_Brand__AnchorNav-module__fade-in___KfA_2 {
4391
+ 0% {
4392
+ opacity: 0;
4393
+ }
4394
+ 100% {
4395
+ opacity: 1;
4396
+ }
4397
+ }
4398
+
4399
+ /**
4400
+ * Do not edit directly
4401
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
4015
4402
  */
4016
4403
 
4017
4404
  :root,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
3
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
4
4
  */
5
5
 
6
6
  :root,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
3
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
3
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 07 Dec 2022 20:10:52 GMT
3
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
4
4
  */
5
5
 
6
6
  :root {
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Do not edit directly
3
- * Generated on Wed, 07 Dec 2022 20:10:53 GMT
3
+ * Generated on Thu, 08 Dec 2022 15:24:29 GMT
4
4
  */
5
5
 
6
6
  :root,