diff --git a/.eleventyignore b/.eleventyignore index 154f973..4c789f4 100644 --- a/.eleventyignore +++ b/.eleventyignore @@ -1 +1,2 @@ +README.md sneexy/notebook/ \ No newline at end of file diff --git a/.forgejo/buttons.sh b/.forgejo/buttons.sh index 4b811ca..d5fa83f 100755 --- a/.forgejo/buttons.sh +++ b/.forgejo/buttons.sh @@ -6,11 +6,11 @@ BUTTONS_DIR=${GITHUB_WORKSPACE}/assets/buttons/friends SITE_BUTTONS_DIR=${GITHUB_WORKSPACE}/assets/buttons/sites printf "downloading 23sonics ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/23sonics.gif" https://me.evilfoundry.net/media/88x31/me.gif && echo -printf "downloading authenyo ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/authen.gif" https://authenyo.xyz/images/button.gif && echo printf "downloading autumn ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/autumn.webp" http://autumn.town/assets/buttons/mybutton.webp && echo printf "downloading benjae ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/benjae.png" https://benjae.nekoweb.org/assets/buttons/benjae.png && echo printf "downloading birdcat ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/birdcat.gif" https://birdcat.online/img/buttons/birdcatonline.gif && echo printf "downloading bluefox longtail ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/bluefox.png" https://bluefoxlongtail.neocities.org/buttons/myself/bluefox.png && echo +printf "downloading chloe ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/chloe.png" https://chloes.website/button.png && echo printf "downloading cooper ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/outofshape.gif" https://ottr.uk/img/88x31/outofshape.gif && echo printf "downloading david ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/david.png" https://david.garden/wp-content/uploads/2024/09/david-site-button.png && echo printf "downloading doskel ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/doskel.png" https://doskel.net/button.png && echo @@ -19,7 +19,10 @@ printf "downloading drakonic ..." && curl -fsSL -A "synth.download Button Downlo printf "downloading elixty.world ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/exlitry.world.gif" https://cdn.exlitry.world/media/buttons/exlitry.world.gif && echo printf "downloading enderman0125 ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/enderman0125.gif" https://egg.l5.ca/assets/buttons/enderman0125.gif && echo printf "downloading freeplay ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/freeplay.gif" https://freeplay.floof.company/assets/buttons/free.gif && echo +printf "downloading gen ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/gen.png" https://genshibe.ca/images/88x31/button.png && echo +printf "downloading guigui ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/guigui.png" https://guigui.aerocity.site/88x31/guigui.png && echo printf "downloading hexaitos ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/hexaitos.png" https://hexaitos.com/assets/images/buttons/websites/hexaitos.png && echo +printf "downloading ielenia ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/ielenia.png" https://ielenia.lgbt/88x31.png && echo printf "downloading keith ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/keith.gif" https://keithhacks.cyou/assets/site_button.gif && echo printf "downloading kopper ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/wontwork.png" https://w.on-t.work/assets/88x31.png && echo printf "downloading kraafter ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/kraafter.png" https://kraafter.me/assets/img/button.png && echo @@ -28,7 +31,7 @@ printf "downloading lars ..." && curl -fsSL -A "synth.download Button Downloader printf "downloading lexi ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/lexi.png" https://softkittypa.ws/assets/buttons/softkittypaws.png && echo printf "downloading lily ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/lilysthings.png" https://lilysthings.org/buttons/lilysthings.png && echo printf "downloading lumi ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/lumi.png" https://meowctl.codeberg.page/assets/lumi.png && echo -printf "downloading madz ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/madz.gif" https://madz258.top/assets/buttons/friends/madzbutton.gif && echo +printf "downloading madz ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/madz.gif" https://madz.mov/assets/images/buttons/friends/madzbutton.gif && echo printf "downloading melontini ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/melontini.png" https://melontini.me/88_31/88_31.png && echo printf "downloading micro ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/micro.png" https://git.gay/Micro/pages/raw/branch/egui-rewrite/src/assets/buttons/micro.png && echo printf "downloading millions ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/millions.png" https://ofplayers.net/images/88x31/millions.png && echo @@ -53,7 +56,6 @@ printf "downloading tika ..." && curl -fsSL -A "synth.download Button Downloader printf "downloading unnick ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/unnick.png" https://unnick.mice.tel/88x31.png && echo printf "downloading velveteen ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/velveteen.png" https://velveteen.one/images/badges/velbadge.png && echo printf "downloading velzie ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/velzie.png" https://velzie.rip/88x31.png -printf "downloading winter ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/winter.png" https://winter.entities.org.uk/buttons/self.png && echo printf "downloading xaselgio ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/xaselgio.gif" https://xaselgio.net/88x31_xaselgio_v2.gif && echo printf "downloading zvava ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${BUTTONS_DIR}/zvava.png" https://zvava.org/images/buttons/zvava.org.png && echo printf "downloading besties ..." && curl -fsSL -A "synth.download Button Downloader/1.0" -o "${SITE_BUTTONS_DIR}/besties.gif" https://besties.house/buttons/besties.gif && echo diff --git a/.forgejo/workflows/buttons.yml b/.forgejo/workflows/buttons.yml index 1b758e2..f169b8d 100644 --- a/.forgejo/workflows/buttons.yml +++ b/.forgejo/workflows/buttons.yml @@ -19,8 +19,8 @@ jobs: - name: download buttons run: | - chmod +x /workspace/sd/site/.forgejo/buttons.sh - bash -c "/workspace/sd/site/.forgejo/buttons.sh" + chmod +x ${GITHUB_WORKSPACE}/.forgejo/buttons.sh + bash -c "${GITHUB_WORKSPACE}/.forgejo/buttons.sh" - name: push updated buttons id: github-push @@ -28,4 +28,4 @@ jobs: git config pull.rebase true git add . git diff-index --quiet HEAD || git commit -m "beep~! (updated buttons)" - git push + git push \ No newline at end of file diff --git a/_includes/layouts/admins/admins.njk b/_includes/layouts/admins/admins.njk deleted file mode 100644 index 5d69e57..0000000 --- a/_includes/layouts/admins/admins.njk +++ /dev/null @@ -1,23 +0,0 @@ - -
-
- - Admins - - -
-
-

Admins

-

All known users on Synth.Download who have full access to the Synth.Download servers (also known as "admins") will be listed here.

-

If any sort of proper contact is required, or if you have any questions, please contact synth@synth.download (email) instead.

-
- {% include "layouts/admins/list.njk" %} -
-
\ No newline at end of file diff --git a/_includes/layouts/admins/list.njk b/_includes/layouts/admins/list.njk deleted file mode 100644 index a402ba9..0000000 --- a/_includes/layouts/admins/list.njk +++ /dev/null @@ -1,23 +0,0 @@ -
-

Sneexy (Ruben)

-

Current webmaster; Hardware host (slosh!~); Admin.

-

Page

- -
-
-

Senil

-

Maintainer; Admin.

-

Website

- -
-
-

unnick

-

Maintainer; Admin.

-

Website

- -
-
-

melontini

-

Maintainer; Admin.

-

Website

-
\ No newline at end of file diff --git a/_includes/layouts/base.njk b/_includes/layouts/base.njk deleted file mode 100644 index c6b1926..0000000 --- a/_includes/layouts/base.njk +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: base ---- - - - - - {% include "layouts/header.njk" %} - - - - - {% include "layouts/navbar.njk" %} - -
- {{ content | safe }} -
- - {% include "layouts/footer.njk" %} - - - - \ No newline at end of file diff --git a/_includes/layouts/base/base.njk b/_includes/layouts/base/base.njk new file mode 100644 index 0000000..eef7edf --- /dev/null +++ b/_includes/layouts/base/base.njk @@ -0,0 +1,33 @@ +--- +title: base +--- + + + + + {% include "layouts/base/header.njk" %} + + + + + + + {% include "layouts/base/navbar.njk" %} + + + {% include "layouts/base/settings.njk" %} + + + +
+ {{ content | safe }} +
+ + {% include "layouts/base/footer.njk" %} +
+ + + + + + \ No newline at end of file diff --git a/_includes/layouts/base/footer.njk b/_includes/layouts/base/footer.njk new file mode 100644 index 0000000..279e806 --- /dev/null +++ b/_includes/layouts/base/footer.njk @@ -0,0 +1,33 @@ + + \ No newline at end of file diff --git a/_includes/layouts/header.njk b/_includes/layouts/base/header.njk similarity index 71% rename from _includes/layouts/header.njk rename to _includes/layouts/base/header.njk index faabc7f..c20b03f 100644 --- a/_includes/layouts/header.njk +++ b/_includes/layouts/base/header.njk @@ -1,18 +1,20 @@ {% set css %} - {% include "styles/accessibility.css" %} - {% include "styles/animations.css" %} - {% include "styles/base.css" %} - {% include "styles/font.css" %} - {% include "styles/footer.css" %} - {% include "styles/icons.css" %} - {% include "styles/navbar.css" %} + {% include "styles/base/accessibility.css" %} + {% include "styles/base/animations.css" %} + {% include "styles/base/base.css" %} + {% include "styles/base/colors.css" %} + {% include "styles/base/footer.css" %} + {% include "styles/base/icons.css" %} + {% include "styles/base/navbar.css" %} + {% include "styles/base/prism-a11y-dark.css" %} + {% include "styles/base/settings.css" %} + {% include "styles/base/windows.css" %} {% include "styles/pages/admins.css" %} + {% include "styles/pages/fediverse.css" %} {% include "styles/pages/home.css" %} {% include "styles/pages/notebook.css" %} {% include "styles/pages/services.css" %} {% include "styles/pages/sneexy.css" %} - {% include "styles/prism-a11y-dark.css" %} - {% include "styles/windows.css" %} {% endset %} {% set js %} {% include "scripts/alt-popup.js" %} diff --git a/_includes/layouts/base/navbar.njk b/_includes/layouts/base/navbar.njk new file mode 100644 index 0000000..c9c0f73 --- /dev/null +++ b/_includes/layouts/base/navbar.njk @@ -0,0 +1,43 @@ + + \ No newline at end of file diff --git a/_includes/layouts/base/settings.njk b/_includes/layouts/base/settings.njk new file mode 100644 index 0000000..1d8606f --- /dev/null +++ b/_includes/layouts/base/settings.njk @@ -0,0 +1,34 @@ + + +

Settings

+

Settings are saved with JavaScript enabled.

+
+ +

Theme

+ + + + + +
+ +

Font

+ + + + + + +
+ +

Appearance

+ + + + + + +
+
+
+
\ No newline at end of file diff --git a/_includes/layouts/base/sneexy/base.njk b/_includes/layouts/base/sneexy/base.njk new file mode 100644 index 0000000..3f42fa8 --- /dev/null +++ b/_includes/layouts/base/sneexy/base.njk @@ -0,0 +1,33 @@ +--- +title: base +--- + + + + + {% include "layouts/base/header.njk" %} + + + + + + + {% include "layouts/base/sneexy/navbar.njk" %} + + + {% include "layouts/base/settings.njk" %} + + + +
+ {{ content | safe }} +
+ + {% include "layouts/base/sneexy/footer.njk" %} +
+ + + + + + \ No newline at end of file diff --git a/_includes/layouts/base/sneexy/footer.njk b/_includes/layouts/base/sneexy/footer.njk new file mode 100644 index 0000000..fa64c18 --- /dev/null +++ b/_includes/layouts/base/sneexy/footer.njk @@ -0,0 +1,30 @@ + + \ No newline at end of file diff --git a/_includes/layouts/base/sneexy/navbar.njk b/_includes/layouts/base/sneexy/navbar.njk new file mode 100644 index 0000000..bc05330 --- /dev/null +++ b/_includes/layouts/base/sneexy/navbar.njk @@ -0,0 +1,20 @@ + + \ No newline at end of file diff --git a/_includes/layouts/nsfw-toggle.njk b/_includes/layouts/components/nsfw-toggle.njk similarity index 100% rename from _includes/layouts/nsfw-toggle.njk rename to _includes/layouts/components/nsfw-toggle.njk diff --git a/_includes/layouts/donate/base.njk b/_includes/layouts/donate/base.njk deleted file mode 100644 index e9b4a66..0000000 --- a/_includes/layouts/donate/base.njk +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: base ---- - - - - - {% include "layouts/header.njk" %} - - - - - - {% include "layouts/navbar.njk" %} - -
- {{ content | safe }} -
- - {% include "layouts/footer.njk" %} - - - - \ No newline at end of file diff --git a/_includes/layouts/donate/donate.njk b/_includes/layouts/donate/donate.njk deleted file mode 100644 index 4f1dfa8..0000000 --- a/_includes/layouts/donate/donate.njk +++ /dev/null @@ -1,22 +0,0 @@ - - \ No newline at end of file diff --git a/_includes/layouts/error.njk b/_includes/layouts/error.njk deleted file mode 100644 index e879b77..0000000 --- a/_includes/layouts/error.njk +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: whoops. -layout: "layouts/base.njk" ---- - - -
- - - Not found! - - - -
-

404

-

Whatever it is, isn't here.

-
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/buttons.njk b/_includes/layouts/fediverse/buttons.njk deleted file mode 100644 index bc441df..0000000 --- a/_includes/layouts/fediverse/buttons.njk +++ /dev/null @@ -1,7 +0,0 @@ -
- Synth.Download! - Oomfie City - Labyrinth Zone - Luna Nova - Duke Social -
\ No newline at end of file diff --git a/_includes/layouts/fediverse/iceshrimp/bubble.njk b/_includes/layouts/fediverse/iceshrimp/bubble.njk deleted file mode 100644 index 6fb9030..0000000 --- a/_includes/layouts/fediverse/iceshrimp/bubble.njk +++ /dev/null @@ -1,145 +0,0 @@ - -
-
- - Bubble timeline - - -
-
-

Bubble timeline

-

Our instance is configured with a curated timeline of hand-picked instances that we deem to be a part of community of, or are great friends. Below is the entire list of of all instances configured in our Bubble timeline.

- -
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/iceshrimp/fe.njk b/_includes/layouts/fediverse/iceshrimp/fe.njk deleted file mode 100644 index 10a6053..0000000 --- a/_includes/layouts/fediverse/iceshrimp/fe.njk +++ /dev/null @@ -1,46 +0,0 @@ - -
-
- - Alternative frontends - - -
-
-

Alternative frontends

-

Currently, the built in Iceshrimp.NET frontend is pretty unfinished and not very usable for daily usage. We provide other frontends that give better usage for use with Iceshrimp. Alternatively, Iceshrimp also implements direct Mastodon-API compatibility, so you may bring or use your own Mastodon clients as well!

- -
- -
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/iceshrimp/features.njk b/_includes/layouts/fediverse/iceshrimp/features.njk deleted file mode 100644 index 2b0f7a9..0000000 --- a/_includes/layouts/fediverse/iceshrimp/features.njk +++ /dev/null @@ -1,37 +0,0 @@ - -
-
- - Features - - -
-
-

Features

-

What users receive in terms of differences from, for example here, the average (vanilla) Mastodon instance:

- -
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/iceshrimp/info.njk b/_includes/layouts/fediverse/iceshrimp/info.njk deleted file mode 100644 index 2b67ed4..0000000 --- a/_includes/layouts/fediverse/iceshrimp/info.njk +++ /dev/null @@ -1,28 +0,0 @@ - -
-
- - Instance information - - -
-
-

Instance information

-

This is our Iceshrimp.NET instance, managed by @sneexy. This is our general information page about our instance, most info here is shared with our other instances. You're most likely here because you've attempted to visit beeping.synth.download without an account/signed out. Try logging in, then go back to access the Iceshrimp frontend!

-
-

Iceshrimp is a "microblogging"-based social networking software that connects over ActivityPub to federate over the internet with other AP-based software and instances in the world such as Mastodon. Iceshrimp mostly follows the footsteps of Misskey, and supports most features that Misskey and other software chooses to implement - Quote posts, Emoji reactions and all.

-

If Iceshrimp isn't your type of software, we have a sibiling Sharkey instance that's directly based off of the upstream Misskey software, providing an advanced UI and set of fun features. Alternatively, we also provide a Mastodon instance with extra features like support for Emoji reactions baked in, recommended if you prefer a more basic and calmer experience to social media and compatibility with most Fediverse clients and software.

-
-

This instance is invite only to ensure that things don't get out of control here, in terms of both becoming a moderation hassle and requiring heavy maintenance, as well as ensuring this instance continues to run smoothly and for the foreseeable future.

-

If you would like to register, and are a well-known creature of, please go beep at @sneexy! You may also ask anyone else on this instance to vouch for you. Invite codes/Acceptance is not always guaranteed, but feel free to ask. Please don't let this be discouragement for asking.

-
-

We have a Signal group chat for general, random discussion as well as having direct contact with instance admins, and to serve as a place for any direct or maintenance announcements.

-
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/iceshrimp/intro.njk b/_includes/layouts/fediverse/iceshrimp/intro.njk deleted file mode 100644 index 61b3d2f..0000000 --- a/_includes/layouts/fediverse/iceshrimp/intro.njk +++ /dev/null @@ -1,53 +0,0 @@ - -
-
- - Icesynth! - - -
-
-

Iceshrimp.NET sourceIcesynth!

-

Beep! A small instance themed around synths, but accepts all. Not to be confused with our Sharkey or Mastodon instances.

-

Log in Register

-

Tips & Tricks

-

Mastodon-FE Akkoma-FE Phanpy pl-fe

-
- {% include "layouts/fediverse/buttons.njk" %} -
- Table-of-Contents -
- -
-
-
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/iceshrimp/tips.njk b/_includes/layouts/fediverse/iceshrimp/tips.njk deleted file mode 100644 index a2a1777..0000000 --- a/_includes/layouts/fediverse/iceshrimp/tips.njk +++ /dev/null @@ -1,54 +0,0 @@ - -
-
- - Tips & Tricks - - -
-
-

Tips & Tricks

-

A few notable, useful worth-sharing tips & tricks for Iceshrimp users. You may also suggest any to be added here.

-
-
- Remove all inaccessible followers-only replies -
-

Iceshrimp.NET, by default, will show all replies, including those that are replies to posts that are inaccessible to you, even if you aren't using the default frontend. For most users, this is unwanted behavior.

-

To disable it, first:

-
    -
  • Enter your account settings
  • -
  • Click the "Account" tab on the left
  • -
  • Find and enable "Filter replies to inaccessible notes"
  • -
-

This should disable them on the official frontend. However, if you use a custom/alternative client, they may still show up via "RE: 🔒" posts. To disable these, we simply put a custom word filter:

-
    -
  • Enter your account settings
  • -
  • Click the "Filters" tab on the left
  • -
  • Create a new filter.
  • -
      -
    • The Filter Name is required, but can be whatever. Name it something like "Disable inaccessible replies".
    • -
    • For the keywords, simply type in "RE: 🔒" (without the quotation marks) then press the "Add" button below it.
    • -
    • Set the Filter Action to "Hide".
    • -
    • Add everything from the "Filter Contexts" list.
    • -
    • Set the expiry date to whatever in the future, like 09/09/9999 for example.
    • -
    -
-

After that, all inaccessible replies shall now vanish.

-
-
-
- Emoji reactions in Phanpy -
-

The Phanpy frontend has some support for emoji reactions. Specifically though, only showing them in notifications.

-

To enable support for at least showing them rather than displaying a broken notification for each reaction, simply log into Phanpy again with the "This app is intended for Pleroma or Akkoma" flag enabled.

-
-
-
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/mastodon/features.njk b/_includes/layouts/fediverse/mastodon/features.njk deleted file mode 100644 index 923b303..0000000 --- a/_includes/layouts/fediverse/mastodon/features.njk +++ /dev/null @@ -1,31 +0,0 @@ - -
-
- - Features - - -
-
-

Features

-

What users receive in terms of differences from, for example here, the average (vanilla) Mastodon instance:

- -
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/mastodon/info.njk b/_includes/layouts/fediverse/mastodon/info.njk deleted file mode 100644 index 1df7d56..0000000 --- a/_includes/layouts/fediverse/mastodon/info.njk +++ /dev/null @@ -1,28 +0,0 @@ - -
-
- - Instance information - - -
-
-

Instance information

-

This is our Mastodon instance! While hosted by @sneexy, is mainly managed by @m. This is our general information page about our instance, most info here is shared with our other instances.

-
-

Mastodon is a "microblogging"-based social networking software that connects over ActivityPub to federate over the internet with other AP-based software and instances in the world such as other instance of itself. We maintain our own minor fork of Mastodon from another fork that implements features such as emoji reactions.

-

If Mastodon isn't your type of software, we have a sibiling Iceshrimp instance that provides most of the Misskey-like and other advanced features while keeping out the more complex or "non-sense" features, on top of a stable, more Mastodon-compatible base. Alternatively, we also provide a Sharkey instance that's directly based off of the upstream Misskey software, providing an advanced UI and set of fun features.

-
-

This instance is invite only to ensure that things don't get out of control here, in terms of both becoming a moderation hassle and requiring heavy maintenance, as well as ensuring this instance continues to run smoothly and for the foreseeable future.

-

If you would like to register, and are a well-known creature of, please go beep at @sneexy or @m! You may also ask anyone else on this instance to vouch for you. Invite codes/Acceptance is not always guaranteed, but feel free to ask. Please don't let this be discouragement for asking.

-
-

We have a Signal group chat for general, random discussion as well as having direct contact with instance admins, and to serve as a place for any direct or maintenance announcements.

-
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/mastodon/intro.njk b/_includes/layouts/fediverse/mastodon/intro.njk deleted file mode 100644 index def156e..0000000 --- a/_includes/layouts/fediverse/mastodon/intro.njk +++ /dev/null @@ -1,45 +0,0 @@ - -
-
- - Merpstodon! - - -
-
-

Mastodon's official websiteMerpstodon!

-

Merp! A small instance themed around synths, but accepts all. Not to be confused with our Sharkey or Iceshrimp instances.

-

Visit Log in

-
- {% include "layouts/fediverse/buttons.njk" %} -
- Table-of-Contents -
- -
-
-
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/moderation.njk b/_includes/layouts/fediverse/moderation.njk deleted file mode 100644 index 699f6ee..0000000 --- a/_includes/layouts/fediverse/moderation.njk +++ /dev/null @@ -1,51 +0,0 @@ - -
-
- - Moderation - - -
-
-

Moderation

-

For all of our Fediverse instances that we manage, we moderate collaboratively along with other friends and closely tied instances. We moderate on a "Trust Nobody" level for remote instances, due to past negative experiences with the Fediverse. Frankly, we're a small place with burned-out moderators that want to provide a safe place for ourselves and friends.

-

We have little spoons to deal with anything and tend to take action swiftly. We suspend instances that:

- -

For anything else, we usually tend to media-silence:

- -

By default, we don't block through guilt-by-federation. However, if we find an instance that consistently federates or otherwise associates and notably supports bad actors - more specifically those who have otherwised harmed us or others/close friends and instances before - we may consider the instance for suspension depending on the case. This is entirely for the safety of our own community and the many risk factors of keeping continued federation.

-

We also may suspend/silence instances if our users are reportedly uncomfortable about them, whether via the users or the content on the instance. Again, we want a safe space for ourselves and friends.

-

Our actions aren't limited to what is based on interactions from/within our own community. If we find harassment or otherwise any negative behavior towards other users or our close friends/instances, action will still be done. Remember: we moderate collaboratively.

-
-

If you're a user, and would like to question any of our moderation decisions or actions, or talk about a specific instance (or for more information on why we block/silence a specific instance), feel free to bring it up with the moderators/administrators. If it's an instance/user you deem should be up for moderation action, report it instead.

-
- More sensitive topics about moderation and the wider Fediverse -
-

For those who think our moderation is "too strict", the Fediverse has caused us harm and has shown that it's an untrustworthy network, from time and time again. Our moderation decisions are made through blood and tears, as it is impossible to trust anyone on here.

-

Being completely honest: The Fediverse is a horrible network filled with terrible people from a moderator standpoint. Harassment, grooming/pedophilia issues and those who align with it, Nazi's crawling from every corner, having to deal with "Your Opinions Suck" and people attempting to force publicize/normalize traumatic experiences... Basically, everything that a normal user doesn't see because we get to it first.

-

As for why we still bother with the Fediverse and don't go anywhere else, it also happens to be the only platform with the same beings and creatures that we enjoy sharing presense with, along with multitudes of customizations compared to other existing platforms.

-

And despite everything, we still host our Fediverse instances with pride and care, to provide a safe and curated space, for those who want to be with us.

-

For any visitors passing by, please thank your admins and moderators. Maybe give them some pocket change, it's the least you can do to help them regain some sanity.

-
-
-
-

If you'd wish to see our moderation lists, such as all of our instance blocks and silences, check if the software that the instance you're housed on allows you to view our moderation policies directly. If that is not the case, ask a moderator/administrator and we'll pass a copy of our current lists over.

-
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/rules.njk b/_includes/layouts/fediverse/rules.njk deleted file mode 100644 index 89f5a08..0000000 --- a/_includes/layouts/fediverse/rules.njk +++ /dev/null @@ -1,49 +0,0 @@ - -
-
- - Rules - - -
-
-

Rules

-

Our Terms of Service applies when using the Fediverse as our instance rules, both for our own community and also as we moderate those remotely. Rules may be a bit lax for our own local community, as we trust you to be here. We recommend reading our Terms of Service to get a baseline that applies as rules, but to summarize:

- -
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/sharkey/features.njk b/_includes/layouts/fediverse/sharkey/features.njk deleted file mode 100644 index 807b668..0000000 --- a/_includes/layouts/fediverse/sharkey/features.njk +++ /dev/null @@ -1,37 +0,0 @@ - -
-
- - Features - - -
-
-

Features

-

What users receive in terms of differences from, for example here, the average (vanilla) Mastodon instance:

- -
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/sharkey/info.njk b/_includes/layouts/fediverse/sharkey/info.njk deleted file mode 100644 index 9cecb9a..0000000 --- a/_includes/layouts/fediverse/sharkey/info.njk +++ /dev/null @@ -1,29 +0,0 @@ - -
-
- - Instance information - - -
-
-

Instance information

-

This is our Sharkey instance, managed by @sneexy. This is our general information page about our instance, most info here is shared with our other instances.

-
-

Sharkey is a "microblogging"-based social networking software that connects over ActivityPub to federate over the internet with other AP-based software and instances in the world such as Mastodon. Sharkey itself is a soft-fork of Misskey, so you recieve all of the features Misskey has, such as quote posts and emoji reactions, with extra features and fixes Sharkey puts on top.

-

If Sharkey isn't your type of software, we have a sibiling Iceshrimp instance that provides most of the Misskey-like and other advanced features while keeping out the more complex or "non-sense" features, on top of a stable, more Mastodon-compatible base. Alternatively, we also provide a Mastodon instance with extra features like support for Emoji reactions baked in, recommended if you prefer a more basic and calmer experience to social media and compatibility with most Fediverse clients and software.

-
-

This instance is invite only to ensure that things don't get out of control here, in terms of both becoming a moderation hassle and requiring heavy maintenance, as well as ensuring this instance continues to run smoothly and for the foreseeable future.

-

If you would like to register, and are a well-known creature of, please go beep at @sneexy! You may also ask anyone else on this instance to vouch for you. Invite codes/Acceptance is not always guaranteed, but feel free to ask. Please don't let this be discouragement for asking.

-
-

We have a Signal group chat for general, random discussion as well as having direct contact with instance admins, and to serve as a place for any direct or maintenance announcements.

-

For the record: We are running stock, upstream Sharkey. We are not running/maintaining a fork! Any and all modifications and shenanigans we do on here are either served through our reverse proxy or done via Sharkey's customHtml configuration and custom CSS.

-
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/sharkey/intro.njk b/_includes/layouts/fediverse/sharkey/intro.njk deleted file mode 100644 index 8791d19..0000000 --- a/_includes/layouts/fediverse/sharkey/intro.njk +++ /dev/null @@ -1,51 +0,0 @@ - -
-
- - Beepkey! - - -
-
-

Sharkey's websiteBeepkey!

-

Beep! A small instance themed around synths, but accepts all. Not to be confused with our Iceshrimp or Mastodon instances.

-

Visit

-

Aria Tips & Tricks

-

Note: Mastodon-based clients are noted to be unstable with Sharkey.

-

Mastodon-FE Phanpy pl-fe

-
- {% include "layouts/fediverse/buttons.njk" %} -
- Table-of-Contents -
- -
-
-
-
\ No newline at end of file diff --git a/_includes/layouts/fediverse/sharkey/tips.njk b/_includes/layouts/fediverse/sharkey/tips.njk deleted file mode 100644 index dbb1837..0000000 --- a/_includes/layouts/fediverse/sharkey/tips.njk +++ /dev/null @@ -1,64 +0,0 @@ - -
-
- - Tips & Tricks - - -
-
-

Tips & Tricks

-

A few notable, useful worth-sharing tips & tricks for Sharkey users. You may also suggest any to be added here.

-
-
- Using comfortably on mobile/restricted environments -
-

Sharkey works best via it's web UI frontend. Sometimes, this may be uncomfortable on mobile or generally lower-end devices.

-

You have a few options to try out:

-
    -
  • Try using a Chromium based browser to use Sharkey
  • -
      -
    • Sharkey performs notably better under a Chromium based environment, and if on Android, may also use less battery in the process.
    • -
        -
      • For iOS users, this option may not be helpful/do no change at all.
      • -
      -
    -
  • Try using the Aria client, as we suggest for mobile users.
  • -
      -
    • It's a native, basically 1-to-1 compatible Misskey client. While it's focused on supporting Misskey features, it also supports some of the Sharkey features such as editing.
    • -
    • They also provide builds for anything other than mobile devices, including native builds for Windows, Mac and Linux.
    • -
    -
  • Disable all effects and animations in the client settings
  • -
      -
    • Go to your Preferences
    • -
    • Look under the "Accessibility" and "Performance" tab. You can disable UI animations, MFM, and blur effects.
    • -
    -
  • Use a Mastodon client
  • -
      -
    • As Mastodon is more popular, there a lot of clients for Mastodon that perform better in all cases. However, Sharkey's Masto-API implementation isn't great, and may ultimately be a worse experience over the other methods provided.
    • -
    -
-
-
-
- Disable the "Widgets" sidebar -
-

In the normal UI view, Sharkey has a permanent sidebar that holds widgets on the right side of the UI, which cannot be disabled. It, however, is not required in any way for normal usage, so we may use custom CSS on the client in order to remove it.

-

Simply go to your custom CSS settings and add the below snippet:

- {% highlight css %} -[class^="universal-widgets-"] { - display: none; -} - {% endhighlight %} -

Once applied and refreshed, the widgets sidebar should now be gone. Note that this won't effect the sidebar that appears on mobile (opened through a button on the navbar) so it's safe to use this CSS on mobile as well, in the case of client settings syncing.

-
-
-
-
\ No newline at end of file diff --git a/_includes/layouts/footer.njk b/_includes/layouts/footer.njk deleted file mode 100644 index 6cfdf7b..0000000 --- a/_includes/layouts/footer.njk +++ /dev/null @@ -1,28 +0,0 @@ - - - - - \ No newline at end of file diff --git a/_includes/layouts/home/intro.njk b/_includes/layouts/home/intro.njk deleted file mode 100644 index 161ccc8..0000000 --- a/_includes/layouts/home/intro.njk +++ /dev/null @@ -1,26 +0,0 @@ - -
-
- - Welcome! - - -
-
-

Hey! Welcome to...

- -

We're a small community of friends, hosting and managing stuff together. Themed around synths, most of us are synths, including (most) of the system administrators, but open and accepting of all fellow beings, creatures, toasters and organics.

-

There are a few public facing services we run here for general public use, although most services are private or require registration as they are meant for members and friends of Synth.Download. Poke at the navigation bar on top to navigate this page and figure out more about what we serve here.

-

Enjoy your stay! Beep!~

- -
-
\ No newline at end of file diff --git a/_includes/layouts/navbar.njk b/_includes/layouts/navbar.njk deleted file mode 100644 index 38dd25c..0000000 --- a/_includes/layouts/navbar.njk +++ /dev/null @@ -1,116 +0,0 @@ - - \ No newline at end of file diff --git a/_includes/layouts/pages/about/about.njk b/_includes/layouts/pages/about/about.njk new file mode 100644 index 0000000..7354c96 --- /dev/null +++ b/_includes/layouts/pages/about/about.njk @@ -0,0 +1,30 @@ + +
+
+ + About + +
+ +

About

+

Synth.Download is a project managed by serveral synths and protogens to provide a collection of (some public, some private) privacy respecting frontends and web services. We strive to create a safe community for ourselves and for those who accept us.

+

Contact

+

Synth.Download is maintained by several administrators, although Sneexy is the one who mainly manages everything. Contact synth@synth.download for reports or suggestions.

+

We also have a Signal group chat which serves as our general lounge chat. Joins require approval; will be denied if unrecongnized or deemed to be spam.

+

History

+

This section is written by Sneexy.

+

Synth.Download is a project started in October of 2024 by Sneexy, buying the domain synth.download as it was available, and as I am a Synth. Initially, the domain was used to only used to serve a much, much older iteration of this site that was used to only provide information about myself, and ran about a handful of services only for personal usage.

+

The very first server used to host services here was a Netcup VPS, and the very first service made available on this domain that wouldn't see the "personal usage" treatment is our very own Iceshrimp.NET instance.

+

