coffeebrew_jekyll_docs 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5 -0
  3. data/LICENSE +21 -0
  4. data/README.md +77 -0
  5. data/_includes/navigation.html +11 -0
  6. data/_layouts/default.html +53 -0
  7. data/_layouts/version.html +4 -0
  8. data/_sass/fontawesome/scss/_animated.scss +153 -0
  9. data/_sass/fontawesome/scss/_bordered-pulled.scss +20 -0
  10. data/_sass/fontawesome/scss/_core.scss +43 -0
  11. data/_sass/fontawesome/scss/_fixed-width.scss +7 -0
  12. data/_sass/fontawesome/scss/_functions.scss +57 -0
  13. data/_sass/fontawesome/scss/_icons.scss +10 -0
  14. data/_sass/fontawesome/scss/_list.scss +18 -0
  15. data/_sass/fontawesome/scss/_mixins.scss +75 -0
  16. data/_sass/fontawesome/scss/_rotated-flipped.scss +31 -0
  17. data/_sass/fontawesome/scss/_screen-reader.scss +14 -0
  18. data/_sass/fontawesome/scss/_shims.scss +2042 -0
  19. data/_sass/fontawesome/scss/_sizing.scss +16 -0
  20. data/_sass/fontawesome/scss/_stacked.scss +32 -0
  21. data/_sass/fontawesome/scss/_variables.scss +4961 -0
  22. data/_sass/fontawesome/scss/brands.scss +30 -0
  23. data/_sass/fontawesome/scss/fontawesome.scss +21 -0
  24. data/_sass/fontawesome/scss/regular.scss +26 -0
  25. data/_sass/fontawesome/scss/solid.scss +26 -0
  26. data/_sass/fontawesome/scss/v4-shims.scss +11 -0
  27. data/_sass/fonts.scss +107 -0
  28. data/_sass/main.scss +309 -0
  29. data/assets/css/styles.scss +8 -0
  30. data/assets/js/main.js +14 -0
  31. data/assets/webfonts/Quicksand-Bold.ttf +0 -0
  32. data/assets/webfonts/Quicksand-Bold.woff2 +0 -0
  33. data/assets/webfonts/Quicksand-Medium.ttf +0 -0
  34. data/assets/webfonts/Quicksand-Medium.woff2 +0 -0
  35. data/assets/webfonts/fa-brands-400.ttf +0 -0
  36. data/assets/webfonts/fa-brands-400.woff2 +0 -0
  37. data/assets/webfonts/fa-regular-400.ttf +0 -0
  38. data/assets/webfonts/fa-regular-400.woff2 +0 -0
  39. data/assets/webfonts/fa-solid-900.ttf +0 -0
  40. data/assets/webfonts/fa-solid-900.woff2 +0 -0
  41. data/assets/webfonts/fa-v4compatibility.ttf +0 -0
  42. data/assets/webfonts/fa-v4compatibility.woff2 +0 -0
  43. metadata +151 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6e7e983495dbd2d626bffc94f713d3204ace2afcc9f56ee06d79e542c57a5d05
