@papillonarts/css 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.scss +1 -3
- package/build/primer/base/base.scss +164 -0
- package/build/primer/base/index.scss +6 -0
- package/build/primer/base/kbd.scss +23 -0
- package/build/primer/base/normalize.scss +381 -0
- package/build/primer/base/octicons.scss +6 -0
- package/build/primer/base/typography-base.scss +92 -0
- package/build/primer/color-modes/index.scss +12 -0
- package/build/primer/color-modes/native.scss +22 -0
- package/build/primer/color-modes/themes/dark.scss +6 -0
- package/build/primer/color-modes/themes/dark_colorblind.scss +6 -0
- package/build/primer/color-modes/themes/dark_dimmed.scss +6 -0
- package/build/primer/color-modes/themes/dark_high_contrast.scss +6 -0
- package/build/primer/color-modes/themes/dark_tritanopia.scss +6 -0
- package/build/primer/color-modes/themes/light.scss +6 -0
- package/build/primer/color-modes/themes/light_colorblind.scss +6 -0
- package/build/primer/color-modes/themes/light_high_contrast.scss +6 -0
- package/build/primer/color-modes/themes/light_tritanopia.scss +6 -0
- package/build/primer/index.scss +6 -0
- package/build/primer/support/index.scss +10 -0
- package/build/primer/support/mixins/color-modes.scss +111 -0
- package/build/primer/support/mixins/layout.scss +61 -0
- package/build/primer/support/mixins/misc.scss +73 -0
- package/build/primer/support/mixins/typography.scss +93 -0
- package/build/primer/support/variables/layout.scss +230 -0
- package/build/primer/support/variables/misc.scss +18 -0
- package/build/primer/support/variables/typography.scss +43 -0
- package/build/primer/truncate/index.scss +2 -0
- package/build/primer/truncate/truncate.scss +66 -0
- package/build/primer/utilities/animations.scss +196 -0
- package/build/primer/utilities/borders.scss +78 -0
- package/build/primer/utilities/box-shadow.scss +27 -0
- package/build/primer/utilities/colors.scss +95 -0
- package/build/primer/utilities/details.scss +107 -0
- package/build/primer/utilities/flexbox.scss +54 -0
- package/build/primer/utilities/index.scss +14 -0
- package/build/primer/utilities/layout.scss +98 -0
- package/build/primer/utilities/margin.scss +74 -0
- package/build/primer/utilities/padding.scss +59 -0
- package/build/primer/utilities/typography.scss +335 -0
- package/build/primer/utilities/visibility-display.scss +125 -0
- package/package.json +2 -2
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// variables
|
|
2
|
+
@import './variables/typography.scss';
|
|
3
|
+
@import './variables/layout.scss';
|
|
4
|
+
@import './variables/misc.scss';
|
|
5
|
+
|
|
6
|
+
// mixins
|
|
7
|
+
@import './mixins/color-modes.scss';
|
|
8
|
+
@import './mixins/typography.scss';
|
|
9
|
+
@import './mixins/layout.scss';
|
|
10
|
+
@import './mixins/misc.scss';
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
@mixin color-mode-theme($theme-name, $include-root: false) {
|
|
2
|
+
@if $include-root {
|
|
3
|
+
:root,
|
|
4
|
+
[data-color-mode="light"][data-light-theme="#{$theme-name}"],
|
|
5
|
+
[data-color-mode="dark"][data-dark-theme="#{$theme-name}"] {
|
|
6
|
+
@content;
|
|
7
|
+
|
|
8
|
+
/*! */ // This is a fix for a cssstats bug see https://github.com/cssstats/cssstats/issues/331
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@else {
|
|
13
|
+
[data-color-mode="light"][data-light-theme="#{$theme-name}"],
|
|
14
|
+
[data-color-mode="dark"][data-dark-theme="#{$theme-name}"] {
|
|
15
|
+
@content;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@media (prefers-color-scheme: light) {
|
|
20
|
+
[data-color-mode="auto"][data-light-theme="#{$theme-name}"] {
|
|
21
|
+
@content;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@media (prefers-color-scheme: dark) {
|
|
26
|
+
[data-color-mode="auto"][data-dark-theme="#{$theme-name}"] {
|
|
27
|
+
@content;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@mixin color-mode($mode) {
|
|
33
|
+
@if $mode == light {
|
|
34
|
+
:root,
|
|
35
|
+
[data-color-mode="light"][data-light-theme*="#{$mode}"],
|
|
36
|
+
[data-color-mode="dark"][data-dark-theme*="#{$mode}"] {
|
|
37
|
+
@content;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@else {
|
|
42
|
+
[data-color-mode="light"][data-light-theme*="#{$mode}"],
|
|
43
|
+
[data-color-mode="dark"][data-dark-theme*="#{$mode}"] {
|
|
44
|
+
@content;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@media (prefers-color-scheme: light) {
|
|
49
|
+
[data-color-mode="auto"][data-light-theme*="#{$mode}"] {
|
|
50
|
+
@content;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@media (prefers-color-scheme: dark) {
|
|
55
|
+
[data-color-mode="auto"][data-dark-theme*="#{$mode}"] {
|
|
56
|
+
@content;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// This mixin takes a map of color mode vars and splits them into dark and light mode
|
|
62
|
+
// The goal is to reduce the amount of dark/light mode selectors compiled.
|
|
63
|
+
//
|
|
64
|
+
// Example input for $color-map
|
|
65
|
+
//
|
|
66
|
+
// @include color-variables(("custom-css-variable-1": (
|
|
67
|
+
// light: var(--color-scale-gray-3),
|
|
68
|
+
// dark: var(--color-scale-gray-5)
|
|
69
|
+
// ),
|
|
70
|
+
// "custom-css-variable-2": (
|
|
71
|
+
// light: var(--color-scale-gray-2),
|
|
72
|
+
// dark: var(--color-scale-gray-6)
|
|
73
|
+
// ),
|
|
74
|
+
// "custom-css-variable-3": (
|
|
75
|
+
// light: var(--color-scale-gray-2),
|
|
76
|
+
// dark: var(--color-scale-gray-6)
|
|
77
|
+
// )
|
|
78
|
+
// ));
|
|
79
|
+
@mixin color-variables($color-map) {
|
|
80
|
+
// Create map to store incoming variables
|
|
81
|
+
$dark-colors: ();
|
|
82
|
+
$light-colors: ();
|
|
83
|
+
|
|
84
|
+
@each $name, $value in $color-map {
|
|
85
|
+
@each $type, $color in $value {
|
|
86
|
+
@if $type == dark {
|
|
87
|
+
// stylelint-disable-next-line function-no-unknown
|
|
88
|
+
$dark-colors: append($dark-colors, (--color-#{$name}, #{$color}));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@else {
|
|
92
|
+
// stylelint-disable-next-line function-no-unknown
|
|
93
|
+
$light-colors: append($light-colors, (--color-#{$name}, #{$color}));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
$mode-colors: (
|
|
99
|
+
dark: $dark-colors,
|
|
100
|
+
light: $light-colors
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
// Loop through sorted list
|
|
104
|
+
@each $mode, $variables in $mode-colors {
|
|
105
|
+
@include color-mode($mode) {
|
|
106
|
+
@each $prop, $val in $variables {
|
|
107
|
+
#{$prop}: $val;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
@import "../variables/layout.scss";
|
|
2
|
+
|
|
3
|
+
// Responsive media queries
|
|
4
|
+
|
|
5
|
+
@mixin breakpoint($breakpoint) {
|
|
6
|
+
@if $breakpoint == '' {
|
|
7
|
+
@content;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@else {
|
|
11
|
+
// Retrieves the value from the key
|
|
12
|
+
// stylelint-disable-next-line function-no-unknown
|
|
13
|
+
$value: map-get($breakpoints, $breakpoint);
|
|
14
|
+
|
|
15
|
+
// If the key exists in the map
|
|
16
|
+
@if $value != null {
|
|
17
|
+
// Prints a media query based on the value
|
|
18
|
+
@media (min-width: $value) {
|
|
19
|
+
@content;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// If the key doesn't exist in the map
|
|
24
|
+
@else {
|
|
25
|
+
@warn 'Unfortunately, no value could be retrieved from `#{$breakpoint}`. '
|
|
26
|
+
+ 'Please make sure it is defined in `$breakpoints` map.';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Retina media query
|
|
32
|
+
|
|
33
|
+
@mixin retina-media-query {
|
|
34
|
+
@media
|
|
35
|
+
only screen and (-webkit-min-device-pixel-ratio: 2),
|
|
36
|
+
only screen and (min--moz-device-pixel-ratio: 2),
|
|
37
|
+
only screen and (-moz-min-device-pixel-ratio: 2),
|
|
38
|
+
only screen and (-o-min-device-pixel-ratio: 2/1),
|
|
39
|
+
only screen and (min-device-pixel-ratio: 2),
|
|
40
|
+
only screen and (min-resolution: 192dpi),
|
|
41
|
+
only screen and (min-resolution: 2dppx) {
|
|
42
|
+
@content;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Clearfix
|
|
47
|
+
//
|
|
48
|
+
// Clears floats via mixin.
|
|
49
|
+
|
|
50
|
+
@mixin clearfix {
|
|
51
|
+
&::before {
|
|
52
|
+
display: table;
|
|
53
|
+
content: '';
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&::after {
|
|
57
|
+
display: table;
|
|
58
|
+
clear: both;
|
|
59
|
+
content: '';
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
// Generate a two-color caret for any element.
|
|
2
|
+
@mixin double-caret($background: var(--color-canvas-default), $border: var(--color-border-default)) {
|
|
3
|
+
&::after,
|
|
4
|
+
&::before {
|
|
5
|
+
position: absolute;
|
|
6
|
+
top: 11px;
|
|
7
|
+
right: 100%;
|
|
8
|
+
left: -8px;
|
|
9
|
+
display: block;
|
|
10
|
+
width: 8px;
|
|
11
|
+
height: 16px;
|
|
12
|
+
pointer-events: none;
|
|
13
|
+
content: ' ';
|
|
14
|
+
clip-path: polygon(0 50%, 100% 0, 100% 100%);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&::after {
|
|
18
|
+
// stylelint-disable-next-line primer/spacing
|
|
19
|
+
margin-left: 2px;
|
|
20
|
+
background-color: var(--color-canvas-default);
|
|
21
|
+
background-image: linear-gradient($background, $background);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&::before {
|
|
25
|
+
background-color: $border;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// global focus styles
|
|
30
|
+
|
|
31
|
+
// inset box-shadow for form controls
|
|
32
|
+
@mixin focusBoxShadowInset($outlineWidth: 1px, $outlineColor: var(--color-accent-fg)) {
|
|
33
|
+
border-color: var(--color-accent-fg);
|
|
34
|
+
outline: none;
|
|
35
|
+
box-shadow: inset 0 0 0 $outlineWidth $outlineColor;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// box-shadow for :target styles (no inset)
|
|
39
|
+
// !important to override PCSS utilities
|
|
40
|
+
@mixin targetBoxShadow($outlineWidth: 2px, $outlineColor: var(--color-accent-fg)) {
|
|
41
|
+
outline: none !important;
|
|
42
|
+
box-shadow: 0 0 0 $outlineWidth $outlineColor !important;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// outline
|
|
46
|
+
@mixin focusOutline($outlineOffset: -2px, $outlineColor: var(--color-accent-fg)) {
|
|
47
|
+
outline: 2px solid $outlineColor;
|
|
48
|
+
outline-offset: $outlineOffset;
|
|
49
|
+
box-shadow: none;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// outline with fg box-shadow for buttons
|
|
53
|
+
@mixin focusOutlineOnEmphasis($outlineOffset: -2px, $outlineColor: var(--color-accent-fg)) {
|
|
54
|
+
outline: 2px solid $outlineColor;
|
|
55
|
+
outline-offset: $outlineOffset;
|
|
56
|
+
box-shadow: inset 0 0 0 3px var(--color-fg-on-emphasis);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// if min-width is undefined, return only min-height
|
|
60
|
+
@mixin minTouchTarget($min-height: 32px, $min-width: '') {
|
|
61
|
+
position: absolute;
|
|
62
|
+
top: 50%;
|
|
63
|
+
left: 50%;
|
|
64
|
+
width: 100%;
|
|
65
|
+
height: 100%;
|
|
66
|
+
min-height: $min-height;
|
|
67
|
+
content: '';
|
|
68
|
+
transform: translateX(-50%) translateY(-50%);
|
|
69
|
+
|
|
70
|
+
@if $min-width != '' {
|
|
71
|
+
min-width: $min-width;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
@import "../variables/typography.scss";
|
|
2
|
+
|
|
3
|
+
// Text hiding for image based text replacement.
|
|
4
|
+
// Higher performance than -9999px because it only renders
|
|
5
|
+
// the size of the actual text, not a full 9999px box.
|
|
6
|
+
@mixin hide-text() {
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
text-indent: 100%;
|
|
9
|
+
white-space: nowrap;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// Heading mixins for use within components
|
|
13
|
+
// These match heading utilities in utilities/typography
|
|
14
|
+
@mixin h1 {
|
|
15
|
+
font-size: var(--h1-size, $h1-size);
|
|
16
|
+
font-weight: $font-weight-bold;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@mixin h2 {
|
|
20
|
+
font-size: var(--h2-size, $h2-size);
|
|
21
|
+
font-weight: $font-weight-bold;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@mixin h3 {
|
|
25
|
+
font-size: var(--h3-size, $h3-size);
|
|
26
|
+
font-weight: $font-weight-bold;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@mixin h4 {
|
|
30
|
+
font-size: var(--h4-size, $h4-size);
|
|
31
|
+
font-weight: $font-weight-bold;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@mixin h5 {
|
|
35
|
+
font-size: var(--h5-size, $h5-size);
|
|
36
|
+
font-weight: $font-weight-bold;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@mixin h6 {
|
|
40
|
+
font-size: var(--h6-size, $h6-size);
|
|
41
|
+
font-weight: $font-weight-bold;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Responsive heading mixins
|
|
45
|
+
// There are no responsive mixins for h4-h6 because they are small
|
|
46
|
+
// and don't need to be smaller on mobile.
|
|
47
|
+
@mixin f1-responsive {
|
|
48
|
+
font-size: var(--h1-size-mobile, $h1-size-mobile);
|
|
49
|
+
|
|
50
|
+
// 32px on desktop
|
|
51
|
+
@include breakpoint(md) {
|
|
52
|
+
font-size: var(--h1-size, $h1-size);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
@mixin f2-responsive {
|
|
57
|
+
font-size: var(--h2-size-mobile, $h2-size-mobile);
|
|
58
|
+
|
|
59
|
+
// 24px on desktop
|
|
60
|
+
@include breakpoint(md) {
|
|
61
|
+
font-size: var(--h2-size, $h2-size);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@mixin f3-responsive {
|
|
66
|
+
font-size: var(--h3-size-mobile, $h3-size-mobile);
|
|
67
|
+
|
|
68
|
+
// 20px on desktop
|
|
69
|
+
@include breakpoint(md) {
|
|
70
|
+
font-size: var(--h3-size, $h3-size);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// These use the mixins from above for responsive heading sizes.
|
|
75
|
+
// The following mixins can be used where it's convenient or necessary to
|
|
76
|
+
// couple the responsive font-size with the font-weight.
|
|
77
|
+
@mixin h1-responsive {
|
|
78
|
+
@include f1-responsive;
|
|
79
|
+
|
|
80
|
+
font-weight: $font-weight-bold;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@mixin h2-responsive {
|
|
84
|
+
@include f2-responsive;
|
|
85
|
+
|
|
86
|
+
font-weight: $font-weight-bold;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@mixin h3-responsive {
|
|
90
|
+
@include f3-responsive;
|
|
91
|
+
|
|
92
|
+
font-weight: $font-weight-bold;
|
|
93
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
// Layout variables
|
|
2
|
+
|
|
3
|
+
// these are values for the display CSS property
|
|
4
|
+
$display-values: (
|
|
5
|
+
block,
|
|
6
|
+
flex,
|
|
7
|
+
inline,
|
|
8
|
+
inline-block,
|
|
9
|
+
inline-flex,
|
|
10
|
+
none,
|
|
11
|
+
table,
|
|
12
|
+
table-cell) !default;
|
|
13
|
+
|
|
14
|
+
// maps edges to respective corners for border-radius
|
|
15
|
+
$edges: (
|
|
16
|
+
top: (top-left, top-right),
|
|
17
|
+
right: (top-right, bottom-right),
|
|
18
|
+
bottom: (bottom-right, bottom-left),
|
|
19
|
+
left: (bottom-left, top-left)) !default;
|
|
20
|
+
|
|
21
|
+
// These are our margin and padding utility spacers. The default step size we
|
|
22
|
+
// use is 8px. This gives us a key of:
|
|
23
|
+
// 0 => 0px
|
|
24
|
+
// 1 => 4px
|
|
25
|
+
// 2 => 8px
|
|
26
|
+
// 3 => 16px
|
|
27
|
+
// 4 => 24px
|
|
28
|
+
// 5 => 32px
|
|
29
|
+
// 6 => 40px
|
|
30
|
+
$spacer: 8px !default;
|
|
31
|
+
|
|
32
|
+
// Our spacing scale
|
|
33
|
+
$spacer-0: 0 !default; // 0
|
|
34
|
+
$spacer-1: $spacer * 0.5 !default; // 4px
|
|
35
|
+
$spacer-2: $spacer !default; // 8px
|
|
36
|
+
$spacer-3: $spacer * 2 !default; // 16px
|
|
37
|
+
$spacer-4: $spacer * 3 !default; // 24px
|
|
38
|
+
$spacer-5: $spacer * 4 !default; // 32px
|
|
39
|
+
$spacer-6: $spacer * 5 !default; // 40px
|
|
40
|
+
|
|
41
|
+
// The list of spacer values
|
|
42
|
+
$spacers: (
|
|
43
|
+
$spacer-0,
|
|
44
|
+
$spacer-1,
|
|
45
|
+
$spacer-2,
|
|
46
|
+
$spacer-3,
|
|
47
|
+
$spacer-4,
|
|
48
|
+
$spacer-5,
|
|
49
|
+
$spacer-6,
|
|
50
|
+
) !default;
|
|
51
|
+
|
|
52
|
+
// And the map of spacers, for easier looping:
|
|
53
|
+
// @each $scale, $length in $spacer-map { ... }
|
|
54
|
+
$spacer-map: (
|
|
55
|
+
0: $spacer-0,
|
|
56
|
+
1: $spacer-1,
|
|
57
|
+
2: $spacer-2,
|
|
58
|
+
3: $spacer-3,
|
|
59
|
+
4: $spacer-4,
|
|
60
|
+
5: $spacer-5,
|
|
61
|
+
6: $spacer-6,
|
|
62
|
+
) !default;
|
|
63
|
+
|
|
64
|
+
// Increases the core spacing scale first by 8px for $spacer-7, then by 16px
|
|
65
|
+
// increments from $spacer-8 to $spacer-12, i.e. after 40px, we have 48, 64,
|
|
66
|
+
// 80, 96, etc.
|
|
67
|
+
$spacer-7: $spacer * 6 !default; // 48px
|
|
68
|
+
$spacer-8: $spacer * 8 !default; // 64px
|
|
69
|
+
$spacer-9: $spacer * 10 !default; // 80px
|
|
70
|
+
$spacer-10: $spacer * 12 !default; // 96px
|
|
71
|
+
$spacer-11: $spacer * 14 !default; // 112px
|
|
72
|
+
$spacer-12: $spacer * 16 !default; // 128px
|
|
73
|
+
|
|
74
|
+
$spacers-large: (
|
|
75
|
+
7: $spacer-7,
|
|
76
|
+
8: $spacer-8,
|
|
77
|
+
9: $spacer-9,
|
|
78
|
+
10: $spacer-10,
|
|
79
|
+
11: $spacer-11,
|
|
80
|
+
12: $spacer-12,
|
|
81
|
+
) !default;
|
|
82
|
+
|
|
83
|
+
$spacer-map-extended: map-merge(
|
|
84
|
+
(0: 0,
|
|
85
|
+
1: $spacer-1,
|
|
86
|
+
2: $spacer-2,
|
|
87
|
+
3: $spacer-3,
|
|
88
|
+
4: $spacer-4,
|
|
89
|
+
5: $spacer-5,
|
|
90
|
+
6: $spacer-6,
|
|
91
|
+
),
|
|
92
|
+
$spacers-large,
|
|
93
|
+
) !default;
|
|
94
|
+
|
|
95
|
+
// Em spacer variables
|
|
96
|
+
$em-spacer-1: 0.0625em !default; // 1/16
|
|
97
|
+
$em-spacer-2: 0.125em !default; // 1/8
|
|
98
|
+
$em-spacer-3: 0.25em !default; // 1/4
|
|
99
|
+
$em-spacer-4: 0.375em !default; // 3/8
|
|
100
|
+
$em-spacer-5: 0.5em !default; // 1/2
|
|
101
|
+
$em-spacer-6: 0.75em !default; // 3/4
|
|
102
|
+
|
|
103
|
+
// Size scale
|
|
104
|
+
// Used for buttons, inputs, labels, avatars etc.
|
|
105
|
+
$size: 16px !default;
|
|
106
|
+
|
|
107
|
+
$size-0: 0 !default;
|
|
108
|
+
$size-1: $size !default; // 16px
|
|
109
|
+
$size-2: $size-1 + 4px !default; // 20px
|
|
110
|
+
$size-3: $size-2 + 4px !default; // 24px
|
|
111
|
+
$size-4: $size-3 + 4px !default; // 28px
|
|
112
|
+
$size-5: $size-4 + 4px !default; // 32px
|
|
113
|
+
$size-6: $size-5 + 8px !default; // 40px
|
|
114
|
+
$size-7: $size-6 + 8px !default; // 48px
|
|
115
|
+
$size-8: $size-7 + 16px !default; // 64px
|
|
116
|
+
|
|
117
|
+
// Fixed-width container variables
|
|
118
|
+
$container-width: 980px !default;
|
|
119
|
+
$grid-gutter: 10px !default;
|
|
120
|
+
|
|
121
|
+
// Breakpoint widths
|
|
122
|
+
$width-xs: 0 !default;
|
|
123
|
+
// Small screen / phone
|
|
124
|
+
$width-sm: 544px !default;
|
|
125
|
+
// Medium screen / tablet
|
|
126
|
+
$width-md: 768px !default;
|
|
127
|
+
// Large screen / desktop (980 + (16 * 2)) <= container + gutters
|
|
128
|
+
$width-lg: 1012px !default;
|
|
129
|
+
// Extra large screen / wide desktop
|
|
130
|
+
$width-xl: 1280px !default;
|
|
131
|
+
|
|
132
|
+
// Responsive container widths
|
|
133
|
+
$container-sm: $width-sm !default;
|
|
134
|
+
$container-md: $width-md !default;
|
|
135
|
+
$container-lg: $width-lg !default;
|
|
136
|
+
$container-xl: $width-xl !default;
|
|
137
|
+
|
|
138
|
+
// Breakpoints in the form (name: length)
|
|
139
|
+
$breakpoints: (
|
|
140
|
+
sm: $width-sm,
|
|
141
|
+
md: $width-md,
|
|
142
|
+
lg: $width-lg,
|
|
143
|
+
xl: $width-xl) !default;
|
|
144
|
+
|
|
145
|
+
// Viewport ranges
|
|
146
|
+
// Soon to be provided by Primer Primitives directly
|
|
147
|
+
// https://github.com/primer/primitives/blob/main/tokens/functional/size/viewport.json
|
|
148
|
+
$viewport-narrow: 'max-width: #{$width-md - 0.02px}' !default;
|
|
149
|
+
$viewport-regular: 'min-width: #{$width-md}' !default;
|
|
150
|
+
$viewport-wide: 'min-width: 1400px' !default;
|
|
151
|
+
|
|
152
|
+
// This map in the form (breakpoint: variant) is used to iterate over
|
|
153
|
+
// breakpoints and create both responsive and non-responsive classes in one
|
|
154
|
+
// loop:
|
|
155
|
+
$responsive-variants: (
|
|
156
|
+
'': '',
|
|
157
|
+
sm: '-sm',
|
|
158
|
+
md: '-md',
|
|
159
|
+
lg: '-lg',
|
|
160
|
+
xl: '-xl',
|
|
161
|
+
) !default;
|
|
162
|
+
|
|
163
|
+
// responsive utility position values
|
|
164
|
+
$responsive-positions: (
|
|
165
|
+
static,
|
|
166
|
+
relative,
|
|
167
|
+
absolute,
|
|
168
|
+
fixed,
|
|
169
|
+
sticky) !default;
|
|
170
|
+
|
|
171
|
+
$sidebar-width: (
|
|
172
|
+
sm: 220px,
|
|
173
|
+
md: 256px,
|
|
174
|
+
lg: 296px) !default;
|
|
175
|
+
|
|
176
|
+
$sidebar-narrow-width: (
|
|
177
|
+
md: 240px,
|
|
178
|
+
lg: 256px) !default;
|
|
179
|
+
|
|
180
|
+
$sidebar-wide-width: (
|
|
181
|
+
lg: 320px,
|
|
182
|
+
xl: 336px) !default;
|
|
183
|
+
|
|
184
|
+
$gutter: (
|
|
185
|
+
md: $spacer-3,
|
|
186
|
+
lg: $spacer-4,
|
|
187
|
+
xl: $spacer-5) !default;
|
|
188
|
+
|
|
189
|
+
$gutter-condensed: (
|
|
190
|
+
md: $spacer-3,
|
|
191
|
+
lg: $spacer-3,
|
|
192
|
+
xl: $spacer-4) !default;
|
|
193
|
+
|
|
194
|
+
$gutter-spacious: (
|
|
195
|
+
md: $spacer-4,
|
|
196
|
+
lg: $spacer-5,
|
|
197
|
+
xl: $spacer-6) !default;
|
|
198
|
+
|
|
199
|
+
// rem unit support
|
|
200
|
+
|
|
201
|
+
$spacer-map-rem: (
|
|
202
|
+
0: 0,
|
|
203
|
+
1: var(--base-size-4, 4px),
|
|
204
|
+
2: var(--base-size-8, 8px),
|
|
205
|
+
3: var(--base-size-16, 16px),
|
|
206
|
+
4: var(--base-size-24, 24px),
|
|
207
|
+
5: var(--base-size-32, 32px),
|
|
208
|
+
6: var(--base-size-40, 40px),
|
|
209
|
+
) !default;
|
|
210
|
+
|
|
211
|
+
$spacers-large-rem: (
|
|
212
|
+
7: var(--base-size-48, 48px),
|
|
213
|
+
8: var(--base-size-64, 64px),
|
|
214
|
+
9: var(--base-size-80, 80px),
|
|
215
|
+
10: var(--base-size-96, 96px),
|
|
216
|
+
11: var(--base-size-112, 112px),
|
|
217
|
+
12: var(--base-size-128, 128px),
|
|
218
|
+
) !default;
|
|
219
|
+
|
|
220
|
+
$spacer-map-rem-extended: map-merge(
|
|
221
|
+
(0: 0,
|
|
222
|
+
1: var(--base-size-4, 4px),
|
|
223
|
+
2: var(--base-size-8, 8px),
|
|
224
|
+
3: var(--base-size-16, 16px),
|
|
225
|
+
4: var(--base-size-24, 24px),
|
|
226
|
+
5: var(--base-size-32, 32px),
|
|
227
|
+
6: var(--base-size-40, 40px),
|
|
228
|
+
),
|
|
229
|
+
$spacers-large-rem,
|
|
230
|
+
) !default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Miscellaneous variables
|
|
2
|
+
|
|
3
|
+
// Border
|
|
4
|
+
$border-width: 1px !default;
|
|
5
|
+
$border-style: solid !default;
|
|
6
|
+
$border: $border-width $border-style var(--color-border-default) !default;
|
|
7
|
+
$border-rem: var(--primer-borderWidth-thin, 1px) solid var(--color-border-default) !default;
|
|
8
|
+
|
|
9
|
+
// Border Radius
|
|
10
|
+
$border-radius-1: 4px !default;
|
|
11
|
+
$border-radius-2: 6px !default;
|
|
12
|
+
$border-radius-3: 8px !default;
|
|
13
|
+
$border-radius: $border-radius-2 !default;
|
|
14
|
+
|
|
15
|
+
// Tooltips
|
|
16
|
+
$tooltip-max-width: 250px !default;
|
|
17
|
+
$tooltip-delay: 0.4s !default;
|
|
18
|
+
$tooltip-duration: 0.1s !default;
|