@primer/css 20.7.1 → 20.8.0-rc.1211808

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 (102) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/alerts/flash.scss +1 -155
  3. package/autocomplete/autocomplete.scss +1 -118
  4. package/avatars/avatar-stack.scss +1 -149
  5. package/avatars/avatar.scss +1 -48
  6. package/base/base.scss +16 -0
  7. package/blankslate/blankslate.scss +1 -89
  8. package/box/box.scss +1 -289
  9. package/breadcrumb/breadcrumb.scss +1 -33
  10. package/dist/alerts.css +1 -1
  11. package/dist/alerts.css.map +1 -1
  12. package/dist/autocomplete.css +1 -1
  13. package/dist/autocomplete.css.map +1 -1
  14. package/dist/avatars.css +1 -1
  15. package/dist/avatars.css.map +1 -1
  16. package/dist/base.css +1 -1
  17. package/dist/base.css.map +1 -1
  18. package/dist/blankslate.css +1 -1
  19. package/dist/blankslate.css.map +1 -1
  20. package/dist/box.css +1 -1
  21. package/dist/box.css.map +1 -1
  22. package/dist/breadcrumb.css +1 -1
  23. package/dist/breadcrumb.css.map +1 -1
  24. package/dist/core.css +1 -1
  25. package/dist/core.css.map +1 -1
  26. package/dist/dropdown.css +1 -1
  27. package/dist/dropdown.css.map +1 -1
  28. package/dist/forms.css +1 -1
  29. package/dist/forms.css.map +1 -1
  30. package/dist/labels.css +1 -1
  31. package/dist/labels.css.map +1 -1
  32. package/dist/layout.css +1 -1
  33. package/dist/layout.css.map +1 -1
  34. package/dist/markdown.css +1 -1
  35. package/dist/markdown.css.map +1 -1
  36. package/dist/meta.json +210 -210
  37. package/dist/navigation.css +1 -1
  38. package/dist/navigation.css.map +1 -1
  39. package/dist/overlay.css +1 -1
  40. package/dist/overlay.css.map +1 -1
  41. package/dist/popover.css +1 -1
  42. package/dist/popover.css.map +1 -1
  43. package/dist/primer.css +2 -2
  44. package/dist/primer.css.map +1 -1
  45. package/dist/product.css +1 -1
  46. package/dist/product.css.map +1 -1
  47. package/dist/progress.css +1 -1
  48. package/dist/progress.css.map +1 -1
  49. package/dist/stats/alerts.json +1 -1
  50. package/dist/stats/autocomplete.json +1 -1
  51. package/dist/stats/avatars.json +1 -1
  52. package/dist/stats/base.json +1 -1
  53. package/dist/stats/blankslate.json +1 -1
  54. package/dist/stats/box.json +1 -1
  55. package/dist/stats/breadcrumb.json +1 -1
  56. package/dist/stats/core.json +1 -1
  57. package/dist/stats/dropdown.json +1 -1
  58. package/dist/stats/forms.json +1 -1
  59. package/dist/stats/labels.json +1 -1
  60. package/dist/stats/layout.json +1 -1
  61. package/dist/stats/markdown.json +1 -1
  62. package/dist/stats/navigation.json +1 -1
  63. package/dist/stats/overlay.json +1 -1
  64. package/dist/stats/popover.json +1 -1
  65. package/dist/stats/primer.json +1 -1
  66. package/dist/stats/product.json +1 -1
  67. package/dist/stats/progress.json +1 -1
  68. package/dist/stats/subhead.json +1 -1
  69. package/dist/stats/timeline.json +1 -1
  70. package/dist/stats/toggle-switch.json +1 -1
  71. package/dist/stats/truncate.json +1 -1
  72. package/dist/subhead.css +1 -1
  73. package/dist/subhead.css.map +1 -1
  74. package/dist/timeline.css +1 -1
  75. package/dist/timeline.css.map +1 -1
  76. package/dist/toggle-switch.css +1 -1
  77. package/dist/toggle-switch.css.map +1 -1
  78. package/dist/truncate.css +1 -1
  79. package/dist/truncate.css.map +1 -1
  80. package/dropdown/dropdown.scss +1 -270
  81. package/forms/FormControl.scss +1 -677
  82. package/forms/form-control.scss +0 -16
  83. package/labels/counters.scss +1 -36
  84. package/labels/labels.scss +1 -92
  85. package/labels/states.scss +1 -56
  86. package/layout/index.scss +0 -1
  87. package/layout/layout.scss +1 -182
  88. package/layout/page-layout.scss +26 -0
  89. package/markdown/code.scss +1 -0
  90. package/navigation/menu.scss +1 -119
  91. package/navigation/tabnav.scss +1 -104
  92. package/navigation/underline-nav.scss +1 -136
  93. package/overlay/overlay.scss +1 -485
  94. package/package.json +8 -7
  95. package/popover/popover.scss +1 -226
  96. package/primitives/index.scss +9 -9
  97. package/progress/progress.scss +1 -27
  98. package/subhead/subhead.scss +1 -48
  99. package/timeline/timeline-item.scss +1 -94
  100. package/toggle-switch/toggle-switch.scss +1 -243
  101. package/truncate/truncate.scss +2 -61
  102. package/layout/mixins.scss +0 -105