Later on, as time progressed, I started running more services that I figured would be more useful, the next thing run after Iceshrimp would be our own Sharkey instance (I swear we don't only just run Fediverse instances here, Iceshrimp.NET was just too beta for our tastes), which as far as I can tell is probably our most popular service as of now.

+

Synth.Download has went through many server migrations between different Netcup VPS'es before finally getting off them along with various site and services improvements, and overall has started to shape into what I am proud to call as a proper community rather than being a silly site on the indie web (although, deep down, we all know it's still that).

+

Thank you all for being here, both users and administrators. It means a lot to me. 💚

+
+
\ No newline at end of file diff --git a/_includes/layouts/pages/about/servers.njk b/_includes/layouts/pages/about/servers.njk new file mode 100644 index 0000000..191fca9 --- /dev/null +++ b/_includes/layouts/pages/about/servers.njk @@ -0,0 +1,23 @@ + +
+
+ + Servers + +
+ +

Servers

+

The servers that are responsible for housing Synth.Download are proudly hosted and provided by Lua, and are located in Canada. All services on Synth.Download are containerized within Docker containers.

+

Services are split between two KVM's on two different servers, namely phosphorus, which has more breathing room and handles running our more advanced and heavier services, such as our Fediverse instances, and neptunium, which handles all web traffic and our more lighter services, such as this site you're looking at right now.

+

Backups are taken nightly and stored off-site.

+

For those curious about our server configurations and setups, we publicly provide them at our Git repository.

+
+
\ No newline at end of file diff --git a/_includes/layouts/pages/admins/admins.njk b/_includes/layouts/pages/admins/admins.njk new file mode 100644 index 0000000..5fb07c2 --- /dev/null +++ b/_includes/layouts/pages/admins/admins.njk @@ -0,0 +1,22 @@ + +
+
+ + Admins + +
+ +

Admins

+

Listed below is all administrators (those with administrative access to the Synth.Download servers) who currently help and work on Synth.Download.

+

For any questions, please contact synth@synth.download or Sneexy directly.

+ {% include "layouts/pages/admins/list.njk" %} +
+
\ No newline at end of file diff --git a/_includes/layouts/pages/admins/list.njk b/_includes/layouts/pages/admins/list.njk new file mode 100644 index 0000000..9ab11d9 --- /dev/null +++ b/_includes/layouts/pages/admins/list.njk @@ -0,0 +1,42 @@ + + +

Sneexy (Ruben)

+

Current webmaster; Hardware host (slosh!~); Admin.

+ + + + + + +
+ +

Senil

+

Maintainer; Admin.

+ + + + + + +
+ +

unnick

+

Admin.

+ + + + + + +
+ +

zenfyr

+

Maintainer; Admin.

+ + + + + + +
+
\ No newline at end of file diff --git a/_includes/layouts/pages/donate/donate.njk b/_includes/layouts/pages/donate/donate.njk new file mode 100644 index 0000000..eaeccd3 --- /dev/null +++ b/_includes/layouts/pages/donate/donate.njk @@ -0,0 +1,42 @@ + + \ No newline at end of file diff --git a/_includes/layouts/pages/donate/important.njk b/_includes/layouts/pages/donate/important.njk new file mode 100644 index 0000000..51a4674 --- /dev/null +++ b/_includes/layouts/pages/donate/important.njk @@ -0,0 +1,10 @@ +
+

Important

+ +
\ No newline at end of file diff --git a/_includes/layouts/fediverse/sharkey/bubble.njk b/_includes/layouts/pages/fediverse/bubble.njk similarity index 83% rename from _includes/layouts/fediverse/sharkey/bubble.njk rename to _includes/layouts/pages/fediverse/bubble.njk index 99824e5..d93d555 100644 --- a/_includes/layouts/fediverse/sharkey/bubble.njk +++ b/_includes/layouts/pages/fediverse/bubble.njk @@ -1,22 +1,22 @@ -
+
- + Bubble timeline - - +
-
+

Bubble timeline

-

Our instance is configured with a curated timeline of hand-picked instances that we deem to be a part of community of, or are great friends. Below is the entire list of of all instances configured in our Bubble timeline.

-
    +

    Our instances are configured with a curated timeline of hand-picked instances that we deem to be a part of our community, are great friends, or generally fit our culture and vibes. Below is the entire list of of all instances configured in our Bubble timelines.

    + -
+
\ No newline at end of file diff --git a/_includes/layouts/pages/fediverse/instances-list.njk b/_includes/layouts/pages/fediverse/instances-list.njk new file mode 100644 index 0000000..ec25ea8 --- /dev/null +++ b/_includes/layouts/pages/fediverse/instances-list.njk @@ -0,0 +1,81 @@ + + +

+ + Sharkey + + + +

+

Boopkey! Our most popular instance, running Sharkey, a soft-fork of Misskey.

+

Sharkey provides a more fun and featureful experience to the Fediverse. It includes neat and useful features such as emoji reactions, blog-like pages, galleries, a file "Drive" feature, and more. We recommend this instance if you're looking for something more advanced, or are perhaps wanting to try something different from Mastodon or other software.

+

Accounts housed on this instance will be located at @booping.synth.download

+ + + + + + + + + + + + + + +
+ +

+ + Mastodon + + + +

+

Merpstodon! Runs our fork of Mastodon, based on another fork.

+

Traditional, Calmer, and more Microblogging-like. As Mastodon is the more popular software on the fediverse in general, we also provide it as an option for those who are used to it or prefer it. We run our own modified version of Mastodon which provides extra features, such as widely federated lists and support for using emoji reactions. We recommend this instance for something more simpler and straightforward, or if the compatibility with Mastodon apps and platforms is preferred.

+

Accounts housed on this instance will be located at @merping.synth.download

+ + + + + + + + + + + + + + +
+ +

+ + Iceshrimp.NET + + + +

+

Icesynth! A lightweight, Misskey-inspired software.

+

Software still in heavy beta stages of development that plans to be a "Misskey, but balanced just right". Our very first instance that we've been running on Synth.Download!

+

Sadly, we currently do not suggest using this software for normal/daily usage. Sharkey and Mastodon provide better and far more stable user experiences. We may lend out invites for this instance if you wish to run, for example, a bot account, but for now, this software requires maturing before we can allow it to be publicly used.

+

Accounts housed on this instance will be located at @synth.download

+ + + + + + + + + + + + + + +
+
\ No newline at end of file diff --git a/_includes/layouts/pages/fediverse/instances.njk b/_includes/layouts/pages/fediverse/instances.njk new file mode 100644 index 0000000..f5b2a0d --- /dev/null +++ b/_includes/layouts/pages/fediverse/instances.njk @@ -0,0 +1,23 @@ + +
+
+ + Instances + +
+ +

Instances

+

An Instance is your home server, where your account and posts will live. We provide multiple options as listed on our services page, all on different domains with different software aimed to suite the needs of different users and preferences.

+

Common features shared between these instances are a 100,000 character limit on posts, 5,000 character limit for content warnings, and a 100 megabyte upload limit for files.

+ {% include "layouts/pages/fediverse/instances-list.njk" %} +

All sorts of configurations, limits and moderation are synced between each instances whenever possible.

+
+
\ No newline at end of file diff --git a/_includes/layouts/pages/fediverse/intro.njk b/_includes/layouts/pages/fediverse/intro.njk new file mode 100644 index 0000000..2418ce0 --- /dev/null +++ b/_includes/layouts/pages/fediverse/intro.njk @@ -0,0 +1,33 @@ + +
+
+ + Fediverse + +
+ +

Fediverse

+

Synth.Download hosts a few opinionated fediverse instances that allows you to connect and explore the wider Fediverse, a network of software that uses ActivityPub to communicate with each other, all running various software for each personals taste. This page is dedicated to detailing our instance options and how we manage them.

+

All of our instances are under invite only registration. We do this to main a good and healthy experience for our users. If you wish to register, you may:

+
    +
  • Ask a known, registered member to send an invite.
  • +
  • Ask a known, registered member to vouch for you.
  • +
  • Poke an admin for an invite.
  • +
+ + Synth.Download + Luna Nova + Duke Social + Labyrinth Zone + Oomfie City + +
+
\ No newline at end of file diff --git a/_includes/layouts/pages/fediverse/moderation.njk b/_includes/layouts/pages/fediverse/moderation.njk new file mode 100644 index 0000000..9861cbe --- /dev/null +++ b/_includes/layouts/pages/fediverse/moderation.njk @@ -0,0 +1,42 @@ + +
+
+ + Moderation + +
+ +

Moderation

+

Our moderation is opinionated and collaboratively done between local moderators and with moderation friends from other instances. We try to have a good balance between having a safe community with little nuisance while being openly federated with wider communities.

+

We have little spoons to deal with issues and tend to take action swiftly. We suspend instances that:

+
    +
  • Consists of having communities/a majority of users who are racist/facists, queerphobic, and anything else crossing those lines or breaks any of our rules.
  • +
  • Known instances or communities/groups that harass others/our own communities and friends.
  • +
  • Heavily radiates "Bad Vibes" to us collectively as a community (In ways where an instance may not appear bad on the surface, but consistently points in directions that nudges towards ideas that either harm us or risks our own safety).
  • +
  • Maliciously modifies federation (Ignoring deletes, converting non-public posts to public, Etc.)
  • +
+

For anything else, we usually tend to media-silence:

+
    +
  • Instances without rules for tagging content/with users that consistently don't properly tag posts, such as politics and NSFW-related posts.
  • +
  • Instances that mainly to only consists of heavy amounts of "Irony-poisoned" or "racism funny" posting.
  • +
  • Instances that may not be "bad" or break any rules on the surface, but collectively gives us very offputting vibes that we deem it possibly unsafe and limit federation for safety reasons.
  • +
  • Large instances that could be affected by spam attacks.
  • +
+

By default, we don't block through guilt-by-federation. However, if we find an instance that consistently federates or otherwise associates and notably supports bad actors - more specifically those who have otherwised harmed us or others/close friends and instances before - we may consider the instance for suspension depending on the case. This is entirely for the safety of our own community and the many risk factors of keeping continued federation.

+

We also may suspend/silence instances if our users are reportedly uncomfortable about them, whether via the users or the content on the instance. Again, we want a safe space for ourselves and friends.

+

Our actions aren't limited to what is based on interactions from/within our own community. If we find harassment or otherwise any negative behavior towards other users or our close friends/instances, action will still be done. Remember: we moderate collaboratively.

+

To be frank, we are a small group of burned-out moderators with past negative experiences on the fediverse and therefore choose to moderate how we will to protect ourselves and our community.

+
+

If you're a user, and would like to question any of our moderation decisions or actions, or talk about a specific instance (or for more information on why we block/silence a specific instance), feel free to bring it up with the moderators/administrators. If it's an instance/user you deem should be up for moderation action, report it instead.

+
+

To see moderation lists, such as silenced and blocked instances, please check the About Instance information on your instance to see if it's made available to you directly. If that is not the case, ask a moderator/administrator and give you a copy of our current list.

+
+
\ No newline at end of file diff --git a/_includes/layouts/pages/fediverse/rules.njk b/_includes/layouts/pages/fediverse/rules.njk new file mode 100644 index 0000000..aa33521 --- /dev/null +++ b/_includes/layouts/pages/fediverse/rules.njk @@ -0,0 +1,55 @@ + +
+
+ + Rules + +
+ +

Rules

+

Our Terms of Service applies when using the Fediverse as our instance rules, both for our own community and also as we moderate those remotely. Rules may be a bit lax for our own local community, as we trust you to be here. We recommend reading our Terms of Service to get a baseline that applies as rules, but to summarize:

+
    +
  • + No nazism, racism, antisemitism, queerphobia of any type, bigotry of any kind, or harassment. Any type of hate speech is not allowed. We are not a "Free Speech" zone. +
  • +
  • + Pedophilia, zoophilia, "radqueers" and other related communities and labels are not allowed. This also includes any references/usage of fictional counterparts, such as lolicon/shota and cub pornography. +
  • +
  • + Don't post anything that would otherwise get us into legal trouble, as within Canadian laws. +
  • +
  • + No spam. Obviously. +
  • +
  • + Use content warnings. Be considerate for others, add a properly labeled content warnings to your posts as needed, such as: +
      +
    • NSFW content as a whole (including kinks, fetishes, etc)
    • +
    • World/local politics
    • +
    • Otherwise content that may possibly be distressing/depressing to others
    • +
    + Reclaimed slurs may be left without a content warning, as long as you know and respect your own space/"audience". +
  • +
  • + Respect your own and others right to privacy, opinions, and boundaries. Especially for boundaries, make an effort to ensure you aren't overstepping someone's comfort zone. +
  • +
  • + We encourage adding alt text onto publicly posted media. Not a required rule, but we recommend it. +
  • +
  • + Basically: Just use common sense. +
  • + +
+
+
\ No newline at end of file diff --git a/_includes/layouts/pages/index.njk b/_includes/layouts/pages/index.njk new file mode 100644 index 0000000..0db59e4 --- /dev/null +++ b/_includes/layouts/pages/index.njk @@ -0,0 +1,31 @@ + +
+
+ + Welcome! + +
+ +

Hey! Welcome to...

+

+

We're a project managed by beepers, toasters, and other non-organic and organic creatures alike, hosting and running services together to provide ourselves with a safe community, and for the greater net public. if you like what we do, please consider donating!

+

Synth.Download is, obviously, themed around Synths. In general, we're aimed towards furry, therian, otherkin and non-organic-like beings, but accepts all! As long as you're chill with us.

+

Read our About for more information related to Synth.Download itself, or head over to our Services page to see what we provide. By accessing and using this site and its services, you agree to our Privacy Policy and Terms of Service.

+

Enjoy your stay! Beep!~

+ + + Oomfie City + Labyrinth Zone + +
+
\ No newline at end of file diff --git a/_includes/layouts/pages/privacy.njk b/_includes/layouts/pages/privacy.njk new file mode 100644 index 0000000..5bb5c4b --- /dev/null +++ b/_includes/layouts/pages/privacy.njk @@ -0,0 +1,49 @@ + +
+
+ + Privacy Policy + +
+ +

Privacy Policy

+

Updated at

+

Terms

+

These terms help clarify what this policy mentions and covers.

+
    +
  1. "We/Us" - Synth.Download's administrators.
  2. +
  3. "Service/Services" - Any service and frontend provided by Synth.Download.
  4. +
  5. "User" - Any user accessing Synth.Download and its services.
  6. +
  7. "Registered User/Member" - Any user who is considered a member, and has an account registered on any Synth.Download service.
  8. +
+

Users

+

By default, all services, including this website, log the minimum amount of connection data that is collected by default in our Caddy logs. This includes:

+
    +
  • The IP address used to connect.
  • +
  • The user-agent of the application used to connect (Your browser/client, operating system, other related system and software information)
  • +
  • The exact date and time a connection was made.
  • +
+

We only store these logs for protection of our services in the case of any malicious behavior against our services, and are rolled over every week.

+

All logs are stored locally. We do not send data to be processed by anyone or anywhere else. We do not user or have any sort of analytics system in place. We do not use any of this data to "collect" or "profile" any individual. We do not try or attempt to store more data than is strictly necessary.

+

Under Canadian laws, the PIPEDA applies with how we handle data protection. We also attempt to follow the GDPR, along with running services with GDPR in mind, for storing and managing personal data, and allow for complete deletion of all personal data (if any is stored ourselves) whenever possible.

+

This website does not make any external connections except for the Donate page, which embeds a Stripe widget, and ocasionally, embedded Sharkey notes and timelines, of which is from our instance that we run and manage ourselves. This websites use of technology such as JavaScript is only used to store user preferences and add additional client-side improvements.

+

We utilize Backblaze to store media, files, and encrypted off-site backups, and Bunny as our CDN to help with media network speeds. Their Privacy Policies and Terms of Service also applies.

+

Registered Users

+

Users who have registered accounts of any Synth.Download service are required to provide extra information that is required by said service, or is to be optionally provided by the member. This information usually includes email addresses (for the case or need of verification or password resets) and passwords (securely stored and hashed).

+

As a transparency note, all provided data and information on the members end is accessible by all administrators of Synth.Download, but will not be mishandled or misused for any purposes and will only be accessed for the cases of:

+
    +
  • Required moderation/administration actions on our end.
  • +
  • Need of emergency contact.
  • +
  • (By) Any request asked by the member.
  • +
+

Depending on the service, we may have easier access to specific information for account management or service moderation/administrative purposes.

+
+
\ No newline at end of file diff --git a/_includes/layouts/pages/services/filters.njk b/_includes/layouts/pages/services/filters.njk new file mode 100644 index 0000000..9ef7583 --- /dev/null +++ b/_includes/layouts/pages/services/filters.njk @@ -0,0 +1,30 @@ +
+ + Filters + + + + + +

Category

+ + + + + + + + + + +
+ +

Publicity

+ + + + +
+
+
+
\ No newline at end of file diff --git a/_includes/layouts/pages/services/list.njk b/_includes/layouts/pages/services/list.njk new file mode 100644 index 0000000..c3f3d50 --- /dev/null +++ b/_includes/layouts/pages/services/list.njk @@ -0,0 +1,350 @@ + + +

+ + Redlib + + + + + +

+

A privacy respecting frontend for Reddit.

+

This instance may be nonfunctional from time to time.

+ + + + + + + + + + + + + + + + + +
+ +

+ + SafeTwitch + + + + + +

+

A privacy respecting frontend for proxying and watching live Twitch streams.

+ + + + + + + + + + + + + + + + + +
+ +

+ + SearxNG + + + + + + +

+

Metasearch engine that retrieves web search results from multiple other search engines, while respecting user privacy.

+ + + + + + + + + + + + + + + + + +
+ +

+ + Sharkey + + + + + +

+

Advanced, fun, featureful and federated social media platform for the Fediverse. Based on Misskey.

+

Accounts are located at @booping.synth.download

+ + + + + + + + + + + + + + + + + + + + +
+ +

+ + Mastodon + + + + + +

+

Traditional, Calmer, more Twitter-like and federated social media platform for the Fediverse. Runs our own fork with added features.

+

Accounts are located at @merping.synth.download

+ + + + + + + + + + + + + + + + + + + + +
+ +

+ + Iceshrimp.NET + + + + + +

+

Lightweight, Misskey-inspired software for the Fediverse.

+

Accounts are located at @synth.download

+

We currently do not suggest using this software. Sharkey and Mastodon provide better and more stable user experiences.

+ + + + + + + + + + + + + + + + + + + + +
+ +

+ + PDS + + + + + +

+

Personal Data Server, used to store your profile data and interact with applications in the Atmosphere, such as Bluesky.

+ + + + + + + +
+ +

+ + pl-fe + + + + + +

+

General fediverse compatible client, using a baseline of the Mastodon API with extended support for more APIs and features from other softwares.

+ + + + + + + + +
+ +

+ + Phanpy + + + + + +

+

Opinionated Mastodon-API compatible fediverse client. Our own fork with improved support for extra features, such as emoji reactions.

+ + + + + + + + +
+ +

+ + AskJS + + + + + + +

+

Anonymous asking site to ask users questions.

+ + + + + + + + +
+ +

+ + XMPP + + + + + +

+

Our Ejabberd server, for the XMPP chat protocol.

+ + + + + XMPP Specifications compliance: 100% + +
+ +

+ + Forgejo + + + + + + +

+

Self-hosted Git forge for storing code repositories.

+ + + + + + + + +
+ +

+ + Vaultwarden + + + + + +

+

A Bitwarden-compatible password manager, hosted by us.

+ + + + + + + + +
+ +

+ + FreshRSS + + + + + +

+

An online RSS reader and news aggregator.

+ + + + + + + + +
+
\ No newline at end of file diff --git a/_includes/layouts/pages/services/services.njk b/_includes/layouts/pages/services/services.njk new file mode 100644 index 0000000..006c66a --- /dev/null +++ b/_includes/layouts/pages/services/services.njk @@ -0,0 +1,26 @@ + +
+
+ + Services + +
+ +

Services

+

This page lists all services hoted on Synth.Download for both public and private member usage. Statuses, service announcements, incidents and general uptime information will be monitored and reported at our status page.

+

All services and systems for Synth.Download are manually upgraded and rebooted every week on the weekends in our available times. If services are down, please give it a few minutes before trying again.

+

To suggest a service to be run by us, please contact synth@synth.download or poke at an admin. Same case for if there is anything wrong.

+

Some services provide alternative hidden services for I2P, Tor, and Yggdrasil. Services with anonymous input options do not have hidden services due to safety concerns.

+

For those curious on our systems or configurations, refer to our about page.

+ {% include "layouts/pages/services/filters.njk" %} + {% include "layouts/pages/services/list.njk" %} +
+
\ No newline at end of file diff --git a/_includes/layouts/pages/sneexy/about.njk b/_includes/layouts/pages/sneexy/about.njk new file mode 100644 index 0000000..105ef43 --- /dev/null +++ b/_includes/layouts/pages/sneexy/about.njk @@ -0,0 +1,30 @@ + +
+
+ + About me + +
+ +

about me

+

I'm a gay goo-Synth on the internet, a zoomer, established 2006, who likes to store endless amounts of data and pretends to be a computer himself. For information related to my Synth-sona, refer to here. I'm autistic and have ADHD, and those two blended together create the mess that I am today.

+

I consider myself to be a professional computer toucher, and try my best to poke at computers or anything related to weird tech that interest me. I would say I've messed enough in a good share of both software and hardware related things.

+

I'm a nerd with Free and Open Source stuff and also caring about my privacy whenever possible considering that it doesn't really seem to exist at all in the modern world, anyways. I also like messing around with Linux, trying a bit of Arch and a little bit of NixOS, but found comfort with Fedora. If you're interested, I'm currently running my own customized varient of Fedora Kinoite made with BlueBuild that you can find here. With all of that out of the way, I will mention that I'm not going to shove these down anyone's throat, and if you're someone who does that, kindly reconsider your own behavior.

+

Despite what is mentioned above, I'm not really a programmer, IT support guy, some professional info-sec person or anything like that. My knowledge is honestly quite limited. At most, I personally mainly know just enough Bash to make jank scripts, HTML and CSS, and a good amount of Linux and Docker/Podman to let me survive. As much as I'd like to learn to expand, I've tried Python before with full intention and motivation of properly learning it to make things and it just didn't stick at all for me, and considering that was with Python, I'm goign to assume my limits in terms of handling things are pretty low.

+

I also run synth.download! The thing you're looking at! Made with love and containers.

+

I absolutely despise capitalism with every single fiber in my living synthentic body. Although I think everyone in this similar space does as well. +

In case it wasn't obvious or clear somehow at this point, I'm a furry. And gay. And weird. I may not be covered in fur or an "animal", but that doesn't mean I'm not in the same space. Being a human fucking SUCKS.

+

Certified idiot (although I think this one is obvious)

+

For the record, and this is most likely something worth pointing out: My mental health isn't great and I tend to have intense mood swings, and can sometimes randomly break down. Please excuse me in these moments, Thanks.

+

I'm also usually exhausted. Both mentally and physically, if that wasn't clear.

+

Sometimes, I do make things, but honestly don't expect much from me. I'll make some type of gallery page soon for the things I do make and the things others do for me, I promise.

+
+
\ No newline at end of file diff --git a/_includes/layouts/sneexy/buttons.njk b/_includes/layouts/pages/sneexy/buttons.njk similarity index 91% rename from _includes/layouts/sneexy/buttons.njk rename to _includes/layouts/pages/sneexy/buttons.njk index ac5059b..b671d24 100644 --- a/_includes/layouts/sneexy/buttons.njk +++ b/_includes/layouts/pages/sneexy/buttons.njk @@ -1,30 +1,29 @@ -
+
- + Buttons - - +
-
+ If any are broken and/or missing, poke me.

Friends!

-
+ 23Sonics - authenyo Autumn Town Café - av70 benjae birdcat dot online harper Bluefox Longtail + Chloe david wolfpaw doskel sirlain @@ -33,9 +32,12 @@ exlitry.world oli Freeplay + Gen ~thermia + Guigui Hexaitos dracoling + Ielenia InvoxiPlayGames Jack ~keith @@ -76,13 +78,12 @@ Volpeon Tika Won't Work!/kopper - winter Xaselgio/Indigo's den niss zvava -
+

Misc.

-
+ Get Firefox uBlock Origin Now! @@ -114,12 +115,12 @@ Rave Now! Tucows Yoshi Lore -
+

Me! (Click to copy HTML)

-
+ -
-
+ +
\ No newline at end of file diff --git a/_includes/layouts/sneexy/funfacts.njk b/_includes/layouts/pages/sneexy/funfacts.njk similarity index 65% rename from _includes/layouts/sneexy/funfacts.njk rename to _includes/layouts/pages/sneexy/funfacts.njk index 8aecf35..86b1748 100644 --- a/_includes/layouts/sneexy/funfacts.njk +++ b/_includes/layouts/pages/sneexy/funfacts.njk @@ -1,27 +1,27 @@ -
+
- + "Fun" facts - - +
-
+

"Fun" facts

  • My profile pictures used to be random characters from different types of media that I would just apply a grayscale onto. Ever since then, I realized that I've very much enjoyed being a Synth instead.
  • I used to have an inside joke with some old friends where I loved cheese. 🧀
  • Originally starting going online when I was young and my only method of getting Wi-Fi was by using my netbook in the kitchen, stationed above the stove and connecting to a nearby stores local Wi-Fi connection. apparently, Lowes Wi-Fi goes out VERY far.
  • -
  • Joined the Fediverse around 2020 or so, originally on mas.to before moving to types.pl, which has quite a nice local community ignoring that I left the account to rot and die, before moving to miruku.cafe for a short bit, which introduced me to the Misskey software where I ended up starting to actually enjoy using the Fediverse, then moving to lea.pet after some drama went down, before finally landing on my own self-hosted instance at booping.synth.download. Well, originally starting at beeping.synth.download, But I realized that Iceshrimp.NET is a bit too much in beta stage software for me.
  • +
  • Joined the Fediverse around 2020 or so, originally on mas.to before moving to types.pl, which has quite a nice local community ignoring that I left the account to rot and die, before moving to miruku.cafe for a short bit, which introduced me to the Misskey software where I ended up starting to actually enjoy using the Fediverse, then moving to lea.pet, before finally landing on my own self-hosted instance at booping.synth.download. Well, originally starting at beeping.synth.download, But I realized that Iceshrimp.NET is a bit too much in beta stage software for me.
  • I prefer lowercase when possible and use spaces before and after punctionation, sometimes maybe a double space here and there, Although I attempt to avoid doing the latter on this website to try and prevent it from making it entirely inaccessible. It just feels more natural for me.
  • I am terrible at spelling.
-
+
\ No newline at end of file diff --git a/_includes/layouts/pages/sneexy/intro.njk b/_includes/layouts/pages/sneexy/intro.njk new file mode 100644 index 0000000..4518f07 --- /dev/null +++ b/_includes/layouts/pages/sneexy/intro.njk @@ -0,0 +1,69 @@ + +
+
+ + Sneexy + +
+ +
+
+ Theme song by ChalkLlate! +

3D Low poly model of my synth character. He's a pretty chubby synth with a belly and chest made entirely out of goo, his frame is mostly made with shades of grey with lime/pastel green accents. Hey, I'm Ruben!

+ Cheesed to meet ya. +

Big fat gooey synth who is constantly tired.

+ ...or eepy, but definitely more tired. + + +

Pronouns

+
    +
  • + + He/Him +
  • +
  • + + They/Them +
  • +
  • + + + Anything else + +
  • +
+
+ +

Names

+
    +
  • + + Ruben +
  • +
  • + + Sneexy, Sneex* +
  • +
  • + + Rube, Rubie (Ruby) +
  • +
  • + + + Variations/Anything else + +
  • +
+
+
+
+
\ No newline at end of file diff --git a/_includes/layouts/pages/sneexy/nsfw/intro.njk b/_includes/layouts/pages/sneexy/nsfw/intro.njk new file mode 100644 index 0000000..0d0087f --- /dev/null +++ b/_includes/layouts/pages/sneexy/nsfw/intro.njk @@ -0,0 +1,27 @@ + +
+
+ + Warning + +
+ +
+

Welcome to "The Slosh Zone"

+

This is a dedicated NSFW page going over my random various kinks and fetishes I like, mainly just for the curious. It should be obvious what type of content will be here, but just to make sure: things about Fat/related, inflation/related, vore and other general/common NSFW topics will be on this page.

+

A fair warning, I've also turned off my own limiter here. Full-blown sounds and actions and descriptions of things, I'm a fat fuck who needs to be fed pure energy and data.

+

Toggle the checkbox below if you consent to viewing this page's content or are not a minor. Otherwise, just back out.

+ + + +
+
+
\ No newline at end of file diff --git a/_includes/layouts/sneexy/nsfw/nsfw.njk b/_includes/layouts/pages/sneexy/nsfw/nsfw.njk similarity index 87% rename from _includes/layouts/sneexy/nsfw/nsfw.njk rename to _includes/layouts/pages/sneexy/nsfw/nsfw.njk index 0a2bbde..e647b4b 100644 --- a/_includes/layouts/sneexy/nsfw/nsfw.njk +++ b/_includes/layouts/pages/sneexy/nsfw/nsfw.njk @@ -1,19 +1,19 @@ -
+ \ No newline at end of file diff --git a/_includes/layouts/sneexy/ruben/features.njk b/_includes/layouts/pages/sneexy/ruben/features.njk similarity index 91% rename from _includes/layouts/sneexy/ruben/features.njk rename to _includes/layouts/pages/sneexy/ruben/features.njk index a2c0670..1c430b3 100644 --- a/_includes/layouts/sneexy/ruben/features.njk +++ b/_includes/layouts/pages/sneexy/ruben/features.njk @@ -1,19 +1,19 @@ -
+
- + features - - +
-
+

features (general)

ruben is a Fat, chubby synth. he prefers himself that way.

compared to other common synths, his head mostly consists of the visor on the front of his mouth, with the sort of "jagged mouth" style coming from the visor visor. around the front where the pointy "teeth" parts are emits a sleek glow. that part of the visor can also be manipulated to however he feels, to change shape or pointiness of the "teeth". his nostrils are displayed on the visor on the very front, which are accurately placed to where he can smell. don't ask how. he just can.

@@ -56,5 +56,5 @@

if he expereinces a mix of different emotions, the reaction of each emotion can mix as a gradient passing from the top of his body to the bottom.

the goo has an activated thin outside layer that prevents itself from dripping or allowing things to simply get sucked into it. it gets lost if he is under intense feelings/emotions or simply starts losing energy to keep it activated.

the goo itself is known to have many more features, although most are experimental and best to leave disabled. a notable one is to be able to use the goo as expandable, dynamic storage, however this is not stable and is prone to easy data loss. although ruben likes to keep it enabled for other reasons. :)

-
+
\ No newline at end of file diff --git a/_includes/layouts/sneexy/ruben/intro.njk b/_includes/layouts/pages/sneexy/ruben/intro.njk similarity index 65% rename from _includes/layouts/sneexy/ruben/intro.njk rename to _includes/layouts/pages/sneexy/ruben/intro.njk index 95b170e..4c49157 100644 --- a/_includes/layouts/sneexy/ruben/intro.njk +++ b/_includes/layouts/pages/sneexy/ruben/intro.njk @@ -1,19 +1,19 @@ -
+
- + ruben's introduction - - +
-
+

ruben

gooey synth. known fatass. fact sheet/ref sheet thingy. still a wip!!

    @@ -34,5 +34,5 @@

download the blockbench model here!

-
+
\ No newline at end of file diff --git a/_includes/layouts/sneexy/ruben/personality.njk b/_includes/layouts/pages/sneexy/ruben/personality.njk similarity index 74% rename from _includes/layouts/sneexy/ruben/personality.njk rename to _includes/layouts/pages/sneexy/ruben/personality.njk index 30a3389..f493196 100644 --- a/_includes/layouts/sneexy/ruben/personality.njk +++ b/_includes/layouts/pages/sneexy/ruben/personality.njk @@ -1,19 +1,19 @@ -
+
- + personality - - +
-
+

personality

usually embarassed, quite asocial and only feels comfortable around friends or creatures he thinks are cool. always in a mix of "wanting to meet more creatures and make friends" but also "afraid of being around others, always assumuing others secretly hate him".

known to have random mental episodes of all sorts, but friends around him usually know how to deal with it and help him get out of those states. sometimes tends to stay quiet about it, as he "doesn't know what's causing this".

@@ -21,5 +21,5 @@

he tries to always care for friends and be there for them, which ended up shifting his body to be more tuned for comfort of being more like a walking gooey bed that where he can maximize comfort for others.

VERY affectionate. all types of (positive) teasing, love, kindness or anything related to that is enough to make him blush and beep. also tends to nuzzle and cuddle friends at random whenever he wants.

mostly lazy. sometimes may try to do something else and is well known for slacking off and doing other things that aren't important and avoiding the things that are important.

-
+
\ No newline at end of file diff --git a/_includes/layouts/pages/sneexy/socials.njk b/_includes/layouts/pages/sneexy/socials.njk new file mode 100644 index 0000000..e8c96fa --- /dev/null +++ b/_includes/layouts/pages/sneexy/socials.njk @@ -0,0 +1,37 @@ + + \ No newline at end of file diff --git a/_includes/layouts/tos.njk b/_includes/layouts/pages/tos.njk similarity index 86% rename from _includes/layouts/tos.njk rename to _includes/layouts/pages/tos.njk index ff1dd61..47fd24f 100644 --- a/_includes/layouts/tos.njk +++ b/_includes/layouts/pages/tos.njk @@ -1,23 +1,23 @@ -
+
- + Terms of Service - - +
-
+

Terms of Service

Updated at

TL;DR: Be nice to one and another, stay chill, use common sense, don't do (or continue doing) anything that makes others uncomfortable, and if someone else is making you/another person uncomfortable, bring it up with a moderation/administrator.

-
+

Our Terms of Service can be treated as our general rulebook, and what we expect from our members and also outsiders/visitors of our services. Note that for our registered members, these aren't exactly hard guidelines, and exceptions can be made depending on the case - for those cases, we usually provide proper rules for other services.

Our guidelines are as followed:

    @@ -40,5 +40,5 @@
  • The servers for Synth.Download are located in Canada, therefore, Canadian laws apply to our services. Nothing illegal, please. Any illegal activity will be reported to the proper authorities.

If we find you breaking these guidelines, or deem you unfit for our services (and therefore, our community) for one reason or another, you will be blocked from interacting with us.

-
+
\ No newline at end of file diff --git a/_includes/layouts/post.njk b/_includes/layouts/post.njk deleted file mode 100644 index a0533e4..0000000 --- a/_includes/layouts/post.njk +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: notebook -layout: "layouts/base.njk" -section: post -permalink: "/notebook/{{ date }}-{{ title | slugify }}/" ---- - - -
- - - information - - - - -
- - -
- - - {{ title or metadata.title }} - - - -
-

{{ title or metadata.title }}

- {{ content | safe }} -
-
\ No newline at end of file diff --git a/_includes/layouts/privacy.njk b/_includes/layouts/privacy.njk deleted file mode 100644 index f5f6584..0000000 --- a/_includes/layouts/privacy.njk +++ /dev/null @@ -1,41 +0,0 @@ - -
-
- - Privacy Policy - - -
-
-

Privacy Policy

-

Updated at

-
-

By default, for both visitors only browsing our site or those using our public services (that normally do not require any sort of registrations) and already registered users of our services, we store the minimum amount of connection data that is by default in our Caddy logs. This includes:

-
    -
  • The IP address used to connect
  • -
  • The user-agent of the application used to connect (Usually, your browser/client, operating system, etc.)
  • -
  • The exact date and time a connection was made.
  • -
-

We only store these logs for protection of our services in the case of any malicious behavior against our services, and are wiped/overwritten every 5 days.

-

We do not send data to be processed by anyone/anywhere else. We do not use or have any sort of analytics system in place. We do not use any of this data to "collect" or "profile" any individual. We do not try or attempt to store more data than is strictly necessary.

-

We ourselves and the services we provide follow the GDPR for storing and managing personal data, and allow for complete deletion of all personal data (if any is stored ourselves) whenever possible.

-

This website (the Synth.Download homepage, source available here) does not make use of cookies or related technology. We store settings and preferences changed for our site with the menu available in the top right into your browser's local storage, which is otherwise unavailable/not possible if JavaScript is disabled by the client.

-
-

For registered users of any of our services, we will also store any extra information that is required by the service or otherwise optionally provided, such as email addresses (for the case or need of verification or password resets) and passwords (securely stored and hashed). What information or data is required or otherwise provided varies from service to service.

-

As a transparency note, all provided data and information is accessible by all administrators of Synth.Download, but will not be mishandled/misused for any purposes except for the cases of required moderation/administration actions on our end, for a need of emergency contact, or otherwise for any request asked by the user.

-

Depending on the service, we may have easier access to specific, possibly personal information for account management or service moderation/administrative purposes.

-

For some services, we utilize Bunny as our public CDN and Backblaze for files and storing whole, encrypted, off-site system backups. Their privacy policies may also apply with our services.

-
-

For our Fediverse instances (which includes Sharkey, Iceshrimp and Mastodon), we cannot guarantee 100% privacy. Federation isn't reliable nor private by design, and is a public network where posts made are cloned and stored by other instances with their own administrators.

-

Direct messages are not completely private or encrypted in any way. Post deletion and edits can be ignored or missed by other instances, although we do attempt to block instances with malicious intents (see moderation for more details). Other instances may have different privacy policies or different ways of handling data and protection standards.

-

Note that only any information made public by you (your posts, your bio and profile picture, other related information meant to be viewed by others) is what gets federated. Any other private information related to your account such as your email address and passwords will never be federated.

-

All media uploaded through our instance get uploaded to Backblaze, which stores files, then forwarded through Bunny as our CDN for faster file delivery and media loading. Some software, like Mastodon, have tools to help with personal privacy, such as post auto-deletion.

-
-
\ No newline at end of file diff --git a/_includes/layouts/services/chat.njk b/_includes/layouts/services/chat.njk deleted file mode 100644 index 3633a8d..0000000 --- a/_includes/layouts/services/chat.njk +++ /dev/null @@ -1,15 +0,0 @@ -
- Chat -
-
-

XMPP Private

-

Generic XMPP server ran by us, powered with ejabberd. Simply point your client to synth.download.

-

-
- -
-
\ No newline at end of file diff --git a/_includes/layouts/services/frontends.njk b/_includes/layouts/services/frontends.njk deleted file mode 100644 index 2f37580..0000000 --- a/_includes/layouts/services/frontends.njk +++ /dev/null @@ -1,15 +0,0 @@ -
- Frontends -
-
-

Redlib

-

A simple alternative frontend for accessing Reddit content.

-

Go

-
-
-

SafeTwitch

-

Alternative frontend for watching live Twitch streams.

-

Go

-
-
-
\ No newline at end of file diff --git a/_includes/layouts/services/fun.njk b/_includes/layouts/services/fun.njk deleted file mode 100644 index 3532f03..0000000 --- a/_includes/layouts/services/fun.njk +++ /dev/null @@ -1,15 +0,0 @@ -
- Fun -
-
-

Ask-js Private

-

Platform for receiving and answering anonymous questions and answers.

-

Go

-
-
-

A Dark Room

-

Just a mirror of A Dark Room, a minimalist and dark text adventure-like game

-

Go

-
-
-
\ No newline at end of file diff --git a/_includes/layouts/services/other.njk b/_includes/layouts/services/other.njk deleted file mode 100644 index a76e907..0000000 --- a/_includes/layouts/services/other.njk +++ /dev/null @@ -1,10 +0,0 @@ -
- Other -
-
-

ZITADEL Private

-

Our authenticator to access multiple services using one account... or an attempt to. Currently only used for FreshRSS and Forgejo, and hoping to expand more with this.

-

Go

-
-
-
\ No newline at end of file diff --git a/_includes/layouts/services/personal.njk b/_includes/layouts/services/personal.njk deleted file mode 100644 index 2ed0bdc..0000000 --- a/_includes/layouts/services/personal.njk +++ /dev/null @@ -1,16 +0,0 @@ -
- Personal -
-
-

Vaultwarden Private

-

Bitwarden-compatible password manager with 2FA support and all that good stuff.

-

Go

-
-
-

FreshRSS Private

-

Online RSS and Atom compatible feed reader.

-

Log in through ZITADEL.

-

Go

-
-
-
\ No newline at end of file diff --git a/_includes/layouts/services/services.njk b/_includes/layouts/services/services.njk deleted file mode 100644 index 25c301c..0000000 --- a/_includes/layouts/services/services.njk +++ /dev/null @@ -1,30 +0,0 @@ - -
-
- - Services - - -
-
-

Services

-

All of our services that we host on Synth.download will be listed here. If you have a suggestion for a service to possibly look into hosting, feel free to poke at Sneexy!

-

Any service with Private listed next to its name means that it's an invite-only service, and/or requires an account for accessibility/complete usage. To boil it down, almost all services will be Private unless it's a service that has no need for an account such an alternative frontend.

- {% include "layouts/services/toc.njk" %} -
- {% include "layouts/services/frontends.njk" %} - {% include "layouts/services/social.njk" %} - {% include "layouts/services/chat.njk" %} - {% include "layouts/services/sharing.njk" %} - {% include "layouts/services/fun.njk" %} - {% include "layouts/services/personal.njk" %} - {% include "layouts/services/other.njk" %} -
-
\ No newline at end of file diff --git a/_includes/layouts/services/sharing.njk b/_includes/layouts/services/sharing.njk deleted file mode 100644 index 007ece0..0000000 --- a/_includes/layouts/services/sharing.njk +++ /dev/null @@ -1,10 +0,0 @@ -
- Sharing -
-
-

Forgejo Private

-

A home for all of your Git repositories.

-

Go

-
-
-
\ No newline at end of file diff --git a/_includes/layouts/services/social.njk b/_includes/layouts/services/social.njk deleted file mode 100644 index e2cbbc5..0000000 --- a/_includes/layouts/services/social.njk +++ /dev/null @@ -1,28 +0,0 @@ -
- Social -
-
-

Sharkey Private

-

Advanced social media software connected to the wider Fediverse (ActivityPub), based on Misskey with many improvements.

-

Accounts from this instance shall be reached via @booping.synth.download

-

Info Go

-
-
-

Iceshrimp Private

-

Another advanced social media software connected to the wider Fediverse (ActivityPub), provided as an alternative for those who dislike the Misskey experience or prefer the Mastodon compatibility.

-

Accounts from this instance shall be reached via @synth.download, wherever supported.

-

Info Go

-
-
-

Mastodon Private

-

Calmer social media software connected to the wider Fediverse (ActivityPub), it's Mastodon. Running a light fork of Chuckya which includes features such as emoji reactions.

-

Accounts from this instance shall be reached via @merping.synth.download

-

Info Go

-
-
-

PDS Private

-

Synth.download's Personal Data Server, to be used with the Atmosphere (ATProto) and more specifically, Bluesky.

-

Go

-
-
-
\ No newline at end of file diff --git a/_includes/layouts/services/toc.njk b/_includes/layouts/services/toc.njk deleted file mode 100644 index eafeda1..0000000 --- a/_includes/layouts/services/toc.njk +++ /dev/null @@ -1,87 +0,0 @@ -
- - Table-of-Contents - - -
- -
-
diff --git a/_includes/layouts/sneexy/about.njk b/_includes/layouts/sneexy/about.njk deleted file mode 100644 index 50a4449..0000000 --- a/_includes/layouts/sneexy/about.njk +++ /dev/null @@ -1,30 +0,0 @@ - -
-
- - About me - - -
-
-

about me

-

I'm a gay goo-Synth on the internet, a zoomer, established 2006, who likes to store endless amounts of data and pretends to be a computer himself. For information related to my Synth-sona, refer to here. I'm autistic and have ADHD, and those two blended together create the mess that I am today.

-

I consider myself to be a professional computer toucher, and try my best to poke at computers or anything related to weird tech that interest me. I would say I've messed enough in a good share of both software and hardware related things.

-

I'm a nerd with Free and Open Source stuff and also caring about my privacy whenever possible considering that it doesn't really seem to exist at all in the modern world, anyways. I also like messing around with Linux, trying a bit of Arch and a little bit of NixOS, but found comfort with Fedora. If you're interested, I'm currently running my own customized varient of Fedora Kinoite made with BlueBuild that you can find here. With all of that out of the way, I will mention that I'm not going to shove these down anyone's throat, and if you're someone who does that, kindly reconsider your own behavior.

-

Despite what is mentioned above, I'm not really a programmer, IT support guy, some professional info-sec person or anything like that. My knowledge is honestly quite limited. At most, I personally mainly know just enough Bash to make jank scripts, HTML and CSS, and a good amount of Linux and Docker/Podman to let me survive. As much as I'd like to learn to expand, I've tried Python before with full intention and motivation of properly learning it to make things and it just didn't stick at all for me, and considering that was with Python, I'm goign to assume my limits in terms of handling things are pretty low.

-

I also run synth.download! The thing you're looking at! Made with love and containers.

-

I absolutely despise capitalism with every single fiber in my living synthentic body. Although I think everyone in this similar space does as well. -

In case it wasn't obvious or clear somehow at this point, I'm a furry. And gay. And weird. I may not be covered in fur or an "animal", but that doesn't mean I'm not in the same space. Being a human fucking SUCKS.

-

Certified idiot (although I think this one is obvious)

-

For the record, and this is most likely something worth pointing out: My mental health isn't great and I tend to have intense mood swings, and can sometimes randomly break down. Please excuse me in these moments, Thanks.

-

I'm also usually exhausted. Both mentally and physically, if that wasn't clear.

-

Sometimes, I do make things, but honestly don't expect much from me. I'll make some type of gallery page soon for the things I do make and the things others do for me, I promise.

-
-
\ No newline at end of file diff --git a/_includes/layouts/sneexy/base.njk b/_includes/layouts/sneexy/base.njk deleted file mode 100644 index a6550ac..0000000 --- a/_includes/layouts/sneexy/base.njk +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: base ---- - - - - - {% include "layouts/header.njk" %} - - - - - - {% include "layouts/navbar.njk" %} - -
- {{ content | safe }} -
- - {% include "layouts/footer.njk" %} - - - - \ No newline at end of file diff --git a/_includes/layouts/sneexy/intro.njk b/_includes/layouts/sneexy/intro.njk deleted file mode 100644 index f7dc3fc..0000000 --- a/_includes/layouts/sneexy/intro.njk +++ /dev/null @@ -1,45 +0,0 @@ - -
-
- - Sneexy info - - -
-
-
-
- Theme song by ChalkLlate! -

3D Low poly model of my synth character. He's a pretty chubby synth with a belly and chest made entirely out of goo, his frame is mostly made with shades of grey with lime/pastel green accents. Hey, I'm Ruben!

- Cheesed to meet ya. -

Big fat gooey synth who is constantly tired.

- ...or eepy, but definitely more tired. -
-
-

Pronouns

-
    -
  • He/Him
  • -
  • It/Its
  • -
  • They/Them
  • -
  • Anything else
  • -
-
-
-

Names

-
    -
  • Ruben
  • -
  • Sneexy, Sneex*
  • -
  • Rube, Rubie (Ruby)
  • -
  • Variations/Anything else
  • -
-
-
-
-
\ No newline at end of file diff --git a/_includes/layouts/sneexy/notebook.njk b/_includes/layouts/sneexy/notebook.njk deleted file mode 100644 index 52de595..0000000 --- a/_includes/layouts/sneexy/notebook.njk +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: notebook -layout: "layouts/base.njk" -permalink: "/notebook/" ---- - -{% set postslist = collections.post %} - - -
-
- - Notebook - - -
- -
- -

Notebook

-

NOTE: This page is still heavily a work in progress, nothing on here is functional or what is meant to be.

-

A public facing journal for myself, as probably the best way to put it. A blog-ish, writeup-ish, rant-ish place to dump personal thoughts and such into for myself.

- - -
-
- - - \ No newline at end of file diff --git a/_includes/layouts/sneexy/nsfw/intro.njk b/_includes/layouts/sneexy/nsfw/intro.njk deleted file mode 100644 index 1917e76..0000000 --- a/_includes/layouts/sneexy/nsfw/intro.njk +++ /dev/null @@ -1,27 +0,0 @@ - -
-
- - Warning - - -
-
-
-

Welcome to my NSFW page of my random various kinks and fetishes I like, mainly just for the curious. It should be obvious what type of content will be here, but just to make sure: things about Fat/related, inflation/related, vore and other general/common NSFW topics will be on this page.

-

A fair warning, I've also turned off my own limiter here. Full-blown sounds and actions and descriptions of things, I'm a fat fuck who needs to be fed pure food/energy and data.

-

Toggle the checkbox below if you consent to viewing this page's content or are not a minor. Otherwise, you can just back out.

-
- - -
-
-
-
\ No newline at end of file diff --git a/_includes/layouts/sneexy/socials.njk b/_includes/layouts/sneexy/socials.njk deleted file mode 100644 index 132ca03..0000000 --- a/_includes/layouts/sneexy/socials.njk +++ /dev/null @@ -1,32 +0,0 @@ - - \ No newline at end of file diff --git a/custard.html b/_includes/other/custard.html similarity index 100% rename from custard.html rename to _includes/other/custard.html diff --git a/_includes/scripts/close.js b/_includes/scripts/close.js index 1fe10b4..19c091e 100644 --- a/_includes/scripts/close.js +++ b/_includes/scripts/close.js @@ -1,7 +1,7 @@ // unnick asked for this, i provide. -// this provides no usefulness and there is no implementation to respawn windows. but i think it's funny and you can just reload anyways since it doesn't take long to load anyways +// this provides no usefulness and there is no implementation to respawn windows. but i think it's funny and you can just reload document.addEventListener("DOMContentLoaded", function() { - document.querySelectorAll(".close-button").forEach(e => { - e.onclick = () => e.parentElement.parentElement.remove(); + document.querySelectorAll("close-button").forEach(e => { + e.onclick = () => e.parentElement.parentElement.parentElement.remove(); }); }); \ No newline at end of file diff --git a/_includes/scripts/settings.js b/_includes/scripts/settings.js index 2915475..cd23176 100644 --- a/_includes/scripts/settings.js +++ b/_includes/scripts/settings.js @@ -9,7 +9,6 @@ document.addEventListener("DOMContentLoaded", function() { // load saved settings loadSettings(); - applyTheme(); // event listeners on all inputs fontInputs.forEach(input => { @@ -19,7 +18,6 @@ document.addEventListener("DOMContentLoaded", function() { themeInputs.forEach(input => { input.addEventListener('change', function() { saveSettings(); - applyTheme(); }); }); @@ -78,20 +76,4 @@ document.addEventListener("DOMContentLoaded", function() { disableAlttextCheckbox.checked = true; } } - - // apply the theme based on user preference - function applyTheme() { - const selectedTheme = document.querySelector('input[name="theme-setting"]:checked').value; - - // remove any existing theme - document.documentElement.removeAttribute('data-theme'); - - // apply the selected theme - if (selectedTheme === 'light') { - document.documentElement.setAttribute('data-theme', 'light'); - } else if (selectedTheme === 'dark') { - document.documentElement.setAttribute('data-theme', 'dark'); - } - // if auto, don't set a data-theme attribute, let the media query handle it - } }); \ No newline at end of file diff --git a/_includes/styles/accessibility.css b/_includes/styles/accessibility.css deleted file mode 100644 index a553e96..0000000 --- a/_includes/styles/accessibility.css +++ /dev/null @@ -1,95 +0,0 @@ -/* ╭───────────────────────────────────────────────────────╮ -/ │ _ _ _ _ _ _ │ -/ │ __ _ ___ ___ ___ ___ ___(_) |__ (_) (_) |_ _ _ │ -/ │ / _` |/ __/ __/ _ \/ __/ __| | '_ \| | | | __| | | | │ -/ │ | (_| | (_| (_| __/\__ \__ \ | |_) | | | | |_| |_| | │ -/ │ \__,_|\___\___\___||___/___/_|_.__/|_|_|_|\__|\__, | │ -/ │ |___/ │ -/ ╰───────────────────────────────────────────────────────╯ -/ accessibility - choosable accessibility settings */ - -/* - font settings - */ - -/* jetbrains mono */ -:root:has(#font-jbm:checked) { - --font-family: 'JetBrains Mono', 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; - - .navbar .nav-base.nav-right.nav-systray span { - margin: 0px -.1rem; - } -} - -/* atkinson hyperlegible next */ -:root:has(#font-ahn:checked) { - --font-family: 'Atkinson Hyperlegible Next', 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; -} - -/* inter */ -:root:has(#font-inter:checked) { - --font-family: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; -} - -/* (browser) sans serif */ -:root:has(#font-sans-serif:checked) { - --font-family: sans-serif, 'Segoe UI', Tahoma, Geneva, Verdana, system-ui; -} - -/* (browser) serif */ -:root:has(#font-serif:checked) { - --font-family: serif, 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; -} - -/* (browser) monospace */ -:root:has(#font-monospace:checked) { - --font-family: monospace, 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif; -} - -/* - misc - */ - -/* disable forced uncapitalization */ -:root:has(#uncapitalization:checked) { - body { - text-transform: none !important; - } -} - -/* disable background gradient */ -:root:has(#disable-bg:checked) { - body { - background: var(--background) !important; - } -} - -/* disable window animations - copy pasted from "@media (prefers-reduced-motion: reduce)" in base.css */ -:root:has(#disable-animations:checked) { - body { - background: var(--background) !important; - animation: unset !important; - -moz-animation: unset !important; - -webkit-animation: unset !important; - } - - /* animations aren't important for anything so we can simply just disable them on every element then choose which ones not to disable */ - * { - transition: none !important; - animation: unset !important; - -moz-animation: unset !important; - -webkit-animation: unset !important; - } - - /* fedi icon on /me should keep its animation (temp, find a better solution later) */ - .fedi-icon { - animation: opacity-blink 4s infinite !important; - } - .fedi-icon-2 { - animation: opacity-blink-reverse 4s infinite !important; - } -} - -/* disable custom alt text popup */ -:root:has(#disable-alttext:checked) { - .alt-popup { - display: none !important; - } -} \ No newline at end of file diff --git a/_includes/styles/base.css b/_includes/styles/base.css deleted file mode 100644 index 948860a..0000000 --- a/_includes/styles/base.css +++ /dev/null @@ -1,808 +0,0 @@ -/* ╭────────────────────────╮ -/ │ _ │ -/ │ | |__ __ _ ___ ___ │ -/ │ | '_ \ / _` / __|/ _ \ │ -/ │ | |_) | (_| \__ \ __/ │ -/ │ |_.__/ \__,_|___/\___| │ -/ ╰────────────────────────╯ -/ base - styling for regular/global html elements as well as the color schemes, and anything else that doesn't fit anywhere else */ - -:root { - --pagefind-ui-font: var(--font-family); - --pagefind-ui-primary: var(--foreground); - --pagefind-ui-text: var(--foreground); - --pagefind-ui-background: var(--background); - --pagefind-ui-border: var(--accent); - --pagefind-ui-tag: var(--background); - --site-border: .1rem solid var(--border); -} - -/* -custom color scheme, based off of both Ayu Light & Dark and Catppuccin Latte & Mocha. -it's basically a mix and mash of the both of them together, and slightly modified. -it doesn't have a name, call it "synth.download color scheme official real" -*/ - -:root { - /* base colors */ - --background: #fafafa; - --foreground: #3d454d; - --selection: #f0eee4; - --comment: #abb0b6; - --accent: #ffaa33; - --link: #9f5e03; - - /* original ayu colors */ - --orange: #ff9940; - --green: #86b300; - --blue: #4cbf99; - --purple: #a37acc; - --red: #ec3838; - - /* extended catppuccin based colors */ - --flamingo: #ff7d7d; - --rosewater: #eca69a; - --pink: #ff8adb; - --mauve: #ba8aff; - --maroon: #e06c75; - --peach: #ffac6b; - --yellow: #d29f12; - --teal: #2bbac5; - --sky: #3eacce; - --sapphire: #4db5d0; - --lavender: #7881ce; - - /* ui accent colors */ - --ui-orange: #fa8d3e; - --ui-green: #91b362; - --ui-blue: #6994bf; - --ui-purple: #7e57c2; - --ui-teal: #56c2c0; - --ui-lavender: #9d8cdb; - - /* misc. */ - --border: #e4e4e4; - --shadow: rgba(0, 0, 0, 0.1); - --hover: rgba(0, 0, 0, 0.05); - --active: rgba(0, 0, 0, 0.1); - --focus: #86b300; -} - -@media (prefers-color-scheme: dark) { - :root { - /* base colors */ - --background: #0a0e14; - --foreground: #d8d6d2; - --selection: #253340; - --comment: #5c6773; - --accent: #e6b450; - --link: var(--accent); - - /* original ayu colors */ - --orange: #ffb454; - --green: #aad94c; - --blue: #59c2ff; - --purple: #d2a6ff; - --red: #f0646b; - - /* extended catppuccin based colors */ - --flamingo: #f2cdcd; - --rosewater: #f5e0dc; - --pink: #ffc9e3; - --mauve: #cba6f7; - --maroon: #eba0ac; - --peach: #ffcca8; - --yellow: #f9e2af; - --teal: #8ddedc; - --sky: #89dceb; - --sapphire: #74c7ec; - --lavender: #b4befe; - - /* ui accent colors */ - --ui-orange: #e6b450; - --ui-green: #aad94c; - --ui-blue: #39bae6; - --ui-purple: #a37acc; - --ui-teal: #7adbd3; - --ui-lavender: #ada0f3; - - /* misc. */ - --border: #1a1f29; - --shadow: rgba(0, 0, 0, 0.4); - --hover: rgba(255, 255, 255, 0.05); - --active: rgba(255, 255, 255, 0.1); - --focus: #ffb454; - } -} - -/* theme classes for manual theme selection */ -html[data-theme="light"] { - /* base colors */ - --background: #fafafa; - --foreground: #3d454d; - --selection: #f0eee4; - --comment: #abb0b6; - --accent: #ffaa33; - --link: #9f5e03; - - /* original ayu colors */ - --orange: #ff9940; - --green: #86b300; - --blue: #4cbf99; - --purple: #a37acc; - --red: #ec3838; - - /* extended catppuccin based colors */ - --flamingo: #ff7d7d; - --rosewater: #eca69a; - --pink: #ff8adb; - --mauve: #ba8aff; - --maroon: #e06c75; - --peach: #ffac6b; - --yellow: #d29f12; - --teal: #2bbac5; - --sky: #3eacce; - --sapphire: #4db5d0; - --lavender: #7881ce; - - /* ui accent colors */ - --ui-orange: #fa8d3e; - --ui-green: #91b362; - --ui-blue: #6994bf; - --ui-purple: #7e57c2; - --ui-teal: #56c2c0; - --ui-lavender: #9d8cdb; - - /* misc. */ - --border: #e4e4e4; - --shadow: rgba(0, 0, 0, 0.1); - --hover: rgba(0, 0, 0, 0.05); - --active: rgba(0, 0, 0, 0.1); - --focus: #86b300; -} - -html[data-theme="dark"] { - /* base colors */ - --background: #0a0e14; - --foreground: #d8d6d2; - --selection: #253340; - --comment: #5c6773; - --accent: #e6b450; - --link: var(--accent); - - /* original ayu colors */ - --orange: #ffb454; - --green: #aad94c; - --blue: #59c2ff; - --purple: #d2a6ff; - --red: #f0646b; - - /* extended catppuccin based colors */ - --flamingo: #f2cdcd; - --rosewater: #f5e0dc; - --pink: #ffc9e3; - --mauve: #cba6f7; - --maroon: #eba0ac; - --peach: #ffcca8; - --yellow: #f9e2af; - --teal: #8ddedc; - --sky: #89dceb; - --sapphire: #74c7ec; - --lavender: #b4befe; - - /* ui accent colors */ - --ui-orange: #e6b450; - --ui-green: #aad94c; - --ui-blue: #39bae6; - --ui-purple: #a37acc; - --ui-teal: #7adbd3; - --ui-lavender: #ada0f3; - - /* misc. */ - --border: #1a1f29; - --shadow: rgba(0, 0, 0, 0.4); - --hover: rgba(255, 255, 255, 0.05); - --active: rgba(255, 255, 255, 0.1); - --focus: #ffb454; -} - -/* ---------------------------------- -- background wallpaper, global font - ----------------------------------- */ - -html { - background: var(--background) linear-gradient(var(--background) 50%, color-mix(in srgb, var(--accent) 25%, var(--background)) 50%); - background-attachment: fixed; -} - -body { - background: linear-gradient(var(--background), color-mix(in srgb, var(--accent) 25%, var(--background))); - min-height: calc(100vh - 4rem); - font-family: var(--font-family); - font-size: 1.125rem; - text-transform: lowercase; - margin: unset !important; - /* idk why it does that */ -} - -/* text formatting and config stuff */ - -/* headings */ -h1, h2, h3, h4, h5, h6, -h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { - color: var(--foreground); - margin-top: .5rem; - text-decoration-color: transparent; - transition: .2s; -} - -h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover { - text-decoration-color: var(--accent); - text-decoration-thickness: .3rem !important; - text-decoration: underline; - transition: .2s; -} - -h1, -h1 a { - font-size: 2rem; -} - -h2, -h2 a { - font-size: 1.8rem; -} - -h3, h4, -h3 a, h4 a { - font-size: 1.4rem; -} - -/* text */ -p, -li, -button { - .icon { - transform: scale(1.13); - } -} - -/* links should look good i think */ -a { - color: var(--foreground); - text-decoration-color: color-mix(in srgb, var(--accent) 60%, transparent); - text-decoration-thickness: 0.1em; - transition: 0.2s; - - &:hover { - color: var(--link); - text-decoration-color: var(--accent); - text-decoration-skip-ink: none; - text-decoration-thickness: .3em; - transition: 0.2s; - } -} - -/* smol text */ -small, -small a { - font-size: 0.875rem; -} - -/* lists need some styling */ -li { - margin-left: -.7em; - padding-bottom: .5rem; -} - -/* text with "title", little hover-over info tibblets */ -._info { - cursor: help; - text-decoration-color: color-mix(in srgb, var(--foreground) 40%, transparent); - text-decoration-line: underline; - text-decoration-style: dashed; - text-decoration-thickness: 0.1em; - transition: 0.2s; - - &:hover { - text-decoration-color: color-mix(in srgb, var(--foreground) 80%, transparent); - text-decoration-skip-ink: none; - transition: 0.2s; - } -} - -/* the tabler icons svgs styling */ -.tabler-icon, -.icon .icon-tabler { - width: 1.3rem; - height: 1.3rem; - padding-bottom: .2rem; - vertical-align: middle !important; - color: var(--foreground) !important; -} - -/* code (enforced monospace) */ -.code { - font-family: 'JetBrains Mono', monospace, 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif !important; -} - -/* caption styled text */ -.caption { - font-size: small; - opacity: .8; - - .section { - font-size: smaller; - opacity: .9; - } -} - -/* styled details elements */ -details.styled { - summary { - span { - padding-right: .6rem; - transform: translateY(.1rem); - vertical-align: middle; - } - - .tabler--arrow-autofit-height:last-of-type { - margin-left: auto; - } - - background: linear-gradient(color-mix(in srgb, var(--accent) 3%, transparent), color-mix(in srgb, var(--accent) 12%, transparent)); - border-bottom: unset !important; - cursor: pointer; - padding: .65rem; - } - - section { - padding: 1rem; - text-align: start !important; - - ul { - margin: 0 0 0 -.5rem; - } - - p:first-of-type { - margin-top: 0 !important; - } - - p:last-of-type { - margin-bottom: 0 !important; - } - } - - .last { - margin-bottom: .8rem; - } - - background-color: color-mix(in srgb, var(--accent) 3%, transparent); - border-radius: .8rem .4rem .8rem .4rem; - border: .13rem solid var(--accent); - margin-top: 1.3rem; - overflow: clip; -} - -details.styled[open] { - summary { - border-bottom: .1rem solid var(--accent) !important; - } -} - -/* more minimal "content warning" styled details elements */ -details.cw { - summary { - span { - color: var(--yellow); - padding-right: .6rem; - transform: translateY(.1rem); - vertical-align: middle; - } - - .tabler--chevron-down:last-of-type { - margin-left: .5rem; - } - - background: color-mix(in srgb, var(--yellow) 5%, var(--background)); - border-radius: .4rem; - border: .1rem solid var(--yellow); - cursor: pointer; - padding: .3rem; - transform: 0.2s; - width: fit-content; - } - - section { - background-color: color-mix(in srgb, var(--background) 95%, white); - border-radius: .4rem; - border: .1rem solid var(--border); - margin-top: .7rem; - padding: .4rem; - text-align: start !important; - - ul { - margin: 0 0 0 -.5rem; - } - - p:first-of-type { - margin-top: 0 !important; - } - - p:last-of-type { - margin-bottom: 0 !important; - } - } - - margin-top: 1rem; - margin-bottom: 1rem; - overflow: clip; -} - -details.cw[open] { - .tabler--chevron-down:last-of-type { - transform: 0.2s; - transform: rotate(180deg); - } -} - -/* badge text styling */ -.badge { - border-radius: .2rem; - border: .1rem solid var(--accent); - color: var(--link); - font-size: .8rem; - font-weight: normal; - padding: .15rem; -} - -/* card styling */ -.card { - background-color: color-mix(in srgb, var(--background) 95%, white); - border-radius: 1rem; - border: .2rem solid var(--border); - gap: .5rem; - margin-bottom: 1.4rem; - padding: 1rem; - - h4 { - margin-top: unset !important; - margin-bottom: .4rem !important; - } -} - -.card.last { - margin-bottom: unset !important; -} - -.card.tilde-list { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(195px, 1fr)); - margin-bottom: unset !important; -} - -.card.question { - p { - margin: .6rem !important; - } -} - -/* Dashed border */ -hr.dashed { - border: .1rem dashed var(--border); -} - -/* Dotted border */ -hr.dotted { - border: .1rem dotted var(--border); -} - -/* Solid border */ -hr.solid { - border: .1rem solid var(--border); -} - -/* Rounded border */ -hr.rounded { - border: .2rem solid var(--border); - border-radius: 5px; -} - -/* text formatting, like github kinda */ -.info-box { - padding: .5rem; - border: .1rem solid; - border-radius: .4rem; - - &.info { - background-color: color-mix(in srgb, var(--blue) 8%, transparent); - border-color: var(--blue); - .icon { color: var(--blue); } - } - - &.warn { - background-color: color-mix(in srgb, var(--orange) 8%, transparent); - border-color: var(--orange); - .icon { color: var(--orange); } - } -} - -/* audio */ -audio { - border-radius: 3rem; -} - -/* summary styling */ -summary { - display: flex; -} - -/* button link styling */ -.button { - background-color: color-mix(in srgb, var(--accent) 25%, transparent); - border-radius: 1rem; - color: var(--foreground); - padding: .4rem; - text-decoration: none; - text-shadow: none; - transition: all .2s; - white-space: nowrap; - line-height: 3rem; - - .icon { - transform: scale(1.13) translateY(.7rem); - } -} - -.button:hover { - background-color: var(--accent); - color: var(--foreground); - transition: all .2s; -} - -.button-container { - margin-bottom: unset !important; -} - -/* focus styling */ -:focus-visible { - outline: .4rem solid var(--ui-purple) !important; - border-radius: .2rem; - z-index: 999999 !important; -} - -/* image-button grid */ -.img-buttons { - align-items: normal; - display: flex; - flex-wrap: wrap; - font-size: 0 !important; - gap: 5px; - justify-content: center; - margin-inline: auto; - - img { - height: 31px; - image-rendering: crisp-edges !important; - margin: unset !important; - transition: transform 0.2s; - width: 88px; - } - - .generic { - align-content: center; - background-color: color-mix(in srgb, var(--background) 90%, white); - border: solid .15rem; - box-sizing: border-box; - color: var(--foreground); - font-size: .95rem !important; - height: 31px; - text-align: center; - transition: transform 0.2s; - width: 88px; - } - - .generic:hover, img:hover { - transform: scale(2); - } -} - -/* spoiler text */ -._spoiler { - filter: blur(.4rem) contrast(200%); - transition: 0.2s; - - &:hover { - filter: unset !important; - transition: 0.2s; - } -} - -/* ------------------ -- nsfw toggle group - ------------------- */ - -.nsfw-toggle-holder { - background-color: color-mix(in srgb, var(--background) 95%, white); - border-radius: 1rem; - border: .2rem solid var(--border); - color: var(--foreground); - padding: .5rem; - position: fixed; - max-width: 30rem; - margin-left: .4rem; - z-index: 30; - right: .4rem; - top: 3rem; - transition: 0.2s; - - /* inital "shrunken" state */ - opacity: .5; - scale: .75; - transform-origin: top right; - - - /* hide captions when unhovered */ - .caption { - display: none; - } - - &:hover { - transition: 0.2s; - - /* hovered "full" state */ - opacity: 1; - scale: 1; - - .caption { - opacity: .9; - display: unset; - } - } - - .nsfw-toggle, .spoil-nsfw-toggle { - display: block; - } - - /* hide the spoil option if nsfw itself is disabled */ - .spoil-nsfw-toggle { - display: none; - margin-top: 1rem; - } - - &:has(input[type="checkbox"]#view-nsfw-content:checked) .spoil-nsfw-toggle { - display: inherit !important; - } - - /* shrink it even more if on a small display */ - @media screen and (max-width: 580px) { - scale: .5; - } -} - -/* _is-nsfw class for elements that are "nsfw" - will be hidden and spoiled by default */ -._is-nsfw { - display: none; -} - -/* inverse to remove elements if they aren't nsfw while the option is toggled */ -._is-nsfw-inverse { - display: inherit; -} - -/* show if enabled */ -html:has(input[type="checkbox"]#view-nsfw-content:checked) { - ._is-nsfw { - display: inherit; - } - - ._is-nsfw-inverse { - display: none; - } -} - -/* blue/spoiler if enabled */ -html:has(input[type="checkbox"]#spoil-nsfw-content:checked) { - ._is-nsfw { - filter: blur(.4rem) contrast(200%); - transition: 0.2s; - - &:hover { - filter: unset !important; - transition: 0.2s; - } - } - - /* _always-show to ignore the "spoiler" option */ - ._always-show { - filter: unset !important; - } -} - -/* --------------- -- alt text popup - ---------------- */ - -.alt-popup { - position: fixed; - text-transform: none !important; - background-color: color-mix(in srgb, var(--background) 85%, transparent); - backdrop-filter: blur(.5rem); - color: var(--foreground); - padding: .5rem; - border: solid .01rem var(--accent); - border-radius: .5rem; - font-size: 1rem; - max-width: 30rem; - z-index: 1000; - pointer-events: none; - opacity: 0; - transition: opacity 0.4s; -} - -/* ╭────────────────────────────────────────╮ -/ │ ____ _ _ │ -/ │ / __ \ _ __ ___ ___ __| (_) __ _ │ -/ │ / / _` | '_ ` _ \ / _ \/ _` | |/ _` | │ -/ │ | | (_| | | | | | | __/ (_| | | (_| | │ -/ │ \ \__,_|_| |_| |_|\___|\__,_|_|\__,_| │ -/ │ \____/ │ -/ ╰────────────────────────────────────────╯ -/ @media / at-media - styling depending on browser configuration / settings -/ other sorts of "Theming Jank" also goes in here for the sake of uniforming everything */ - -/* disable certain animations if user has animations disabled on their system */ - -@media (prefers-reduced-motion: reduce) { - body { - background: var(--background) !important; - animation: unset !important; - -moz-animation: unset !important; - -webkit-animation: unset !important; - } - - /* animations aren't important for anything so we can simply just disable them on every element then choose which ones not to disable */ - * { - transition: none !important; - animation: unset !important; - -moz-animation: unset !important; - -webkit-animation: unset !important; - } - - /* fedi icon on /me should keep its animation (temp, find a better solution later) */ - .fedi-icon { - animation: opacity-blink 4s infinite !important; - } - - .fedi-icon-2 { - animation: opacity-blink-reverse 4s infinite !important; - } -} - -@media screen and (max-width: 1083px) { - details.styled { - section { - - /* reset margins for list on mobile view */ - ul { - margin: unset !important; - } - } - } -} - -/* different styling for elements in dark mode - must also be applied to the html element below - needed as to not break with users using their browser settings or manually setting the theme through the website */ -html:not([data-theme="light"]) { - @media (prefers-color-scheme: dark) { - .button:hover { - color: var(--background); - } - } -} - -html[data-theme="dark"] { - .button:hover { - color: var(--background); - } -} \ No newline at end of file diff --git a/_includes/styles/base/accessibility.css b/_includes/styles/base/accessibility.css new file mode 100644 index 0000000..a1fdf5c --- /dev/null +++ b/_includes/styles/base/accessibility.css @@ -0,0 +1,112 @@ +/* ╭───────────────────────────────────────────────────────╮ +/ │ _ _ _ _ _ _ │ +/ │ __ _ ___ ___ ___ ___ ___(_) |__ (_) (_) |_ _ _ │ +/ │ / _` |/ __/ __/ _ \/ __/ __| | '_ \| | | | __| | | | │ +/ │ | (_| | (_| (_| __/\__ \__ \ | |_) | | | | |_| |_| | │ +/ │ \__,_|\___\___\___||___/___/_|_.__/|_|_|_|\__|\__, | │ +/ │ |___/ │ +/ ╰───────────────────────────────────────────────────────╯ +/ accessibility - choosable accessibility settings */ + +:root { + color-scheme: light dark; /* by default, automatically use light mode */ + + /* theme selector */ + &:has(#theme-light:checked) { + color-scheme: light !important; + } + + &:has(#theme-dark:checked) { + color-scheme: dark !important; + } + + /* font selector */ + &:has(#font-monospace:checked) { /* monospace */ + --font-family: monospace, system-ui, -apple-system, sans-serif; + } + + &:has(#font-system:checked) { /* system ui*/ + --font-family: system-ui, -apple-system, sans-serif; + } + + &:has(#font-sserif:checked) { /* sans seris */ + --font-family: sans-serif, 'Segoe UI', system-ui, -apple-system; + } + + &:has(#font-serif:checked) { /* serif */ + --font-family: serif, sans-serif, system-ui, -apple-system; + } + + /* appearance */ + &:has(#uncapitalization:checked) { /* disable forced uncapitalization */ + body { + text-transform: none !important; + } + } + + &:has(#disable-bg:checked) { /* disable background gradient */ + body { + background: var(--background); + + bg-gradient, bg-image { + display: none !important; + } + } + } + + &:has(#disable-animations:checked) { /* disable site animations */ + body { + animation: unset !important; + -moz-animation: unset !important; + -webkit-animation: unset !important; + } + + /* animations aren't important for anything so we can simply just disable them on every element then choose which ones not to disable */ + * { + transition: none !important; + animation: unset !important; + -moz-animation: unset !important; + -webkit-animation: unset !important; + } + + /* fedi icon on /me should keep its animation (temp, find a better solution later) */ + .fedi-icon { + animation: opacity-blink 4s infinite !important; + } + .fedi-icon-2 { + animation: opacity-blink-reverse 4s infinite !important; + } + } + + &:has(#disable-alttext:checked) { /* disable custom alt text popup */ + .alt-popup { + display: none !important; + } + } +} + +/* reduce animations on browser preference */ +@media (prefers-reduced-motion: reduce) { /* copy-pasted from disable animations option */ + body { + animation: unset !important; + -moz-animation: unset !important; + -webkit-animation: unset !important; + } + + /* animations aren't important for anything so we can simply just disable them on every element then choose which ones not to disable */ + * { + transition: none !important; + animation: unset !important; + -moz-animation: unset !important; + -webkit-animation: unset !important; + } + + /* fedi icon on /me should keep its animation (temp, find a better solution later) */ + .fedi-icon { + animation: opacity-blink 4s infinite !important; + } + + .fedi-icon-2 { + animation: opacity-blink-reverse 4s infinite !important; + } +} \ No newline at end of file diff --git a/_includes/styles/animations.css b/_includes/styles/base/animations.css similarity index 78% rename from _includes/styles/animations.css rename to _includes/styles/base/animations.css index 8fc458f..7f4305d 100644 --- a/_includes/styles/animations.css +++ b/_includes/styles/base/animations.css @@ -7,18 +7,6 @@ / ╰───────────────────────────────────────────────────────╯ / animations - reusable css animations */ -@keyframes window-appear { - 0% { - opacity: 0; - transform: scale(0.5, 0.5); - } - - 100% { - opacity: 1; - transform: scale(1, 1); - } -} - @keyframes rainbow { 0% { filter: hue-rotate(0deg) contrast(150%) saturate(150%); @@ -29,17 +17,12 @@ } } -@keyframes bg-gradient { +@keyframes bg-move { 0% { - background-position: 0% 27% + background-position:0 0 } - - 50% { - background-position: 100% 74% - } - - 100% { - background-position: 0% 27% + to { + background-position:-960px -960px } } diff --git a/_includes/styles/base/base.css b/_includes/styles/base/base.css new file mode 100644 index 0000000..4ad6522 --- /dev/null +++ b/_includes/styles/base/base.css @@ -0,0 +1,820 @@ +/* ╭────────────────────────╮ +/ │ _ │ +/ │ | |__ __ _ ___ ___ │ +/ │ | '_ \ / _` / __|/ _ \ │ +/ │ | |_) | (_| \__ \ __/ │ +/ │ |_.__/ \__,_|___/\___| │ +/ ╰────────────────────────╯ +/ base - styling for regular/global html elements as well as the color schemes, and anything else that doesn't fit anywhere else */ + +/* ---------------------------------- +- background wallpaper, global font - +---------------------------------- */ + +html { + background: var(--background); + background-repeat: repeat; + background-size: auto; +} + +body { + font-family: var(--font-family); + font-size: 1.05rem; + line-height: 1.45rem; + text-transform: lowercase; + margin: unset !important; +} + +bg-gradient { + background: linear-gradient(color-mix(in srgb, var(--accent) 10%, var(--background)), color-mix(in srgb, var(--accent) 50%, var(--background))); + background-repeat: repeat; + inset: 0 !important; + width: 100% !important; + height: 100% !important; + position: fixed; + z-index: -10001; +} + +bg-image { + display: block; + position: fixed; + animation: 80s linear infinite bg-move; + opacity: .6; + background-repeat: repeat; + background-size: auto; + background-image: url(/assets/bg.svg); + inset: 0 !important; + width: 100% !important; + height: 100% !important; + z-index: -10000; +} + +content-wrapper { + display: flex; + flex-direction: column; + gap: 3rem; + margin-bottom: 4rem; + margin-left: auto; + margin-right: auto; + margin-top: 5rem; + max-width: 60rem; + + transition: opacity .5s, translate .5s; + opacity: 1; + translate: 0 0; + @starting-style { + opacity: 0; + translate: 0 1rem; + } + + main { + display: flex; + flex-direction: column; + gap: 2rem; + } + + @media screen and (max-width: 60rem) { + & { + gap: 2rem !important; + margin-bottom: 1rem; + margin-top: 3.4rem; + } + + main { + gap: 1.5rem !important; + } + } +} + +/* text formatting and config stuff */ + +/* headings */ +h1, h2, h3, h4, h5, h6 { + border-bottom: .15rem solid var(--border); + color: var(--foreground); + margin-bottom: .8rem; + margin-top: 1.5rem; + padding-bottom: .4rem; + transition: .2s; + + & a { + text-decoration-color: transparent; + + &:hover { + text-decoration-color: var(--accent); + } + } +} + +h1, h1 a { + font-size: 2rem; +} + +h2, h2 a { + font-size: 1.8rem; +} + +h3, h3 a { + font-size: 1.4rem; +} + +h4, h4 a { + font-size: 1.2rem; +} + +[accent] { + color: var(--accent); +} + +[link-color] { + color: var(--link); +} + +/* information colors */ +[info] { + color: var(--blue); +} + +[warning] { + color: var(--warning); +} + +/* utility classes or whatever they call them */ +[t-center] { + text-align: center; +} + +/* links should look good i think */ +a { + color: var(--foreground); + text-decoration-color: color-mix(in srgb, var(--accent) 60%, transparent); + text-decoration-thickness: 0.1em; + transition: 0.2s; + + &:hover { + color: var(--link); + text-decoration-color: var(--accent); + text-decoration-skip-ink: none; + text-decoration-thickness: .3em; + transition: 0.2s; + } +} + +/* smol text */ +small, +small a { + font-size: 0.875rem; +} + +/* emoji */ +[emoji] { + height: 1.5rem; + vertical-align: bottom; +} + +/* lists need some styling */ +ul, ol { + margin-left: -1.3rem; + ul { margin-top: .5rem; margin-bottom: .5rem; } + + li { + margin-bottom: .5rem; + &:last-child { margin-bottom: 0; } + + &::marker { + color: var(--accent); + } + } +} +ul { list-style-type: square; } +ol { margin-left: -.5rem; } + +/* text with "title", little hover-over info tibblets */ +span[title] { + cursor: help; + text-decoration-color: color-mix(in srgb, var(--foreground) 40%, transparent); + text-decoration-line: underline; + text-decoration-style: dashed; + text-decoration-thickness: 0.1em; + transition: 0.2s; + + &:hover { + text-decoration-color: color-mix(in srgb, var(--foreground) 80%, transparent); + text-decoration-skip-ink: none; + transition: 0.2s; + } +} + +/* code (enforced monospace) */ +.code { + font-family: 'JetBrains Mono', monospace, 'Segoe UI', Tahoma, Geneva, Verdana, system-ui, sans-serif !important; +} + +/* caption styled text */ +.caption { + font-size: small; + opacity: .8; + + .section { + font-size: smaller; + opacity: .9; + } +} + +/* styled details elements */ +details { + &[styled] { + background-color: light-dark(color-mix(in srgb, var(--accent) 5%, transparent), color-mix(in srgb, var(--accent) 3%, transparent)); + border-radius: .8rem .4rem .8rem .4rem; + border: .13rem solid var(--accent); + margin-bottom: 1rem; + + summary { + background: linear-gradient(color-mix(in srgb, var(--accent) 2%, transparent), color-mix(in srgb, var(--accent) 14%, transparent)); + border-bottom: unset; + cursor: pointer; + padding: .45rem; + + icon-tabler[arrow-autofit-height] { + float: right; + } + + &::marker { + content: ""; + } + } + + details-content { + display: block; + padding: .8rem; + + p:first-of-type { margin-top: 0; } + p:last-of-type { margin-bottom: 0; } + } + + &[open] { + summary { + border-bottom: .1rem solid var(--accent); + } + } + } +} + +/* more minimal "content warning" styled details elements */ +details.cw { + summary { + span { + color: var(--yellow); + padding-right: .6rem; + transform: translateY(.1rem); + vertical-align: middle; + } + + .tabler--chevron-down:last-of-type { + margin-left: .5rem; + } + + background: color-mix(in srgb, var(--yellow) 5%, var(--background)); + border-radius: .4rem; + border: .1rem solid var(--yellow); + cursor: pointer; + padding: .3rem; + transform: 0.2s; + width: fit-content; + } + + section { + background-color: color-mix(in srgb, var(--background) 95%, white); + border-radius: .4rem; + border: .1rem solid var(--border); + margin-top: .7rem; + padding: .4rem; + text-align: start !important; + + ul { + margin: 0 0 0 -.5rem; + } + + p:first-of-type { + margin-top: 0 !important; + } + + p:last-of-type { + margin-bottom: 0 !important; + } + } + + margin-top: 1rem; + margin-bottom: 1rem; + overflow: clip; +} + +details.cw[open] { + .tabler--chevron-down:last-of-type { + transform: 0.2s; + transform: rotate(180deg); + } +} + +/* badge text styling */ +.badge { + border-radius: .2rem; + border: .1rem solid var(--accent); + color: var(--link); + font-size: .8rem; + font-weight: normal; + padding: .15rem; +} + +/* card styling */ +card-container { + display: grid; + gap: 1.2rem; + grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); + + card-entry { + background-color: var(--background-secondary); + border-radius: 1rem; + border: .15rem solid var(--border); + display: flex; + flex-flow: column; + height: auto; + padding: .6rem; + width: auto; + + h3 { + border-bottom: unset; + margin-bottom: 1rem; + margin-top: 0; + + [icon] { + height: 1.4rem; + transition: .3s; + vertical-align: top; + } + + span[status] { + display: flex; + flex-direction: row; + float: right; + + icon-tabler { + margin-left: .3rem; + &[lock] { + color: var(--link); + } + &[device-desktop-cog] { + color: var(--blue); + } + } + + img { + align-self: center; + border-radius: 10rem; + height: 1.2rem; + vertical-align: middle; + width: auto; + } + } + } + + &:hover { + h3 { + [icon] { + margin-right: .4rem; + transform: rotate(15deg) scale(2.5) translateX(-.1rem) translateY(-.2rem); + } + } + } + + p { + margin-top: 0; + margin-bottom: 1rem; + } + + &[advise-against] { + opacity: .7; + transition: 1s; + border-color: color-mix(in srgb, var(--warning) 30%, transparent); + + &:hover { + opacity: 1; + } + } + + buttons-container { + margin-top: auto; + + a { + &:has(img[src^="https://compliance"]) { + align-self: center; + font-size: 0; + } + } + } + } +} + +/* notice/section cards */ +[notice-card] { + --n-bg: var(--accent); + border-radius: 1rem; + border: .15rem solid color-mix(in srgb, var(--yellow) 20%, transparent); + color: var(--foreground); + margin-bottom: .8rem; + padding: .5rem; + + h3 { + color: var(--link); + margin-top: 0; + } + p, ul { &:last-of-type { margin-bottom: 0; } } + + &[important], &[warning] { + --n-bg: var(--yellow); + background-color: color-mix(in srgb, var(--n-bg) 15%, transparent); + h3 { color: var(--yellow); } + } +} + +/* Dashed border */ +hr[dashed] { + border: .1rem dashed var(--border); +} + +/* Dotted border */ +hr[dotted] { + border: .1rem dotted var(--border); +} + +/* Solid border */ +hr[solid] { + border: .1rem solid var(--border); +} + +/* Rounded border */ +hr[rounded] { + border: .2rem solid var(--border); + border-radius: 5px; +} + +/* text formatting, like github kinda */ +.info-box { + padding: .5rem; + border: .1rem solid; + border-radius: .4rem; + + &.info { + background-color: color-mix(in srgb, var(--blue) 8%, transparent); + border-color: var(--blue); + .icon { color: var(--blue); } + } + + &.warn { + background-color: color-mix(in srgb, var(--orange) 8%, transparent); + border-color: var(--orange); + .icon { color: var(--orange); } + } +} + +/* audio */ +audio { + border-radius: 3rem; +} + +/* button link styling */ +.button { + background-color: color-mix(in srgb, var(--accent) 25%, transparent); + border-radius: 1rem; + color: var(--foreground); + padding: .4rem; + text-decoration: none; + text-shadow: none; + transition: all .2s; + white-space: nowrap; + line-height: 3rem; + + .icon { + transform: scale(1.13) translateY(.7rem); + } +} + +.button:hover { + background-color: var(--accent); + color: var(--foreground); + transition: all .2s; +} + +.button-container { + margin-bottom: unset !important; +} + +/* focus styling */ +*:focus-visible { + outline: .4rem solid var(--ui-purple) !important; + border-radius: .2rem; + z-index: 999999 !important; +} + +/* image-button grid */ +imgbtn-grid { + align-items: normal; + display: flex; + flex-flow: row wrap; + font-size: 0 !important; + gap: 5px; + justify-content: center; + line-height: 0; + margin-inline: auto; + + &:last-child { + margin-bottom: .8rem; + } + + img { + height: 31px; + image-rendering: crisp-edges !important; + margin: unset !important; + transition: transform 0.2s; + width: 88px; + } + + .generic { + align-content: center; + background-color: color-mix(in srgb, var(--background) 90%, white); + border: solid .15rem; + box-sizing: border-box; + color: var(--foreground); + font-size: .95rem !important; + height: 31px; + text-align: center; + transition: transform 0.2s; + width: 88px; + } + + .generic:hover, img:hover { + transform: scale(2); + } +} + +/* no forced uncapitalization */ +[no-uncap] { + text-transform: none !important; +} + +/* spoiler text */ +spoiler { + filter: blur(.4rem) contrast(200%); + transition: 0.2s; + + &:hover { + filter: unset !important; + transition: 0.2s; + } +} + +/* ------------------ +- nsfw toggle group - +------------------ */ + +.nsfw-toggle-holder { + background-color: color-mix(in srgb, var(--background) 95%, white); + border-radius: 1rem; + border: .2rem solid var(--border); + color: var(--foreground); + padding: .5rem; + position: fixed; + max-width: 30rem; + margin-left: .4rem; + z-index: 30; + right: .4rem; + top: 3rem; + transition: 0.2s; + + /* inital "shrunken" state */ + opacity: .5; + scale: .75; + transform-origin: top right; + + + /* hide captions when unhovered */ + .caption { + display: none; + } + + &:hover { + transition: 0.2s; + + /* hovered "full" state */ + opacity: 1; + scale: 1; + + .caption { + opacity: .9; + display: unset; + } + } + + .nsfw-toggle, .spoil-nsfw-toggle { + display: block; + } + + /* hide the spoil option if nsfw itself is disabled */ + .spoil-nsfw-toggle { + display: none; + margin-top: 1rem; + } + + &:has(input[type="checkbox"]#view-nsfw-content:checked) .spoil-nsfw-toggle { + display: inherit !important; + } + + /* shrink it even more if on a small display */ + @media screen and (max-width: 580px) { + scale: .5; + } +} + +/* _is-nsfw class for elements that are "nsfw" - will be hidden and spoiled by default */ +._is-nsfw { + display: none; +} + +/* inverse to remove elements if they aren't nsfw while the option is toggled */ +._is-nsfw-inverse { + display: inherit; +} + +/* show if enabled */ +html:has(input[type="checkbox"]#view-nsfw-content:checked) { + ._is-nsfw { + display: inherit; + } + + ._is-nsfw-inverse { + display: none; + } +} + +/* blue/spoiler if enabled */ +html:has(input[type="checkbox"]#spoil-nsfw-content:checked) { + ._is-nsfw { + filter: blur(.4rem) contrast(200%); + transition: 0.2s; + + &:hover { + filter: unset !important; + transition: 0.2s; + } + } + + /* _always-show to ignore the "spoiler" option */ + ._always-show { + filter: unset !important; + } +} + +/* alt text popup */ + +.alt-popup { + position: fixed; + background-color: color-mix(in srgb, var(--background) 85%, transparent); + backdrop-filter: blur(.5rem); + color: var(--foreground); + padding: .5rem; + border: solid .01rem var(--accent); + border-radius: .5rem; + font-size: 1rem; + max-width: 30rem; + z-index: 1000; + pointer-events: none; + opacity: 0; + transition: opacity 0.4s; +} + +/* widgets */ + +buttons-container { + display: flex; + flex-flow: row wrap; + gap: .4rem; + + img { + align-self: center; + border-radius: 10rem; + height: 1.2rem; + vertical-align: middle; + width: auto; + } + + a { + icon-tabler { pointer-events: none; } + } + + [right] { + margin-left: auto; + } +} + +[button] { + background: light-dark(color-mix(in srgb,var(--accent)40%,transparent), color-mix(in srgb,var(--accent)25%,transparent)); + border-radius: 10rem; + padding: .2rem .5rem; + text-decoration: none !important; + transition: .2s; + + &:hover { + background: var(--accent); + color: light-dark(var(--foreground), var(--background)); + } + + &[tor] { + --accent: #9743be; + &:hover { color: light-dark(var(--background), var(--foreground)); } + } + + &[yggdrasil] { + --accent: #26bb8c; + } +} + +radio-button-group { + display: flex; + flex-flow: row wrap; + gap: .4rem; + + label { + border-radius: .4rem; + border: .13rem solid var(--border); + cursor: pointer; + padding: .2rem; + width: fit-content; + word-break: break-word; + + &:has(input:checked) { + border-color: var(--accent); + background-color: color-mix(in srgb, var(--accent) 15%, var(--background)); + } + + &:hover, &:focus-visible { + background: var(--hover); + } + } + + input { + /* allows screen readers to still access these - see https://lyra.horse/blog/2025/08/you-dont-need-js */ + opacity: 0; + position: absolute; + pointer-events: none; + } +} + +checkbox-button-group { + display: flex; + flex-flow: column; + gap: .5rem; + + label { + border-radius: .4rem; + border: .13rem solid var(--border); + cursor: pointer; + margin-right: .3rem; + padding: .2rem; + width: fit-content; + word-break: break-word; + + &::before { + background: var(--border); + border-radius: 10rem; + content: ''; + display: inline-flex; + height: 1rem; + margin-bottom: -.15rem; + margin-left: .2rem; + margin-right: .3rem; + position: relative; + transition: .2s; + width: 1rem; + } + + &:has(input:checked) { + border-color: var(--accent); + background-color: color-mix(in srgb, var(--accent) 15%, var(--background)); + + &::before { + background: var(--accent); + } + } + + &:hover, &:focus-visible { + background: var(--hover); + } + } + + input { + /* allows screen readers to still access these - see https://lyra.horse/blog/2025/08/you-dont-need-js */ + opacity: 0; + position: absolute; + pointer-events: none; + } +} \ No newline at end of file diff --git a/_includes/styles/base/colors.css b/_includes/styles/base/colors.css new file mode 100644 index 0000000..13c4bdc --- /dev/null +++ b/_includes/styles/base/colors.css @@ -0,0 +1,50 @@ +/* +/ colors +/ ====== +/ default colors and extra colors specified here +/ colors yoinked as is from https://gogh-co.github.io/Gogh/ +/ maybe some modifications here and there, but otherwise what is named is what is used +*/ + +:root { + --background: light-dark(#fafafa, #121418); + --background-secondary: light-dark(hsl(from var(--background) h s calc(l - 6)), hsl(from var(--background) h s calc(l + 4))); + --foreground: light-dark(#393e42, #caccd3); + --accent: light-dark(#f2ae49, #efbd58); + --link: light-dark(hsl(from var(--accent) h s calc(l - 30)), var(--accent)); + + /* light theme is Ayu Light, dark theme is modified Astrodark */ + + --black: light-dark(#8A9199, #576176); + --red: light-dark(#F51818, #FAA5AB); + --green: light-dark(#86B300, #A5CD84); + --yellow: light-dark(#F2AE49, #EFBD58); + --blue: light-dark(#399EE6, #8DC3F1); + --purple: light-dark(#A37ACC, #DEAEED); + --cyan: light-dark(#4CBF99, #27FFDF); + --white: light-dark(#FAFAFA, #CACCD3); + + --dark-black: light-dark(#575F66, #111317); + --dark-red: light-dark(#F51818, #F8747E); + --dark-green: light-dark(#86B300, #75AD47); + --dark-yellow: light-dark(#F2AE49, #D09214); + --dark-blue: light-dark(#399EE6, #50A4E9); + --dark-purple: light-dark(#A37ACC, #CC83E3); + --dark-cyan: light-dark(#4CBF99, #00B298); + --dark-white: light-dark(#FAFAFA, #ADB0BB); + + --warning: light-dark(hsl(from var(--yellow) h s calc(l - 25)), var(--yellow)); + + --border: light-dark(hsl(from var(--foreground) h s calc(l + 45)), hsl(from var(--background) h s calc(l + 15))); + --hover: light-dark(hsl(from var(--background) h s calc(l - 20)), hsl(from var(--background) h s calc(l + 10))); + --shadow: light-dark(rgba(from var(--foreground) r g b / .8), rgba(from var(--background) r g b / .8)); + --focused: light-dark(var(--dark-purple), var(--dark-purple)); + + --pagefind-ui-font: var(--font-family); + --pagefind-ui-primary: var(--foreground); + --pagefind-ui-text: var(--foreground); + --pagefind-ui-background: var(--background); + --pagefind-ui-border: var(--accent); + --pagefind-ui-tag: var(--background); + --site-border: .1rem solid var(--border); +} \ No newline at end of file diff --git a/_includes/styles/base/footer.css b/_includes/styles/base/footer.css new file mode 100644 index 0000000..71a16ec --- /dev/null +++ b/_includes/styles/base/footer.css @@ -0,0 +1,137 @@ +/* ╭────────────────────────────────╮ +/ │ __ _ │ +/ │ / _| ___ ___ | |_ ___ _ __ │ +/ │ | |_ / _ \ / _ \| __/ _ \ '__| │ +/ │ | _| (_) | (_) | || __/ | │ +/ │ |_| \___/ \___/ \__\___|_| │ +/ ╰────────────────────────────────╯ +/ footer - related styling for the footer window on all pages */ + +footer { + width: fit-content; + margin-left: auto; + margin-right: auto; + width: 50rem; + + .header { + padding: .25rem !important; + a { + margin-left: .5rem; + font-size: .9rem; + } + } + + window-contents { + display: flex !important; + flex-flow: row wrap; + gap: 2rem; + padding: 1rem !important; + + footer-section { + display: flex; + flex-flow: column wrap; + + p { + margin-top: 0; + margin-bottom: .6rem; + } + p:last-child { margin-bottom: 0; } + + h3 { + border-bottom: unset; + font-size: 1.5rem; + margin-bottom: .8rem; + margin-top: 0; + } + } + + footer-section[icon] { + margin-right: 1rem; + img { + width: 3rem; + height: 3rem; + } + } + + footer-section[webrings] { + width: 13rem; + + p { + margin-bottom: .8rem; + margin-top: 0; + } + + a { + border-radius: .5rem; + padding: 0.25rem .06rem; + text-decoration-color: transparent; + + icon-tabler { + pointer-events: none; + } + + &:hover { + text-decoration-color: inherit; + } + } + + a[aria-label="Previous"] { + color: var(--yellow); + background: light-dark(color-mix(in srgb, var(--yellow) 30%, transparent), color-mix(in srgb, var(--yellow) 25%, transparent)); + } + + a[aria-label="Next"] { + color: var(--green); + background: light-dark(color-mix(in srgb, var(--green) 30%, transparent), color-mix(in srgb, var(--green) 25%, transparent)); + } + + a[href="https://fediring.net"] { + padding: 0.25rem .3rem; + color: var(--purple); + background: light-dark(color-mix(in srgb, var(--purple) 25%, transparent), color-mix(in srgb, var(--purple) 15%, transparent)); + } + + a[href="https://keithhacks.cyou/furryring.php"] { + padding: 0.25rem .3rem; + color: var(--blue); + background: light-dark(color-mix(in srgb, var(--blue) 20%, transparent), color-mix(in srgb, var(--blue) 15%, transparent)); + } + + a[href="https://stellophiliac.github.io/roboring"] { + padding: 0.25rem .3rem; + color: var(--foreground); + background: light-dark(color-mix(in srgb, var(--foreground) 20%, var(--background)), color-mix(in srgb, var(--foreground) 15%, var(--background))); + } + } + + footer-section[links] { + a { + margin-bottom: .2rem; + margin-top: 0; + width: fit-content; + } + + span:last-of-type { + margin-top: .5rem; + } + } + } + + @media screen and (max-width: 50rem) { + & { + width: unset !important; + border-radius: 0 !important; + margin-top: 1rem; + + section { + footer-section[icon] { + margin-right: auto; + } + + footer-section[webrings] { + width: unset; + } + } + } + } +} \ No newline at end of file diff --git a/_includes/styles/base/icons.css b/_includes/styles/base/icons.css new file mode 100644 index 0000000..62a02b1 --- /dev/null +++ b/_includes/styles/base/icons.css @@ -0,0 +1,97 @@ +/* ╭─────────────────────────╮ +/ │ _ │ +/ │ (_) ___ ___ _ __ ___ │ +/ │ | |/ __/ _ \| '_ \/ __| │ +/ │ | | (_| (_) | | | \__ \ │ +/ │ |_|\___\___/|_| |_|___/ │ +/ ╰─────────────────────────╯ +/ icons - tabler icons done through css, generate via https://icon-sets.iconify.design/tabler */ + +icon-tabler { + -webkit-mask-image: var(--svg); + -webkit-mask-repeat: no-repeat; + -webkit-mask-size: 100% 100%; + background-color: currentColor; + display: inline-flex; + height: 1.5rem; + mask-image: var(--svg); + mask-repeat: no-repeat; + mask-size: 100% 100%; + vertical-align: bottom; + width: 1.5rem; + + &[accessible] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0'/%3E%3Cpath d='m10 16.5l2-3l2 3m-2-3v-2l3-1m-6 0l3 1'/%3E%3Ccircle cx='12' cy='7.5' r='.5' fill='%23000'/%3E%3C/g%3E%3C/svg%3E"); } + &[alert-triangle] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 9v4m-1.637-9.409L2.257 17.125a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636-2.87L13.637 3.59a1.914 1.914 0 0 0-3.274 0zM12 16h.01'/%3E%3C/svg%3E"); } + &[arrow-autofit-height] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 20H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6m6 10v7m0-18v7m-3 8l3 3l3-3M15 6l3-3l3 3'/%3E%3C/svg%3E"); } + &[arrow-forward] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m15 11l4 4l-4 4m4-4H8a4 4 0 0 1 0-8h1'/%3E%3C/svg%3E"); } + &[arrow-left] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14M5 12l6 6m-6-6l6-6'/%3E%3C/svg%3E"); } + &[arrow-right] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-6 6l6-6m-6-6l6 6'/%3E%3C/svg%3E"); } + &[article] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zm4 2h10M7 12h10M7 16h10'/%3E%3C/svg%3E"); } + &[battery-filled] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M17 6a3 3 0 0 1 2.995 2.824L20 9v.086l.052.019a1.5 1.5 0 0 1 .941 1.25L21 10.5v3a1.5 1.5 0 0 1-.948 1.395l-.052.018V15a3 3 0 0 1-2.824 2.995L17 18H6a3 3 0 0 1-2.995-2.824L3 15V9a3 3 0 0 1 2.824-2.995L6 6z'/%3E%3C/svg%3E"); } + &[bell] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3H4a4 4 0 0 0 2-3v-3a7 7 0 0 1 4-6M9 17v1a3 3 0 0 0 6 0v-1'/%3E%3C/svg%3E"); } + &[brand-bluesky] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6.335 5.144C4.681 3.945 2 3.017 2 5.97c0 .59.35 4.953.556 5.661C3.269 14.094 5.686 14.381 8 14c-4.045.665-4.889 3.208-2.667 5.41C6.363 20.428 7.246 21 8 21c2 0 3.134-2.769 3.5-3.5q.5-1 .5-1.5q0 .5.5 1.5c.366.731 1.5 3.5 3.5 3.5c.754 0 1.637-.571 2.667-1.59C20.889 17.207 20.045 14.664 16 14c2.314.38 4.73.094 5.444-2.369c.206-.708.556-5.072.556-5.661c0-2.953-2.68-2.025-4.335-.826C15.372 6.806 12.905 10.192 12 12c-.905-1.808-3.372-5.194-5.665-6.856'/%3E%3C/svg%3E"); } + &[brand-git] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m-4-4a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 8a1 1 0 1 0 2 0a1 1 0 1 0-2 0m1-1V9m3 2l-2-2m-2-2L9.1 5.1'/%3E%3Cpath d='m13.446 2.6l7.955 7.954a2.045 2.045 0 0 1 0 2.892l-7.955 7.955a2.045 2.045 0 0 1-2.892 0l-7.955-7.955a2.045 2.045 0 0 1 0-2.892l7.955-7.955a2.045 2.045 0 0 1 2.892 0z'/%3E%3C/g%3E%3C/svg%3E"); } + &[brand-github] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21'/%3E%3C/svg%3E"); } + &[brand-lastfm] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 8c-.83-1-1.388-1-2-1s-2 .271-2 2s1.384 2.233 3 3s2.125 1.812 2 3s-1 2-3 2s-3-1-3.5-2s-1.585-4.78-2.497-6a5 5 0 1 0-1 7'/%3E%3C/svg%3E"); } + &[brand-mastodon] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M18.648 15.254C16.832 17.017 12 16.88 12 16.88a18.3 18.3 0 0 1-3.288-.256q1.69 2.977 8.982 2.475c-1.945 2.013-13.598 5.257-13.668-7.636L4 10.309c0-3.036.023-4.115 1.352-5.633C7.023 2.766 12 3.01 12 3.01s4.977-.243 6.648 1.667C19.977 6.195 20 7.274 20 10.31s-.456 4.074-1.352 4.944'/%3E%3Cpath d='M12 11.204V8.278C12 7.02 11.105 6 10 6S8 7.02 8 8.278V13m4-4.722C12 7.02 12.895 6 14 6s2 1.02 2 2.278V13'/%3E%3C/g%3E%3C/svg%3E"); } + &[brand-metabrainz] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7v10l7 4V3zm18 0v10l-7 4V3z'/%3E%3C/svg%3E"); } + &[brand-tabler] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m8 9l3 3l-3 3m5 0h3'/%3E%3Cpath d='M3 7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4z'/%3E%3C/g%3E%3C/svg%3E"); } + &[building-bank] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 21h18M3 10h18M5 6l7-3l7 3M4 10v11m16-11v11M8 14v3m4-3v3m4-3v3'/%3E%3C/svg%3E"); } + &[bulb] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12h1m8-9v1m8 8h1M5.6 5.6l.7.7m12.1-.7l-.7.7M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0-1 3a2 2 0 0 1-4 0a3.5 3.5 0 0 0-1-3m.7 1h4.6'/%3E%3C/svg%3E"); } + &[chart-bubble] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 16a3 3 0 1 0 6 0a3 3 0 1 0-6 0m11 3a2 2 0 1 0 4 0a2 2 0 1 0-4 0M10 7.5a4.5 4.5 0 1 0 9 0a4.5 4.5 0 1 0-9 0'/%3E%3C/svg%3E"); } + &[chevron-down] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 9l6 6l6-6'/%3E%3C/svg%3E"); } + &[cloud-network] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 20h7m4 0h7m-11 0a2 2 0 1 0 4 0a2 2 0 0 0-4 0m2-4v2m-4-1.996H6.657C4.085 16 2 13.993 2 11.517s2.085-4.482 4.657-4.482c.393-1.762 1.794-3.2 3.675-3.773c1.88-.572 3.956-.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.913 0 3.464 1.56 3.464 3.486s-1.551 3.487-3.465 3.487H16'/%3E%3C/svg%3E"); } + &[corner-down-right] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 6v6a3 3 0 0 0 3 3h10l-4-4m0 8l4-4'/%3E%3C/svg%3E"); } + &[currency-dollar] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M16.7 8A3 3 0 0 0 14 6h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1-2.7-2M12 3v3m0 12v3'/%3E%3C/svg%3E"); } + &[database-share] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M4 6c0 1.657 3.582 3 8 3s8-1.343 8-3s-3.582-3-8-3s-8 1.343-8 3'/%3E%3Cpath d='M4 6v6c0 1.657 3.582 3 8 3q.541 0 1.065-.026M20 13V6'/%3E%3Cpath d='M4 12v6c0 1.657 3.582 3 8 3m4 1l5-5m0 4.5V17h-4.5'/%3E%3C/g%3E%3C/svg%3E"); } + &[device-desktop-cog] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 16H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h16a1 1 0 0 1 1 1v7M7 20h5m-3-4v4m8.001-1a2 2 0 1 0 4 0a2 2 0 1 0-4 0m2-3.5V17m0 4v1.5m3.031-5.25l-1.299.75m-3.463 2l-1.3.75m0-3.5l1.3.75m3.463 2l1.3.75'/%3E%3C/svg%3E"); } + &[device-gamepad-2] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 5h3.5a5 5 0 0 1 0 10H10l-4.015 4.227a2.3 2.3 0 0 1-3.923-2.035l1.634-8.173A5 5 0 0 1 8.6 5z'/%3E%3Cpath d='m14 15l4.07 4.284a2.3 2.3 0 0 0 3.925-2.023l-1.6-8.232M8 9v2m-1-1h2m5 0h2'/%3E%3C/g%3E%3C/svg%3E"); } + &[device-mobile] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2zm5-1h2m-1 13v.01'/%3E%3C/svg%3E"); } + &[external-link] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 6H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6m-7 1l9-9m-5 0h5v5'/%3E%3C/svg%3E"); } + &[grid-dots] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 5a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 19a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0'/%3E%3C/svg%3E"); } + &[heart] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19.5 12.572L12 20l-7.5-7.428A5 5 0 1 1 12 6.006a5 5 0 1 1 7.5 6.572'/%3E%3C/svg%3E"); } + &[help] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m9 5v.01'/%3E%3Cpath d='M12 13.5a1.5 1.5 0 0 1 1-1.5a2.6 2.6 0 1 0-3-4'/%3E%3C/g%3E%3C/svg%3E"); } + &[home] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M5 12H3l9-9l9 9h-2M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M9 21v-6a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v6'/%3E%3C/g%3E%3C/svg%3E"); } + &[info-circle] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0m9-3h.01'/%3E%3Cpath d='M11 12h1v4h1'/%3E%3C/g%3E%3C/svg%3E"); } + &[leaf] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M5 21c.5-4.5 2.5-8 7-10'/%3E%3Cpath d='M9 18c6.218 0 10.5-3.288 11-12V4h-4.014c-9 0-11.986 4-12 9c0 1 0 3 2 5h3z'/%3E%3C/g%3E%3C/svg%3E"); } + &[letter-case] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M14 15.5a3.5 3.5 0 1 0 7 0a3.5 3.5 0 1 0-7 0M3 19V8.5a3.5 3.5 0 0 1 7 0V19m-7-6h7m11-1v7'/%3E%3C/svg%3E"); } + &[link] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m9 15l6-6m-4-3l.463-.536a5 5 0 0 1 7.071 7.072L18 13m-5 5l-.397.534a5.07 5.07 0 0 1-7.127 0a4.97 4.97 0 0 1 0-7.071L6 11'/%3E%3C/svg%3E"); } + &[list-tree] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 6h11m-8 6h8m-5 6h5M5 6v.01M8 12v.01M11 18v.01'/%3E%3C/svg%3E"); } + &[lock] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M5 13a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2z'/%3E%3Cpath d='M11 16a1 1 0 1 0 2 0a1 1 0 0 0-2 0m-3-5V7a4 4 0 1 1 8 0v4'/%3E%3C/g%3E%3C/svg%3E"); } + &[login] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2-2v-2'/%3E%3Cpath d='M21 12H8l3-3m0 6l-3-3'/%3E%3C/g%3E%3C/svg%3E");} + &[mail] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpath d='m3 7l9 6l9-6'/%3E%3C/g%3E%3C/svg%3E"); } + &[maximize] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2m8-16h2a2 2 0 0 1 2 2v2m-4 12h2a2 2 0 0 0 2-2v-2'/%3E%3C/svg%3E"); } + &[message-chatbot] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3h-5l-5 3v-3H6a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3zM9.5 9h.01m4.99 0h.01'/%3E%3Cpath d='M9.5 13a3.5 3.5 0 0 0 5 0'/%3E%3C/g%3E%3C/svg%3E"); } + &[message] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 9h8m-8 4h6m4-9a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3h-5l-5 3v-3H6a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3z'/%3E%3C/svg%3E"); } + &[minimize] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5'/%3E%3C/svg%3E"); } + &[mood-empty] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m6-2h.01M15 10h.01M9 15h6'/%3E%3C/svg%3E"); } + &[mood-look-up] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0m6-4h.01M15 8h.01M11 12h2'/%3E%3C/svg%3E"); } + &[mood-sad-dizzy] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0'/%3E%3Cpath d='M14.5 16.05a3.5 3.5 0 0 0-5 0M8 9l2 2m0-2l-2 2m6-2l2 2m0-2l-2 2'/%3E%3C/g%3E%3C/svg%3E"); } + &[mood-smile] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m6-2h.01M15 10h.01'/%3E%3Cpath d='M9.5 15a3.5 3.5 0 0 0 5 0'/%3E%3C/g%3E%3C/svg%3E"); } + &[notebook] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 4h11a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m3 0v18m4-14h2m-2 4h2'/%3E%3C/svg%3E"); } + &[notes] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2zm4 2h6m-6 4h6m-6 4h4'/%3E%3C/svg%3E"); } + &[palette] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 21a9 9 0 0 1 0-18c4.97 0 9 3.582 9 8c0 1.06-.474 2.078-1.318 2.828S17.693 15 16.5 15H14a2 2 0 0 0-1 3.75A1.3 1.3 0 0 1 12 21'/%3E%3Cpath d='M7.5 10.5a1 1 0 1 0 2 0a1 1 0 1 0-2 0m4-3a1 1 0 1 0 2 0a1 1 0 1 0-2 0m4 3a1 1 0 1 0 2 0a1 1 0 1 0-2 0'/%3E%3C/g%3E%3C/svg%3E"); } + &[planet] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M18.816 13.58c2.292 2.138 3.546 4 3.092 4.9c-.745 1.46-5.783-.259-11.255-3.838c-5.47-3.579-9.304-7.664-8.56-9.123c.464-.91 2.926-.444 5.803.805'/%3E%3Cpath d='M5 12a7 7 0 1 0 14 0a7 7 0 1 0-14 0'/%3E%3C/g%3E%3C/svg%3E"); } + &[robot-face] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M6 5h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2'/%3E%3Cpath d='M9 16q1.5 1 3 1c1.5 0 2-.333 3-1M9 7L8 3m7 4l1-4m-7 9v-1m6 1v-1'/%3E%3C/g%3E%3C/svg%3E"); } + &[rosette-discount-check] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M5 7.2A2.2 2.2 0 0 1 7.2 5h1a2.2 2.2 0 0 0 1.55-.64l.7-.7a2.2 2.2 0 0 1 3.12 0l.7.7c.412.41.97.64 1.55.64h1a2.2 2.2 0 0 1 2.2 2.2v1c0 .58.23 1.138.64 1.55l.7.7a2.2 2.2 0 0 1 0 3.12l-.7.7a2.2 2.2 0 0 0-.64 1.55v1a2.2 2.2 0 0 1-2.2 2.2h-1a2.2 2.2 0 0 0-1.55.64l-.7.7a2.2 2.2 0 0 1-3.12 0l-.7-.7a2.2 2.2 0 0 0-1.55-.64h-1a2.2 2.2 0 0 1-2.2-2.2v-1a2.2 2.2 0 0 0-.64-1.55l-.7-.7a2.2 2.2 0 0 1 0-3.12l.7-.7A2.2 2.2 0 0 0 5 8.2z'/%3E%3Cpath d='m9 12l2 2l4-4'/%3E%3C/g%3E%3C/svg%3E"); } + &[rss] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 19a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9'/%3E%3C/svg%3E"); } + &[search] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m18 11l-6-6'/%3E%3C/svg%3E"); } + &[server-cog] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v2a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3zm9 13H6a3 3 0 0 1-3-3v-2a3 3 0 0 1 3-3h10.5m-.5 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0m2-3.5V16m0 4v1.5m3.032-5.25l-1.299.75m-3.463 2l-1.3.75m0-3.5l1.3.75m3.463 2l1.3.75M7 8v.01M7 16v.01'/%3E%3C/svg%3E"); } + &[server] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v2a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3zm0 8a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v2a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3zm4-7v.01M7 16v.01'/%3E%3C/svg%3E"); } + &[settings] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 0 0-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 0 0-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 0 0-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 0 0-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 0 0 1.066-2.573c-.94-1.543.826-3.31 2.37-2.37c1 .608 2.296.07 2.572-1.065'/%3E%3Cpath d='M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0'/%3E%3C/g%3E%3C/svg%3E"); } + &[shield-lock] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 3a12 12 0 0 0 8.5 3A12 12 0 0 1 12 21A12 12 0 0 1 3.5 6A12 12 0 0 0 12 3'/%3E%3Cpath d='M11 11a1 1 0 1 0 2 0a1 1 0 1 0-2 0m1 1v2.5'/%3E%3C/g%3E%3C/svg%3E"); } + &[social] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 5a2 2 0 1 0 4 0a2 2 0 1 0-4 0M3 19a2 2 0 1 0 4 0a2 2 0 1 0-4 0m14 0a2 2 0 1 0 4 0a2 2 0 1 0-4 0m-8-5a3 3 0 1 0 6 0a3 3 0 1 0-6 0m3-7v4m-5.3 6.8l2.8-2m7.8 2l-2.8-2'/%3E%3C/svg%3E"); } + &[spiral] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 12.057a1.9 1.9 0 0 0 .614.743c1.06.713 2.472.112 3.043-.919c.839-1.513-.022-3.368-1.525-4.08c-2-.95-4.371.154-5.24 2.086c-1.095 2.432.29 5.248 2.71 6.246c2.931 1.208 6.283-.418 7.438-3.255c1.36-3.343-.557-7.134-3.896-8.41c-3.855-1.474-8.2.68-9.636 4.422c-1.63 4.253.823 9.024 5.082 10.576c4.778 1.74 10.118-.941 11.833-5.59A9.4 9.4 0 0 0 21 11.063'/%3E%3C/svg%3E"); } + &[text-size] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7V5h13v2m-6-2v14m2 0H8m7-6v-1h6v1m-3-1v7m-1 0h2'/%3E%3C/svg%3E"); } + &[thumb-down] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 13V5a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1za4 4 0 0 1 4 4v1a2 2 0 0 0 4 0v-5h3a2 2 0 0 0 2-2l-1-5a2 3 0 0 0-2-2h-7a3 3 0 0 0-3 3'/%3E%3C/svg%3E"); } + &[thumb-up] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1za4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3'/%3E%3C/svg%3E"); } + &[universe] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M7.027 11.477a5 5 0 1 0 5.496-4.45a4.95 4.95 0 0 0-3.088.681'/%3E%3Cpath d='M5.636 5.636a9 9 0 1 0 3.555-2.188'/%3E%3Cpath d='M17 5a1 1 0 1 0 2 0a1 1 0 1 0-2 0m-6 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m-3 4a1 1 0 1 0 2 0a1 1 0 1 0-2 0'/%3E%3C/g%3E%3C/svg%3E"); } + &[user-cog] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h2.5m4.501 4a2 2 0 1 0 4 0a2 2 0 1 0-4 0m2-3.5V17m0 4v1.5m3.031-5.25l-1.299.75m-3.463 2l-1.3.75m0-3.5l1.3.75m3.463 2l1.3.75'/%3E%3C/svg%3E"); } + &[user-heart] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h.5m7.5 7l3.35-3.284a2.143 2.143 0 0 0 .005-3.071a2.24 2.24 0 0 0-3.129-.006l-.224.22l-.223-.22a2.24 2.24 0 0 0-3.128-.006a2.143 2.143 0 0 0-.006 3.071z'/%3E%3C/svg%3E"); } + &[user-plus] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0m8 12h6m-3-3v6M6 21v-2a4 4 0 0 1 4-4h4'/%3E%3C/svg%3E"); } + &[user] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2'/%3E%3C/svg%3E"); } + &[vector] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1zm14 0a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1zm0 14a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-2a1 1 0 0 1-1-1zM3 18a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1zM5 7v10M19 7v10M7 5h10M7 19h10'/%3E%3C/svg%3E"); } + &[volume] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 8a5 5 0 0 1 0 8m2.7-11a9 9 0 0 1 0 14M6 15H4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h2l3.5-4.5A.8.8 0 0 1 11 5v14a.8.8 0 0 1-1.5.5z'/%3E%3C/svg%3E"); } + &[wifi] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 18h.01m-2.838-2.828a4 4 0 0 1 5.656 0m-8.485-2.829a8 8 0 0 1 11.314 0'/%3E%3Cpath d='M3.515 9.515c4.686-4.687 12.284-4.687 17 0'/%3E%3C/g%3E%3C/svg%3E"); } + &[x] { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E"); } +} \ No newline at end of file diff --git a/_includes/styles/base/navbar.css b/_includes/styles/base/navbar.css new file mode 100644 index 0000000..76c5f63 --- /dev/null +++ b/_includes/styles/base/navbar.css @@ -0,0 +1,318 @@ +/* ╭──────────────────────────────────────╮ +/ │ _ │ +/ │ _ __ __ ___ _| |__ __ _ _ __ │ +/ │ | '_ \ / _` \ \ / / '_ \ / _` | '__| │ +/ │ | | | | (_| |\ V /| |_) | (_| | | │ +/ │ |_| |_|\__,_| \_/ |_.__/ \__,_|_| │ +/ ╰──────────────────────────────────────╯ +/ navbar - styling the navigation bar / panel that sits on the top of the page at all times */ + +.navbar { + align-content: center; + color: var(--foreground); + display: flex; + flex-direction: row; + inset: 0 !important; + width: 100% !important; + height: 1.8rem; + max-height: 1.8rem !important; + padding: .4rem .6rem .4rem .6rem; + position: fixed; + transition: .2s background-color; + vertical-align: middle; + z-index: 100; + + navbar-left { + display: inline-flex; + flex-direction: row; + gap: .5rem; + } + + navbar-right { + display: inline-flex; + flex-direction: row; + gap: .5rem; + margin-left: auto; + margin-right: .7rem; + } + + .nav-base { + align-content: center; + border-radius: 1rem; + display: inline-flex; + flex-direction: row; + height: 1.9rem; + outline: .13rem solid var(--border); + overflow: hidden; + padding: 0px .2em !important; + text-decoration: unset !important; + } + + .nav-baselink { + background-color: var(--accent); + color: var(--background); + outline-color: color-mix(in srgb, var(--accent) 60%, transparent); + + .synth-icon { + height: 2rem; + margin-right: 1rem; + pointer-events: none; + transform: scaleX(-1) scale(1.5) translateX(-.2rem) translateY(.1rem); + transition: .2s ease-out; + width: 2rem; + } + + &:hover, &:focus-visible { + .synth-icon { + transition: .2s ease-out; + transform: scaleX(-1) scale(1.5) translateX(-.2rem) translateY(.2rem) rotate(10deg); + } + } + } + + .nav-links { + align-items: center; + background-color: var(--background); + color: var(--foreground); + overflow: clip; + padding: 0 .4rem !important; + text-shadow: none; + transition: all .3s; + + span { + opacity: 0; + position: absolute; + transition: all .3s; + pointer-events: none; + white-space: nowrap; + } + + icon-tabler { + transition: all .3s; + } + } + + .nav-links { + &:hover, &:focus-visible { + color: light-dark(var(--foreground), var(--background)); + padding-bottom: 7rem !important; + padding-right: 9rem !important; + transition: .3s; + + span { + opacity: 1; + transform: scale(1.5) translateX(.7rem) translateY(.1rem); + transition: .3s; + } + + icon-tabler { + transform: scale(5) translateY(.85rem) translateX(.5rem) rotate(10deg); + transition: .3s; + } + } + } + + .nav-about { + &:hover, &:focus-visible { + background-color: light-dark(color-mix(in srgb, var(--green) 25%, var(--background)), var(--green)); + outline-color: color-mix(in srgb, var(--green) 60%, transparent); + } + } + + .nav-services { + &:hover, &:focus-visible { + background-color: light-dark(color-mix(in srgb, var(--blue) 25%, var(--background)), var(--blue)); + outline-color: color-mix(in srgb, var(--blue) 60%, transparent); + } + } + + .nav-donate { + &:hover, &:focus-visible { + background-color: light-dark(color-mix(in srgb, var(--purple) 25%, var(--background)), var(--purple)); + outline-color: color-mix(in srgb, var(--purple) 60%, transparent); + } + } + + .nav-mobile-menu { + display: none; + position: relative; + + input[type="checkbox"] { + left: -100vw; + position: absolute; + } + + label { + cursor: pointer; + } + + ul { + background-color: var(--background); + border-radius: 1rem; + border: var(--accent) solid .15rem; + height: max-content; + left: 0; + margin-left: unset; + margin-top: 2.2rem !important; + position: absolute; + visibility: hidden; + width: max-content; + + /* inital "hidden" state, used for providing animation when activated */ + opacity: 0; + scale: .5; + transform-origin: top left; + transition: opacity .3s, scale .3s, visibility .3s; + + li { + border-radius: 1rem; + list-style-type: none; + margin: .5rem .5rem .5rem -1.9rem; + overflow: clip; + padding: .7rem; + transition: .2s all; + + a { + color: var(--foreground); + text-decoration: none; + text-shadow: unset; + } + + icon-tabler { + transition: .2s; + } + } + + li:hover { + transition: .2s; + + icon-tabler { + transform: scale(2.5) translateX(-.1rem) translateY(.1rem) rotate(15deg); + } + + a { + color: light-dark(var(--foreground), var(--background)); + } + } + + .nav-home { + &:hover, &:focus-visible { + background-color: light-dark(color-mix(in srgb, var(--accent) 25%, var(--background)), var(--accent)); + } + } + + .nav-about { + &:hover, &:focus-visible { + background-color: light-dark(color-mix(in srgb, var(--green) 25%, var(--background)), var(--green)); + } + } + + .nav-services { + &:hover, &:focus-visible { + background-color: light-dark(color-mix(in srgb, var(--blue) 25%, var(--background)), var(--blue)); + } + } + + .nav-donate { + &:hover, &:focus-visible { + background-color: light-dark(color-mix(in srgb, var(--purple) 25%, var(--background)), var(--purple)); + } + } + } + + input[type="checkbox"]:checked~ul { + /* makes the menu visibile when activated and makes it appear from the top right */ + opacity: 1; + scale: 1; + transition: opacity .3s, scale .3s, visibility .3s; + visibility: visible; + } + } + + .nav-settings { + input[type="checkbox"]#nav-settings-menu { + left: -100vw; + position: absolute; + } + + input[type="checkbox"]#nav-settings-menu:focus-visible { + left: unset !important; + } + + label[data-toggle="nav-settings"] { + cursor: pointer; + align-items: center; + + icon-tabler { + padding: 0 .4rem !important; + pointer-events: none; + transform: scale(1.3); + transition: 1.3s; + } + + &:hover, &:focus-visible { + icon-tabler { + transform: scale(1.3) rotate(360deg); + } + } + } + + &:has(input[type="checkbox"]#nav-settings-menu:checked) { + label[data-toggle="nav-settings"] { + background-color: var(--red); + outline-color: color-mix(in srgb, var(--red) 70%, transparent); + icon-tabler[settings] { + --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E"); + } + } + } + } + + .nav-systray { + align-items: center; + background-color: var(--background); + color: var(--foreground); + display: inline-flex; + flex-direction: row; + gap: .2rem; + margin-right: .4rem !important; + padding: 0 .4rem !important; + } + + small { + opacity: .7; + } + + svg { + color: var(--foreground) !important; + } +} + +.navbar:hover { + transition: .2s all; + background-color: color-mix(in srgb, var(--accent) 40%, transparent); + border-bottom: solid .2rem var(--accent); +} + +/* modify widths and spacing depending on the size of the display */ +@media screen and (max-width: 35rem) { + .navbar { + .nav-desktop { + display: none !important; + } + + .nav-mobile-menu { + display: inline-flex !important; + } + + .nav-links { + display: none !important; + } + + .nav-settings { + span { + padding: 0 .4rem !important; + } + } + } +} \ No newline at end of file diff --git a/_includes/styles/prism-a11y-dark.css b/_includes/styles/base/prism-a11y-dark.css similarity index 100% rename from _includes/styles/prism-a11y-dark.css rename to _includes/styles/base/prism-a11y-dark.css diff --git a/_includes/styles/base/settings.css b/_includes/styles/base/settings.css new file mode 100644 index 0000000..3e43044 --- /dev/null +++ b/_includes/styles/base/settings.css @@ -0,0 +1,75 @@ +:root:has(input[type="checkbox"]#nav-settings-menu:checked) { + settings-area { + opacity: 1; + transition: opacity .3s, scale .3s, visibility .3s; + visibility: visible; + + settings-model { + scale: 1; + } + } +} + +settings-area { + /* inital state for animations */ + opacity: 0; + transform-origin: center; + transition: opacity .3s, scale .3s, visibility .3s; + visibility: hidden; + + align-items: center; + background: #00000050; + display: flex; + inset: 0; + justify-content: center; + overflow-x: hidden; + overflow-y: scroll; + position: fixed; + z-index: 90; + + settings-model { + background: var(--background); + border-radius: .4rem; + outline: .13rem solid var(--border); + padding: .6rem; + position: static; + scale: .5; + transition: .2s; + width: 40rem; + + &:hover { + outline-color: var(--accent); + } + + h2, h3 { + margin-top: 0; + + &:not(h2:first-child) { + border-bottom: unset !important; + } + } + + .container { + display: flex; + flex-flow: row wrap; + gap: 1.5rem; + + settings-section { + margin-right: auto; + } + } + } + + @media screen and (max-width: 40rem) { + settings-model { + border-radius: 0; + } + } + + @media screen and (max-width: 28.8rem) { + settings-model { + margin-top: 10rem; + width: 100%; + } + } +} \ No newline at end of file diff --git a/_includes/styles/base/windows.css b/_includes/styles/base/windows.css new file mode 100644 index 0000000..f77bd06 --- /dev/null +++ b/_includes/styles/base/windows.css @@ -0,0 +1,119 @@ +/* ╭────────────────────────────────────────────╮ +/ │ _ _ │ +/ │ __ _(_)_ __ __| | _____ _____ │ +/ │ \ \ /\ / / | '_ \ / _` |/ _ \ \ /\ / / __| │ +/ │ \ V V /| | | | | (_| | (_) \ V V /\__ \ │ +/ │ \_/\_/ |_|_| |_|\__,_|\___/ \_/\_/ |___/ │ +/ ╰────────────────────────────────────────────╯ +/ windows - related styling for the windows on pages */ + +[window] { + background-color: var(--background); + border-radius: 2rem .6rem 2rem .6rem; + box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; + color: var(--foreground); + outline: var(--accent) solid .15rem; + overflow: clip; + transition: .2s; + + &:hover { + outline: var(--accent) solid .5rem; + transition: .2s; + } + + .header { + background-color: color-mix(in srgb, var(--accent) 20%, var(--background)); + border-bottom: .1rem solid var(--accent); + display: inline-flex; + min-width: 100%; + overflow: clip; + text-align: center; + vertical-align: middle; + + titlebar-icon { + background: color-mix(in srgb, var(--accent) 30%, transparent); + border-bottom-right-radius: 1rem; + border-bottom: .2rem solid var(--accent); + border-right: .2rem solid var(--accent); + margin-bottom: -.2rem; + padding: .4rem .3rem .4rem 1rem; + } + + a { + align-self: center; + padding-left: .5rem; + text-decoration: none; + color: var(--foreground); + } + + a:hover { + text-decoration: underline; + } + + window-controls { + display: flex; + flex-direction: row; + margin: auto 0 auto auto; + align-items: center; + gap: .4rem; + + icon-tabler[minimize], icon-tabler[maximize] { + cursor: not-allowed; + } + } + + close-button { + background: color-mix(in srgb, var(--accent) 30%, transparent); + border-bottom-left-radius: 1rem; + border-bottom: .2rem solid var(--accent); + border-left: .2rem solid var(--accent); + cursor: pointer; + margin-bottom: -.2rem; + padding: .5rem .3rem .4rem .4rem; + transition: .2s; + + &:hover { + background: var(--red); + icon-tabler { background-color: var(--background); } + } + } + } + + window-contents { + display: block; + padding: .8rem; + p:first-child { margin-top: 0; } + p:last-child { margin-bottom: 0; } + h1, h2, h3 { &:first-child { margin-top: 0; } } + } + + @media screen and (max-width: 60rem) { + &:not(#footer) { + .header { + titlebar-icon { + padding: .3rem .4rem .3rem .4rem; + } + + window-controls { + icon-tabler[minimize], icon-tabler[maximize] { + display: none !important; + } + + close-button { + padding: .4rem .3rem .3rem .4rem; + } + } + } + + main, section, article { + padding: .5rem; + } + + border-bottom: var(--accent) solid .15rem; + border-left: unset !important; + border-radius: unset !important; + border-right: unset !important; + border-top: var(--accent) solid .15rem; + } + } +} \ No newline at end of file diff --git a/_includes/styles/font.css b/_includes/styles/font.css deleted file mode 100644 index f377bff..0000000 --- a/_includes/styles/font.css +++ /dev/null @@ -1,523 +0,0 @@ -/* ╭───────────────────────╮ -/ │ __ _ │ -/ │ / _| ___ _ __ | |_ │ -/ │ | |_ / _ \| '_ \| __| │ -/ │ | _| (_) | | | | |_ │ -/ │ |_| \___/|_| |_|\__| │ -/ ╰───────────────────────╯ -/ font - font configuration, stuff, whatever */ - -/* - JetBrains Mono - */ - -@font-face { - font-family: "JetBrains Mono"; - src: local("JetBrains Mono"), - url("/assets/fonts/JetBrainsMono/JetBrainsMono-Regular.woff2") - format("woff"), - local("JetBrainsMono Nerd Font"); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: "JetBrains Mono"; - src: local("JetBrains Mono"), - url("/assets/fonts/JetBrainsMono/JetBrainsMono-Bold.woff2") - format("woff"), - local("JetBrainsMono Nerd Font"); - font-weight: bold; - font-style: bold; -} - -@font-face { - font-family: "JetBrains Mono"; - src: local("JetBrains Mono"), - url("/assets/fonts/JetBrainsMono/JetBrainsMono-Italic.woff2") - format("woff"), - local("JetBrainsMono Nerd Font"); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: "JetBrains Mono"; - src: local("JetBrains Mono"), - url("/assets/fonts/JetBrainsMono/JetBrainsMono-BoldItalic.woff2") - format("woff"), - local("JetBrainsMono Nerd Font"); - font-weight: bold; - font-style: italic; -} - -/* font config, Atkinson Hyperlegible Next */ - -@font-face { - font-family: "Atkinson Hyperlegible Next"; - src: local("Atkinson Hyperlegible Next"), - url("/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Regular.woff2") - format("woff"), - local("JetBrainsMono Nerd Font"); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: "Atkinson Hyperlegible Next"; - src: local("Atkinson Hyperlegible Next"), - url("/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Bold.woff2") - format("woff"), - local("Atkinson Hyperlegible"); - font-weight: bold; - font-style: bold; -} - -@font-face { - font-family: "Atkinson Hyperlegible Next"; - src: local("Atkinson Hyperlegible Next"), - url("/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Italic.woff2") - format("woff"), - local("Atkinson Hyperlegible"); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: "Atkinson Hyperlegible Next"; - src: local("Atkinson Hyperlegible Next"), - url("/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-BoldItalic.woff2") - format("woff"), - local("Atkinson Hyperlegible"); - font-weight: bold; - font-style: italic; -} - -/* font config, Inter - original css by Inter, modified by Sneexy */ - -/* Variable fonts usage: -:root { font-family: "Inter", sans-serif; } -@supports (font-variation-settings: normal) { - :root { font-family: "InterVariable", sans-serif; font-optical-sizing: auto; } -} */ -@font-face { - font-family: InterVariable; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url("InterVariable.woff2") format("woff2"); -} -@font-face { - font-family: InterVariable; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url("InterVariable-Italic.woff2") format("woff2"); -} - -/* static fonts */ -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 100; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-Thin.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: italic; - font-weight: 100; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-ThinItalic.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 200; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-ExtraLight.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: italic; - font-weight: 200; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-ExtraLightItalic.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 300; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-Light.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: italic; - font-weight: 300; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-LightItalic.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-Regular.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: italic; - font-weight: 400; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-Italic.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-Medium.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: italic; - font-weight: 500; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-MediumItalic.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-SemiBold.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: italic; - font-weight: 600; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-SemiBoldItalic.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-Bold.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: italic; - font-weight: 700; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-BoldItalic.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 800; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-ExtraBold.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: italic; - font-weight: 800; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-ExtraBoldItalic.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: normal; - font-weight: 900; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-Black.woff2") format("woff2"); -} -@font-face { - font-family: "Inter"; - font-style: italic; - font-weight: 900; - font-display: swap; - src: url("/assets/fonts/Inter/Inter-BlackItalic.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: normal; - font-weight: 100; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-Thin.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: italic; - font-weight: 100; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-ThinItalic.woff2") - format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: normal; - font-weight: 200; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-ExtraLight.woff2") - format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: italic; - font-weight: 200; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-ExtraLightItalic.woff2") - format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: normal; - font-weight: 300; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-Light.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: italic; - font-weight: 300; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-LightItalic.woff2") - format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: normal; - font-weight: 400; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-Regular.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: italic; - font-weight: 400; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-Italic.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: normal; - font-weight: 500; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-Medium.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: italic; - font-weight: 500; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-MediumItalic.woff2") - format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: normal; - font-weight: 600; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-SemiBold.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: italic; - font-weight: 600; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-SemiBoldItalic.woff2") - format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: normal; - font-weight: 700; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-Bold.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: italic; - font-weight: 700; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-BoldItalic.woff2") - format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: normal; - font-weight: 800; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-ExtraBold.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: italic; - font-weight: 800; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-ExtraBoldItalic.woff2") - format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: normal; - font-weight: 900; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-Black.woff2") format("woff2"); -} -@font-face { - font-family: "InterDisplay"; - font-style: italic; - font-weight: 900; - font-display: swap; - src: url("/assets/fonts/Inter/InterDisplay-BlackItalic.woff2") - format("woff2"); -} - -@font-feature-values InterVariable { - @character-variant { - cv01: 1; - cv02: 2; - cv03: 3; - cv04: 4; - cv05: 5; - cv06: 6; - cv07: 7; - cv08: 8; - cv09: 9; - cv10: 10; - cv11: 11; - cv12: 12; - cv13: 13; - alt-1: 1; /* Alternate one */ - alt-3: 9; /* Flat-top three */ - open-4: 2; /* Open four */ - open-6: 3; /* Open six */ - open-9: 4; /* Open nine */ - lc-l-with-tail: 5; /* Lower-case L with tail */ - simplified-u: 6; /* Simplified u */ - alt-double-s: 7; /* Alternate German double s */ - uc-i-with-serif: 8; /* Upper-case i with serif */ - uc-g-with-spur: 10; /* Capital G with spur */ - single-story-a: 11; /* Single-story a */ - compact-lc-f: 12; /* Compact f */ - compact-lc-t: 13; /* Compact t */ - } - @styleset { - ss01: 1; - ss02: 2; - ss03: 3; - ss04: 4; - ss05: 5; - ss06: 6; - ss07: 7; - ss08: 8; - open-digits: 1; /* Open digits */ - disambiguation: 2; /* Disambiguation (with zero) */ - disambiguation-except-zero: 4; /* Disambiguation (no zero) */ - round-quotes-and-commas: 3; /* Round quotes & commas */ - square-punctuation: 7; /* Square punctuation */ - square-quotes: 8; /* Square quotes */ - circled-characters: 5; /* Circled characters */ - squared-characters: 6; /* Squared characters */ - } -} -@font-feature-values Inter { - @character-variant { - cv01: 1; - cv02: 2; - cv03: 3; - cv04: 4; - cv05: 5; - cv06: 6; - cv07: 7; - cv08: 8; - cv09: 9; - cv10: 10; - cv11: 11; - cv12: 12; - cv13: 13; - alt-1: 1; /* Alternate one */ - alt-3: 9; /* Flat-top three */ - open-4: 2; /* Open four */ - open-6: 3; /* Open six */ - open-9: 4; /* Open nine */ - lc-l-with-tail: 5; /* Lower-case L with tail */ - simplified-u: 6; /* Simplified u */ - alt-double-s: 7; /* Alternate German double s */ - uc-i-with-serif: 8; /* Upper-case i with serif */ - uc-g-with-spur: 10; /* Capital G with spur */ - single-story-a: 11; /* Single-story a */ - compact-lc-f: 12; /* Compact f */ - compact-lc-t: 13; /* Compact t */ - } - @styleset { - ss01: 1; - ss02: 2; - ss03: 3; - ss04: 4; - ss05: 5; - ss06: 6; - ss07: 7; - ss08: 8; - open-digits: 1; /* Open digits */ - disambiguation: 2; /* Disambiguation (with zero) */ - disambiguation-except-zero: 4; /* Disambiguation (no zero) */ - round-quotes-and-commas: 3; /* Round quotes & commas */ - square-punctuation: 7; /* Square punctuation */ - square-quotes: 8; /* Square quotes */ - circled-characters: 5; /* Circled characters */ - squared-characters: 6; /* Squared characters */ - } -} -@font-feature-values InterDisplay { - @character-variant { - cv01: 1; - cv02: 2; - cv03: 3; - cv04: 4; - cv05: 5; - cv06: 6; - cv07: 7; - cv08: 8; - cv09: 9; - cv10: 10; - cv11: 11; - cv12: 12; - cv13: 13; - alt-1: 1; /* Alternate one */ - alt-3: 9; /* Flat-top three */ - open-4: 2; /* Open four */ - open-6: 3; /* Open six */ - open-9: 4; /* Open nine */ - lc-l-with-tail: 5; /* Lower-case L with tail */ - simplified-u: 6; /* Simplified u */ - alt-double-s: 7; /* Alternate German double s */ - uc-i-with-serif: 8; /* Upper-case i with serif */ - uc-g-with-spur: 10; /* Capital G with spur */ - single-story-a: 11; /* Single-story a */ - compact-lc-f: 12; /* Compact f */ - compact-lc-t: 13; /* Compact t */ - } - @styleset { - ss01: 1; - ss02: 2; - ss03: 3; - ss04: 4; - ss05: 5; - ss06: 6; - ss07: 7; - ss08: 8; - open-digits: 1; /* Open digits */ - disambiguation: 2; /* Disambiguation (with zero) */ - disambiguation-except-zero: 4; /* Disambiguation (no zero) */ - round-quotes-and-commas: 3; /* Round quotes & commas */ - square-punctuation: 7; /* Square punctuation */ - square-quotes: 8; /* Square quotes */ - circled-characters: 5; /* Circled characters */ - squared-characters: 6; /* Squared characters */ - } -} \ No newline at end of file diff --git a/_includes/styles/footer.css b/_includes/styles/footer.css deleted file mode 100644 index 4e4af3e..0000000 --- a/_includes/styles/footer.css +++ /dev/null @@ -1,123 +0,0 @@ -/* ╭────────────────────────────────╮ -/ │ __ _ │ -/ │ / _| ___ ___ | |_ ___ _ __ │ -/ │ | |_ / _ \ / _ \| __/ _ \ '__| │ -/ │ | _| (_) | (_) | || __/ | │ -/ │ |_| \___/ \___/ \__\___|_| │ -/ ╰────────────────────────────────╯ -/ footer - related styling for the footer window on all pages */ - -footer { - max-width: 30em; - margin-left: auto; - margin-right: auto; - - .header > a { - padding: .3rem 0rem .3rem 1rem !important; - } - - main, section, article { - padding: 1rem !important; - } - - .fediring { - a { - color: var(--green); - display: inline-grid; - font-size: 1.5rem; - margin-bottom: .5em; - text-decoration: none !important; - vertical-align: bottom; - } - - [href="https://fediring.net"] { - color: var(--foreground); - background: color-mix(in srgb, var(--purple) 25%, transparent); - padding: 0px 10px 0px 10px; - border-radius: 5px; - } - - [href="https://keithhacks.cyou/furryring.php"] { - color: var(--foreground); - background: color-mix(in srgb, var(--sapphire) 25%, transparent); - padding: 0px 10px 0px 10px; - border-radius: 5px; - } - - [href="https://stellophiliac.github.io/roboring"] { - color: var(--foreground); - background: color-mix(in srgb, var(--comment) 25%, transparent); - padding: 0px 10px 0px 10px; - border-radius: 5px; - } - - [href*="prev"] { - background: color-mix(in srgb, var(--orange) 25%, transparent); - padding: 5px 6px; - border-radius: 5px; - - span { - background-color: var(--orange) !important; - } - } - - [href*="next"] { - background: color-mix(in srgb, var(--green) 25%, transparent); - padding: 5px 6px; - border-radius: 5px; - - span { - background-color: var(--green) !important; - } - } - } - - p, a { - text-align: center; - font-size: 0.938rem; - margin: .2em 0px .2em; - } - - img { - padding-top: 18px; - max-width: 30%; - display: flex; - margin-left: auto; - margin-right: auto; - transition: 1s animation; - } - - img:hover { - animation: spin 5s infinite linear; - } - - .inner-footer { - text-align: center; - margin-top: -.7rem; - margin-bottom: -.7rem; - - a { - width: 3rem; - height: 3rem; - display: inline-block; - vertical-align: middle; - align-content: center; - border-radius: .5rem; - - span { - transform: scale(1.58); - } - } - } -} - -@media screen and (max-width: 540px) { - #footer { - border-top: var(--accent) solid .15rem; - border-bottom: var(--accent) solid .15rem; - border-left: unset !important; - border-right: unset !important; - border-radius: unset !important; - margin-bottom: .8em; - } -} \ No newline at end of file diff --git a/_includes/styles/icons.css b/_includes/styles/icons.css deleted file mode 100644 index ca94500..0000000 --- a/_includes/styles/icons.css +++ /dev/null @@ -1,86 +0,0 @@ -/* ╭─────────────────────────╮ -/ │ _ │ -/ │ (_) ___ ___ _ __ ___ │ -/ │ | |/ __/ _ \| '_ \/ __| │ -/ │ | | (_| (_) | | | \__ \ │ -/ │ |_|\___\___/|_| |_|___/ │ -/ ╰─────────────────────────╯ -/ icons - tabler icons done through css, generate via https://icon-sets.iconify.design/tabler */ - -.icon { - display: inline-block; - width: 1.3rem; - height: 1.3rem; - vertical-align: top; - background-color: currentColor; - -webkit-mask-image: var(--svg); - mask-image: var(--svg); - -webkit-mask-repeat: no-repeat; - mask-repeat: no-repeat; - -webkit-mask-size: 100% 100%; - mask-size: 100% 100%; -} - -.tabler--accessible { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0'/%3E%3Cpath d='m10 16.5l2-3l2 3m-2-3v-2l3-1m-6 0l3 1'/%3E%3Ccircle cx='12' cy='7.5' r='.5' fill='%23000'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--alert-triangle { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 9v4m-1.637-9.409L2.257 17.125a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636-2.87L13.637 3.59a1.914 1.914 0 0 0-3.274 0zM12 16h.01'/%3E%3C/svg%3E"); } -.tabler--arrow-autofit-height { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 20H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6m6 10v7m0-18v7m-3 8l3 3l3-3M15 6l3-3l3 3'/%3E%3C/svg%3E"); } -.tabler--arrow-forward { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m15 11l4 4l-4 4m4-4H8a4 4 0 0 1 0-8h1'/%3E%3C/svg%3E"); } -.tabler--arrow-left { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14M5 12l6 6m-6-6l6-6'/%3E%3C/svg%3E"); } -.tabler--arrow-right { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-6 6l6-6m-6-6l6 6'/%3E%3C/svg%3E"); } -.tabler--article { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zm4 2h10M7 12h10M7 16h10'/%3E%3C/svg%3E"); } -.tabler--battery-filled { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M17 6a3 3 0 0 1 2.995 2.824L20 9v.086l.052.019a1.5 1.5 0 0 1 .941 1.25L21 10.5v3a1.5 1.5 0 0 1-.948 1.395l-.052.018V15a3 3 0 0 1-2.824 2.995L17 18H6a3 3 0 0 1-2.995-2.824L3 15V9a3 3 0 0 1 2.824-2.995L6 6z'/%3E%3C/svg%3E"); } -.tabler--bell { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3H4a4 4 0 0 0 2-3v-3a7 7 0 0 1 4-6M9 17v1a3 3 0 0 0 6 0v-1'/%3E%3C/svg%3E"); } -.tabler--brand-git { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m-4-4a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 8a1 1 0 1 0 2 0a1 1 0 1 0-2 0m1-1V9m3 2l-2-2m-2-2L9.1 5.1'/%3E%3Cpath d='m13.446 2.6l7.955 7.954a2.045 2.045 0 0 1 0 2.892l-7.955 7.955a2.045 2.045 0 0 1-2.892 0l-7.955-7.955a2.045 2.045 0 0 1 0-2.892l7.955-7.955a2.045 2.045 0 0 1 2.892 0z'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--brand-github { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 19c-4.3 1.4-4.3-2.5-6-3m12 5v-3.5c0-1 .1-1.4-.5-2c2.8-.3 5.5-1.4 5.5-6a4.6 4.6 0 0 0-1.3-3.2a4.2 4.2 0 0 0-.1-3.2s-1.1-.3-3.5 1.3a12.3 12.3 0 0 0-6.2 0C6.5 2.8 5.4 3.1 5.4 3.1a4.2 4.2 0 0 0-.1 3.2A4.6 4.6 0 0 0 4 9.5c0 4.6 2.7 5.7 5.5 6c-.6.6-.6 1.2-.5 2V21'/%3E%3C/svg%3E"); } -.tabler--brand-lastfm { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 8c-.83-1-1.388-1-2-1s-2 .271-2 2s1.384 2.233 3 3s2.125 1.812 2 3s-1 2-3 2s-3-1-3.5-2s-1.585-4.78-2.497-6a5 5 0 1 0-1 7'/%3E%3C/svg%3E"); } -.tabler--brand-mastodon { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M18.648 15.254C16.832 17.017 12 16.88 12 16.88a18.3 18.3 0 0 1-3.288-.256q1.69 2.977 8.982 2.475c-1.945 2.013-13.598 5.257-13.668-7.636L4 10.309c0-3.036.023-4.115 1.352-5.633C7.023 2.766 12 3.01 12 3.01s4.977-.243 6.648 1.667C19.977 6.195 20 7.274 20 10.31s-.456 4.074-1.352 4.944'/%3E%3Cpath d='M12 11.204V8.278C12 7.02 11.105 6 10 6S8 7.02 8 8.278V13m4-4.722C12 7.02 12.895 6 14 6s2 1.02 2 2.278V13'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--brand-metabrainz { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7v10l7 4V3zm18 0v10l-7 4V3z'/%3E%3C/svg%3E"); } -.tabler--brand-tabler { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m8 9l3 3l-3 3m5 0h3'/%3E%3Cpath d='M3 7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v10a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4z'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--building-bank { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 21h18M3 10h18M5 6l7-3l7 3M4 10v11m16-11v11M8 14v3m4-3v3m4-3v3'/%3E%3C/svg%3E"); } -.tabler--bulb { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12h1m8-9v1m8 8h1M5.6 5.6l.7.7m12.1-.7l-.7.7M9 16a5 5 0 1 1 6 0a3.5 3.5 0 0 0-1 3a2 2 0 0 1-4 0a3.5 3.5 0 0 0-1-3m.7 1h4.6'/%3E%3C/svg%3E"); } -.tabler--chevron-down { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 9l6 6l6-6'/%3E%3C/svg%3E"); } -.tabler--cloud-network { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 20h7m4 0h7m-11 0a2 2 0 1 0 4 0a2 2 0 0 0-4 0m2-4v2m-4-1.996H6.657C4.085 16 2 13.993 2 11.517s2.085-4.482 4.657-4.482c.393-1.762 1.794-3.2 3.675-3.773c1.88-.572 3.956-.193 5.444 1c1.488 1.19 2.162 3.007 1.77 4.769h.99c1.913 0 3.464 1.56 3.464 3.486s-1.551 3.487-3.465 3.487H16'/%3E%3C/svg%3E"); } -.tabler--corner-down-right { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 6v6a3 3 0 0 0 3 3h10l-4-4m0 8l4-4'/%3E%3C/svg%3E"); } -.tabler--currency-dollar { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M16.7 8A3 3 0 0 0 14 6h-4a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-4a3 3 0 0 1-2.7-2M12 3v3m0 12v3'/%3E%3C/svg%3E"); } -.tabler--database-share { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M4 6c0 1.657 3.582 3 8 3s8-1.343 8-3s-3.582-3-8-3s-8 1.343-8 3'/%3E%3Cpath d='M4 6v6c0 1.657 3.582 3 8 3q.541 0 1.065-.026M20 13V6'/%3E%3Cpath d='M4 12v6c0 1.657 3.582 3 8 3m4 1l5-5m0 4.5V17h-4.5'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--device-gamepad-2 { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 5h3.5a5 5 0 0 1 0 10H10l-4.015 4.227a2.3 2.3 0 0 1-3.923-2.035l1.634-8.173A5 5 0 0 1 8.6 5z'/%3E%3Cpath d='m14 15l4.07 4.284a2.3 2.3 0 0 0 3.925-2.023l-1.6-8.232M8 9v2m-1-1h2m5 0h2'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--device-mobile { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2zm5-1h2m-1 13v.01'/%3E%3C/svg%3E"); } -.tabler--external-link { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 6H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6m-7 1l9-9m-5 0h5v5'/%3E%3C/svg%3E"); } -.tabler--grid-dots { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 5a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 19a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0'/%3E%3C/svg%3E"); } -.tabler--heart { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19.5 12.572L12 20l-7.5-7.428A5 5 0 1 1 12 6.006a5 5 0 1 1 7.5 6.572'/%3E%3C/svg%3E"); } -.tabler--help { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m9 5v.01'/%3E%3Cpath d='M12 13.5a1.5 1.5 0 0 1 1-1.5a2.6 2.6 0 1 0-3-4'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--home { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M5 12H3l9-9l9 9h-2M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M9 21v-6a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v6'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--info-circle { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0m9-3h.01'/%3E%3Cpath d='M11 12h1v4h1'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--letter-case { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M14 15.5a3.5 3.5 0 1 0 7 0a3.5 3.5 0 1 0-7 0M3 19V8.5a3.5 3.5 0 0 1 7 0V19m-7-6h7m11-1v7'/%3E%3C/svg%3E"); } -.tabler--link { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m9 15l6-6m-4-3l.463-.536a5 5 0 0 1 7.071 7.072L18 13m-5 5l-.397.534a5.07 5.07 0 0 1-7.127 0a4.97 4.97 0 0 1 0-7.071L6 11'/%3E%3C/svg%3E"); } -.tabler--list-tree { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 6h11m-8 6h8m-5 6h5M5 6v.01M8 12v.01M11 18v.01'/%3E%3C/svg%3E"); } -.tabler--lock { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M5 13a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2z'/%3E%3Cpath d='M11 16a1 1 0 1 0 2 0a1 1 0 0 0-2 0m-3-5V7a4 4 0 1 1 8 0v4'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--login { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M15 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h7a2 2 0 0 0 2-2v-2'/%3E%3Cpath d='M21 12H8l3-3m0 6l-3-3'/%3E%3C/g%3E%3C/svg%3E");} -.tabler--mail { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpath d='m3 7l9 6l9-6'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--maximize { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2m8-16h2a2 2 0 0 1 2 2v2m-4 12h2a2 2 0 0 0 2-2v-2'/%3E%3C/svg%3E"); } -.tabler--message-chatbot { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3h-5l-5 3v-3H6a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3zM9.5 9h.01m4.99 0h.01'/%3E%3Cpath d='M9.5 13a3.5 3.5 0 0 0 5 0'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--minimize { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5'/%3E%3C/svg%3E"); } -.tabler--mood-empty { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m6-2h.01M15 10h.01M9 15h6'/%3E%3C/svg%3E"); } -.tabler--mood-look-up { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0m6-4h.01M15 8h.01M11 12h2'/%3E%3C/svg%3E"); } -.tabler--mood-sad-dizzy { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0'/%3E%3Cpath d='M14.5 16.05a3.5 3.5 0 0 0-5 0M8 9l2 2m0-2l-2 2m6-2l2 2m0-2l-2 2'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--mood-smile { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0m6-2h.01M15 10h.01'/%3E%3Cpath d='M9.5 15a3.5 3.5 0 0 0 5 0'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--notebook { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 4h11a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1m3 0v18m4-14h2m-2 4h2'/%3E%3C/svg%3E"); } -.tabler--notes { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2zm4 2h6m-6 4h6m-6 4h4'/%3E%3C/svg%3E"); } -.tabler--palette { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 21a9 9 0 0 1 0-18c4.97 0 9 3.582 9 8c0 1.06-.474 2.078-1.318 2.828S17.693 15 16.5 15H14a2 2 0 0 0-1 3.75A1.3 1.3 0 0 1 12 21'/%3E%3Cpath d='M7.5 10.5a1 1 0 1 0 2 0a1 1 0 1 0-2 0m4-3a1 1 0 1 0 2 0a1 1 0 1 0-2 0m4 3a1 1 0 1 0 2 0a1 1 0 1 0-2 0'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--planet { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M18.816 13.58c2.292 2.138 3.546 4 3.092 4.9c-.745 1.46-5.783-.259-11.255-3.838c-5.47-3.579-9.304-7.664-8.56-9.123c.464-.91 2.926-.444 5.803.805'/%3E%3Cpath d='M5 12a7 7 0 1 0 14 0a7 7 0 1 0-14 0'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--robot-face { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M6 5h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2'/%3E%3Cpath d='M9 16q1.5 1 3 1c1.5 0 2-.333 3-1M9 7L8 3m7 4l1-4m-7 9v-1m6 1v-1'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--rosette-discount-check { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M5 7.2A2.2 2.2 0 0 1 7.2 5h1a2.2 2.2 0 0 0 1.55-.64l.7-.7a2.2 2.2 0 0 1 3.12 0l.7.7c.412.41.97.64 1.55.64h1a2.2 2.2 0 0 1 2.2 2.2v1c0 .58.23 1.138.64 1.55l.7.7a2.2 2.2 0 0 1 0 3.12l-.7.7a2.2 2.2 0 0 0-.64 1.55v1a2.2 2.2 0 0 1-2.2 2.2h-1a2.2 2.2 0 0 0-1.55.64l-.7.7a2.2 2.2 0 0 1-3.12 0l-.7-.7a2.2 2.2 0 0 0-1.55-.64h-1a2.2 2.2 0 0 1-2.2-2.2v-1a2.2 2.2 0 0 0-.64-1.55l-.7-.7a2.2 2.2 0 0 1 0-3.12l.7-.7A2.2 2.2 0 0 0 5 8.2z'/%3E%3Cpath d='m9 12l2 2l4-4'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--rss { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 19a1 1 0 1 0 2 0a1 1 0 1 0-2 0M4 4a16 16 0 0 1 16 16M4 11a9 9 0 0 1 9 9'/%3E%3C/svg%3E"); } -.tabler--server-cog { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v2a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3zm9 13H6a3 3 0 0 1-3-3v-2a3 3 0 0 1 3-3h10.5m-.5 6a2 2 0 1 0 4 0a2 2 0 1 0-4 0m2-3.5V16m0 4v1.5m3.032-5.25l-1.299.75m-3.463 2l-1.3.75m0-3.5l1.3.75m3.463 2l1.3.75M7 8v.01M7 16v.01'/%3E%3C/svg%3E"); } -.tabler--settings { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 0 0-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 0 0-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 0 0-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 0 0-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 0 0 1.066-2.573c-.94-1.543.826-3.31 2.37-2.37c1 .608 2.296.07 2.572-1.065'/%3E%3Cpath d='M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--text-size { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 7V5h13v2m-6-2v14m2 0H8m7-6v-1h6v1m-3-1v7m-1 0h2'/%3E%3C/svg%3E"); } -.tabler--thumb-down { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 13V5a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1za4 4 0 0 1 4 4v1a2 2 0 0 0 4 0v-5h3a2 2 0 0 0 2-2l-1-5a2 3 0 0 0-2-2h-7a3 3 0 0 0-3 3'/%3E%3C/svg%3E"); } -.tabler--thumb-up { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1za4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3'/%3E%3C/svg%3E"); } -.tabler--universe { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M7.027 11.477a5 5 0 1 0 5.496-4.45a4.95 4.95 0 0 0-3.088.681'/%3E%3Cpath d='M5.636 5.636a9 9 0 1 0 3.555-2.188'/%3E%3Cpath d='M17 5a1 1 0 1 0 2 0a1 1 0 1 0-2 0m-6 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m-3 4a1 1 0 1 0 2 0a1 1 0 1 0-2 0'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--user { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2'/%3E%3C/svg%3E"); } -.tabler--user-cog { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h2.5m4.501 4a2 2 0 1 0 4 0a2 2 0 1 0-4 0m2-3.5V17m0 4v1.5m3.031-5.25l-1.299.75m-3.463 2l-1.3.75m0-3.5l1.3.75m3.463 2l1.3.75'/%3E%3C/svg%3E"); } -.tabler--user-heart { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h.5m7.5 7l3.35-3.284a2.143 2.143 0 0 0 .005-3.071a2.24 2.24 0 0 0-3.129-.006l-.224.22l-.223-.22a2.24 2.24 0 0 0-3.128-.006a2.143 2.143 0 0 0-.006 3.071z'/%3E%3C/svg%3E"); } -.tabler--user-plus { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0m8 12h6m-3-3v6M6 21v-2a4 4 0 0 1 4-4h4'/%3E%3C/svg%3E"); } -.tabler--volume { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 8a5 5 0 0 1 0 8m2.7-11a9 9 0 0 1 0 14M6 15H4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1h2l3.5-4.5A.8.8 0 0 1 11 5v14a.8.8 0 0 1-1.5.5z'/%3E%3C/svg%3E"); } -.tabler--wifi { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M12 18h.01m-2.838-2.828a4 4 0 0 1 5.656 0m-8.485-2.829a8 8 0 0 1 11.314 0'/%3E%3Cpath d='M3.515 9.515c4.686-4.687 12.284-4.687 17 0'/%3E%3C/g%3E%3C/svg%3E"); } -.tabler--x { --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E"); } \ No newline at end of file diff --git a/_includes/styles/navbar.css b/_includes/styles/navbar.css deleted file mode 100644 index ad185d4..0000000 --- a/_includes/styles/navbar.css +++ /dev/null @@ -1,513 +0,0 @@ -/* ╭──────────────────────────────────────╮ -/ │ _ │ -/ │ _ __ __ ___ _| |__ __ _ _ __ │ -/ │ | '_ \ / _` \ \ / / '_ \ / _` | '__| │ -/ │ | | | | (_| |\ V /| |_) | (_| | | │ -/ │ |_| |_|\__,_| \_/ |_.__/ \__,_|_| │ -/ ╰──────────────────────────────────────╯ -/ navbar - styling the navigation bar / panel that sits on the top of the page at all times */ - -.navbar { - display: flex; - flex-direction: row; - max-height: 1.8em !important; - max-width: 100%; - min-height: 1.8em !important; - min-width: 100%; - position: fixed; - top: 0 !important; - padding: .4rem 0 .4rem 0; - z-index: 100; - - align-content: center; - color: var(--foreground); - vertical-align: middle; - - transition: .2s background-color; - - .nav-base { - padding: 0px .2em !important; - align-content: center; - outline: .13rem solid var(--border); - border-radius: 1rem; - height: 1.9rem; - } - - .nav-left { - margin-left: .6rem !important; - padding: 0px .5rem .1rem !important; - text-decoration: unset !important; - } - - .nav-baselink { - background-color: var(--accent); - color: var(--background); - margin-left: .4rem !important; - outline-color: color-mix(in srgb, var(--accent) 60%, transparent); - padding: .13rem; - - .synth-icon { - height: 2rem; - margin-right: 1rem; - pointer-events: none; - transform: scaleX(-1) scale(1.5) translateX(-.2rem) translateY(.1rem); - transition: all .2s ease-out; - width: 2rem; - } - } - - .nav-baselink:hover, .nav-baselink:focus-visible { - .synth-icon { - transition: all .2s ease-out; - transform: scaleX(-1) scale(1.5) translateX(-.2rem) translateY(.2rem) rotate(10deg); - } - } - - .nav-desktop { - overflow: hidden; - } - - .nav-mobile-menu { - display: none; - } - - .nav-links { - background-color: var(--background); - color: var(--foreground); - overflow: clip; - position: relative; - text-shadow: none; - transition: all .3s; - - .text { - opacity: 0; - position: absolute; - transition: all .3s; - pointer-events: none; - white-space: nowrap; - } - - .icon { - transform: scale(1.1); - transition: all .3s; - } - } - - .nav-links:hover, .nav-links:focus-visible { - padding-right: 9rem !important; - padding-bottom: 7rem !important; - transition: all .3s; - - .text { - opacity: 1; - transform: scale(1.5) translateX(-.4rem); - transition: all .3s; - } - - .icon { - transform: scale(5) translateY(.9rem) translateX(.4rem) rotate(10deg); - transition: all .3s; - } - } - - .nav-home:hover, .nav-home:focus-visible { - background-color: color-mix(in srgb, var(--accent) 20%, var(--background)); - color: var(--foreground); - outline-color: color-mix(in srgb, var(--accent) 60%, transparent); - } - - .nav-notebook:hover, .nav-notebook:focus-visible { - background-color: color-mix(in srgb, var(--purple) 20%, var(--background)); - color: var(--foreground); - outline-color: color-mix(in srgb, var(--purple) 60%, transparent); - - .text { - transform: scale(1.5) translateX(0rem); - } - } - - .nav-services:hover, .nav-services:focus-visible { - background-color: color-mix(in srgb, var(--blue) 20%, var(--background)); - color: var(--foreground); - outline-color: color-mix(in srgb, var(--blue) 60%, transparent); - - .text { - transform: scale(1.5) translateX(0rem); - } - } - - .nav-webmaster:hover, .nav-webmaster:focus-visible { - background-color: color-mix(in srgb, var(--green) 20%, var(--background)); - color: var(--foreground); - outline-color: color-mix(in srgb, var(--green) 60%, transparent); - - .text { - transform: scale(1.5) translateX(-.2rem); - } - } - - .nav-donate:hover, .nav-donate:focus-visible { - background-color: color-mix(in srgb, var(--pink) 20%, var(--background)); - color: var(--foreground); - outline-color: color-mix(in srgb, var(--pink) 60%, transparent); - - .text { - transform: scale(1.5) translateX(-.2rem); - } - } - - .nav-right { - padding: 0px .5rem .1rem !important; - margin-right: .6rem !important; - } - - .nav-settings { - background-color: var(--accent); - color: var(--background); - cursor: pointer; - margin-left: auto !important; - outline-color: color-mix(in srgb, var(--accent) 60%, transparent); - padding: unset !important; /* unset the padding for the button itself so the button can take the padding to make the entire button clickable */ - - input[type="checkbox"]#nav-settings-menu { - left: -100vw; - position: absolute; - } - - input[type="checkbox"]#nav-settings-menu:focus-visible { - left: unset !important; - } - - label[data-toggle="nav-settings"] { - cursor: pointer; - overflow: hidden !important; - padding: .3rem .5rem !important; - position: relative; - - .icon { - padding: 0 .5rem !important; - pointer-events: none; - transform: translateY(.1rem) scale(1.5); - transition: all 1.3s; - } - } - - label[data-toggle="nav-settings"]:hover ,label[data-toggle="nav-settings"]:focus-visible { - .icon { - transform: translateY(.1rem) scale(1.5) rotate(360deg); - transition: all 1.3s; - } - } - - ul { - background-color: var(--background); - border-radius: 1rem; - border: var(--accent) solid .15rem; - cursor: initial !important; /* reset the cursor otherwise it uses the pointer cursor */ - margin-top: 1.2rem !important; - max-height: 27rem; - max-width: 17rem; - min-height: 27rem; - min-width: 17rem; - overflow: scroll; - position: absolute; - right: .4rem; - visibility: hidden; - - /* inital "hidden" state, used for providing animation when activated */ - opacity: 0; - scale: .5; - transform-origin: top right; - transition: opacity .3s, scale .3s, visibility .3s; - - li { - border-radius: 1rem; - color: var(--foreground); - list-style-type: none; - margin-left: -2rem; - padding: .4rem; - - span { - padding: .1rem 0px .1rem 0px !important; - } - - h2 { - margin: 0 !important; - } - } - } - - input[type="checkbox"]#nav-settings-menu:checked ~ ul { - /* makes the menu visibile when activated and makes it appear from the top right */ - opacity: 1; - scale: 1; - transition: opacity .3s, scale .3s, visibility .3s; - visibility: visible; - } - } - - .nav-systray { - background-color: var(--background); - color: var(--foreground); - padding: 0px .1rem; - min-width: 6.45rem; - margin-right: .4rem !important; - } - - a, - p { - margin: unset !important; - } - - small { - opacity: .7; - } - - svg { - color: var(--foreground) !important; - } -} - -.navbar:hover { - transition: .2s all; - background-color: color-mix(in srgb, var(--accent) 40%, transparent); - border-bottom: solid .2rem var(--accent); -} - -/* different styling for elements in dark mode - must also be applied to the html element below - needed as to not break with users using their browser settings or manually setting the theme through the website */ -html:not([data-theme="light"]) { - @media (prefers-color-scheme: dark) { - .navbar { - .nav-home:hover, .nav-home:focus-visible { - background-color: var(--accent); - color: var(--background); - } - .nav-notebook:hover, .nav-notebook:focus-visible { - background-color: var(--purple); - color: var(--background); - } - .nav-services:hover, .nav-services:focus-visible { - background-color: var(--blue); - color: var(--background); - } - .nav-webmaster:hover, .nav-webmaster:focus-visible { - background-color: var(--green); - color: var(--background); - } - .nav-donate:hover,.nav-donate:focus-visible { - background-color: var(--pink); - color: var(--background); - } - } - } -} - -html[data-theme="dark"] { - .navbar { - .nav-home:hover, .nav-home:focus-visible { - background-color: var(--accent); - color: var(--background); - } - .nav-notebook:hover, .nav-notebook:focus-visible { - background-color: var(--purple); - color: var(--background); - } - .nav-services:hover, .nav-services:focus-visible { - background-color: var(--blue); - color: var(--background); - } - .nav-webmaster:hover, .nav-webmaster:focus-visible { - background-color: var(--green); - color: var(--background); - } - .nav-donate:hover, .nav-donate:focus-visible { - background-color: var(--pink); - color: var(--background); - } - } -} - -/* modify widths and spacing depending on the size of the display */ -@media screen and (max-width: 1083px) { - .navbar { - .nav-desktop { - display: none !important; - } - - .nav-mobile-menu { - display: inline-block !important; - max-width: 3rem; - min-width: 3rem; - position: relative; - - input[type="checkbox"] { - left: -100vw; - position: absolute; - } - - label { - border-radius: 1rem; - cursor: pointer; - display: inline-block; - left: -.5rem; - margin-right: .1rem; - max-height: 2rem; - max-width: 3rem; - min-height: 2rem; - min-width: 3rem; - overflow: hidden !important; - padding-right: 1rem; - position: relative; - - .synth-icon { - transform: scaleX(-1) scale(1.5) translateX(-.5rem) translateY(.1rem); - } - } - - label:hover { - .synth-icon { - transform: scaleX(-1) scale(1.5) translateX(-.5rem) translateY(.2rem) rotate(10deg); - } - } - - ul { - background-color: var(--background); - border-radius: 1rem; - border: var(--accent) solid .15rem; - height: max-content; - left: 0; - margin-top: .4rem !important; - position: absolute; - visibility: hidden; - width: max-content; - - /* inital "hidden" state, used for providing animation when activated */ - opacity: 0; - scale: .5; - transform-origin: top left; - transition: opacity .3s, scale .3s, visibility .3s; - - li { - border-radius: 1rem; - list-style-type: none; - margin: .5rem .5rem .5rem -1.9rem; - overflow: clip; - padding: .7rem; - transition: .2s all; - - a { - color: var(--foreground); - text-decoration: none; - text-shadow: unset; - } - - .icon { - padding-right: .3em; - transition: .2s all; - } - } - - li:hover { - transition: .2s all; - - .icon { - transform: scale(2.5) translateX(-.1rem) translateY(.1rem) rotate(15deg); - transition: .2s all; - } - } - - .nav-home:hover, .nav-home:focus-visible { - background-color: color-mix(in srgb, var(--accent) 20%, transparent); - a { - color: var(--foreground); - } - } - .nav-notebook:hover, .nav-home:focus-visible { - background-color: color-mix(in srgb, var(--purple) 20%, transparent); - a { - color: var(--foreground); - } - } - .nav-services:hover, .nav-services:focus-visible { - background-color: color-mix(in srgb, var(--blue) 20%, transparent); - a { - color: var(--foreground); - } - } - .nav-webmaster:hover, .nav-home:focus-visible { - background-color: color-mix(in srgb, var(--green) 20%, transparent); - a { - color: var(--foreground); - } - } - .nav-donate:hover, .nav-home:focus-visible { - background-color: color-mix(in srgb, var(--pink) 20%, transparent); - a { - color: var(--foreground); - } - } - } - - input[type="checkbox"]:checked ~ ul { - /* makes the menu visibile when activated and makes it appear from the top right */ - opacity: 1; - scale: 1; - transition: opacity .3s, scale .3s, visibility .3s; - visibility: visible; - } - } - - .nav-links { - display: none !important; - } - - .nav-settings { - span { - padding: 0 .4rem !important; - } - } - } - - @media (prefers-color-scheme: dark) { - html:not([data-theme="light"]) { - .navbar .nav-mobile-menu ul { - .nav-home:hover a, .nav-home:focus-visible a { - color: var(--accent); - } - .nav-notebook:hover a, .nav-notebook:focus-visible a { - color: var(--purple); - } - .nav-services:hover a, .nav-services:focus-visible a { - color: var(--blue); - } - .nav-webmaster:hover a, .nav-webmaster:focus-visible a { - color: var(--green); - } - .nav-donate:hover a, .nav-donate:focus-visible a { - color: var(--pink); - } - } - } - } - - html[data-theme="dark"] { - .navbar .nav-mobile-menu ul { - .nav-home:hover a, .nav-home:focus-visible a { - color: var(--accent); - } - .nav-notebook:hover a, .nav-notebook:focus-visible a { - color: var(--purple); - } - .nav-services:hover a, .nav-services:focus-visible a { - color: var(--blue); - } - .nav-webmaster:hover a, .nav-webmaster:focus-visible a { - color: var(--green); - } - .nav-donate:hover a, .nav-donate:focus-visible a { - color: var(--pink); - } - } - } -} \ No newline at end of file diff --git a/_includes/styles/pages/admins.css b/_includes/styles/pages/admins.css index f58e9c2..e33d4c3 100644 --- a/_includes/styles/pages/admins.css +++ b/_includes/styles/pages/admins.css @@ -7,7 +7,7 @@ / ╰─────────────────────────────────────╯ / admins - styling the admin cards on the admins page (admin.md) */ -#admins section .card { +article#admins card-container card-entry { overflow: hidden; position: relative; @@ -15,74 +15,66 @@ z-index: 100; } - .sona { + buttons-container { + margin-top: 0; + margin-bottom: 5rem; + } + + img[sona] { bottom: -3rem; - max-width: 20rem; + max-width: 18rem; opacity: .5; + pointer-events: none; position: absolute; right: -.5rem; transform: rotate(16deg) scaleX(-1); transition: 0.2s; - - &:hover { - opacity: 1; - transition: 0.2s; - } } - &.sneexy { + &#sneexy { --accent: #65ff88; } - &.senil { + &#senil { --accent: #008E54; - .button-container .button:hover { + buttons-container a[button]:hover { color: white !important; } - .sona { - bottom: -9rem; + img[sona] { + bottom: -7rem; } } - &.unnick { + &#unnick { --accent: #0094FF; - .button-container .button:hover { + buttons-container a[button]:hover { color: white !important; } - .sona { + img[sona] { bottom: -2rem; } } - &.melontini { + &#zenfyr { --accent: #e05188; - .button-container .button:hover { + buttons-container a[button]:hover { color: white !important; } - } - @media screen and (max-width: 835px) { - &:has(.sona) { - padding-bottom: 5rem; - - .sona { - pointer-events: none !important; - } + img[sona] { + max-width: 13rem; + bottom: -2rem; } } - @media screen and (max-width: 375px) { - &:has(.sona) { - padding-bottom: 0rem !important; - - .sona { - display: none !important; - } + &:hover { + img[sona] { + opacity: 1; } } } \ No newline at end of file diff --git a/_includes/styles/pages/fediverse.css b/_includes/styles/pages/fediverse.css new file mode 100644 index 0000000..34330fa --- /dev/null +++ b/_includes/styles/pages/fediverse.css @@ -0,0 +1,35 @@ +article#instances { + card-container { + grid-template-columns: 1fr !important; + } +} + +article#bubble { + ul[bubble] { + display: flex; + flex-flow: row wrap; + gap: .7rem; + margin-left: 0; + padding-left: 0; + + li { + &::marker { content: ""; } + + a { + border-radius: .5rem; + border: .15rem solid var(--border); + padding: .2rem; + text-decoration-color: transparent; + + &:hover { + text-decoration-color: inherit; + } + + img { + height: 1.5rem; + vertical-align: bottom; + } + } + } + } +} \ No newline at end of file diff --git a/_includes/styles/pages/home.css b/_includes/styles/pages/home.css index 94e9956..61e79b7 100644 --- a/_includes/styles/pages/home.css +++ b/_includes/styles/pages/home.css @@ -7,16 +7,9 @@ / ╰──────────────────────────────╯ / home - specific styling for the main synth.download home page (index.md) */ -#site.window.home { - main, section { - #logo { - width: 40rem; - height: auto; - line-break: strict; - margin-bottom: 0.5rem; - text-align: center; - cursor: default; - } +article#home { + window-contents { + p h1 { margin-top: -1rem; @@ -24,7 +17,16 @@ } p { - margin-top: 3px; + a#logo { + cursor: default; + margin-bottom: 0.5rem; + + img[src="/assets/synth.download/logo_web.svg"] { + min-width: 3rem; + max-width: 100%; + max-height: 25rem; + } + } } ul { @@ -38,8 +40,6 @@ text-decoration: underline !important; } } - - text-align: center; } } diff --git a/_includes/styles/pages/services.css b/_includes/styles/pages/services.css index 3c8d895..cee93ac 100644 --- a/_includes/styles/pages/services.css +++ b/_includes/styles/pages/services.css @@ -7,33 +7,86 @@ / ╰───────────────────────────────────────╯ / services - styling for managing the services page */ -#services.window { - .flex-container { - display: flex; - flex-direction: row; - - section { - flex: 1; - } +article#services { + details[styled] { + services-filters { + display: flex; + flex-flow: column wrap; + gap: 1rem; - #public { - padding: 0 .8rem 0 0; - } - - #private { - padding: 0 0 0 .8rem; - } - } -} - -@media screen and (max-width: 59em) { - #services.window { - .flex-container { - flex-direction: column !important; - - #public, #private { - padding: unset !important; + checkbox-button-group { + flex-flow: row wrap; } } } + + /* frontends */ + &:not(:has(input#service-frontend:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[cloud-network]) { + display: none; + } + } + + /* search */ + &:not(:has(input#service-search:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[search]) { + display: none; + } + } + + /* social */ + &:not(:has(input#service-social:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[social]) { + display: none; + } + } + + /* fun */ + &:not(:has(input#service-fun:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[mood-smile]) { + display: none; + } + } + + /* chat */ + &:not(:has(input#service-chat:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[message]) { + display: none; + } + } + + /* sharing */ + &:not(:has(input#service-sharing:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[database-share]) { + display: none; + } + } + + /* git */ + &:not(:has(input#service-git:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[brand-git]) { + display: none; + } + } + + /* personal */ + &:not(:has(input#service-personal:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[user]) { + display: none; + } + } + + /* public */ + &:not(:has(input#service-public:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[planet]) { + display: none !important; + } + } + + /* private */ + &:not(:has(input#service-private:checked)) { + card-container card-entry:has(h3 span[status] icon-tabler[lock]) { + display: none !important; + } + } } \ No newline at end of file diff --git a/_includes/styles/pages/sneexy.css b/_includes/styles/pages/sneexy.css index c05a965..d1d4d62 100644 --- a/_includes/styles/pages/sneexy.css +++ b/_includes/styles/pages/sneexy.css @@ -9,198 +9,106 @@ / ~sneexy - breeeep! my page! slooosh~ */ /* my page has goop in html to set goopy colors */ -html[page-is="goopy"] { - --accent: #00d131 !important; +html:has(article[sneexy-page]) { + --accent: light-dark(#00d131, #65ff88) !important; - #sneexy > section { + article#sneexy window-contents { + text-align: center; + #logo { - width: 40rem; - height: auto; - } - - h1 #pfp { - width: auto; - height: 6rem; - - vertical-align: middle; - transition: transform .2s; - } - - h1 #pfp:hover { - transform: scale(2); - } - - .selfinfo { - display: grid; - padding-top: 5px; - grid-template-areas: - "pronouns names"; - div { - text-align: left; - border-radius: 1em; - padding: .7em 1em; - ul { - padding-left: 1em; - } - li { - padding-bottom: 6px !important; - list-style: none; - } - } - div:first-child { - background-color: color-mix(in srgb, var(--yellow) 15%, transparent); - border: var(--site-border); - } - div:last-child { - background-color: color-mix(in srgb, var(--sapphire) 15%, transparent); - border: var(--site-border); - margin-left: 1.5em; - } + min-width: 3rem; + max-width: 100%; + max-height: 13rem; } h1 { - margin-bottom: 1px; + border-bottom: unset; + margin-bottom: unset; + + & #pfp { + height: 6rem; + transition: .2s; + vertical-align: middle; + width: auto; + + &:hover { + transform: scale(2); + } + } } - p { - margin-top: 3px; - } + card-container[selfinfo] { + text-align: start; + margin-top: .8rem; - text-align: center; + ul { + margin-top: 0; + margin-bottom: 0; + + li { + margin-left: -1rem; + &::marker { content: ""; } + } + } + } } /* socials and links sections */ - .socials-contacts-list { - a { - width: 3rem; - height: 3rem; - display: inline-block; - vertical-align: middle; - align-content: center; - text-align: center; - border-radius: .5rem; + article#links { + window-contents { + .container { + display: flex; + flex-flow: row wrap; + gap: 1rem; - span { - transform: scale(1.58) translateY(.07rem); - } - } + socials-links { + display: flex; + flex-flow: column wrap; + flex: content; + gap: .8rem; + min-width: 10rem; - .fedi-icon { - anchor-name: --fedi-icon; - animation: opacity-blink 4s infinite; - } + [button] { + height: fit-content; + padding: .4rem .8rem; - .fedi-icon-2 { - position-anchor: --fedi-icon; - position: absolute; - margin-left: -3.681rem; - z-index: 2; - animation: opacity-blink-reverse 4s infinite; - } - } + small[username] { + float: right; + margin-left: 2rem; + } - /* sharkey iframe embed */ - #links > section > iframe { - display: flex; - margin-top: 1rem; - margin-bottom: .3crem; - margin-left: auto; - margin-right: auto; - - border: var(--accent) solid .15rem !important; - border-radius: .6rem; - transition: .2s box-shadow; - } - - #links > section > iframe:hover { - box-shadow: var(--accent) 0px 0px 0px .3rem; - transition: .2s box-shadow; - } - - /* nsfw page */ - #warning { - fieldset { - background-color: color-mix(in srgb, var(--background) 95%, white); - border-radius: 1rem; - border: .2rem solid var(--border); - color: var(--foreground); - max-width: fit-content; - padding: .5rem; - } - } - - #nsfw { - display: none; - } - - /* goop coloring for theme issues stuff */ - @media (prefers-color-scheme: light) { - .nav-baselink, .nav-accessibility { - background-color: var(--accent) !important; - color: var(--foreground) !important; - } - } - - @media (prefers-color-scheme: dark) { - --accent: #65ff88 !important; - --link: var(--accent) !important; - } - - @media screen and (max-width: 59em) { - #sneexy > section { - #logo { - max-width: 100%; - } - - .selfinfo { - grid-template-areas: - "pronouns" - "names"; - div { - text-align: center; - margin-left: auto; - margin-right: auto; - ul { - text-align: left !important; + &[fedi] { --accent: var(--yellow); } + &[bsky] { --accent: var(--blue); } + &[listenbrainz] { --accent: var(--purple); } + &[lastfm] { + --accent: var(--red); + &:hover { color: var(--background); } + } + &[gitgay] { --accent: var(--green); } + &[github] { --accent: light-dark(color-mix(in srgb, var(--white) 10%, var(--black)), var(--white)); } + &[archive] { + --accent: light-dark(color-mix(in srgb, var(--dark-white) 30%, var(--black)), color-mix(in srgb, var(--dark-white) 15%, var(--black))); + &:hover { color: light-dark(var(--foreground), var(--foreground)); } + } } } - div:first-child { - margin-bottom: 1em; - } - div:last-child { - margin-left: auto !important; + + socials-fedi { + margin-left: auto; + margin-right: auto; + height: 27rem; + overflow-y: scroll; + width: 25rem; + border-radius: .5rem; } } } + } - .socials-contacts-list { - text-align: center; - a { - margin-top: .5rem; - margin-bottom: .5rem; - } + /* enable nsfw window on nsfw page when checkbox is toggled */ + &:has(input[type="checkbox"]#view-nsfw-page:checked) { + article#nsfw { + display: block !important; } } -} - -/* enable nsfw window on nsfw page when checkbox is toggled */ -html[page-is="goopy"]:has(input[type="checkbox"]#view-nsfw-page:checked) { - #nsfw { - display: inherit !important; - } -} - -html[data-theme="light"][page-is="goopy"] { - --accent: #00d131 !important; - --link: #008d21 !important; - - .nav-baselink, .nav-accessibility { - background-color: var(--accent) !important; - color: var(--foreground) !important; - } -} - -html[data-theme="dark"][page-is="goopy"] { - --accent: #65ff88 !important; - --link: var(--accent) !important; } \ No newline at end of file diff --git a/_includes/styles/windows.css b/_includes/styles/windows.css deleted file mode 100644 index 0d8cdae..0000000 --- a/_includes/styles/windows.css +++ /dev/null @@ -1,199 +0,0 @@ -/* ╭────────────────────────────────────────────╮ -/ │ _ _ │ -/ │ __ _(_)_ __ __| | _____ _____ │ -/ │ \ \ /\ / / | '_ \ / _` |/ _ \ \ /\ / / __| │ -/ │ \ V V /| | | | | (_| | (_) \ V V /\__ \ │ -/ │ \_/\_/ |_|_| |_|\__,_|\___/ \_/\_/ |___/ │ -/ ╰────────────────────────────────────────────╯ -/ windows - related styling for the windows on pages */ - -.window { - .header { - background-color: color-mix(in srgb, var(--accent) 20%, var(--background)); - border-bottom: .1rem solid var(--accent); - display: inline-flex; - min-width: 100%; - overflow: clip; - text-align: center; - vertical-align: middle; - - .titlebar-icon { - background: color-mix(in srgb, var(--accent) 40%, transparent); - padding: .4rem .4rem .2rem 1rem; - border-right: .2rem solid var(--accent); - border-bottom: .2rem solid var(--accent); - border-bottom-right-radius: 1rem; - margin-bottom: -.2rem; - - span { - background-color: var(--foreground); - } - } - - a { - padding: .3rem 0rem .3rem .5rem; - text-decoration: none; - color: var(--foreground); - } - - a:hover { - text-decoration: underline; - } - - .icon { - transform: scale(1.1); - } - - .window-buttons { - margin-left: auto !important; - padding: .2rem .5rem .2rem 0rem; - - span { - text-align: center; - vertical-align: middle; - background-color: var(--foreground); - } - - /* maximize button (which does nothing) */ - span:nth-child(2) { - opacity: .6; - cursor: not-allowed; - } - } - - .close-button { - background: color-mix(in srgb, var(--accent) 40%, transparent); - border-bottom-left-radius: 1rem; - border-bottom: .2rem solid var(--accent); - border-left: .2rem solid var(--accent); - color: var(--foreground); - margin-bottom: -.2rem; - padding: .4rem .5rem .2rem .6rem; - transition: background .2s, background-color .2s; - } - - /* close button (animated on hover) */ - .close-button:hover { - background: var(--red); - transition: background .2s; - - span { - background-color: var(--background); - transition: background-color .2s; - } - } - } - - section, article { - padding: .8rem; - } - - animation-fill-mode: backwards; - background-color: var(--background); - border-radius: 2rem .6rem 2rem .6rem; - box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; - color: var(--foreground); - margin-bottom: 2em; - margin-left: auto; - margin-right: auto; - max-width: 60em; - outline: var(--accent) solid .15rem; - overflow: clip; - transition: .2s outline; -} - -/* window styling when hovered */ -.window:hover { - outline: var(--accent) solid .5rem; - transition: .2s outline; -} - -/* window when its the first one on the page */ -.window:first-of-type { - margin-top: 5rem; - - animation: .3s ease-out .2s 1 window-appear; - animation-fill-mode: backwards; -} - -/* rest of the windows if they exist, to finish the rest of the animations */ -.window:nth-child(2) { - animation: .3s ease-out .4s 1 window-appear; - animation-fill-mode: backwards; -} - -.window:nth-child(3) { - animation: .3s ease-out .6s 1 window-appear; - animation-fill-mode: backwards; -} - -.window:nth-child(4) { - animation: .3s ease-out .8s 1 window-appear; - animation-fill-mode: backwards; -} - -.window:nth-child(5) { - animation: .3s ease-out 1s 1 window-appear; - animation-fill-mode: backwards; -} - -.window:nth-child(6) { - animation: .3s ease-out 1.2s 1 window-appear; - animation-fill-mode: backwards; -} - -.window:nth-child(7) { - animation: .3s ease-out 1.4s 1 window-appear; - animation-fill-mode: backwards; -} - -.window:nth-child(8) { - animation: .3s ease-out 1.6s 1 window-appear; - animation-fill-mode: backwards; -} - -.window:nth-child(9) { - animation: .3s ease-out 1.8s 1 window-appear; - animation-fill-mode: backwards; -} - -.window:nth-child(10) { - animation: .3s ease-out 2s 1 window-appear; - animation-fill-mode: backwards; -} - -/* modify widths and spacing depending on the size of the display */ -@media screen and (max-width: 1083px) { - .window:not(#footer) { - .header { - .titlebar-icon { - padding: .3rem .4rem .3rem .4rem; - } - - .window-buttons { - display: none !important; - } - - .close-button { - margin-left: auto !important; - } - } - - main, section, article { - padding: .5rem; - } - - animation: unset !important; - border-bottom: var(--accent) solid .15rem; - border-left: unset !important; - border-radius: unset !important; - border-right: unset !important; - border-top: var(--accent) solid .15rem; - margin-bottom: .8em; - } - - /* window when its the first one on the page */ - .window:first-child { - margin-top: 3.4rem !important; - } -} \ No newline at end of file diff --git a/about.md b/about.md new file mode 100644 index 0000000..b29fade --- /dev/null +++ b/about.md @@ -0,0 +1,9 @@ +--- +title: about synth.download +layout: "layouts/base/base.njk" +permalink: "/about/" +--- + +{% include "layouts/pages/about/about.njk" %} + +{% include "layouts/pages/about/servers.njk" %} \ No newline at end of file diff --git a/admins.md b/admins.md index a49a707..360a34b 100644 --- a/admins.md +++ b/admins.md @@ -1,7 +1,7 @@ --- title: admins -layout: "layouts/base.njk" +layout: "layouts/base/base.njk" permalink: "/admins/" --- -{% include "layouts/admins/admins.njk" %} \ No newline at end of file +{% include "layouts/pages/admins/admins.njk" %} \ No newline at end of file diff --git a/assets/admins/zenfyr.png b/assets/admins/zenfyr.png new file mode 100644 index 0000000..cd007b4 Binary files /dev/null and b/assets/admins/zenfyr.png differ diff --git a/assets/bg.svg b/assets/bg.svg new file mode 100644 index 0000000..18bf8c0 --- /dev/null +++ b/assets/bg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/buttons/friends/authen.gif b/assets/buttons/friends/authen.gif deleted file mode 100644 index 4417487..0000000 Binary files a/assets/buttons/friends/authen.gif and /dev/null differ diff --git a/assets/buttons/friends/authenyo.gif b/assets/buttons/friends/authenyo.gif deleted file mode 100644 index 6282a2c..0000000 Binary files a/assets/buttons/friends/authenyo.gif and /dev/null differ diff --git a/assets/buttons/friends/av70.gif b/assets/buttons/friends/av70.gif deleted file mode 100644 index 2ff2354..0000000 Binary files a/assets/buttons/friends/av70.gif and /dev/null differ diff --git a/assets/buttons/friends/chloe.png b/assets/buttons/friends/chloe.png new file mode 100644 index 0000000..08de3c6 Binary files /dev/null and b/assets/buttons/friends/chloe.png differ diff --git a/assets/buttons/friends/gen.png b/assets/buttons/friends/gen.png new file mode 100644 index 0000000..1084a34 Binary files /dev/null and b/assets/buttons/friends/gen.png differ diff --git a/assets/buttons/friends/guigui.png b/assets/buttons/friends/guigui.png new file mode 100644 index 0000000..4967188 Binary files /dev/null and b/assets/buttons/friends/guigui.png differ diff --git a/assets/buttons/friends/ielenia.png b/assets/buttons/friends/ielenia.png new file mode 100644 index 0000000..80df9b4 Binary files /dev/null and b/assets/buttons/friends/ielenia.png differ diff --git a/assets/buttons/friends/madz.gif b/assets/buttons/friends/madz.gif index 4dc1e16..e8fd5f9 100644 Binary files a/assets/buttons/friends/madz.gif and b/assets/buttons/friends/madz.gif differ diff --git a/assets/buttons/friends/tauon.png b/assets/buttons/friends/tauon.png deleted file mode 100644 index 1cfb5ae..0000000 Binary files a/assets/buttons/friends/tauon.png and /dev/null differ diff --git a/assets/buttons/friends/winter.png b/assets/buttons/friends/winter.png deleted file mode 100644 index cc82eae..0000000 Binary files a/assets/buttons/friends/winter.png and /dev/null differ diff --git a/assets/fedi/isnet.png b/assets/fedi/isnet.png deleted file mode 100644 index 315bfd8..0000000 Binary files a/assets/fedi/isnet.png and /dev/null differ diff --git a/assets/fedi/mastodon.svg b/assets/fedi/mastodon.svg deleted file mode 100644 index 0f8baeb..0000000 --- a/assets/fedi/mastodon.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/assets/fedi/sharkey_sh.svg b/assets/fedi/sharkey_sh.svg deleted file mode 100644 index 3fc726c..0000000 --- a/assets/fedi/sharkey_sh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Bold.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Bold.woff2 deleted file mode 100644 index 3b73597..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Bold.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-BoldItalic.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-BoldItalic.woff2 deleted file mode 100644 index 25b2858..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-BoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraBold.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraBold.woff2 deleted file mode 100644 index 65039ac..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraBold.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraBoldItalic.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraBoldItalic.woff2 deleted file mode 100644 index 5abb72e..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraBoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraLight.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraLight.woff2 deleted file mode 100644 index 5a13603..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraLight.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraLightItalic.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraLightItalic.woff2 deleted file mode 100644 index ad1940c..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-ExtraLightItalic.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Light.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Light.woff2 deleted file mode 100644 index b1eac3f..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Light.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-LightItalic.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-LightItalic.woff2 deleted file mode 100644 index f0f492f..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-LightItalic.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Medium.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Medium.woff2 deleted file mode 100644 index e82765d..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Medium.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-MediumItalic.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-MediumItalic.woff2 deleted file mode 100644 index c9e218a..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-MediumItalic.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Regular.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Regular.woff2 deleted file mode 100644 index d2babdf..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-Regular.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-RegularItalic.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-RegularItalic.woff2 deleted file mode 100644 index dc05d06..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-RegularItalic.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-SemiBold.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-SemiBold.woff2 deleted file mode 100644 index a7d9ece..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-SemiBold.woff2 and /dev/null differ diff --git a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-SemiBoldItalic.woff2 b/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-SemiBoldItalic.woff2 deleted file mode 100644 index f911176..0000000 Binary files a/assets/fonts/AtkinsonHyperlegibleNext/AtkinsonHyperlegibleNext-SemiBoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-Black.woff2 b/assets/fonts/Inter/Inter-Black.woff2 deleted file mode 100644 index 2e73dce..0000000 Binary files a/assets/fonts/Inter/Inter-Black.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-BlackItalic.woff2 b/assets/fonts/Inter/Inter-BlackItalic.woff2 deleted file mode 100644 index d85db93..0000000 Binary files a/assets/fonts/Inter/Inter-BlackItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-Bold.woff2 b/assets/fonts/Inter/Inter-Bold.woff2 deleted file mode 100644 index b9e3cb3..0000000 Binary files a/assets/fonts/Inter/Inter-Bold.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-BoldItalic.woff2 b/assets/fonts/Inter/Inter-BoldItalic.woff2 deleted file mode 100644 index 31cd052..0000000 Binary files a/assets/fonts/Inter/Inter-BoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-ExtraBold.woff2 b/assets/fonts/Inter/Inter-ExtraBold.woff2 deleted file mode 100644 index bbd0006..0000000 Binary files a/assets/fonts/Inter/Inter-ExtraBold.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-ExtraBoldItalic.woff2 b/assets/fonts/Inter/Inter-ExtraBoldItalic.woff2 deleted file mode 100644 index 288f2de..0000000 Binary files a/assets/fonts/Inter/Inter-ExtraBoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-ExtraLight.woff2 b/assets/fonts/Inter/Inter-ExtraLight.woff2 deleted file mode 100644 index f691003..0000000 Binary files a/assets/fonts/Inter/Inter-ExtraLight.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-ExtraLightItalic.woff2 b/assets/fonts/Inter/Inter-ExtraLightItalic.woff2 deleted file mode 100644 index 3e3934d..0000000 Binary files a/assets/fonts/Inter/Inter-ExtraLightItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-Italic.woff2 b/assets/fonts/Inter/Inter-Italic.woff2 deleted file mode 100644 index 9a1ad21..0000000 Binary files a/assets/fonts/Inter/Inter-Italic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-Light.woff2 b/assets/fonts/Inter/Inter-Light.woff2 deleted file mode 100644 index f3e012a..0000000 Binary files a/assets/fonts/Inter/Inter-Light.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-LightItalic.woff2 b/assets/fonts/Inter/Inter-LightItalic.woff2 deleted file mode 100644 index 2f37009..0000000 Binary files a/assets/fonts/Inter/Inter-LightItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-Medium.woff2 b/assets/fonts/Inter/Inter-Medium.woff2 deleted file mode 100644 index fdfdcc6..0000000 Binary files a/assets/fonts/Inter/Inter-Medium.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-MediumItalic.woff2 b/assets/fonts/Inter/Inter-MediumItalic.woff2 deleted file mode 100644 index 0dc5a30..0000000 Binary files a/assets/fonts/Inter/Inter-MediumItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-Regular.woff2 b/assets/fonts/Inter/Inter-Regular.woff2 deleted file mode 100644 index 2bcd222..0000000 Binary files a/assets/fonts/Inter/Inter-Regular.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-SemiBold.woff2 b/assets/fonts/Inter/Inter-SemiBold.woff2 deleted file mode 100644 index fbae113..0000000 Binary files a/assets/fonts/Inter/Inter-SemiBold.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-SemiBoldItalic.woff2 b/assets/fonts/Inter/Inter-SemiBoldItalic.woff2 deleted file mode 100644 index d67d01c..0000000 Binary files a/assets/fonts/Inter/Inter-SemiBoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-Thin.woff2 b/assets/fonts/Inter/Inter-Thin.woff2 deleted file mode 100644 index 83bf54b..0000000 Binary files a/assets/fonts/Inter/Inter-Thin.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/Inter-ThinItalic.woff2 b/assets/fonts/Inter/Inter-ThinItalic.woff2 deleted file mode 100644 index 928da4b..0000000 Binary files a/assets/fonts/Inter/Inter-ThinItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-Black.woff2 b/assets/fonts/Inter/InterDisplay-Black.woff2 deleted file mode 100644 index 72532b2..0000000 Binary files a/assets/fonts/Inter/InterDisplay-Black.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-BlackItalic.woff2 b/assets/fonts/Inter/InterDisplay-BlackItalic.woff2 deleted file mode 100644 index de02111..0000000 Binary files a/assets/fonts/Inter/InterDisplay-BlackItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-Bold.woff2 b/assets/fonts/Inter/InterDisplay-Bold.woff2 deleted file mode 100644 index 304c31d..0000000 Binary files a/assets/fonts/Inter/InterDisplay-Bold.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-BoldItalic.woff2 b/assets/fonts/Inter/InterDisplay-BoldItalic.woff2 deleted file mode 100644 index 89d5c5a..0000000 Binary files a/assets/fonts/Inter/InterDisplay-BoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-ExtraBold.woff2 b/assets/fonts/Inter/InterDisplay-ExtraBold.woff2 deleted file mode 100644 index 4250fa0..0000000 Binary files a/assets/fonts/Inter/InterDisplay-ExtraBold.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-ExtraBoldItalic.woff2 b/assets/fonts/Inter/InterDisplay-ExtraBoldItalic.woff2 deleted file mode 100644 index d68a400..0000000 Binary files a/assets/fonts/Inter/InterDisplay-ExtraBoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-ExtraLight.woff2 b/assets/fonts/Inter/InterDisplay-ExtraLight.woff2 deleted file mode 100644 index 7d376e2..0000000 Binary files a/assets/fonts/Inter/InterDisplay-ExtraLight.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-ExtraLightItalic.woff2 b/assets/fonts/Inter/InterDisplay-ExtraLightItalic.woff2 deleted file mode 100644 index 1f1ca72..0000000 Binary files a/assets/fonts/Inter/InterDisplay-ExtraLightItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-Italic.woff2 b/assets/fonts/Inter/InterDisplay-Italic.woff2 deleted file mode 100644 index 4475f7c..0000000 Binary files a/assets/fonts/Inter/InterDisplay-Italic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-Light.woff2 b/assets/fonts/Inter/InterDisplay-Light.woff2 deleted file mode 100644 index ef7dbbf..0000000 Binary files a/assets/fonts/Inter/InterDisplay-Light.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-LightItalic.woff2 b/assets/fonts/Inter/InterDisplay-LightItalic.woff2 deleted file mode 100644 index a57c48b..0000000 Binary files a/assets/fonts/Inter/InterDisplay-LightItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-Medium.woff2 b/assets/fonts/Inter/InterDisplay-Medium.woff2 deleted file mode 100644 index f6157fa..0000000 Binary files a/assets/fonts/Inter/InterDisplay-Medium.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-MediumItalic.woff2 b/assets/fonts/Inter/InterDisplay-MediumItalic.woff2 deleted file mode 100644 index 8b2f1c2..0000000 Binary files a/assets/fonts/Inter/InterDisplay-MediumItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-Regular.woff2 b/assets/fonts/Inter/InterDisplay-Regular.woff2 deleted file mode 100644 index b5a45e8..0000000 Binary files a/assets/fonts/Inter/InterDisplay-Regular.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-SemiBold.woff2 b/assets/fonts/Inter/InterDisplay-SemiBold.woff2 deleted file mode 100644 index 6e04091..0000000 Binary files a/assets/fonts/Inter/InterDisplay-SemiBold.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-SemiBoldItalic.woff2 b/assets/fonts/Inter/InterDisplay-SemiBoldItalic.woff2 deleted file mode 100644 index 72b4743..0000000 Binary files a/assets/fonts/Inter/InterDisplay-SemiBoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-Thin.woff2 b/assets/fonts/Inter/InterDisplay-Thin.woff2 deleted file mode 100644 index 893595a..0000000 Binary files a/assets/fonts/Inter/InterDisplay-Thin.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterDisplay-ThinItalic.woff2 b/assets/fonts/Inter/InterDisplay-ThinItalic.woff2 deleted file mode 100644 index 46e1b5a..0000000 Binary files a/assets/fonts/Inter/InterDisplay-ThinItalic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterVariable-Italic.woff2 b/assets/fonts/Inter/InterVariable-Italic.woff2 deleted file mode 100644 index b3530f3..0000000 Binary files a/assets/fonts/Inter/InterVariable-Italic.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/InterVariable.woff2 b/assets/fonts/Inter/InterVariable.woff2 deleted file mode 100644 index 5a8d3e7..0000000 Binary files a/assets/fonts/Inter/InterVariable.woff2 and /dev/null differ diff --git a/assets/fonts/Inter/inter.css b/assets/fonts/Inter/inter.css deleted file mode 100644 index 3599a73..0000000 --- a/assets/fonts/Inter/inter.css +++ /dev/null @@ -1,149 +0,0 @@ -/* Original by Inter, modified by Sneexy */ -/* Variable fonts usage: -:root { font-family: "Inter", sans-serif; } -@supports (font-variation-settings: normal) { - :root { font-family: "InterVariable", sans-serif; font-optical-sizing: auto; } -} */ -@font-face { - font-family: InterVariable; - font-style: normal; - font-weight: 100 900; - font-display: swap; - src: url("InterVariable.woff2") format("woff2"); -} -@font-face { - font-family: InterVariable; - font-style: italic; - font-weight: 100 900; - font-display: swap; - src: url("InterVariable-Italic.woff2") format("woff2"); -} - -/* static fonts */ -@font-face { font-family: "Inter"; font-style: normal; font-weight: 100; font-display: swap; src: url("Inter-Thin.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: italic; font-weight: 100; font-display: swap; src: url("Inter-ThinItalic.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: normal; font-weight: 200; font-display: swap; src: url("Inter-ExtraLight.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: italic; font-weight: 200; font-display: swap; src: url("Inter-ExtraLightItalic.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: normal; font-weight: 300; font-display: swap; src: url("Inter-Light.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: italic; font-weight: 300; font-display: swap; src: url("Inter-LightItalic.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("Inter-Regular.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: italic; font-weight: 400; font-display: swap; src: url("Inter-Italic.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("Inter-Medium.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: italic; font-weight: 500; font-display: swap; src: url("Inter-MediumItalic.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("Inter-SemiBold.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: italic; font-weight: 600; font-display: swap; src: url("Inter-SemiBoldItalic.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("Inter-Bold.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: italic; font-weight: 700; font-display: swap; src: url("Inter-BoldItalic.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: normal; font-weight: 800; font-display: swap; src: url("Inter-ExtraBold.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: italic; font-weight: 800; font-display: swap; src: url("Inter-ExtraBoldItalic.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: normal; font-weight: 900; font-display: swap; src: url("Inter-Black.woff2") format("woff2"); } -@font-face { font-family: "Inter"; font-style: italic; font-weight: 900; font-display: swap; src: url("Inter-BlackItalic.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 100; font-display: swap; src: url("InterDisplay-Thin.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 100; font-display: swap; src: url("InterDisplay-ThinItalic.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 200; font-display: swap; src: url("InterDisplay-ExtraLight.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 200; font-display: swap; src: url("InterDisplay-ExtraLightItalic.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 300; font-display: swap; src: url("InterDisplay-Light.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 300; font-display: swap; src: url("InterDisplay-LightItalic.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 400; font-display: swap; src: url("InterDisplay-Regular.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 400; font-display: swap; src: url("InterDisplay-Italic.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 500; font-display: swap; src: url("InterDisplay-Medium.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 500; font-display: swap; src: url("InterDisplay-MediumItalic.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 600; font-display: swap; src: url("InterDisplay-SemiBold.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 600; font-display: swap; src: url("InterDisplay-SemiBoldItalic.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 700; font-display: swap; src: url("InterDisplay-Bold.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 700; font-display: swap; src: url("InterDisplay-BoldItalic.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 800; font-display: swap; src: url("InterDisplay-ExtraBold.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 800; font-display: swap; src: url("InterDisplay-ExtraBoldItalic.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: normal; font-weight: 900; font-display: swap; src: url("InterDisplay-Black.woff2") format("woff2"); } -@font-face { font-family: "InterDisplay"; font-style: italic; font-weight: 900; font-display: swap; src: url("InterDisplay-BlackItalic.woff2") format("woff2"); } - -@font-feature-values InterVariable { - @character-variant { - cv01: 1; cv02: 2; cv03: 3; cv04: 4; cv05: 5; cv06: 6; cv07: 7; cv08: 8; - cv09: 9; cv10: 10; cv11: 11; cv12: 12; cv13: 13; - alt-1: 1; /* Alternate one */ - alt-3: 9; /* Flat-top three */ - open-4: 2; /* Open four */ - open-6: 3; /* Open six */ - open-9: 4; /* Open nine */ - lc-l-with-tail: 5; /* Lower-case L with tail */ - simplified-u: 6; /* Simplified u */ - alt-double-s: 7; /* Alternate German double s */ - uc-i-with-serif: 8; /* Upper-case i with serif */ - uc-g-with-spur: 10; /* Capital G with spur */ - single-story-a: 11; /* Single-story a */ - compact-lc-f: 12; /* Compact f */ - compact-lc-t: 13; /* Compact t */ - } - @styleset { - ss01: 1; ss02: 2; ss03: 3; ss04: 4; ss05: 5; ss06: 6; ss07: 7; ss08: 8; - open-digits: 1; /* Open digits */ - disambiguation: 2; /* Disambiguation (with zero) */ - disambiguation-except-zero: 4; /* Disambiguation (no zero) */ - round-quotes-and-commas: 3; /* Round quotes & commas */ - square-punctuation: 7; /* Square punctuation */ - square-quotes: 8; /* Square quotes */ - circled-characters: 5; /* Circled characters */ - squared-characters: 6; /* Squared characters */ - } -} -@font-feature-values Inter { - @character-variant { - cv01: 1; cv02: 2; cv03: 3; cv04: 4; cv05: 5; cv06: 6; cv07: 7; cv08: 8; - cv09: 9; cv10: 10; cv11: 11; cv12: 12; cv13: 13; - alt-1: 1; /* Alternate one */ - alt-3: 9; /* Flat-top three */ - open-4: 2; /* Open four */ - open-6: 3; /* Open six */ - open-9: 4; /* Open nine */ - lc-l-with-tail: 5; /* Lower-case L with tail */ - simplified-u: 6; /* Simplified u */ - alt-double-s: 7; /* Alternate German double s */ - uc-i-with-serif: 8; /* Upper-case i with serif */ - uc-g-with-spur: 10; /* Capital G with spur */ - single-story-a: 11; /* Single-story a */ - compact-lc-f: 12; /* Compact f */ - compact-lc-t: 13; /* Compact t */ - } - @styleset { - ss01: 1; ss02: 2; ss03: 3; ss04: 4; ss05: 5; ss06: 6; ss07: 7; ss08: 8; - open-digits: 1; /* Open digits */ - disambiguation: 2; /* Disambiguation (with zero) */ - disambiguation-except-zero: 4; /* Disambiguation (no zero) */ - round-quotes-and-commas: 3; /* Round quotes & commas */ - square-punctuation: 7; /* Square punctuation */ - square-quotes: 8; /* Square quotes */ - circled-characters: 5; /* Circled characters */ - squared-characters: 6; /* Squared characters */ - } -} -@font-feature-values InterDisplay { - @character-variant { - cv01: 1; cv02: 2; cv03: 3; cv04: 4; cv05: 5; cv06: 6; cv07: 7; cv08: 8; - cv09: 9; cv10: 10; cv11: 11; cv12: 12; cv13: 13; - alt-1: 1; /* Alternate one */ - alt-3: 9; /* Flat-top three */ - open-4: 2; /* Open four */ - open-6: 3; /* Open six */ - open-9: 4; /* Open nine */ - lc-l-with-tail: 5; /* Lower-case L with tail */ - simplified-u: 6; /* Simplified u */ - alt-double-s: 7; /* Alternate German double s */ - uc-i-with-serif: 8; /* Upper-case i with serif */ - uc-g-with-spur: 10; /* Capital G with spur */ - single-story-a: 11; /* Single-story a */ - compact-lc-f: 12; /* Compact f */ - compact-lc-t: 13; /* Compact t */ - } - @styleset { - ss01: 1; ss02: 2; ss03: 3; ss04: 4; ss05: 5; ss06: 6; ss07: 7; ss08: 8; - open-digits: 1; /* Open digits */ - disambiguation: 2; /* Disambiguation (with zero) */ - disambiguation-except-zero: 4; /* Disambiguation (no zero) */ - round-quotes-and-commas: 3; /* Round quotes & commas */ - square-punctuation: 7; /* Square punctuation */ - square-quotes: 8; /* Square quotes */ - circled-characters: 5; /* Circled characters */ - squared-characters: 6; /* Squared characters */ - } -} diff --git a/assets/fonts/JetBrainsMono/AUTHORS.txt b/assets/fonts/JetBrainsMono/AUTHORS.txt deleted file mode 100755 index 8814941..0000000 --- a/assets/fonts/JetBrainsMono/AUTHORS.txt +++ /dev/null @@ -1,10 +0,0 @@ -# This is the official list of project authors for copyright purposes. -# This file is distinct from the CONTRIBUTORS.txt file. -# See the latter for an explanation. -# -# Names should be added to this file as: -# Name or Organization - -JetBrains <> -Philipp Nurullin -Konstantin Bulenkov diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-Bold.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-Bold.woff2 deleted file mode 100644 index 4917f43..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-Bold.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-BoldItalic.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-BoldItalic.woff2 deleted file mode 100644 index 536d3f7..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-BoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraBold.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraBold.woff2 deleted file mode 100644 index 8f88c54..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraBold.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraBoldItalic.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraBoldItalic.woff2 deleted file mode 100644 index d1478ba..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraBoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraLight.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraLight.woff2 deleted file mode 100644 index b97239f..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraLight.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraLightItalic.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraLightItalic.woff2 deleted file mode 100644 index be01aac..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-ExtraLightItalic.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-Italic.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-Italic.woff2 deleted file mode 100644 index d60c270..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-Italic.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-Light.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-Light.woff2 deleted file mode 100644 index 6538498..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-Light.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-LightItalic.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-LightItalic.woff2 deleted file mode 100644 index 66ca3d2..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-LightItalic.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-Medium.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-Medium.woff2 deleted file mode 100644 index 669d04c..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-Medium.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-MediumItalic.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-MediumItalic.woff2 deleted file mode 100644 index 80cfd15..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-MediumItalic.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-Regular.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-Regular.woff2 deleted file mode 100644 index 40da427..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-Regular.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-SemiBold.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-SemiBold.woff2 deleted file mode 100644 index 5ead7b0..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-SemiBold.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-SemiBoldItalic.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-SemiBoldItalic.woff2 deleted file mode 100644 index c5dd294..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-SemiBoldItalic.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-Thin.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-Thin.woff2 deleted file mode 100644 index 17270e4..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-Thin.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/JetBrainsMono-ThinItalic.woff2 b/assets/fonts/JetBrainsMono/JetBrainsMono-ThinItalic.woff2 deleted file mode 100644 index a643215..0000000 Binary files a/assets/fonts/JetBrainsMono/JetBrainsMono-ThinItalic.woff2 and /dev/null differ diff --git a/assets/fonts/JetBrainsMono/OFL.txt b/assets/fonts/JetBrainsMono/OFL.txt deleted file mode 100644 index 8bee414..0000000 --- a/assets/fonts/JetBrainsMono/OFL.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -https://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/assets/icons/forgejo.svg b/assets/icons/forgejo.svg new file mode 100644 index 0000000..804b05e --- /dev/null +++ b/assets/icons/forgejo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/freshrss.svg b/assets/icons/freshrss.svg new file mode 100644 index 0000000..266ab97 --- /dev/null +++ b/assets/icons/freshrss.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/iceshrimp.svg b/assets/icons/iceshrimp.svg new file mode 100644 index 0000000..9fdcac2 --- /dev/null +++ b/assets/icons/iceshrimp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/mastodon.svg b/assets/icons/mastodon.svg new file mode 100644 index 0000000..dfc59ab --- /dev/null +++ b/assets/icons/mastodon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/phanpy.svg b/assets/icons/phanpy.svg new file mode 100644 index 0000000..d57ea22 --- /dev/null +++ b/assets/icons/phanpy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/redlib.svg b/assets/icons/redlib.svg new file mode 100644 index 0000000..16f73b5 --- /dev/null +++ b/assets/icons/redlib.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/sharkey.svg b/assets/icons/sharkey.svg new file mode 100644 index 0000000..078273b --- /dev/null +++ b/assets/icons/sharkey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/vaultwarden.svg b/assets/icons/vaultwarden.svg new file mode 100644 index 0000000..a37dc0e --- /dev/null +++ b/assets/icons/vaultwarden.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/xmpp.svg b/assets/icons/xmpp.svg new file mode 100644 index 0000000..0a91e4a --- /dev/null +++ b/assets/icons/xmpp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/icons/ask.svg b/assets/synth.download/icons/ask.svg new file mode 100644 index 0000000..9b79ec6 --- /dev/null +++ b/assets/synth.download/icons/ask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/icons/atproto.svg b/assets/synth.download/icons/atproto.svg new file mode 100644 index 0000000..cf64b77 --- /dev/null +++ b/assets/synth.download/icons/atproto.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/icons/boopkey.svg b/assets/synth.download/icons/boopkey.svg new file mode 100644 index 0000000..edd1707 --- /dev/null +++ b/assets/synth.download/icons/boopkey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/icons/icesynth.svg b/assets/synth.download/icons/icesynth.svg new file mode 100644 index 0000000..1943b96 --- /dev/null +++ b/assets/synth.download/icons/icesynth.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/icons/mastodon.svg b/assets/synth.download/icons/mastodon.svg new file mode 100644 index 0000000..60cb1c6 --- /dev/null +++ b/assets/synth.download/icons/mastodon.svg @@ -0,0 +1,54 @@ + + diff --git a/assets/synth.download/icons/merpstodon.svg b/assets/synth.download/icons/merpstodon.svg new file mode 100644 index 0000000..f238dda --- /dev/null +++ b/assets/synth.download/icons/merpstodon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/icons/pl-fe.svg b/assets/synth.download/icons/pl-fe.svg new file mode 100644 index 0000000..e0f15cc --- /dev/null +++ b/assets/synth.download/icons/pl-fe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/icons/redlib.svg b/assets/synth.download/icons/redlib.svg new file mode 100644 index 0000000..ea32189 --- /dev/null +++ b/assets/synth.download/icons/redlib.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/icons/search.svg b/assets/synth.download/icons/search.svg new file mode 100644 index 0000000..36bc49f --- /dev/null +++ b/assets/synth.download/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/icons/twitch.svg b/assets/synth.download/icons/twitch.svg new file mode 100644 index 0000000..57c7e6b --- /dev/null +++ b/assets/synth.download/icons/twitch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/synth.download/sharkey/grid_bg.png b/assets/synth.download/sharkey/grid_bg.png deleted file mode 100644 index a182036..0000000 Binary files a/assets/synth.download/sharkey/grid_bg.png and /dev/null differ diff --git a/donate.md b/donate.md index 60b9d7e..14d9545 100644 --- a/donate.md +++ b/donate.md @@ -1,7 +1,7 @@ --- title: donate -layout: "layouts/donate/base.njk" +layout: "layouts/base/base.njk" permalink: "/donate/" --- -{% include "layouts/donate/donate.njk" %} \ No newline at end of file +{% include "layouts/pages/donate/donate.njk" %} \ No newline at end of file diff --git a/eleventy.config.js b/eleventy.config.js index 1a890d9..8b9119a 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -4,9 +4,9 @@ import eleventyNavigationPlugin from "@11ty/eleventy-navigation"; import syntaxHighlight from "@11ty/eleventy-plugin-syntaxhighlight"; export default function(eleventyConfig) { - eleventyConfig.addPassthroughCopy({ "sneexy/notebook/": "~sneexy/notebook/" }); // notebook page generated by quartz seperately - see https://forged.synth.download/sneexy/notebook - eleventyConfig.addPassthroughCopy("custard.html"); eleventyConfig.addPassthroughCopy(".well-known/"); // static identity stuff + eleventyConfig.addPassthroughCopy({ "_includes/other/custard.html": "custard.html" }); + eleventyConfig.addPassthroughCopy({ "sneexy/notebook/": "~sneexy/notebook/" }); // notebook page generated by quartz seperately - see https://forged.synth.download/sneexy/notebook eleventyConfig.addPlugin(eleventyNavigationPlugin); eleventyConfig.addPlugin(syntaxHighlight); eleventyConfig.addPassthroughCopy("assets/"); diff --git a/fediverse.md b/fediverse.md new file mode 100644 index 0000000..b94b8c6 --- /dev/null +++ b/fediverse.md @@ -0,0 +1,15 @@ +--- +title: fediverse +layout: "layouts/base/base.njk" +permalink: "/fediverse/" +--- + +{% include "layouts/pages/fediverse/intro.njk" %} + +{% include "layouts/pages/fediverse/instances.njk" %} + +{% include "layouts/pages/fediverse/rules.njk" %} + +{% include "layouts/pages/fediverse/bubble.njk" %} + +{% include "layouts/pages/fediverse/moderation.njk" %} \ No newline at end of file diff --git a/gen.sh b/gen.sh deleted file mode 100755 index 8773268..0000000 --- a/gen.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -rm -rf ./_site -npx @11ty/eleventy -npx -y pagefind --site _site diff --git a/iceshrimp.md b/iceshrimp.md deleted file mode 100644 index a792728..0000000 --- a/iceshrimp.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: icesynth! -layout: "layouts/base.njk" -permalink: "/iceshrimp/" ---- - -{% include "layouts/fediverse/iceshrimp/intro.njk" %} - -{% include "layouts/fediverse/iceshrimp/info.njk" %} - -{% include "layouts/fediverse/iceshrimp/features.njk" %} - -{% include "layouts/fediverse/rules.njk" %} - -{% include "layouts/fediverse/iceshrimp/fe.njk" %} - -{% include "layouts/fediverse/iceshrimp/tips.njk" %} - -{% include "layouts/fediverse/iceshrimp/bubble.njk" %} - -{% include "layouts/fediverse/moderation.njk" %} \ No newline at end of file diff --git a/index.md b/index.md index e6da5bf..8d35ea5 100644 --- a/index.md +++ b/index.md @@ -1,7 +1,7 @@ --- title: home -layout: "layouts/base.njk" +layout: "layouts/base/base.njk" permalink: "/index.html" --- -{% include "layouts/home/intro.njk" %} \ No newline at end of file +{% include "layouts/pages/index.njk" %} \ No newline at end of file diff --git a/mastodon.md b/mastodon.md deleted file mode 100644 index addc6b4..0000000 --- a/mastodon.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: merpstodon! -layout: "layouts/base.njk" -permalink: "/mastodon/" ---- - -{% include "layouts/fediverse/mastodon/intro.njk" %} - -{% include "layouts/fediverse/mastodon/info.njk" %} - -{% include "layouts/fediverse/mastodon/features.njk" %} - -{% include "layouts/fediverse/rules.njk" %} - -{% include "layouts/fediverse/iceshrimp/bubble.njk" %} - -{% include "layouts/fediverse/moderation.njk" %} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c3d6e24..e175868 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,8 +13,8 @@ "@11ty/eleventy-navigation": "^1.0.4", "@11ty/eleventy-plugin-rss": "^2.0.4", "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2", - "lightningcss": "^1.30.1", - "terser": "^5.43.1" + "lightningcss": "^1.30.2", + "terser": "^5.44.0" } }, "node_modules/@11ty/dependency-tree": { @@ -133,9 +133,9 @@ } }, "node_modules/@11ty/eleventy-plugin-bundle": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.6.tgz", - "integrity": "sha512-wlEIMa1SEe6HE6ZyREEnPQiTw72337a2MPkyn0D1IzrqHrKU9euB17mv27LnnnyKvMJamCCqtU0985F5yyDL8g==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.7.tgz", + "integrity": "sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA==", "license": "MIT", "dependencies": { "@11ty/eleventy-utils": "^2.0.2", @@ -271,9 +271,9 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.30", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -542,9 +542,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -577,9 +577,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "license": "Apache-2.0", "engines": { "node": ">=8" @@ -1103,9 +1103,9 @@ } }, "node_modules/lightningcss": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", - "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", "license": "MPL-2.0", "dependencies": { "detect-libc": "^2.0.3" @@ -1118,22 +1118,43 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-darwin-arm64": "1.30.1", - "lightningcss-darwin-x64": "1.30.1", - "lightningcss-freebsd-x64": "1.30.1", - "lightningcss-linux-arm-gnueabihf": "1.30.1", - "lightningcss-linux-arm64-gnu": "1.30.1", - "lightningcss-linux-arm64-musl": "1.30.1", - "lightningcss-linux-x64-gnu": "1.30.1", - "lightningcss-linux-x64-musl": "1.30.1", - "lightningcss-win32-arm64-msvc": "1.30.1", - "lightningcss-win32-x64-msvc": "1.30.1" + "lightningcss-android-arm64": "1.30.2", + "lightningcss-darwin-arm64": "1.30.2", + "lightningcss-darwin-x64": "1.30.2", + "lightningcss-freebsd-x64": "1.30.2", + "lightningcss-linux-arm-gnueabihf": "1.30.2", + "lightningcss-linux-arm64-gnu": "1.30.2", + "lightningcss-linux-arm64-musl": "1.30.2", + "lightningcss-linux-x64-gnu": "1.30.2", + "lightningcss-linux-x64-musl": "1.30.2", + "lightningcss-win32-arm64-msvc": "1.30.2", + "lightningcss-win32-x64-msvc": "1.30.2" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", - "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", "cpu": [ "arm64" ], @@ -1151,9 +1172,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", - "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", "cpu": [ "x64" ], @@ -1171,9 +1192,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", - "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", "cpu": [ "x64" ], @@ -1191,9 +1212,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", - "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", "cpu": [ "arm" ], @@ -1211,9 +1232,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", - "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", "cpu": [ "arm64" ], @@ -1231,9 +1252,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", - "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", "cpu": [ "arm64" ], @@ -1251,9 +1272,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", - "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", "cpu": [ "x64" ], @@ -1271,9 +1292,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", - "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", "cpu": [ "x64" ], @@ -1291,9 +1312,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", - "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", "cpu": [ "arm64" ], @@ -1311,9 +1332,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", - "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "version": "1.30.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", "cpu": [ "x64" ], @@ -1340,9 +1361,9 @@ } }, "node_modules/liquidjs": { - "version": "10.21.1", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.21.1.tgz", - "integrity": "sha512-NZXmCwv3RG5nire3fmIn9HsOyJX3vo+ptp0yaXUHAMzSNBhx74Hm+dAGJvscUA6lNqbLuYfXgNavRQ9UbUJhQQ==", + "version": "10.24.0", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.24.0.tgz", + "integrity": "sha512-TAUNAdgwaAXjjcUFuYVJm9kOVH7zc0mTKxsG9t9Lu4qdWjB2BEblyVIYpjWcmJLMGgiYqnGNJjpNMHx0gp/46A==", "license": "MIT", "dependencies": { "commander": "^10.0.0" @@ -1352,7 +1373,7 @@ "liquidjs": "bin/liquid.js" }, "engines": { - "node": ">=14" + "node": ">=16" }, "funding": { "type": "opencollective", @@ -1366,9 +1387,9 @@ "license": "MIT" }, "node_modules/luxon": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.1.tgz", - "integrity": "sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz", + "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==", "license": "MIT", "engines": { "node": ">=12" @@ -1608,9 +1629,9 @@ } }, "node_modules/posthtml": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", - "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.7.tgz", + "integrity": "sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==", "license": "MIT", "dependencies": { "posthtml-parser": "^0.11.0", @@ -1727,9 +1748,9 @@ } }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -1846,13 +1867,13 @@ } }, "node_modules/terser": { - "version": "5.43.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", - "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", + "version": "5.44.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz", + "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.14.0", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -1870,13 +1891,13 @@ "license": "MIT" }, "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" diff --git a/package.json b/package.json index 33dae12..e9b1bc0 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,9 @@ "description": "synth.download's website, powered by eleventy.", "main": "index.js", "scripts": { + "build-clean": "rm -rf ./_site && npx @11ty/eleventy && npx -y pagefind --site _site", + "build": "npx @11ty/eleventy && npx -y pagefind --site _site", + "serve": "npx @11ty/eleventy --serve", "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { @@ -19,7 +22,7 @@ "@11ty/eleventy-navigation": "^1.0.4", "@11ty/eleventy-plugin-rss": "^2.0.4", "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.2", - "lightningcss": "^1.30.1", - "terser": "^5.43.1" + "lightningcss": "^1.30.2", + "terser": "^5.44.0" } } diff --git a/privacy.md b/privacy.md index bc5586b..137c86a 100644 --- a/privacy.md +++ b/privacy.md @@ -1,7 +1,7 @@ --- title: privacy policy -layout: "layouts/base.njk" +layout: "layouts/base/base.njk" permalink: "/privacy/" --- -{% include "layouts/privacy.njk" %} \ No newline at end of file +{% include "layouts/pages/privacy.njk" %} \ No newline at end of file diff --git a/services.md b/services.md index 04537a7..369da23 100644 --- a/services.md +++ b/services.md @@ -1,7 +1,7 @@ --- title: services -layout: "layouts/base.njk" +layout: "layouts/base/base.njk" permalink: "/services/" --- -{% include "layouts/services/services.njk" %} \ No newline at end of file +{% include "layouts/pages/services/services.njk" %} \ No newline at end of file diff --git a/sharkey.md b/sharkey.md deleted file mode 100644 index 8c431b4..0000000 --- a/sharkey.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: beepkey! -layout: "layouts/base.njk" -permalink: "/sharkey/" ---- - -{% include "layouts/fediverse/sharkey/intro.njk" %} - -{% include "layouts/fediverse/sharkey/info.njk" %} - -{% include "layouts/fediverse/sharkey/features.njk" %} - -{% include "layouts/fediverse/rules.njk" %} - -{% include "layouts/fediverse/sharkey/tips.njk" %} - -{% include "layouts/fediverse/sharkey/bubble.njk" %} - -{% include "layouts/fediverse/moderation.njk" %} \ No newline at end of file diff --git a/sneexy/nsfw.md b/sneexy/nsfw.md index 6f91b91..ab26a78 100644 --- a/sneexy/nsfw.md +++ b/sneexy/nsfw.md @@ -1,9 +1,9 @@ --- title: ruben's nsfw interests -layout: "layouts/sneexy/base.njk" +layout: "layouts/base/sneexy/base.njk" permalink: "/subdomain/sneexy/nsfw/" --- -{% include "layouts/sneexy/nsfw/intro.njk" %} +{% include "layouts/pages/sneexy/nsfw/intro.njk" %} -{% include "layouts/sneexy/nsfw/nsfw.njk" %} +{% include "layouts/pages/sneexy/nsfw/nsfw.njk" %} diff --git a/sneexy/ruben.md b/sneexy/ruben.md index 0e9a574..18cd504 100644 --- a/sneexy/ruben.md +++ b/sneexy/ruben.md @@ -1,11 +1,11 @@ --- title: ruben lore -layout: "layouts/sneexy/base.njk" +layout: "layouts/base/sneexy/base.njk" permalink: "/subdomain/sneexy/ruben/" --- -{% include "layouts/sneexy/ruben/intro.njk" %} +{% include "layouts/pages/sneexy/ruben/intro.njk" %} -{% include "layouts/sneexy/ruben/features.njk" %} +{% include "layouts/pages/sneexy/ruben/features.njk" %} -{% include "layouts/sneexy/ruben/personality.njk" %} \ No newline at end of file +{% include "layouts/pages/sneexy/ruben/personality.njk" %} \ No newline at end of file diff --git a/sneexy/sneexy.md b/sneexy/sneexy.md index 4e2cab0..f8ba476 100644 --- a/sneexy/sneexy.md +++ b/sneexy/sneexy.md @@ -1,15 +1,15 @@ --- title: about sneexy -layout: "layouts/sneexy/base.njk" +layout: "layouts/base/sneexy/base.njk" permalink: "/subdomain/sneexy/" --- -{% include "layouts/sneexy/intro.njk" %} +{% include "layouts/pages/sneexy/intro.njk" %} -{% include "layouts/sneexy/about.njk" %} +{% include "layouts/pages/sneexy/about.njk" %} -{% include "layouts/sneexy/socials.njk" %} +{% include "layouts/pages/sneexy/socials.njk" %} -{% include "layouts/sneexy/buttons.njk" %} +{% include "layouts/pages/sneexy/buttons.njk" %} -{% include "layouts/sneexy/funfacts.njk" %} \ No newline at end of file +{% include "layouts/pages/sneexy/funfacts.njk" %} \ No newline at end of file diff --git a/tos.md b/tos.md index cbb5a79..038126a 100644 --- a/tos.md +++ b/tos.md @@ -1,7 +1,7 @@ --- title: terms of service -layout: "layouts/base.njk" +layout: "layouts/base/base.njk" permalink: "/tos/" --- -{% include "layouts/tos.njk" %} \ No newline at end of file +{% include "layouts/pages/tos.njk" %} \ No newline at end of file