├── .gitattributes
├── .gitignore
├── README.md
├── astro.config.mjs
├── package-lock.json
├── package.json
├── public
├── assets
│ ├── blog
│ │ ├── new-demo2-added
│ │ │ └── demo2-mockup.png
│ │ ├── new-demo3-added
│ │ │ └── demo3-mockup.png
│ │ ├── new-demo4-added
│ │ │ └── demo4-mockup.png
│ │ ├── say-hello-to-kaamos
│ │ │ └── kaamos-hero-image.jpg
│ │ └── typography
│ │ │ └── typography-calligraphy-work.jpg
│ └── kaamos-logo.png
├── robots.txt
├── script
│ ├── demo1.js
│ ├── demo2.js
│ ├── demo3.js
│ └── demo4.js
└── style
│ ├── demo1.css
│ ├── demo2.css
│ ├── demo3.css
│ ├── demo4.css
│ ├── global.css
│ └── normalize.css
├── sandbox.config.json
└── src
├── components
├── BaseHead.astro
├── BlogPost.astro
├── BlogPostPreview.astro
├── Footer.astro
├── Header.astro
├── Navigation.astro
├── Paginator.astro
└── Sidebar.astro
├── data
└── site.js
├── layouts
├── BaseLayout.astro
├── BlogPostLayout.astro
└── PageLayout.astro
├── pages
├── 404.astro
├── [...page].astro
├── about-themes.astro
├── blog
│ ├── [...page].astro
│ ├── categories
│ │ ├── [slug].astro
│ │ └── index.astro
│ ├── new-demo2-added.md
│ ├── new-demo3-added.md
│ ├── new-demo4-added.md
│ ├── say-hello-to-kaamos.md
│ ├── typography.md
│ └── youtube-embeds.md
├── license.astro
└── typography.astro
└── utils
├── helpers.js
└── posts.js
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # build output
2 | dist
3 |
4 | # dependencies
5 | node_modules/
6 |
7 | # logs
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 |
12 | # environment variables
13 | .env
14 | .env.production
15 |
16 | # macOS-specific files
17 | .DS_Store
18 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Kaamos Astro
2 | Highly Search Engine Optimized Starter Blog for Astro
3 |
4 |
5 |
6 | ## [Demo site](https://www.kalervoraitanen.com/kaamos)
7 |
8 | Kaamos Astro is designed to give a strong semantic and lightweight foundation to a blog. It is highly Search Engine optimized especially for blogs with Schema.org Microdata. It is meant to be used as a starter blog which you can use to develop your own blog.
9 |
10 | Kaamos is minimalistic as possible and has only the essential features of a blog and no unnecessary CSS. However it comes with some CSS files for example a demo theme and some practical styles. You can easily remove these if you want just the bare bones starter blog.
11 |
12 | Kaamos is licensed under WTFPL so you can do what ever you want with it! However you are forbidden to hold me liable for anything, or claim that what you do with this is made by me.
13 |
14 | ## Some features
15 |
16 | - Open Graph Tags (Twitter, Facebook)
17 | - User Declared Canonical URLs
18 | - XML Sitemap
19 | - Robots.txt
20 | - Markdown based blog posts with featured images
21 |
22 | ## Getting Started
23 |
24 | To get started you should have Astro, Node and npm installed. Instructions can be found on Astro's website. After that follow these steps:
25 | ```
26 | # Install Dependencies
27 |
28 | npm i
29 |
30 | # Run Site locally
31 |
32 | npm start
33 |
34 | # Build Site
35 |
36 | npm run build
37 | ```
38 |
39 | Navigate to `src/data/site.js` and edit to match your site's information.
40 |
41 | Start writing new blog posts in Markdown at `src/pages/blog/`
42 |
43 | ## Activating a demo
44 |
45 | Kaamos Astro comes with demo themes to showcase what can be done with just CSS and a touch of Vanilla Javascript. All the demos are also WTFPL licensed so you can use them anyway you want. However you are forbidden to hold me liable for anything if you choose to use them.
46 |
47 | Demos so far:
48 | - [Demo #1](https://www.kalervoraitanen.com/kaamos)
49 | - [Demo #2](https://www.kalervoraitanen.com/demo2)
50 | - [Demo #3](https://www.kalervoraitanen.com/demo3)
51 | - [Demo #4](https://www.kalervoraitanen.com/demo4)
52 |
53 |
54 | Activating a demo is very simple. Below are the instructions how to do it:
55 |
56 | 1. Open `src/components/blog/BaseHead.astro`.
57 | 2. Find the line `` and change the 'demo1' to 'demo2' for example.
58 | 3. Find the line `` and change the 'demo1' to 'demo2' for example.
59 | 4. That's it, you're all set! Start your site locally and see the demo in your browser.
60 |
61 | ## Credits
62 |
63 | Kaamos Astro is also based on:
64 | - astro-minimal-starter by Jaydan Urwin
65 | - https://github.com/necolas/normalize.css
66 |
67 | And thanks to Tony-Sull of Astro Support Squad for some coding help!
--------------------------------------------------------------------------------
/astro.config.mjs:
--------------------------------------------------------------------------------
1 | // @ts-check
2 | export default /** @type {import('astro').AstroUserConfig} */ ({
3 | buildOptions: {
4 | //site: 'https://my-site.dev/', // Your public domain, e.g.: https://my-site.dev/. Used to generate sitemaps and canonical URLs.
5 | //sitemap: true, // Generate sitemap (set to "false" to disable)
6 | },
7 | // Comment out "renderers: []" to enable Astro's default component support.
8 | // renderers: ['@astrojs/renderer-preact'],
9 | });
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "kaamos-astro",
3 | "version": "v1.0.0",
4 | "description": "Highly Search Engine Optimized Starter Blog for Astro.",
5 | "private": false,
6 | "scripts": {
7 | "start": "astro dev",
8 | "build": "astro build"
9 | },
10 | "devDependencies": {
11 | "astro": "^0.22.1"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/public/assets/blog/new-demo2-added/demo2-mockup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kalervoraitanen/kaamos-astro/d350d0eaf5467c902e6579950b48d9f9c4ffced5/public/assets/blog/new-demo2-added/demo2-mockup.png
--------------------------------------------------------------------------------
/public/assets/blog/new-demo3-added/demo3-mockup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kalervoraitanen/kaamos-astro/d350d0eaf5467c902e6579950b48d9f9c4ffced5/public/assets/blog/new-demo3-added/demo3-mockup.png
--------------------------------------------------------------------------------
/public/assets/blog/new-demo4-added/demo4-mockup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kalervoraitanen/kaamos-astro/d350d0eaf5467c902e6579950b48d9f9c4ffced5/public/assets/blog/new-demo4-added/demo4-mockup.png
--------------------------------------------------------------------------------
/public/assets/blog/say-hello-to-kaamos/kaamos-hero-image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kalervoraitanen/kaamos-astro/d350d0eaf5467c902e6579950b48d9f9c4ffced5/public/assets/blog/say-hello-to-kaamos/kaamos-hero-image.jpg
--------------------------------------------------------------------------------
/public/assets/blog/typography/typography-calligraphy-work.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kalervoraitanen/kaamos-astro/d350d0eaf5467c902e6579950b48d9f9c4ffced5/public/assets/blog/typography/typography-calligraphy-work.jpg
--------------------------------------------------------------------------------
/public/assets/kaamos-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kalervoraitanen/kaamos-astro/d350d0eaf5467c902e6579950b48d9f9c4ffced5/public/assets/kaamos-logo.png
--------------------------------------------------------------------------------
/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Allow: /
3 |
--------------------------------------------------------------------------------
/public/script/demo1.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Kaamos Astro Demo #1 Scripts File
3 | */
4 |
5 | // Wait till the DOM is fully loaded
6 | window.addEventListener('DOMContentLoaded', (event) => {
7 |
8 | // Toggle .menu-open class when menu button is clicked.
9 | document.querySelector(".nav-button").addEventListener('click', function(){
10 | document.querySelector(".site-header").classList.toggle("menu-open");
11 | document.querySelector(".header__nav").classList.toggle("active");
12 | document.querySelector(".nav-button").classList.toggle("close");
13 | document.querySelector("body").classList.toggle("no-scroll");
14 | });
15 |
16 | }); // End of Wait till the DOM is fully loaded
17 |
--------------------------------------------------------------------------------
/public/script/demo2.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Kaamos Astro Demo #1 Scripts File
3 | */
4 |
5 | // Wait till the DOM is fully loaded
6 | window.addEventListener('DOMContentLoaded', (event) => {
7 |
8 | // Toggle .menu-open class when menu button is clicked.
9 | document.querySelector(".nav-button").addEventListener('click', function(){
10 | document.querySelector(".site-header").classList.toggle("menu-open");
11 | document.querySelector(".header__nav").classList.toggle("active");
12 | document.querySelector(".nav-button").classList.toggle("close");
13 | document.querySelector("body").classList.toggle("no-scroll");
14 | });
15 |
16 | }); // End of Wait till the DOM is fully loaded
17 |
--------------------------------------------------------------------------------
/public/script/demo3.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Kaamos Astro Demo #3 Scripts File
3 | */
4 |
5 | // Wait till the DOM is fully loaded
6 | window.addEventListener('DOMContentLoaded', (event) => {
7 |
8 | // Toggle .menu-open class when menu button is clicked.
9 | document.querySelector(".nav-button").addEventListener('click', function(){
10 | document.querySelector(".site-header").classList.toggle("menu-open");
11 | document.querySelector(".header__nav").classList.toggle("active");
12 | document.querySelector(".nav-button").classList.toggle("close");
13 | document.querySelector("body").classList.toggle("no-scroll");
14 | });
15 |
16 | }); // End of Wait till the DOM is fully loaded
17 |
--------------------------------------------------------------------------------
/public/script/demo4.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Kaamos Astro Demo #4 Scripts File
3 | */
4 |
5 | // Wait till the DOM is fully loaded
6 | window.addEventListener('DOMContentLoaded', (event) => {
7 |
8 | // Start of Masonry grid layout scripts
9 | function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
10 |
11 | function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12 |
13 | function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14 |
15 | function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
16 |
17 | function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
18 |
19 | function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
20 |
21 | var grids = _toConsumableArray(document.querySelectorAll('.grid-layout main'));
22 |
23 | if (grids.length && getComputedStyle(grids[0]).gridTemplateRows !== 'masonry') {
24 | var layout = function layout() {
25 | grids.forEach(function (grid) {
26 | /* get the post relayout number of columns */
27 | var ncol = getComputedStyle(grid._el).gridTemplateColumns.split(' ').length;
28 | grid.items.forEach(function (c) {
29 | var new_h = c.getBoundingClientRect().height;
30 |
31 | if (new_h !== +c.dataset.h) {
32 | c.dataset.h = new_h;
33 | grid.mod++;
34 | }
35 | });
36 | /* if the number of columns has changed */
37 |
38 | if (grid.ncol !== ncol || grid.mod) {
39 | /* update number of columns */
40 | grid.ncol = ncol;
41 | /* revert to initial positioning, no margin */
42 |
43 | grid.items.forEach(function (c) {
44 | return c.style.removeProperty('margin-top');
45 | });
46 | /* if we have more than one column */
47 |
48 | if (grid.ncol > 1) {
49 | grid.items.slice(ncol).forEach(function (c, i) {
50 | var prev_fin = grid.items[i].getBoundingClientRect().bottom
51 | /* bottom edge of item above */
52 | ,
53 | curr_ini = c.getBoundingClientRect().top
54 | /* top edge of current item */
55 | ;
56 | c.style.marginTop = "".concat(prev_fin + grid.gap - curr_ini, "px");
57 | });
58 | }
59 |
60 | grid.mod = 0;
61 | }
62 | });
63 | };
64 |
65 | grids = grids.map(function (grid) {
66 | return {
67 | _el: grid,
68 | gap: parseFloat(getComputedStyle(grid).gridRowGap),
69 | items: _toConsumableArray(grid.childNodes).filter(function (c) {
70 | return c.nodeType === 1 && +getComputedStyle(c).gridColumnEnd !== -1;
71 | }),
72 | ncol: 0,
73 | mod: 0
74 | };
75 | });
76 | addEventListener('load', function (e) {
77 | layout();
78 | /* initial load */
79 |
80 | addEventListener('resize', layout, false);
81 | /* on resize */
82 | }, false);
83 | }
84 | // End of Masonry grid layout scripts
85 |
86 |
87 | // Toggle .menu-open class when menu button is clicked.
88 | document.querySelector(".nav-button").addEventListener('click', function(){
89 | document.querySelector(".site-header").classList.toggle("menu-open");
90 | document.querySelector(".header__nav").classList.toggle("active");
91 | document.querySelector(".nav-button").classList.toggle("close");
92 | document.querySelector("body").classList.toggle("no-scroll");
93 | });
94 |
95 | }); // End of Wait till the DOM is fully loaded
96 |
--------------------------------------------------------------------------------
/public/style/demo1.css:
--------------------------------------------------------------------------------
1 | /*
2 | Demo: Kaamos Astro - Demo #1
3 | Demo site: https://www.kalervoraitanen.com/kaamos
4 | Author: Kalervo Raitanen
5 | Author site: http://www.kalervoraitanen.com
6 | Description: Minimalist and timeless black&white demo for Kaamos Astro Starter Blog.
7 | License: WTFPL License.
8 | License URI: http://sam.zoy.org/wtfpl/
9 | */
10 |
11 |
12 | /*--------------------------------------------------------------
13 | >>> TABLE OF CONTENTS:
14 | ----------------------------------------------------------------
15 | # 1. VARIABLES
16 | # 2. GENERAL STYLES
17 | # 3. TYPOGRAPHY
18 | # 3.1. Font settings
19 | # 3.2. Font styles
20 | # 3.3. Link styles
21 | # 3.4. Paragraph styles
22 | # 3.4. Header styles
23 | # 3.5. Table styles
24 | # 3.6. Definition list styles
25 | # 3.7. UL and OL styles
26 | # 3.8. Other typographic styles
27 | # 4. MAIN HEADER STYLES
28 | # 5. NAVIGATION STYLES
29 | # 6. MAIN CONTENT STYLES
30 | # 7. SINGLE POST STYLES
31 | # 8. PAGE STYLES
32 | # 9. POSTS PAGINATION STYLES
33 | # 10. SIDEBAR STYLES
34 | # 11. FOOTER STYLES
35 | # 12. BUTTONS
36 | # 13. Z-INDEXES
37 | # 14. ANIMATIONS
38 | # 15. MEDIA QUERIES
39 | # 15.1. Styles for 768px and larger screen sizes
40 | # 15.1.1. MAIN LAYOUT STYLES
41 | # 15.1.2. PAGE STYLES
42 | # 15.1.3. SIDEBAR STYLES
43 | # 15.2. Styles for 1024px and larger screen sizes
44 | # 15.2.1. TYPOGRAPHY
45 | # 15.2.2. MAIN LAYOUT STYLES
46 | # 15.2.3. MAIN HEADER STYLES
47 | # 15.2.4. MAIN NAVIGATION STYLES
48 | # 15.2.5. MAIN CONTENT STYLES
49 | # 15.2.6. Z-INDEXES
50 | --------------------------------------------------------------*/
51 |
52 |
53 | /******************************************************************
54 | 1. VARIABLES
55 | ******************************************************************/
56 |
57 | :root {
58 | /* Colors */
59 | --black: #111111;
60 | --pure-black: #000000;
61 | --white: #eeeeee;
62 | --gray: #333333;
63 | --red: red;
64 | }
65 |
66 |
67 | /******************************************************************
68 | 2. GENERAL STYLES
69 | ******************************************************************/
70 |
71 | html {
72 | scroll-behavior: smooth;
73 | /* Standard version (Firefox only for now) */
74 | scrollbar-color: var(--white) var(--pure-black);
75 | }
76 |
77 | /* For Google Chrome */
78 | html::-webkit-scrollbar {
79 | width: 10px;
80 | height: 10px;
81 | }
82 |
83 | html::-webkit-scrollbar-thumb {
84 | background: var(--pure-black);
85 | }
86 |
87 | html::-webkit-scrollbar-track {
88 | background: var(--white);
89 | }
90 |
91 | body {
92 | background: var(--black);
93 | color: var(--white);
94 | }
95 |
96 |
97 | /******************************************************************
98 | 3. TYPOGRAPHY
99 | ******************************************************************/
100 |
101 | /* # 3.1. Font settings */
102 |
103 | /* Fluid typography sizes */
104 | :root {
105 | --size-300: clamp(0.7rem, 0.8rem + 0.2vw, 0.9rem);
106 | --size-400: clamp(0.9rem, 0.9rem + 0.24vw, 1rem);
107 | --size-500: clamp(1.09rem, 1rem + 0.47vw, 1.33rem);
108 | --size-600: clamp(1.37rem, 1.21rem + 0.8vw, 1.78rem);
109 | --size-700: clamp(1.71rem, 1.45rem + 1.29vw, 2.37rem);
110 | --size-800: clamp(2.14rem, 1.74rem + 1.99vw, 3.16rem);
111 | --size-900: clamp(2.67rem, 2.07rem + 3vw, 4.21rem);
112 | --size-1000: clamp(3.34rem, 2.45rem + 4.43vw, 5.61rem);
113 |
114 | --font-main: 'Merriweather', Georgia, serif;
115 | --font-heading: 'Playball', cursive;
116 | --font-button: 'Arimo', Helvetica, Arial, sans-serif;
117 | }
118 |
119 |
120 | /* # 3.2. Font styles */
121 | body {
122 | font-family: var(--font-main);
123 | }
124 |
125 | .site-header:after {
126 | font-size: 3rem;
127 | }
128 |
129 | .site-header.site-description {
130 | font-size: var(--size-600);
131 | }
132 |
133 | .main-nav a {
134 | font-family: var(--font-button);
135 | font-size: var(--size-700);
136 | }
137 |
138 | .pagination {
139 | font-size: var(--size-500);
140 | }
141 |
142 | .site-sidebar__heading {
143 | font-family: var(--font-main);
144 | font-size: var(--size-600);
145 | }
146 |
147 | .site-sidebar .archives summary {
148 | font-size: var(--size-500);
149 | font-weight: 700;
150 | }
151 |
152 | .site-sidebar__archives__post-date {
153 | font-size: var(--size-300);
154 | }
155 |
156 | .header__nav a {
157 | font-family: var(--font-button);
158 | }
159 |
160 |
161 | /* # 3.3. Link styles */
162 | a {
163 | color: var(--white);
164 | }
165 |
166 |
167 | /* # 3.4. Paragraph styles */
168 | p:first-child {
169 | margin-top: 0;
170 | }
171 |
172 | p,
173 | textarea,
174 | figcaption {
175 | font-size: var(--size-400);
176 | line-height: 1.8;
177 | }
178 |
179 | h1 + p,
180 | h2 + p,
181 | h3 + p,
182 | h4 + p,
183 | h5 + p,
184 | h6 + p {
185 | margin-top: 0;
186 | }
187 |
188 |
189 | /* # 3.4. Header styles */
190 | h1,
191 | h2,
192 | h3,
193 | h4,
194 | h5,
195 | h6 {
196 | font-family: var(--font-heading);
197 | font-weight: 700;
198 | line-height: 1;
199 | margin: 0;
200 | max-width: 100%;
201 | }
202 |
203 | h1:first-child,
204 | h2:first-child,
205 | h3:first-child,
206 | h4:first-child,
207 | h5:first-child,
208 | h6:first-child {
209 | padding-top: 0;
210 | }
211 |
212 | h1 {
213 | font-size: var(--size-800);
214 | padding: 0.8em 0 0.6em 0;
215 | }
216 |
217 | h2 {
218 | font-size: var(--size-700);
219 | padding: 1em 0 0.6em 0;
220 | }
221 |
222 | h3 {
223 | font-size: var(--size-600);
224 | padding: 1em 0 0.6em 0;
225 | }
226 |
227 | h4 {
228 | font-size: var(--size-500);
229 | padding: 1em 0 0.6em 0;
230 | }
231 |
232 | h5 {
233 | font-size: var(--size-500);
234 | padding: 1em 0 0.6em 0;
235 | }
236 |
237 | h6 {
238 | font-size: var(--size-400);
239 | padding: 1em 0 0.6em 0;
240 | }
241 |
242 |
243 | /* # 3.5. Table styles */
244 | table {
245 | border-collapse: collapse;
246 | }
247 |
248 | table tr {
249 | border-bottom: 1px solid var(--gray);
250 | }
251 |
252 | table tr:first-child {
253 | border-top: 1px solid var(--gray);
254 | }
255 |
256 | table th,
257 | table td {
258 | border-left: 1px solid var(--gray);
259 | border-right: 1px solid var(--gray);
260 | padding: 0.5rem;
261 | }
262 |
263 |
264 | /* # 3.6. Definition list styles */
265 | dl {
266 | line-height: 1.8;
267 | }
268 |
269 | dt {
270 | font-weight: 700;
271 | }
272 |
273 | dd {
274 | margin: 0.25rem 0 1rem 1rem;
275 | }
276 |
277 |
278 | /* # 3.7. UL and OL styles */
279 | ul,
280 | ol {
281 | line-height: 1.5;
282 | list-style-position: inside;
283 | margin: 0.5rem 0 0 1rem;
284 | padding: 0;
285 | }
286 |
287 | li {
288 | margin: 0 0 0.5rem 0;
289 | }
290 |
291 | li:last-child {
292 | margin: 0;
293 | }
294 |
295 |
296 | /* # 3.8. Other typographic styles */
297 | hr {
298 | color: var(--gray);
299 | }
300 |
301 | dfn,
302 | cite,
303 | em,
304 | i {
305 | font-style: italic;
306 | }
307 |
308 | blockquote {
309 | background: var(--pure-black);
310 | border-left: 6px solid var(--gray);
311 | color: var(--white);
312 | font-style: italic;
313 | margin: 0;
314 | overflow: hidden;
315 | padding: 1rem 1rem 1rem 2rem;
316 | quotes: "" "";
317 | }
318 |
319 | blockquote cite {
320 | display: block;
321 | font-weight: 700;
322 | margin-top: 0.5rem;
323 | }
324 |
325 | blockquote:before,
326 | blockquote:after {
327 | content: "";
328 | }
329 |
330 | address {
331 | margin: 0 0 1.5rem;
332 | }
333 |
334 | pre {
335 | margin: 1rem 0;
336 | max-width: 300px;
337 | overflow: auto;
338 | padding: 0 0 0 1rem;
339 | }
340 |
341 | code,
342 | kbd,
343 | tt,
344 | var {
345 | font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
346 | }
347 |
348 | code {
349 | background: var(--pure-black);
350 | color: var(--white);
351 | display: block;
352 | margin: 1rem 0;
353 | padding: 0.5rem 1rem;
354 | }
355 |
356 | abbr,
357 | acronym {
358 | border-bottom: 1px dotted var(--gray);
359 | cursor: help;
360 | }
361 |
362 | mark,
363 | ins {
364 | text-decoration: none;
365 | }
366 |
367 | big {
368 | font-size: 125%;
369 | }
370 |
371 | q {
372 | quotes: "“" "”" "‘" "’";
373 | }
374 |
375 |
376 | /******************************************************************
377 | 4. MAIN HEADER STYLES
378 | ******************************************************************/
379 |
380 | .site-header {
381 | background-color: var(--pure-black);
382 | height: auto;
383 | padding: 0 4vw;
384 | position: relative;
385 | }
386 |
387 | .site-header__desc {
388 | color: var(--white);
389 | margin: 0;
390 | }
391 |
392 | .site-header__logo-link {
393 | display: inline-block;
394 | }
395 |
396 | .site-header__logo-img {
397 | height: 32px;
398 | margin: 16px 0;
399 | position: relative;
400 | text-align: center;
401 | width: auto;
402 | }
403 |
404 |
405 | /******************************************************************
406 | 5. NAVIGATION STYLES
407 | ******************************************************************/
408 |
409 | .header__nav {
410 | display: none;
411 | }
412 |
413 | .header__nav.active {
414 | align-items: center;
415 | animation: openLightbox .5s forwards ease-out;
416 | background: rgba(0,0,0,0.9);
417 | bottom: 0;
418 | display: grid;
419 | justify-content: center;
420 | left: 0;
421 | opacity: 0;
422 | overflow-y: scroll;
423 | padding: 2em 0;
424 | position: fixed;
425 | right: 0;
426 | top: 0;
427 | transform: scale(0.1);
428 | }
429 |
430 | .header__nav ul {
431 | list-style-type: none;
432 | }
433 |
434 | .header__nav > ul {
435 | padding: 0;
436 | width: 70vw;
437 | }
438 |
439 | .header__nav.active > ul {
440 | animation: fadeInMenu .5s forwards ease-out 0.5s;
441 | opacity: 0;
442 | }
443 |
444 | .header__nav li {
445 | padding: 0 0 4px 0;
446 | position: relative;
447 | }
448 |
449 | .header__nav li:after {
450 | background: var(--gray);
451 | content: "";
452 | display: block;
453 | height: 1px;
454 | width: 100%;
455 | }
456 |
457 | .header__nav li:last-child:after {
458 | display: none;
459 | }
460 |
461 | .header__nav a {
462 | color: var(--white);
463 | text-decoration: none;
464 | text-transform: uppercase;
465 | }
466 |
467 | .nav-btn-wrap {
468 | background: var(--pure-black);
469 | padding: 16px 8px;
470 | position: fixed;
471 | right: 16px;
472 | top: 16px;
473 | }
474 |
475 |
476 | /******************************************************************
477 | 6. MAIN CONTENT STYLES
478 | ******************************************************************/
479 |
480 | main {
481 | margin: 160px auto 80px auto;
482 | }
483 |
484 | .post-preview {
485 | border-bottom: 4px solid var(--gray);
486 | padding: 4vw;
487 | position: relative;
488 | }
489 |
490 | .post {
491 | padding: 0 4vw 4vw 4vw;
492 | }
493 |
494 | .post-preview:nth-child(odd) {
495 | border-left: 4px solid var(--gray);
496 | }
497 |
498 | .post-preview:nth-child(even) {
499 | border-right: 4px solid var(--gray);
500 | }
501 |
502 | .post-preview:first-child {
503 | border-top: 4px solid var(--gray);
504 | }
505 |
506 | .post-preview__header {
507 | display: flex;
508 | flex-flow: column;
509 | }
510 |
511 | .post__date {
512 | margin: 0 0 1rem 0;
513 | order: 0;
514 | }
515 |
516 | .post__title {
517 | margin: 0;
518 | padding: 0 0 1rem 0;
519 | order: 1;
520 | }
521 |
522 | .post__feature-img {
523 | display: block;
524 | margin: 0 0 1.5rem 0;
525 | order: 1;
526 | position: relative;
527 | }
528 |
529 | .post-preview__footer {
530 | margin: 2rem 0 0 0;
531 | }
532 |
533 | .post__footer-categories {
534 | display: flex;
535 | flex-wrap: wrap;
536 | list-style-type: none;
537 | margin: 0;
538 | padding: 0;
539 | }
540 |
541 | .post__footer-categories li {
542 | margin: 0 1rem 0 0;
543 | }
544 |
545 | .post__footer-categories a {
546 | padding: 0 0 0 1rem;
547 | position: relative;
548 | }
549 |
550 | .post__footer-categories a:before {
551 | content: "#";
552 | left: 0;
553 | position: absolute;
554 | }
555 |
556 |
557 | /******************************************************************
558 | 7. SINGLE POST STYLES
559 | ******************************************************************/
560 |
561 | .single-post main {
562 | margin: 160px 4vw 80px 4vw;
563 | }
564 |
565 | .single-post .post__header {
566 | display: flex;
567 | flex-flow: column;
568 | }
569 |
570 | .single-post .post__date {
571 | align-items: center;
572 | display: flex;
573 | order: 0;
574 | }
575 |
576 | .single-post .post__title {
577 | order: 1;
578 | }
579 |
580 | .single-post .post__feature-img {
581 | order: 2;
582 | }
583 |
584 | .single-post .post__title:after {
585 | background: var(--gray);
586 | content: "";
587 | display: block;
588 | height: 1px;
589 | margin: 0.5rem 0 0 0;
590 | width: 100%;
591 | }
592 |
593 | .single-post .post__footer {
594 | margin: 2rem 0 0 0;
595 | }
596 |
597 |
598 | /******************************************************************
599 | 8. PAGE STYLES
600 | ******************************************************************/
601 |
602 | .page main {
603 | background: var(--gray);
604 | margin: 160px 0 80px 0;
605 | padding: 4vw;
606 | }
607 |
608 | .page h1:after {
609 | background: var(--gray);
610 | content: "";
611 | display: block;
612 | height: 1px;
613 | margin: 0.5rem 0 0 0;
614 | width: 100%;
615 | }
616 |
617 |
618 | /******************************************************************
619 | 9. POSTS PAGINATION STYLES
620 | ******************************************************************/
621 |
622 |
623 | /******************************************************************
624 | 10. SIDEBAR STYLES
625 | ******************************************************************/
626 |
627 | .site-sidebar {
628 | margin: 3rem 4vw 0 4vw;
629 | }
630 |
631 | .site-sidebar__section {
632 | padding: 0;
633 | margin: 0 0 3rem 0;
634 | max-width: 25rem;
635 | }
636 |
637 | .site-sidebar__heading {
638 | margin: 0 0 0.5rem 0;
639 | padding: 0 0 0.25rem 0;
640 | }
641 |
642 | .site-sidebar__heading:after {
643 | background: var(--gray);
644 | content: "";
645 | display: block;
646 | height: 1px;
647 | margin: 6px 0 0 0;
648 | width: 100%;
649 | }
650 |
651 | .site-sidebar ul {
652 | list-style-position: inside;
653 | list-style-type: disc;
654 | margin: 0;
655 | padding: 0;
656 | }
657 |
658 | .site-sidebar li {
659 | margin: 0 0 0.5rem 0;
660 | }
661 |
662 | .site-sidebar li:last-child {
663 | margin: 0;
664 | }
665 |
666 | .site-sidebar .archives details {
667 | margin: 0 0 0.5rem 0;
668 | }
669 |
670 | .site-sidebar .archives ul {
671 | margin: 0 0 0 1rem;
672 | }
673 |
674 | .site-sidebar__archives__post {
675 | margin: 0 0 0.5rem 0;
676 | }
677 |
678 | .site-sidebar__archives__post-date {
679 | display: block;
680 | }
681 |
682 |
683 | /******************************************************************
684 | 11. FOOTER STYLES
685 | ******************************************************************/
686 |
687 | .site-footer {
688 | background: var(--pure-black);
689 | padding: 1rem 2.5rem 1rem 0;
690 | }
691 |
692 | .site-footer p {
693 | text-align: center;
694 | }
695 |
696 |
697 | /******************************************************************
698 | 12. BUTTONS
699 | ******************************************************************/
700 |
701 | /* Read More button */
702 | .read-more {
703 | background: var(--white);
704 | color: var(--black);
705 | font-family: var(--font-button);
706 | padding: 0.5rem 1rem;
707 | text-decoration: none;
708 | }
709 |
710 | /* Navigation toggle button */
711 | .nav-button {
712 | background: var(--white);
713 | border: none;
714 | border-radius: 0;
715 | cursor: pointer;
716 | display: block;
717 | height: 2px;
718 | margin: 0;
719 | padding: 0;
720 | position: relative;
721 | text-indent: -9999px;
722 | transition: all 0.25s ease-out;
723 | width: 24px;
724 | }
725 |
726 | .nav-button:before {
727 | background: var(--white);
728 | content: "";
729 | display: block;
730 | height: 2px;
731 | left: 0;
732 | margin-top: -8px;
733 | position: absolute;
734 | transition: margin 0.25s ease-out 0.25s, transform 0.25s ease-out, background-color 0.25s ease-out;
735 | width: 24px;
736 | }
737 |
738 | .nav-button:after {
739 | background: var(--white);
740 | bottom: 0;
741 | content: "";
742 | display: block;
743 | height: 2px;
744 | left: 0;
745 | margin-bottom: -8px;
746 | position: absolute;
747 | transition: margin 0.25s ease-out 0.25s, transform 0.25s ease-out, background-color 0.25s ease-out;
748 | width: 24px;
749 | }
750 |
751 | .nav-button.close {
752 | height: 0;
753 | }
754 |
755 | .nav-button.close:before {
756 | background-color: var(--red);
757 | margin-top: 0;
758 | opacity: 1;
759 | top: 0;
760 | transform: rotate(45deg);
761 | transform-origin: center;
762 | transition: margin 0.25s ease-out, transform 0.25s ease-out 0.25s, background-color 0.25s ease-out 0.25s;
763 | }
764 |
765 | .nav-button.close:after {
766 | background-color: var(--red);
767 | bottom: -2px;
768 | margin-bottom: 0;
769 | opacity: 1;
770 | transform: rotate(-45deg);
771 | transform-origin: -center;
772 | transition: margin 0.25s ease-out, transform 0.25s ease-out 0.25s, background-color 0.25s ease-out 0.25s;
773 | }
774 |
775 |
776 | /******************************************************************
777 | 13. Z-INDEXES
778 | ******************************************************************/
779 |
780 | .header__nav.active {
781 | z-index: var(--layer4);
782 | }
783 |
784 | .nav-btn-wrap {
785 | z-index: var(--layer5);
786 | }
787 |
788 | .site-header__logo-link {
789 | z-index: var(--layer2);
790 | }
791 |
792 | .site-header__logo-link:after {
793 | z-index: var(--layer1);
794 | }
795 |
796 | .site-header__logo-img {
797 | z-index: var(--layer2);
798 | }
799 |
800 |
801 | /******************************************************************
802 | 14. ANIMATIONS
803 | ******************************************************************/
804 |
805 | @keyframes openLightbox {
806 | 0% {
807 | transform: scale(0.1);
808 | opacity: 0;
809 | }
810 |
811 | 100% {
812 | transform: scale(1);
813 | opacity: 1;
814 | }
815 | }
816 |
817 | @keyframes fadeInMenu {
818 | 0% {
819 | opacity: 0;
820 | }
821 |
822 | 100% {
823 | opacity: 1;
824 | }
825 | }
826 |
827 |
828 | /******************************************************************
829 | 15. MEDIA QUERIES
830 | ******************************************************************/
831 |
832 | /* 15.1. Styles for 768px and larger screen sizes */
833 | @media only screen and (min-width: 768px) {
834 |
835 | /******************************************************************
836 | 15.1.1. MAIN LAYOUT STYLES
837 | ******************************************************************/
838 |
839 | .grid-layout {
840 | display: grid;
841 | grid-template-columns: 1fr 320px;
842 | grid-template-areas:
843 | "header header"
844 | "main sidebar"
845 | "pagenav sidebar"
846 | "footer footer";
847 | }
848 |
849 | .site-header {
850 | grid-area: header;
851 | }
852 |
853 | main {
854 | grid-area: main;
855 | margin: 160px 0 80px 0;
856 | }
857 |
858 | .site-sidebar {
859 | grid-area: sidebar;
860 | }
861 |
862 | .pagination {
863 | grid-area: pagenav;
864 | }
865 |
866 | .site-footer {
867 | grid-area: footer;
868 | }
869 |
870 |
871 | /******************************************************************
872 | 15.1.2. PAGE STYLES
873 | ******************************************************************/
874 |
875 | .page main {
876 | margin: 160px auto 80px auto;
877 | max-width: 50em;
878 | }
879 |
880 |
881 | /******************************************************************
882 | 15.1.3. SIDEBAR STYLES
883 | ******************************************************************/
884 |
885 | .site-sidebar {
886 | border-left: 1px solid var(--pure-black);
887 | margin: 160px 32px 80px 0;
888 | max-width: 25rem;
889 | padding: 0 0 0 32px;
890 | }
891 |
892 | .single-post .site-sidebar,
893 | .page .site-sidebar {
894 | border-left: none;
895 | margin: 0 auto;
896 | max-width: 25em;
897 | padding: 0;
898 | }
899 |
900 | }
901 | /* End of 768px Media Query */
902 |
903 |
904 | /* 15.2. Styles for 1024px and larger screen sizes */
905 | @media only screen and (min-width: 1024px) {
906 |
907 | /******************************************************************
908 | 15.2.1. TYPOGRAPHY
909 | ******************************************************************/
910 |
911 | pre {
912 | max-width: 500px;
913 | }
914 |
915 |
916 | /* # Font styles */
917 | .header__nav a {
918 | font-size: var(--size-400);
919 | }
920 |
921 |
922 | /******************************************************************
923 | 15.2.2. MAIN LAYOUT STYLES
924 | ******************************************************************/
925 |
926 | body:not(.single-post) {
927 | grid-template-columns: 1fr 400px;
928 | }
929 |
930 |
931 | /******************************************************************
932 | 15.2.3. MAIN HEADER STYLES
933 | ******************************************************************/
934 |
935 | .site-header {
936 | display: grid;
937 | grid-template-columns: 1fr 1fr;
938 | grid-template-areas:
939 | "logo nav"
940 | "desc nav";
941 | align-items: center;
942 | justify-content: flex-start;
943 | }
944 |
945 | .site-header__logo-link {
946 | grid-area: logo;
947 | }
948 |
949 | .site-header__desc {
950 | grid-area: desc;
951 | }
952 |
953 | /******************************************************************
954 | 15.2.4. MAIN NAVIGATION STYLES
955 | ******************************************************************/
956 |
957 | .nav-btn-wrap {
958 | display: none;
959 | }
960 |
961 | .header__nav {
962 | align-items: center;
963 | background: var(--pure-black);
964 | display: flex;
965 | grid-area: nav;
966 | height: 2rem;
967 | justify-content: center;
968 | margin: 0 auto;
969 | max-width: 60vw;
970 | padding: 0;
971 | width: calc(70vw - 2.5rem - 200px);
972 | }
973 |
974 | .header__nav > ul {
975 | background-color: transparent;
976 | box-shadow: none;
977 | height: auto;
978 | list-style: none;
979 | margin: 0;
980 | overflow-y: unset;
981 | padding: 0;
982 | position: relative;
983 | transform: translateX(0);
984 | transition: none;
985 | width: 100%;
986 | }
987 |
988 | .header__nav > ul > li {
989 | margin: 0 1rem 0 0;
990 | padding: 0;
991 | }
992 |
993 | .header__nav li {
994 | display: inline-block;
995 | position: relative;
996 | text-align: left; /* Reset text alignment */
997 | }
998 |
999 | .header__nav li:after {
1000 | background: none;
1001 | background-color: var(--white);
1002 | content: "";
1003 | display: block;
1004 | height: 2px;
1005 | margin: 0 auto;
1006 | transition: width 0.5s ease;
1007 | width: 0;
1008 | }
1009 |
1010 | .header__nav li:hover:after {
1011 | width: 100%;
1012 | }
1013 |
1014 | .header__nav li:last-child:after {
1015 | display: block;
1016 | }
1017 |
1018 | .header__nav a {
1019 | color: var(--white);
1020 | }
1021 |
1022 |
1023 | /******************************************************************
1024 | 15.2.5. MAIN CONTENT STYLES
1025 | ******************************************************************/
1026 |
1027 | .single-post main {
1028 | width: 50rem;
1029 | margin: 160px auto 80px auto;
1030 | }
1031 |
1032 | body:not(.single-post) .post-preview__header,
1033 | body:not(.single-post) .post-preview__content,
1034 | body:not(.single-post) .post-preview__footer {
1035 | max-width: 640px;
1036 | }
1037 |
1038 |
1039 | /******************************************************************
1040 | 15.2.6. Z-INDEXES
1041 | ******************************************************************/
1042 |
1043 | .header__nav {
1044 | z-index: var(--layer2);
1045 | }
1046 |
1047 | .header__nav > ul {
1048 | z-index: var(--layer2);
1049 | }
1050 |
1051 | }
1052 | /* End of 1024px Media Query */
--------------------------------------------------------------------------------
/public/style/demo2.css:
--------------------------------------------------------------------------------
1 | /*
2 | Demo: Kaamos Astro - Demo #2
3 | Demo site: https://www.kalervoraitanen.com/kaamos
4 | Author: Kalervo Raitanen
5 | Author site: http://www.kalervoraitanen.com
6 | Description: Minimalist blogging theme for Kaamos Astro Starter Blog.
7 | License: WTFPL License.
8 | License URI: http://sam.zoy.org/wtfpl/
9 | */
10 |
11 |
12 | /*--------------------------------------------------------------
13 | >>> TABLE OF CONTENTS:
14 | ----------------------------------------------------------------
15 | # 1. VARIABLES
16 | # 2. GENERAL STYLES
17 | # 3. TYPOGRAPHY
18 | # 3.1. Font settings
19 | # 3.2. Font styles
20 | # 3.3. Link styles
21 | # 3.4. Paragraph styles
22 | # 3.5. Header styles
23 | # 3.6. Table styles
24 | # 3.7. Definition list styles
25 | # 3.8. UL and OL styles
26 | # 3.9. Other typographic styles
27 | # 4. MAIN HEADER STYLES
28 | # 5. NAVIGATION STYLES
29 | # 6. MAIN CONTENT STYLES
30 | # 7. SINGLE POST STYLES
31 | # 8. PAGE STYLES
32 | # 9. POSTS PAGINATION STYLES
33 | # 10. SIDEBAR STYLES
34 | # 11. FOOTER STYLES
35 | # 12. BUTTONS
36 | # 13. Z-INDEXES
37 | # 14. ANIMATIONS
38 | # 15. MEDIA QUERIES
39 | # 15.1. Styles for 768px and larger screen sizes
40 | # 15.1.1. TYPOGRAPHY
41 | # 15.1.2. MAIN HEADER STYLES
42 | # 15.1.3. NAVIGATION STYLES
43 | # 15.1.4. MAIN CONTENT LAYOUT STYLES
44 | # 15.1.5. SINGLE POST STYLES
45 | # 15.1.6. PAGE STYLES
46 | # 15.1.7. Z-INDEXES
47 | # 15.1.8. SIDEBAR STYLES
48 | # 15.2. Styles for 1024px and larger screen sizes
49 | # 15.2.1. TYPOGRAPHY
50 | # 15.2.2. MAIN LAYOUT STYLES
51 | # 15.2.3. MAIN CONTENT LAYOUT STYLES
52 | # 15.2.4. SINGLE POST STYLES
53 | # 15.2.5. PAGE STYLES
54 | # 15.2.6. SIDEBAR STYLES
55 | # 15.2.7. Z-INDEXES
56 | --------------------------------------------------------------*/
57 |
58 |
59 | /******************************************************************
60 | 1. VARIABLES
61 | ******************************************************************/
62 |
63 | :root {
64 | /* Colors */
65 | --button_bgcolor: #134347;
66 | --button_color: #eeeeee;
67 | --white: #eeeeee;
68 | --black: #111111;
69 | --gray: #555555;
70 | --green: #134347;
71 | --light-gray: #bbbbbb;
72 | --light-green: #bdd6c7;
73 | --site_text_color: #325050;
74 | }
75 |
76 |
77 | /******************************************************************
78 | 2. GENERAL STYLES
79 | ******************************************************************/
80 |
81 | html {
82 | /* Standard version (Firefox only for now) */
83 | scrollbar-color: var(--white) var(--green);
84 | }
85 |
86 | /* For Google Chrome */
87 | html::-webkit-scrollbar {
88 | width: 10px;
89 | height: 10px;
90 | }
91 |
92 | html::-webkit-scrollbar-thumb {
93 | background: var(--green);
94 | }
95 |
96 | html::-webkit-scrollbar-track {
97 | background: var(--white);
98 | }
99 |
100 | body {
101 | color: var(--white);
102 | }
103 |
104 |
105 | /******************************************************************
106 | 3. TYPOGRAPHY
107 | ******************************************************************/
108 |
109 | /* # 3.1. Font settings */
110 |
111 | /* Fluid typography sizes */
112 | :root {
113 | --size-300: clamp(0.7rem, 0.8rem + 0.2vw, 0.9rem);
114 | --size-400: clamp(0.9rem, 0.9rem + 0.24vw, 1rem);
115 | --size-500: clamp(1.09rem, 1rem + 0.47vw, 1.33rem);
116 | --size-600: clamp(1.37rem, 1.21rem + 0.8vw, 1.78rem);
117 | --size-700: clamp(1.71rem, 1.45rem + 1.29vw, 2.37rem);
118 | --size-800: clamp(2.14rem, 1.74rem + 1.99vw, 3.16rem);
119 | --size-900: clamp(2.67rem, 2.07rem + 3vw, 4.21rem);
120 | --size-1000: clamp(3.34rem, 2.45rem + 4.43vw, 5.61rem);
121 |
122 | /* Fonts */
123 | --font-heading: Helvetica, Arial, sans-serif;
124 | --font-main: Georgia, sans-serif;
125 | --font-button: 'Arial Black', sans-serif;
126 | }
127 |
128 |
129 | /* # 3.2. Font styles */
130 | body {
131 | color: var(--site_text_color);
132 | font-family: var(--font-main);
133 | font-size: 100%;
134 | line-height: 1;
135 | position: relative;
136 | }
137 |
138 | .site-header__desc {
139 | font-size: var(--size-600);
140 | }
141 |
142 | .pagination {
143 | font-size: var(--size-500);
144 | }
145 |
146 | .site-sidebar__heading {
147 | font-family: var(--font-main);
148 | font-size: var(--size-600);
149 | }
150 |
151 | .site-sidebar .archives summary {
152 | font-size: var(--size-500);
153 | font-weight: 700;
154 | }
155 |
156 | .site-sidebar__archives__post-date {
157 | font-size: var(--size-300);
158 | }
159 |
160 | .header__nav a {
161 | font-family: var(--font-button);
162 | font-size: var(--size-700);
163 | }
164 |
165 |
166 | /* 3.3. Link styles */
167 | a {
168 | color: var(--green);
169 | font-weight: 700;
170 | text-decoration: underline;
171 | }
172 |
173 | /* 3.4. Paragraph styles */
174 | p:first-child {
175 | margin-top: 0;
176 | }
177 |
178 | p,
179 | textarea,
180 | figcaption {
181 | font-size: var(--size-400);
182 | line-height: 1.8;
183 | }
184 |
185 | h1 + p,
186 | h2 + p,
187 | h3 + p,
188 | h4 + p,
189 | h5 + p,
190 | h6 + p {
191 | margin-top: 0;
192 | }
193 |
194 |
195 | /* # 3.5. Header styles */
196 | h1,
197 | h2,
198 | h3,
199 | h4,
200 | h5,
201 | h6 {
202 | font-family: var(--font-heading);
203 | font-weight: 700;
204 | line-height: 1;
205 | margin: 0;
206 | max-width: 100%;
207 | }
208 |
209 | h1:first-child,
210 | h2:first-child,
211 | h3:first-child,
212 | h4:first-child,
213 | h5:first-child,
214 | h6:first-child {
215 | padding-top: 0;
216 | }
217 |
218 | h1 {
219 | font-size: var(--size-800);
220 | padding: 0.8em 0 0.6em 0;
221 | }
222 |
223 | h2 {
224 | font-size: var(--size-700);
225 | padding: 1em 0 0.6em 0;
226 | }
227 |
228 | h3 {
229 | font-size: var(--size-600);
230 | padding: 1em 0 0.6em 0;
231 | }
232 |
233 | h4 {
234 | font-size: var(--size-500);
235 | padding: 1em 0 0.6em 0;
236 | }
237 |
238 | h5 {
239 | font-size: var(--size-500);
240 | padding: 1em 0 0.6em 0;
241 | }
242 |
243 | h6 {
244 | font-size: var(--size-400);
245 | padding: 1em 0 0.6em 0;
246 | }
247 |
248 |
249 | /* # 3.6. Table styles */
250 | table {
251 | border-collapse: collapse;
252 | }
253 |
254 | table tr {
255 | border-bottom: 1px solid var(--light-gray);
256 | }
257 |
258 | table tr:first-child {
259 | border-top: 1px solid var(--light-gray);
260 | }
261 |
262 | table th,
263 | table td {
264 | border-left: 1px solid var(--light-gray);
265 | border-right: 1px solid var(--light-gray);
266 | padding: 0.5em;
267 | }
268 |
269 |
270 | /* # 3.7. Definition list styles */
271 | dl {
272 | line-height: 1.8;
273 | }
274 |
275 | dt {
276 | font-weight: 700;
277 | }
278 |
279 | dd {
280 | margin: 0.25em 0 1em 1em;
281 | }
282 |
283 |
284 | /* # 3.8. UL and OL styles */
285 | ul,
286 | ol {
287 | line-height: 1.5;
288 | list-style-position: inside;
289 | margin: 1em 0;
290 | }
291 |
292 | li {
293 | margin: 0 0 0.5em 0;
294 | }
295 |
296 | li:last-child {
297 | margin: 0;
298 | }
299 |
300 |
301 | /* # 3.9. Other typographic styles */
302 | hr {
303 | color: var(--gray);
304 | }
305 |
306 | dfn,
307 | cite,
308 | em,
309 | i {
310 | font-style: italic;
311 | }
312 |
313 | blockquote {
314 | background: var(--light-gray);
315 | border-left: 6px solid var(--gray);
316 | color: var(--black);
317 | font-style: italic;
318 | margin: 0;
319 | overflow: hidden;
320 | quotes: "" "";
321 | padding: 1em 1em 1em 2em;
322 | }
323 |
324 | blockquote cite {
325 | display: block;
326 | font-weight: 700;
327 | margin-top: 0.5em;
328 | }
329 |
330 | blockquote:before,
331 | blockquote:after {
332 | content: "";
333 | }
334 |
335 | address {
336 | margin: 0 0 1.5em;
337 | }
338 |
339 | pre {
340 | margin: 1em 0;
341 | max-width: 300px;
342 | overflow: auto;
343 | padding: 0 0 0 1em;
344 | }
345 |
346 | code,
347 | kbd,
348 | tt,
349 | var {
350 | font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
351 | }
352 |
353 | code {
354 | background: #1b1b1b;
355 | color: var(--white);
356 | display: block;
357 | margin: 1em 0;
358 | padding: 0.5em 1em;
359 | }
360 |
361 | abbr,
362 | acronym {
363 | border-bottom: 1px dotted var(--gray);
364 | cursor: help;
365 | }
366 |
367 | mark,
368 | ins {
369 | text-decoration: none;
370 | }
371 |
372 | big {
373 | font-size: 125%;
374 | }
375 |
376 | q {
377 | quotes: "“" "”" "‘" "’";
378 | }
379 |
380 |
381 | /******************************************************************
382 | 4. MAIN HEADER STYLES
383 | ******************************************************************/
384 |
385 | .site-header {
386 | --c : var(--green);
387 | --t : transparent;
388 | align-items: center;
389 | background-image:
390 | repeating-linear-gradient(45deg, var(--c) 0, var(--c) 20px, var(--t) 20px, var(--t) 32px, var(--c) 32px, var(--c) 44px, var(--t) 44px, var(--t) 56px, var(--c) 56px, var(--c) 68px, var(--t) 68px, var(--t) 80px, var(--c) 0),
391 | repeating-linear-gradient(-45deg, var(--c) 0, var(--c) 20px, var(--t) 20px, var(--t) 32px, var(--c) 32px, var(--c) 44px, var(--t) 44px, var(--t) 56px, var(--c) 56px, var(--c) 68px, var(--t) 68px, var(--t) 80px, var(--c) 0),
392 | linear-gradient(to bottom right, #064f5e, #275f5d);
393 | display: flex;
394 | flex-flow: column;
395 | padding: 6rem 4vw 2rem 4vw;
396 | }
397 |
398 | .site-title a {
399 | text-decoration: none;
400 | }
401 |
402 | .site-header__desc {
403 | color: var(--light-gray);
404 | font-size: var(--size-500);
405 | line-height: 1.5;
406 | margin: 1rem 0;
407 | max-width: 60vw;
408 | }
409 |
410 | .site-header__logo-link {
411 | max-width: 70vw;
412 | }
413 |
414 | .nav-btn-wrap {
415 | position: fixed;
416 | top: 2vw;
417 | right: 2vw;
418 | background: var(--green);
419 | padding: calc(0.5rem + 12px) 0.5rem;
420 | }
421 |
422 |
423 | /******************************************************************
424 | 5. NAVIGATION STYLES
425 | ******************************************************************/
426 |
427 | .header__nav {
428 | display: none;
429 | }
430 |
431 | .header__nav.active {
432 | align-items: center;
433 | -webkit-animation: openLightbox .5s forwards ease-out;
434 | animation: openLightbox .5s forwards ease-out;
435 | background: rgba(0,0,0,0.9);
436 | bottom: 0;
437 | display: grid;
438 | justify-content: center;
439 | left: 0;
440 | opacity: 0;
441 | overflow-y: scroll;
442 | padding: 2rem 0;
443 | position: fixed;
444 | right: 0;
445 | top: 0;
446 | transform: scale(0.1);
447 | }
448 |
449 | .primary-menu {
450 | list-style-type: none;
451 | padding: 0;
452 | width: 70vw;
453 | }
454 |
455 | .header__nav.active .primary-menu {
456 | animation: fadeInMenu .5s forwards ease-out 0.5s;
457 | -webkit-animation: fadeInMenu .5s forwards ease-out 0.5s;
458 | opacity: 0;
459 | }
460 |
461 | .primary-menu__item {
462 | position: relative;
463 | padding: 0 0 4px 0;
464 | }
465 |
466 | .primary-menu__item:after {
467 | content: "";
468 | display: block;
469 | width: 100%;
470 | height: 1px;
471 | background: var(--light-gray);
472 | }
473 |
474 | .primary-menu__item:last-child:after {
475 | display: none;
476 | }
477 |
478 | .primary-menu__item a {
479 | color: var(--white);
480 | font-family: var(--font-button);
481 | font-size: var(--size-600);
482 | text-decoration: none;
483 | text-transform: uppercase;
484 | }
485 |
486 |
487 | /******************************************************************
488 | 6. MAIN CONTENT STYLES
489 | ******************************************************************/
490 |
491 | .post-preview {
492 | margin: 0;
493 | padding: 6vw;
494 | }
495 |
496 | .post-preview:nth-child(odd) {
497 | background: linear-gradient(90deg, var(--white) 0%, #dddddd 100%);
498 | }
499 |
500 | .post-preview:nth-child(even) {
501 | background:
502 | radial-gradient(var(--light-green) 3px, transparent 5px, var(--light-green) 7px, transparent 9px, var(--light-green) 11px, transparent 13px, var(--light-green) 15px, transparent 17px, var(--light-green) 19px, transparent 21px, var(--light-green) 23px, transparent 25px, var(--light-green) 27px, transparent 29px, var(--light-green) 31px, transparent 33px);
503 | background-color: var(--white);
504 | background-size: 30px 30px;
505 | }
506 |
507 | .post-preview__header {
508 | display: flex;
509 | flex-flow: column;
510 | }
511 |
512 | .post__title {
513 | order: 1;
514 | }
515 |
516 | .post__date {
517 | font-weight: var(--size-300);
518 | font-weight: 700;
519 | line-height: 1;
520 | margin: 0 0 1rem 0;
521 | order: 0;
522 | }
523 |
524 | .post__feature-img {
525 | display: block;
526 | margin: 1rem 0 1.5rem 0;
527 | order: 2;
528 | position: relative;
529 | }
530 |
531 | .post-preview__footer {
532 | margin: 2rem 0 0 0;
533 | }
534 |
535 | .post__footer-categories {
536 | display: flex;
537 | flex-wrap: wrap;
538 | list-style-type: none;
539 | margin: 0;
540 | padding: 0;
541 | }
542 |
543 | .post__footer-categories li {
544 | margin: 0 1rem 0 0;
545 | }
546 |
547 | .post__footer-categories a {
548 | padding: 0 0 0 1rem;
549 | position: relative;
550 | }
551 |
552 | .post__footer-categories a:before {
553 | content: "#";
554 | left: 0;
555 | position: absolute;
556 | }
557 |
558 |
559 | /******************************************************************
560 | 7. SINGLE POST STYLES
561 | ******************************************************************/
562 |
563 | .single-post main {
564 | background-color: var(--light-green);
565 | }
566 |
567 | .post {
568 | padding: 1.5rem;
569 | position: relative;
570 | }
571 |
572 | .post .post__header {
573 | display: flex;
574 | flex-flow: column;
575 | }
576 |
577 | .post .post__title {
578 | margin: 0 0 0.5rem 0;
579 | padding: 0;
580 | order: 1;
581 | }
582 |
583 | .post .post__title:after {
584 | background: var(--gray);
585 | content: "";
586 | display: block;
587 | height: 1px;
588 | margin: 0.75rem 0 0 0;
589 | width: 100%;
590 | }
591 |
592 | .single-post .post__feature-img {
593 | order: 2;
594 | }
595 |
596 | .post .post__date {
597 | font-weight: 700;
598 | order: 0;
599 | }
600 |
601 | .post .post__footer {
602 | margin: 2rem 0 0 0;
603 | }
604 |
605 |
606 | /******************************************************************
607 | 8. PAGE STYLES
608 | ******************************************************************/
609 |
610 | .page main {
611 | background-color: var(--white);
612 | }
613 |
614 | .page__content {
615 | padding: 2rem;
616 | }
617 |
618 | .page h1 {
619 | margin: 0 0 0.5rem 0;
620 | }
621 |
622 | .page h1:after {
623 | background: var(--gray);
624 | content: "";
625 | display: block;
626 | height: 1px;
627 | margin: 0.75rem 0 0 0;
628 | width: 100%;
629 | }
630 |
631 |
632 | /******************************************************************
633 | 9. POSTS PAGINATION STYLES
634 | ******************************************************************/
635 |
636 |
637 | /******************************************************************
638 | 10. SIDEBAR STYLES
639 | ******************************************************************/
640 |
641 | .site-sidebar {
642 | background-color: rgba(199, 205, 202, 0.8);
643 | display: flex;
644 | flex-flow: column;
645 | padding: 1.5rem;
646 | }
647 |
648 | .site-sidebar__section {
649 | padding: 0;
650 | margin: 0 0 3rem 0;
651 | }
652 |
653 | .site-sidebar ul {
654 | margin: 0;
655 | padding: 0;
656 | list-style-position: inside;
657 | list-style-type: disc;
658 | }
659 |
660 | .site-sidebar li {
661 | margin: 0 0 0.5rem 0;
662 | }
663 |
664 | .site-sidebar li:last-child {
665 | margin: 0;
666 | }
667 |
668 | .site-sidebar__heading {
669 | font-size: 1.5rem;
670 | margin: 0 0 0.25rem 0;
671 | padding: 0 0 0.25rem 0;
672 | }
673 |
674 | .site-sidebar__heading:after {
675 | background: var(--light-gray);
676 | content: "";
677 | display: block;
678 | height: 1px;
679 | margin: 6px 0 0 0;
680 | width: 100%;
681 | }
682 |
683 | .site-sidebar .archives details {
684 | margin: 0 0 0.5rem 0;
685 | }
686 |
687 | .site-sidebar .archives ul {
688 | margin: 0 0 0 1rem;
689 | }
690 |
691 | .site-sidebar__archives__post {
692 | margin: 0 0 0.5rem 0;
693 | }
694 |
695 | .site-sidebar__archives__post-date {
696 | display: block;
697 | padding: 0 0 0 1rem;
698 | }
699 |
700 |
701 | /******************************************************************
702 | 11. FOOTER STYLES
703 | ******************************************************************/
704 |
705 | .site-footer {
706 | background: var(--green);
707 | padding: 1rem 3vw;
708 | }
709 |
710 | .site-footer p {
711 | color: var(--light-gray);
712 | margin: 0;
713 | text-align: center;
714 | }
715 |
716 | .site-footer a {
717 | color: var(--light-gray);
718 | }
719 |
720 |
721 | /******************************************************************
722 | 12. BUTTONS
723 | ******************************************************************/
724 |
725 | /* Read More Button */
726 | .read-more {
727 | background-color: var(--button_bgcolor);
728 | border: none;
729 | box-sizing: border-box;
730 | color: var(--button_color);
731 | cursor: pointer;
732 | font-family: var(--font-button);
733 | outline: 0;
734 | padding: 0.5rem;
735 | position: relative;
736 | text-decoration: none;
737 | transition: all 0.5s ease-out;
738 | }
739 |
740 | /* Navigation toggle button */
741 | .nav-button {
742 | background: var(--white);
743 | border: none;
744 | border-radius: 0;
745 | cursor: pointer;
746 | display: block;
747 | height: 4px;
748 | margin: 0;
749 | padding: 0;
750 | position: relative;
751 | text-indent: -9999px;
752 | transition: all 0.25s ease-out;
753 | width: 30px;
754 | }
755 |
756 | .nav-button:before {
757 | background: var(--white);
758 | content: "";
759 | display: block;
760 | height: 4px;
761 | left: 0;
762 | margin-top: -10px;
763 | position: absolute;
764 | transition: margin 0.25s ease-out 0.25s, transform 0.25s ease-out, background-color 0.25s ease-out;
765 | width: 30px;
766 | }
767 |
768 | .nav-button:after {
769 | background: var(--white);
770 | bottom: 0;
771 | content: "";
772 | display: block;
773 | height: 4px;
774 | left: 0;
775 | margin-bottom: -10px;
776 | position: absolute;
777 | transition: margin 0.25s ease-out 0.25s, transform 0.25s ease-out, background-color 0.25s ease-out;
778 | width: 30px;
779 | }
780 |
781 | .nav-button.close {
782 | height: 0;
783 | }
784 |
785 | .nav-button.close:before {
786 | background-color: red;
787 | margin-top: 0;
788 | opacity: 1;
789 | top: 0;
790 | transform-origin: center;
791 | transform: rotate(45deg);
792 | transition: margin 0.25s ease-out, transform 0.25s ease-out 0.25s, background-color 0.25s ease-out 0.25s;
793 | }
794 |
795 | .nav-button.close:after {
796 | background-color: red;
797 | bottom: -4px;
798 | margin-bottom: 0;
799 | opacity: 1;
800 | transform: rotate(-45deg);
801 | transform-origin: -center;
802 | transition: margin 0.25s ease-out, transform 0.25s ease-out 0.25s, background-color 0.25s ease-out 0.25s;
803 | }
804 |
805 |
806 | /******************************************************************
807 | 13. Z-INDEXES
808 | ******************************************************************/
809 |
810 | .header__nav.active {
811 | z-index: 4;
812 | }
813 |
814 | .nav-btn-wrap {
815 | z-index: 5;
816 | }
817 |
818 |
819 | /******************************************************************
820 | 14. ANIMATIONS
821 | ******************************************************************/
822 |
823 | @-webkit-keyframes openLightbox {
824 | 0% {
825 | transform: scale(0.1);
826 | opacity: 0;
827 | }
828 |
829 | 100% {
830 | transform: scale(1);
831 | opacity: 1;
832 | }
833 | }
834 |
835 |
836 | @keyframes openLightbox {
837 | 0% {
838 | transform: scale(0.1);
839 | opacity: 0;
840 | }
841 |
842 | 100% {
843 | transform: scale(1);
844 | opacity: 1;
845 | }
846 | }
847 |
848 | @-webkit-keyframes fadeInMenu {
849 | 0% {
850 | opacity: 0;
851 | }
852 |
853 | 100% {
854 | opacity: 1;
855 | }
856 | }
857 |
858 |
859 | @keyframes fadeInMenu {
860 | 0% {
861 | opacity: 0;
862 | }
863 |
864 | 100% {
865 | opacity: 1;
866 | }
867 | }
868 |
869 |
870 | /******************************************************************
871 | 15. MEDIA QUERIES
872 | ******************************************************************/
873 |
874 | /* 15.1. Styles for 768px and larger screen sizes */
875 | @media only screen and (min-width: 768px) {
876 |
877 | /******************************************************************
878 | 15.1.1. TYPOGRAPHY
879 | ******************************************************************/
880 |
881 | pre {
882 | max-width: 480px;
883 | }
884 |
885 |
886 | /******************************************************************
887 | 15.1.2. MAIN HEADER STYLES
888 | ******************************************************************/
889 |
890 | .site-header {
891 | display: flex;
892 | flex-flow: column;
893 | margin: 0;
894 | padding: 100px 0 2rem 0;
895 | }
896 |
897 | .site-header__desc {
898 | max-width: unset;
899 | }
900 |
901 | .site-header__logo-link {
902 | margin: 0 auto;
903 | display: inline-block;
904 | width: 320px;
905 | }
906 |
907 | .nav-btn-wrap {
908 | display: none;
909 | }
910 |
911 |
912 | /******************************************************************
913 | 15.1.3. NAVIGATION STYLES
914 | ******************************************************************/
915 |
916 | .nav-button {
917 | display: none;
918 | }
919 |
920 | .header__nav {
921 | align-items: center;
922 | background: var(--green);
923 | display: flex;
924 | grid-area: nav;
925 | justify-content: center;
926 | height: 3rem;
927 | left: 0;
928 | padding: 0;
929 | position: fixed;
930 | top: 0;
931 | width: 100vw;
932 | }
933 |
934 | .primary-menu {
935 | background-color: transparent;
936 | display: flex;
937 | list-style: none;
938 | margin: 0;
939 | overflow-y: unset;
940 | padding: 0;
941 | text-align: center;
942 | transition: none;
943 | width: auto;
944 | }
945 |
946 | .primary-menu__item {
947 | margin: 0 1rem 0 0;
948 | padding: 0;
949 | position: relative;
950 | }
951 |
952 | .primary-menu__item:after {
953 | background: none;
954 | background-color: var(--white);
955 | content: "";
956 | display: block;
957 | height: 2px;
958 | margin: 0 auto;
959 | transition: width 0.5s ease;
960 | width: 0;
961 | }
962 |
963 | .primary-menu__item:hover:after {
964 | width: 100%;
965 | }
966 |
967 | .primary-menu__item:last-child:after {
968 | display: block;
969 | }
970 |
971 | .primary-menu__item a {
972 | color: var(--white);
973 | font-size: 1rem;
974 | }
975 |
976 |
977 | /******************************************************************
978 | 15.1.4. MAIN CONTENT LAYOUT STYLES
979 | ******************************************************************/
980 |
981 | main {
982 | margin: 0;
983 | }
984 |
985 | .post-preview__header,
986 | .post-preview__content,
987 | .post-preview__footer {
988 | max-width: 69ch;
989 | }
990 |
991 |
992 | /******************************************************************
993 | 15.1.5. SINGLE POST STYLES
994 | ******************************************************************/
995 |
996 | .single-post main {
997 | align-self: start;
998 | }
999 |
1000 | .single-post .post__header {
1001 | display: flex;
1002 | flex-flow: column;
1003 | margin: 0 0 1rem 0;
1004 | position: relative;
1005 | }
1006 |
1007 | .single-post .post__title {
1008 | margin: 1rem 0;
1009 | order: 1;
1010 | }
1011 |
1012 | .single-post .post__date {
1013 | order: 0;
1014 | }
1015 |
1016 | .single-post .post__date {
1017 | font-size: var(--size-500);
1018 | margin: 0;
1019 | }
1020 |
1021 | .single-post .post__header,
1022 | .single-post .post__content,
1023 | .single-post .post__footer {
1024 | max-width: 69ch;
1025 | }
1026 |
1027 |
1028 | /******************************************************************
1029 | 15.1.6. PAGE STYLES
1030 | ******************************************************************/
1031 |
1032 | .page main {
1033 | align-self: start;
1034 | }
1035 |
1036 | .page__content {
1037 | max-width: 69ch;
1038 | }
1039 |
1040 | .page__content h1:after {
1041 | margin: 0.5rem 0 0 0;
1042 | }
1043 |
1044 |
1045 | /******************************************************************
1046 | 15.1.7. SIDEBAR STYLES
1047 | ******************************************************************/
1048 |
1049 | .site-sidebar {
1050 | flex-flow: row;
1051 | flex-wrap: wrap;
1052 | padding: 6vw;
1053 | }
1054 |
1055 | .site-sidebar__section {
1056 | padding: 0 0 0 1.5rem;
1057 | width: 50%;
1058 | }
1059 |
1060 | .site-sidebar__section:nth-child(odd) {
1061 | padding: 0 1.5rem 0 0;
1062 | }
1063 |
1064 | .site-sidebar__section li {
1065 | margin-right: 3rem;
1066 | }
1067 |
1068 | .site-sidebar__section li:first-child {
1069 | margin-top: 0;
1070 | }
1071 |
1072 |
1073 | /******************************************************************
1074 | 15.1.8. Z-INDEXES
1075 | ******************************************************************/
1076 |
1077 | .header__nav {
1078 | z-index: 3;
1079 | }
1080 | }
1081 | /* End of 768px Media Query */
1082 |
1083 |
1084 | /* 15.2. Styles for 1024px and larger screen sizes */
1085 | @media only screen and (min-width: 1024px) {
1086 |
1087 | /******************************************************************
1088 | 15.2.1. TYPOGRAPHY
1089 | ******************************************************************/
1090 |
1091 | pre {
1092 | max-width: 69ch;
1093 | }
1094 |
1095 |
1096 | /******************************************************************
1097 | 15.2.2. MAIN LAYOUT STYLES
1098 | ******************************************************************/
1099 |
1100 | body {
1101 | display: grid;
1102 | grid-template-columns: 3fr 320px;
1103 | grid-template-areas:
1104 | "header header"
1105 | "main sidebar"
1106 | "pagenavi ..."
1107 | "footer footer";
1108 | }
1109 |
1110 | .site-header {
1111 | grid-area: header;
1112 | }
1113 |
1114 | main {
1115 | grid-area: main;
1116 | margin: 0;
1117 | }
1118 |
1119 | .site-sidebar {
1120 | grid-area: sidebar;
1121 | }
1122 |
1123 | .site-footer {
1124 | grid-area: footer;
1125 | }
1126 |
1127 |
1128 | /******************************************************************
1129 | 15.2.3. MAIN CONTENT LAYOUT STYLES
1130 | ******************************************************************/
1131 |
1132 | .post-preview {
1133 | position: relative;
1134 | }
1135 |
1136 | .post-preview:nth-child(odd):after {
1137 | background-color: #dddddd;
1138 | bottom: 0;
1139 | content: "";
1140 | display: block;
1141 | position: absolute;
1142 | right: -320px;
1143 | top: 0;
1144 | width: 320px;
1145 | }
1146 |
1147 | .post-preview:nth-child(even):after {
1148 | background:
1149 | radial-gradient(var(--light-green) 3px, transparent 5px, var(--light-green) 7px, transparent 9px, var(--light-green) 11px, transparent 13px, var(--light-green) 15px, transparent 17px, var(--light-green) 19px, transparent 21px, var(--light-green) 23px, transparent 25px, var(--light-green) 27px, transparent 29px, var(--light-green) 31px, transparent 33px);
1150 | background-color: var(--green);
1151 | background-size: 30px 30px;
1152 | bottom: 0;
1153 | content: "";
1154 | display: block;
1155 | position: absolute;
1156 | right: -320px;
1157 | top: 0;
1158 | width: 320px;
1159 | }
1160 |
1161 |
1162 | /******************************************************************
1163 | 15.2.4. SINGLE POST STYLES
1164 | ******************************************************************/
1165 |
1166 | .single-post main {
1167 | margin: 0;
1168 | padding: 4rem;
1169 | }
1170 |
1171 |
1172 | /******************************************************************
1173 | 15.2.5. PAGE STYLES
1174 | ******************************************************************/
1175 |
1176 | .page main {
1177 | margin: 0;
1178 | padding: 4rem;
1179 | }
1180 |
1181 | .page__content {
1182 | padding: 1.5rem;
1183 | }
1184 |
1185 | /******************************************************************
1186 | 15.2.6. SIDEBAR STYLES
1187 | ******************************************************************/
1188 |
1189 | .site-sidebar {
1190 | flex-flow: column;
1191 | margin: 0;
1192 | padding: 2rem;
1193 | position: relative;
1194 | }
1195 |
1196 | .site-sidebar__section {
1197 | padding: 0;
1198 | width: auto;
1199 | }
1200 |
1201 | .site-sidebar__section:nth-child(odd) {
1202 | padding: 0;
1203 | }
1204 |
1205 |
1206 | /******************************************************************
1207 | 15.2.7. Z-INDEXES
1208 | ******************************************************************/
1209 |
1210 | .post-preview {
1211 | z-index: 1;
1212 | }
1213 |
1214 | .site-sidebar {
1215 | z-index: 2;
1216 | }
1217 |
1218 | }
1219 | /* End of 1024px Media Query */
--------------------------------------------------------------------------------
/public/style/demo3.css:
--------------------------------------------------------------------------------
1 | /*
2 | Demo: Kaamos Astro - Demo #3
3 | Demo site: https://www.kalervoraitanen.com/demo3
4 | Author: Kalervo Raitanen
5 | Author site: http://www.kalervoraitanen.com
6 | Description: Minimalist blogging theme for Kaamos Astro Starter Blog.
7 | License: WTFPL License.
8 | License URI: http://sam.zoy.org/wtfpl/
9 | */
10 |
11 |
12 | /*--------------------------------------------------------------
13 | >>> TABLE OF CONTENTS:
14 | ----------------------------------------------------------------
15 | # 1. VARIABLES
16 | # 2. GENERAL STYLES
17 | # 3. TYPOGRAPHY
18 | # 3.1. Font settings
19 | # 3.2. Font styles
20 | # 3.3. Link styles
21 | # 3.4. Paragraph styles
22 | # 3.5. Header styles
23 | # 3.6. Table styles
24 | # 3.7. Definition list styles
25 | # 3.8. UL and OL styles
26 | # 3.9. Other typographic styles
27 | # 4. MAIN HEADER STYLES
28 | # 5. NAVIGATION STYLES
29 | # 6. MAIN CONTENT LAYOUT STYLES
30 | # 7. SINGLE POST STYLES
31 | # 8. PAGE STYLES
32 | # 9. SIDEBAR STYLES
33 | # 10. FOOTER STYLES
34 | # 11. BUTTONS
35 | # 12. MEDIA QUERIES
36 | # 12.1. Styles for 768px and larger screen sizes
37 | # 12.1.1. TYPOGRAPHY
38 | # 12.1.2. MAIN HEADER STYLES
39 | # 12.1.3. NAVIGATION STYLES
40 | # 12.1.4. MAIN CONTENT LAYOUT STYLES
41 | # 12.1.5. SINGLE POST STYLES
42 | # 12.1.6. PAGE STYLES
43 | # 12.1.7. SIDEBAR STYLES
44 | # 12.2. Styles for 1024px and larger screen sizes
45 | # 12.2.1. TYPOGRAPHY
46 | # 12.2.2. MAIN LAYOUT STYLES
47 | # 12.2.3. MAIN HEADER STYLES
48 | # 12.2.4. SIDEBAR STYLES
49 | --------------------------------------------------------------*/
50 |
51 |
52 | /******************************************************************
53 | 1. VARIABLES
54 | ******************************************************************/
55 |
56 | :root {
57 | /* Colors */
58 | --white: #eeeeee;
59 | --black: #222222;
60 | --gray: #555555;
61 | --light-gray: #cccccc;
62 | --orange: #fc6f38;
63 | --dark-orange: #ff5410;
64 | --dark-blue: #17102b;
65 | --sidebar_bgcolor: #d3d3d3;
66 | }
67 |
68 |
69 | /******************************************************************
70 | 2. GENERAL STYLES
71 | ******************************************************************/
72 |
73 | html {
74 | background: var(--black);
75 | background: linear-gradient(135deg, var(--black) 0%,#1e3b51 100%);
76 | }
77 |
78 | /* For Google Chrome */
79 | html::-webkit-scrollbar {
80 | width: 10px;
81 | height: 10px;
82 | }
83 |
84 | html::-webkit-scrollbar-thumb {
85 | background: var(--dark-orange);
86 | }
87 |
88 | html::-webkit-scrollbar-track {
89 | background: var(--white);
90 | }
91 |
92 | body {
93 | position: relative;
94 | }
95 |
96 |
97 | /******************************************************************
98 | 3. TYPOGRAPHY
99 | ******************************************************************/
100 |
101 | /* # 3.1. Font settings */
102 |
103 | /* Fluid typography sizes */
104 | :root {
105 | --size-300: clamp(0.7rem, 0.8rem + 0.2vw, 0.9rem);
106 | --size-400: clamp(0.9rem, 0.9rem + 0.24vw, 1rem);
107 | --size-500: clamp(1.09rem, 1rem + 0.47vw, 1.33rem);
108 | --size-600: clamp(1.37rem, 1.21rem + 0.8vw, 1.78rem);
109 | --size-700: clamp(1.71rem, 1.45rem + 1.29vw, 2.37rem);
110 | --size-800: clamp(2.14rem, 1.74rem + 1.99vw, 3.16rem);
111 | --size-900: clamp(2.67rem, 2.07rem + 3vw, 4.21rem);
112 | --size-1000: clamp(3.34rem, 2.45rem + 4.43vw, 5.61rem);
113 |
114 | /* Fonts */
115 | --font-heading: Georgia, serif;
116 | --font-main: Georgia, serif;
117 | --font-button: 'Arial Black', sans-serif;
118 | }
119 |
120 |
121 | /* # 3.2. Font styles */
122 | body {
123 | color: var(--white);
124 | font-family: var(--font-main);
125 | font-size: 100%;
126 | font-weight: 300;
127 | line-height: 1;
128 | }
129 |
130 | .site-header__desc {
131 | font-size: var(--size-600);
132 | }
133 |
134 | .pagination {
135 | font-size: var(--size-500);
136 | }
137 |
138 | .site-sidebar__heading {
139 | font-family: var(--font-main);
140 | font-size: var(--size-600);
141 | }
142 |
143 | .site-sidebar .archives summary {
144 | font-size: var(--size-500);
145 | font-weight: 700;
146 | }
147 |
148 | .site-sidebar__archives__post-date {
149 | font-size: var(--size-300);
150 | }
151 |
152 | .header__nav a {
153 | font-family: var(--font-button);
154 | font-size: var(--size-600);
155 | }
156 |
157 | .post-preview .post__date{
158 | font-size: var(--size-300);
159 | font-weight: 700;
160 | }
161 |
162 |
163 | /* 3.3. Link styles */
164 | a {
165 | color: var(--orange);
166 | font-weight: 700;
167 | text-decoration: underline;
168 | }
169 |
170 |
171 | /* 3.4. Paragraph styles */
172 | p:first-child {
173 | margin-top: 0;
174 | }
175 |
176 | p,
177 | textarea,
178 | figcaption {
179 | font-size: var(--size-400);
180 | line-height: 1.8;
181 | }
182 |
183 | h1 + p,
184 | h2 + p,
185 | h3 + p,
186 | h4 + p,
187 | h5 + p,
188 | h6 + p {
189 | margin-top: 0;
190 | }
191 |
192 |
193 | /* # 3.5. Header styles */
194 | h1,
195 | h2,
196 | h3,
197 | h4,
198 | h5,
199 | h6 {
200 | font-family: var(--font-heading);
201 | font-weight: 700;
202 | line-height: 1;
203 | margin: 0;
204 | max-width: 100%;
205 | }
206 |
207 | h1:first-child,
208 | h2:first-child,
209 | h3:first-child,
210 | h4:first-child,
211 | h5:first-child,
212 | h6:first-child {
213 | padding-top: 0;
214 | }
215 |
216 | h1 {
217 | font-size: var(--size-800);
218 | padding: 0.8em 0 0.6em 0;
219 | }
220 |
221 | h2 {
222 | font-size: var(--size-700);
223 | padding: 1em 0 0.6em 0;
224 | }
225 |
226 | h3 {
227 | font-size: var(--size-600);
228 | padding: 1em 0 0.6em 0;
229 | }
230 |
231 | h4 {
232 | font-size: var(--size-500);
233 | padding: 1em 0 0.6em 0;
234 | }
235 |
236 | h5 {
237 | font-size: var(--size-500);
238 | padding: 1em 0 0.6em 0;
239 | }
240 |
241 | h6 {
242 | font-size: var(--size-400);
243 | padding: 1em 0 0.6em 0;
244 | }
245 |
246 |
247 | /* # 3.6. Table styles */
248 | table {
249 | border-collapse: collapse;
250 | }
251 |
252 | table tr {
253 | border-bottom: 1px solid var(--light-gray);
254 | }
255 |
256 | table tr:first-child {
257 | border-top: 1px solid var(--light-gray);
258 | }
259 |
260 | table th,
261 | table td {
262 | border-left: 1px solid var(--light-gray);
263 | border-right: 1px solid var(--light-gray);
264 | padding: 0.5em;
265 | }
266 |
267 |
268 | /* # 3.7. Definition list styles */
269 | dl {
270 | line-height: 1.8;
271 | }
272 |
273 | dt {
274 | font-weight: 700;
275 | }
276 |
277 | dd {
278 | margin: 0.25em 0 1em 1em;
279 | }
280 |
281 |
282 | /* # 3.8. UL and OL styles */
283 | ul,
284 | ol {
285 | line-height: 1.5;
286 | list-style-position: inside;
287 | margin: 1em 0;
288 | }
289 |
290 | li {
291 | margin: 0 0 0.5em 0;
292 | }
293 |
294 | li:last-child {
295 | margin: 0;
296 | }
297 |
298 |
299 | /* # 3.9. Other typographic styles */
300 | hr {
301 | color: var(--gray);
302 | }
303 |
304 | dfn,
305 | cite,
306 | em,
307 | i {
308 | font-style: italic;
309 | }
310 |
311 | blockquote {
312 | background: var(--light-gray);
313 | border-left: 6px solid var(--gray);
314 | color: var(--black);
315 | font-style: italic;
316 | margin: 0;
317 | overflow: hidden;
318 | quotes: "" "";
319 | padding: 1em 1em 1em 2em;
320 | }
321 |
322 | blockquote cite {
323 | display: block;
324 | font-weight: 700;
325 | margin-top: 0.5em;
326 | }
327 |
328 | blockquote:before,
329 | blockquote:after {
330 | content: "";
331 | }
332 |
333 | address {
334 | margin: 0 0 1.5em;
335 | }
336 |
337 | pre {
338 | margin: 1em 0;
339 | max-width: 300px;
340 | overflow: auto;
341 | padding: 0 0 0 1em;
342 | }
343 |
344 | code,
345 | kbd,
346 | tt,
347 | var {
348 | font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
349 | }
350 |
351 | code {
352 | background: #1b1b1b;
353 | color: var(--white);
354 | display: block;
355 | margin: 1em 0;
356 | padding: 0.5em 1em;
357 | }
358 |
359 | abbr,
360 | acronym {
361 | border-bottom: 1px dotted var(--gray);
362 | cursor: help;
363 | }
364 |
365 | mark,
366 | ins {
367 | text-decoration: none;
368 | }
369 |
370 | big {
371 | font-size: 125%;
372 | }
373 |
374 | q {
375 | quotes: "“" "”" "‘" "
376 | }
377 |
378 |
379 | /******************************************************************
380 | 4. MAIN HEADER STYLES
381 | ******************************************************************/
382 |
383 | .site-header {
384 | background: var(--black);
385 | display: grid;
386 | grid-template-columns: 50vw 1fr;
387 | grid-template-areas:
388 | "title nav-btn";
389 | padding: 1rem 4vw;
390 | }
391 |
392 |
393 | .site-header__desc {
394 | color: var(--white);
395 | font-size: 2.5rem;
396 | font-style: italic;
397 | left: 6vw;
398 | line-height: 1;
399 | margin: 0;
400 | position: absolute;
401 | top: 25vh;
402 | }
403 |
404 | .single-post .site-header__desc,
405 | .page .site-header__desc {
406 | display: none;
407 | }
408 |
409 | .nav-btn-wrap {
410 | align-items: center;
411 | display: flex;
412 | grid-area: nav-btn;
413 | justify-content: flex-end;
414 | }
415 |
416 |
417 | /******************************************************************
418 | 5. NAVIGATION STYLES
419 | ******************************************************************/
420 |
421 | .header__nav {
422 | display: none;
423 | }
424 |
425 | .header__nav.active {
426 | align-items: center;
427 | background: rgba(0,0,0,0.9);
428 | bottom: 0;
429 | display: grid;
430 | justify-content: center;
431 | left: 0;
432 | overflow-y: scroll;
433 | padding: 2rem 0;
434 | position: fixed;
435 | right: 0;
436 | top: 0;
437 | z-index: 100;
438 | }
439 |
440 | .primary-menu {
441 | list-style-type: none;
442 | padding: 0;
443 | width: 70vw;
444 | }
445 |
446 | .primary-menu__item {
447 | position: relative;
448 | padding: 0 0 4px 0;
449 | }
450 |
451 | .primary-menu__item:after {
452 | content: "";
453 | display: block;
454 | width: 100%;
455 | height: 1px;
456 | background: var(--light-gray);
457 | }
458 |
459 | .primary-menu__item:last-child:after {
460 | display: none;
461 | }
462 |
463 | .primary-menu__item a {
464 | color: var(--white);
465 | text-decoration: none;
466 | text-transform: uppercase;
467 | }
468 |
469 |
470 | /******************************************************************
471 | 6. MAIN CONTENT LAYOUT STYLES
472 | ******************************************************************/
473 |
474 | main {
475 | margin: 50vh 4vw 0 4vw;
476 | }
477 |
478 | .post-preview {
479 | display: flex;
480 | flex-flow: column;
481 | padding: 1.5rem;
482 | }
483 |
484 | .post-preview__header {
485 | display: flex;
486 | flex-flow: column;
487 | }
488 |
489 | .post-preview .post__title {
490 | margin: 0;
491 | line-height: 1;
492 | padding: 0 0 0.6rem 0;
493 | order: 1;
494 | }
495 |
496 | .post__feature-img {
497 | margin: 2rem 0;
498 | order: 2;
499 | }
500 |
501 | .post-preview .post__date {
502 | margin: 0 0 1rem 0;
503 | order: 0;
504 | }
505 |
506 | .post-preview a {
507 | color: var(--white);
508 | }
509 |
510 | .post-preview:nth-child(odd) {
511 | background: var(--dark-blue);
512 | color: var(--white);
513 | }
514 |
515 | .post-preview:nth-child(odd) a {
516 | color: var(--white);
517 | }
518 |
519 | .post-preview:nth-child(even) {
520 | background: var(--orange);
521 | color: var(--black);
522 | }
523 |
524 | .post-preview:nth-child(even) a {
525 | color: var(--black);
526 | }
527 |
528 | .post-preview__footer {
529 | margin: auto 0 0 0;
530 | }
531 |
532 | .post__footer-categories {
533 | display: flex;
534 | flex-wrap: wrap;
535 | list-style-type: none;
536 | margin: 0;
537 | padding: 0;
538 | }
539 |
540 | .post__footer-categories li {
541 | margin: 0 1rem 0 0;
542 | }
543 |
544 | .post__footer-categories a {
545 | padding: 0 0 0 1rem;
546 | position: relative;
547 | }
548 |
549 | .post__footer-categories a:before {
550 | content: "#";
551 | left: 0;
552 | position: absolute;
553 | }
554 |
555 |
556 | /******************************************************************
557 | 7. SINGLE POST STYLES
558 | ******************************************************************/
559 |
560 | .single-post main {
561 | background-color: var(--dark-blue);
562 | margin: 4rem 4vw;
563 | }
564 |
565 | .post {
566 | padding: 2rem;
567 | }
568 |
569 | .post .post__header {
570 | position: relative;
571 | }
572 |
573 | .post .post__date {
574 | background-color: var(--black);
575 | border: 4px solid var(--dark-blue);
576 | left: -3rem;
577 | margin: 0;
578 | padding: 0.5rem 1rem;
579 | position: absolute;
580 | top: 0;
581 | }
582 |
583 | .post .post__title {
584 | padding: 4rem 0 0.3rem 0;
585 | margin: 0 0 1rem 0;
586 | }
587 |
588 | .post .post__title:after {
589 | background: var(--gray);
590 | background: linear-gradient(to right, var(--gray) 0%, transparent 100%);
591 | content: "";
592 | display: block;
593 | height: 1px;
594 | margin: 0.75rem 0 0 0;
595 | width: 100%;
596 | }
597 |
598 | .post .post__footer {
599 | margin: 2rem 0 0 0;
600 | }
601 |
602 |
603 | /******************************************************************
604 | 8. PAGE STYLES
605 | ******************************************************************/
606 |
607 | .page main {
608 | background-color: var(--orange);
609 | color: var(--black);
610 | padding: 1.5rem 1rem;
611 | margin: 2rem 4vw;
612 | }
613 |
614 | .page__content a {
615 | color: var(--white);
616 | padding: 0 0 1rem 0;
617 | }
618 |
619 | .page__content h1:after {
620 | background: var(--gray);
621 | background: linear-gradient(to right, var(--gray) 0%, transparent 100%);
622 | content: "";
623 | display: block;
624 | height: 1px;
625 | margin: 0.75rem 0 0 0;
626 | width: 100%;
627 | }
628 |
629 |
630 | /******************************************************************
631 | 9. SIDEBAR STYLES
632 | ******************************************************************/
633 |
634 | .site-sidebar {
635 | background-color: var(--sidebar_bgcolor);
636 | color: var(--black);
637 | display: flex;
638 | flex-flow: column;
639 | grid-area: sidebar;
640 | margin: 4rem 4vw;
641 | padding: 1rem;
642 | }
643 |
644 | .site-sidebar__section {
645 | padding: 0;
646 | margin: 0 0 3rem 0;
647 | max-width: 25rem;
648 | }
649 |
650 | .site-sidebar a {
651 | color: var(--black);
652 | }
653 |
654 | .site-sidebar ul {
655 | margin: 0;
656 | padding: 0;
657 | list-style-position: inside;
658 | list-style-type: disc;
659 | }
660 |
661 | .site-sidebar li {
662 | margin: 0 0 0.5rem 0;
663 | }
664 |
665 | .site-sidebar li:last-child {
666 | margin: 0;
667 | }
668 |
669 | .site-sidebar__heading {
670 | font-size: 1.5rem;
671 | margin: 0 0 0.25rem 0;
672 | padding: 0 0 0.25rem 0;
673 | }
674 |
675 | .site-sidebar__heading:after {
676 | background: var(--gray);
677 | background: linear-gradient(to right, var(--gray) 0%, transparent 100%);
678 | content: "";
679 | display: block;
680 | height: 1px;
681 | margin: 6px 0 0 0;
682 | width: 100%;
683 | }
684 |
685 | .site-sidebar .archives details {
686 | margin: 0 0 0.5rem 0;
687 | }
688 |
689 | .site-sidebar .archives ul {
690 | margin: 0 0 0 1rem;
691 | }
692 |
693 | .site-sidebar__archives__post {
694 | margin: 0 0 0.5rem 0;
695 | }
696 |
697 | .site-sidebar__archives__post-date {
698 | display: block;
699 | padding: 0 0 0 1rem;
700 | }
701 |
702 |
703 | /******************************************************************
704 | 10. FOOTER STYLES
705 | ******************************************************************/
706 |
707 | .site-footer {
708 | background-color: var(--black);
709 | padding: 1em 4vw;
710 | }
711 |
712 | .site-footer p {
713 | color: var(--white);
714 | margin: 0;
715 | text-align: center;
716 | }
717 |
718 |
719 | /******************************************************************
720 | 11. BUTTONS
721 | ******************************************************************/
722 |
723 | /* Example button defaults */
724 | button {
725 | background-color: var(--orange);
726 | border: none;
727 | border-radius: 0;
728 | color: var(--white);
729 | cursor: pointer;
730 | font-family: var(--font-button);
731 | letter-spacing: 1px;
732 | outline: 0;
733 | padding: 0.5em;
734 | position: relative;
735 | text-decoration: none;
736 | }
737 |
738 |
739 | /* Example button defaults */
740 | .nav-button {
741 | background: none;
742 | border: none;
743 | border-radius: 0;
744 | color: var(--white);
745 | cursor: pointer;
746 | font-family: var(--font-button);
747 | letter-spacing: 1px;
748 | outline: 0;
749 | padding: 0;
750 | position: relative;
751 | text-transform: uppercase;
752 | top: 10px;
753 | z-index: 110;
754 | }
755 |
756 | .nav-button:before {
757 | background: var(--white);
758 | content: "";
759 | display: block;
760 | height: 4px;
761 | left: 50%;
762 | margin: 0 0 0 -20px;
763 | position: absolute;
764 | top: -10px;
765 | transition: all .3s ease-out;
766 | width: 40px;
767 | }
768 |
769 | .nav-button:after {
770 | background: var(--white);
771 | content: "";
772 | display: block;
773 | height: 4px;
774 | left: 50%;
775 | margin: 0 0 0 -20px;
776 | position: absolute;
777 | top: -20px;
778 | transition: all .3s ease-out;
779 | width: 40px;
780 | }
781 |
782 | .nav-button.close {
783 | color: red;
784 | }
785 |
786 | .nav-button.close:before {
787 | background: red;
788 | margin: 0 0 0 -13px;
789 | top: -15px;
790 | transform: rotate(45deg);
791 | width: 25px;
792 | }
793 |
794 | .nav-button.close:after {
795 | background: red;
796 | margin: 0 0 0 -13px;
797 | top: -15px;
798 | transform: rotate(-45deg);
799 | width: 25px;
800 | }
801 |
802 |
803 | /* Read More Button */
804 | .read-more {
805 | background-color: var(--white) !important;
806 | border: none;
807 | box-sizing: border-box;
808 | color: var(--black) !important;
809 | cursor: pointer;
810 | display: inline-block;
811 | font-family: var(--font-button);
812 | margin: 0 0 1rem 0;
813 | outline: 0;
814 | padding: 0.5em;
815 | position: relative;
816 | text-decoration: none;
817 | transition: all 0.5s ease-out;
818 | }
819 |
820 |
821 | /******************************************************************
822 | 12. MEDIA QUERIES
823 | ******************************************************************/
824 |
825 | /* 12.1. Styles for 768px and larger screen sizes */
826 | @media only screen and (min-width: 768px) {
827 |
828 | /******************************************************************
829 | 12.1.1. TYPOGRAPHY
830 | ******************************************************************/
831 |
832 | pre {
833 | max-width: 480px;
834 | }
835 |
836 |
837 | /******************************************************************
838 | 12.1.2. MAIN HEADER STYLES
839 | ******************************************************************/
840 |
841 | .site-header {
842 | align-items: center;
843 | display: grid;
844 | grid-template-columns: 1fr 3fr;
845 | grid-template-areas:
846 | "title nav";
847 | padding: 1rem 4vw;
848 | }
849 |
850 | .site-header__desc {
851 | max-width: 50vw;
852 | }
853 |
854 |
855 | /******************************************************************
856 | 12.1.3. NAVIGATION STYLES
857 | ******************************************************************/
858 |
859 | .nav-button {
860 | display: none;
861 | }
862 |
863 | .header__nav {
864 | display: block;
865 | position: static;
866 | grid-area: nav;
867 | padding: 0 0 0 4rem;
868 | }
869 |
870 | .primary-menu {
871 | background-color: transparent;
872 | box-shadow: none;
873 | height: auto;
874 | list-style: none;
875 | margin: 0;
876 | overflow-y: unset;
877 | padding: 0;
878 | position: relative;
879 | text-align: center;
880 | transform: translateX(0);
881 | transition: none;
882 | width: 100%;
883 | }
884 |
885 | .primary-menu__item {
886 | display: inline-block;
887 | margin: 0 1rem 0 0;
888 | padding: 0;
889 | }
890 |
891 | .primary-menu__item:after {
892 | background: none;
893 | background-color: var(--white);
894 | content: "";
895 | display: block;
896 | height: 2px;
897 | margin: 0 auto;
898 | transition: width 0.5s ease;
899 | width: 0;
900 | }
901 |
902 | .primary-menu__item:hover:after {
903 | width: 100%;
904 | }
905 |
906 | .header__nav a {
907 | font-size: 1rem;
908 | }
909 |
910 |
911 | /******************************************************************
912 | 12.1.4. MAIN CONTENT LAYOUT STYLES
913 | ******************************************************************/
914 |
915 | main {
916 | align-self: start;
917 | display: grid;
918 | grid-template-columns: 1fr 1fr;
919 | margin: 50vh 0 0 0;
920 | }
921 |
922 | .post-preview {
923 | background-color: var(--dark-blue);
924 | color: var(--white);
925 | padding: 4vw;
926 | }
927 |
928 | .post-preview__header,
929 | .post-preview__content,
930 | .post-preview__footer {
931 | max-width: 69ch;
932 | }
933 |
934 | .post-preview a {
935 | color: var(--white);
936 | }
937 |
938 | .post-preview:nth-child(odd),
939 | .post-preview:nth-child(odd) a,
940 | .post-preview:nth-child(even),
941 | .post-preview:nth-child(even) a {
942 | color: unset;
943 | }
944 |
945 | .post-preview:nth-child(even) {
946 | background-color: var(--dark-blue);
947 | color: var(--white);
948 | }
949 |
950 | .post-preview:nth-child(4n+2),
951 | .post-preview:nth-child(4n+3),
952 | .post-preview:nth-child(2),
953 | .post-preview:nth-child(3) {
954 | background-color: var(--orange);
955 | color: black;
956 | }
957 |
958 | .post-preview:nth-child(4n+2) a,
959 | .post-preview:nth-child(4n+3) a,
960 | .post-preview:nth-child(2) a,
961 | .post-preview:nth-child(3) a {
962 | background-color: var(--orange);
963 | color: black;
964 | }
965 |
966 |
967 | /******************************************************************
968 | 12.1.5. SINGLE POST STYLES
969 | ******************************************************************/
970 |
971 | .single-post main {
972 | display: block;
973 | margin: 2rem 4vw;
974 | }
975 |
976 | .post {
977 | max-width: 69ch;
978 | padding: 2rem;
979 | }
980 |
981 |
982 | /******************************************************************
983 | 12.1.6. PAGE STYLES
984 | ******************************************************************/
985 |
986 | .page main {
987 | display: block;
988 | margin: 2rem 4vw;
989 | }
990 |
991 | .page .page__content {
992 | max-width: 69ch;
993 | padding: 2rem;
994 | }
995 |
996 |
997 | /******************************************************************
998 | 12.1.7. SIDEBAR STYLES
999 | ******************************************************************/
1000 |
1001 | .site-sidebar {
1002 | flex-flow: row;
1003 | flex-wrap: wrap;
1004 | padding: 1rem;
1005 | }
1006 |
1007 | .site-sidebar__section {
1008 | padding: 0 0 0 1.5rem;
1009 | width: 50%;
1010 | }
1011 |
1012 | .site-sidebar__section li:first-child {
1013 | margin-top: 0;
1014 | }
1015 |
1016 | }
1017 | /* End of 768px Media Query */
1018 |
1019 |
1020 | /* 16.2. Styles for 1024px and larger screen sizes */
1021 | @media only screen and (min-width: 1024px) {
1022 |
1023 | /******************************************************************
1024 | 12.2.1. TYPOGRAPHY
1025 | ******************************************************************/
1026 |
1027 | pre {
1028 | max-width: 75ch;
1029 | }
1030 |
1031 |
1032 | /******************************************************************
1033 | 12.2.2. MAIN LAYOUT STYLES
1034 | ******************************************************************/
1035 |
1036 | body {
1037 | display: grid;
1038 | grid-template-columns: 1fr 320px;
1039 | grid-template-areas:
1040 | "header header"
1041 | "main sidebar"
1042 | "footer footer";
1043 | }
1044 |
1045 | .site-header {
1046 | grid-area: header;
1047 | }
1048 |
1049 | main {
1050 | grid-area: main;
1051 | }
1052 |
1053 | .site-sidebar {
1054 | grid-area: sidebar;
1055 | }
1056 |
1057 | .site-footer {
1058 | grid-area: footer;
1059 | }
1060 |
1061 |
1062 | /******************************************************************
1063 | 12.2.3. MAIN HEADER STYLES
1064 | ******************************************************************/
1065 |
1066 | .site-header__desc {
1067 | max-width: 40vw;
1068 | left: 10vw;
1069 | }
1070 |
1071 | /******************************************************************
1072 | 12.2.4. SIDEBAR STYLES
1073 | ******************************************************************/
1074 |
1075 | .site-sidebar {
1076 | align-self: stretch;
1077 | flex-flow: column;
1078 | margin: 0;
1079 | padding: 4rem 2rem;
1080 | }
1081 |
1082 | .site-sidebar__section {
1083 | padding: 0;
1084 | width: auto;
1085 | }
1086 |
1087 | }
1088 | /* End of 1024px Media Query */
--------------------------------------------------------------------------------
/public/style/demo4.css:
--------------------------------------------------------------------------------
1 | /*
2 | Demo: Kaamos Astro - Demo #4
3 | Demo site: https://www.kalervoraitanen.com/demo4
4 | Author: Kalervo Raitanen
5 | Author site: http://www.kalervoraitanen.com
6 | Description: Fresh blogging theme for Kaamos Astro Starter Blog.
7 | License: WTFPL License.
8 | License URI: http://sam.zoy.org/wtfpl/
9 | */
10 |
11 |
12 | /*--------------------------------------------------------------
13 | >>> TABLE OF CONTENTS:
14 | ----------------------------------------------------------------
15 | # 1. VARIABLES
16 | # 2. GENERAL STYLES
17 | # 3. TYPOGRAPHY
18 | # 3.1. Font settings
19 | # 3.2. Font styles
20 | # 3.3. Paragraph styles
21 | # 3.4. Link styles
22 | # 3.5. Header styles
23 | # 3.6. Table styles
24 | # 3.7. Definiton list styles
25 | # 3.8. UL and OL styles
26 | # 3.9. Other typographic styles
27 | # 4. MAIN HEADER STYLES
28 | # 5. NAVIGATION STYLES
29 | # 6. MAIN CONTENT LAYOUT STYLES
30 | # 7. SINGLE POST STYLES
31 | # 8. PAGE STYLES
32 | # 9. SIDEBAR STYLES
33 | # 10. POST THUMBNAIL STYLES
34 | # 11. FOOTER STYLES
35 | # 12. BUTTONS
36 | # 13. MEDIA QUERIES
37 | # 13.1 Styles for 768px and larger screen sizes
38 | # 13.1.1. TYPOGRAPHY
39 | # 13.1.2. MAIN HEADER STYLES
40 | # 13.1.3. NAVIGATION STYLES
41 | # 13.1.4. MAIN CONTENT LAYOUT STYLES
42 | # 13.1.5. SINGLE POST STYLES
43 | # 13.1.6. PAGE STYLES
44 | # 13.1.7. SIDEBAR STYLES
45 | # 13.2. Styles for 1024px and larger screen sizes
46 | # 13.2.1. TYPOGRAPHY
47 | # 13.2.2. MAIN LAYOUT STYLES
48 | # 13.2.3. SIDEBAR STYLES
49 | --------------------------------------------------------------*/
50 |
51 |
52 | /******************************************************************
53 | 1. VARIABLES
54 | ******************************************************************/
55 |
56 | :root {
57 | /* Colors */
58 | --site_text_color: #222222;
59 | --site_bg_color: #eeeeee;
60 | --posts_bgcolor: #faecc9;
61 | --sidebar_bgcolor: #D2E4D8;
62 | --footer_bgcolor: #CB7E54;
63 | --button_bgcolor: #344F59;
64 | --button_color: #eeeeee;
65 | --link_color: #344F59;
66 | --gray: #555555;
67 | --light-gray: #cccccc;
68 | }
69 |
70 |
71 | /******************************************************************
72 | 2. GENERAL STYLES
73 | ******************************************************************/
74 |
75 | html {
76 | background-color: var(--site_bg_color);
77 | }
78 |
79 | html::-webkit-scrollbar {
80 | width: 10px;
81 | height: 10px;
82 | }
83 |
84 | html::-webkit-scrollbar-thumb {
85 | background: var(--footer_bgcolor);
86 | }
87 |
88 | html::-webkit-scrollbar-track {
89 | background: var(--white);
90 | }
91 |
92 |
93 | /******************************************************************
94 | 3. TYPOGRAPHY
95 | ******************************************************************/
96 |
97 | /* # 3.1. Font settings */
98 |
99 | /* Fluid typography sizes */
100 | :root {
101 | --size-300: clamp(0.7rem, 0.8rem + 0.2vw, 0.9rem);
102 | --size-400: clamp(0.9rem, 0.9rem + 0.24vw, 1rem);
103 | --size-500: clamp(1.09rem, 1rem + 0.47vw, 1.33rem);
104 | --size-600: clamp(1.37rem, 1.21rem + 0.8vw, 1.78rem);
105 | --size-700: clamp(1.71rem, 1.45rem + 1.29vw, 2.37rem);
106 | --size-800: clamp(2.14rem, 1.74rem + 1.99vw, 3.16rem);
107 | --size-900: clamp(2.67rem, 2.07rem + 3vw, 4.21rem);
108 | --size-1000: clamp(3.34rem, 2.45rem + 4.43vw, 5.61rem);
109 |
110 | /* Fonts */
111 | --font-main: Georgia, serif;
112 | --font-heading: "Playball", Georgia, serif;
113 | --font-button: "Arimo", Helvetica, Arial, sans-serif;
114 | }
115 |
116 |
117 | /* # 3.2. Font styles */
118 | body {
119 | color: var(--site_text_color);
120 | font-family: var(--font-main);
121 | font-size: 100%;
122 | }
123 |
124 |
125 | /* 3.3. Paragraph styles */
126 | p,
127 | textarea,
128 | figcaption {
129 | font-size: var(--size-400);
130 | line-height: 1.5;
131 | }
132 |
133 | h1 + p,
134 | h2 + p,
135 | h3 + p,
136 | h4 + p,
137 | h5 + p,
138 | h6 + p {
139 | margin-top: 0;
140 | }
141 |
142 |
143 | /* 3.4. Link styles */
144 | a {
145 | color: var(--link_color);
146 | }
147 |
148 |
149 | /* # 3.5. Header styles */
150 | h1,
151 | h2,
152 | h3,
153 | h4,
154 | h5,
155 | h6 {
156 | font-family: var(--font-heading);
157 | line-height: 1;
158 | margin: 0;
159 | max-width: 100%;
160 | }
161 |
162 | h1:first-child,
163 | h2:first-child,
164 | h3:first-child,
165 | h4:first-child,
166 | h5:first-child,
167 | h6:first-child {
168 | padding-top: 0;
169 | }
170 |
171 | h1 {
172 | font-size: var(--size-800);
173 | padding: 0.8em 0 0.6em 0;
174 | }
175 |
176 | h2 {
177 | font-size: var(--size-700);
178 | padding: 1em 0 0.6em 0;
179 | }
180 |
181 | h3 {
182 | font-size: var(--size-600);
183 | padding: 1em 0 0.6em 0;
184 | }
185 |
186 | h4 {
187 | font-size: var(--size-500);
188 | padding: 1em 0 0.6em 0;
189 | }
190 |
191 | h5 {
192 | font-size: var(--size-500);
193 | padding: 1em 0 0.6em 0;
194 | }
195 |
196 | h6 {
197 | font-size: var(--size-400);
198 | padding: 1em 0 0.6em 0;
199 | }
200 |
201 |
202 | /* 3.6. Table styles */
203 | table {
204 | border-collapse: collapse;
205 | }
206 |
207 | table tr {
208 | border-bottom: 1px solid var(--light-gray);
209 | }
210 |
211 | table tr:first-child {
212 | border-top: 1px solid var(--light-gray);
213 | }
214 |
215 | table th,
216 | table td {
217 | padding: 0.5rem;
218 | border-left: 1px solid var(--light-gray);
219 | border-right: 1px solid var(--light-gray);
220 | }
221 |
222 |
223 | /* 3.7. Definiton list styles */
224 | dl {
225 | line-height: 1.8;
226 | }
227 |
228 | dt {
229 | font-weight: bold;
230 | }
231 |
232 | dd {
233 | margin: 0.25rem 0 1rem 1rem;
234 | }
235 |
236 |
237 | /* 3.8. UL and OL styles */
238 | ul,
239 | ol {
240 | line-height: 1.5;
241 | list-style-position: inside;
242 | margin: 1rem 0;
243 | }
244 |
245 | li {
246 | margin: 0 0 0.5rem 0;
247 | }
248 |
249 | li:last-child {
250 | margin: 0;
251 | }
252 |
253 | ul,
254 | ol {
255 | margin: 0.5rem 0 0 1rem;
256 | }
257 |
258 |
259 | /* 3.9. Other typographic styles */
260 | hr {
261 | color: var(--gray);
262 | }
263 |
264 | dfn,
265 | cite,
266 | em,
267 | i {
268 | font-style: italic;
269 | }
270 |
271 | blockquote {
272 | background: var(--light-gray);
273 | border-left: 6px solid var(--footer_bgcolor);
274 | font-style: italic;
275 | margin: 0;
276 | overflow: hidden;
277 | quotes: "" "";
278 | padding: 1rem 1rem 1rem 2rem;
279 | }
280 |
281 | blockquote cite {
282 | display: block;
283 | font-weight: bold;
284 | margin-top: 0.5rem;
285 | }
286 |
287 | blockquote:before,
288 | blockquote:after {
289 | content: "";
290 | }
291 |
292 | address {
293 | margin: 0 0 1.5rem;
294 | }
295 |
296 | pre {
297 | margin: 1rem 0;
298 | max-width: 300px;
299 | overflow: auto;
300 | padding: 0 0 0 1rem;
301 | }
302 |
303 | code,
304 | kbd,
305 | tt,
306 | var {
307 | font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
308 | }
309 |
310 | code {
311 | background: #1b1b1b;
312 | color: var(--site_bg_color);
313 | display: block;
314 | margin: 1rem 0;
315 | padding: 0.5rem 1rem;
316 | }
317 |
318 | abbr,
319 | acronym {
320 | border-bottom: 1px dotted var(--gray);
321 | cursor: help;
322 | }
323 |
324 | mark,
325 | ins {
326 | text-decoration: none;
327 | }
328 |
329 | big {
330 | font-size: 125%;
331 | }
332 |
333 | q {
334 | quotes: "“" "”" "‘" "’";
335 | }
336 |
337 |
338 | /******************************************************************
339 | 4. MAIN HEADER STYLES
340 | ******************************************************************/
341 |
342 | .site-header {
343 | box-shadow: 1px 1px 8px rgba(0,0,0,0.5);
344 | display: grid;
345 | grid-template-columns: 6fr 2fr;
346 | grid-template-areas:
347 | "title nav-btn"
348 | "desc ....";
349 | padding: 1rem 3vw;
350 | }
351 |
352 | .site-title {
353 | grid-area: title;
354 | margin: 0;
355 | padding: 0;
356 | line-height: 1;
357 | }
358 |
359 | .site-header__logo-img {
360 | background: #111111;
361 | height: 48px;
362 | margin: 16px 0;
363 | padding: 8px;
364 | position: relative;
365 | text-align: center;
366 | width: auto;
367 | }
368 |
369 | .site-header__desc {
370 | align-items: center;
371 | color: var(--gray);
372 | display: flex;
373 | font-style: italic;
374 | font-weight: 700;
375 | grid-area: desc;
376 | line-height: 1;
377 | margin: 0;
378 | }
379 |
380 | .nav-btn-wrap {
381 | align-items: center;
382 | display: flex;
383 | grid-area: nav-btn;
384 | justify-content: flex-end;
385 | }
386 |
387 |
388 | /******************************************************************
389 | 5. NAVIGATION STYLES
390 | ******************************************************************/
391 |
392 | .header__nav {
393 | transition: all 1s ease;
394 | }
395 |
396 | #primary-menu-list {
397 | background-color: var(--site_bg_color);
398 | box-shadow: 1px 1px 8px rgba(0,0,0,0.5);
399 | display: block;
400 | height: 100vh;
401 | left: 0;
402 | list-style-type: none;
403 | margin: 0;
404 | overflow-y: scroll;
405 | padding: 4rem 2rem 2rem 1rem;
406 | position: fixed;
407 | top: 0;
408 | transform: translateX(-60vw);
409 | transition: all 0.5s ease;
410 | width: 60vw;
411 | z-index: 30;
412 | }
413 |
414 | .header__nav.active #primary-menu-list {
415 | transform: translateX(0);
416 | }
417 |
418 | .primary-menu__item {
419 | margin: 0 0 0.5rem 0;
420 | padding: 0 0 0.5rem 0;
421 | }
422 |
423 | .primary-menu__item:last-child {
424 | margin: 0;
425 | }
426 |
427 | .primary-menu__item:after {
428 | background: var(--gray);
429 | background: linear-gradient(to right, var(--gray) 0%, transparent 100%);
430 | content: "";
431 | display: block;
432 | height: 1px;
433 | margin: 6px 0 0 0;
434 | width: 100%;
435 | }
436 |
437 | .header__nav a {
438 | color: var(--site_text_color);
439 | font-family: var(--font-button);
440 | text-decoration: none;
441 | text-transform: uppercase;
442 | }
443 |
444 |
445 | /******************************************************************
446 | 6. MAIN CONTENT LAYOUT STYLES
447 | ******************************************************************/
448 |
449 | main {
450 | margin: 2rem 3vw;
451 | }
452 |
453 | .post-preview {
454 | background-color: var(--posts_bgcolor);
455 | border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
456 | margin: 0 0 2rem 0;
457 | padding: 1.5rem;
458 | }
459 |
460 | .post-preview .post__title {
461 | font-size: 2.5rem;
462 | margin: 0;
463 | padding: 0;
464 | line-height: 1;
465 | }
466 |
467 | .post-preview .post__date {
468 | font-size: var(--size-300);
469 | font-weight: 700;
470 | margin: 0.5rem 0 0 0;
471 | }
472 |
473 | .post-preview__footer {
474 | margin: 2rem 0 0 0;
475 | }
476 |
477 | .post__footer-categories {
478 | display: flex;
479 | flex-wrap: wrap;
480 | list-style-type: none;
481 | margin: 0;
482 | padding: 0;
483 | }
484 |
485 | .post__footer-categories li {
486 | margin: 0 1rem 0 0;
487 | }
488 |
489 | .post__footer-categories a {
490 | padding: 0 0 0 1rem;
491 | position: relative;
492 | }
493 |
494 | .post__footer-categories a:before {
495 | content: "#";
496 | left: 0;
497 | position: absolute;
498 | }
499 |
500 |
501 | /******************************************************************
502 | 7. SINGLE POST STYLES
503 | ******************************************************************/
504 |
505 | .single-post main {
506 | align-self: start;
507 | background-color: var(--posts_bgcolor);
508 | border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
509 | padding: 1.5rem 1rem;
510 | margin: 2rem 3vw;
511 | }
512 |
513 | .post {
514 | padding: 0 0 1rem 0;
515 | position: relative;
516 | }
517 |
518 | .post .post__date {
519 | background-color: var(--footer_bgcolor);
520 | font-weight: 700;
521 | left: -1.5rem;
522 | margin: 0;
523 | padding: 0.5rem 1rem;
524 | position: absolute;
525 | top: 0;
526 | }
527 |
528 | .post .post__title {
529 | padding: 3rem 0 0.3rem 0;
530 | margin: 0 0 1rem 0;
531 | }
532 |
533 | .post .post__title:after {
534 | background: var(--gray);
535 | background: linear-gradient(to right, var(--gray) 0%, var(--site_bg_color) 100%);
536 | content: "";
537 | display: block;
538 | height: 1px;
539 | width: 100%;
540 | }
541 |
542 | .post .post__footer {
543 | margin: 2rem 0 0 0;
544 | }
545 |
546 |
547 | /******************************************************************
548 | 8. PAGE STYLES
549 | ******************************************************************/
550 |
551 | .page main {
552 | align-self: start;
553 | background-color: var(--posts_bgcolor);
554 | border-radius: 255px 15px 225px 15px/15px 225px 15px 255px;
555 | padding: 1.5rem 1rem;
556 | margin: 2rem 3vw;
557 | }
558 |
559 | .page__content {
560 | padding: 0 0 1rem 0;
561 | }
562 |
563 | .page__content h1:after {
564 | background: var(--gray);
565 | background: linear-gradient(to right, var(--gray) 0%, var(--site_bg_color) 100%);
566 | content: "";
567 | display: block;
568 | height: 1px;
569 | margin: 0.75rem 0 0 0;
570 | width: 100%;
571 | }
572 |
573 |
574 | /******************************************************************
575 | 9. SIDEBAR STYLES
576 | ******************************************************************/
577 |
578 | .site-sidebar {
579 | align-self: start;
580 | background-color: var(--sidebar_bgcolor);
581 | border-radius: 2px;
582 | color: var(--site_text_color);
583 | display: flex;
584 | flex-flow: column;
585 | grid-area: sidebar;
586 | margin: 0 16px 32px 16px;
587 | padding: 16px;
588 | }
589 |
590 | .site-sidebar__section {
591 | padding: 0;
592 | margin: 0 0 48px 0;
593 | max-width: 25rem;
594 | }
595 |
596 | .site-sidebar a {
597 | color: var(--site_text_color);
598 | }
599 |
600 | .site-sidebar ul {
601 | margin: 0;
602 | padding: 0;
603 | list-style-position: inside;
604 | list-style-type: disc;
605 | }
606 |
607 | .site-sidebar li {
608 | margin: 0 0 0.5rem 0;
609 | }
610 |
611 | .site-sidebar li:last-child {
612 | margin: 0;
613 | }
614 |
615 | .site-sidebar__heading {
616 | font-size: 1.5rem;
617 | margin: 0 0 0.25rem 0;
618 | padding: 0 0 0.25rem 0;
619 | }
620 |
621 | .site-sidebar__heading {
622 | font-size: 2rem;
623 | margin: 0 0 8px 0;
624 | padding: 0 0 8px 0;
625 | }
626 |
627 | .site-sidebar__heading:after {
628 | background: var(--gray);
629 | background: linear-gradient(to right, var(--gray) 0%, transparent 100%);
630 | content: "";
631 | display: block;
632 | height: 1px;
633 | margin: 6px 0 0 0;
634 | width: 100%;
635 | }
636 |
637 | .site-sidebar .archives details {
638 | margin: 0 0 0.5rem 0;
639 | }
640 |
641 | .site-sidebar__archives__year {
642 | font-size: var(--size-500);
643 | font-weight: 700;
644 | }
645 |
646 | .site-sidebar .archives ul {
647 | margin: 0 0 0 1rem;
648 | }
649 |
650 | .site-sidebar__archives__post {
651 | font-weight: 700;
652 | margin: 0 0 0.5rem 0;
653 | }
654 |
655 | .site-sidebar__archives__post-date {
656 | display: block;
657 | font-size: var(--size-300);
658 | font-weight: 400;
659 | padding: 0 0 0 1rem;
660 | }
661 |
662 |
663 | /******************************************************************
664 | 10. POST THUMBNAIL STYLES
665 | ******************************************************************/
666 |
667 | .post__feature-img {
668 | background: linear-gradient(#344F59, #648C8C);
669 | border-radius: 0 160px 160px 160px;
670 | height: auto;
671 | margin: 1rem 0;
672 | max-width: 100%;
673 | padding: 5px;
674 | }
675 |
676 |
677 | /******************************************************************
678 | 11. FOOTER STYLES
679 | ******************************************************************/
680 |
681 | .site-footer {
682 | background-color: var(--footer_bgcolor);
683 | padding: 1rem 3vw;
684 | }
685 |
686 | .site-footer p {
687 | text-align: center;
688 | margin: 0;
689 | }
690 |
691 |
692 | /******************************************************************
693 | 12. BUTTONS
694 | ******************************************************************/
695 |
696 | /* Example button defaults */
697 | button {
698 | background-color: var(--button_bgcolor);
699 | border: none;
700 | border-radius: 0;
701 | color: var(--button_color);
702 | cursor: pointer;
703 | font-family: var(--font-button);
704 | letter-spacing: 1px;
705 | outline: 0;
706 | padding: 0.5rem;
707 | position: relative;
708 | text-decoration: none;
709 | }
710 |
711 |
712 | /* Example button defaults */
713 | .nav-button {
714 | background: none;
715 | border: none;
716 | border-radius: 0;
717 | color: var(--site_text_color);
718 | cursor: pointer;
719 | font-family: var(--font-button);
720 | letter-spacing: 1px;
721 | outline: 0;
722 | padding: 0;
723 | position: relative;
724 | text-transform: uppercase;
725 | top: 10px;
726 | }
727 |
728 | .nav-button:before {
729 | background: var(--site_text_color);
730 | content: "";
731 | display: block;
732 | height: 4px;
733 | left: 50%;
734 | margin: 0 0 0 -20px;
735 | position: absolute;
736 | top: -10px;
737 | transition: all .3s ease-out;
738 | width: 40px;
739 | }
740 |
741 | .nav-button:after {
742 | background: var(--site_text_color);
743 | content: "";
744 | display: block;
745 | height: 4px;
746 | left: 50%;
747 | margin: 0 0 0 -20px;
748 | position: absolute;
749 | top: -20px;
750 | transition: all .3s ease-out;
751 | width: 40px;
752 | }
753 |
754 |
755 | .nav-button.close:before {
756 | background: red;
757 | margin: 0 0 0 -13px;
758 | top: -15px;
759 | transform: rotate(45deg);
760 | width: 25px;
761 | }
762 |
763 | .nav-button.close:after {
764 | background: red;
765 | margin: 0 0 0 -13px;
766 | top: -15px;
767 | transform: rotate(-45deg);
768 | width: 25px;
769 | }
770 |
771 |
772 | /* Read More Button */
773 | .read-more {
774 | background-color: var(--button_bgcolor);
775 | border: none;
776 | border-radius: 1px 0.5rem 1px 0.5rem;
777 | box-sizing: border-box;
778 | color: var(--button_color);
779 | cursor: pointer;
780 | display: inline-block;
781 | font-family: var(--font-button);
782 | letter-spacing: 1px;
783 | outline: 0;
784 | padding: 0.5rem;
785 | position: relative;
786 | text-decoration: none;
787 | }
788 |
789 | /* End of base styles */
790 |
791 |
792 | /******************************************************************
793 | 13. MEDIA QUERIES
794 | ******************************************************************/
795 |
796 | /* 13.1 Styles for 768px and larger screen sizes */
797 | @media only screen and (min-width: 768px) {
798 |
799 | /******************************************************************
800 | 13.1.1. TYPOGRAPHY
801 | ******************************************************************/
802 |
803 | pre {
804 | max-width: 480px;
805 | }
806 |
807 |
808 | /******************************************************************
809 | 13.1.2. MAIN HEADER STYLES
810 | ******************************************************************/
811 |
812 | .site-header {
813 | align-items: center;
814 | display: grid;
815 | grid-template-columns: 2fr 3fr;
816 | grid-template-areas:
817 | "title nav"
818 | "desc ...";
819 | padding: 1rem 3vw;
820 | }
821 |
822 |
823 | /******************************************************************
824 | 13.1.3. NAVIGATION STYLES
825 | ******************************************************************/
826 |
827 | .nav-button {
828 | display: none;
829 | }
830 |
831 | .header__nav {
832 | grid-area: nav;
833 | }
834 |
835 | #primary-menu-list {
836 | background-color: transparent;
837 | box-shadow: none;
838 | height: auto;
839 | list-style: none;
840 | margin: 0;
841 | overflow-y: unset;
842 | padding: 0;
843 | position: relative;
844 | text-align: center;
845 | transform: translateX(0);
846 | transition: none;
847 | width: 100%;
848 | }
849 |
850 | .primary-menu__item {
851 | display: inline-block;
852 | margin: 0 1rem 0 0;
853 | padding: 0;
854 | }
855 |
856 | .primary-menu__item:after {
857 | background: none;
858 | background-color: var(--site_text_color);
859 | content: "";
860 | display: block;
861 | height: 2px;
862 | margin: 0;
863 | transition: width 0.5s ease;
864 | width: 0;
865 | }
866 |
867 | .primary-menu__item:hover:after {
868 | width: 100%;
869 | }
870 |
871 |
872 | /******************************************************************
873 | 13.1.4. MAIN CONTENT LAYOUT STYLES
874 | ******************************************************************/
875 |
876 | main {
877 | align-self: start;
878 | display: grid;
879 | grid-template-columns: repeat(auto-fit, minmax(Min(20em, 100%), 1fr));
880 | grid-template-rows: masonry;
881 | grid-gap: 3vw;
882 | justify-content: center;
883 | margin: 2rem 3vw;
884 | }
885 |
886 | .post-preview {
887 | align-self: start;
888 | margin: 0;
889 | }
890 |
891 |
892 | /******************************************************************
893 | 13.1.5. SINGLE POST STYLES
894 | ******************************************************************/
895 |
896 | .single-post main {
897 | padding: 2rem;
898 | }
899 |
900 | .post {
901 | max-width: 69ch;
902 | }
903 |
904 | .post .post__date {
905 | left: -2.5rem;
906 | }
907 |
908 |
909 | /******************************************************************
910 | 13.1.6. PAGE STYLES
911 | ******************************************************************/
912 |
913 | .page main {
914 | padding: 2rem;
915 | }
916 |
917 | .page__content {
918 | max-width: 69ch;
919 | }
920 |
921 |
922 | /******************************************************************
923 | 13.1.7. SIDEBAR STYLES
924 | ******************************************************************/
925 |
926 | .site-sidebar {
927 | flex-flow: row;
928 | flex-wrap: wrap;
929 | padding: 1rem;
930 | }
931 |
932 | .site-sidebar__section {
933 | padding: 0 0 0 1.5rem;
934 | width: 50%;
935 | }
936 |
937 | .site-sidebar__section:nth-child(odd) {
938 | padding: 0 1.5rem 0 0;
939 | }
940 |
941 | .site-sidebar__section > li {
942 | margin-right: 3rem;
943 | }
944 |
945 | .site-sidebar__section > li:first-child {
946 | margin-top: 0;
947 | }
948 |
949 | }
950 | /* End of 768px Media Query */
951 |
952 |
953 | /* 13.2. Styles for 1024px and larger screen sizes */
954 | @media only screen and (min-width: 1024px) {
955 |
956 | /******************************************************************
957 | 13.2.1. TYPOGRAPHY
958 | ******************************************************************/
959 |
960 | pre {
961 | max-width: 69ch;
962 | }
963 |
964 |
965 | /******************************************************************
966 | 13.2.2. MAIN LAYOUT STYLES
967 | ******************************************************************/
968 |
969 | body {
970 | display: grid;
971 | grid-template-columns: 3fr 1fr;
972 | grid-template-areas:
973 | "header header"
974 | "main sidebar"
975 | "footer footer";
976 | }
977 |
978 | .site-header {
979 | grid-area: header;
980 | }
981 |
982 | main {
983 | grid-area: main;
984 | }
985 |
986 | .site-sidebar {
987 | grid-area: sidebar;
988 | }
989 |
990 | .site-footer {
991 | grid-area: footer;
992 | }
993 |
994 |
995 | /******************************************************************
996 | 13.2.3. SIDEBAR STYLES
997 | ******************************************************************/
998 |
999 | .site-sidebar {
1000 | flex-flow: column;
1001 | margin: 2rem 3vw 0 0;
1002 | }
1003 |
1004 | .site-sidebar__section {
1005 | padding: 0;
1006 | width: auto;
1007 | }
1008 |
1009 | .site-sidebar__section:nth-child(odd) {
1010 | padding: 0;
1011 | }
1012 |
1013 | }
1014 | /* End of 1024px Media Query */
--------------------------------------------------------------------------------
/public/style/global.css:
--------------------------------------------------------------------------------
1 | /*
2 | Stylesheet: Kaamos Astro - Global base styles
3 | Author: Kalervo Raitanen
4 | Author site: http://www.kalervoraitanen.com
5 | Description: Global base styles for Kaamos Astro Starter Blog to be used in projects.
6 | Version: 1.0
7 | */
8 |
9 |
10 | /*--------------------------------------------------------------
11 | >>> TABLE OF CONTENTS:
12 | ----------------------------------------------------------------
13 | # 1. VARIABLES
14 | # 2. GENERAL STYLES
15 | # 3. TYPOGRAPHY
16 | # 3.1. Typography defaults
17 | # 3.2. Fonts
18 | # 3.3. Paragraphs and headings typography settings
19 | # 4. BUTTON DEFAULTS
20 | --------------------------------------------------------------*/
21 |
22 |
23 | /******************************************************************
24 | 1. VARIABLES
25 | ******************************************************************/
26 |
27 | :root {
28 | /* Some examples of variables to use */
29 |
30 | /* # Colors
31 | --black: #111111;
32 | --pure-black: #000000;
33 | --white: #eeeeee;
34 | --gray: #333333;
35 | --red: red;
36 | */
37 |
38 | /* # Fonts
39 | --font-heading: 'Lora', Georgia, serif;;
40 | --font_main: 'Open Sans', Arial, sans-serif;
41 | --font_button: "Arimo", Arial, sans-serif;
42 | */
43 |
44 | /* # Z-Indexes. These will help to layer site elements more easily. */
45 | --layer1: 1;
46 | --layer2: 2;
47 | --layer3: 3;
48 | --layer4: 4;
49 | --layer5: 5;
50 | --layer6: 6;
51 | --layer7: 7;
52 | --layer8: 8;
53 | --layer9: 9;
54 | --layer10: 10;
55 | }
56 |
57 |
58 | /******************************************************************
59 | 2. GENERAL STYLES
60 | ******************************************************************/
61 |
62 | * {
63 | box-sizing: border-box;
64 | }
65 |
66 | html {
67 | scroll-behavior: smooth;
68 | }
69 |
70 | img {
71 | height: auto;
72 | max-width: 100%;
73 | }
74 |
75 | figure {
76 | display: block;
77 | height: auto;
78 | margin: 0;
79 | max-width: 100%;
80 | }
81 |
82 |
83 | /* # 2.1. Accessibility styles */
84 | .screen-reader-text {
85 | border: 0;
86 | clip: rect(1px, 1px, 1px, 1px);
87 | clip-path: inset(50%);
88 | height: 1px;
89 | margin: -1px;
90 | overflow: hidden;
91 | padding: 0;
92 | position: absolute;
93 | width: 1px;
94 | word-wrap: normal !important;
95 | }
96 |
97 | .screen-reader-text:focus {
98 | background-color: #eee;
99 | clip: auto !important;
100 | clip-path: none;
101 | color: #444;
102 | display: block;
103 | font-size: 1em;
104 | height: auto;
105 | left: 5px;
106 | line-height: normal;
107 | padding: 15px 23px 14px;
108 | text-decoration: none;
109 | top: 5px;
110 | width: auto;
111 | z-index: 100000;
112 | }
113 |
114 | /* Skip to main content link */
115 | .skip-link:focus,
116 | .skip-link:focus-visible {
117 | background-color: #555555;
118 | border-radius: 3px;
119 | clip: auto !important;
120 | -webkit-clip-path: none;
121 | clip-path: none;
122 | color: #eeeeee;
123 | display: block;
124 | font-weight: 700;
125 | height: auto;
126 | left: 5px;
127 | line-height: normal;
128 | padding: 15px 23px 14px;
129 | text-decoration: none;
130 | top: 5px;
131 | width: auto;
132 | z-index: 100000;
133 | }
134 |
135 | a.skip-link:focus {
136 | outline: 2px solid blue;
137 | }
138 |
139 |
140 | /******************************************************************
141 | 3. TYPOGRAPHY
142 | ******************************************************************/
143 |
144 | /* # 3.1. Typography defaults */
145 | body {
146 | /* Enable OpenType features to enhance the legibility and appearance of text */
147 | font-feature-settings: "kern", "liga", "clig", "calt";
148 | font-kerning: normal;
149 | font-variant-ligatures: common-ligatures contextual;
150 |
151 | font-size: 100%;
152 |
153 | /*
154 | -webkit-font-smoothing: antialiased; // Smooth the font
155 | -moz-osx-font-smoothing: grayscale; // Makes light text on dark backgrounds look lighter on Firefox
156 | */
157 | }
158 |
159 |
160 | /* # 3.2. Fonts */
161 | /* Import Google Fonts
162 | @import url('https://fonts.googleapis.com/css2?family=Lora&family=Open+Sans:ital,wght@0,400;0,700;1,400&family=Arimo&display=swap');
163 | */
164 |
165 | /*
166 | To embed local fonts uncomment the below section and use this syntax.
167 | Remember to check the path for the font files.
168 | */
169 | /*
170 | @font-face {
171 | font-family: 'Font Name';
172 | src: url('font-name.eot');
173 | src: url('font-name.eot?#iefix') format('embedded-opentype'),
174 | url('font-name.woff') format('woff'),
175 | url('font-name.ttf') format('truetype'),
176 | url('font-name.svg#font-name') format('svg');
177 | font-weight: normal;
178 | font-style: normal;
179 | }
180 | */
181 |
182 |
183 | /* # 3.3. Paragraphs and headings typography settings */
184 | p,
185 | h1,
186 | h2,
187 | h3,
188 | h4,
189 | h5,
190 | h6 {
191 | /* Emphasize legibility to produce the most legible text */
192 | text-rendering: optimizelegibility;
193 |
194 | /* Break long words to prevent overflowing */
195 | word-break: break-word;
196 | word-wrap: break-word;
197 | overflow-wrap: break-word;
198 | }
199 |
200 |
201 | /*********************
202 | 4. BUTTON DEFAULTS
203 | *********************/
204 |
205 | button {
206 | border: none;
207 | border-radius: 0;
208 | box-sizing: border-box;
209 | cursor: pointer;
210 | outline: 0;
211 | text-decoration: none;
212 | }
213 |
214 | /* Focusing the button with a keyboard will show a blue solid line. */
215 | button:focus-visible {
216 | outline: 2px solid blue;
217 | }
218 |
219 | /* Focusing the button with a mouse, touch, or stylus won't show outline. */
220 | button:focus:not(:focus-visible) {
221 | outline: none;
222 | }
--------------------------------------------------------------------------------
/public/style/normalize.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
2 |
3 | /* Document
4 | ========================================================================== */
5 |
6 | /**
7 | * 1. Correct the line height in all browsers.
8 | * 2. Prevent adjustments of font size after orientation changes in iOS.
9 | */
10 |
11 | html {
12 | line-height: 1.15; /* 1 */
13 | -webkit-text-size-adjust: 100%; /* 2 */
14 | }
15 |
16 | /* Sections
17 | ========================================================================== */
18 |
19 | /**
20 | * Remove the margin in all browsers.
21 | */
22 |
23 | body {
24 | margin: 0;
25 | }
26 |
27 | /**
28 | * Render the `main` element consistently in IE.
29 | */
30 |
31 | main {
32 | display: block;
33 | }
34 |
35 | /**
36 | * Correct the font size and margin on `h1` elements within `section` and
37 | * `article` contexts in Chrome, Firefox, and Safari.
38 | */
39 |
40 | h1 {
41 | font-size: 2em;
42 | margin: 0.67em 0;
43 | }
44 |
45 | /* Grouping content
46 | ========================================================================== */
47 |
48 | /**
49 | * 1. Add the correct box sizing in Firefox.
50 | * 2. Show the overflow in Edge and IE.
51 | */
52 |
53 | hr {
54 | box-sizing: content-box; /* 1 */
55 | height: 0; /* 1 */
56 | overflow: visible; /* 2 */
57 | }
58 |
59 | /**
60 | * 1. Correct the inheritance and scaling of font size in all browsers.
61 | * 2. Correct the odd `em` font sizing in all browsers.
62 | */
63 |
64 | pre {
65 | font-family: monospace, monospace; /* 1 */
66 | font-size: 1em; /* 2 */
67 | }
68 |
69 | /* Text-level semantics
70 | ========================================================================== */
71 |
72 | /**
73 | * Remove the gray background on active links in IE 10.
74 | */
75 |
76 | a {
77 | background-color: transparent;
78 | }
79 |
80 | /**
81 | * 1. Remove the bottom border in Chrome 57-
82 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
83 | */
84 |
85 | abbr[title] {
86 | border-bottom: none; /* 1 */
87 | text-decoration: underline; /* 2 */
88 | text-decoration: underline dotted; /* 2 */
89 | }
90 |
91 | /**
92 | * Add the correct font weight in Chrome, Edge, and Safari.
93 | */
94 |
95 | b,
96 | strong {
97 | font-weight: bolder;
98 | }
99 |
100 | /**
101 | * 1. Correct the inheritance and scaling of font size in all browsers.
102 | * 2. Correct the odd `em` font sizing in all browsers.
103 | */
104 |
105 | code,
106 | kbd,
107 | samp {
108 | font-family: monospace, monospace; /* 1 */
109 | font-size: 1em; /* 2 */
110 | }
111 |
112 | /**
113 | * Add the correct font size in all browsers.
114 | */
115 |
116 | small {
117 | font-size: 80%;
118 | }
119 |
120 | /**
121 | * Prevent `sub` and `sup` elements from affecting the line height in
122 | * all browsers.
123 | */
124 |
125 | sub,
126 | sup {
127 | font-size: 75%;
128 | line-height: 0;
129 | position: relative;
130 | vertical-align: baseline;
131 | }
132 |
133 | sub {
134 | bottom: -0.25em;
135 | }
136 |
137 | sup {
138 | top: -0.5em;
139 | }
140 |
141 | /* Embedded content
142 | ========================================================================== */
143 |
144 | /**
145 | * Remove the border on images inside links in IE 10.
146 | */
147 |
148 | img {
149 | border-style: none;
150 | }
151 |
152 | /* Forms
153 | ========================================================================== */
154 |
155 | /**
156 | * 1. Change the font styles in all browsers.
157 | * 2. Remove the margin in Firefox and Safari.
158 | */
159 |
160 | button,
161 | input,
162 | optgroup,
163 | select,
164 | textarea {
165 | font-family: inherit; /* 1 */
166 | font-size: 100%; /* 1 */
167 | line-height: 1.15; /* 1 */
168 | margin: 0; /* 2 */
169 | }
170 |
171 | /**
172 | * Show the overflow in IE.
173 | * 1. Show the overflow in Edge.
174 | */
175 |
176 | button,
177 | input { /* 1 */
178 | overflow: visible;
179 | }
180 |
181 | /**
182 | * Remove the inheritance of text transform in Edge, Firefox, and IE.
183 | * 1. Remove the inheritance of text transform in Firefox.
184 | */
185 |
186 | button,
187 | select { /* 1 */
188 | text-transform: none;
189 | }
190 |
191 | /**
192 | * Correct the inability to style clickable types in iOS and Safari.
193 | */
194 |
195 | button,
196 | [type="button"],
197 | [type="reset"],
198 | [type="submit"] {
199 | -webkit-appearance: button;
200 | }
201 |
202 | /**
203 | * Remove the inner border and padding in Firefox.
204 | */
205 |
206 | button::-moz-focus-inner,
207 | [type="button"]::-moz-focus-inner,
208 | [type="reset"]::-moz-focus-inner,
209 | [type="submit"]::-moz-focus-inner {
210 | border-style: none;
211 | padding: 0;
212 | }
213 |
214 | /**
215 | * Restore the focus styles unset by the previous rule.
216 | */
217 |
218 | button:-moz-focusring,
219 | [type="button"]:-moz-focusring,
220 | [type="reset"]:-moz-focusring,
221 | [type="submit"]:-moz-focusring {
222 | outline: 1px dotted ButtonText;
223 | }
224 |
225 | /**
226 | * Correct the padding in Firefox.
227 | */
228 |
229 | fieldset {
230 | padding: 0.35em 0.75em 0.625em;
231 | }
232 |
233 | /**
234 | * 1. Correct the text wrapping in Edge and IE.
235 | * 2. Correct the color inheritance from `fieldset` elements in IE.
236 | * 3. Remove the padding so developers are not caught out when they zero out
237 | * `fieldset` elements in all browsers.
238 | */
239 |
240 | legend {
241 | box-sizing: border-box; /* 1 */
242 | color: inherit; /* 2 */
243 | display: table; /* 1 */
244 | max-width: 100%; /* 1 */
245 | padding: 0; /* 3 */
246 | white-space: normal; /* 1 */
247 | }
248 |
249 | /**
250 | * Add the correct vertical alignment in Chrome, Firefox, and Opera.
251 | */
252 |
253 | progress {
254 | vertical-align: baseline;
255 | }
256 |
257 | /**
258 | * Remove the default vertical scrollbar in IE 10+.
259 | */
260 |
261 | textarea {
262 | overflow: auto;
263 | }
264 |
265 | /**
266 | * 1. Add the correct box sizing in IE 10.
267 | * 2. Remove the padding in IE 10.
268 | */
269 |
270 | [type="checkbox"],
271 | [type="radio"] {
272 | box-sizing: border-box; /* 1 */
273 | padding: 0; /* 2 */
274 | }
275 |
276 | /**
277 | * Correct the cursor style of increment and decrement buttons in Chrome.
278 | */
279 |
280 | [type="number"]::-webkit-inner-spin-button,
281 | [type="number"]::-webkit-outer-spin-button {
282 | height: auto;
283 | }
284 |
285 | /**
286 | * 1. Correct the odd appearance in Chrome and Safari.
287 | * 2. Correct the outline style in Safari.
288 | */
289 |
290 | [type="search"] {
291 | -webkit-appearance: textfield; /* 1 */
292 | outline-offset: -2px; /* 2 */
293 | }
294 |
295 | /**
296 | * Remove the inner padding in Chrome and Safari on macOS.
297 | */
298 |
299 | [type="search"]::-webkit-search-decoration {
300 | -webkit-appearance: none;
301 | }
302 |
303 | /**
304 | * 1. Correct the inability to style clickable types in iOS and Safari.
305 | * 2. Change font properties to `inherit` in Safari.
306 | */
307 |
308 | ::-webkit-file-upload-button {
309 | -webkit-appearance: button; /* 1 */
310 | font: inherit; /* 2 */
311 | }
312 |
313 | /* Interactive
314 | ========================================================================== */
315 |
316 | /*
317 | * Add the correct display in Edge, IE 10+, and Firefox.
318 | */
319 |
320 | details {
321 | display: block;
322 | }
323 |
324 | /*
325 | * Add the correct display in all browsers.
326 | */
327 |
328 | summary {
329 | display: list-item;
330 | }
331 |
332 | /* Misc
333 | ========================================================================== */
334 |
335 | /**
336 | * Add the correct display in IE 10+.
337 | */
338 |
339 | template {
340 | display: none;
341 | }
342 |
343 | /**
344 | * Add the correct display in IE 10.
345 | */
346 |
347 | [hidden] {
348 | display: none;
349 | }
350 |
--------------------------------------------------------------------------------
/sandbox.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "infiniteLoopProtection": true,
3 | "hardReloadOnChange": false,
4 | "view": "browser",
5 | "template": "node",
6 | "container": {
7 | "port": 3000,
8 | "startScript": "start",
9 | "node": "14"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/components/BaseHead.astro:
--------------------------------------------------------------------------------
1 | ---
2 | export interface Props {
3 | title: string;
4 | description: string;
5 | permalink: string;
6 | publishDate: string;
7 | ogImageUrl: string;
8 | canonicalURL?: string;
9 | }
10 |
11 | import site from "../data/site.js";
12 |
13 | const { title, description, permalink, publishDate, ogImageUrl, canonicalURL } = Astro.props;
14 | let fullTitle = title + ' | ' + site.title;
15 | let fullDesc = description + ' | ' + site.description;
16 |
17 | if ( title === '' ) {
18 | fullTitle = site.title;
19 | }
20 | if ( description === '' ) {
21 | fullDesc = site.description;
22 | }
23 | ---
24 |
25 |
26 |
27 |
28 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
{post.description}
24 | Read more about {post.title} 25 |13 | Highly Search Engine Optimized Starter Blog for Astro 14 |
15 | 16 | 19 | 20 |The page you were trying to look for was not found.
10 | Return to Front page 11 |Kaamos Astro is a lightweight, modern starter blog for Astro.
12 |It is built using the best Search Engine Optimization (SEO) practices and is even optimized with Schema.org microdata especially for blogs. 13 | This means the search engines understand even better your site and can result in more detailed Search Engine visibility.
14 |Kaamos Astro demo themes are developed with mobile-first approach and are pleasure to view on devices of all sizes. They also include fuild typography that adapt nicely to any screen sizes.
15 |Note: Demo themes are tested to work on modern browsers that support CSS Grid and Flexbox. There is no guarantee that the themes will work on older browsers.
16 |Headings:
15 |Single line blockquote:
23 |24 |Stay hungry. Stay foolish.
Multi line blockquote with a cite reference:
25 |26 |The HTML
<blockquote>
Element (or HTML Block Quotation Element) indicates that the enclosed text is an extended quotation. Usually, this is rendered visually by indentation (see Notes for how to change it). A URL for the source of the quotation may be given using the cite attribute, while a text representation of the source can be given using the<cite>
element.
multiple contributors – MDN HTML element reference – blockquote
27 |Employee | Salary | |
---|---|---|
John Doe | $1 | Because that’s all Steve Jobs needed for a salary. |
Jane Doe | $100K | For all the blogging she does. |
Fred Bloggs | $100M | Pictures are worth a thousand words, right? So Jane x 1,000. |
Jane Bloggs | $100B | With hair like that?! Enough said… |
Definition List Title Definition list division. Startup A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model. #dowork Coined by Rob Dyrdek and his personal body guard Christopher “Big Black” Boykins, “Do Work” works as a self motivator, to motivating your friends. Do It Live I’ll let Bill O’Reilly will explain this one.
31 |These are some tags:
37 |Address Tag 1 Infinite Loop
Cupertino, CA 95014
United States
Anchor Tag (aka. Link)
39 |This is an example of a link.
40 |Abbreviation Tag
41 |The abbreviation srsly stands for “seriously”.
42 |Acronym Tag (deprecated in HTML5)
43 |The acronym ftw stands for “for the win”.
44 |Big Tag (deprecated in HTML5)
45 |These tests are a big deal, but this tag is no longer supported in HTML5.
46 |Cite Tag
47 |“Code is poetry.” –Automattic
48 |Code Tag
49 |Delete Tag
50 |This tag will let you strike out text, but this tag is recommended supported in HTML5 (use the <s>
instead).
Emphasize Tag
52 |The emphasize tag should italicize text.
53 |Horizontal Rule Tag
54 |This sentence is following a <hr />
tag.
Insert Tag
57 |This tag should denote inserted text.
58 |Keyboard Tag
59 |This scarcely known tag emulates keyboard text, which is usually styled like the <code>
tag.
Preformatted Tag
61 |This tag is for preserving whitespace as typed, such as in poetry or ASCII art.
62 |Quote Tag for short, inline quotes
64 |Developers, developers, developers…
–Steve Ballmer
Strike Tag (deprecated in HTML5) and S Tag
66 |This tag shows strike-through text.
Small Tag
68 |This tag shows smaller text.
69 |Strong Tag
70 |This tag shows bold text.
71 |Subscript Tag
72 |Getting our science styling on with H2O, which should push the “2” down.
73 |Superscript Tag
74 |Still sticking with science and Albert Einstein’s E = MC2, which should lift the 2 up.
75 |Teletype Tag (obsolete in HTML5)
76 |This rarely used tag emulates teletype text, which is usually styled like the <code>
tag.
Underline Tag deprecated in HTML 4, re-introduced in HTML5 with other semantics
78 |This tag shows underlined text.
79 |Variable Tag
80 |This allows you to denote variables.
-------------------------------------------------------------------------------- /src/pages/blog/youtube-embeds.md: -------------------------------------------------------------------------------- 1 | --- 2 | setup: | 3 | import Layout from '../../layouts/BlogPostLayout.astro'; 4 | title: Some YouTube embeds 5 | description: Some YouTube videos embedded. 6 | publishDate: Thursday, February 17 2021 7 | permalink: https://my-site.dev/blog/youtube-embeds 8 | categories: 9 | - YouTube 10 | --- 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/pages/license.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import PageLayout from '../layouts/PageLayout.astro'; 3 | 4 | let title = 'License'; 5 | let description = 'Info about Kaamos Astro license.'; 6 | let permalink = 'https://my-site.dev/license'; 7 | --- 8 | 9 |Kaamos Astro is under the WTFPL so do what ever you want with it. 14 | However you are forbidden to hold me liable for anything, or claim that what you do with it is made by me.
15 | 16 |Headings:
12 |Single line blockquote:
20 |21 |Stay hungry. Stay foolish.
Multi line blockquote with a cite reference:
22 |23 |The HTML
<blockquote>
Element (or HTML Block Quotation Element) indicates that the enclosed text is an extended quotation. Usually, this is rendered visually by indentation (see Notes for how to change it). A URL for the source of the quotation may be given using the cite attribute, while a text representation of the source can be given using the<cite>
element.
multiple contributors – MDN HTML element reference – blockquote
24 |Employee | Salary | |
---|---|---|
John Doe | $1 | Because that’s all Steve Jobs needed for a salary. |
Jane Doe | $100K | For all the blogging she does. |
Fred Bloggs | $100M | Pictures are worth a thousand words, right? So Jane x 1,000. |
Jane Bloggs | $100B | With hair like that?! Enough said… |
Definition List Title Definition list division. Startup A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model. #dowork Coined by Rob Dyrdek and his personal body guard Christopher “Big Black” Boykins, “Do Work” works as a self motivator, to motivating your friends. Do It Live I’ll let Bill O’Reilly will explain this one.
28 |These are some tags:
34 |Address Tag 1 Infinite Loop
Cupertino, CA 95014
United States
Anchor Tag (aka. Link)
36 |This is an example of a link.
37 |Abbreviation Tag
38 |The abbreviation srsly stands for “seriously”.
39 |Acronym Tag (deprecated in HTML5)
40 |The acronym ftw stands for “for the win”.
41 |Big Tag (deprecated in HTML5)
42 |These tests are a big deal, but this tag is no longer supported in HTML5.
43 |Cite Tag
44 |“Code is poetry.” –Automattic
45 |Code Tag
46 |Delete Tag
47 |This tag will let you strike out text, but this tag is recommended supported in HTML5 (use the <s>
instead).
Emphasize Tag
49 |The emphasize tag should italicize text.
50 |Horizontal Rule Tag
51 |This sentence is following a <hr />
tag.
Insert Tag
54 |This tag should denote inserted text.
55 |Keyboard Tag
56 |This scarcely known tag emulates keyboard text, which is usually styled like the <code>
tag.
Preformatted Tag
58 |This tag is for preserving whitespace as typed, such as in poetry or ASCII art.
59 |Quote Tag for short, inline quotes
61 |Developers, developers, developers…
–Steve Ballmer
Strike Tag (deprecated in HTML5) and S Tag
63 |This tag shows strike-through text.
Small Tag
65 |This tag shows smaller text.
66 |Strong Tag
67 |This tag shows bold text.
68 |Subscript Tag
69 |Getting our science styling on with H2O, which should push the “2” down.
70 |Superscript Tag
71 |Still sticking with science and Albert Einstein’s E = MC2, which should lift the 2 up.
72 |Teletype Tag (obsolete in HTML5)
73 |This rarely used tag emulates teletype text, which is usually styled like the <code>
tag.
Underline Tag deprecated in HTML 4, re-introduced in HTML5 with other semantics
75 |This tag shows underlined text.
76 |Variable Tag
77 |This allows you to denote variables.
78 |