fixed favicon, updated image gallery
This commit is contained in:
parent
c81dd751e9
commit
a77f93842a
18 changed files with 5485 additions and 5453 deletions
103
README.md
103
README.md
|
@ -1,49 +1,54 @@
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://weforgecode.xyz/Spitfire/Branding/raw/branch/main/icon5.svg" alt="Logo" width="64" height="64">
|
<img src="https://weforgecode.xyz/Spitfire/Branding/raw/branch/main/icon5.svg" alt="Logo" width="64" height="64">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center" style="font-size: 32px;">
|
<p align="center" style="font-size: 32px;">
|
||||||
<strong>Spitfire Browser Website</strong>
|
<strong>Spitfire Browser Website</strong>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
Unlike some other browser sites flexing with their 98.8% TypeScript (yikes), i keep it cool with minimal JavaScript just enough to get the job done, no extra BS.
|
<p align="center">
|
||||||
|
Unlike some other browser sites flexing with their 98.8% TypeScript (yikes), i keep it cool with minimal JavaScript just enough to get the job done.
|
||||||
Spitfire Browser's website is built without Next.js, TypeScript, and Tailwind CSS or any other bullshit.
|
</p>
|
||||||
|
|
||||||
## TO-DO:
|
<p align="center">
|
||||||
|
Spitfire Browser's website is built without Next.js, TypeScript, and Tailwind CSS or any other BS.
|
||||||
- [ ] Add browser download/screenshots for this web browser website (optional)
|
</p>
|
||||||
|
|
||||||
### Blog entries should be fromated this way:
|
## TO-DO:
|
||||||
|
|
||||||
```md
|
- [ ] Add browser download/screenshots for this web browser website (optional)
|
||||||
[HEADER]
|
|
||||||
t: TITLE
|
### Blog entries should be fromated this way:
|
||||||
d: SHORT-DESC
|
|
||||||
p: 2024-08-16 15:04
|
```md
|
||||||
a: AUTHOR
|
[HEADER]
|
||||||
[END]
|
t: TITLE
|
||||||
|
d: SHORT-DESC
|
||||||
# lorem ipsum
|
p: 2024-08-16 15:04
|
||||||
|
a: AUTHOR
|
||||||
Vestibulum fermentum tortor id mi. Nullam at arcu a est sollicitudin euismod. Nullam faucibus mi quis velit. Mauris dictum facilisis augue. Nullam sapien sem, ornare ac, nonummy non, lobortis a enim. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Etiam commodo dui eget wisi. Mauris dictum facilisis augue. Etiam posuere lacus quis dolor. In sem justo, commodo ut, suscipit at, pharetra vitae, orci.
|
[END]
|
||||||
|
|
||||||
Vivamus luctus egestas leo. Phasellus faucibus molestie nisl. Etiam commodo dui eget wisi. Donec vitae arcu. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam neque. Suspendisse sagittis ultrices augue. Suspendisse nisl. Etiam sapien elit, consequat eget, tristique non, venenatis quis, ante. Phasellus rhoncus. Maecenas libero.
|
# lorem ipsum
|
||||||
```
|
|
||||||
|
Vestibulum fermentum tortor id mi. Nullam at arcu a est sollicitudin euismod. Nullam faucibus mi quis velit. Mauris dictum facilisis augue. Nullam sapien sem, ornare ac, nonummy non, lobortis a enim. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Etiam commodo dui eget wisi. Mauris dictum facilisis augue. Etiam posuere lacus quis dolor. In sem justo, commodo ut, suscipit at, pharetra vitae, orci.
|
||||||
*default path:*
|
|
||||||
|
Vivamus luctus egestas leo. Phasellus faucibus molestie nisl. Etiam commodo dui eget wisi. Donec vitae arcu. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam neque. Suspendisse sagittis ultrices augue. Suspendisse nisl. Etiam sapien elit, consequat eget, tristique non, venenatis quis, ante. Phasellus rhoncus. Maecenas libero.
|
||||||
```
|
```
|
||||||
/data/news/1.md
|
|
||||||
/data/news/2.md
|
*default path:*
|
||||||
...
|
|
||||||
```
|
```
|
||||||
|
/data/news/1.md
|
||||||
### Based on:
|
/data/news/2.md
|
||||||
|
...
|
||||||
Stellar by HTML5 UP
|
```
|
||||||
html5up.net | @ajlkn
|
|
||||||
|
### Based on HTML template:
|
||||||
### Licence:
|
|
||||||
|
[Stellar](https://html5up.net/stellar) by HTML5 UP
|
||||||
This project is licensed under the Creative Commons Attribution 3.0 License (CCA 3.0). For more details, see the LICENSE file.
|
|
||||||
|
html5up.net | @ajlkn
|
||||||
|
|
||||||
|
### Licence:
|
||||||
|
|
||||||
|
This project is licensed under the Creative Commons Attribution 3.0 License (CCA 3.0). For more details, see the LICENSE file.
|
||||||
|
|
26
go.mod
26
go.mod
|
@ -1,13 +1,13 @@
|
||||||
module my-web
|
module spitfire-browser-website
|
||||||
|
|
||||||
go 1.18
|
go 1.18
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
||||||
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible // indirect
|
github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible // indirect
|
||||||
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 // indirect
|
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 // indirect
|
||||||
github.com/gorilla/feeds v1.2.0 // indirect
|
github.com/gorilla/feeds v1.2.0 // indirect
|
||||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||||
github.com/technoweenie/multipartstreamer v1.0.1 // indirect
|
github.com/technoweenie/multipartstreamer v1.0.1 // indirect
|
||||||
golang.org/x/sys v0.4.0 // indirect
|
golang.org/x/sys v0.4.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
21
run.bat
Normal file
21
run.bat
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
@echo off
|
||||||
|
|
||||||
|
REM Default values
|
||||||
|
set PORT=8080
|
||||||
|
|
||||||
|
REM Parse command-line arguments
|
||||||
|
:parse_args
|
||||||
|
if "%~1"=="" goto run_app
|
||||||
|
if "%~1"=="-p" (
|
||||||
|
set PORT=%~2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
goto parse_args
|
||||||
|
) else (
|
||||||
|
echo Unknown parameter passed: %~1
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
:run_app
|
||||||
|
REM Run the Go application with the parsed flags
|
||||||
|
go run discord.go rss.go telegram.go save.go main.go -p=%PORT%
|
|
@ -1,50 +1,50 @@
|
||||||
/* Global settings for images and videos */
|
/* Global settings for images and videos */
|
||||||
img, video {
|
img, video {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-radius: 10px; /* Add rounded corners */
|
border-radius: 10px; /* Add rounded corners */
|
||||||
margin-top: 20px; /* Add space above the image */
|
margin-top: 20px; /* Add space above the image */
|
||||||
margin-bottom: 20px; /* Add space below the image */
|
margin-bottom: 20px; /* Add space below the image */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Exclude images inside the .icons class from global settings */
|
/* Exclude images inside the .icons class from global settings */
|
||||||
ul.icons img {
|
ul.icons img {
|
||||||
display: inline; /* Override display: block */
|
display: inline; /* Override display: block */
|
||||||
width: auto; /* Override width: 100% */
|
width: auto; /* Override width: 100% */
|
||||||
border-radius: 0; /* Remove rounded corners */
|
border-radius: 0; /* Remove rounded corners */
|
||||||
margin-top: 0; /* Remove top margin */
|
margin-top: 0; /* Remove top margin */
|
||||||
margin-bottom: 0; /* Remove bottom margin */
|
margin-bottom: 0; /* Remove bottom margin */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Align blog text and links */
|
/* Align blog text and links */
|
||||||
.align-blog p, a, em {
|
.align-blog p, a, em {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Increase margin top for all headings */
|
/* Increase margin top for all headings */
|
||||||
.align-blog h1,
|
.align-blog h1,
|
||||||
.align-blog h2,
|
.align-blog h2,
|
||||||
.align-blog h3,
|
.align-blog h3,
|
||||||
.align-blog h4,
|
.align-blog h4,
|
||||||
.align-blog h5,
|
.align-blog h5,
|
||||||
.align-blog h6 {
|
.align-blog h6 {
|
||||||
margin-top: 30px; /* Adjust this value to increase space above headings */
|
margin-top: 30px; /* Adjust this value to increase space above headings */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Icons specific styles */
|
/* Icons specific styles */
|
||||||
ul.icons {
|
ul.icons {
|
||||||
cursor: default;
|
cursor: default;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.icons li {
|
ul.icons li {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0 0.65em 0 0;
|
padding: 0 0.65em 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul.icons li:last-child {
|
ul.icons li:last-child {
|
||||||
padding-right: 0 !important;
|
padding-right: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,138 +1,139 @@
|
||||||
/* Adjust the gallery wrapper */
|
/* Adjust the gallery wrapper */
|
||||||
.gallery-wrapper {
|
.gallery-wrapper {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-width: 800px;
|
max-width: 800px;
|
||||||
margin: 0 auto; /* Center the gallery */
|
margin: 0 auto; /* Center the gallery */
|
||||||
overflow: hidden; /* Ensure content is within bounds */
|
overflow: hidden; /* Ensure content is within bounds */
|
||||||
}
|
}
|
||||||
|
|
||||||
.gallery-wrapper img {
|
.gallery-wrapper img {
|
||||||
display: block;
|
display: block;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
border: 1px solid #dddddd3d;
|
||||||
|
}
|
||||||
/* Slick carousel specific styles */
|
|
||||||
.slick-prev, .slick-next {
|
/* Slick carousel specific styles */
|
||||||
background: #444; /* Button background color */
|
.slick-prev, .slick-next {
|
||||||
border: none; /* Remove any border */
|
background: #444; /* Button background color */
|
||||||
border-radius: 50%; /* Make the buttons circular */
|
border: none; /* Remove any border */
|
||||||
color: #fff; /* Text color */
|
border-radius: 50%; /* Make the buttons circular */
|
||||||
font-size: 18px; /* Font size for the arrow */
|
color: #fff; /* Text color */
|
||||||
height: 40px; /* Button height */
|
font-size: 18px; /* Font size for the arrow */
|
||||||
width: 40px; /* Button width */
|
height: 40px; /* Button height */
|
||||||
line-height: 40px; /* Center text vertically */
|
width: 40px; /* Button width */
|
||||||
text-align: center; /* Center text horizontally */
|
line-height: 40px; /* Center text vertically */
|
||||||
z-index: 1000; /* Make sure buttons are above the carousel images */
|
text-align: center; /* Center text horizontally */
|
||||||
position: absolute;
|
z-index: 1000; /* Make sure buttons are above the carousel images */
|
||||||
top: 50%; /* Position vertically centered */
|
position: absolute;
|
||||||
transform: translateY(-50%);
|
top: 50%; /* Position vertically centered */
|
||||||
}
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
.slick-prev {
|
|
||||||
left: -50px; /* Position to the left of the carousel */
|
.slick-prev {
|
||||||
}
|
left: 0px;
|
||||||
|
}
|
||||||
.slick-next {
|
|
||||||
right: -50px; /* Position to the right of the carousel */
|
.slick-next {
|
||||||
}
|
right: 0px;
|
||||||
|
}
|
||||||
/* Center the dots under the image */
|
|
||||||
.slick-dots {
|
/* Center the dots under the image */
|
||||||
text-align: center;
|
.slick-dots {
|
||||||
margin-top: 15px; /* Space between image and dots */
|
text-align: center;
|
||||||
padding-left: 0;
|
margin-top: 15px; /* Space between image and dots */
|
||||||
list-style: none;
|
padding-left: 0;
|
||||||
}
|
list-style: none;
|
||||||
|
}
|
||||||
.slick-dots li {
|
|
||||||
display: inline-block; /* Align dots horizontally */
|
.slick-dots li {
|
||||||
margin: 0 8px; /* Space between dots */
|
display: inline-block; /* Align dots horizontally */
|
||||||
}
|
margin: 0 8px; /* Space between dots */
|
||||||
|
}
|
||||||
.slick-dots li button {
|
|
||||||
background: #ccc; /* Dot background color */
|
.slick-dots li button {
|
||||||
border: none; /* Remove any border */
|
background: #ccc; /* Dot background color */
|
||||||
border-radius: 50%; /* Make the dots circular */
|
border: none; /* Remove any border */
|
||||||
width: 12px; /* Dot width */
|
border-radius: 50%; /* Make the dots circular */
|
||||||
height: 12px; /* Dot height */
|
width: 12px; /* Dot width */
|
||||||
position: relative;
|
height: 12px; /* Dot height */
|
||||||
}
|
position: relative;
|
||||||
|
}
|
||||||
.slick-dots li button::before {
|
|
||||||
content: '';
|
.slick-dots li button::before {
|
||||||
display: block;
|
content: '';
|
||||||
width: 16px; /* Adjusted circle width */
|
display: block;
|
||||||
height: 16px; /* Adjusted circle height */
|
width: 16px; /* Adjusted circle width */
|
||||||
border-radius: 50%;
|
height: 16px; /* Adjusted circle height */
|
||||||
background-color: transparent;
|
border-radius: 50%;
|
||||||
border: 2px solid #ccc; /* Circle border color */
|
background-color: transparent;
|
||||||
position: absolute;
|
border: 2px solid #ccc; /* Circle border color */
|
||||||
left: 50%;
|
position: absolute;
|
||||||
top: 50%;
|
left: 50%;
|
||||||
transform: translate(-50%, -50%);
|
top: 50%;
|
||||||
}
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
.slick-dots li.slick-active button::before {
|
|
||||||
background-color: #fff; /* Active dot background color */
|
.slick-dots li.slick-active button::before {
|
||||||
border-color: #fff; /* Active dot border color */
|
background-color: #fff; /* Active dot background color */
|
||||||
}
|
border-color: #fff; /* Active dot border color */
|
||||||
|
}
|
||||||
/* This is what I get for global styling and using templates */
|
|
||||||
|
/* This is what I get for global styling and using templates */
|
||||||
/* Override the border-radius to remove rounded corners */
|
|
||||||
.slick-prev, .slick-next {
|
/* Override the border-radius to remove rounded corners */
|
||||||
border-radius: 0 !important;
|
.slick-prev, .slick-next {
|
||||||
background: none !important;
|
border-radius: 0 !important;
|
||||||
box-shadow: none !important;
|
background: none !important;
|
||||||
}
|
box-shadow: none !important;
|
||||||
|
}
|
||||||
/* If you want a specific shape, like a square or a different background */
|
|
||||||
.slick-prev, .slick-next {
|
/* If you want a specific shape, like a square or a different background */
|
||||||
border-radius: 0 !important;
|
.slick-prev, .slick-next {
|
||||||
background: transparent !important;
|
border-radius: 0 !important;
|
||||||
}
|
background: transparent !important;
|
||||||
|
}
|
||||||
/* Ensure the active dot buttons are not rounded */
|
|
||||||
.slick-dots li button {
|
/* Ensure the active dot buttons are not rounded */
|
||||||
border-radius: 0 !important;
|
.slick-dots li button {
|
||||||
background: none !important;
|
border-radius: 0 !important;
|
||||||
}
|
background: none !important;
|
||||||
|
}
|
||||||
.slick-dots li button::before {
|
|
||||||
border-radius: 0 !important;
|
.slick-dots li button::before {
|
||||||
}
|
border-radius: 0 !important;
|
||||||
|
}
|
||||||
/* General button override */
|
|
||||||
button[type="button"][role="tab"] {
|
/* General button override */
|
||||||
border-radius: 0 !important;
|
button[type="button"][role="tab"] {
|
||||||
background: none !important;
|
border-radius: 0 !important;
|
||||||
box-shadow: none !important;
|
background: none !important;
|
||||||
border: none !important;
|
box-shadow: none !important;
|
||||||
color: inherit !important;
|
border: none !important;
|
||||||
padding: 0 !important;
|
color: inherit !important;
|
||||||
}
|
padding: 0 !important;
|
||||||
|
}
|
||||||
/* Restore the round shape for the dots */
|
|
||||||
.slick-dots li button {
|
/* Restore the round shape for the dots */
|
||||||
border-radius: 50% !important;
|
.slick-dots li button {
|
||||||
background: #ccc !important;
|
border-radius: 50% !important;
|
||||||
width: 12px;
|
background: #ccc !important;
|
||||||
height: 12px;
|
width: 12px;
|
||||||
}
|
height: 12px;
|
||||||
|
}
|
||||||
/* Ensure the pseudo-element is also circular */
|
|
||||||
.slick-dots li button::before {
|
/* Ensure the pseudo-element is also circular */
|
||||||
border-radius: 50% !important;
|
.slick-dots li button::before {
|
||||||
background-color: transparent;
|
border-radius: 50% !important;
|
||||||
border: 2px solid #ccc;
|
background-color: transparent;
|
||||||
width: 16px;
|
border: 2px solid #ccc;
|
||||||
height: 16px;
|
width: 16px;
|
||||||
}
|
height: 16px;
|
||||||
|
}
|
||||||
/* Style for the active dot */
|
|
||||||
.slick-dots li.slick-active button::before {
|
/* Style for the active dot */
|
||||||
background-color: #fff;
|
.slick-dots li.slick-active button::before {
|
||||||
border-color: #fff;
|
background-color: #fff;
|
||||||
}
|
border-color: #fff;
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB |
7600
static/css/main.css
7600
static/css/main.css
File diff suppressed because it is too large
Load diff
2
static/css/slick.min.css
vendored
2
static/css/slick.min.css
vendored
|
@ -1,2 +1,2 @@
|
||||||
.slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:after,.slick-track:before{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}
|
.slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:after,.slick-track:before{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}
|
||||||
/*# sourceMappingURL=/sm/fb3ed351cd5c0f1f30f88778ee1f9b056598e6d25ac4fdcab1eebcd8be521cd9.map */
|
/*# sourceMappingURL=/sm/fb3ed351cd5c0f1f30f88778ee1f9b056598e6d25ac4fdcab1eebcd8be521cd9.map */
|
BIN
static/images/favicon.png
Normal file
BIN
static/images/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 81 KiB |
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
Stellar by HTML5 UP
|
Spitfire Browser by Internet Addict (https://weforgecode.xyz/Spitfire/Website)
|
||||||
html5up.net | @ajlkn
|
Based on Stellar by HTML5 UP | @ajlkn
|
||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
(function($) {
|
(function($) {
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
///
|
///
|
||||||
/// Stellar by HTML5 UP
|
// Spitfire Browser by Internet Addict (https://weforgecode.xyz/Spitfire/Website)
|
||||||
/// html5up.net | @ajlkn
|
// Based on Stellar by HTML5 UP | @ajlkn
|
||||||
/// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
///
|
///
|
||||||
|
|
||||||
/* Icons */
|
/* Icons */
|
||||||
|
|
||||||
ul.icons {
|
ul.icons {
|
||||||
cursor: default;
|
cursor: default;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 0 0.65em 0 0;
|
padding: 0 0.65em 0 0;
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
padding-right: 0 !important;
|
padding-right: 0 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,223 +1,223 @@
|
||||||
// breakpoints.scss v1.0 | @ajlkn | MIT licensed */
|
// breakpoints.scss v1.0 | @ajlkn | MIT licensed */
|
||||||
|
|
||||||
// Vars.
|
// Vars.
|
||||||
|
|
||||||
/// Breakpoints.
|
/// Breakpoints.
|
||||||
/// @var {list}
|
/// @var {list}
|
||||||
$breakpoints: () !global;
|
$breakpoints: () !global;
|
||||||
|
|
||||||
// Mixins.
|
// Mixins.
|
||||||
|
|
||||||
/// Sets breakpoints.
|
/// Sets breakpoints.
|
||||||
/// @param {map} $x Breakpoints.
|
/// @param {map} $x Breakpoints.
|
||||||
@mixin breakpoints($x: ()) {
|
@mixin breakpoints($x: ()) {
|
||||||
$breakpoints: $x !global;
|
$breakpoints: $x !global;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Wraps @content in a @media block targeting a specific orientation.
|
/// Wraps @content in a @media block targeting a specific orientation.
|
||||||
/// @param {string} $orientation Orientation.
|
/// @param {string} $orientation Orientation.
|
||||||
@mixin orientation($orientation) {
|
@mixin orientation($orientation) {
|
||||||
@media screen and (orientation: #{$orientation}) {
|
@media screen and (orientation: #{$orientation}) {
|
||||||
@content;
|
@content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Wraps @content in a @media block using a given query.
|
/// Wraps @content in a @media block using a given query.
|
||||||
/// @param {string} $query Query.
|
/// @param {string} $query Query.
|
||||||
@mixin breakpoint($query: null) {
|
@mixin breakpoint($query: null) {
|
||||||
|
|
||||||
$breakpoint: null;
|
$breakpoint: null;
|
||||||
$op: null;
|
$op: null;
|
||||||
$media: null;
|
$media: null;
|
||||||
|
|
||||||
// Determine operator, breakpoint.
|
// Determine operator, breakpoint.
|
||||||
|
|
||||||
// Greater than or equal.
|
// Greater than or equal.
|
||||||
@if (str-slice($query, 0, 2) == '>=') {
|
@if (str-slice($query, 0, 2) == '>=') {
|
||||||
|
|
||||||
$op: 'gte';
|
$op: 'gte';
|
||||||
$breakpoint: str-slice($query, 3);
|
$breakpoint: str-slice($query, 3);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Less than or equal.
|
// Less than or equal.
|
||||||
@elseif (str-slice($query, 0, 2) == '<=') {
|
@elseif (str-slice($query, 0, 2) == '<=') {
|
||||||
|
|
||||||
$op: 'lte';
|
$op: 'lte';
|
||||||
$breakpoint: str-slice($query, 3);
|
$breakpoint: str-slice($query, 3);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Greater than.
|
// Greater than.
|
||||||
@elseif (str-slice($query, 0, 1) == '>') {
|
@elseif (str-slice($query, 0, 1) == '>') {
|
||||||
|
|
||||||
$op: 'gt';
|
$op: 'gt';
|
||||||
$breakpoint: str-slice($query, 2);
|
$breakpoint: str-slice($query, 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Less than.
|
// Less than.
|
||||||
@elseif (str-slice($query, 0, 1) == '<') {
|
@elseif (str-slice($query, 0, 1) == '<') {
|
||||||
|
|
||||||
$op: 'lt';
|
$op: 'lt';
|
||||||
$breakpoint: str-slice($query, 2);
|
$breakpoint: str-slice($query, 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not.
|
// Not.
|
||||||
@elseif (str-slice($query, 0, 1) == '!') {
|
@elseif (str-slice($query, 0, 1) == '!') {
|
||||||
|
|
||||||
$op: 'not';
|
$op: 'not';
|
||||||
$breakpoint: str-slice($query, 2);
|
$breakpoint: str-slice($query, 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Equal.
|
// Equal.
|
||||||
@else {
|
@else {
|
||||||
|
|
||||||
$op: 'eq';
|
$op: 'eq';
|
||||||
$breakpoint: $query;
|
$breakpoint: $query;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build media.
|
// Build media.
|
||||||
@if ($breakpoint and map-has-key($breakpoints, $breakpoint)) {
|
@if ($breakpoint and map-has-key($breakpoints, $breakpoint)) {
|
||||||
|
|
||||||
$a: map-get($breakpoints, $breakpoint);
|
$a: map-get($breakpoints, $breakpoint);
|
||||||
|
|
||||||
// Range.
|
// Range.
|
||||||
@if (type-of($a) == 'list') {
|
@if (type-of($a) == 'list') {
|
||||||
|
|
||||||
$x: nth($a, 1);
|
$x: nth($a, 1);
|
||||||
$y: nth($a, 2);
|
$y: nth($a, 2);
|
||||||
|
|
||||||
// Max only.
|
// Max only.
|
||||||
@if ($x == null) {
|
@if ($x == null) {
|
||||||
|
|
||||||
// Greater than or equal (>= 0 / anything)
|
// Greater than or equal (>= 0 / anything)
|
||||||
@if ($op == 'gte') {
|
@if ($op == 'gte') {
|
||||||
$media: 'screen';
|
$media: 'screen';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Less than or equal (<= y)
|
// Less than or equal (<= y)
|
||||||
@elseif ($op == 'lte') {
|
@elseif ($op == 'lte') {
|
||||||
$media: 'screen and (max-width: ' + $y + ')';
|
$media: 'screen and (max-width: ' + $y + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Greater than (> y)
|
// Greater than (> y)
|
||||||
@elseif ($op == 'gt') {
|
@elseif ($op == 'gt') {
|
||||||
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Less than (< 0 / invalid)
|
// Less than (< 0 / invalid)
|
||||||
@elseif ($op == 'lt') {
|
@elseif ($op == 'lt') {
|
||||||
$media: 'screen and (max-width: -1px)';
|
$media: 'screen and (max-width: -1px)';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not (> y)
|
// Not (> y)
|
||||||
@elseif ($op == 'not') {
|
@elseif ($op == 'not') {
|
||||||
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Equal (<= y)
|
// Equal (<= y)
|
||||||
@else {
|
@else {
|
||||||
$media: 'screen and (max-width: ' + $y + ')';
|
$media: 'screen and (max-width: ' + $y + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Min only.
|
// Min only.
|
||||||
@else if ($y == null) {
|
@else if ($y == null) {
|
||||||
|
|
||||||
// Greater than or equal (>= x)
|
// Greater than or equal (>= x)
|
||||||
@if ($op == 'gte') {
|
@if ($op == 'gte') {
|
||||||
$media: 'screen and (min-width: ' + $x + ')';
|
$media: 'screen and (min-width: ' + $x + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Less than or equal (<= inf / anything)
|
// Less than or equal (<= inf / anything)
|
||||||
@elseif ($op == 'lte') {
|
@elseif ($op == 'lte') {
|
||||||
$media: 'screen';
|
$media: 'screen';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Greater than (> inf / invalid)
|
// Greater than (> inf / invalid)
|
||||||
@elseif ($op == 'gt') {
|
@elseif ($op == 'gt') {
|
||||||
$media: 'screen and (max-width: -1px)';
|
$media: 'screen and (max-width: -1px)';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Less than (< x)
|
// Less than (< x)
|
||||||
@elseif ($op == 'lt') {
|
@elseif ($op == 'lt') {
|
||||||
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not (< x)
|
// Not (< x)
|
||||||
@elseif ($op == 'not') {
|
@elseif ($op == 'not') {
|
||||||
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Equal (>= x)
|
// Equal (>= x)
|
||||||
@else {
|
@else {
|
||||||
$media: 'screen and (min-width: ' + $x + ')';
|
$media: 'screen and (min-width: ' + $x + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Min and max.
|
// Min and max.
|
||||||
@else {
|
@else {
|
||||||
|
|
||||||
// Greater than or equal (>= x)
|
// Greater than or equal (>= x)
|
||||||
@if ($op == 'gte') {
|
@if ($op == 'gte') {
|
||||||
$media: 'screen and (min-width: ' + $x + ')';
|
$media: 'screen and (min-width: ' + $x + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Less than or equal (<= y)
|
// Less than or equal (<= y)
|
||||||
@elseif ($op == 'lte') {
|
@elseif ($op == 'lte') {
|
||||||
$media: 'screen and (max-width: ' + $y + ')';
|
$media: 'screen and (max-width: ' + $y + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Greater than (> y)
|
// Greater than (> y)
|
||||||
@elseif ($op == 'gt') {
|
@elseif ($op == 'gt') {
|
||||||
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
$media: 'screen and (min-width: ' + ($y + 1) + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Less than (< x)
|
// Less than (< x)
|
||||||
@elseif ($op == 'lt') {
|
@elseif ($op == 'lt') {
|
||||||
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
$media: 'screen and (max-width: ' + ($x - 1) + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not (< x and > y)
|
// Not (< x and > y)
|
||||||
@elseif ($op == 'not') {
|
@elseif ($op == 'not') {
|
||||||
$media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')';
|
$media: 'screen and (max-width: ' + ($x - 1) + '), screen and (min-width: ' + ($y + 1) + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Equal (>= x and <= y)
|
// Equal (>= x and <= y)
|
||||||
@else {
|
@else {
|
||||||
$media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')';
|
$media: 'screen and (min-width: ' + $x + ') and (max-width: ' + $y + ')';
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// String.
|
// String.
|
||||||
@else {
|
@else {
|
||||||
|
|
||||||
// Missing a media type? Prefix with "screen".
|
// Missing a media type? Prefix with "screen".
|
||||||
@if (str-slice($a, 0, 1) == '(') {
|
@if (str-slice($a, 0, 1) == '(') {
|
||||||
$media: 'screen and ' + $a;
|
$media: 'screen and ' + $a;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise, use as-is.
|
// Otherwise, use as-is.
|
||||||
@else {
|
@else {
|
||||||
$media: $a;
|
$media: $a;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Output.
|
// Output.
|
||||||
@media #{$media} {
|
@media #{$media} {
|
||||||
@content;
|
@content;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,376 +1,376 @@
|
||||||
// vendor.scss v1.0 | @ajlkn | MIT licensed */
|
// vendor.scss v1.0 | @ajlkn | MIT licensed */
|
||||||
|
|
||||||
// Vars.
|
// Vars.
|
||||||
|
|
||||||
/// Vendor prefixes.
|
/// Vendor prefixes.
|
||||||
/// @var {list}
|
/// @var {list}
|
||||||
$vendor-prefixes: (
|
$vendor-prefixes: (
|
||||||
'-moz-',
|
'-moz-',
|
||||||
'-webkit-',
|
'-webkit-',
|
||||||
'-ms-',
|
'-ms-',
|
||||||
''
|
''
|
||||||
);
|
);
|
||||||
|
|
||||||
/// Properties that should be vendorized.
|
/// Properties that should be vendorized.
|
||||||
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
|
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
|
||||||
/// @var {list}
|
/// @var {list}
|
||||||
$vendor-properties: (
|
$vendor-properties: (
|
||||||
|
|
||||||
// Animation.
|
// Animation.
|
||||||
'animation',
|
'animation',
|
||||||
'animation-delay',
|
'animation-delay',
|
||||||
'animation-direction',
|
'animation-direction',
|
||||||
'animation-duration',
|
'animation-duration',
|
||||||
'animation-fill-mode',
|
'animation-fill-mode',
|
||||||
'animation-iteration-count',
|
'animation-iteration-count',
|
||||||
'animation-name',
|
'animation-name',
|
||||||
'animation-play-state',
|
'animation-play-state',
|
||||||
'animation-timing-function',
|
'animation-timing-function',
|
||||||
|
|
||||||
// Appearance.
|
// Appearance.
|
||||||
'appearance',
|
'appearance',
|
||||||
|
|
||||||
// Backdrop filter.
|
// Backdrop filter.
|
||||||
'backdrop-filter',
|
'backdrop-filter',
|
||||||
|
|
||||||
// Background image options.
|
// Background image options.
|
||||||
'background-clip',
|
'background-clip',
|
||||||
'background-origin',
|
'background-origin',
|
||||||
'background-size',
|
'background-size',
|
||||||
|
|
||||||
// Box sizing.
|
// Box sizing.
|
||||||
'box-sizing',
|
'box-sizing',
|
||||||
|
|
||||||
// Clip path.
|
// Clip path.
|
||||||
'clip-path',
|
'clip-path',
|
||||||
|
|
||||||
// Filter effects.
|
// Filter effects.
|
||||||
'filter',
|
'filter',
|
||||||
|
|
||||||
// Flexbox.
|
// Flexbox.
|
||||||
'align-content',
|
'align-content',
|
||||||
'align-items',
|
'align-items',
|
||||||
'align-self',
|
'align-self',
|
||||||
'flex',
|
'flex',
|
||||||
'flex-basis',
|
'flex-basis',
|
||||||
'flex-direction',
|
'flex-direction',
|
||||||
'flex-flow',
|
'flex-flow',
|
||||||
'flex-grow',
|
'flex-grow',
|
||||||
'flex-shrink',
|
'flex-shrink',
|
||||||
'flex-wrap',
|
'flex-wrap',
|
||||||
'justify-content',
|
'justify-content',
|
||||||
'order',
|
'order',
|
||||||
|
|
||||||
// Font feature.
|
// Font feature.
|
||||||
'font-feature-settings',
|
'font-feature-settings',
|
||||||
'font-language-override',
|
'font-language-override',
|
||||||
'font-variant-ligatures',
|
'font-variant-ligatures',
|
||||||
|
|
||||||
// Font kerning.
|
// Font kerning.
|
||||||
'font-kerning',
|
'font-kerning',
|
||||||
|
|
||||||
// Fragmented borders and backgrounds.
|
// Fragmented borders and backgrounds.
|
||||||
'box-decoration-break',
|
'box-decoration-break',
|
||||||
|
|
||||||
// Grid layout.
|
// Grid layout.
|
||||||
'grid-column',
|
'grid-column',
|
||||||
'grid-column-align',
|
'grid-column-align',
|
||||||
'grid-column-end',
|
'grid-column-end',
|
||||||
'grid-column-start',
|
'grid-column-start',
|
||||||
'grid-row',
|
'grid-row',
|
||||||
'grid-row-align',
|
'grid-row-align',
|
||||||
'grid-row-end',
|
'grid-row-end',
|
||||||
'grid-row-start',
|
'grid-row-start',
|
||||||
'grid-template-columns',
|
'grid-template-columns',
|
||||||
'grid-template-rows',
|
'grid-template-rows',
|
||||||
|
|
||||||
// Hyphens.
|
// Hyphens.
|
||||||
'hyphens',
|
'hyphens',
|
||||||
'word-break',
|
'word-break',
|
||||||
|
|
||||||
// Masks.
|
// Masks.
|
||||||
'mask',
|
'mask',
|
||||||
'mask-border',
|
'mask-border',
|
||||||
'mask-border-outset',
|
'mask-border-outset',
|
||||||
'mask-border-repeat',
|
'mask-border-repeat',
|
||||||
'mask-border-slice',
|
'mask-border-slice',
|
||||||
'mask-border-source',
|
'mask-border-source',
|
||||||
'mask-border-width',
|
'mask-border-width',
|
||||||
'mask-clip',
|
'mask-clip',
|
||||||
'mask-composite',
|
'mask-composite',
|
||||||
'mask-image',
|
'mask-image',
|
||||||
'mask-origin',
|
'mask-origin',
|
||||||
'mask-position',
|
'mask-position',
|
||||||
'mask-repeat',
|
'mask-repeat',
|
||||||
'mask-size',
|
'mask-size',
|
||||||
|
|
||||||
// Multicolumn.
|
// Multicolumn.
|
||||||
'break-after',
|
'break-after',
|
||||||
'break-before',
|
'break-before',
|
||||||
'break-inside',
|
'break-inside',
|
||||||
'column-count',
|
'column-count',
|
||||||
'column-fill',
|
'column-fill',
|
||||||
'column-gap',
|
'column-gap',
|
||||||
'column-rule',
|
'column-rule',
|
||||||
'column-rule-color',
|
'column-rule-color',
|
||||||
'column-rule-style',
|
'column-rule-style',
|
||||||
'column-rule-width',
|
'column-rule-width',
|
||||||
'column-span',
|
'column-span',
|
||||||
'column-width',
|
'column-width',
|
||||||
'columns',
|
'columns',
|
||||||
|
|
||||||
// Object fit.
|
// Object fit.
|
||||||
'object-fit',
|
'object-fit',
|
||||||
'object-position',
|
'object-position',
|
||||||
|
|
||||||
// Regions.
|
// Regions.
|
||||||
'flow-from',
|
'flow-from',
|
||||||
'flow-into',
|
'flow-into',
|
||||||
'region-fragment',
|
'region-fragment',
|
||||||
|
|
||||||
// Scroll snap points.
|
// Scroll snap points.
|
||||||
'scroll-snap-coordinate',
|
'scroll-snap-coordinate',
|
||||||
'scroll-snap-destination',
|
'scroll-snap-destination',
|
||||||
'scroll-snap-points-x',
|
'scroll-snap-points-x',
|
||||||
'scroll-snap-points-y',
|
'scroll-snap-points-y',
|
||||||
'scroll-snap-type',
|
'scroll-snap-type',
|
||||||
|
|
||||||
// Shapes.
|
// Shapes.
|
||||||
'shape-image-threshold',
|
'shape-image-threshold',
|
||||||
'shape-margin',
|
'shape-margin',
|
||||||
'shape-outside',
|
'shape-outside',
|
||||||
|
|
||||||
// Tab size.
|
// Tab size.
|
||||||
'tab-size',
|
'tab-size',
|
||||||
|
|
||||||
// Text align last.
|
// Text align last.
|
||||||
'text-align-last',
|
'text-align-last',
|
||||||
|
|
||||||
// Text decoration.
|
// Text decoration.
|
||||||
'text-decoration-color',
|
'text-decoration-color',
|
||||||
'text-decoration-line',
|
'text-decoration-line',
|
||||||
'text-decoration-skip',
|
'text-decoration-skip',
|
||||||
'text-decoration-style',
|
'text-decoration-style',
|
||||||
|
|
||||||
// Text emphasis.
|
// Text emphasis.
|
||||||
'text-emphasis',
|
'text-emphasis',
|
||||||
'text-emphasis-color',
|
'text-emphasis-color',
|
||||||
'text-emphasis-position',
|
'text-emphasis-position',
|
||||||
'text-emphasis-style',
|
'text-emphasis-style',
|
||||||
|
|
||||||
// Text size adjust.
|
// Text size adjust.
|
||||||
'text-size-adjust',
|
'text-size-adjust',
|
||||||
|
|
||||||
// Text spacing.
|
// Text spacing.
|
||||||
'text-spacing',
|
'text-spacing',
|
||||||
|
|
||||||
// Transform.
|
// Transform.
|
||||||
'transform',
|
'transform',
|
||||||
'transform-origin',
|
'transform-origin',
|
||||||
|
|
||||||
// Transform 3D.
|
// Transform 3D.
|
||||||
'backface-visibility',
|
'backface-visibility',
|
||||||
'perspective',
|
'perspective',
|
||||||
'perspective-origin',
|
'perspective-origin',
|
||||||
'transform-style',
|
'transform-style',
|
||||||
|
|
||||||
// Transition.
|
// Transition.
|
||||||
'transition',
|
'transition',
|
||||||
'transition-delay',
|
'transition-delay',
|
||||||
'transition-duration',
|
'transition-duration',
|
||||||
'transition-property',
|
'transition-property',
|
||||||
'transition-timing-function',
|
'transition-timing-function',
|
||||||
|
|
||||||
// Unicode bidi.
|
// Unicode bidi.
|
||||||
'unicode-bidi',
|
'unicode-bidi',
|
||||||
|
|
||||||
// User select.
|
// User select.
|
||||||
'user-select',
|
'user-select',
|
||||||
|
|
||||||
// Writing mode.
|
// Writing mode.
|
||||||
'writing-mode',
|
'writing-mode',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/// Values that should be vendorized.
|
/// Values that should be vendorized.
|
||||||
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
|
/// Data via caniuse.com, github.com/postcss/autoprefixer, and developer.mozilla.org
|
||||||
/// @var {list}
|
/// @var {list}
|
||||||
$vendor-values: (
|
$vendor-values: (
|
||||||
|
|
||||||
// Cross fade.
|
// Cross fade.
|
||||||
'cross-fade',
|
'cross-fade',
|
||||||
|
|
||||||
// Element function.
|
// Element function.
|
||||||
'element',
|
'element',
|
||||||
|
|
||||||
// Filter function.
|
// Filter function.
|
||||||
'filter',
|
'filter',
|
||||||
|
|
||||||
// Flexbox.
|
// Flexbox.
|
||||||
'flex',
|
'flex',
|
||||||
'inline-flex',
|
'inline-flex',
|
||||||
|
|
||||||
// Grab cursors.
|
// Grab cursors.
|
||||||
'grab',
|
'grab',
|
||||||
'grabbing',
|
'grabbing',
|
||||||
|
|
||||||
// Gradients.
|
// Gradients.
|
||||||
'linear-gradient',
|
'linear-gradient',
|
||||||
'repeating-linear-gradient',
|
'repeating-linear-gradient',
|
||||||
'radial-gradient',
|
'radial-gradient',
|
||||||
'repeating-radial-gradient',
|
'repeating-radial-gradient',
|
||||||
|
|
||||||
// Grid layout.
|
// Grid layout.
|
||||||
'grid',
|
'grid',
|
||||||
'inline-grid',
|
'inline-grid',
|
||||||
|
|
||||||
// Image set.
|
// Image set.
|
||||||
'image-set',
|
'image-set',
|
||||||
|
|
||||||
// Intrinsic width.
|
// Intrinsic width.
|
||||||
'max-content',
|
'max-content',
|
||||||
'min-content',
|
'min-content',
|
||||||
'fit-content',
|
'fit-content',
|
||||||
'fill',
|
'fill',
|
||||||
'fill-available',
|
'fill-available',
|
||||||
'stretch',
|
'stretch',
|
||||||
|
|
||||||
// Sticky position.
|
// Sticky position.
|
||||||
'sticky',
|
'sticky',
|
||||||
|
|
||||||
// Transform.
|
// Transform.
|
||||||
'transform',
|
'transform',
|
||||||
|
|
||||||
// Zoom cursors.
|
// Zoom cursors.
|
||||||
'zoom-in',
|
'zoom-in',
|
||||||
'zoom-out',
|
'zoom-out',
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Functions.
|
// Functions.
|
||||||
|
|
||||||
/// Removes a specific item from a list.
|
/// Removes a specific item from a list.
|
||||||
/// @author Hugo Giraudel
|
/// @author Hugo Giraudel
|
||||||
/// @param {list} $list List.
|
/// @param {list} $list List.
|
||||||
/// @param {integer} $index Index.
|
/// @param {integer} $index Index.
|
||||||
/// @return {list} Updated list.
|
/// @return {list} Updated list.
|
||||||
@function remove-nth($list, $index) {
|
@function remove-nth($list, $index) {
|
||||||
|
|
||||||
$result: null;
|
$result: null;
|
||||||
|
|
||||||
@if type-of($index) != number {
|
@if type-of($index) != number {
|
||||||
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
|
@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
|
||||||
}
|
}
|
||||||
@else if $index == 0 {
|
@else if $index == 0 {
|
||||||
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
|
@warn "List index 0 must be a non-zero integer for `remove-nth`.";
|
||||||
}
|
}
|
||||||
@else if abs($index) > length($list) {
|
@else if abs($index) > length($list) {
|
||||||
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
|
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
|
||||||
}
|
}
|
||||||
@else {
|
@else {
|
||||||
|
|
||||||
$result: ();
|
$result: ();
|
||||||
$index: if($index < 0, length($list) + $index + 1, $index);
|
$index: if($index < 0, length($list) + $index + 1, $index);
|
||||||
|
|
||||||
@for $i from 1 through length($list) {
|
@for $i from 1 through length($list) {
|
||||||
|
|
||||||
@if $i != $index {
|
@if $i != $index {
|
||||||
$result: append($result, nth($list, $i));
|
$result: append($result, nth($list, $i));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@return $result;
|
@return $result;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Replaces a substring within another string.
|
/// Replaces a substring within another string.
|
||||||
/// @author Hugo Giraudel
|
/// @author Hugo Giraudel
|
||||||
/// @param {string} $string String.
|
/// @param {string} $string String.
|
||||||
/// @param {string} $search Substring.
|
/// @param {string} $search Substring.
|
||||||
/// @param {string} $replace Replacement.
|
/// @param {string} $replace Replacement.
|
||||||
/// @return {string} Updated string.
|
/// @return {string} Updated string.
|
||||||
@function str-replace($string, $search, $replace: '') {
|
@function str-replace($string, $search, $replace: '') {
|
||||||
|
|
||||||
$index: str-index($string, $search);
|
$index: str-index($string, $search);
|
||||||
|
|
||||||
@if $index {
|
@if $index {
|
||||||
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
|
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
|
||||||
}
|
}
|
||||||
|
|
||||||
@return $string;
|
@return $string;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Replaces a substring within each string in a list.
|
/// Replaces a substring within each string in a list.
|
||||||
/// @param {list} $strings List of strings.
|
/// @param {list} $strings List of strings.
|
||||||
/// @param {string} $search Substring.
|
/// @param {string} $search Substring.
|
||||||
/// @param {string} $replace Replacement.
|
/// @param {string} $replace Replacement.
|
||||||
/// @return {list} Updated list of strings.
|
/// @return {list} Updated list of strings.
|
||||||
@function str-replace-all($strings, $search, $replace: '') {
|
@function str-replace-all($strings, $search, $replace: '') {
|
||||||
|
|
||||||
@each $string in $strings {
|
@each $string in $strings {
|
||||||
$strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
|
$strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
|
||||||
}
|
}
|
||||||
|
|
||||||
@return $strings;
|
@return $strings;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mixins.
|
// Mixins.
|
||||||
|
|
||||||
/// Wraps @content in vendorized keyframe blocks.
|
/// Wraps @content in vendorized keyframe blocks.
|
||||||
/// @param {string} $name Name.
|
/// @param {string} $name Name.
|
||||||
@mixin keyframes($name) {
|
@mixin keyframes($name) {
|
||||||
|
|
||||||
@-moz-keyframes #{$name} { @content; }
|
@-moz-keyframes #{$name} { @content; }
|
||||||
@-webkit-keyframes #{$name} { @content; }
|
@-webkit-keyframes #{$name} { @content; }
|
||||||
@-ms-keyframes #{$name} { @content; }
|
@-ms-keyframes #{$name} { @content; }
|
||||||
@keyframes #{$name} { @content; }
|
@keyframes #{$name} { @content; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Vendorizes a declaration's property and/or value(s).
|
/// Vendorizes a declaration's property and/or value(s).
|
||||||
/// @param {string} $property Property.
|
/// @param {string} $property Property.
|
||||||
/// @param {mixed} $value String/list of value(s).
|
/// @param {mixed} $value String/list of value(s).
|
||||||
@mixin vendor($property, $value) {
|
@mixin vendor($property, $value) {
|
||||||
|
|
||||||
// Determine if property should expand.
|
// Determine if property should expand.
|
||||||
$expandProperty: index($vendor-properties, $property);
|
$expandProperty: index($vendor-properties, $property);
|
||||||
|
|
||||||
// Determine if value should expand (and if so, add '-prefix-' placeholder).
|
// Determine if value should expand (and if so, add '-prefix-' placeholder).
|
||||||
$expandValue: false;
|
$expandValue: false;
|
||||||
|
|
||||||
@each $x in $value {
|
@each $x in $value {
|
||||||
@each $y in $vendor-values {
|
@each $y in $vendor-values {
|
||||||
@if $y == str-slice($x, 1, str-length($y)) {
|
@if $y == str-slice($x, 1, str-length($y)) {
|
||||||
|
|
||||||
$value: set-nth($value, index($value, $x), '-prefix-' + $x);
|
$value: set-nth($value, index($value, $x), '-prefix-' + $x);
|
||||||
$expandValue: true;
|
$expandValue: true;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Expand property?
|
// Expand property?
|
||||||
@if $expandProperty {
|
@if $expandProperty {
|
||||||
@each $vendor in $vendor-prefixes {
|
@each $vendor in $vendor-prefixes {
|
||||||
#{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
#{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Expand just the value?
|
// Expand just the value?
|
||||||
@elseif $expandValue {
|
@elseif $expandValue {
|
||||||
@each $vendor in $vendor-prefixes {
|
@each $vendor in $vendor-prefixes {
|
||||||
#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Neither? Treat them as a normal declaration.
|
// Neither? Treat them as a normal declaration.
|
||||||
@else {
|
@else {
|
||||||
#{$property}: #{$value};
|
#{$property}: #{$value};
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,17 +1,17 @@
|
||||||
<!DOCTYPE HTML>
|
<!DOCTYPE HTML>
|
||||||
<!--
|
<!--
|
||||||
Stellar by HTML5 UP
|
Spitfire Browser by Internet Addict (https://weforgecode.xyz/Spitfire/Website)
|
||||||
html5up.net | @ajlkn
|
Based on Stellar by HTML5 UP | @ajlkn
|
||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
-->
|
-->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="icon" type="image/png" href="favicon.png">
|
<link rel="icon" type="image/png" href="static/images/favicon.png">
|
||||||
<title>Spitfire Browser - Downloads</title>
|
<title>Spitfire Browser - Downloads</title>
|
||||||
<meta content="🌐 Spitfire Browser" property="og:title" />
|
<meta content="🌐 Spitfire Browser" property="og:title" />
|
||||||
<meta content="Privacy respecting user friendly web browser." property="og:description" />
|
<meta content="Privacy respecting user friendly web browser." property="og:description" />
|
||||||
<meta content="https://spitfirebrowser.com/" property="og:url" />
|
<meta content="https://spitfirebrowser.com/" property="og:url" />
|
||||||
<meta content="https://spitfirebrowser.com/favicon.png" property="og:image" />
|
<meta content="https://spitfirebrowser.com/static/images/favicon.png" property="og:image" />
|
||||||
<meta content="#f1f1f1" data-react-helmet="true" name="theme-color" />
|
<meta content="#f1f1f1" data-react-helmet="true" name="theme-color" />
|
||||||
<meta name="darkreader-lock">
|
<meta name="darkreader-lock">
|
||||||
|
|
||||||
|
|
|
@ -1,63 +1,63 @@
|
||||||
<!DOCTYPE HTML>
|
<!DOCTYPE HTML>
|
||||||
<!--
|
<!--
|
||||||
Stellar by HTML5 UP
|
Spitfire Browser by Internet Addict (https://weforgecode.xyz/Spitfire/Website)
|
||||||
html5up.net | @ajlkn
|
Based on Stellar by HTML5 UP | @ajlkn
|
||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
-->
|
-->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="icon" type="image/png" href="favicon.png">
|
<link rel="icon" type="image/png" href="static/images/favicon.png">
|
||||||
<title>Spitfire Browser - Downloads</title>
|
<title>Spitfire Browser - Downloads</title>
|
||||||
<meta content="🌐 Spitfire Browser" property="og:title" />
|
<meta content="🌐 Spitfire Browser" property="og:title" />
|
||||||
<meta content="Privacy respecting user friendly web browser." property="og:description" />
|
<meta content="Privacy respecting user friendly web browser." property="og:description" />
|
||||||
<meta content="https://spitfirebrowser.com/" property="og:url" />
|
<meta content="https://spitfirebrowser.com/" property="og:url" />
|
||||||
<meta content="https://spitfirebrowser.com/favicon.png" property="og:image" />
|
<meta content="https://spitfirebrowser.com/static/images/favicon.png" property="og:image" />
|
||||||
<meta content="#f1f1f1" data-react-helmet="true" name="theme-color" />
|
<meta content="#f1f1f1" data-react-helmet="true" name="theme-color" />
|
||||||
<meta name="darkreader-lock">
|
<meta name="darkreader-lock">
|
||||||
|
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||||
<link rel="stylesheet" href="static/css/main.css" />
|
<link rel="stylesheet" href="static/css/main.css" />
|
||||||
<link rel="stylesheet" href="static/css/stars.css" />
|
<link rel="stylesheet" href="static/css/stars.css" />
|
||||||
<noscript><link rel="stylesheet" href="static/css/noscript.css" /></noscript>
|
<noscript><link rel="stylesheet" href="static/css/noscript.css" /></noscript>
|
||||||
<style>
|
<style>
|
||||||
.download-section {
|
.download-section {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 2em 0;
|
padding: 2em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.download-buttons {
|
.download-buttons {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
gap: 1em;
|
gap: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.download-button {
|
.download-button {
|
||||||
border-radius: 0.5em;
|
border-radius: 0.5em;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
width: 220px;
|
width: 220px;
|
||||||
height: 220px;
|
height: 220px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
transition: background-color 0.3s ease;
|
transition: background-color 0.3s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
.download-button:hover {
|
.download-button:hover {
|
||||||
background-color: #444;
|
background-color: #444;
|
||||||
}
|
}
|
||||||
|
|
||||||
.download-button img {
|
.download-button img {
|
||||||
width: 48px;
|
width: 48px;
|
||||||
height: 48px;
|
height: 48px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.download-button span {
|
.download-button span {
|
||||||
display: block;
|
display: block;
|
||||||
margin-top: 0.5em;
|
margin-top: 0.5em;
|
||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="is-preload">
|
<body class="is-preload">
|
||||||
|
|
||||||
<!-- Star Background Divs -->
|
<!-- Star Background Divs -->
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
<!DOCTYPE HTML>
|
<!DOCTYPE HTML>
|
||||||
<!--
|
<!--
|
||||||
Spitfire Browser by Internet Addict
|
Spitfire Browser by Internet Addict (https://weforgecode.xyz/Spitfire/Website)
|
||||||
Based on Stellar by HTML5 UP
|
Based on Stellar by HTML5 UP | @ajlkn
|
||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
-->
|
-->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="icon" type="image/png" href="favicon.png">
|
<link rel="icon" type="image/png" href="static/images/favicon.png">
|
||||||
<title>Spitfire Browser - Fast. Secure. Elegant.</title>
|
<title>Spitfire Browser - Fast. Secure. Elegant.</title>
|
||||||
<meta content="🌐 Spitfire Browser" property="og:title" />
|
<meta content="🌐 Spitfire Browser" property="og:title" />
|
||||||
<meta content="Privacy respecting user friendly web browser." property="og:description" />
|
<meta content="Privacy respecting user friendly web browser." property="og:description" />
|
||||||
<meta content="https://spitfirebrowser.com/" property="og:url" />
|
<meta content="https://spitfirebrowser.com/" property="og:url" />
|
||||||
<meta content="https://spitfirebrowser.com/favicon.png" property="og:image" />
|
<meta content="https://spitfirebrowser.com/static/images/favicon.png" property="og:image" />
|
||||||
<meta content="#f1f1f1" data-react-helmet="true" name="theme-color" />
|
<meta content="#f1f1f1" data-react-helmet="true" name="theme-color" />
|
||||||
<meta name="darkreader-lock">
|
<meta name="darkreader-lock">
|
||||||
|
|
||||||
|
|
|
@ -1,115 +1,115 @@
|
||||||
<!DOCTYPE HTML>
|
<!DOCTYPE HTML>
|
||||||
<!--
|
<!--
|
||||||
Stellar by HTML5 UP
|
Spitfire Browser by Internet Addict (https://weforgecode.xyz/Spitfire/Website)
|
||||||
html5up.net | @ajlkn
|
Based on Stellar by HTML5 UP | @ajlkn
|
||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||||
-->
|
-->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="icon" type="image/png" href="favicon.png">
|
<link rel="icon" type="image/png" href="static/images/favicon.png">
|
||||||
<title>{{.Title}}</title>
|
<title>{{.Title}}</title>
|
||||||
<meta content="🌐 {{.Title}}" property="og:title" />
|
<meta content="🌐 {{.Title}}" property="og:title" />
|
||||||
<meta content="Privacy respecting user friendly web browser." property="og:description" />
|
<meta content="Privacy respecting user friendly web browser." property="og:description" />
|
||||||
<meta content="https://spitfirebrowser.com/" property="og:url" />
|
<meta content="https://spitfirebrowser.com/" property="og:url" />
|
||||||
<meta content="https://spitfirebrowser.com/favicon.png" property="og:image" />
|
<meta content="https://spitfirebrowser.com/static/images/favicon.png" property="og:image" />
|
||||||
<meta content="#f1f1f1" data-react-helmet="true" name="theme-color" />
|
<meta content="#f1f1f1" data-react-helmet="true" name="theme-color" />
|
||||||
<meta name="darkreader-lock">
|
<meta name="darkreader-lock">
|
||||||
|
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||||||
<link rel="stylesheet" href="/static/css/main.css" />
|
<link rel="stylesheet" href="/static/css/main.css" />
|
||||||
<link rel="stylesheet" href="/static/css/stars.css" />
|
<link rel="stylesheet" href="/static/css/stars.css" />
|
||||||
<link rel="stylesheet" href="/static/css/extras.css" />
|
<link rel="stylesheet" href="/static/css/extras.css" />
|
||||||
<link rel="stylesheet" href="/static/css/blog.css" />
|
<link rel="stylesheet" href="/static/css/blog.css" />
|
||||||
<noscript><link rel="stylesheet" href="/static/css/noscript.css" /></noscript>
|
<noscript><link rel="stylesheet" href="/static/css/noscript.css" /></noscript>
|
||||||
</head>
|
</head>
|
||||||
<body class="is-preload">
|
<body class="is-preload">
|
||||||
|
|
||||||
<!-- Star Background Divs -->
|
<!-- Star Background Divs -->
|
||||||
<div id="star-background">
|
<div id="star-background">
|
||||||
<div id="stars"></div>
|
<div id="stars"></div>
|
||||||
<div id="stars2"></div>
|
<div id="stars2"></div>
|
||||||
<div id="stars3"></div>
|
<div id="stars3"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Top Floater Footer -->
|
<!-- Top Floater Footer -->
|
||||||
<div style="background-color: red; color: white; text-align: center; padding: 10px 0; position: fixed; top: 0; width: 100%; z-index: 1000;">
|
<div style="background-color: red; color: white; text-align: center; padding: 10px 0; position: fixed; top: 0; width: 100%; z-index: 1000;">
|
||||||
🚧👷♂️ This site is under construction! Please check back later. 👷♀️🚧
|
🚧👷♂️ This site is under construction! Please check back later. 👷♀️🚧
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Wrapper -->
|
<!-- Wrapper -->
|
||||||
<div id="wrapper">
|
<div id="wrapper">
|
||||||
|
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<header id="header" class="alt">
|
<header id="header" class="alt">
|
||||||
<span class="logo">
|
<span class="logo">
|
||||||
<a href="/"><img src="/static/images/logo.svg" alt="Spitfire Logo" /></a>
|
<a href="/"><img src="/static/images/logo.svg" alt="Spitfire Logo" /></a>
|
||||||
</span>
|
</span>
|
||||||
<h1>Spitfire Browser News</h1>
|
<h1>Spitfire Browser News</h1>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<!-- Main -->
|
<!-- Main -->
|
||||||
<div id="main">
|
<div id="main">
|
||||||
<!-- Stable Release Section -->
|
<!-- Stable Release Section -->
|
||||||
<section id="cta" class="main">
|
<section id="cta" class="main">
|
||||||
<div class="center-text">
|
<div class="center-text">
|
||||||
<header class="major">
|
<header class="major">
|
||||||
<div class="align-blog"> <p>{{.Content}}</p> </div>
|
<div class="align-blog"> <p>{{.Content}}</p> </div>
|
||||||
</header>
|
</header>
|
||||||
<footer class="major">
|
<footer class="major">
|
||||||
<ul class="actions special">
|
<ul class="actions special">
|
||||||
{{if .PrevLink}}
|
{{if .PrevLink}}
|
||||||
<li><a href="{{.PrevLink}}" class="button primary small">Previous</a></li>
|
<li><a href="{{.PrevLink}}" class="button primary small">Previous</a></li>
|
||||||
{{end}}
|
{{end}}
|
||||||
<li><a href="/" class="button primary small">Home</a></li>
|
<li><a href="/" class="button primary small">Home</a></li>
|
||||||
{{if .NextLink}}
|
{{if .NextLink}}
|
||||||
<li><a href="{{.NextLink}}" class="button primary small">Next</a></li>
|
<li><a href="{{.NextLink}}" class="button primary small">Next</a></li>
|
||||||
{{end}}
|
{{end}}
|
||||||
</ul>
|
</ul>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Footer -->
|
<!-- Footer -->
|
||||||
<footer id="footer">
|
<footer id="footer">
|
||||||
<section>
|
<section>
|
||||||
<h2>Support me</h2>
|
<h2>Support me</h2>
|
||||||
<ul class="icons">
|
<ul class="icons">
|
||||||
<li>
|
<li>
|
||||||
<a href="#" class="icon alt">
|
<a href="#" class="icon alt">
|
||||||
<img src="/static/images/icons/regular/heart.svg" alt="LibrePay">
|
<img src="/static/images/icons/regular/heart.svg" alt="LibrePay">
|
||||||
<span class="label">LibrePay</span>
|
<span class="label">LibrePay</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="https://weforgecode.xyz/Spitfire/" class="icon alt">
|
<a href="https://weforgecode.xyz/Spitfire/" class="icon alt">
|
||||||
<img src="/static/images/icons/brands/git-alt.svg" alt="Forgejo">
|
<img src="/static/images/icons/brands/git-alt.svg" alt="Forgejo">
|
||||||
<span class="label">Forgejo</span>
|
<span class="label">Forgejo</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="#" class="icon alt">
|
<a href="#" class="icon alt">
|
||||||
<img src="/static/images/icons/brands/youtube.svg" alt="YouTube">
|
<img src="/static/images/icons/brands/youtube.svg" alt="YouTube">
|
||||||
<span class="label">YouTube</span>
|
<span class="label">YouTube</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<p class="copyright">© Spitfire Browser. Design based on <a href="https://html5up.net">HTML5 UP</a>.</p>
|
<p class="copyright">© Spitfire Browser. Design based on <a href="https://html5up.net">HTML5 UP</a>.</p>
|
||||||
</section>
|
</section>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Scripts -->
|
<!-- Scripts -->
|
||||||
<script src="/static/js/jquery.min.js" defer></script>
|
<script src="/static/js/jquery.min.js" defer></script>
|
||||||
<script src="/static/js/jquery.scrollex.min.js" defer></script>
|
<script src="/static/js/jquery.scrollex.min.js" defer></script>
|
||||||
<script src="/static/js/jquery.scrolly.min.js" defer></script>
|
<script src="/static/js/jquery.scrolly.min.js" defer></script>
|
||||||
<script src="/static/js/browser.min.js" defer></script>
|
<script src="/static/js/browser.min.js" defer></script>
|
||||||
<script src="/static/js/breakpoints.min.js" defer></script>
|
<script src="/static/js/breakpoints.min.js" defer></script>
|
||||||
<script src="/static/js/util.js" defer></script>
|
<script src="/static/js/util.js" defer></script>
|
||||||
<script src="/static/js/main.js" defer></script>
|
<script src="/static/js/main.js" defer></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue