github-docs 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/_includes/sidebar.html +66 -0
  3. data/_layouts/default.html +50 -0
  4. data/_layouts/home.html +4 -0
  5. data/_layouts/page.html +4 -0
  6. data/_layouts/post.html +4 -0
  7. data/_sass/github-docs.scss +215 -0
  8. data/_sass/primer-base/base.scss +84 -0
  9. data/_sass/primer-base/index.scss +3 -0
  10. data/_sass/primer-base/normalize.scss +421 -0
  11. data/_sass/primer-base/typography-base.scss +86 -0
  12. data/_sass/primer-layout/columns.scss +54 -0
  13. data/_sass/primer-layout/container.scss +30 -0
  14. data/_sass/primer-layout/grid-offset.scss +19 -0
  15. data/_sass/primer-layout/grid.scss +64 -0
  16. data/_sass/primer-layout/index.scss +4 -0
  17. data/_sass/primer-markdown/blob-csv.scss +27 -0
  18. data/_sass/primer-markdown/code.scss +63 -0
  19. data/_sass/primer-markdown/headings.scss +65 -0
  20. data/_sass/primer-markdown/images.scss +119 -0
  21. data/_sass/primer-markdown/index.scss +7 -0
  22. data/_sass/primer-markdown/lists.scss +76 -0
  23. data/_sass/primer-markdown/markdown-body.scss +106 -0
  24. data/_sass/primer-markdown/tables.scss +33 -0
  25. data/_sass/primer-support/index.scss +11 -0
  26. data/_sass/primer-support/mixins/buttons.scss +160 -0
  27. data/_sass/primer-support/mixins/layout.scss +58 -0
  28. data/_sass/primer-support/mixins/misc.scss +29 -0
  29. data/_sass/primer-support/mixins/typography.scss +84 -0
  30. data/_sass/primer-support/variables/color-system.scss +114 -0
  31. data/_sass/primer-support/variables/colors.scss +67 -0
  32. data/_sass/primer-support/variables/layout.scss +78 -0
  33. data/_sass/primer-support/variables/misc.scss +40 -0
  34. data/_sass/primer-support/variables/typography.scss +43 -0
  35. data/_sass/primer-utilities/animations.scss +184 -0
  36. data/_sass/primer-utilities/borders.scss +100 -0
  37. data/_sass/primer-utilities/box-shadow.scss +26 -0
  38. data/_sass/primer-utilities/colors.scss +106 -0
  39. data/_sass/primer-utilities/details.scss +18 -0
  40. data/_sass/primer-utilities/flexbox.scss +52 -0
  41. data/_sass/primer-utilities/index.scss +13 -0
  42. data/_sass/primer-utilities/layout.scss +85 -0
  43. data/_sass/primer-utilities/margin.scss +53 -0
  44. data/_sass/primer-utilities/padding.scss +54 -0
  45. data/_sass/primer-utilities/typography.scss +215 -0
  46. data/_sass/primer-utilities/visibility-display.scss +87 -0
  47. data/_sass/rouge.scss +209 -0
  48. data/assets/css/index.scss +16 -0
  49. data/assets/imgs/back.svg +1 -0
  50. data/assets/js/anchor.min.js +6 -0
  51. data/assets/js/index.js +52 -0
  52. data/readme.md +34 -0
  53. metadata +156 -0