@@ -1,36 +1 @@
1
- // Counters are rounded-corner badges for numbers
2
- .Counter {
3
- display: inline-block;
4
- min-width: $size-2; // makes sure it's a circle with just one digit
5
- // stylelint-disable-next-line primer/spacing
6
- padding: 0 6px;
7
- font-size: $font-size-small;
8
- font-weight: $font-weight-semibold;
9
- // stylelint-disable-next-line primer/typography
10
- line-height: $size-2 - 2px; // remove borders
11
- color: var(--color-fg-default);
12
- text-align: center;
13
- background-color: var(--color-neutral-muted);
14
- border: $border-width $border-style var(--color-counter-border);
15
- // stylelint-disable-next-line primer/borders
16
- border-radius: 2em;
17
-
18
- &:empty {
19
- display: none;
20
- }
21
-
22
- .octicon {
23
- vertical-align: text-top;
24
- opacity: 0.8;
25
- }
26
- }
27
-
28
- .Counter--primary {
29
- color: var(--color-fg-on-emphasis);
30
- background-color: var(--color-neutral-emphasis);
31
- }
32
-
33
- .Counter--secondary {
34
- color: var(--color-fg-muted);
35
- background-color: var(--color-neutral-subtle);
36
- }
1
+ @import '@primer/view-components/app/components/primer/beta/counter';
@@ -1,92 +1 @@
1
- // Labels
2
-
3
- // Provide a wrapper to ensure labels stick together
4
- .labels {
5
- position: relative;
6
- }
7
-
8
- // Default label
9
-
10
- .label, // TODO: Deprecate
11
- .Label {
12
- @include labels-base;
13
-
14
- border-color: var(--color-border-default);
15
-
16
- &:hover {
17
- text-decoration: none;
18
- }
19
- }
20
-
21
- // Large
22
-
23
- .Label--large {
24
- @include labels-large;
25
- }
26
-
27
- // Inline
28
-
29
- .Label--inline {
30
- @include labels--inline;
31
- }
32
-
33
- // Contrast
34
-
35
- .Label--primary {
36
- color: var(--color-fg-default);
37
- border-color: var(--color-neutral-emphasis);
38
- }
39
-
40
- .Label--secondary {
41
- color: var(--color-fg-muted);
42
- border-color: var(--color-border-default);
43
- }
44
-
45
- // Colors
46
-
47
- .Label--info, // TODO: deprecate
48
- .Label--accent {
49
- color: var(--color-accent-fg);
50
- border-color: var(--color-accent-emphasis);
51
- }
52
-
53
- .Label--success {
54
- color: var(--color-success-fg);
55
- border-color: var(--color-success-emphasis);
56
- }
57
-
58
- .Label--warning, // TODO: deprecate
59
- .Label--attention {
60
- color: var(--color-attention-fg);
61
- border-color: var(--color-attention-emphasis);
62
- }
63
-
64
- .Label--severe {
65
- color: var(--color-severe-fg);
66
- border-color: var(--color-severe-emphasis);
67
- }
68
-
69
- .Label--danger {
70
- color: var(--color-danger-fg);
71
- border-color: var(--color-danger-emphasis);
72
- }
73
-
74
- .Label--open {
75
- color: var(--color-open-fg);
76
- border-color: var(--color-open-emphasis);
77
- }
78
-
79
- .Label--closed {
80
- color: var(--color-closed-fg);
81
- border-color: var(--color-closed-emphasis);
82
- }
83
-
84
- .Label--done {
85
- color: var(--color-done-fg);
86
- border-color: var(--color-done-emphasis);
87
- }
88
-
89
- .Label--sponsors {
90
- color: var(--color-sponsors-fg);
91
- border-color: var(--color-sponsors-emphasis);
92
- }
1
+ @import '@primer/view-components/app/components/primer/beta/label';
@@ -1,56 +1 @@
1
- // A rounded corner box containing a label "open" or "closed"
2
-
3
- // Default 32px
4
- // Small 24px
5
-
6
- .state, // TODO: Deprecate
7
- .State {
8
- display: inline-block;
9
- // stylelint-disable-next-line primer/spacing
10
- padding: 5px 12px;
11
- font-size: $body-font-size;
12
- font-weight: $font-weight-semibold;
13
- // stylelint-disable-next-line primer/typography
14
- line-height: 20px;
15
- text-align: center;
16
- white-space: nowrap;
17
- // stylelint-disable-next-line primer/borders
18
- border-radius: 2em;
19
- }
20
-
21
- .state, // TODO: Deprecate
22
- .State,
23
- .State--draft {
24
- color: var(--color-fg-on-emphasis);
25
- background-color: var(--color-neutral-emphasis);
26
- border: $border-width $border-style transparent;
27
- }
28
-
29
- .State--open {
30
- color: var(--color-fg-on-emphasis);
31
- background-color: var(--color-open-emphasis);
32
- }
33
-
34
- .State--merged {
35
- color: var(--color-fg-on-emphasis);
36
- background-color: var(--color-done-emphasis);
37
- }
38
-
39
- .State--closed {
40
- color: var(--color-fg-on-emphasis);
41
- background-color: var(--color-closed-emphasis);
42
- }
43
-
44
- // Small
45
-
46
- .State--small {
47
- // stylelint-disable-next-line primer/spacing
48
- padding: 0 10px;
49
- font-size: $font-size-small;
50
- // stylelint-disable-next-line primer/typography
51
- line-height: $size-3;
52
-
53
- .octicon {
54
- width: 1em; // Ensures different icons don't change State indicator width
55
- }
56
- }
1
+ @import '@primer/view-components/app/components/primer/state_component';
package/layout/index.scss CHANGED
@@ -1,6 +1,5 @@
1
1
  @import '../support/index.scss';