4
+ data.tar.gz: 7c4ab7f5270f4abb5c0c4ca6cfe2ce3057a57e47c2847dce1d781e98ffa99901
5
+ SHA512:
6
+ metadata.gz: 11f6db2a370b03f1ad90c86653b8894c4537d3f41b9b24221d57f084fb6bac352ed76ce3f53735512a56490b70e9a4bdc7bdc5fbbf1751ad9c6dea8388d2ae89
7
+ data.tar.gz: 3d83f95859aba456c993bb9c4155a4bd3e3d31e0220f7a1bcedc778698eef2165a00330444d0c4d25776d585b702f32e75241b9b7b9b308ec5cbdd314d149d0c
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ # Changelog
2
+
3
+ ## Version 0.1.0
4
+
5
+ - Initial release
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Coffee Brew Apps
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,77 @@
1
+ # Coffeebrew Jekyll Theme
2
+
3
+ A Jekyll theme for documentation.
4
+
5
+ [![Gem Version](https://badge.fury.io/rb/coffeebrew_jekyll_docs.svg)](https://badge.fury.io/rb/coffeebrew_jekyll_docs)
6
+
7
+ ## Installation
8
+
9
+ Add this line to your site's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'coffeebrew_jekyll_docs'
13
+ ```
14
+
15
+ ## Configuration
16
+
17
+ To use the theme properly, you need to configure in `_config.yml`:
18
+
19
+ ```yml
20
+ baseurl: /your_base_url
21
+ theme: coffeebrew_jekyll_docs
22
+
23
+ # The theme uses the jekyll-toc plugin to render table of contents for your content
24
+ plugins:
25
+ - jekyll-toc
26
+
27
+ # Configure the plugin, see https://github.com/toshimaru/jekyll-toc
28
+ toc:
29
+
30
+ # Here's the config for the theme used by this gem doc
31
+ coffeebrew_jekyll_docs:
32
+ copyright: "Coffee Brew Apps"
33
+ license:
34
+ name: "MIT License"
35
+ url: "/license.html"
36
+ socials:
37
+ - link: "https://github.com/coffeebrewapps/coffeebrew_jekyll_docs"
38
+ icon: "fa-brands fa-github"
39
+ - link: "https://www.linkedin.com/company/coffeebrewapps/"
40
+ icon: "fa-brands fa-linkedin"
41
+ - link: "mailto:coffeebrewapps+hi@gmail.com"
42
+ icon: "fa-solid fa-envelope"
43
+ powered_by:
44
+ host:
45
+ link: "https://github.com"
46
+ name: "Github Pages"
47
+
48
+ # This allows for your changelog to be versioned
49
+ collections:
50
+ versions:
51
+ output: true
52
+
53
+ # Add this to the defaults in addition to your other defaults
54
+ defaults:
55
+ - scope:
56
+ path: ""
57
+ type: "versions"
58
+ values:
59
+ layout: version
60
+ ```
61
+
62
+ Additionally, create the navigation data in `_data/navigation.yml` so that the theme can render the top navbar:
63
+
64
+ ```yml
65
+ - name: Home
66
+ link: /
67
+ - name: Versions
68
+ link: /versions.html
69
+ ```
70
+
71
+ You can of course add more links to the navigation.
72
+
73
+ Upon building the Jekyll site, the theme should be used to render your content.
74
+
75
+ ## License
76
+
77
+ See the [LICENSE](LICENSE) file.
@@ -0,0 +1,11 @@
1
+ <nav id="top-nav" class="top-nav">
2
+ <a>Current: {{ page.version }}</a>
3
+ {% for item in site.data.navigation %}
4
+ <a href="{{ site.baseurl }}{{ item.link }}" {% if (page.url == item.link) or (page.root == item.link) %}class="current"{% endif %}>
5
+ {{ item.name }}
6
+ </a>
7
+ {% endfor %}
8
+ <a href="javascript:void(0);" class="icon" onclick="toggleMenu()">
9
+ <i class="fa-solid fa-bars"></i>
10
+ </a>
11
+ </nav>
@@ -0,0 +1,53 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
+ <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/styles.css">
7
+ <title>{{ page.title }}</title>
8
+ </head>
9
+ <body>
10
+ <script src="{{ site.baseurl }}/assets/js/main.js"></script>
11
+ {% include navigation.html %}
12
+ <div class="container">
13
+ <div id="table-of-contents">
14
+ <div class="versions">
15
+ <div>
16
+ Versions:
17
+ <select id="select-version" onchange="selectVersion()">
18
+ {% for version in site.versions %}
19
+ <option {% if version.version == page.version %}selected="selected"{% endif %} value="{{ site.baseurl }}{{ version.url }}">{{ version.version }}</option>
20
+ {% endfor %}
21
+ </select>
22
+ </div>
23
+ </div>
24
+ {{ content | toc_only }}
25
+ </div>
26
+ <div id="content">
27
+ {{ content }}
28
+ </div>
29
+ </div>
30
+ <a class="back-to-top" href="#">
31
+ <i class="fa-solid fa-angle-up"></i>
32
+ </a>
33
+ <footer class="site-footer">
34
+ <div class="copyright">
35
+ <span>{{ site.coffeebrew_jekyll_docs.copyright }} © {{ site.time | date: "%Y" }}</span>
36
+ </div>
37
+ <div class="socials">
38
+ {% for social in site.coffeebrew_jekyll_docs.socials %}
39
+ <a href="{{ social.link }}" target="_blank"><i class="{{ social.icon }}"></i></a>
40
+ {% endfor %}
41
+ </div>
42
+ <div class="powered-by">
43
+ <div class="link">Powered by <a href="https://jekyllrb.com" target="_blank">Jekyll</a></div>
44
+ <div class="divider">|</div>
45
+ <div class="link">Theme by <a href="https://www.coffeebrewapps.com/coffeebrew_jekyll_docs/" target="_blank">Coffee Brew Apps</a></div>
46
+ <div class="divider">|</div>
47
+ <div class="link">Hosted by <a href="{{ site.coffeebrew_jekyll_docs.powered_by.host.link }}" target="_blank">{{ site.coffeebrew_jekyll_docs.powered_by.host.name }}</a></div>
48
+ <div class="divider">|</div>
49
+ <div class="link">Under <a href="{{ site.baseurl }}{{ site.coffeebrew_jekyll_docs.license.url }}" target="_blank">{{ site.coffeebrew_jekyll_docs.license.name }}</a></div>
50
+ </div>
51
+ </footer>
52
+ </body>
53
+ </html>
@@ -0,0 +1,4 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ {{ content }}
@@ -0,0 +1,153 @@
1
+ // animating icons
2
+ // --------------------------
3
+
4
+ .#{$fa-css-prefix}-beat {
5
+ animation-name: #{$fa-css-prefix}-beat;
6
+ animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
7
+ animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
8
+ animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
9
+ animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
10
+ animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, ease-in-out);
11
+ }
12
+
13
+ .#{$fa-css-prefix}-bounce {
14
+ animation-name: #{$fa-css-prefix}-bounce;
15
+ animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
16
+ animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
17
+ animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
18
+ animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
19
+ animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(0.280, 0.840, 0.420, 1));
20
+ }
21
+
22
+ .#{$fa-css-prefix}-fade {
23
+ animation-name: #{$fa-css-prefix}-fade;
24
+ animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
25
+ animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
26
+ animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
27
+ animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
28
+ animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1));
29
+ }
30
+
31
+ .#{$fa-css-prefix}-beat-fade {
32
+ animation-name: #{$fa-css-prefix}-beat-fade;
33
+ animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
34
+ animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
35
+ animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
36
+ animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
37
+ animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1));
38
+ }
39
+
40
+ .#{$fa-css-prefix}-flip {
41
+ animation-name: #{$fa-css-prefix}-flip;
42
+ animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
43
+ animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
44
+ animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
45
+ animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
46
+ animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, ease-in-out);
47
+ }
48
+
49
+ .#{$fa-css-prefix}-shake {
50
+ animation-name: #{$fa-css-prefix}-shake;
51
+ animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
52
+ animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
53
+ animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
54
+ animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
55
+ animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, linear);
56
+ }
57
+
58
+ .#{$fa-css-prefix}-spin {
59
+ animation-name: #{$fa-css-prefix}-spin;
60
+ animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
61
+ animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
62
+ animation-duration: var(--#{$fa-css-prefix}-animation-duration, 2s);
63
+ animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
64
+ animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, linear);
65
+ }
66
+
67
+ .#{$fa-css-prefix}-spin-reverse {
68
+ --#{$fa-css-prefix}-animation-direction: reverse;
69
+ }
70
+
71
+ .#{$fa-css-prefix}-pulse,
72
+ .#{$fa-css-prefix}-spin-pulse {
73
+ animation-name: #{$fa-css-prefix}-spin;
74
+ animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
75
+ animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
76
+ animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
77
+ animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, steps(8));
78
+ }
79
+
80
+ // if agent or operating system prefers reduced motion, disable animations
81
+ // see: https://www.smashingmagazine.com/2020/09/design-reduced-motion-sensitivities/
82
+ // see: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
83
+ @media (prefers-reduced-motion: reduce) {
84
+ .#{$fa-css-prefix}-beat,
85
+ .#{$fa-css-prefix}-bounce,
86
+ .#{$fa-css-prefix}-fade,
87
+ .#{$fa-css-prefix}-beat-fade,
88
+ .#{$fa-css-prefix}-flip,
89
+ .#{$fa-css-prefix}-pulse,
90
+ .#{$fa-css-prefix}-shake,
91
+ .#{$fa-css-prefix}-spin,
92
+ .#{$fa-css-prefix}-spin-pulse {
93
+ animation-delay: -1ms;
94
+ animation-duration: 1ms;
95
+ animation-iteration-count: 1;
96
+ transition-delay: 0s;
97
+ transition-duration: 0s;
98
+ }
99
+ }
100
+
101
+ @keyframes #{$fa-css-prefix}-beat {
102
+ 0%, 90% { transform: scale(1); }
103
+ 45% { transform: scale(var(--#{$fa-css-prefix}-beat-scale, 1.25)); }
104
+ }
105
+
106
+ @keyframes #{$fa-css-prefix}-bounce {
107
+ 0% { transform: scale(1,1) translateY(0); }
108
+ 10% { transform: scale(var(--#{$fa-css-prefix}-bounce-start-scale-x, 1.1),var(--#{$fa-css-prefix}-bounce-start-scale-y, 0.9)) translateY(0); }
109
+ 30% { transform: scale(var(--#{$fa-css-prefix}-bounce-jump-scale-x, 0.9),var(--#{$fa-css-prefix}-bounce-jump-scale-y, 1.1)) translateY(var(--#{$fa-css-prefix}-bounce-height, -0.5em)); }
110
+ 50% { transform: scale(var(--#{$fa-css-prefix}-bounce-land-scale-x, 1.05),var(--#{$fa-css-prefix}-bounce-land-scale-y, 0.95)) translateY(0); }
111
+ 57% { transform: scale(1,1) translateY(var(--#{$fa-css-prefix}-bounce-rebound, -0.125em)); }
112
+ 64% { transform: scale(1,1) translateY(0); }
113
+ 100% { transform: scale(1,1) translateY(0); }
114
+ }
115
+
116
+ @keyframes #{$fa-css-prefix}-fade {
117
+ 50% { opacity: var(--#{$fa-css-prefix}-fade-opacity, 0.4); }
118
+ }
119
+
120
+ @keyframes #{$fa-css-prefix}-beat-fade {
121
+ 0%, 100% {
122
+ opacity: var(--#{$fa-css-prefix}-beat-fade-opacity, 0.4);
123
+ transform: scale(1);
124
+ }
125
+ 50% {
126
+ opacity: 1;
127
+ transform: scale(var(--#{$fa-css-prefix}-beat-fade-scale, 1.125));
128
+ }
129
+ }
130
+
131
+ @keyframes #{$fa-css-prefix}-flip {
132
+ 50% {
133
+ transform: rotate3d(var(--#{$fa-css-prefix}-flip-x, 0), var(--#{$fa-css-prefix}-flip-y, 1), var(--#{$fa-css-prefix}-flip-z, 0), var(--#{$fa-css-prefix}-flip-angle, -180deg));
134
+ }
135
+ }
136
+
137
+ @keyframes #{$fa-css-prefix}-shake {
138
+ 0% { transform: rotate(-15deg); }
139
+ 4% { transform: rotate(15deg); }
140
+ 8%, 24% { transform: rotate(-18deg); }
141
+ 12%, 28% { transform: rotate(18deg); }
142
+ 16% { transform: rotate(-22deg); }
143
+ 20% { transform: rotate(22deg); }
144
+ 32% { transform: rotate(-12deg); }
145
+ 36% { transform: rotate(12deg); }
146
+ 40%, 100% { transform: rotate(0deg); }
147
+ }
148
+
149
+ @keyframes #{$fa-css-prefix}-spin {
150
+ 0% { transform: rotate(0deg); }
151
+ 100% { transform: rotate(360deg); }
152
+ }
153
+
@@ -0,0 +1,20 @@
1
+ // bordered + pulled icons
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-border {
5
+ border-color: var(--#{$fa-css-prefix}-border-color, #{$fa-border-color});
6
+ border-radius: var(--#{$fa-css-prefix}-border-radius, #{$fa-border-radius});
7
+ border-style: var(--#{$fa-css-prefix}-border-style, #{$fa-border-style});
8
+ border-width: var(--#{$fa-css-prefix}-border-width, #{$fa-border-width});
9
+ padding: var(--#{$fa-css-prefix}-border-padding, #{$fa-border-padding});
10
+ }
11
+
12
+ .#{$fa-css-prefix}-pull-left {
13
+ float: left;
14
+ margin-right: var(--#{$fa-css-prefix}-pull-margin, #{$fa-pull-margin});
15
+ }
16
+
17
+ .#{$fa-css-prefix}-pull-right {
18
+ float: right;
19
+ margin-left: var(--#{$fa-css-prefix}-pull-margin, #{$fa-pull-margin});
20
+ }
@@ -0,0 +1,43 @@
1
+ // base icon class definition
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix} {
5
+ font-family: var(--#{$fa-css-prefix}-style-family, '#{$fa-style-family}');
6
+ font-weight: var(--#{$fa-css-prefix}-style, #{$fa-style});
7
+ }
8
+
9
+ .#{$fa-css-prefix},
10
+ .#{$fa-css-prefix}-classic,
11
+ .#{$fa-css-prefix}-sharp,
12
+ .fas,
13
+ .#{$fa-css-prefix}-solid,
14
+ .far,
15
+ .#{$fa-css-prefix}-regular,
16
+ .fab,
17
+ .#{$fa-css-prefix}-brands {
18
+ -moz-osx-font-smoothing: grayscale;
19
+ -webkit-font-smoothing: antialiased;
20
+ display: var(--#{$fa-css-prefix}-display, #{$fa-display});
21
+ font-style: normal;
22
+ font-variant: normal;
23
+ line-height: 1;
24
+ text-rendering: auto;
25
+ }
26
+
27
+ .fas,
28
+ .#{$fa-css-prefix}-classic,
29
+ .#{$fa-css-prefix}-solid,
30
+ .far,
31
+ .#{$fa-css-prefix}-regular {
32
+ font-family: 'Font Awesome 6 Free';
33
+ }
34
+
35
+ .fab,
36
+ .#{$fa-css-prefix}-brands {
37
+ font-family: 'Font Awesome 6 Brands';
38
+ }
39
+
40
+
41
+ %fa-icon {
42
+ @include fa-icon;
43
+ }
@@ -0,0 +1,7 @@
1
+ // fixed-width icons
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-fw {
5
+ text-align: center;
6
+ width: $fa-fw-width;
7
+ }
@@ -0,0 +1,57 @@
1
+ // functions
2
+ // --------------------------
3
+
4
+ // fa-content: convenience function used to set content property
5
+ @function fa-content($fa-var) {
6
+ @return unquote("\"#{ $fa-var }\"");
7
+ }
8
+
9
+ // fa-divide: Originally obtained from the Bootstrap https://github.com/twbs/bootstrap
10
+ //
11
+ // Licensed under: The MIT License (MIT)
12
+ //
13
+ // Copyright (c) 2011-2021 Twitter, Inc.
14
+ // Copyright (c) 2011-2021 The Bootstrap Authors
15
+ //
16
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
17
+ // of this software and associated documentation files (the "Software"), to deal
18
+ // in the Software without restriction, including without limitation the rights
19
+ // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
20
+ // copies of the Software, and to permit persons to whom the Software is
21
+ // furnished to do so, subject to the following conditions:
22
+ //
23
+ // The above copyright notice and this permission notice shall be included in
24
+ // all copies or substantial portions of the Software.
25
+ //
26
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
27
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
28
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
29
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
30
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
31
+ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
32
+ // THE SOFTWARE.
33
+
34
+ @function fa-divide($dividend, $divisor, $precision: 10) {
35
+ $sign: if($dividend > 0 and $divisor > 0, 1, -1);
36
+ $dividend: abs($dividend);
37
+ $divisor: abs($divisor);
38
+ $quotient: 0;
39
+ $remainder: $dividend;
40
+ @if $dividend == 0 {
41
+ @return 0;
42
+ }
43
+ @if $divisor == 0 {
44
+ @error "Cannot divide by 0";
45
+ }
46
+ @if $divisor == 1 {
47
+ @return $dividend;
48
+ }
49
+ @while $remainder >= $divisor {
50
+ $quotient: $quotient + 1;
51
+ $remainder: $remainder - $divisor;
52
+ }
53
+ @if $remainder > 0 and $precision > 0 {
54
+ $remainder: fa-divide($remainder * 10, $divisor, $precision - 1) * .1;
55
+ }
56
+ @return ($quotient + $remainder) * $sign;
57
+ }
@@ -0,0 +1,10 @@
1
+ // specific icon class definition
2
+ // -------------------------
3
+
4
+ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
5
+ readers do not read off random characters that represent icons */
6
+
7
+ @each $name, $icon in $fa-icons {
8
+ .#{$fa-css-prefix}-#{$name}::before { content: unquote("\"#{ $icon }\""); }
9
+ }
10
+
@@ -0,0 +1,18 @@
1
+ // icons in a list
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-ul {
5
+ list-style-type: none;
6
+ margin-left: var(--#{$fa-css-prefix}-li-margin, #{$fa-li-margin});
7
+ padding-left: 0;
8
+
9
+ > li { position: relative; }
10
+ }
11
+
12
+ .#{$fa-css-prefix}-li {
13
+ left: calc(var(--#{$fa-css-prefix}-li-width, #{$fa-li-width}) * -1);
14
+ position: absolute;
15
+ text-align: center;
16
+ width: var(--#{$fa-css-prefix}-li-width, #{$fa-li-width});
17
+ line-height: inherit;
18
+ }
@@ -0,0 +1,75 @@
1
+ // mixins
2
+ // --------------------------
3
+
4
+ // base rendering for an icon
5
+ @mixin fa-icon {
6
+ -webkit-font-smoothing: antialiased;
7
+ -moz-osx-font-smoothing: grayscale;
8
+ display: inline-block;
9
+ font-style: normal;
10
+ font-variant: normal;
11
+ font-weight: normal;
12
+ line-height: 1;
13
+ }
14
+
15
+ // sets relative font-sizing and alignment (in _sizing)
16
+ @mixin fa-size ($font-size) {
17
+ font-size: fa-divide($font-size, $fa-size-scale-base) * 1em; // converts step in sizing scale into an em-based value that's relative to the scale's base
18
+ line-height: fa-divide(1, $font-size) * 1em; // sets the line-height of the icon back to that of it's parent
19
+ vertical-align: (fa-divide(6, $font-size) - fa-divide(3, 8)) * 1em; // vertically centers the icon taking into account the surrounding text's descender
20
+ }
21
+
22
+ // only display content to screen readers
23
+ // see: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
24
+ // see: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
25
+ @mixin fa-sr-only() {
26
+ position: absolute;
27
+ width: 1px;
28
+ height: 1px;
29
+ padding: 0;
30
+ margin: -1px;
31
+ overflow: hidden;
32
+ clip: rect(0, 0, 0, 0);
33
+ white-space: nowrap;
34
+ border-width: 0;
35
+ }
36
+
37
+ // use in conjunction with .sr-only to only display content when it's focused
38
+ @mixin fa-sr-only-focusable() {
39
+ &:not(:focus) {
40
+ @include fa-sr-only();
41
+ }
42
+ }
43
+
44
+ // sets a specific icon family to use alongside style + icon mixins
45
+
46
+ // convenience mixins for declaring pseudo-elements by CSS variable,
47
+ // including all style-specific font properties, and both the ::before
48
+ // and ::after elements in the duotone case.
49
+ @mixin fa-icon-solid($fa-var) {
50
+ @extend %fa-icon;
51
+ @extend .fa-solid;
52
+
53
+ &::before {
54
+ content: unquote("\"#{ $fa-var }\"");
55
+ }
56
+ }
57
+
58
+ @mixin fa-icon-regular($fa-var) {
59
+ @extend %fa-icon;
60
+ @extend .fa-regular;
61
+
62
+ &::before {
63
+ content: unquote("\"#{ $fa-var }\"");
64
+ }
65
+ }
66
+
67
+ @mixin fa-icon-brands($fa-var) {
68
+ @extend %fa-icon;
69
+ @extend .fa-brands;
70
+
71
+ &::before {
72
+ content: unquote("\"#{ $fa-var }\"");
73
+ }
74
+ }
75
+
@@ -0,0 +1,31 @@
1
+ // rotating + flipping icons
2
+ // -------------------------
3
+
4
+ .#{$fa-css-prefix}-rotate-90 {
5
+ transform: rotate(90deg);
6
+ }
7
+
8
+ .#{$fa-css-prefix}-rotate-180 {
9
+ transform: rotate(180deg);
10
+ }
11
+
12
+ .#{$fa-css-prefix}-rotate-270 {
13
+ transform: rotate(270deg);
14
+ }
15
+
16
+ .#{$fa-css-prefix}-flip-horizontal {
17
+ transform: scale(-1, 1);
18
+ }
19
+
20
+ .#{$fa-css-prefix}-flip-vertical {
21
+ transform: scale(1, -1);
22
+ }
23
+
24
+ .#{$fa-css-prefix}-flip-both,
25
+ .#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical {
26
+ transform: scale(-1, -1);
27
+ }
28
+
29
+ .#{$fa-css-prefix}-rotate-by {
30
+ transform: rotate(var(--#{$fa-css-prefix}-rotate-angle, none));
31
+ }
@@ -0,0 +1,14 @@
1
+ // screen-reader utilities
2
+ // -------------------------
3
+
4
+ // only display content to screen readers
5
+ .sr-only,
6
+ .#{$fa-css-prefix}-sr-only {
7
+ @include fa-sr-only;
8
+ }
9
+
10
+ // use in conjunction with .sr-only to only display content when it's focused
11
+ .sr-only-focusable,
12
+ .#{$fa-css-prefix}-sr-only-focusable {
13
+ @include fa-sr-only-focusable;
14
+ }