@papillonarts/css 0.5.0 → 0.7.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 (133) hide show
  1. package/LICENSE +1 -1
  2. package/build/primer/autocomplete/README.md +20 -0
  3. package/build/primer/autocomplete/index.scss +3 -0
  4. package/build/primer/autocomplete/suggester.scss +101 -0
  5. package/build/primer/avatars/README.md +20 -0
  6. package/build/primer/avatars/avatar-parent-child.scss +17 -0
  7. package/build/primer/avatars/circle-badge.scss +55 -0
  8. package/build/primer/avatars/index.scss +5 -0
  9. package/build/primer/base/README.md +20 -0
  10. package/build/primer/base/base.scss +9 -17
  11. package/build/primer/base/index.scss +1 -0
  12. package/build/primer/base/kbd.scss +8 -10
  13. package/build/primer/{color-modes/native.scss → base/native-colors.scss} +4 -2
  14. package/build/primer/base/normalize.scss +4 -3
  15. package/build/primer/base/typography-base.scss +4 -3
  16. package/build/primer/box/README.md +20 -0
  17. package/build/primer/box/box-overlay.scss +45 -0
  18. package/build/primer/box/index.scss +2 -0
  19. package/build/primer/branch-name/README.md +20 -0
  20. package/build/primer/branch-name/branch-name.scss +33 -0
  21. package/build/primer/branch-name/index.scss +3 -0
  22. package/build/primer/buttons/README.md +20 -0
  23. package/build/primer/buttons/button-group.scss +104 -0
  24. package/build/primer/buttons/button.scss +347 -0
  25. package/build/primer/buttons/index.scss +4 -0
  26. package/build/primer/buttons/misc.scss +244 -0
  27. package/build/primer/color-modes/index.scss +0 -1
  28. package/build/primer/color-modes/themes/dark.scss +1 -6
  29. package/build/primer/color-modes/themes/dark_colorblind.scss +1 -6
  30. package/build/primer/color-modes/themes/dark_dimmed.scss +1 -6
  31. package/build/primer/color-modes/themes/dark_high_contrast.scss +1 -6
  32. package/build/primer/color-modes/themes/dark_tritanopia.scss +1 -6
  33. package/build/primer/color-modes/themes/light.scss +1 -6
  34. package/build/primer/color-modes/themes/light_colorblind.scss +1 -6
  35. package/build/primer/color-modes/themes/light_high_contrast.scss +1 -6
  36. package/build/primer/color-modes/themes/light_tritanopia.scss +1 -6
  37. package/build/primer/core/README.md +20 -0
  38. package/build/primer/core/index.scss +18 -0
  39. package/build/primer/docs.scss +7 -0
  40. package/build/primer/forms/README.md +20 -0
  41. package/build/primer/forms/form-control.scss +286 -0
  42. package/build/primer/forms/form-group.scss +297 -0
  43. package/build/primer/forms/form-select.scss +47 -0
  44. package/build/primer/forms/index.scss +6 -0
  45. package/build/primer/forms/input-group.scss +81 -0
  46. package/build/primer/forms/radio-group.scss +68 -0
  47. package/build/primer/header/README.md +20 -0
  48. package/build/primer/header/header.scss +51 -0
  49. package/build/primer/header/index.scss +2 -0
  50. package/build/primer/index.scss +8 -3
  51. package/build/primer/labels/README.md +20 -0
  52. package/build/primer/labels/index.scss +3 -0
  53. package/build/primer/labels/issue-labels.scss +26 -0
  54. package/build/primer/labels/mixins.scss +44 -0
  55. package/build/primer/layout/README.md +20 -0
  56. package/build/primer/layout/app-frame.scss +156 -0
  57. package/build/primer/layout/container.scss +30 -0
  58. package/build/primer/layout/grid-offset.scss +19 -0
  59. package/build/primer/layout/grid.scss +77 -0
  60. package/build/primer/layout/index.scss +7 -0
  61. package/build/primer/layout/page-layout.scss +417 -0
  62. package/build/primer/layout/stack.scss +220 -0
  63. package/build/primer/loaders/README.md +20 -0
  64. package/build/primer/loaders/index.scss +2 -0
  65. package/build/primer/loaders/loaders.scss +19 -0
  66. package/build/primer/markdown/README.md +20 -0
  67. package/build/primer/markdown/blob-csv.scss +32 -0
  68. package/build/primer/markdown/code.scss +79 -0
  69. package/build/primer/markdown/footnotes.scss +59 -0
  70. package/build/primer/markdown/headings.scss +101 -0
  71. package/build/primer/markdown/images.scss +130 -0
  72. package/build/primer/markdown/index.scss +9 -0
  73. package/build/primer/markdown/lists.scss +101 -0
  74. package/build/primer/markdown/markdown-body.scss +101 -0
  75. package/build/primer/markdown/tables.scss +46 -0
  76. package/build/primer/marketing/README.md +20 -0
  77. package/build/primer/marketing/buttons/button.scss +171 -0
  78. package/build/primer/marketing/buttons/index.scss +3 -0
  79. package/build/primer/marketing/index.scss +8 -0
  80. package/build/primer/marketing/links/index.scss +3 -0
  81. package/build/primer/marketing/links/link.scss +51 -0
  82. package/build/primer/marketing/support/index.scss +2 -0
  83. package/build/primer/marketing/support/variables.scss +140 -0
  84. package/build/primer/marketing/type/index.scss +3 -0
  85. package/build/primer/marketing/type/typography.scss +140 -0
  86. package/build/primer/marketing/utilities/animations.scss +52 -0
  87. package/build/primer/marketing/utilities/borders.scss +4 -0
  88. package/build/primer/marketing/utilities/filters.scss +3 -0
  89. package/build/primer/marketing/utilities/index.scss +6 -0
  90. package/build/primer/marketing/utilities/layout.scss +58 -0
  91. package/build/primer/navigation/README.md +20 -0
  92. package/build/primer/navigation/filter-list.scss +86 -0
  93. package/build/primer/navigation/index.scss +5 -0
  94. package/build/primer/navigation/sidenav.scss +102 -0
  95. package/build/primer/navigation/subnav.scss +154 -0
  96. package/build/primer/pagination/README.md +20 -0
  97. package/build/primer/pagination/index.scss +3 -0
  98. package/build/primer/pagination/pagination.scss +157 -0
  99. package/build/primer/primitives/index.scss +10 -0
  100. package/build/primer/primitives/temp-typography-tokens.scss +22 -0
  101. package/build/primer/product/README.md +20 -0
  102. package/build/primer/product/index.scss +13 -0
  103. package/build/primer/select-menu/README.md +20 -0
  104. package/build/primer/select-menu/index.scss +3 -0
  105. package/build/primer/select-menu/select-menu.scss +486 -0
  106. package/build/primer/support/README.md +20 -0
  107. package/build/primer/support/mixins/color-modes.scss +89 -3
  108. package/build/primer/support/mixins/layout.scss +1 -2
  109. package/build/primer/support/mixins/misc.scss +15 -9
  110. package/build/primer/support/mixins/typography.scss +21 -2
  111. package/build/primer/support/variables/misc.scss +2 -2
  112. package/build/primer/support/variables/typography.scss +2 -2
  113. package/build/primer/table-object/index.scss +1 -0
  114. package/build/primer/table-object/table-object.scss +23 -0
  115. package/build/primer/toasts/README.md +20 -0
  116. package/build/primer/toasts/index.scss +2 -0
  117. package/build/primer/toasts/toasts.scss +129 -0
  118. package/build/primer/tooltips/README.md +20 -0
  119. package/build/primer/tooltips/index.scss +2 -0
  120. package/build/primer/tooltips/tooltips.scss +228 -0
  121. package/build/primer/truncate/truncate.scss +2 -66
  122. package/build/primer/utilities/README.md +20 -0
  123. package/build/primer/utilities/borders.scss +30 -21
  124. package/build/primer/utilities/box-shadow.scss +8 -6
  125. package/build/primer/utilities/colors.scss +59 -60
  126. package/build/primer/utilities/details.scss +2 -2
  127. package/build/primer/utilities/flexbox.scss +2 -2
  128. package/build/primer/utilities/layout.scss +8 -6
  129. package/build/primer/utilities/margin.scss +2 -5
  130. package/build/primer/utilities/padding.scss +8 -10
  131. package/build/primer/utilities/typography.scss +12 -11
  132. package/build/primer/utilities/visibility-display.scss +14 -12
  133. package/package.json +2 -2
