jekyll-theme-schatten 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 14865e03608825e8d372d90d9a383d62920e171d9ce4162e81e625264edcb4e7
4
+ data.tar.gz: 102dd085eb21c52ecef5cc26acae074da5b50d59f21951867caa8a93a210fa24
5
+ SHA512:
6
+ metadata.gz: 9e40ce99c00771a9c8d78eabe0d901dfe05c2a9cd5c4f30016d2b6c203a92c74932cf0ac6fd7dda474149dbdd3e2f615ea240fe463476fef5ea2f5292d7ca0af
7
+ data.tar.gz: 55e53951ffbe4f8092d8b9018eec4180de439aa04689a2ebe56e0f6b9c734c7f798f906fd28a44fc911ff1bce586fba9d7179c06a7b30676102646dd7f1e38f1
data/LICENSE.md ADDED
@@ -0,0 +1,22 @@
1
+ # The MIT License (MIT)
2
+
3
+ Copyright (c) 2021 Paul Le
4
+ Copyright (c) 2023 Fabian Stadler
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,109 @@
1
+ # Schatten
2
+
3
+ Schatten is a modern Jekyll theme for blogs or personal websites. See the [demo](https://schatten-ioch6.ondigitalocean.app/) for a live example.
4
+
5
+ ![A screenshot of the Shadow theme](/assets/img/preview.png)
6
+
7
+ ## Attribution
8
+
9
+ This theme is based on [Len Paul's theme Lagrange](https://github.com/LeNPaul/Lagrange) published under the MIT License. In order to implement more features and add my own style, I developed this theme.
10
+
11
+ ## Intention
12
+
13
+ Schatten's original goal is to offer the following features:
14
+
15
+ * SEO features
16
+ * SASS/SCSS support
17
+ * Responsive design
18
+ * Modern UI with e.g. dark mode
19
+ * Configurable code themes
20
+
21
+ ## Requirements
22
+
23
+ * Jekyll 3.9.3 or higher
24
+
25
+ ## Supported Platforms
26
+
27
+ * GitHub Pages (only partially, some plugins are not supported)
28
+ * DigitalOcean App Platform
29
+ * Netlify
30
+ * GitLab Pages
31
+ * Any static site hoster when building locally
32
+
33
+ ## Installation
34
+
35
+ In order to run this theme, you need an environment with Ruby and Bundler installed. If you don't have Ruby installed, you can follow the instructions [here](https://www.ruby-lang.org/en/documentation/installation/). After you have Ruby installed, you can install Bundler with `gem install bundler`.
36
+
37
+ ### Local Installation
38
+
39
+ To install and run this theme locally, clone this repository to your machine, `cd` into the directory, and run `bundle install` to install the necessary dependencies. Then, run `bundle exec jekyll serve` to start the Jekyll server. You should see the site locally at [http://localhost:4000](http://localhost:4000).
40
+
41
+ In order to server this page incrementally, you can run `bundle exec jekyll serve --incremental`. This will rebuild the site when a file is changed.
42
+
43
+ ### Docker
44
+
45
+ You can also run this theme in a Docker container. Clone the repo a machine with Docker installed, `cd` into the docker directory, and run `docker compose up`. You should see the site locally at [http://localhost:4000](http://localhost:4000).
46
+
47
+ ### Cloud Deployment
48
+
49
+ Note that this theme is not compatible with GitHub Pages as they have a very strict plugin policy. If you want to use this theme on GitHub Pages, you must not use the toc plugin in any of your posts/pages and the archives plugin won't work as well.
50
+
51
+ If you want to use this theme to its fullest, you must host your site on another platform, such as DigitalOcean, Netlify, or GitLab Pages. You can also host your blog on a cloud file storage service such as Amazon S3 or Azure Blob Storage.
52
+
53
+ #### DigitalOcean
54
+
55
+ If you want to host your site on DigitalOcean, you can use the [DigitalOcean App Platform](https://www.digitalocean.com/products/app-platform/). Simply create a new app, select your GitHub repository and chose to deploy as a static site. You can then configure the build command to be `bundle exec jekyll build -d public` and the publish directory to be autodiscovered. You can then deploy your site with a single click. Everytime you push to your repository, the site will be rebuilt and redeployed.
56
+
57
+ ### Starting From Scratch
58
+
59
+ To completely start from scratch, simply delete all the files in the `_posts`, `assets/img`, and `menu` folder, and add your own content. You may also replace the `README.md` file with your own README. Everything in the `_data` folder and `_config.yml` file can be edited to suit your needs. You may also add/change the `favicon.ico` file to your own favicon.
60
+
61
+ ## Configuration
62
+
63
+ ### Site Variables
64
+
65
+ To change site build settings, edit the `_config.yml` file found in the root of your repository, which you can tweak however you like. More information on configuration settings and plugins can be found on [the Jekyll documentation site](https://jekyllrb.com/docs/configuration/). This is also where you will be able to customize the title, description, and the author/owner of your site.
66
+
67
+ In the `settings.yml` file found in the `_data` folder, you will be able to customize your site settings, such as setting Disqus comments, Google Analytics, what shows up in your menu, and social media information.
68
+
69
+ ### Adding Menu Pages
70
+
71
+ The menu pages are found in the `menu` folder in the root directory, and can be added to your menu in the `settings.yml` file.
72
+
73
+ ### Posts
74
+
75
+ You will find example posts in your `_posts` directory. Go ahead and edit any post and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
76
+
77
+ To add new posts, simply add a file in the `_posts` directory that follows the convention of `YYYY-MM-DD-name-of-post.md` and includes the necessary front matter. Take a look at any sample post to get an idea about how it works.
78
+
79
+ ### YAML Front Block Matter
80
+
81
+ The recommended YAML front block is:
82
+
83
+ ```
84
+ ---
85
+ layout:
86
+ title:
87
+ author:
88
+ categories:
89
+ tags: []
90
+ image:
91
+ image_title:
92
+ ---
93
+ ```
94
+
95
+ `layout` specifies which layout to use, `title` is the page or post title, `categories` can be used to better organize your posts, `tags` are used when generating related posts based on the topic of the post, and `image` specifies which images to use. `image_title` adds a subtitle to the image of the post.
96
+
97
+ ## Jekyll
98
+
99
+ Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll's GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
100
+
101
+ [jekyll-docs]: http://jekyllrb.com/docs/home
102
+ [jekyll-gh]: https://github.com/jekyll/jekyll
103
+ [jekyll-talk]: https://talk.jekyllrb.com/
104
+
105
+ ## Contributing/Feature Requests
106
+
107
+ If you would like to make a feature request or report a bug or typo in the documentation, submit a GitHub issue. To contribute, create a fork of this repo and make a pull request from a new feature branch to the official repo's main branch.
108
+
109
+ Bug fixing is always welcome, for feature requests please open an issue first to discuss what you would like to add. Since the goal of this theme is to be minimalistic, I do not intend to make it feature rich.
@@ -0,0 +1,5 @@
1
+ {% for post in site.posts %}
2
+ {% if post.categories contains page.title %}
3
+ {% include post-preview.html %}
4
+ {% endif %}
5
+ {% endfor %}
@@ -0,0 +1,42 @@
1
+ <footer class="footer">
2
+ <div class="footer-description">
3
+ <a href="{{ site.github.url }}/">{{ site.data.settings.page-title }} | {{ site.data.settings.page-subtitle }} by {{site.author }}</a>
4
+ <br>
5
+ {% if site.data.settings.copyright %}
6
+ &copy; {{ site.data.settings.copyright }} {{ site.author }}
7
+ {% endif %}
8
+ <br>
9
+ {% if site.data.settings.license %}
10
+ All content<a href="{{ site.data.settings.license-link }}">{{ site.data.settings.license }}</a>
11
+ {% endif %}
12
+ </div>
13
+ <script>
14
+ // implement dark mode
15
+ let checkbox = document.getElementsByClassName("dark-mode-toggle")[0];
16
+ let body = document.body;
17
+
18
+ checkbox.addEventListener('click', function () {
19
+ if (localStorage.getItem('dark-mode') === 'true') {
20
+ localStorage.setItem('dark-mode', false);
21
+ body.classList.toggle('light-mode');
22
+ this.classList.toggle('fa-toggle-off');
23
+ this.classList.toggle('fa-toggle-on');
24
+ } else {
25
+ localStorage.setItem('dark-mode', true);
26
+ body.classList.toggle('light-mode');
27
+ this.classList.toggle('fa-toggle-off');
28
+ this.classList.toggle('fa-toggle-on');
29
+ }
30
+ body.classList.toggle('dark-mode');
31
+ });
32
+ if (localStorage.getItem('dark-mode') === 'true') {
33
+ body.classList.toggle('dark-mode');
34
+ checkbox.classList.toggle('fa-toggle-off');
35
+ checkbox.classList.toggle('fa-toggle-on');
36
+ } else {
37
+ body.classList.toggle('light-mode');
38
+ checkbox.classList.toggle('fa-toggle-off');
39
+ checkbox.classList.toggle('fa-toggle-on');
40
+ }
41
+ </script>
42
+ </footer>
@@ -0,0 +1,8 @@
1
+ <script>
2
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
3
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
4
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
5
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
6
+ ga('create', '{{ site.data.settings.google-ID }}', 'auto');
7
+ ga('send', 'pageview');
8
+ </script>
@@ -0,0 +1,31 @@
1
+ <head>
2
+ <title>
3
+ {% if page.title == "Home" %}
4
+ {{ site.data.settings.page-title }} | {{ site.data.settings.page-subtitle }}
5
+ {% else %}
6
+ {{ page.title }} | {{ site.data.settings.page-title }}
7
+ {% endif %}
8
+ </title>
9
+ <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <meta charset="utf-8">
11
+ <link rel="stylesheet" href="{{ site.github.url }}/assets/css/main.css">
12
+ <!-- Use Atom -->
13
+ {% feed_meta %}
14
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css">
15
+ <script type="text/javascript" async
16
+ src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML">
17
+ MathJax.Hub.Config({
18
+ tex2jax: {
19
+ inlineMath: [['$', '$'], ['\\(', '\\)']]
20
+ }
21
+ });
22
+ </script>
23
+ <!-- Add fonts -->
24
+ <link rel="preconnect" href="https://fonts.googleapis.com">
25
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
26
+ <link href="https://fonts.googleapis.com/css2?family=Fira+Mono&family=Joan&family=Pathway+Extreme:opsz@8..144&display=swap" rel="stylesheet">
27
+ <!-- Google Analytics -->
28
+ {% include google-analytics.html %}
29
+ <!-- Use Jekyll SEO plugin -->
30
+ {% seo %}
31
+ </head>
@@ -0,0 +1,6 @@
1
+ <header class="header">
2
+ <h3 class="header-title">
3
+ <a href="{{ site.github.url }}/">{{ site.data.settings.page-title }}</a>
4
+ <small class="header-subtitle">{{ site.data.settings.page-subtitle }}</small>
5
+ </h3>
6
+ </header>
@@ -0,0 +1,10 @@
1
+ <nav class="navbar">
2
+ <a href="{{ site.github.url }}/">
3
+ <icon class="fa fa-home"></icon>
4
+ </a>
5
+ {% for item in site.data.settings.pages %}
6
+ <a href="{{ site.github.url }}{{ item.link }}">
7
+ {{ item.name }}
8
+ </a>
9
+ {% endfor %}
10
+ </nav>
@@ -0,0 +1,20 @@
1
+ <article class="post-preview">
2
+ <div class="post-preview-meta" {% if post.image %}{% else %}style="width:100%;"{% endif %}>
3
+ <h2>
4
+ <a href="{{ site.github.url }}{{ post.url }}">
5
+ {{ post.title }}
6
+ </a>
7
+ </h2>
8
+ <p class="post-date">
9
+ {{ post.date | date: "%B %-d, %Y" }} | {{ post.author }} | {{ post.content | number_of_words | divided_by: 200 | append: " min" }}
10
+ </p>
11
+ <p>
12
+ {{ post.excerpt | strip_html | truncatewords: 35 }}
13
+ </p>
14
+ </div>
15
+ {% if post.image %}
16
+ <div class="post-image-preview">
17
+ <a href="{{ site.github.url }}{{ post.url }}"><img src="{{ post.image }}" alt="{{ post.title }}"></a>
18
+ </div>
19
+ {% endif %}
20
+ </article>
@@ -0,0 +1,3 @@
1
+ {% for post in site.posts limit:5 %}
2
+ {% include post-preview.html %}
3
+ {% endfor %}
@@ -0,0 +1,13 @@
1
+ <div class="related">
2
+ <h2>Related Posts</h2>
3
+ {% assign related_posts = site.posts | where:"categories", page.categories %}
4
+ {% if related_posts.size == 0 %}
5
+ {% assign related_posts = site.posts | where:"tags", page.tags %}
6
+ {% endif %}
7
+ {% if related_posts.size == 0 %}
8
+ {% assign related_posts = site.posts | sort: 'date' | reverse | limit: 3 %}
9
+ {% endif %}
10
+ {% for post in related_posts limit:3 %}
11
+ {% include post-preview.html %}
12
+ {% endfor %}
13
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="sharing">
2
+ <h2>Feel free to share this article</h2>
3
+ <div class="sharing-icons">
4
+ <a href="https://news.ycombinator.com/submitlink?u={{ site.url }}{{ page.url }}&amp;t={{ page.title }}" target="_blank"><i class="fa-brands fa-hacker-news" aria-hidden="true"></i></a>
5
+ <a href="https://www.reddit.com/submit?url={{ site.url }}{{ page.url }}&amp;title={{ page.title }}" target="_blank"><i class="fa-brands fa-reddit" aria-hidden="true"></i></a>
6
+ <a href="https://www.linkedin.com/sharing/share-offsite/?url={{ site.url }}{{ page.url }}" target="_blank"><i class="fa-brands fa-linkedin" aria-hidden="true"></i></a>
7
+ <a href="https://www.facebook.com/sharer/sharer.php?u={{ site.url }}{{ page.url }}" target="_blank"><i class="fa-brands fa-facebook" aria-hidden="true"></i></a>
8
+ <a href="https://mastodon.social/share?text={{ page.title }}&amp;url={{ site.url }}{{ page.url }}" target="_blank"><i class="fa-brands fa-mastodon" aria-hidden="true"></i></a>
9
+ <a href="mailto:?subject={{ site.title }}&amp;body={{ site.url }}{{ page.url }}" target="_blank"><i class="fa-solid fa-envelope" aria-hidden="true"></i></a>
10
+ <a href="https://twitter.com/intent/tweet?text={{ page.title }}&amp;url={{ site.url }}{{ page.url }}" target="_blank"><i class="fa-brands fa-twitter" aria-hidden="true"></i></a>
11
+ </div>
12
+ </div>
@@ -0,0 +1,11 @@
1
+ <nav class="social-icons">
2
+ {% for item in site.data.settings.social %}
3
+ {% assign first_char = item.link | slice: 0 %}
4
+ {% if item.icon == 'mastodon' %}
5
+ <a class="icon" rel="me" href="{{ item.link }}" target="_blank"><i class="fa-brands fa-{{ item.icon }}" aria-hidden="true"></i></a>
6
+ {% else %}
7
+ <a class="icon" href="{{ item.link }}" target="_blank"><i class="fa-{{ item.icon-class }} fa-{{ item.icon }}" aria-hidden="true"></i></a>
8
+ {% endif %}
9
+ {% endfor %}
10
+ <i type="button" class="dark-mode-toggle fas fa-toggle-off"></i>
11
+ </nav>
@@ -0,0 +1,6 @@
1
+
2
+ {% for post in site.posts %}
3
+ {% if post.tags contains page.title %}
4
+ {% include post-preview.html %}
5
+ {% endif %}
6
+ {% endfor %}
@@ -0,0 +1,7 @@
1
+ {% for post in site.posts %}
2
+ {% assign year = post.date | date: "%Y" %}
3
+ {% assign title = page.url | remove: "/" %}
4
+ {% if year == title %}
5
+ {% include post-preview.html %}
6
+ {% endif %}
7
+ {% endfor %}
@@ -0,0 +1,39 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>
6
+ {{ page.title }}
7
+ </h1>
8
+
9
+ <div class="archive">
10
+ <h2>Years</h2>
11
+ <ul>
12
+ {% assign years = '' %}
13
+ {% for post in site.posts %}
14
+ {% assign year = post.date | date: "%Y" %}
15
+ {% assign years_split = years | split: ' - ' %}
16
+ {% if years_split contains year %}
17
+ {% else %}
18
+ <li><a href="{{ site.github.url }}/{{ year }}">{{ year }}</a></li>
19
+ {% endif %}
20
+ {% assign years = years | append: ' - ' | append: year %}
21
+ {% endfor %}
22
+ </ul>
23
+
24
+ <h2>Categories</h2>
25
+ <ul>
26
+ {% assign categories = site.categories | sort %}
27
+ {% for category in categories %}
28
+ <li><a href="{{ site.github.url }}/categories/{{ category | first }}">{{ category | first }}</a></li>
29
+ {% endfor %}
30
+ </ul>
31
+
32
+ <h2>Tags</h2>
33
+ <ul>
34
+ {% assign tags = site.tags | sort %}
35
+ {% for tag in tags %}
36
+ <li><a href="{{ site.github.url }}/tags/{{ tag | first }}">{{ tag | first }}</a></li>
37
+ {% endfor %}
38
+ </ul>
39
+ </div>
@@ -0,0 +1,9 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>
6
+ Category: {{ page.title }}
7
+ </h1>
8
+
9
+ {% include category-posts.html %}
@@ -0,0 +1,15 @@
1
+ <!doctype html>
2
+ <html>
3
+ {% include head.html %}
4
+ <body>
5
+ <div class="container">
6
+ {% include header.html %}
7
+ {% include social-icons.html %}
8
+ {% include navbar.html %}
9
+ <div class="content-container">
10
+ {{ content }}
11
+ </div>
12
+ {% include footer.html %}
13
+ </div>
14
+ </body>
15
+ </html>
@@ -0,0 +1,9 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>
6
+ Recent Posts
7
+ </h1>
8
+
9
+ {% include recent-posts.html %}
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>
6
+ {{ page.title }}
7
+ </h1>
8
+ <article>
9
+ {{ content }}
10
+ </article>
@@ -0,0 +1,30 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>
6
+ {{ page.title }}
7
+ </h1>
8
+ {% if page.image %}
9
+ {% if page.image contains 'http' %}
10
+ <img class="post-image" src="{{ page.image }}" alt="{{ page.image_description }}">
11
+ {% else %}
12
+ <img class="post-image" src="{{ site.github.url }}/{{ page.image }}" alt="{{ page.image_description }}">
13
+ {% endif %}
14
+ {% if page.image_title %}
15
+ <p class="post-image-subtitle">{{ page.image_title }}</p>
16
+ {% endif %}
17
+ {% endif %}
18
+ <article class="post-content">
19
+ {{ content }}
20
+ </article>
21
+
22
+ <p class="post-date">
23
+ Written on {{ page.date | date: "%B %-d, %Y" }} by {{ page.author }}.
24
+ </p>
25
+
26
+ {% include sharing-links.html %}
27
+
28
+ {% if site.hide_related_posts != true %}
29
+ {% include related-posts.html %}
30
+ {% endif %}
@@ -0,0 +1,9 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>
6
+ Category: {{ page.title }}
7
+ </h1>
8
+
9
+ {% include tag-posts.html %}
@@ -0,0 +1,9 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <h1>
6
+ Posts written in {{ page.url | remove: "/"}}
7
+ </h1>
8
+
9
+ {% include year-posts.html %}
@@ -0,0 +1,12 @@
1
+ @import "base",
2
+ "code",
3
+ "container",
4
+ "post",
5
+ "social-icons",
6
+ "footer",
7
+ "header",
8
+ "navbar",
9
+ "archive",
10
+ "dark-mode",
11
+ "light-mode",
12
+ "mobile"
@@ -0,0 +1,5 @@
1
+ .archive {
2
+ a {
3
+ font-size: 16px;
4
+ }
5
+ }
data/_sass/_base.scss ADDED
@@ -0,0 +1,122 @@
1
+ /*
2
+ Base
3
+ */
4
+ html {
5
+ height: 100%;
6
+ scroll-behavior: smooth;
7
+ }
8
+
9
+ body {
10
+ display: flow-root;
11
+ font-family: $serif-font-family;
12
+ line-height: 1.75rem;
13
+ top: 0;
14
+ margin: 0;
15
+
16
+ // fade in effect; removed because can be annoying
17
+ // animation: body 2s;
18
+ // -webkit-animation: body 2s;
19
+ // -moz-animation: body 2s;
20
+ // -o-animation: body 2s;
21
+ // -ms-animation: body 2s;
22
+
23
+ @keyframes body {
24
+ from {
25
+ opacity: 0;
26
+ }
27
+ to {
28
+ opacity: 1;
29
+ }
30
+ }
31
+ }
32
+
33
+ h1 {
34
+ font-size: 26px;
35
+ }
36
+
37
+ h2 {
38
+ font-size: 24px;
39
+ }
40
+
41
+ h3 {
42
+ font-size: 21px;
43
+ }
44
+
45
+ h4 {
46
+ font-size: 19px;
47
+ }
48
+
49
+ h5 {
50
+ font-size: 18px;
51
+ font-weight: 600;
52
+ }
53
+
54
+ h1 a {
55
+ text-decoration: none;
56
+ }
57
+
58
+ h1,
59
+ h2,
60
+ h3,
61
+ h4,
62
+ h5,
63
+ h6 {
64
+ font-family: $sans-serif-font-family;
65
+ }
66
+
67
+ p {
68
+ font-size: 16px;
69
+ margin-block-start: 0em;
70
+ margin-block-end: 0em;
71
+ margin-inline-start: 0px;
72
+ margin-inline-end: 0px;
73
+ text-align: justify;
74
+ }
75
+
76
+ a {
77
+ text-decoration: underline;
78
+ }
79
+
80
+ a:hover {
81
+ transition: 0.3s;
82
+ border-bottom: none;
83
+ }
84
+
85
+ img {
86
+ max-width: 100%;
87
+ height: auto;
88
+ border-radius: 5px;
89
+ }
90
+
91
+ blockquote {
92
+ margin: 10px 20px 10px;
93
+ padding: 0px 15px;
94
+ border-left: 0.25em solid;
95
+ line-height: 1.5;
96
+ }
97
+
98
+ hr {
99
+ border-top: 1px solid;
100
+ }
101
+
102
+ /*
103
+ Tables
104
+ */
105
+
106
+ table {
107
+ border-collapse: collapse;
108
+ margin-bottom: 30px;
109
+ width: 100%;
110
+ }
111
+
112
+ table,
113
+ th,
114
+ td {
115
+ border: 1px solid black;
116
+ }
117
+
118
+ th,
119
+ td {
120
+ padding: 15px;
121
+ text-align: left;
122
+ }