jekyll-theme-so-simple-libre 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +329 -0
  3. data/LICENSE +21 -0
  4. data/README.md +1148 -0
  5. data/_data/authors.yml +16 -0
  6. data/_data/navigation.yml +14 -0
  7. data/_data/text.yml +193 -0
  8. data/_includes/documents-collection.html +19 -0
  9. data/_includes/entry-date.html +6 -0
  10. data/_includes/entry.html +38 -0
  11. data/_includes/footer-custom.html +3 -0
  12. data/_includes/footer.html +24 -0
  13. data/_includes/head-custom.html +5 -0
  14. data/_includes/head-feed.html +1 -0
  15. data/_includes/head-seo.html +1 -0
  16. data/_includes/head.html +47 -0
  17. data/_includes/masthead.html +18 -0
  18. data/_includes/navigation.html +17 -0
  19. data/_includes/page-author.html +37 -0
  20. data/_includes/page-categories.html +15 -0
  21. data/_includes/page-date.html +4 -0
  22. data/_includes/page-image.html +14 -0
  23. data/_includes/page-pagination.html +19 -0
  24. data/_includes/page-tags.html +15 -0
  25. data/_includes/posts-all.html +3 -0
  26. data/_includes/posts-category.html +3 -0
  27. data/_includes/posts-limit.html +5 -0
  28. data/_includes/posts-paginated.html +74 -0
  29. data/_includes/posts-tag.html +3 -0
  30. data/_includes/read-time.html +16 -0
  31. data/_includes/responsive-embed +16 -0
  32. data/_includes/skip-links.html +8 -0
  33. data/_includes/social-share.html +6 -0
  34. data/_includes/talkyard-comments-provider.html +10 -0
  35. data/_includes/toc +9 -0
  36. data/_layouts/categories.html +81 -0
  37. data/_layouts/category.html +9 -0
  38. data/_layouts/collection.html +9 -0
  39. data/_layouts/default.html +21 -0
  40. data/_layouts/home.html +17 -0
  41. data/_layouts/page.html +30 -0
  42. data/_layouts/post.html +41 -0
  43. data/_layouts/posts.html +29 -0
  44. data/_layouts/tag.html +9 -0
  45. data/_layouts/tags.html +81 -0
  46. data/_sass/so-simple.scss +31 -0
  47. data/_sass/so-simple/_author.scss +47 -0
  48. data/_sass/so-simple/_base.scss +106 -0
  49. data/_sass/so-simple/_buttons.scss +64 -0
  50. data/_sass/so-simple/_entries.scss +194 -0
  51. data/_sass/so-simple/_functions.scss +4 -0
  52. data/_sass/so-simple/_global.scss +353 -0
  53. data/_sass/so-simple/_icons.scss +43 -0
  54. data/_sass/so-simple/_mixins.scss +5 -0
  55. data/_sass/so-simple/_notices.scss +57 -0
  56. data/_sass/so-simple/_page.scss +286 -0
  57. data/_sass/so-simple/_reset.scss +522 -0
  58. data/_sass/so-simple/_skin.scss +552 -0
  59. data/_sass/so-simple/_syntax-highlighting.scss +68 -0
  60. data/_sass/so-simple/_tables.scss +34 -0
  61. data/_sass/so-simple/_utilities.scss +7 -0
  62. data/_sass/so-simple/_variables.scss +98 -0
  63. data/_sass/so-simple/functions/_color.scss +21 -0
  64. data/_sass/so-simple/functions/_em.scss +7 -0
  65. data/_sass/so-simple/functions/_fluid-type.scss +33 -0
  66. data/_sass/so-simple/functions/_yiq.scss +38 -0
  67. data/_sass/so-simple/mixins/_clearfix.scss +32 -0
  68. data/_sass/so-simple/mixins/_float.scss +15 -0
  69. data/_sass/so-simple/mixins/_image.scss +38 -0
  70. data/_sass/so-simple/mixins/_lists.scss +9 -0
  71. data/_sass/so-simple/mixins/_text-truncate.scss +10 -0
  72. data/_sass/so-simple/utilities/_accessibility.scss +42 -0
  73. data/_sass/so-simple/utilities/_align.scss +60 -0
  74. data/_sass/so-simple/utilities/_animations.scss +99 -0
  75. data/_sass/so-simple/utilities/_clearfix.scss +7 -0
  76. data/_sass/so-simple/utilities/_float.scss +7 -0
  77. data/_sass/so-simple/utilities/_responsive-embed.scss +66 -0
  78. data/_sass/so-simple/utilities/_text.scss +48 -0
  79. data/_sass/so-simple/vendor/breakpoint/_breakpoint.scss +114 -0
  80. data/_sass/so-simple/vendor/breakpoint/_context.scss +95 -0
  81. data/_sass/so-simple/vendor/breakpoint/_helpers.scss +151 -0
  82. data/_sass/so-simple/vendor/breakpoint/_legacy-settings.scss +50 -0
  83. data/_sass/so-simple/vendor/breakpoint/_no-query.scss +15 -0
  84. data/_sass/so-simple/vendor/breakpoint/_parsers.scss +215 -0
  85. data/_sass/so-simple/vendor/breakpoint/_respond-to.scss +82 -0
  86. data/_sass/so-simple/vendor/breakpoint/_settings.scss +71 -0
  87. data/_sass/so-simple/vendor/breakpoint/parsers/_double.scss +33 -0
  88. data/_sass/so-simple/vendor/breakpoint/parsers/_query.scss +82 -0
  89. data/_sass/so-simple/vendor/breakpoint/parsers/_resolution.scss +31 -0
  90. data/_sass/so-simple/vendor/breakpoint/parsers/_single.scss +26 -0
  91. data/_sass/so-simple/vendor/breakpoint/parsers/_triple.scss +36 -0
  92. data/_sass/so-simple/vendor/breakpoint/parsers/double/_default-pair.scss +21 -0
  93. data/_sass/so-simple/vendor/breakpoint/parsers/double/_default.scss +22 -0
  94. data/_sass/so-simple/vendor/breakpoint/parsers/double/_double-string.scss +22 -0
  95. data/_sass/so-simple/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -0
  96. data/_sass/so-simple/vendor/breakpoint/parsers/single/_default.scss +13 -0
  97. data/_sass/so-simple/vendor/breakpoint/parsers/triple/_default.scss +18 -0
  98. data/_sass/so-simple/vendor/lity/_lity.scss +221 -0
  99. data/assets/css/main.scss +8 -0
  100. data/assets/css/skins/dark.scss +43 -0
  101. data/assets/css/skins/default.scss +44 -0
  102. data/assets/css/skins/light.scss +44 -0
  103. metadata +262 -0
@@ -0,0 +1,60 @@
1
+ /* ==========================================================================
2
+ Alignment
3
+ ========================================================================== */
4
+
5
+ .align-baseline {
6
+ vertical-align: baseline !important;
7
+ } /* Browser default */
8
+ .align-top {
9
+ vertical-align: top !important;
10
+ }
11
+ .align-middle {
12
+ vertical-align: middle !important;
13
+ }
14
+ .align-bottom {
15
+ vertical-align: bottom !important;
16
+ }
17
+ .align-text-bottom {
18
+ vertical-align: text-bottom !important;
19
+ }
20
+ .align-text-top {
21
+ vertical-align: text-top !important;
22
+ }
23
+
24
+ /*
25
+ Image Alignment
26
+ ========================================================================== */
27
+
28
+ .align-center,
29
+ div.align-center,
30
+ a img.align-center {
31
+ display: block;
32
+ margin-right: auto;
33
+ margin-left: auto;
34
+ }
35
+
36
+ figure.align-center {
37
+ img {
38
+ display: block;
39
+ margin-right: auto;
40
+ margin-left: auto;
41
+ }
42
+
43
+ figcaption {
44
+ text-align: center;
45
+ }
46
+ }
47
+
48
+ .align-right,
49
+ a img.align-right {
50
+ margin-bottom: 1rem;
51
+ margin-left: 1rem;
52
+ float: right;
53
+ }
54
+
55
+ .align-left,
56
+ a img.align-left {
57
+ margin-right: 1rem;
58
+ margin-bottom: 1rem;
59
+ float: left;
60
+ }
@@ -0,0 +1,99 @@
1
+ /* ==========================================================================
2
+ Animations
3
+ ========================================================================== */
4
+
5
+ /* add .animated class to elements you wish to animate
6
+ * along with the type of animation (eg: <div class="animated fadeIn"></div>)
7
+ */
8
+
9
+ .animated {
10
+ -webkit-animation-fill-mode: both;
11
+ animation-fill-mode: both;
12
+ -webkit-animation-duration: 1s;
13
+ animation-duration: 1s;
14
+ }
15
+
16
+ /*
17
+ Fade-in animation .fadeIn
18
+ ========================================================================== */
19
+
20
+ @-webkit-keyframes fadeIn {
21
+ 0% {
22
+ opacity: 0;
23
+ }
24
+ 100% {
25
+ opacity: 1;
26
+ }
27
+ }
28
+ @keyframes fadeIn {
29
+ 0% {
30
+ opacity: 0;
31
+ }
32
+ 100% {
33
+ opacity: 1;
34
+ }
35
+ }
36
+
37
+ .fadeIn {
38
+ -webkit-animation-name: fadeIn;
39
+ animation-name: fadeIn;
40
+ }
41
+
42
+ /*
43
+ Fade-in down animation .fadeInDown
44
+ ========================================================================== */
45
+
46
+ @-webkit-keyframes fadeInDown {
47
+ 0% {
48
+ opacity: 0;
49
+ -webkit-transform: translateY(-20px);
50
+ }
51
+ 100% {
52
+ opacity: 1;
53
+ -webkit-transform: translateY(0);
54
+ }
55
+ }
56
+ @keyframes fadeInDown {
57
+ 0% {
58
+ opacity: 0;
59
+ -webkit-transform: translateY(-20px);
60
+ transform: translateY(-20px);
61
+ }
62
+ 100% {
63
+ opacity: 1;
64
+ -webkit-transform: translateY(0);
65
+ transform: translateY(0);
66
+ }
67
+ }
68
+
69
+ .fadeInDown {
70
+ -webkit-animation-name: fadeInDown;
71
+ animation-name: fadeInDown;
72
+ }
73
+
74
+ /*
75
+ Drop animation .drop
76
+ ========================================================================== */
77
+
78
+ @-webkit-keyframes drop {
79
+ 0% {
80
+ -webkit-transform: translateY(-500px);
81
+ }
82
+ 100% {
83
+ -webkit-transform: translateY(0);
84
+ }
85
+ }
86
+ @keyframes drop {
87
+ 0% {
88
+ -webkit-transform: translateY(-500px);
89
+ transform: translateY(-500px);
90
+ }
91
+ 100% {
92
+ -webkit-transform: translateY(0);
93
+ transform: translateY(0);
94
+ }
95
+ }
96
+ .drop {
97
+ -webkit-animation-name: drop;
98
+ animation-name: drop;
99
+ }
@@ -0,0 +1,7 @@
1
+ /* ==========================================================================
2
+ Clearfix
3
+ ========================================================================== */
4
+
5
+ .clearfix {
6
+ @include clearfix();
7
+ }
@@ -0,0 +1,7 @@
1
+ /* ==========================================================================
2
+ Floats
3
+ ========================================================================== */
4
+
5
+ .float-left { @include float-left; }
6
+ .float-right { @include float-right; }
7
+ .float-none { @include float-none; }
@@ -0,0 +1,66 @@
1
+ /* ==========================================================================
2
+ Responsive Embed
3
+ Credit: Nicolas Gallagher and SUIT CSS.
4
+
5
+ <!-- 16:9 aspect ratio -->
6
+ <div class="responsive-embed responsive-embed-16by9">
7
+ <iframe class="responsive-embed-item" src="..."></iframe>
8
+ </div>
9
+
10
+ <!-- 4:3 aspect ratio -->
11
+ <div class="responsive-embed responsive-embed-4by3">
12
+ <iframe class="responsive-embed-item" src="..."></iframe>
13
+ </div>
14
+ ========================================================================== */
15
+
16
+ .responsive-embed {
17
+ display: block;
18
+ position: relative;
19
+ width: 100%;
20
+ margin-bottom: 1.5rem;
21
+ padding: 0;
22
+ overflow: hidden;
23
+
24
+ &::before {
25
+ display: block;
26
+ content: "";
27
+ }
28
+
29
+ .responsive-embed-item,
30
+ iframe,
31
+ embed,
32
+ object,
33
+ video {
34
+ position: absolute;
35
+ top: 0;
36
+ bottom: 0;
37
+ left: 0;
38
+ width: 100%;
39
+ height: 100%;
40
+ border: 0;
41
+ }
42
+ }
43
+
44
+ .responsive-embed-21by9 {
45
+ &::before {
46
+ padding-top: percentage(9 / 21);
47
+ }
48
+ }
49
+
50
+ .responsive-embed-16by9 {
51
+ &::before {
52
+ padding-top: percentage(9 / 16);
53
+ }
54
+ }
55
+
56
+ .responsive-embed-4by3 {
57
+ &::before {
58
+ padding-top: percentage(3 / 4);
59
+ }
60
+ }
61
+
62
+ .responsive-embed-1by1 {
63
+ &::before {
64
+ padding-top: percentage(1 / 1);
65
+ }
66
+ }
@@ -0,0 +1,48 @@
1
+ /* ==========================================================================
2
+ Text
3
+ ========================================================================== */
4
+
5
+ /*
6
+ Alignment
7
+ ========================================================================== */
8
+
9
+ .text-justify {
10
+ text-align: justify !important;
11
+ }
12
+ .text-nowrap {
13
+ white-space: nowrap !important;
14
+ }
15
+ .text-left {
16
+ text-align: left !important;
17
+ }
18
+ .text-right {
19
+ text-align: right !important;
20
+ }
21
+ .text-center {
22
+ text-align: center !important;
23
+ }
24
+
25
+ /*
26
+ Transformation
27
+ ========================================================================== */
28
+
29
+ .text-lowercase {
30
+ text-transform: lowercase !important;
31
+ }
32
+ .text-uppercase {
33
+ text-transform: uppercase !important;
34
+ }
35
+ .text-capitalize {
36
+ text-transform: capitalize !important;
37
+ }
38
+ .text-truncate {
39
+ @include text-truncate;
40
+ }
41
+
42
+ /*
43
+ Sizing
44
+ ========================================================================== */
45
+
46
+ .small {
47
+ font-size: 80%;
48
+ }
@@ -0,0 +1,114 @@
1
+ //////////////////////////////
2
+ // Default Variables
3
+ //////////////////////////////
4
+ $Breakpoint-Settings: (
5
+ 'default media': all,
6
+ 'default feature': min-width,
7
+ 'default pair': width,
8
+
9
+ 'force all media type': false,
10
+ 'to ems': false,
11
+ 'transform resolutions': true,
12
+
13
+ 'no queries': false,
14
+ 'no query fallbacks': false,
15
+
16
+ 'base font size': 16px,
17
+
18
+ 'legacy syntax': false
19
+ );
20
+
21
+ $breakpoint: () !default;
22
+
23
+ //////////////////////////////
24
+ // Imports
25
+ //////////////////////////////
26
+ @import "settings";
27
+ @import "context";
28
+ @import "helpers";
29
+ @import "parsers";
30
+ @import "no-query";
31
+
32
+ @import "respond-to";
33
+
34
+ @import "legacy-settings";
35
+
36
+ //////////////////////////////
37
+ // Breakpoint Mixin
38
+ //////////////////////////////
39
+
40
+ @mixin breakpoint($query, $no-query: false) {
41
+ @include legacy-settings-warning;
42
+
43
+ // Reset contexts
44
+ @include private-breakpoint-reset-contexts();
45
+
46
+ $breakpoint: breakpoint($query, false);
47
+
48
+ $query-string: map-get($breakpoint, 'query');
49
+ $query-fallback: map-get($breakpoint, 'fallback');
50
+
51
+ $private-breakpoint-context-holder: map-get($breakpoint, 'context holder') !global;
52
+ $private-breakpoint-query-count: map-get($breakpoint, 'query count') !global;
53
+
54
+ // Allow for an as-needed override or usage of no query fallback.
55
+ @if $no-query != false {
56
+ $query-fallback: $no-query;
57
+ }
58
+
59
+ @if $query-fallback != false {
60
+ $context-setter: private-breakpoint-set-context('no-query', $query-fallback);
61
+ }
62
+
63
+ // Print Out Query String
64
+ @if not breakpoint-get('no queries') {
65
+ @media #{$query-string} {
66
+ @content;
67
+ }
68
+ }
69
+
70
+ @if breakpoint-get('no query fallbacks') != false or breakpoint-get('no queries') == true {
71
+
72
+ $type: type-of(breakpoint-get('no query fallbacks'));
73
+ $print: false;
74
+
75
+ @if ($type == 'bool') {
76
+ $print: true;
77
+ }
78
+ @else if ($type == 'string') {
79
+ @if $query-fallback == breakpoint-get('no query fallbacks') {
80
+ $print: true;
81
+ }
82
+ }
83
+ @else if ($type == 'list') {
84
+ @each $wrapper in breakpoint-get('no query fallbacks') {
85
+ @if $query-fallback == $wrapper {
86
+ $print: true;
87
+ }
88
+ }
89
+ }
90
+
91
+ // Write Fallback
92
+ @if ($query-fallback != false) and ($print == true) {
93
+ $type-fallback: type-of($query-fallback);
94
+
95
+ @if ($type-fallback != 'bool') {
96
+ #{$query-fallback} & {
97
+ @content;
98
+ }
99
+ }
100
+ @else {
101
+ @content;
102
+ }
103
+ }
104
+ }
105
+
106
+ @include private-breakpoint-reset-contexts();
107
+ }
108
+
109
+
110
+ @mixin mq($query, $no-query: false) {
111
+ @include breakpoint($query, $no-query) {
112
+ @content;
113
+ }
114
+ }
@@ -0,0 +1,95 @@
1
+ //////////////////////////////
2
+ // Private Breakpoint Variables
3
+ //////////////////////////////
4
+ $private-breakpoint-context-holder: ();
5
+ $private-breakpoint-query-count: 0 !default;
6
+
7
+ //////////////////////////////
8
+ // Breakpoint Has Context
9
+ // Returns whether or not you are inside a Breakpoint query
10
+ //////////////////////////////
11
+ @function breakpoint-has-context() {
12
+ @if length($private-breakpoint-query-count) {
13
+ @return true;
14
+ }
15
+ @else {
16
+ @return false;
17
+ }
18
+ }
19
+
20
+ //////////////////////////////
21
+ // Breakpoint Get Context
22
+ // $feature: Input feature to get it's current MQ context. Returns false if no context
23
+ //////////////////////////////
24
+ @function breakpoint-get-context($feature) {
25
+ @if map-has-key($private-breakpoint-context-holder, $feature) {
26
+ $get: map-get($private-breakpoint-context-holder, $feature);
27
+ // Special handling of no-query from get side so /false/ prepends aren't returned
28
+ @if $feature == 'no-query' {
29
+ @if type-of($get) == 'list' and length($get) > 1 and nth($get, 1) == false {
30
+ $get: nth($get, length($get));
31
+ }
32
+ }
33
+ @return $get;
34
+ }
35
+ @else {
36
+ @if breakpoint-has-context() and $feature == 'media' {
37
+ @return breakpoint-get('default media');
38
+ }
39
+ @else {
40
+ @return false;
41
+ }
42
+ }
43
+ }
44
+
45
+ //////////////////////////////
46
+ // Private function to set context
47
+ //////////////////////////////
48
+ @function private-breakpoint-set-context($feature, $value) {
49
+ @if $value == 'monochrome' {
50
+ $feature: 'monochrome';
51
+ }
52
+
53
+ $current: map-get($private-breakpoint-context-holder, $feature);
54
+ @if $current and length($current) == $private-breakpoint-query-count {
55
+ @warn "You have already queried against `#{$feature}`. Unexpected things may happen if you query against the same feature more than once in the same `and` query. Breakpoint is overwriting the current context with `#{$value}`";
56
+ }
57
+
58
+ @if not map-has-key($private-breakpoint-context-holder, $feature) {
59
+ $v-holder: ();
60
+ @for $i from 1 to $private-breakpoint-query-count {
61
+ @if $feature == 'media' {
62
+ $v-holder: append($v-holder, breakpoint-get('default media'));
63
+ }
64
+ @else {
65
+ $v-holder: append($v-holder, false);
66
+ }
67
+ }
68
+ $v-holder: append($v-holder, $value);
69
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
70
+ }
71
+ @else {
72
+ $v-holder: map-get($private-breakpoint-context-holder, $feature);
73
+ $length: length($v-holder);
74
+ @for $i from $length to $private-breakpoint-query-count - 1 {
75
+ @if $feature == 'media' {
76
+ $v-holder: append($v-holder, breakpoint-get('default media'));
77
+ }
78
+ @else {
79
+ $v-holder: append($v-holder, false);
80
+ }
81
+ }
82
+ $v-holder: append($v-holder, $value);
83
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
84
+ }
85
+
86
+ @return true;
87
+ }
88
+
89
+ //////////////////////////////
90
+ // Private function to reset context
91
+ //////////////////////////////
92
+ @mixin private-breakpoint-reset-contexts {
93
+ $private-breakpoint-context-holder: () !global;
94
+ $private-breakpoint-query-count: 0 !global;
95
+ }