@@ -0,0 +1,29 @@
1
+ // Generate a two-color caret for any element.
2
+ @mixin double-caret($foreground: $text-white, $background: lighten($gray-300, 5%)) {
3
+ &::after,
4
+ &::before {
5
+ position: absolute;
6
+ top: 11px;
7
+ right: 100%;
8
+ left: -16px;
9
+ display: block;
10
+ width: 0;
11
+ height: 0;
12
+ pointer-events: none;
13
+ content: " ";
14
+ border-color: transparent;
15
+ border-style: solid solid outset;
16
+ }
17
+
18
+ &::after {
19
+ margin-top: 1px;
20
+ margin-left: 2px;
21
+ border-width: 7px;
22
+ border-right-color: $foreground;
23
+ }
24
+
25
+ &::before {
26
+ border-width: 8px;
27
+ border-right-color: $background;
28
+ }
29
+ }
@@ -0,0 +1,84 @@
1
+ // Text hiding for image based text replacement.
2
+ // Higher performance than -9999px because it only renders
3
+ // the size of the actual text, not a full 9999px box.
4
+ @mixin hide-text() {
5
+ overflow: hidden;
6
+ text-indent: 100%;
7
+ white-space: nowrap;
8
+ }
9
+
10
+ // Heading mixins for use within components
11
+ // These match heading utilities in utilities/typography
12
+ @mixin h1 {
13
+ font-size: $h1-size;
14
+ font-weight: $font-weight-bold;
15
+ }
16
+
17
+ @mixin h2 {
18
+ font-size: $h2-size;
19
+ font-weight: $font-weight-bold;
20
+ }
21
+
22
+ @mixin h3 {
23
+ font-size: $h3-size;
24
+ font-weight: $font-weight-bold;
25
+ }
26
+
27
+ @mixin h4 {
28
+ font-size: $h4-size;
29
+ font-weight: $font-weight-bold;
30
+ }
31
+
32
+ @mixin h5 {
33
+ font-size: $h5-size;
34
+ font-weight: $font-weight-bold;
35
+ }
36
+
37
+ @mixin h6 {
38
+ font-size: $h6-size;
39
+ font-weight: $font-weight-bold;
40
+ }
41
+
42
+ // Responsive heading mixins
43
+ // There are no responsive mixins for h4—h6 because they are small
44
+ // and don't need to be smaller on mobile.
45
+ @mixin f1-responsive {
46
+ font-size: $h1-size-mobile;
47
+
48
+ // 32px on desktop
49
+ @include breakpoint(md) { font-size: $h1-size; }
50
+
51
+ }
52
+
53
+ @mixin f2-responsive {
54
+ font-size: $h2-size-mobile;
55
+
56
+ // 24px on desktop
57
+ @include breakpoint(md) { font-size: $h2-size; }
58
+ }
59
+
60
+ @mixin f3-responsive {
61
+ font-size: $h3-size-mobile;
62
+
63
+ // 20px on desktop
64
+ @include breakpoint(md) { font-size: $h3-size; }
65
+
66
+ }
67
+
68
+ // These use the mixins from above for responsive heading sizes.
69
+ // The following mixins can be used where it's convenient or necessary to
70
+ // couple the responsive font-size with the font-weight.
71
+ @mixin h1-responsive {
72
+ @include f1-responsive;
73
+ font-weight: $font-weight-bold;
74
+ }
75
+
76
+ @mixin h2-responsive {
77
+ @include f2-responsive;
78
+ font-weight: $font-weight-bold;
79
+ }
80
+
81
+ @mixin h3-responsive {
82
+ @include f3-responsive;
83
+ font-weight: $font-weight-bold;
84
+ }
@@ -0,0 +1,114 @@
1
+ //
2
+ //
3
+ // -------- Grays --------
4
+ $gray-000: #fafbfc !default;
5
+ $gray-100: #f6f8fa !default;
6
+ $gray-200: #e1e4e8 !default;
7
+ $gray-300: #d1d5da !default;
8
+ $gray-400: #959da5 !default;
9
+ $gray-500: #6a737d !default;
10
+ $gray-600: #586069 !default;
11
+ $gray-700: #444d56 !default;
12
+ $gray-800: #2f363d !default;
13
+ $gray-900: #24292e !default; // body font color
14
+
15
+ // -------- Blue --------
16
+ $blue-000: #f1f8ff !default;
17
+ $blue-100: #dbedff !default;
18
+ $blue-200: #c8e1ff !default;
19
+ $blue-300: #79b8ff !default;
20
+ $blue-400: #2188ff !default;
21
+ $blue-500: #0366d6 !default; // Default: Passes AA with #fff
22
+ $blue-600: #005cc5 !default;
23
+ $blue-700: #044289 !default;
24
+ $blue-800: #032f62 !default;
25
+ $blue-900: #05264c !default; // Passes with 1/2/300 blues
26
+
27
+ // -------- Green --------
28
+ $green-000: #f0fff4 !default;
29
+ $green-100: #dcffe4 !default;
30
+ $green-200: #bef5cb !default;
31
+ $green-300: #85e89d !default;
32
+ $green-400: #34d058 !default;
33
+ $green-500: #28a745 !default; // Default. passes AA Large
34
+ $green-600: #22863a !default; // Text green, passes AA on #fff
35
+ $green-700: #176f2c !default;
36
+ $green-800: #165c26 !default;
37
+ $green-900: #144620 !default;
38
+
39
+ // -------- Yellow --------
40
+ $yellow-000: #fffdef !default;
41
+ $yellow-100: #fffbdd !default;
42
+ $yellow-200: #fff5b1 !default;
43
+ $yellow-300: #ffea7f !default;
44
+ $yellow-400: #ffdf5d !default;
45
+ $yellow-500: #ffd33d !default;
46
+ $yellow-600: #f9c513 !default;
47
+ $yellow-700: #dbab09 !default;
48
+ $yellow-800: #b08800 !default;
49
+ $yellow-900: #735c0f !default;
50
+
51
+ // -------- Orange --------
52
+ $orange-000: #fff8f2 !default;
53
+ $orange-100: #ffebda !default;
54
+ $orange-200: #ffd1ac !default;
55
+ $orange-300: #ffab70 !default;
56
+ $orange-400: #fb8532 !default;
57
+ $orange-500: #f66a0a !default; // Default. passes AA Large with #fff
58
+ $orange-600: #e36209 !default;
59
+ $orange-700: #d15704 !default;
60
+ $orange-800: #c24e00 !default;
61
+ $orange-900: #a04100 !default;
62
+
63
+ // -------- Red --------
64
+ $red-000: #ffeef0 !default;
65
+ $red-100: #ffdce0 !default;
66
+ $red-200: #fdaeb7 !default;
67
+ $red-300: #f97583 !default;
68
+ $red-400: #ea4a5a !default;
69
+ $red-500: #d73a49 !default; // Default. passes AA
70
+ $red-600: #cb2431 !default;
71
+ $red-700: #b31d28 !default;
72
+ $red-800: #9e1c23 !default;
73
+ $red-900: #86181d !default;
74
+
75
+ // -------- Purple --------
76
+ $purple-000: #f5f0ff !default;
77
+ $purple-100: #e6dcfd !default;
78
+ $purple-200: #d1bcf9 !default;
79
+ $purple-300: #b392f0 !default;
80
+ $purple-400: #8a63d2 !default;
81
+ $purple-500: #6f42c1 !default; // passes AA with #fff
82
+ $purple-600: #5a32a3 !default;
83
+ $purple-700: #4c2889 !default;
84
+ $purple-800: #3a1d6e !default;
85
+ $purple-900: #29134e !default;
86
+
87
+ // -------- Fades --------
88
+ // Black based on same hue as $gray-900
89
+ $black: #1b1f23 !default;
90
+ $white: #fff !default;
91
+
92
+ $black-fade-15: rgba($black, 0.15) !default;
93
+ $black-fade-30: rgba($black, 0.3) !default;
94
+ $black-fade-50: rgba($black, 0.5) !default;
95
+ $black-fade-70: rgba($black, 0.7) !default;
96
+ $black-fade-85: rgba($black, 0.85) !default;
97
+
98
+ $white-fade-15: rgba($white, 0.15) !default;
99
+ $white-fade-30: rgba($white, 0.3) !default;
100
+ $white-fade-50: rgba($white, 0.5) !default;
101
+ $white-fade-70: rgba($white, 0.7) !default;
102
+ $white-fade-85: rgba($white, 0.85) !default;
103
+
104
+ // -------- Color defaults --------
105
+ $red: $red-500 !default;
106
+ $purple: $purple-500 !default;
107
+ $blue: $blue-500 !default;
108
+ $green: $green-500 !default;
109
+ $yellow: $yellow-500 !default;
110
+ $orange: $orange-500 !default;
111
+
112
+ $gray-dark: $gray-900 !default;
113
+ $gray-light: $gray-400 !default;
114
+ $gray: $gray-500 !default;
@@ -0,0 +1,67 @@
1
+ @import "color-system.scss";
2
+ // Color variables
3
+ // stylelint-disable declaration-bang-space-before
4
+
5
+ // State indicators.
6
+ $status-pending: desaturate($yellow-700, 15%) !default;
7
+
8
+ // Repository type colors
9
+ // Should be able to deprecate these in future
10
+ $repo-private-text: $black-fade-70 !default;
11
+ $repo-private-bg: $yellow-000 !default;
12
+ $repo-private-icon: transparentize($yellow-900, 0.5) !default;
13
+
14
+ // Highlight used for things like search
15
+ $highlight-yellow: rgba(255, 247, 140, 0.5);
16
+
17
+ // Border colors
18
+ $border-black-fade: $black-fade-15 !default;
19
+
20
+ $border-blue: $blue-500 !default;
21
+ $border-blue-light: $blue-200 !default;
22
+
23
+ $border-green: $green-400 !default;
24
+ $border-green-light: desaturate($green-300, 40%) !default;
25
+
26
+ $border-purple: $purple !default;
27
+
28
+ $border-red: $red !default;
29
+ $border-red-light: desaturate($red-300, 60%) !default;
30
+
31
+ $border-purple: $purple !default;
32
+
33
+ $border-yellow: desaturate($yellow-300, 60%) !default;
34
+
35
+ $border-gray-dark: $gray-300 !default;
36
+ $border-gray-darker: $gray-700 !default;
37
+ $border-gray-light: lighten($gray-200, 3%) !default;
38
+ $border-gray: $gray-200 !default;
39
+
40
+ // Background colors
41
+ $bg-blue-light: $blue-000 !default;
42
+ $bg-blue: $blue-500 !default;
43
+ $bg-gray-dark: $gray-900 !default;
44
+ $bg-gray-light: $gray-000 !default;
45
+ $bg-gray: $gray-100 !default;
46
+ $bg-green: $green-500 !default;
47
+ $bg-green-light: $green-100 !default;
48
+ $bg-orange: $orange-700 !default;
49
+ $bg-purple: $purple-500 !default;
50
+ $bg-purple-light: $purple-000 !default;
51
+ $bg-red: $red-500 !default;
52
+ $bg-red-light: $red-100 !default;
53
+ $bg-white: $white !default;
54
+ $bg-yellow: $yellow-500 !default;
55
+ $bg-yellow-light: $yellow-200 !default;
56
+
57
+ // Text colors
58
+ $text-blue: $blue-500 !default;
59
+ $text-gray-dark: $gray-900 !default;
60
+ $text-gray-light: $gray-500 !default;
61
+ $text-gray: $gray-600 !default;
62
+ $text-green: $green-500 !default;
63
+ $text-orange: $orange-900 !default;
64
+ $text-orange-light: $orange-600 !default;
65
+ $text-purple: $purple !default;
66
+ $text-red: $red-600 !default;
67
+ $text-white: $white !default;
@@ -0,0 +1,78 @@
1
+ // Layout variables
2
+ // stylelint-disable declaration-bang-space-before
3
+
4
+ // These are our margin and padding utility spacers. The default step size we
5
+ // use is 8px. This gives us a key of:
6
+ // 0 => 0px
7
+ // 1 => 4px
8
+ // 2 => 8px
9
+ // 3 => 16px
10
+ // 4 => 24px
11
+ // 5 => 32px
12
+ // 6 => 40px
13
+ $spacer: 8px !default;
14
+ $spacers: (
15
+ 0,
16
+ round($spacer / 2),
17
+ $spacer,
18
+ $spacer * 2,
19
+ $spacer * 3,
20
+ $spacer * 4,
21
+ $spacer * 5,
22
+ // $spacer * 6,
23
+ // $spacer * 7
24
+ ) !default;
25
+
26
+ // Aliases for easy use
27
+ $spacer-0: nth($spacers, 1) !default; // 0
28
+ $spacer-1: nth($spacers, 2) !default; // 4px
29
+ $spacer-2: nth($spacers, 3) !default; // 8px
30
+ $spacer-3: nth($spacers, 4) !default; // 16px
31
+ $spacer-4: nth($spacers, 5) !default; // 24px
32
+ $spacer-5: nth($spacers, 6) !default; // 32px
33
+ $spacer-6: nth($spacers, 7) !default; // 40px
34
+ // $spacer-7: nth($spacers, 8) !default; // 40px
35
+ // $spacer-8: nth($spacers, 9) !default; // 40px
36
+
37
+ // Em spacer variables
38
+ $em-spacer-1: 0.0625em !default; // 1/16
39
+ $em-spacer-2: 0.125em !default; // 1/8
40
+ $em-spacer-3: 0.25em !default; // 1/4
41
+ $em-spacer-4: 0.375em !default; // 3/8
42
+ $em-spacer-5: 0.5em !default; // 1/2
43
+ $em-spacer-6: 0.75em !default; // 3/4
44
+ // $em-spacer-7: 1.0em !default; // 1
45
+ // $em-spacer-8: 1.25em !default; // 1.25
46
+
47
+ // Fixed-width container variables
48
+ $container-width: 980px !default;
49
+ $grid-gutter: 10px !default;
50
+
51
+ // Breakpoint widths
52
+ $width-xs: 0;
53
+ $width-sm: 544px;
54
+ $width-md: 768px;
55
+ $width-lg: 1012px;
56
+ $width-xl: 1280px;
57
+
58
+ // Responsive container widths
59
+ $container-md: $width-md !default;
60
+ $container-lg: $width-lg !default;
61
+ $container-xl: $width-xl !default;
62
+
63
+ // Breakpoints
64
+ $breakpoints: (
65
+ // Small screen / phone
66
+ sm: $width-sm,
67
+ // Medium screen / tablet
68
+ md: $width-md,
69
+ // Large screen / desktop (980 + (16 * 2)) <= container + gutters
70
+ lg: $width-lg,
71
+ // Extra large screen / wide desktop
72
+ xl: $width-xl
73
+ ) !default;
74
+
75
+ $responsive-variants: ("": "");
76
+ @each $key in map-keys($breakpoints) {
77
+ $responsive-variants: map-merge($responsive-variants, ($key: "-#{$key}"));
78
+ }
@@ -0,0 +1,40 @@
1
+ // Miscellaneous variables
2
+ // stylelint-disable declaration-bang-space-before
3
+
4
+ // Border size
5
+ $border-width: 1px !default;
6
+ $border-color: $border-gray !default;
7
+ $border-style: solid !default;
8
+ $border: $border-width $border-color $border-style !default;
9
+ $border-radius: 3px !default;
10
+
11
+ // Custom explore grid border
12
+ $exploregrid-item-border-radius: 4px;
13
+
14
+ // Box shadow
15
+ $box-shadow: 0 1px 1px rgba($black, 0.1) !default;
16
+ $box-shadow-medium: 0 1px 5px $black-fade-15 !default;
17
+ $box-shadow-large: 0 1px 15px $black-fade-15 !default;
18
+ $box-shadow-extra-large: 0 10px 50px rgba($black, 0.07) !default;
19
+
20
+ // Tooltips
21
+ $tooltip-max-width: 250px !default;
22
+ $tooltip-background-color: $black;
23
+ $tooltip-text-color: $white !default;
24
+ $tooltip-delay: 0.4s !default;
25
+ $tooltip-duration: 0.1s !default;
26
+
27
+ // Should be moved into custom github css
28
+ $stats-switcher-py: 10px;
29
+ // Future proof this `height` value by finding the computed line-height, then
30
+ // adding the total value of the vertical padding. This var is used to toggle
31
+ // between the stats bar and language breakdown.
32
+ $stats-viewport-height: ($body-font-size * $body-line-height) + ($stats-switcher-py * 2);
33
+
34
+ $min_tab_size: 1;
35
+ $max_tab_size: 12;
36
+
37
+ // Button and form variables
38
+ $form-control-shadow: inset 0 1px 2px rgba($black, 0.075);
39
+ $btn-input-focus-shadow: 0 0 0 0.2em rgba($blue, 0.3);
40
+ $btn-active-shadow: inset 0 0.15em 0.3em $black-fade-15;
@@ -0,0 +1,43 @@
1
+ // Typography variables
2
+ // stylelint-disable declaration-bang-space-before
3
+
4
+ // Heading sizes - mobile
5
+ // h4—h6 remain the same size on both mobile & desktop
6
+ $h00-size-mobile: 40px !default;
7
+ $h0-size-mobile: 32px !default;
8
+ $h1-size-mobile: 26px !default;
9
+ $h2-size-mobile: 22px !default;
10
+ $h3-size-mobile: 18px !default;
11
+
12
+ // Heading sizes - desktop
13
+ $h00-size: 48px !default;
14
+ $h0-size: 40px !default;
15
+ $h1-size: 32px !default;
16
+ $h2-size: 24px !default;
17
+ $h3-size: 20px !default;
18
+ $h4-size: 16px !default;
19
+ $h5-size: 14px !default;
20
+ $h6-size: 12px !default;
21
+
22
+ $font-size-small: 12px !default;
23
+
24
+ // Font weights
25
+ $font-weight-bold: 600 !default;
26
+ $font-weight-semibold: 500 !default;
27
+ $font-weight-normal: 400 !default;
28
+ $font-weight-light: 300 !default;
29
+
30
+ // Line heights
31
+ $lh-condensed-ultra: 1 !default;
32
+ $lh-condensed: 1.25 !default;
33
+ $lh-default: 1.5 !default;
34
+
35
+ // Font stacks
36
+ $body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
37
+
38
+ // Monospace font stack
39
+ $mono-font: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace !default;
40
+
41
+ // The base body size
42
+ $body-font-size: 14px !default;
43
+ $body-line-height: $lh-default !default;
@@ -0,0 +1,184 @@
1
+ // This file contains reusable animations for github.
2
+ // stylelint-disable primer/selector-no-utility
3
+
4
+ /* Fade in an element */
5
+ .anim-fade-in {
6
+ animation-name: fade-in;
7
+ animation-duration: 1s;
8
+ animation-timing-function: ease-in-out;
9
+
10
+ &.fast {
11
+ animation-duration: 300ms;
12
+ }
13
+ }
14
+
15
+ @keyframes fade-in {
16
+ 0% {
17
+ opacity: 0;
18
+ }
19
+
20
+ 100% {
21
+ opacity: 1;
22
+ }
23
+ }
24
+
25
+ /* Fade out an element */
26
+ .anim-fade-out {
27
+ animation-name: fade-out;
28
+ animation-duration: 1s;
29
+ animation-timing-function: ease-out;
30
+
31
+ &.fast {
32
+ animation-duration: 0.3s;
33
+ }
34
+ }
35
+
36
+ @keyframes fade-out {
37
+ 0% {
38
+ opacity: 1;
39
+ }
40
+
41
+ 100% {
42
+ opacity: 0;
43
+ }
44
+ }
45
+
46
+ /* Fade in and slide up an element */
47
+ .anim-fade-up {
48
+ opacity: 0;
49
+ animation-name: fade-up;
50
+ animation-duration: 0.3s;
51
+ animation-fill-mode: forwards;
52
+ animation-timing-function: ease-out;
53
+ animation-delay: 1s;
54
+ }
55
+
56
+ @keyframes fade-up {
57
+ 0% {
58
+ opacity: 0.8;
59
+ transform: translateY(100%);
60
+ }
61
+
62
+ 100% {
63
+ opacity: 1;
64
+ transform: translateY(0);
65
+ }
66
+ }
67
+
68
+ /* Fade an element out and slide down */
69
+ .anim-fade-down {
70
+ animation-name: fade-down;
71
+ animation-duration: 0.3s;
72
+ animation-fill-mode: forwards;
73
+ animation-timing-function: ease-in;
74
+ }
75
+
76
+ @keyframes fade-down {
77
+ 0% {
78
+ opacity: 1;
79
+ transform: translateY(0);
80
+ }
81
+
82
+ 100% {
83
+ opacity: 0.5;
84
+ transform: translateY(100%);
85
+ }
86
+ }
87
+
88
+ /* Grow an element width from 0 to 100% */
89
+ .anim-grow-x {
90
+ width: 0%;
91
+ animation-name: grow-x;
92
+ animation-duration: 0.3s;
93
+ animation-fill-mode: forwards;
94
+ animation-timing-function: ease;
95
+ animation-delay: 0.5s;
96
+ }
97
+
98
+ @keyframes grow-x {
99
+ to { width: 100%; }
100
+ }
101
+
102
+ /* Shrink an element from 100% to 0% */
103
+ .anim-shrink-x {
104
+ animation-name: shrink-x;
105
+ animation-duration: 0.3s;
106
+ animation-fill-mode: forwards;
107
+ animation-timing-function: ease-in-out;
108
+ animation-delay: 0.5s;
109
+ }
110
+
111
+ @keyframes shrink-x {
112
+ to { width: 0%; }
113
+ }
114
+
115
+ /* Fade in an element and scale it fast */
116
+ .anim-scale-in {
117
+ animation-name: scale-in;
118
+ animation-duration: 0.15s;
119
+ animation-timing-function: cubic-bezier(0.2, 0, 0.13, 1.5);
120
+ }
121
+
122
+ @keyframes scale-in {
123
+ 0% {
124
+ opacity: 0;
125
+ transform: scale(0.5);
126
+ }
127
+
128
+ 100% {
129
+ opacity: 1;
130
+ transform: scale(1);
131
+ }
132
+ }
133
+
134
+ /* Pulse an element's opacity */
135
+ .anim-pulse {
136
+ animation-name: pulse;
137
+ animation-duration: 2s;
138
+ animation-timing-function: linear;
139
+ animation-iteration-count: infinite;
140
+ }
141
+
142
+ @keyframes pulse {
143
+ 0% {
144
+ opacity: 0.3;
145
+ }
146
+
147
+ 10% {
148
+ opacity: 1;
149
+ }
150
+
151
+ 100% {
152
+ opacity: 0.3;
153
+ }
154
+ }
155
+
156
+ /* Pulse in an element */
157
+ .anim-pulse-in {
158
+ animation-name: pulse-in;
159
+ animation-duration: 0.5s;
160
+ }
161
+
162
+ @keyframes pulse-in {
163
+ 0% {
164
+ transform: scale3d(1, 1, 1);
165
+ }
166
+
167
+ 50% {
168
+ transform: scale3d(1.1, 1.1, 1.1);
169
+ }
170
+
171
+ 100% {
172
+ transform: scale3d(1, 1, 1);
173
+ }
174
+ }
175
+
176
+ /* Increase scale of an element on hover */
177
+ .hover-grow {
178
+ transition: transform 0.3s;
179
+ backface-visibility: hidden;
180
+
181
+ &:hover {
182
+ transform: scale(1.025);
183
+ }
184
+ }