@@ -0,0 +1,171 @@
1
+ .btn-mktg {
2
+ position: relative;
3
+ z-index: 1;
4
+ display: inline-block;
5
+ // stylelint-disable-next-line primer/spacing
6
+ padding: 0.9rem 1.5rem 1.1rem;
7
+ // stylelint-disable-next-line primer/typography
8
+ font-size: 1rem;
9
+ // stylelint-disable-next-line primer/typography
10
+ font-weight: $font-weight-bold;
11
+ // stylelint-disable-next-line primer/typography
12
+ line-height: 1;
13
+ // stylelint-disable-next-line primer/colors
14
+ color: var(--bgColor-default, var(--color-canvas-default));
15
+ text-align: center;
16
+ white-space: nowrap;
17
+ vertical-align: middle;
18
+ user-select: none;
19
+ background:
20
+ linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%), // stylelint-disable-line primer/colors
21
+ var(--color-mktg-btn-bg) !important;
22
+ border: 0;
23
+ // stylelint-disable-next-line primer/borders
24
+ border-radius: 0.375rem;
25
+ transition: box-shadow 0.2s, outline 0.2s ease;
26
+ appearance: none !important;
27
+
28
+ &::before {
29
+ position: absolute;
30
+ top: 0;
31
+ right: 0;
32
+ bottom: 0;
33
+ left: 0;
34
+ z-index: -1;
35
+ content: '';
36
+ // stylelint-disable-next-line primer/colors
37
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0) 100%) !important;
38
+ border-radius: inherit;
39
+ opacity: 0;
40
+ opacity: 0;
41
+ transition: opacity 0.2s;
42
+ background-blend-mode: normal;
43
+ }
44
+
45
+ &:hover {
46
+ text-decoration: none;
47
+ // stylelint-disable-next-line primer/box-shadow
48
+ box-shadow: var(--color-mktg-btn-shadow-hover) !important;
49
+ }
50
+
51
+ &:hover,
52
+ &:focus,
53
+ &:focus-visible,
54
+ &.focus {
55
+ &::before {
56
+ opacity: 1;
57
+ }
58
+ }
59
+
60
+ // fallback :focus state
61
+ &:focus {
62
+ @include focusOutline(2px, var(--focus-outlineColor, var(--color-accent-fg)));
63
+
64
+ // remove fallback :focus if :focus-visible is supported
65
+ &:not(:focus-visible) {
66
+ outline: solid 1px transparent;
67
+ box-shadow: none;
68
+ }
69
+ }
70
+
71
+ // default focus state
72
+ &:focus-visible {
73
+ @include focusOutline(2px, var(--focus-outlineColor, var(--color-accent-fg)));
74
+ }
75
+
76
+ &:active {
77
+ &::before {
78
+ opacity: 0.5 !important;
79
+ }
80
+ }
81
+
82
+ &.disabled,
83
+ &[disabled] {
84
+ pointer-events: none;
85
+ cursor: default;
86
+ opacity: 0.5;
87
+ }
88
+ }
89
+
90
+ .btn-muted-mktg {
91
+ color: var(--fgColor-default, var(--color-fg-default)) !important;
92
+ background: none !important;
93
+ // stylelint-disable-next-line primer/box-shadow
94
+ box-shadow: var(--color-mktg-btn-shadow-outline);
95
+
96
+ &::before {
97
+ display: none;
98
+ }
99
+
100
+ &:hover {
101
+ // stylelint-disable-next-line primer/box-shadow
102
+ box-shadow: var(--color-mktg-btn-shadow-hover-muted) !important;
103
+ }
104
+
105
+ &:active {
106
+ // stylelint-disable-next-line primer/box-shadow
107
+ box-shadow: var(--fgColor-default, var(--color-fg-default)) 0 0 0 3px inset !important;
108
+ }
109
+
110
+ &:disabled {
111
+ // stylelint-disable-next-line primer/box-shadow
112
+ box-shadow: var(--fgColor-muted, var(--color-fg-subtle)) 0 0 0 1px inset !important;
113
+ }
114
+ }
115
+
116
+ .btn-subtle-mktg {
117
+ color: var(--fgColor-default, var(--color-fg-default)) !important;
118
+ background: none !important;
119
+ box-shadow: none !important;
120
+
121
+ &::before {
122
+ background: none !important;
123
+ }
124
+
125
+ &:hover {
126
+ // stylelint-disable-next-line primer/box-shadow
127
+ box-shadow: var(--color-mktg-btn-shadow-hover-muted) !important;
128
+ }
129
+ }
130
+
131
+ .btn-signup-mktg {
132
+ // stylelint-disable-next-line primer/colors
133
+ color: #fff;
134
+ // stylelint-disable-next-line primer/colors
135
+ background: linear-gradient(180deg, rgba(52, 183, 89, 0.15) 0%, rgba(46, 164, 79, 0) 100%), rgb(46, 164, 79) !important;
136
+
137
+ &::before {
138
+ // stylelint-disable-next-line primer/colors
139
+ background: linear-gradient(180deg, rgba(52, 183, 89, 0.15) 0%, rgba(46, 164, 79, 0) 100%) !important;
140
+ }
141
+
142
+ // fallback :focus state
143
+ &:focus {
144
+ @include focusOutline(2px, var(--focus-outlineColor, var(--color-accent-fg)));
145
+
146
+ // remove fallback :focus if :focus-visible is supported
147
+ &:not(:focus-visible) {
148
+ outline: solid 1px transparent;
149
+ box-shadow: none;
150
+ }
151
+ }
152
+
153
+ // default focus state
154
+ &:focus-visible {
155
+ @include focusOutline(2px, var(--focus-outlineColor, var(--color-accent-fg)));
156
+ }
157
+ }
158
+
159
+ // Size modifiers
160
+
161
+ .btn-small-mktg {
162
+ // stylelint-disable-next-line primer/spacing
163
+ padding: 0.625rem 1rem 0.8125rem;
164
+ }
165
+
166
+ .btn-large-mktg {
167
+ // stylelint-disable-next-line primer/spacing
168
+ padding: 16px 30px 20px !important;
169
+ // stylelint-disable-next-line primer/typography
170
+ font-size: 1.25rem;
171
+ }
@@ -0,0 +1,3 @@
1
+ // support files
2
+ @import '../support/index.scss';
3
+ @import './button.scss';
@@ -0,0 +1,8 @@
1
+ // Global requirements
2
+ @import './support/index.scss';
3
+
4
+ // marketing specific css modules
5
+ @import './type/index.scss';
6
+ @import './buttons/index.scss';
7
+ @import './links/index.scss';
8
+ @import './utilities/index.scss';
@@ -0,0 +1,3 @@
1
+ // support files
2
+ @import '../support/index.scss';
3
+ @import './link.scss';
@@ -0,0 +1,51 @@
1
+ .link-mktg {
2
+ position: relative;
3
+ display: inline-block;
4
+
5
+ &:hover {
6
+ text-decoration: none;
7
+ }
8
+
9
+ &::after,
10
+ &.link-emphasis-mktg::before {
11
+ position: absolute;
12
+ // stylelint-disable-next-line primer/spacing
13
+ bottom: -0.15em;
14
+ left: 0;
15
+ width: calc(100% - 1em);
16
+ height: 2px;
17
+ pointer-events: none;
18
+ content: '';
19
+ background-color: currentColor;
20
+ transform: scaleX(0);
21
+ transform-origin: 0 0;
22
+
23
+ @media screen and (prefers-reduced-motion: no-preference) {
24
+ transition: transform 0.3s ease;
25
+ }
26
+ }
27
+
28
+ &.link-emphasis-mktg::before {
29
+ opacity: 0.2;
30
+ transform: scaleX(1);
31
+ }
32
+
33
+ &:hover,
34
+ &:active {
35
+ &::after {
36
+ transform: scaleX(1);
37
+ }
38
+ }
39
+
40
+ &:focus,
41
+ &:focus-visible {
42
+ outline-offset: 2px;
43
+ }
44
+
45
+ &.arrow-target-mktg {
46
+ .arrow-symbol-mktg {
47
+ // stylelint-disable-next-line primer/spacing
48
+ margin-left: -$em-spacer-3;
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,2 @@
1
+ @import '../../support/index.scss';
2
+ @import './variables.scss';
@@ -0,0 +1,140 @@
1
+ // Typography
2
+ $marketing-font-path: '/fonts/' !default;
3
+
4
+ $font-mktg: $body-font !default;
5
+ $font-weight-medium: 450 !default;
6
+ $font-weight-extrabold: 800 !default;
7
+
8
+ $mktg-font-feature-settings: 'ss02' on, 'ss01' on !default;
9
+ $mktg-header-spacing-large: -0.03em !default;
10
+ $mktg-header-spacing-default: -0.01em !default;
11
+ $mktg-header-spacing-threshold: 48px !default;
12
+ $mktg-header-weight-large: $font-weight-extrabold !default;
13
+ $mktg-header-weight-default: $font-weight-bold !default;
14
+ $mktg-header-weight-threshold: 24px !default;
15
+
16
+ // Header size steps
17
+ $mktg-h-size-0: 96px !default;
18
+ $mktg-h-size-1: 72px !default;
19
+ $mktg-h-size-2: 64px !default;
20
+ $mktg-h-size-3: 56px !default;
21
+ $mktg-h-size-4: 48px !default;
22
+ $mktg-h-size-5: 40px !default;
23
+ $mktg-h-size-6: 32px !default;
24
+ $mktg-h-size-7: 28px !default;
25
+ $mktg-h-size-8: 24px !default;
26
+ $mktg-h-size-9: 20px !default;
27
+ $mktg-h-size-10: 16px !default;
28
+
29
+ // Header Line-height steps
30
+ $mktg-h-lh-0: 100px !default;
31
+ $mktg-h-lh-1: 76px !default;
32
+ $mktg-h-lh-2: 68px !default;
33
+ $mktg-h-lh-3: 60px !default;
34
+ $mktg-h-lh-4: 52px !default;
35
+ $mktg-h-lh-5: 44px !default;
36
+ $mktg-h-lh-6: 36px !default;
37
+ $mktg-h-lh-7: 32px !default;
38
+ $mktg-h-lh-8: 28px !default;
39
+ $mktg-h-lh-9: 24px !default;
40
+ $mktg-h-lh-10: 20px !default;
41
+
42
+ $mktg-header-pairings: (
43
+ 0: (size: $mktg-h-size-0, lh: $mktg-h-lh-0),
44
+ 1: (size: $mktg-h-size-1, lh: $mktg-h-lh-1),
45
+ 2: (size: $mktg-h-size-2, lh: $mktg-h-lh-2),
46
+ 3: (size: $mktg-h-size-3, lh: $mktg-h-lh-3),
47
+ 4: (size: $mktg-h-size-4, lh: $mktg-h-lh-4),
48
+ 5: (size: $mktg-h-size-5, lh: $mktg-h-lh-5),
49
+ 6: (size: $mktg-h-size-6, lh: $mktg-h-lh-6),
50
+ 7: (size: $mktg-h-size-7, lh: $mktg-h-lh-7),
51
+ 8: (size: $mktg-h-size-8, lh: $mktg-h-lh-8),
52
+ 9: (size: $mktg-h-size-9, lh: $mktg-h-lh-9),
53
+ 10: (size: $mktg-h-size-10, lh: $mktg-h-lh-10)
54
+ ) !default;
55
+
56
+ // Responsive headers, where first number is mobile (default), second is tablet/md, and third is desktop/lg
57
+ $mktg-headers: (
58
+ 0: [4, 1, 0],
59
+ 1: [5, 3, 1],
60
+ 2: [6, 4, 2],
61
+ 3: [7, 5, 4],
62
+ 4: [8, 7, 6],
63
+ 5: [9, 8, 8],
64
+ 6: [10, 9, 9]
65
+ ) !default;
66
+
67
+ // Body content
68
+ $mktg-body-spacing-threshold: 28px !default;
69
+ $mktg-body-weight-threshold: 24px !default;
70
+ $mktg-body-spacing-large: -0.01em !default;
71
+
72
+ // Body size steps
73
+ $mktg-body-size-0: 48px !default;
74
+ $mktg-body-size-1: 40px !default;
75
+ $mktg-body-size-2: 32px !default;
76
+ $mktg-body-size-3: 28px !default;
77
+ $mktg-body-size-4: 24px !default;
78
+ $mktg-body-size-5: 20px !default;
79
+ $mktg-body-size-6: 16px !default;
80
+ $mktg-body-size-7: 14px !default;
81
+ $mktg-body-size-8: 12px !default;
82
+
83
+ // Body line-height steps
84
+ $mktg-body-lh-0: 64px !default;
85
+ $mktg-body-lh-1: 52px !default;
86
+ $mktg-body-lh-2: 44px !default;
87
+ $mktg-body-lh-3: 40px !default;
88
+ $mktg-body-lh-4: 32px !default;
89
+ $mktg-body-lh-5: 28px !default;
90
+ $mktg-body-lh-6: 24px !default;
91
+ $mktg-body-lh-7: 20px !default;
92
+ $mktg-body-lh-8: 20px !default;
93
+
94
+ $mktg-body-pairings: (
95
+ 0: (size: $mktg-body-size-0, lh: $mktg-body-lh-0),
96
+ 1: (size: $mktg-body-size-1, lh: $mktg-body-lh-1),
97
+ 2: (size: $mktg-body-size-2, lh: $mktg-body-lh-2),
98
+ 3: (size: $mktg-body-size-3, lh: $mktg-body-lh-3),
99
+ 4: (size: $mktg-body-size-4, lh: $mktg-body-lh-4),
100
+ 5: (size: $mktg-body-size-5, lh: $mktg-body-lh-5),
101
+ 6: (size: $mktg-body-size-6, lh: $mktg-body-lh-6),
102
+ 7: (size: $mktg-body-size-7, lh: $mktg-body-lh-7),
103
+ 8: (size: $mktg-body-size-8, lh: $mktg-body-lh-8)
104
+ ) !default;
105
+
106
+ // Responsive body content, where first number is mobile (default), second is tablet/md, and third is desktop/lg
107
+ $mktg-body-spacing-large: -0.01em !default;
108
+
109
+ $mktg-bodies: (
110
+ 0: [3, 1, 0],
111
+ 1: [4, 3, 2],
112
+ 2: [5, 5, 4],
113
+ 3: [6, 5, 5],
114
+ 4: [6, 6, 6],
115
+ 5: [7, 7, 7],
116
+ 6: [8, 8, 8]
117
+ ) !default;
118
+
119
+ // Animations
120
+ $transition-time: 0.4s !default;
121
+ $ease-mktg: cubic-bezier(0.16, 1, 0.3, 1) !default;
122
+
123
+ $marketing-position-variants: (
124
+ '': '',
125
+ md: '-md',
126
+ lg: '-lg',
127
+ ) !default;
128
+
129
+ $mktg-btn-shadow-hover-light: 0 3px 2px rgba(0, 0, 0, 0.07), 0 7px 5px rgba(0, 0, 0, 0.04), 0 12px 10px rgba(0, 0, 0, 0.03), 0 22px 18px rgba(0, 0, 0, 0.03), 0 42px 33px rgba(0, 0, 0, 0.02), 0 100px 80px rgba(0, 0, 0, 0.02);
130
+ $mktg-btn-shadow-hover-dark: 0 4px 7px rgba(0, 0, 0, 0.15), 0 100px 80px rgba(255, 255, 255, 0.02), 0 42px 33px rgba(255, 255, 255, 0.024), 0 22px 18px rgba(255, 255, 255, 0.028), 0 12px 10px rgba(255, 255, 255, 0.034), 0 7px 5px rgba(255, 255, 255, 0.04), 0 3px 2px rgba(255, 255, 255, 0.07);
131
+
132
+ @include color-variables(
133
+ (
134
+ (mktg-btn-shadow-outline, (light: rgb(0,0,0,0.15) 0 0 0 1px inset, dark: rgb(255,255,255,0.25) 0 0 0 1px inset)),
135
+ (mktg-btn-bg, (light: #1b1f23, dark: #f6f8fa)),
136
+ (mktg-btn-shadow-focus, (light: rgb(0 0 0 / 15%) 0 0 0 4px, dark: rgb(255 255 255 / 25%) 0 0 0 4px)),
137
+ (mktg-btn-shadow-hover, (light: $mktg-btn-shadow-hover-light, dark: $mktg-btn-shadow-hover-dark)),
138
+ (mktg-btn-shadow-hover-muted, (light: rgb(0 0 0 / 70%) 0 0 0 2px inset, dark: rgb(255 255 255) 0 0 0 2px inset)),
139
+ )
140
+ );
@@ -0,0 +1,3 @@
1
+ // support files
2
+ @import '../support/index.scss';
3
+ @import './typography.scss';
@@ -0,0 +1,140 @@
1
+ // Headings
2
+ .h0-mktg,
3
+ .h1-mktg,
4
+ .h2-mktg,
5
+ .h3-mktg,
6
+ .h4-mktg,
7
+ .h5-mktg,
8
+ .h6-mktg {
9
+ // stylelint-disable-next-line primer/typography
10
+ font-family: $font-mktg;
11
+ font-feature-settings: $mktg-font-feature-settings;
12
+ // stylelint-disable-next-line primer/typography
13
+ font-weight: $mktg-header-weight-default !important;
14
+ letter-spacing: $mktg-header-spacing-default;
15
+ }
16
+
17
+ @each $header, $sizes in $mktg-headers {
18
+ .h#{$header}-mktg {
19
+ $pairing: map-get($mktg-header-pairings, nth($sizes, 1));
20
+ $pairing-md: map-get($mktg-header-pairings, nth($sizes, 2));
21
+ $pairing-lg: map-get($mktg-header-pairings, nth($sizes, 3));
22
+
23
+ // stylelint-disable-next-line primer/typography
24
+ font-size: map-get($pairing, 'size') !important;
25
+ // stylelint-disable-next-line primer/typography
26
+ line-height: map-get($pairing, 'lh') !important;
27
+
28
+ // stylelint-disable-next-line primer/typography
29
+ @if (map-get($pairing, 'size') >= $mktg-header-weight-threshold) { font-weight: $mktg-header-weight-large !important; }
30
+
31
+ @if (nth($sizes, 1) != nth($sizes, 2)) {
32
+ @include breakpoint(md) {
33
+ // stylelint-disable-next-line primer/typography
34
+ font-size: map-get($pairing-md, 'size') !important;
35
+ // stylelint-disable-next-line primer/typography
36
+ line-height: map-get($pairing-md, 'lh') !important;
37
+
38
+ @if (map-get($pairing-md, 'size') >= $mktg-header-spacing-threshold and map-get($pairing, 'size') < $mktg-header-spacing-threshold) {
39
+ letter-spacing: $mktg-header-spacing-large;
40
+ }
41
+
42
+ @if (map-get($pairing-md, 'size') >= $mktg-header-weight-threshold and map-get($pairing, 'size') < $mktg-header-weight-threshold) {
43
+ // stylelint-disable-next-line primer/typography
44
+ font-weight: $mktg-header-weight-large !important;
45
+ }
46
+ }
47
+ }
48
+
49
+ @if (nth($sizes, 2) != nth($sizes, 3)) {
50
+ @include breakpoint(lg) {
51
+ // stylelint-disable-next-line primer/typography
52
+ font-size: map-get($pairing-lg, 'size') !important;
53
+ // stylelint-disable-next-line primer/typography
54
+ line-height: map-get($pairing-lg, 'lh') !important;
55
+
56
+ @if (map-get($pairing-lg, 'size') >= $mktg-header-spacing-threshold and map-get($pairing-md, 'size') < $mktg-header-spacing-threshold) {
57
+ letter-spacing: $mktg-header-spacing-large;
58
+ }
59
+
60
+ @if (map-get($pairing-lg, 'size') >= $mktg-header-weight-threshold and map-get($pairing-md, 'size') < $mktg-header-weight-threshold) {
61
+ // stylelint-disable-next-line primer/typography
62
+ font-weight: $mktg-header-weight-large !important;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ .f0-mktg,
70
+ .f1-mktg,
71
+ .f2-mktg,
72
+ .f3-mktg,
73
+ .f4-mktg,
74
+ .f5-mktg,
75
+ .f6-mktg {
76
+ // stylelint-disable-next-line primer/typography
77
+ font-family: $font-mktg;
78
+ font-feature-settings: $mktg-font-feature-settings;
79
+ // stylelint-disable-next-line primer/typography
80
+ font-weight: $font-weight-normal;
81
+ }
82
+
83
+ @each $body, $sizes in $mktg-bodies {
84
+ .f#{$body}-mktg {
85
+ $pairing: map-get($mktg-body-pairings, nth($sizes, 1));
86
+ $pairing-md: map-get($mktg-body-pairings, nth($sizes, 2));
87
+ $pairing-lg: map-get($mktg-body-pairings, nth($sizes, 3));
88
+
89
+ // stylelint-disable-next-line primer/typography
90
+ font-size: map-get($pairing, 'size') !important;
91
+ // stylelint-disable-next-line primer/typography
92
+ line-height: map-get($pairing, 'lh') !important;
93
+
94
+ @if (map-get($pairing, 'size') >= $mktg-body-spacing-threshold) { letter-spacing: $mktg-body-spacing-large; }
95
+
96
+ // stylelint-disable-next-line primer/typography
97
+ @if (map-get($pairing, 'size') >= $mktg-body-weight-threshold) { font-weight: $font-weight-semibold; }
98
+
99
+ @if (nth($sizes, 1) != nth($sizes, 2)) {
100
+ @include breakpoint(md) {
101
+ // stylelint-disable-next-line primer/typography
102
+ font-size: map-get($pairing-md, 'size') !important;
103
+ // stylelint-disable-next-line primer/typography
104
+ line-height: map-get($pairing-md, 'lh') !important;
105
+
106
+ @if (map-get($pairing-md, 'size') >= $mktg-body-spacing-threshold and map-get($pairing, 'size') < $mktg-body-spacing-threshold) {
107
+ letter-spacing: $mktg-body-spacing-large;
108
+ }
109
+
110
+ @if (map-get($pairing-md, 'size') >= $mktg-body-weight-threshold and map-get($pairing, 'size') < $mktg-body-weight-threshold) {
111
+ // stylelint-disable-next-line primer/typography
112
+ font-weight: $font-weight-medium;
113
+ }
114
+ }
115
+ }
116
+
117
+ @if (nth($sizes, 2) != nth($sizes, 3)) {
118
+ @include breakpoint(lg) {
119
+ // stylelint-disable-next-line primer/typography
120
+ font-size: map-get($pairing-lg, 'size') !important;
121
+ // stylelint-disable-next-line primer/typography
122
+ line-height: map-get($pairing-lg, 'lh') !important;
123
+
124
+ @if (map-get($pairing-lg, 'size') >= $mktg-body-spacing-threshold and map-get($pairing-md, 'size') < $mktg-body-spacing-threshold) {
125
+ letter-spacing: $mktg-body-spacing-large;
126
+ }
127
+
128
+ @if (map-get($pairing-lg, 'size') >= $mktg-body-weight-threshold and map-get($pairing-md, 'size') < $mktg-body-weight-threshold) {
129
+ // stylelint-disable-next-line primer/typography
130
+ font-weight: $font-weight-medium;
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+
137
+ .text-medium {
138
+ // stylelint-disable-next-line primer/typography
139
+ font-weight: $font-weight-medium !important;
140
+ }
@@ -0,0 +1,52 @@
1
+ // Animation utilities for marketing
2
+
3
+ .hover-grow-mktg {
4
+ // stylelint-disable-next-line declaration-property-value-no-unknown
5
+ transition: transform 0.4s $ease-mktg;
6
+
7
+ &:hover {
8
+ transform: scale3d(1.025, 1.025, 1.025);
9
+ }
10
+ }
11
+
12
+ // Animated arrow symbol, used in marketing links, buttons, etc.
13
+ .btn-mktg,
14
+ .link-mktg,
15
+ .arrow-target-mktg {
16
+ .octicon {
17
+ width: 1em;
18
+ height: 1em;
19
+ }
20
+
21
+ .arrow-symbol-mktg {
22
+ transition: transform 0.2s;
23
+ transform: translateX(0);
24
+
25
+ // stylelint-disable-next-line selector-max-type
26
+ path:last-child {
27
+ stroke-dasharray: 10;
28
+ stroke-dashoffset: 10;
29
+ transition: stroke-dashoffset 0.2s;
30
+ }
31
+ }
32
+
33
+ @media screen and (prefers-reduced-motion: no-preference) {
34
+ &:hover,
35
+ &:focus {
36
+ .arrow-symbol-mktg {
37
+ transform: translateX(4px);
38
+
39
+ // stylelint-disable-next-line selector-max-type, selector-max-specificity, max-nesting-depth
40
+ path:last-child {
41
+ stroke-dashoffset: 20;
42
+ }
43
+ }
44
+ }
45
+
46
+ &:active {
47
+ .arrow-symbol-mktg {
48
+ transform: translateX(6px);
49
+ }
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,4 @@
1
+ // Marketing border utilities
2
+
3
+ // XXX If you're looking for responsive border utilities, they've moved to
4
+ // ../../utilities/borders.scss
@@ -0,0 +1,3 @@
1
+ .grayscale {
2
+ filter: grayscale(100%);
3
+ }
@@ -0,0 +1,6 @@
1
+ @import '../support/index.scss';
2
+ // utilities
3
+ @import './animations.scss';
4
+ @import './borders.scss';
5
+ @import './filters.scss';
6
+ @import './layout.scss';
@@ -0,0 +1,58 @@
1
+ // Layout utilities
2
+
3
+ // Responsive utilities to position content
4
+ // No utilities for sm and xl breakpoints
5
+ @each $breakpoint, $variant in $marketing-position-variants {
6
+ @include breakpoint($breakpoint) {
7
+ @each $scale, $size in $spacer-map-extended {
8
+ @if ($size != 0 or $variant != '') {
9
+ // stylelint-disable-next-line primer/spacing
10
+ .top#{$variant}-#{$scale} { top: $size !important; }
11
+ // stylelint-disable-next-line primer/spacing
12
+ .right#{$variant}-#{$scale} { right: $size !important; }
13
+ // stylelint-disable-next-line primer/spacing
14
+ .bottom#{$variant}-#{$scale} { bottom: $size !important; }
15
+ // stylelint-disable-next-line primer/spacing
16
+ .left#{$variant}-#{$scale} { left: $size !important; }
17
+ }
18
+
19
+ @if ($size != 0) {
20
+ // stylelint-disable-next-line primer/spacing
21
+ .top#{$variant}-n#{$scale} { top: -$size !important; }
22
+ // stylelint-disable-next-line primer/spacing
23
+ .right#{$variant}-n#{$scale} { right: -$size !important; }
24
+ // stylelint-disable-next-line primer/spacing
25
+ .bottom#{$variant}-n#{$scale} { bottom: -$size !important; }
26
+ // stylelint-disable-next-line primer/spacing
27
+ .left#{$variant}-n#{$scale} { left: -$size !important; }
28
+ }
29
+ }
30
+ }
31
+ }
32
+
33
+ // Negative offset columns
34
+ @each $breakpoint, $variant in $responsive-variants {
35
+ @include breakpoint($breakpoint) {
36
+ @for $offset from 1 through 7 {
37
+ // stylelint-disable-next-line primer/spacing
38
+ .offset#{$variant}-n#{$offset} { margin-left: -($offset * 0.0833333333 * 100%); }
39
+ }
40
+ }
41
+ }
42
+
43
+ // Width and height utilities, especially needed when the
44
+ // dimensions of an image are set in HTML
45
+ .width-auto { width: auto !important; }
46
+ .height-auto { height: auto !important; }
47
+
48
+ // Make an object fill its parent
49
+ .object-fit-cover { object-fit: cover !important; }
50
+
51
+ // Handling z-index
52
+ .z-1 { z-index: 1 !important; }
53
+ .z-2 { z-index: 2 !important; }
54
+ .z-3 { z-index: 3 !important; }
55
+
56
+ // Negative z-index
57
+ .z-n1 { z-index: -1 !important; }
58
+ .z-n2 { z-index: -2 !important; }
@@ -0,0 +1,20 @@
1
+ ---
2
+ bundle: "navigation"
3
+ generated: true
4
+ ---
5
+
6
+ # Primer CSS: `navigation` bundle
7
+
8
+ ## Usage
9
+
10
+ Primer CSS source files are written in [SCSS]. To include this Primer CSS module in your own build, ensure that your `node_modules` directory is listed in your Sass include paths, then import it with:
11
+
12
+ ```scss
13
+ @import "@primer/css/navigation/index.scss";
14
+ ```
15
+
16
+ ## Build
17
+
18
+ The `@primer/css` npm package includes a standalone CSS build of this module in `dist/navigation.css`.
19
+
20
+ [scss]: https://sass-lang.com/documentation/syntax#scss