2
2
  @import './app-frame.scss';
3
- @import './mixins.scss';
4
3
  @import './container.scss';
5
4
  @import './grid.scss';
6
5
  @import './grid-offset.scss';
@@ -1,182 +1 @@
1
- // Layout component
2
-
3
- .Layout {
4
- display: grid;
5
-
6
- --Layout-sidebar-width: #{map-get($sidebar-width, 'sm')};
7
- --Layout-gutter: 16px;
8
-
9
- @media (max-width: calc(#{$width-sm} - 0.02px)) {
10
- @include flow-as-row;
11
- }
12
-
13
- &.Layout--flowRow-until-md {
14
- @media (max-width: calc(#{$width-md} - 0.02px)) {
15
- @include flow-as-row;
16
- }
17
- }
18
-
19
- &.Layout--flowRow-until-lg {
20
- @media (max-width: calc(#{$width-lg} - 0.02px)) {
21
- @include flow-as-row;
22
- }
23
- }
24
-
25
- // Flow as column
26
-
27
- grid-auto-flow: column;
28
- grid-template-columns: auto 0 minmax(0, calc(100% - var(--Layout-sidebar-width) - var(--Layout-gutter))); // sidebar column, separator, main column
29
- grid-gap: var(--Layout-gutter);
30
-
31
- .Layout-sidebar {
32
- grid-column: 1;
33
- }
34
-
35
- .Layout-divider {
36
- display: none;
37
- }
38
-
39
- .Layout-main {
40
- grid-column: 2 / span 2;
41
- }
42
-
43
- // Gutter spacing
44
-
45
- @include breakpoint(lg) {
46
- --Layout-gutter: 24px;
47
- }
48
-
49
- &.Layout--gutter-none {
50
- // stylelint-disable-next-line length-zero-no-unit
51
- --Layout-gutter: 0px;
52
- }
53
-
54
- &.Layout--gutter-condensed {
55
- --Layout-gutter: 16px;
56
- }
57
-
58
- &.Layout--gutter-spacious {
59
- @include breakpoint(lg) {
60
- --Layout-gutter: 32px;
61
- }
62
-
63
- @include breakpoint(xl) {
64
- --Layout-gutter: 40px;
65
- }
66
- }
67
-
68
- // Sidebar width
69
-
70
- @each $breakpoint in map-keys($sidebar-width) {
71
- @include breakpoint($breakpoint) {
72
- --Layout-sidebar-width: #{map-get($sidebar-width, $breakpoint)};
73
- }
74
- }
75
-
76
- &.Layout--sidebar-narrow {
77
- @each $breakpoint in map-keys($sidebar-narrow-width) {
78
- @include breakpoint($breakpoint) {
79
- --Layout-sidebar-width: #{map-get($sidebar-narrow-width, $breakpoint)};
80
- }
81
- }
82
- }
83
-
84
- &.Layout--sidebar-wide {
85
- @each $breakpoint in map-keys($sidebar-wide-width) {
86
- @include breakpoint($breakpoint) {
87
- --Layout-sidebar-width: #{map-get($sidebar-wide-width, $breakpoint)};
88
- }
89
- }
90
- }
91
-
92
- // Sidebar position
93
-
94
- &.Layout--sidebarPosition-start {
95
- .Layout-sidebar {
96
- grid-column: 1;
97
- }
98
-
99
- .Layout-main {
100
- grid-column: 2 / span 2;
101
- }
102
- }
103
-
104
- &.Layout--sidebarPosition-end {
105
- grid-template-columns: minmax(0, calc(100% - var(--Layout-sidebar-width) - var(--Layout-gutter))) 0 auto;
106
-
107
- .Layout-main {
108
- grid-column: 1;
109
- }
110
-
111
- .Layout-sidebar {
112
- grid-column: 2 / span 2;
113
- }
114
- }
115
-
116
- // Sidebar divider
117
-
118
- &.Layout--divided {
119
- .Layout-divider {
120
- display: block;
121
- grid-column: 2;
122
- width: 1px;
123
- // stylelint-disable-next-line primer/spacing
124
- margin-right: -1px;
125
- background: var(--color-border-default);
126
- }
127
-
128
- .Layout-main {
129
- grid-column: 3 / span 1;
130
- }
131
-
132
- &.Layout--sidebarPosition-end {
133
- .Layout-sidebar {
134
- grid-column: 3 / span 1;
135
- }
136
-
137
- .Layout-main {
138
- grid-column: 1;
139
- }
140
- }
141
- }
142
- }
143
-
144
- .Layout-divider {
145
- display: none;
146
- width: 1px;
147
- }
148
-
149
- .Layout-sidebar {
150
- width: var(--Layout-sidebar-width);
151
- }
152
-
153
- .Layout-main {
154
- min-width: 0;
155
-
156
- // Centered main column
157
- // FIXME: right-aligned sidebar
158
- .Layout-main-centered-md,
159
- .Layout-main-centered-lg,
160
- .Layout-main-centered-xl {
161
- margin-right: auto;
162
- margin-left: auto;
163
-
164
- > .container-md,
165
- > .container-lg,
166
- > .container-xl {
167
- margin-left: 0;
168
- }
169
- }
170
-
171
- .Layout-main-centered-md {
172
- max-width: calc(#{$container-md} + var(--Layout-sidebar-width) + var(--Layout-gutter));
173
- }
174
-
175
- .Layout-main-centered-lg {
176
- max-width: calc(#{$container-lg} + var(--Layout-sidebar-width) + var(--Layout-gutter));
177
- }
178
-
179
- .Layout-main-centered-xl {
180
- max-width: calc(#{$container-xl} + var(--Layout-sidebar-width) + var(--Layout-gutter));
181
- }
182
- }
1
+ @import '@primer/view-components/app/components/primer/alpha/layout';
@@ -22,6 +22,32 @@ $Layout-responsive-variant-max-breakpoint: 'md' !default;
22
22
  // stylelint-enable length-zero-no-unit
23
23
  }
24
24
 
25
+ // Layout beta mixins
26
+
27
+ // responsive region dividers
28
+
29
+ @mixin Layout-line-divider {
30
+ position: absolute;
31
+ left: calc(var(--Layout-outer-spacing-x) * -1);
32
+ display: block;
33
+ width: calc(100% + (var(--Layout-outer-spacing-x) * 2));
34
+ height: 1px;
35
+ content: '';
36
+ background-color: $Layout-divider-color;
37
+ }
38
+
39
+ @mixin Layout-filled-divider {
40
+ position: absolute;
41
+ bottom: calc(#{$spacer-2} * -1); // -8px
42
+ left: calc(var(--Layout-outer-spacing-x) * -1);
43
+ display: block;
44
+ width: calc(100% + (var(--Layout-outer-spacing-x) * 2));
45
+ height: #{$spacer-2}; // 8px
46
+ content: '';
47
+ background-color: var(--color-canvas-inset);
48
+ box-shadow: inset 0 1px $Layout-divider-color, inset 0 -1px $Layout-divider-color;
49
+ }
50
+
25
51
  .PageLayout {
26
52
  display: block;
27
53
  // stylelint-disable-next-line primer/spacing
@@ -8,6 +8,7 @@
8
8
  margin: 0;
9
9
  // stylelint-disable-next-line primer/typography
10
10
  font-size: 85%;
11
+ white-space: break-spaces; // keeps rendering spaces, but breaks them onto multiple lines
11
12
  background-color: var(--color-neutral-muted);
12
13
  border-radius: $border-radius;
13
14
 
@@ -1,119 +1 @@
1
- // Side menu
2
- //
3
- // A menu on the side of a page, defaults to left side. e.g. github.com/about
4
-
5
- .menu {
6
- margin-bottom: $spacer-3;
7
- list-style: none;
8
- background-color: var(--color-canvas-default);
9
- border: $border-width $border-style var(--color-border-default);
10
- border-radius: $border-radius;
11
- }
12
-
13
- .menu-item {
14
- position: relative;
15
- display: block;
16
- padding: $spacer-2 $spacer-3;
17
- color: var(--color-fg-default);
18
- border-bottom: $border-width $border-style var(--color-border-muted);
19
-
20
- &:first-child {
21
- border-top: 0;
22
- border-top-left-radius: $border-radius;
23
- border-top-right-radius: $border-radius;
24
-
25
- &::before {
26
- border-top-left-radius: $border-radius;
27
- }
28
- }
29
-
30
- &:last-child {
31
- border-bottom: 0;
32
- border-bottom-right-radius: $border-radius;
33
- border-bottom-left-radius: $border-radius;
34
-
35
- &::before {
36
- border-bottom-left-radius: $border-radius;
37
- }
38
- }
39
-
40
- &:hover {
41
- text-decoration: none;
42
- background-color: var(--color-neutral-subtle);
43
- }
44
-
45
- &:active {
46
- background-color: var(--color-canvas-subtle);
47
- }
48
-
49
- &.selected,
50
- &[aria-selected='true'],
51
- &[aria-current]:not([aria-current='false']) {
52
- cursor: default;
53
- background-color: var(--color-menu-bg-active);
54
-
55
- &::before {
56
- position: absolute;
57
- top: 0;
58
- bottom: 0;
59
- left: 0;
60
- width: 2px;
61
- content: '';
62
- background-color: var(--color-primer-border-active);
63
- }
64
- }
65
-
66
- .octicon {
67
- width: 16px;
68
- margin-right: $spacer-2;
69
- color: var(--color-fg-muted);
70
- text-align: center;
71
- }
72
-
73
- .Counter {
74
- float: right;
75
- margin-left: $spacer-1;
76
- }
77
-
78
- .menu-warning {
79
- float: right;
80
- color: var(--color-attention-fg);
81
- }
82
-
83
- .avatar {
84
- float: left;
85
- margin-right: $spacer-1;
86
- }
87
-
88
- &.alert {
89
- .Counter {
90
- color: var(--color-danger-fg);
91
- }
92
- }
93
- }
94
-
95
- .menu-heading {
96
- display: block;
97
- padding: $spacer-2 $spacer-3;
98
- margin-top: 0;
99
- margin-bottom: 0;
100
- font-size: inherit;
101
- font-weight: $font-weight-bold;
102
- color: var(--color-fg-default);
103
- border-bottom: $border-width $border-style var(--color-border-muted);
104
-
105
- &:hover {
106
- text-decoration: none;
107
- }
108
-
109
- &:first-child {
110
- border-top-left-radius: $border-radius;
111
- border-top-right-radius: $border-radius;
112
- }
113
-
114
- &:last-child {
115
- border-bottom: 0;
116
- border-bottom-right-radius: $border-radius;
117
- border-bottom-left-radius: $border-radius;
118
- }
119
- }
1
+ @import '@primer/view-components/app/components/primer/alpha/menu';
@@ -1,104 +1 @@
1
- // Outer wrapper
2
- // stylelint-disable selector-max-type
3
- .tabnav {
4
- margin-top: 0;
5
- margin-bottom: $spacer-3;
6
- border-bottom: $border-width $border-style var(--color-border-default);
7
- }
8
-
9
- .tabnav-tabs {
10
- display: flex;
11
- // stylelint-disable-next-line primer/spacing
12
- margin-bottom: -1px;
13
- overflow: auto;
14
- }
15
-
16
- .tabnav-tab {
17
- display: inline-block;
18
- flex-shrink: 0;
19
- padding: $spacer-2 $spacer-3;
20
- font-size: $h5-size;
21
- // stylelint-disable-next-line primer/typography
22
- line-height: 23px;
23
- color: var(--color-fg-muted);
24
- text-decoration: none;
25
- background-color: transparent;
26
- border: $border-width $border-style transparent;
27
- border-bottom: 0;
28
- transition: color 0.2s cubic-bezier(0.3, 0, 0.5, 1);
29
-
30
- &.selected,
31
- &[aria-selected='true'],
32
- &[aria-current]:not([aria-current='false']) {
33
- color: var(--color-fg-default);
34
- background-color: var(--color-canvas-default); // cover bottom border
35
- border-color: var(--color-border-default);
36
- border-radius: $border-radius $border-radius 0 0;
37
-
38
- .octicon {
39
- color: inherit;
40
- }
41
- }
42
-
43
- &:hover {
44
- color: var(--color-fg-default);
45
- text-decoration: none;
46
- transition-duration: 0.1s;
47
- }
48
-
49
- &:focus,
50
- &:focus-visible {
51
- border-radius: $border-radius $border-radius 0 0 !important;
52
- outline-offset: -6px;
53
- }
54
-
55
- &:active {
56
- color: var(--color-fg-muted);
57
- }
58
-
59
- .octicon {
60
- margin-right: $spacer-1;
61
- color: var(--color-fg-muted);
62
- }
63
-
64
- .Counter {
65
- margin-left: $spacer-1;
66
- color: inherit;
67
- }
68
- }
69
-
70
- // Tabnav extras
71
- //
72
- // Tabnav extras are non-tab elements that sit in the tabnav. Usually they're
73
- // inline text or links.
74
-
75
- .tabnav-extra {
76
- display: inline-block;
77
- // stylelint-disable-next-line primer/spacing
78
- padding-top: 10px;
79
- // stylelint-disable-next-line primer/spacing
80
- margin-left: 10px;
81
- font-size: $font-size-small;
82
- color: var(--color-fg-muted);
83
-
84
- > .octicon {
85
- // stylelint-disable-next-line primer/spacing
86
- margin-right: 2px;
87
- }
88
- }
89
-
90
- // When tabnav-extra are anchors
91
- // stylelint-disable-next-line selector-no-qualifying-type
92
- a.tabnav-extra:hover {
93
- color: var(--color-accent-fg);
94
- text-decoration: none;
95
- }
96
-
97
- // Tabnav buttons
98
- //
99
- // For when there are multiple buttons, space them out appropriately. Requires
100
- // the buttons to be floated or inline-block.
101
-
102
- .tabnav-btn {
103
- margin-left: $spacer-2;
104
- }
1
+ @import '@primer/view-components/app/components/primer/alpha/tab_nav';