diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 00000000..feab4a32
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,28 @@
+// For format details, see https://aka.ms/devcontainer.json. For config options, see the
+// README at: https://github.com/devcontainers/templates/tree/main/src/alpine
+{
+ "name": "Alpine",
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
+ "image": "mcr.microsoft.com/devcontainers/base:alpine",
+
+ // Features to add to the dev container. More info: https://containers.dev/features.
+ // "features": {},
+
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
+ // "forwardPorts": [],
+
+ // Use 'postCreateCommand' to run commands after the container is created.
+ // "postCreateCommand": "uname -a",
+
+ "customizations": {
+ // Configure properties specific to VS Code.
+ "vscode": {
+ "extensions": [
+ "ritwickdey.liveserver"
+ ]
+ }
+ }
+
+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+ // "remoteUser": "root"
+}
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 00000000..fb7b1386
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,6 @@
+# These are supported funding model platforms
+
+github: sethcottle
+patreon: sethcottle
+ko_fi: sethcottle
+custom: [https://buymeacoffee.com/seth, https://paypal.me/sethcottle]
diff --git a/.gitignore b/.gitignore
index e43b0f98..a036416d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
.DS_Store
+.idea
+.devcontainer
\ No newline at end of file
diff --git a/LICENSE.md b/LICENSE.md
index 03231cc6..bfe6bc4e 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,5 +1,5 @@
MIT License
-Copyright 2019-2021 Seth Cottle
+Copyright 2019-2024 Seth Cottle
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
diff --git a/README.md b/README.md
index 8af38fee..91c316fc 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,104 @@
-This is a fork of [LittleLink](https://littlelink.io/) integrating
-
-- [LittleLink](https://github.com/sethcottle/littlelink)
-- [LittleLink Extended](https://github.com/sethcottle/littlelink-extended)
+
+# LittleLink
+The DIY self-hosted LinkTree alternative. LittleLink has more than 100 branded button styles you can easily use, with more regularly added by our community in this repo and in [LittleLink Extended](https://github.com/sethcottle/littlelink-extended).
---
-Littlelink is a simple dashboard of personal web links.
+### π Themes and Accessibility
+LittleLink offers `auto`, `light`, and `dark` themes right out of the box. If the default color schemes don't match your preference, you can easily customize them by updating the values in `style.css`. You can set any of the themes right in `index.html`. To enhance visual accessibility in both `light` and `dark` modes, buttons lacking sufficient contrast with the background are outlined with an inverse stroke to ensure visibility. While LittleLink emphasizes accessibility, it's important to acknowledge that not all brands incorporated into LittleLink achieve this standard. Branded buttons that come into LittleLink always retain the original essence of the brand and some branded buttons might fall short of optimal accessibility in terms of contrast.
+
+
+
+---
+### π₯ Performance
+
+
+
+LittleLink epitomizes simplicity and minimalism. When evaluating the [LittleLink sample page](https://littlelink.io/sample/seth) (which mirrors a typical LittleLink setup for an individual) through tools such as [Google PageSpeed Insights](https://pagespeed.web.dev/analysis/https-littlelink-io-sample-seth/17ex80ryq4?form_factor=mobile), showcases LittleLink's excellence with 100/100 in Performance, Accessibility, Best Practices, and SEO. My initial vision for LittleLink was to craft it from the fundamentals. LittleLink leverages it's own vanilla `css` to remove the unnecessary bloat you would get from using a large framework for a page that requires nothing more than simplicity.
+
+---
+### βοΈ Deploy
+
+
+
+No need for gulp, npm, or anything else to make LittleLink workβit uses the bare essentials. You can automatically fork and deploy LittleLink with [Vercel](https://vercel.com/), [Netlify](https://www.netlify.com/), or [Amplify](https://aws.amazon.com/amplify) using the button below. LittleLink is also easy to host through [GitHub Pages](https://pages.github.com/) or on your home lab server, CDN, or other frontend hosting services. To edit, all you need is a little basic HTML knowledge to add a link to the exisiting buttons or you can create your own. See our [adding custom buttons to your own fork wiki](https://github.com/sethcottle/littlelink/wiki/Adding-custom-buttons-to-your-own-fork). It's simple, promise. π€
+
+---
+##### One-Click Deployments
+
+[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fsethcottle%2Flittlelink&project-name=littlelink&repository-name=littlelink)
+
+[](https://app.netlify.com/start/deploy?repository=https://github.com/sethcottle/littlelink)
+
+[](https://console.aws.amazon.com/amplify/home#/deploy?repo=https://github.com/sethcottle/littlelink)
+
+---
+
+### π€ Contributions
+Please reference the [submitting a new brand to LittleLink wiki](https://github.com/sethcottle/littlelink/wiki/Submitting-a-new-brand-to-LittleLink) before opening a PR.
+
+---
+### π¦ Community Extras
+
+#### πΈ LittleLink Extended
+Looking for more niche services to add to your copy of LittleLink? Check out [LittleLink Extended](https://github.com/sethcottle/littlelink-extended). Users can add more niche services to this repository to help keep the core LittleLink repository less cluttered and more focused on delivering branded experiences for the majority of users.
+
+#### π¨ Figma
+Duplicate the [LittleLink Template on Figma Community](https://www.figma.com/community/file/846568099968305613) to help plan out and design your LittleLink page.
+
+[](https://www.figma.com/community/file/846568099968305613)
+
+#### π Docker
+β’ [Techno Tim](https://github.com/timothystewart6) is building [LittleLink-Server](https://github.com/techno-tim/littlelink-server). Check out [his video](https://youtu.be/42SqfI_AjXU)!
+
+β’ [Drew](https://github.com/davisdre) is building a [super simple Docker implementation of LittleLink](https://github.com/davisdre/littlelink).
+
+#### ποΈ Misc
+β’ [Julian](https://github.com/JulianPrieber) is building [LinkStack](https://github.com/LinkStackOrg/LinkStack), which is a fork of [Khashayar](https://github.com/khashayarzavosh)'s [LittleLink Admin](https://github.com/khashayarzavosh/admin-littlelink).
+
+---
+
+### π Supporters
+You can support LittleLink by [buying me a coffee](https://www.buymeacoffee.com/seth). You can also have your name or your company added to this section and the supporters page of the [LittleLink.io](https://littlelink.io) website.
+
+#### π’ Business Supporters
+β’ **[links.dev](https://github.com/fatih-yavuz/links.dev)**
+
+[](https://www.buymeacoffee.com/seth/e/50574)
+
+#### β¨ Individual Supporters
+β’ **[Drew Davis](https://connect.davisdre.me)**
+
+β’ **[Robotter112](https://robotter112.de/)**
+
+[](https://www.buymeacoffee.com/seth/e/50573)
+
+#### π GitHub Sponsors
+β’ **[Your Name Here](https://github.com/sponsors/sethcottle)**
+
+[](https://github.com/sponsors/sethcottle)
+
+#### β€οΈ Patreon Members
+β’ **[Your Name Here](https://www.patreon.com/sethcottle)**
+
+[](https://www.patreon.com/sethcottle)
+
+
+#### π₯° More Ways to Support LittleLink
+[](https://www.buymeacoffee.com/seth/)
+
+[](https://ko-fi.com/sethcottle)
+
+[](https://paypal.me/sethcottle/)
+
+---
+
+### π Analytics
+
+To help build a more privacy focused product, we recommend using [Fathom Analytics](https://usefathom.com/ref/EQVZMV)*. [View our Fathom analytics dashboard](https://app.usefathom.com/share/xbmnwxxl/littlelink.io#/?filters=%5B%5D&range=last_7_days&site=2251799827005303)**.
+
+###### * This is a referral link. Using this link to sign up for Fathom is an easy way to help support LittleLink!
+
+###### ** Analytics in this dashboard start May 03, 2022. View this [Google Sheets file](https://docs.google.com/spreadsheets/d/1GL4SroAdH-OZphBVR5z-BoSukHIEVJfao25q_e9-Ii8/edit?usp=sharing) with the generic unique pageview data from Google Analytics.
+
+[](https://usefathom.com/ref/EQVZMV)
diff --git a/VERSION.md b/VERSION.md
new file mode 100644
index 00000000..75e2009c
--- /dev/null
+++ b/VERSION.md
@@ -0,0 +1,54 @@
+# LittleLink Version History
+
+## Current Version: v3.0.1
+
+### v3.0.1 - 11/13/2024
+- Removed Trakt logo from `images/icons` since this now lives in LittleLink Extended
+- Favicon update for `privacy.html`
+
+### v3.0.0 - 11/13/2024
+A complete modernization of LittleLink focusing on accessibility, maintainability, and more modern web standards.
+
+#### Major Changes
+- Complete rebuild of CSS architecture
+ - Moved away from Skeleton CSS dependency to custom, purpose-built CSS
+ - Improved maintainability with modular CSS structure
+ - Enhanced dark mode and auto theming implementation
+ - Enhanced `brands.css`
+
+- Accessibility Improvements
+ - Improved keyboard navigation throughout
+ - Enhanced screen reader compatibility
+ - Better focus management and visible focus states
+ - Proper ARIA labels and semantic HTML structure
+
+- HTML Modernization
+ - Rebuilt `index.html`
+ - Rebuilt `privacy.html`
+ - Optimized meta tags and SEO structure
+
+#### Developer Experience
+- Better documented codebase
+- Simplified customization process
+- Improved maintainability
+- More consistent standards
+- Added VERSION.md so you know what version of LittleLink you downloaded
+
+#### Brand Changes
+- Updated PayPal button color
+- Updated Discord button color
+- Updated YouTube button color
+- Updated Pinterest button color
+- Updated Ko-fi button color and updated their logo
+- Updated Medium logo
+- Updated WordPress button color
+- Moved NGL to LittleLink Extended
+- Moved Redbubble to LittleLink Extended
+- Moved Revolut to LittleLink Extended
+- Moved Trakt to LittleLink Extended
+- Moved Untapped to LittleLink Extended
+- Moved Upwork to LittleLink Extended
+
+---
+For the complete history of changes, please visit:
+https://github.com/sethcottle/littlelink/releases
diff --git a/css/brands.css b/css/brands.css
index 36c52f1e..d3955484 100644
--- a/css/brands.css
+++ b/css/brands.css
@@ -1,640 +1,593 @@
/*
-* littlelink.io
-* Skeleton V2.0.4
-* Copyright 2014, Dave Gamache
-* www.getskeleton.com
-* Free to use under the MIT license.
+* LittleLink Button Styles
+* https://littlelink.io
+* Free to use under the MIT license
* http://www.opensource.org/licenses/mit-license.php
-* 12/29/2014
*/
-/*
-* Built using on:
-* Skeleton V2.0.4
-* Copyright 2014, Dave Gamache
-* www.getskeleton.com
-* Free to use under the MIT license.
-* http://www.opensource.org/licenses/mit-license.php
-* 12/29/2014
-*/
-
-/* Table of contents
-ββββββββββββββββββββββββββββββββββββββββββββββββββ
-
-- Buttons
-- Brand Styles
-
-*/
-
-/* Buttons
+/* Brand Button Base Styles
ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-
-.button,
-button {
- display: inline-block;
- text-decoration: none;
- height: 48px;
- text-align: center;
- vertical-align: middle;
- font-size: 18px;
- width: 300px;
- font-weight: 700;
- line-height: 48px;
- letter-spacing: 0.1px;
- white-space: wrap;
- border-radius: 8px;
- cursor: pointer;
-}
-button:hover,
-.button:focus {
- color: #333;
- border-color: #888;
- outline: 0;
-}
-.button.button-primary {
- color: #fff;
- filter: brightness(90%);
-}
-.button.button-primary:hover,
-.button.button-primary:focus {
- color: #fff;
- filter: brightness(90%);
+/* Only include brand-specific button styling here */
+.button,button {
+ color:var(--button-text,#000000);
+ background-color:var(--button-background,transparent);
+ border:var(--button-border,none);
+ transition:filter 0.2s ease,transform 0.2s ease;
}
-/* Brand Icons
+/* Global Button Hover Effect
ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+.button:hover,button:hover {
+ filter:brightness(90%);
+ transform:translateY(-1px);
+}
+/* Button Icons
+ββββββββββββββββββββββββββββββββββββββββββββββββββ */
.icon {
- padding: 0px 8px 3.5px 0px;
- vertical-align: middle;
- width: 20px;
- height: 20px;
+ filter:var(--icon-filter,none);
}
-/* Brand Styles
+/* Brand-Specific Styles
ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-/* Default (this is great for your own brand color!) */
+/* Default */
.button.button-default {
- color: #ffffff;
- background-color: #0085ff;
-}
-.button.button-default:hover,
-.button.button-default:focus {
- filter: brightness(90%);
+ --button-text:#ffffff;
+ --button-background:#2457F5;
+ --button-border:1px solid #ffffff;
}
/* Amazon */
-.button.button-amazon {
- color: #000000;
- background-color: #ffffff;
+.button-amazon {
+ --button-text:#000000;
+ --button-background:#FFFFFF;
+ --button-border:1px solid #212121;
}
-.button.button-amazon:hover,
-.button.button-amazon:focus {
- filter: brightness(90%);
+
+/* Amazon Music */
+.button-amazon-music {
+ --button-text:#000000;
+ --button-background:#25D1DA;
}
/* Apple App Store */
-.button.button-appstore {
- color: #ffffff;
- background-color: #000000;
+.button-appstore {
+ --button-text:#FFFFFF;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
}
-.button.button-appstore:hover,
-.button.button-appstore:focus {
- filter: brightness(90%);
+
+/* Apple Music */
+.button-apple-music {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Apple Music Alt */
+.button-apple-music-alt {
+ --button-text:#ffffff;
+ background-image:linear-gradient(to bottom,#FB5C74,#FA233B);
+}
+
+/* Apple Podcasts */
+.button-apple-podcasts {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Apple Podcasts Alt */
+.button-apple-podcasts-alt {
+ --button-text:#ffffff;
+ background-image:linear-gradient(to bottom,#F452FF,#832BC1);
}
/* Bandcamp */
-.button.button-bandcamp {
- color: #ffffff;
- background-color: #1d9fc3;
+.button-bandcamp {
+ --button-text:#ffffff;
+ --button-background:#1d9fc3;
}
-.button.button-bandcamp:hover,
-.button.button-bandcamp:focus {
- filter: brightness(90%);
+
+/* Behance */
+.button-behance {
+ --button-text:#ffffff;
+ --button-background:#0057FF;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Bluesky */
+.button-bluesky {
+ --button-text:#FFFFFF;
+ --button-background:#1185FE;
+}
+
+/* Bluesky Alt */
+.button-bluesky-alt {
+ --button-text:#000000;
+ --button-background:#FFFFFF;
+ --button-border:1px solid #000000;
}
/* Buy Me a Coffee */
-.button.button-coffee {
- color: #100a26;
- background-color: #ffdd00;
-}
-.button.button-coffee:hover,
-.button.button-coffee:focus {
- filter: brightness(90%);
+.button-coffee {
+ --button-text:#000000;
+ --button-background:#ffdd00;
}
-/* Ko-fi */
-.button.button-ko-fi {
- color: #ffffff;
- background-color: #13C3FF;
+/* Cal.com */
+.button-cal {
+ --button-text:#FFFFFF;
+ --button-background:#292929;
+ --button-border:1px solid #FFFFFF;
}
-.button.button-ko-fi:hover,
-.button.button-ko-fi:focus {
- filter: brightness(90%);
+
+/* Calendly */
+.button-calendly {
+ --button-text:#FFFFFF;
+ --button-background:#006BFF;
}
/* Cash App */
-.button.button-cashapp {
- color: #ffffff;
- background-image: linear-gradient(to bottom, #00d64b, #00c244);
-}
-.button.button-cashapp:hover,
-.button.button-cashapp:focus {
- filter: brightness(90%);
+.button-cash-app {
+ --button-text:#ffffff;
+ background-image:linear-gradient(to bottom,#00d64b,#00c244);
}
/* dev.to */
-.button.button-dev-to {
- color: #000000;
- background-color: #f5f5f5;
+.button-dev-to {
+ --button-text:#000000;
+ --button-background:#f5f5f5;
+ --button-border:1px solid #212121;
}
-.button.button-dev-to:hover,
-.button.button-dev-to:focus {
- filter: brightness(90%);
+
+/* Discogs */
+.button-discogs {
+ --button-text:#000000;
+ --button-background:#FFFFFF;
+ --button-border:1px solid #000000;
+}
+
+/* Discogs Alt */
+.button-discogs-alt {
+ --button-text:#FFFFFF;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
}
/* Discord */
-.button.button-discord {
- color: #ffffff;
- background-color: #5865f2;
+.button-discord {
+ --button-text:#ffffff;
+ --button-background:#5865F2;
}
-.button.button-discord:hover,
-.button.button-discord:focus {
- filter: brightness(90%);
+
+/* Dribbble */
+.button-dribbble {
+ --button-text:#000000;
+ --button-background:#FFFFFF;
+ --button-border:1px solid #212121;
}
/* Etsy */
-.button.button-etsy {
- color: #ffffff;
- background-color: #F45800;
-}
-.button.button-etsy:hover,
-.button.button-etsy:focus {
- filter: brightness(90%);
+.button-etsy {
+ --button-text:#ffffff;
+ --button-background:#F45800;
}
/* Facebook */
-.button.button-faceb {
- color: #ffffff;
- background-color: #1877f2;
-}
-.button.button-faceb:hover,
-.button.button-faceb:focus {
- filter: brightness(90%);
+.button-faceb {
+ --button-text:#ffffff;
+ --button-background:#1877f2;
}
/* Facebook Messenger */
-.button.button-messenger {
- color: #ffffff;
- background-image: linear-gradient(
- 25deg,
- #0099ff,
- #5f5dff,
- #a033ff,
- #c740cc,
- #ff5280,
- #ff7061
- );
-}
-.button.button-messenger:hover,
-.button.button-messenger:focus {
- filter: brightness(90%);
+.button-messenger {
+ --button-text:#ffffff;
+ background-image:linear-gradient(25deg,#0099ff,#5f5dff,#a033ff,#c740cc,#ff5280,#ff7061);
}
/* Figma */
-.button.button-figma {
- color: #ffffff;
- background-color: #000000;
+.button-figma {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
}
-.button.button-figma:hover,
-.button.button-figma:focus {
- filter: brightness(90%);
+
+/* Fiverr */
+.button-fiverr {
+ --button-text:#ffffff;
+ --button-background:#1DBF73;
}
/* Flickr */
-.button.button-flickr {
- color: #ffffff;
- background-color: #000000;
-}
-.button.button-flickr:hover,
-.button.button-flickr:focus {
- filter: brightness(90%);
+.button-flickr {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
}
-/* Github */
-.button.button-github {
- color: #ffffff;
- background-color: #000000;
-}
-.button.button-github:hover,
-.button.button-github:focus {
- filter: brightness(90%);
+/* GitHub */
+.button-github {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
}
-/* Gitlab */
-.button.button-gitlab {
- color: #ffffff;
- background-color: #6151b2;
+/* GitLab */
+.button-gitlab {
+ --button-text:#ffffff;
+ --button-background:#6151b2;
}
-.button.button-gitlab:hover,
-.button.button-gitlab:focus {
- filter: brightness(90%);
+
+/* GoFundMe */
+.button-gofundme {
+ --button-text:#ffffff;
+ --button-background:#02A95C;
}
/* Goodreads */
-.button.button-goodreads {
- color: #333333;
- background-color: #f3f1e6;
+.button-goodreads {
+ --button-text:#333333;
+ --button-background:#f3f1e6;
+ --button-border:1px solid #212121;
}
-.button.button-goodreads:hover,
-.button.button-goodreads:focus {
- filter: brightness(90%);
+
+/* Google Black */
+.button-google-black {
+ --button-text:#FFFFFF;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
}
/* Google Play Store */
-.button.button-playstore {
- color: #FFFFFF;
- background-color: #000000;
+.button-playstore {
+ --button-text:#FFFFFF;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
}
-.button.button-playstore:hover,
-.button.button-playstore:focus {
- filter: brightness(90%);
+
+/* Google Scholar */
+.button-google-scholar {
+ --button-text:#000000;
+ --button-background:#FFFFFF;
+ --button-border:1px solid #212121;
+}
+
+/* Hashnode */
+.button-hashnode {
+ --button-text:#000000;
+ --button-background:#ffffff;
+ --button-border:1px solid #212121;
}
/* Instagram */
-.button.button-instagram {
- color: #ffffff;
- background-image: linear-gradient(-135deg, #1400c8, #b900b4, #f50000);
-}
-.button.button-instagram:hover,
-.button.button-instagram:focus {
- filter: brightness(90%);
+.button-instagram {
+ --button-text:#ffffff;
+ background-image:linear-gradient(-135deg,#1400c8,#b900b4,#f50000);
}
-/* kickstarter */
-.button.button-kickstarter {
- color: #ffffff;
- background-color: #05ce78;
+/* Kick */
+.button-kick {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #ffffff;
}
-.button.button-kickstarter:hover,
-.button.button-kickstarter:focus {
- filter: brightness(90%);
+
+/* Kick Alt */
+.button-kick-alt {
+ --button-text:#000000;
+ --button-background:#01e701;
+}
+
+/* Kickstarter */
+.button-kickstarter {
+ --button-text:#ffffff;
+ --button-background:#05ce78;
}
/* Kit */
-.button.button-kit {
- color: #ffffff;
- background-color: #000000;
-}
-.button.button-kit:hover,
-.button.button-kit:focus {
- filter: brightness(90%);
+.button-kit {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
}
-/* LinkedIn */
-.button.button-linked {
- color: #ffffff;
- background-color: #2867b2;
-}
-.button.button-linked:hover,
-.button.button-linked:focus {
- filter: brightness(90%);
+/* Ko-fi */
+.button-ko-fi {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
}
-/* Mastodon */
-.button.button-mastodon {
- color: #ffffff;
- background-color: #1f232b;
-}
-.button.button-mastodon:hover,
-.button.button-mastodon:focus {
- filter: brightness(90%);
-}
-
-/* Medium */
-.button.button-medium {
- color: #ffffff;
- background-color: #000000;
-}
-.button.button-medium:hover,
-.button.button-medium:focus {
- filter: brightness(90%);
-}
-
-/* Notion */
-.button.button-notion {
- color: #000000;
- border-style: solid;
- border-color: #000000;
- border-width: 2px;
- background-color: #ffffff;
-}
-.button.button-notion:hover,
-.button.button-notion:focus {
- filter: brightness(90%);
-}
-
-/* OnlyFans */
-.button.button-onlyfans {
- color: #ffffff;
- background-color: #00AEEF;
-}
-.button.button-onlyfans:hover,
-.button.button-onlyfans:focus {
- filter: brightness(90%);
-}
-
-/* Patreon */
-.button.button-patreon {
- color: #ffffff;
- background-color: #ff424d;
-}
-.button.button-patreon:hover,
-.button.button-patreon:focus {
- filter: brightness(90%);
-}
-
-/* PayPal */
-.button.button-paypal {
- color: #ffffff;
- background-color: #003087;
-}
-.button.button-paypal:hover,
-.button.button-paypal:focus {
- filter: brightness(90%);
-}
-
-/* Pinterest */
-.button.button-pinterest {
- color: #000000;
- background-color: #ffe2eb;
-}
-.button.button-pinterest:hover,
-.button.button-pinterest:focus {
- filter: brightness(90%);
-}
-
-/* Producthunt */
-.button.button-producthunt {
- color: #da552f;
- border-style: solid;
- border-color: #da552f;
- border-width: 2px;
- background-color: #ffffff;
-}
-.button.button-producthunt:hover,
-.button.button-producthunt:focus {
- filter: brightness(90%);
-}
-
-/* Reddit */
-.button.button-reddit {
- color: #000000;
- background-color: #d7dfe2;
-}
-.button.button-reddit:hover,
-.button.button-reddit:focus {
- filter: brightness(90%);
-}
-
-/* Signal */
-.button.button-signal {
- color: #ffffff;
- background-color: #3a76f0;
-}
-.button.button-signal:hover,
-.button.button-signal:focus {
- filter: brightness(90%);
-}
-
-/* Skoob */
-.button.button-skoob {
- color: #ffffff;
- background-color: #3189c8;
-}
-.button.button-skoob:hover,
-.button.button-skoob:focus {
- filter: brightness(90%);
-}
-
-/* Snapchat */
-.button.button-snapchat {
- color: #000000;
- background-color: #fffc00;
-}
-.button.button-snapchat:hover,
-.button.button-snapchat:focus {
- filter: brightness(90%);
-}
-
-/* SoundCloud */
-.button.button-soundcloud {
- color: #ffffff;
- background-color: #ff5500;
-}
-.button.button-soundcloud:hover,
-.button.button-soundcloud:focus {
- filter: brightness(90%);
-}
-
-/* Spotify */
-.button.button-spotify {
- color: #191414;
- background-color: #1db954;
-}
-.button.button-spotify:hover,
-.button.button-spotify:focus {
- filter: brightness(90%);
-}
-
-/* Steam */
-.button.button-steam {
- color: #ffffff;
- background-color: #171a21;
-}
-.button.button-steam:hover,
-.button.button-steam:focus {
- filter: brightness(90%);
-}
-
-/* Strava */
-.button.button-strava {
- color: #ffffff;
- background-color: #fc5200;
-}
-.button.button-strava:hover,
-.button.button-strava:focus {
- filter: brightness(90%);
-}
-
-/* Telegram */
-.button.button-telegram {
- color: #ffffff;
- background-color: #3faee8;
-}
-.button.button-telegram:hover,
-.button.button-telegram:focus {
- filter: brightness(90%);
-}
-
-/* Threema */
-.button.button-threema {
- color: #000000;
- background-color: #3fe669;
-}
-.button.button-threema:hover,
-.button.button-threema:focus {
- filter: brightness(90%);
-}
-
-/* TikTok */
-.button.button-tiktok {
- color: #ffffff;
- background-color: #000000;
-}
-.button.button-tiktok:hover,
-.button.button-tiktok:focus {
- filter: brightness(90%);
-}
-
-/* Trello */
-.button.button-trello {
- color: #ffffff;
- background-color: #0065ff;
-}
-.button.button-trello:hover,
-.button.button-trello:focus {
- filter: brightness(90%);
-}
-
-/* Tumblr */
-.button.button-tumb {
- color: #ffffff;
- background-color: #131313;
-}
-.button.button-tumb:hover,
-.button.button-tumb:focus {
- filter: brightness(90%);
-}
-
-/* Twitch */
-.button.button-twitch {
- color: #ffffff;
- background-color: #9146ff;
-}
-.button.button-twitch:hover,
-.button.button-twitch:focus {
- filter: brightness(90%);
-}
-
-/* Twitter */
-.button.button-twit {
- color: #ffffff;
- background-color: #1da1f2;
-}
-.button.button-twit:hover,
-.button.button-twit:focus {
- filter: brightness(90%);
-}
-
-/* Venmo */
-.button.button-venmo {
- color: #ffffff;
- background-color: #008CFF;
-}
-.button.button-venmo:hover,
-.button.button-venmo:focus {
- filter: brightness(90%);
-}
-
-/* Untappd */
-.button.button-untappd {
- color: #ffffff;
- background-color: #ffc000;
-}
-.button.button-untappd:hover,
-.button.button-untappd:focus {
- filter: brightness(90%);
-}
-
-/* Vimeo */
-.button.button-vimeo {
- color: #ffffff;
- background-color: #1ab7ea;
-}
-.button.button-vimeo:hover,
-.button.button-vimeo:focus {
- filter: brightness(90%);
-}
-
-/* VRChat */
-.button.button-vrchat {
- color: #000000;
- background-color: #ffffff;
- border: 2px solid black;
-}
-.button.button-vrchat:hover,
-.button.button-vrchat:focus {
- filter: brightness(90%);
-}
-
-/* Website */
-.button.button-web {
- color: #ffffff;
- background-color: #000000;
-}
-.button.button-web:hover,
-.button.button-web:focus {
- filter: brightness(90%);
-}
-
-/* WhatsApp */
-.button.button-whatsapp {
- color: #ffffff;
- background-color: #455a64;
-}
-.button.button-whatsapp:hover,
-.button.button-whatsapp:focus {
- filter: brightness(90%);
-}
-
-/* Wordpress */
-.button.button-wordpress {
- color: #ffffff;
- background-color: #21759b;
-}
-.button.button-wordpress:hover,
-.button.button-wordpress:focus {
- filter: brightness(90%);
-}
-
-/* Xing */
-.button.button-xing {
- color: #ffffff;
- background-color: #026466;
-}
-.button.button-xing:hover,
-.button.button-xing:focus {
- filter: brightness(90%);
-}
-
-/* YouTube */
-.button.button-yt {
- color: #ffffff;
- background-color: #000000;
-}
-.button.button-yt:hover,
-.button.button-yt:focus {
- filter: brightness(90%);
+/* Last.fm */
+.button-last-fm {
+ --button-text:#ffffff;
+ --button-background:#D51007;
}
/* Letterboxd */
-.button.button-letterboxd {
- color: #ffffff;
- background-color: #2c3440;
+.button-letterboxd {
+ --button-text:#ffffff;
+ --button-background:#2c3440;
+ --button-border:1px solid #FFFFFF;
}
-.button.button-letterboxd:hover,
-.button.button-letterboxd:focus {
- filter: brightness(90%);
+
+/* Line */
+.button-line {
+ --button-text:#FFFFFF;
+ --button-background:#06C755;
}
+
+/* LinkedIn */
+.button-linked {
+ --button-text:#ffffff;
+ --button-background:#2867b2;
+}
+
+/* Mailchimp */
+.button-mailchimp {
+ --button-text:#000000;
+ --button-background:#FFE01B;
+}
+
+/* Mastodon */
+.button-mastodon {
+ --button-text:#ffffff;
+ --button-background:#17063B;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Medium */
+.button-medium {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Microsoft */
+.button-microsoft {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Notion */
+.button-notion {
+ --button-text:#000000;
+ --button-background:#ffffff;
+ --button-border:1px solid #212121;
+}
+
+/* OnlyFans */
+.button-onlyfans {
+ --button-text:#ffffff;
+ --button-background:#00AEEF;
+}
+
+/* Patreon */
+.button-patreon {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* PayPal */
+.button-paypal {
+ --button-text:#ffffff;
+ --button-background:#002991;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Pinterest */
+.button-pinterest {
+ --button-text:#000000;
+ --button-background:#ffffff;
+ --button-border:1px solid #212121;
+}
+
+/* Product Hunt */
+.button-product-hunt {
+ --button-text:#000000;
+ --button-background:#ffffff;
+ --button-border:1px solid #212121;
+}
+
+/* Read.cv */
+.button-read-cv {
+ --button-text:#FFFFFF;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Reddit */
+.button-reddit {
+ --button-text:#FFFFFF;
+ --button-background:#FF4500;
+}
+
+/* Shop */
+.button-shop {
+ --button-text:#ffffff;
+ --button-background:#5A31F4;
+}
+
+/* Signal */
+.button-signal {
+ --button-text:#ffffff;
+ --button-background:#3a76f0;
+}
+
+/* Slack */
+.button-slack {
+ --button-text:#000000;
+ --button-background:#FFFFFF;
+ --button-border:1px solid #212121;
+}
+
+/* Snapchat */
+.button-snapchat {
+ --button-text:#000000;
+ --button-background:#fffc00;
+}
+
+/* SoundCloud */
+.button-soundcloud {
+ --button-text:#ffffff;
+ --button-background:#ff5500;
+}
+
+/* Spotify */
+.button-spotify {
+ --button-text:#191414;
+ --button-background:#1db954;
+}
+
+/* Spotify Alt */
+.button-spotify-alt {
+ --button-text:#FFFFFF;
+ --button-background:#191414;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Square */
+.button-square {
+ --button-text:#FFFFFF;
+ --button-background:#006AFF;
+}
+
+/* Stack Overflow */
+.button-stack-overflow {
+ --button-text:#000000;
+ --button-background:#FFFFFF;
+ --button-border:1px solid #000000;
+}
+
+/* Steam */
+.button-steam {
+ --button-text:#ffffff;
+ background-image:linear-gradient(90deg,#08BBFF,#2B75FF);
+}
+
+/* Steam Alt */
+.button-steam-alt {
+ --button-text:#ffffff;
+ background-image:linear-gradient(90deg,#09172a,#072a57,#0c5085);
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Strava */
+.button-strava {
+ --button-text:#ffffff;
+ --button-background:#fc5200;
+}
+
+/* Substack */
+.button-substack {
+ --button-text:#ffffff;
+ --button-background:#FF6719;
+}
+
+/* Telegram */
+.button-telegram {
+ --button-text:#ffffff;
+ --button-background:#3faee8;
+}
+
+/* Threads */
+.button-threads {
+ --button-text:#FFFFFF;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Threema */
+.button-threema {
+ --button-text:#000000;
+ --button-background:#3fe669;
+}
+
+/* TikTok */
+.button-tiktok {
+ --button-text:#ffffff;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Trello */
+.button-trello {
+ --button-text:#ffffff;
+ --button-background:#0065ff;
+}
+
+/* Tumblr */
+.button-tumb {
+ --button-text:#ffffff;
+ --button-background:#131313;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Twitch */
+.button-twitch {
+ --button-text:#ffffff;
+ --button-background:#9146ff;
+}
+
+/* Unsplash */
+.button-unsplash {
+ --button-text:#000000;
+ --button-background:#ffffff;
+ --button-border:1px solid #212121;
+}
+
+/* Venmo */
+.button-venmo {
+ --button-text:#ffffff;
+ --button-background:#008CFF;
+}
+
+/* Vimeo */
+.button-vimeo {
+ --button-text:#ffffff;
+ --button-background:#1ab7ea;
+}
+
+/* VSCO */
+.button-vsco {
+ --button-text:#FFFFFF;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* WhatsApp */
+.button-whatsapp {
+ --button-text:#ffffff;
+ --button-background:#455a64;
+}
+
+/* WordPress */
+.button-wordpress {
+ --button-text:#ffffff;
+ --button-background:#3858E9;
+}
+
+/* X */
+.button-x {
+ --button-text:#FFFFFF;
+ --button-background:#000000;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* YouTube */
+.button-yt {
+ --button-text:#ffffff;
+ --button-background:#282828;
+ --button-border:1px solid #FFFFFF;
+}
+
+/* Zoom */
+.button-zoom {
+ --button-text:#ffffff;
+ --button-background:#0B5CFF;
+ --button-border:1px solid #FFFFFF;
+}
\ No newline at end of file
diff --git a/css/normalize.css b/css/normalize.css
deleted file mode 100644
index 458eea1e..00000000
--- a/css/normalize.css
+++ /dev/null
@@ -1,427 +0,0 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
-
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- * user zoom.
- */
-
-html {
- font-family: sans-serif; /* 1 */
- -ms-text-size-adjust: 100%; /* 2 */
- -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/**
- * Remove default margin.
- */
-
-body {
- margin: 0;
-}
-
-/* HTML5 display definitions
- ========================================================================== */
-
-/**
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
- * Correct `block` display not defined for `details` or `summary` in IE 10/11
- * and Firefox.
- * Correct `block` display not defined for `main` in IE 11.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
- display: block;
-}
-
-/**
- * 1. Correct `inline-block` display not defined in IE 8/9.
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
- */
-
-audio,
-canvas,
-progress,
-video {
- display: inline-block; /* 1 */
- vertical-align: baseline; /* 2 */
-}
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-
-audio:not([controls]) {
- display: none;
- height: 0;
-}
-
-/**
- * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
- */
-
-[hidden],
-template {
- display: none;
-}
-
-/* Links
- ========================================================================== */
-
-/**
- * Remove the gray background color from active links in IE 10.
- */
-
-a {
- background-color: transparent;
-}
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-
-a:active,
-a:hover {
- outline: 0;
-}
-
-/* Text-level semantics
- ========================================================================== */
-
-/**
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
- */
-
-abbr[title] {
- border-bottom: 1px dotted;
-}
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
- */
-
-b,
-strong {
- font-weight: bold;
-}
-
-/**
- * Address styling not present in Safari and Chrome.
- */
-
-dfn {
- font-style: italic;
-}
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari, and Chrome.
- */
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-/**
- * Address styling not present in IE 8/9.
- */
-
-mark {
- background: #ff0;
- color: #000;
-}
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-
-small {
- font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sup {
- top: -0.5em;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-/* Embedded content
- ========================================================================== */
-
-/**
- * Remove border when inside `a` element in IE 8/9/10.
- */
-
-img {
- border: 0;
-}
-
-/**
- * Correct overflow not hidden in IE 9/10/11.
- */
-
-svg:not(:root) {
- overflow: hidden;
-}
-
-/* Grouping content
- ========================================================================== */
-
-/**
- * Address margin not present in IE 8/9 and Safari.
- */
-
-figure {
- margin: 1em 40px;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- */
-
-hr {
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- height: 0;
-}
-
-/**
- * Contain overflow in all browsers.
- */
-
-pre {
- overflow: auto;
-}
-
-/**
- * Address odd `em`-unit font size rendering in all browsers.
- */
-
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-
-/* Forms
- ========================================================================== */
-
-/**
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
- * styling of `select`, unless a `border` property is set.
- */
-
-/**
- * 1. Correct color not being inherited.
- * Known issue: affects color of disabled elements.
- * 2. Correct font properties not being inherited.
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
- */
-
-button,
-input,
-optgroup,
-select,
-textarea {
- color: inherit; /* 1 */
- font: inherit; /* 2 */
- margin: 0; /* 3 */
-}
-
-/**
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
- */
-
-button {
- overflow: visible;
-}
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
- * Correct `select` style inheritance in Firefox.
- */
-
-button,
-select {
- text-transform: none;
-}
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- * and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- * `input` and others.
- */
-
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button; /* 2 */
- cursor: pointer; /* 3 */
-}
-
-/**
- * Re-set default cursor for disabled elements.
- */
-
-button[disabled],
-html input[disabled] {
- cursor: default;
-}
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
-}
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-
-input {
- line-height: normal;
-}
-
-/**
- * It's recommended that you don't attempt to style these elements.
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
- *
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
- * 2. Remove excess padding in IE 8/9/10.
- */
-
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
- * `font-size` values of the `input`, it causes the cursor style of the
- * decrement button to change from `default` to `text`.
- */
-
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
- * (include `-moz` to future-proof).
- */
-
-input[type="search"] {
- -webkit-appearance: textfield; /* 1 */
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box; /* 2 */
- box-sizing: content-box;
-}
-
-/**
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
- * Safari (but not Chrome) clips the cancel button when the search input has
- * padding (and `textfield` appearance).
- */
-
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/**
- * Define consistent border, margin, and padding.
- */
-
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
-}
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-
-legend {
- border: 0; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Remove default vertical scrollbar in IE 8/9/10/11.
- */
-
-textarea {
- overflow: auto;
-}
-
-/**
- * Don't inherit the `font-weight` (applied by a rule above).
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
- */
-
-optgroup {
- font-weight: bold;
-}
-
-/* Tables
- ========================================================================== */
-
-/**
- * Remove most spacing between table cells.
- */
-
-table {
- border-collapse: collapse;
- border-spacing: 0;
-}
-
-td,
-th {
- padding: 0;
-}
diff --git a/css/reset.css b/css/reset.css
new file mode 100644
index 00000000..d158daf5
--- /dev/null
+++ b/css/reset.css
@@ -0,0 +1,91 @@
+/*
+* LittleLink Reset
+* A minimal CSS reset for LittleLink
+*/
+
+/* Box sizing rules */
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+/* Remove default margin */
+body,
+h1,
+h2,
+h3,
+h4,
+p,
+figure,
+blockquote,
+dl,
+dd {
+ margin: 0;
+}
+
+/* Remove list styles on ul, ol elements */
+ul,
+ol {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+/* Set core root defaults */
+html:focus-within {
+ scroll-behavior: smooth;
+}
+
+/* Set core body defaults */
+body {
+ min-height: 100vh;
+ text-rendering: optimizeSpeed;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+/* Make images easier to work with */
+img,
+picture {
+ max-width: 100%;
+ display: block;
+}
+
+/* Inherit fonts for inputs and buttons */
+input,
+button,
+textarea,
+select {
+ font: inherit;
+}
+
+/* Remove all animations and transitions for people that prefer not to see them */
+@media (prefers-reduced-motion: reduce) {
+ html:focus-within {
+ scroll-behavior: auto;
+ }
+ *,
+ *::before,
+ *::after {
+ animation-duration: 0.01ms !important;
+ animation-iteration-count: 1 !important;
+ transition-duration: 0.01ms !important;
+ scroll-behavior: auto !important;
+ }
+}
+
+/* Modern focus styles */
+:focus:not(:focus-visible) {
+ outline: none;
+}
+
+:focus-visible {
+ outline: 2px solid #2457F5;
+ outline-offset: 2px;
+}
+
+/* Remove touch callout on iOS */
+a {
+ -webkit-touch-callout: none;
+}
\ No newline at end of file
diff --git a/css/skeleton-auto.css b/css/skeleton-auto.css
deleted file mode 100644
index 6d9d188e..00000000
--- a/css/skeleton-auto.css
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
-* littlelink V1
-* https://littlelink.com
-* Free to use under the MIT license.
-* http://www.opensource.org/licenses/mit-license.php
-* 12/21/2019
-*
-* Built using:
-*
-* Skeleton V2.0.4
-* Copyright 2014, Dave Gamache
-* www.getskeleton.com
-* Free to use under the MIT license.
-* http://www.opensource.org/licenses/mit-license.php
-* 12/29/2014
-*/
-
-/* Table of contents
-ββββββββββββββββββββββββββββββββββββββββββββββββββ
-- Grid
-- Base Styles
-- Typography
-- Links
-- Code
-- Spacing
-- Utilities
-*
-* You'll find the button css in css/brands.css.
-*
-*/
-
-/* Grid
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-.container {
- position: relative;
- width: 100%;
- max-width: 600px;
- text-align: center;
- margin: 0 auto;
- padding: 0 20px;
- box-sizing: border-box;
-}
-.container-left {
- position: relative;
- width: 100%;
- max-width: 600px;
- text-align: left;
- margin: 0 auto;
- padding: 0 20px;
- box-sizing: border-box;
-}
-.column {
- position: center;
- width: 100%;
- float: center;
- box-sizing: border-box;
-}
-
-/* For devices larger than 400px */
-@media (min-width: 400px) {
- .container {
- width: 85%;
- padding: 0;
- }
-}
-
-/* For devices larger than 550px */
-@media (min-width: 550px) {
- .container {
- width: 80%;
- }
- .column,
- .columns {
- margin-left: 0;
- }
- .column:first-child,
- .columns:first-child {
- margin-left: 0;
- }
-}
-
-/* Base Styles
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-/* NOTE
-html is set to 62.5% so that all the REM measurements throughout Skeleton
-are based on 10px sizing. So basically 1.5rem = 15px :) */
-
-html {
- font-size: 100%;
- color-scheme: light dark;
-}
-body {
- font-size: 18px;
- line-height: 24px;
- font-weight: 400;
- font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial,
- sans-serif;
-}
-
-/* Typography
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-h1 {
- margin-top: 0;
- margin-bottom: 16px;
- font-weight: 800;
-}
-h1 {
- font-size: 24px;
- line-height: 64px;
- letter-spacing: 0;
-}
-
-/* Larger than phablet */
-@media (min-width: 550px) {
- h1 {
- font-size: 48px;
- line-height: 96px;
- }
-}
-
-p {
- margin-top: 0;
-}
-
-/* Links
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-a {
- color: #0085ff;
-}
-a:hover {
- color: #0085ff;
-}
-
-/* Code
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-code {
- padding: 0.2rem 0.5rem;
- margin: 0 0.2rem;
- font-size: 90%;
- white-space: nowrap;
- background: #f1f1f1;
- border: 1px solid #e1e1e1;
- border-radius: 4px;
-}
-pre > code {
- display: block;
- padding: 1rem 1.5rem;
- white-space: pre;
-}
-
-/* Spacing
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-button,
-.button {
- margin-bottom: 1rem;
-}
-input,
-textarea,
-select,
-fieldset {
- margin-bottom: 1.5rem;
-}
-pre,
-blockquote,
-dl,
-figure,
-p,
-ol {
- margin-bottom: 2.5rem;
-}
-
-/* Utilities
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-.u-full-width {
- width: 100%;
- box-sizing: border-box;
-}
-.u-max-full-width {
- max-width: 100%;
- box-sizing: border-box;
-}
-.u-pull-right {
- float: right;
-}
-.u-pull-left {
- float: left;
-}
-
-/* Misc
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-hr {
- margin-top: 3rem;
- margin-bottom: 3.5rem;
- border-width: 0;
- border-top: 1px solid #e1e1e1;
-}
-/* Radius values:
-
-10%-40%: Squircles
-50% (default): True circle
-*/
-.avatar {
- width: 128px;
- height: 128px;
- object-fit: cover;
- background-position: center;
- border-radius: 50%;
-}
\ No newline at end of file
diff --git a/css/skeleton-dark.css b/css/skeleton-dark.css
deleted file mode 100644
index fe9a7ae1..00000000
--- a/css/skeleton-dark.css
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
-* littlelink V1
-* https://littlelink.com
-* Free to use under the MIT license.
-* http://www.opensource.org/licenses/mit-license.php
-* 12/21/2019
-*
-* Built using:
-*
-* Skeleton V2.0.4
-* Copyright 2014, Dave Gamache
-* www.getskeleton.com
-* Free to use under the MIT license.
-* http://www.opensource.org/licenses/mit-license.php
-* 12/29/2014
-*/
-
-/* Table of contents
-ββββββββββββββββββββββββββββββββββββββββββββββββββ
-- Grid
-- Base Styles
-- Typography
-- Links
-- Code
-- Spacing
-- Utilities
-*
-* You'll find the button css in css/brands.css.
-*
-*/
-
-/* Grid
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-.container {
- position: relative;
- width: 100%;
- max-width: 600px;
- text-align: center;
- margin: 0 auto;
- padding: 0 20px;
- box-sizing: border-box;
-}
-.container-left {
- position: relative;
- width: 100%;
- max-width: 600px;
- text-align: left;
- margin: 0 auto;
- padding: 0 20px;
- box-sizing: border-box;
-}
-.column {
- position: center;
- width: 100%;
- float: center;
- box-sizing: border-box;
-}
-
-/* For devices larger than 400px */
-@media (min-width: 400px) {
- .container {
- width: 85%;
- padding: 0;
- }
-}
-
-/* For devices larger than 550px */
-@media (min-width: 550px) {
- .container {
- width: 80%;
- }
- .column,
- .columns {
- margin-left: 0;
- }
- .column:first-child,
- .columns:first-child {
- margin-left: 0;
- }
-}
-
-/* Base Styles
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-/* NOTE
-html is set to 62.5% so that all the REM measurements throughout Skeleton
-are based on 10px sizing. So basically 1.5rem = 15px :) */
-
-html {
- font-size: 100%;
- color-scheme: dark;
-}
-body {
- font-size: 18px;
- line-height: 24px;
- font-weight: 400;
- font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial,
- sans-serif;
-}
-
-/* Typography
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-h1 {
- margin-top: 0;
- margin-bottom: 16px;
- font-weight: 800;
-}
-h1 {
- font-size: 24px;
- line-height: 64px;
- letter-spacing: 0;
-}
-
-/* Larger than phablet */
-@media (min-width: 550px) {
- h1 {
- font-size: 48px;
- line-height: 96px;
- }
-}
-
-p {
- margin-top: 0;
-}
-
-/* Links
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-a {
- color: #0085ff;
-}
-a:hover {
- color: #0085ff;
-}
-
-/* Code
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-code {
- padding: 0.2rem 0.5rem;
- margin: 0 0.2rem;
- font-size: 90%;
- white-space: nowrap;
- background: #f1f1f1;
- border: 1px solid #e1e1e1;
- border-radius: 4px;
-}
-pre > code {
- display: block;
- padding: 1rem 1.5rem;
- white-space: pre;
-}
-
-/* Spacing
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-button,
-.button {
- margin-bottom: 1rem;
-}
-input,
-textarea,
-select,
-fieldset {
- margin-bottom: 1.5rem;
-}
-pre,
-blockquote,
-dl,
-figure,
-p,
-ol {
- margin-bottom: 2.5rem;
-}
-
-/* Utilities
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-.u-full-width {
- width: 100%;
- box-sizing: border-box;
-}
-.u-max-full-width {
- max-width: 100%;
- box-sizing: border-box;
-}
-.u-pull-right {
- float: right;
-}
-.u-pull-left {
- float: left;
-}
-
-/* Misc
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-hr {
- margin-top: 3rem;
- margin-bottom: 3.5rem;
- border-width: 0;
- border-top: 1px solid #e1e1e1;
-}
-/* Radius values:
-
-10%-40%: Squircles
-50% (default): True circle
-*/
-.avatar {
- width: 128px;
- height: 128px;
- object-fit: cover;
- background-position: center;
- border-radius: 50%;
-}
\ No newline at end of file
diff --git a/css/skeleton-light.css b/css/skeleton-light.css
deleted file mode 100644
index de3fd8e4..00000000
--- a/css/skeleton-light.css
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
-* littlelink V1
-* https://littlelink.com
-* Free to use under the MIT license.
-* http://www.opensource.org/licenses/mit-license.php
-* 12/21/2019
-*
-* Built using:
-*
-* Skeleton V2.0.4
-* Copyright 2014, Dave Gamache
-* www.getskeleton.com
-* Free to use under the MIT license.
-* http://www.opensource.org/licenses/mit-license.php
-* 12/29/2014
-*/
-
-/* Table of contents
-ββββββββββββββββββββββββββββββββββββββββββββββββββ
-- Grid
-- Base Styles
-- Typography
-- Links
-- Code
-- Spacing
-- Utilities
-*
-* You'll find the button css in css/brands.css.
-*
-*/
-
-/* Grid
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-.container {
- position: relative;
- width: 100%;
- max-width: 600px;
- text-align: center;
- margin: 0 auto;
- padding: 0 20px;
- box-sizing: border-box;
-}
-.container-left {
- position: relative;
- width: 100%;
- max-width: 600px;
- text-align: left;
- margin: 0 auto;
- padding: 0 20px;
- box-sizing: border-box;
-}
-.column {
- position: center;
- width: 100%;
- float: center;
- box-sizing: border-box;
-}
-
-/* For devices larger than 400px */
-@media (min-width: 400px) {
- .container {
- width: 85%;
- padding: 0;
- }
-}
-
-/* For devices larger than 550px */
-@media (min-width: 550px) {
- .container {
- width: 80%;
- }
- .column,
- .columns {
- margin-left: 0;
- }
- .column:first-child,
- .columns:first-child {
- margin-left: 0;
- }
-}
-
-/* Base Styles
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-/* NOTE
-html is set to 62.5% so that all the REM measurements throughout Skeleton
-are based on 10px sizing. So basically 1.5rem = 15px :) */
-
-html {
- font-size: 100%;
- color-scheme: light;
-}
-body {
- font-size: 18px;
- line-height: 24px;
- font-weight: 400;
- font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial,
- sans-serif;
-}
-
-/* Typography
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-h1 {
- margin-top: 0;
- margin-bottom: 16px;
- font-weight: 800;
-}
-h1 {
- font-size: 24px;
- line-height: 64px;
- letter-spacing: 0;
-}
-
-/* Larger than phablet */
-@media (min-width: 550px) {
- h1 {
- font-size: 48px;
- line-height: 96px;
- }
-}
-
-p {
- margin-top: 0;
-}
-
-/* Links
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-a {
- color: #0085ff;
-}
-a:hover {
- color: #0085ff;
-}
-
-/* Code
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-code {
- padding: 0.2rem 0.5rem;
- margin: 0 0.2rem;
- font-size: 90%;
- white-space: nowrap;
- background: #f1f1f1;
- border: 1px solid #e1e1e1;
- border-radius: 4px;
-}
-pre > code {
- display: block;
- padding: 1rem 1.5rem;
- white-space: pre;
-}
-
-/* Spacing
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-button,
-.button {
- margin-bottom: 1rem;
-}
-input,
-textarea,
-select,
-fieldset {
- margin-bottom: 1.5rem;
-}
-pre,
-blockquote,
-dl,
-figure,
-p,
-ol {
- margin-bottom: 2.5rem;
-}
-
-/* Utilities
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-.u-full-width {
- width: 100%;
- box-sizing: border-box;
-}
-.u-max-full-width {
- max-width: 100%;
- box-sizing: border-box;
-}
-.u-pull-right {
- float: right;
-}
-.u-pull-left {
- float: left;
-}
-
-/* Misc
-ββββββββββββββββββββββββββββββββββββββββββββββββββ */
-hr {
- margin-top: 3rem;
- margin-bottom: 3.5rem;
- border-width: 0;
- border-top: 1px solid #e1e1e1;
-}
-/* Radius values:
-
-10%-40%: Squircles
-50% (default): True circle
-*/
-.avatar {
- width: 128px;
- height: 128px;
- object-fit: cover;
- background-position: center;
- border-radius: 50%;
-}
\ No newline at end of file
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 00000000..afb4ce46
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,382 @@
+/*
+* LittleLink
+* https://littlelink.io
+* Free to use under the MIT license
+* http://www.opensource.org/licenses/mit-license.php
+*/
+
+/* Base Typography Settings
+ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+:root {
+ font-size:16px;
+}
+
+/* Grid
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+ .container {
+ position:relative;
+ width:100%;
+ max-width:37.5rem; /* 600px */
+ text-align:center;
+ margin:0 auto;
+ padding:3rem 1.25rem 0 1.25rem;
+ box-sizing:border-box;
+}
+.container-left {
+ position:relative;
+ width:100%;
+ max-width:37.5rem;
+ text-align:left;
+ margin:0 auto;
+ padding:0 1.25rem;
+ box-sizing:border-box;
+}
+.container-left p {
+ margin-bottom: 1rem; /* 16px space between paragraphs */
+ }
+.column {
+ position:center;
+ width:100%;
+ float:center;
+ box-sizing:border-box;
+}
+/* For devices larger than 400px */
+ @media (min-width:25rem) { /* 400px */
+ .container {
+ width:85%;
+ padding-left:0;
+ padding-right:0;
+}
+}/* For devices larger than 550px */
+ @media (min-width:34.375rem) { /* 550px */
+ .container {
+ width:80%;
+}
+.column,.columns {
+ margin-left:0;
+}
+.column:first-child,.columns:first-child {
+ margin-left:0;
+}
+}
+
+/* Base Styles
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+ body {
+ margin:0;
+ padding:0;
+ background-color:#ffffff;
+ color:#1a1a1a;
+ font-family:"Open Sans",system-ui;
+ font-size:1.125rem; /* 18px */
+ font-weight:400;
+ line-height:1.6;
+}
+
+/* Typography
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+ h1 {
+ margin:0 0 0.5rem 0;
+ font-size:3rem; /* 48px */
+ font-weight:800;
+ line-height:1;
+ letter-spacing:0;
+ word-wrap:break-word;
+ overflow-wrap:break-word;
+ hyphens:auto; /* Delete this to remove automatic hyphen on line break */
+}
+.container p {
+ margin:0 0 2rem 0;
+}
+
+/* Base Typography Settings
+ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+/* Base size - 16px browser default */
+:root {
+ font-size:16px; /* Using a 1.25 modular scale for typography */
+ --scale-0:1rem; /* 16px */
+ --scale-1:1.25rem; /* 20px */
+ --scale-2:1.563rem; /* 25px */
+ --scale-3:1.953rem; /* 31px */
+ --scale-4:2.441rem; /* 39px */
+ --scale-5:3.052rem; /* 49px */
+
+ /* Spacing units */
+ --spacing-xs:0.5rem; /* 8px */
+ --spacing-s:1rem; /* 16px */
+ --spacing-m:1.5rem; /* 24px */
+ --spacing-l:2rem; /* 32px */
+ --spacing-xl:3rem; /* 48px */
+ --spacing-xxl:4rem; /* 64px */
+}
+
+/* Avatar */
+.avatar {
+ width: 8rem; /* 128px */
+ height: 8rem;
+ border-radius: 50%;
+ object-fit: cover;
+ background-position: center;
+ margin-bottom: var(--spacing-l);
+ margin-left: auto;
+ margin-right: auto;
+ display: block;
+ }
+
+/* Typography Scale */
+h1 {
+ margin:0 0 var(--spacing-m) 0;
+ font-size:var(--scale-5); /* ~49px */
+ font-weight:800;
+ line-height:1.1;
+ letter-spacing:-0.02em;
+ word-wrap:break-word;
+ overflow-wrap:break-word;
+}
+body {
+ font-size:var(--scale-1); /* 20px */
+ line-height:1.6;
+}
+.container p {
+ margin:0 0 var(--spacing-xl) 0;
+ font-size:var(--scale-1);
+ line-height:1.6;
+}
+
+/* Container spacing */
+.container {
+ padding:var(--spacing-xl) var(--spacing-m) 0 var(--spacing-m);
+ text-align:center;
+}
+
+/* Footer */
+footer {
+ margin:var(--spacing-xxl) 0; /* 4rem (64px) top and bottom */
+ font-size:var(--scale-0);
+}
+
+/* Responsive adjustments */
+@media (max-width:34.375rem) { /* 550px */
+ h1 {
+ font-size:var(--scale-4);
+}
+body {
+ font-size:var(--scale-0);
+}
+.container p {
+ font-size:var(--scale-0);
+}
+.avatar {
+ margin-bottom:var(--spacing-m);
+}
+footer {
+ margin:var(--spacing-xl) 0; /* 3rem (48px) top and bottom */
+}
+}
+
+/* Links
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+ a {
+ color:#2457F5;
+ text-decoration:underline;
+}
+a:hover {
+ color:#083BDA;
+}
+
+/* Buttons
+ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+.button,button {
+ display:inline-flex;
+ align-items:center;
+ justify-content:center;
+ width:18.75rem; /* 300px */
+ min-height:3rem; /* 48px */
+ padding:0.75rem 1rem; /* 12px ; 16px */
+ font-size:1.125rem; /* 18px */
+ font-weight:700;
+ text-decoration:none;
+ white-space:normal;
+ background-color:var(--button-background,transparent);
+ color:var(--button-text,#000000);
+ border:var(--button-border,none);
+ border-radius:0.5rem;
+ cursor:pointer;
+ box-sizing:border-box;
+ hyphens:auto; /* Delete this to remove automatic hyphen on line break */
+ margin-bottom:1rem;
+ text-align:center;
+ line-height:1.3;
+}
+
+/* Icons
+ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+.icon {
+ width:1.25rem;
+ height:1.25rem;
+ margin-right:0.5rem;
+ flex-shrink:0;
+}
+
+/* Avatar
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+.avatar {
+ width: 8rem; /* 128px */
+ height: 8rem;
+ object-fit: cover;
+ background-position: center;
+ margin-bottom: var(--spacing-l);
+ }
+
+ /* Modifier for no avatar rounding */
+ .avatar--none {
+ border-radius: 0%;
+ }
+
+ /* Modifier for rounded avatar */
+ .avatar--rounded {
+ border-radius: 50%;
+ }
+
+ /* Modifier for slightly rounded corners */
+ .avatar--soft {
+ border-radius: 0.5rem; /* 8px rounded corners */
+ }
+
+/* Theme System
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+/* Light theme is default above */
+
+/* Dark theme */
+:root.theme-dark {
+ color-scheme:dark;
+}
+:root.theme-dark :focus-visible {
+ outline: 2px solid #4899F7;
+ outline-offset: 2px;
+ }
+:root.theme-dark body {
+ background-color:#121212;
+ color:#ffffff;
+}
+:root.theme-dark a:not(.button) {
+ color:#4899F7;
+}
+:root.theme-dark a:not(.button):hover {
+ color:#7AB8FF;
+}
+
+/* Auto theme */
+:root.theme-auto {
+ color-scheme:light dark;
+}
+@media (prefers-color-scheme:dark) {
+ :root.theme-auto body {
+ background-color:#121212;
+ color:#ffffff;
+}
+:root.theme-auto :focus-visible {
+ outline: 2px solid #4899F7;
+ outline-offset: 2px;
+ }
+:root.theme-auto a:not(.button) {
+ color:#4899F7;
+}
+:root.theme-auto a:not(.button):hover {
+ color:#7AB8FF;
+}
+}
+
+/* Button Text Color Override
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+ .button:hover,button:hover {
+ color:var(--button-text);
+}
+
+/* Responsive Typography
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+ @media (max-width:34.375rem) { /* 550px */
+ h1 {
+ font-size:2rem; /* 32px */
+ }
+ body {
+ font-size:1rem; /* 16px */
+ }
+}
+
+/* Privacy Page Styles
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+nav {
+ margin:var(--spacing-l) 0;
+ text-align:left;
+}
+section {
+ margin:var(--spacing-xl) 0;
+ text-align:left;
+}
+h2 {
+ font-size:var(--scale-3);
+ font-weight:700;
+ margin-bottom:var(--spacing-m);
+}
+h3 {
+ font-size:var(--scale-2);
+ font-weight:600;
+ margin:var(--spacing-l) 0 var(--spacing-s) 0;
+}
+ul {
+ list-style:none;
+ padding:0;
+ margin:0 0 var(--spacing-m) 0;
+}
+ul li {
+ margin-bottom:var(--spacing-xs);
+}
+
+/* Privacy page specific responsive adjustments */
+ @media (max-width:34.375rem) {
+ h2 {
+ font-size:var(--scale-2);
+ }
+ h3 {
+ font-size:var(--scale-1);
+ }
+ section {
+ margin:var(--spacing-l) 0;
+ }
+}
+
+/* Font Face Definitions
+ ββββββββββββββββββββββββββββββββββββββββββββββββββ */
+@font-face {
+ font-display:swap;
+ font-family:'Open Sans';
+ font-style:normal;
+ font-weight:400;
+ src:url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot');
+ src:url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2') format('woff2'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff') format('woff'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf') format('truetype'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-display:swap;
+ font-family:'Open Sans';
+ font-style:normal;
+ font-weight:600;
+ src:url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot');
+ src:url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot?#iefix') format('embedded-opentype'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2') format('woff2'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff') format('woff'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf') format('truetype'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-display:swap;
+ font-family:'Open Sans';
+ font-style:normal;
+ font-weight:700;
+ src:url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot');
+ src:url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2') format('woff2'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff') format('woff'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf') format('truetype'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-display:swap;
+ font-family:'Open Sans';
+ font-style:normal;
+ font-weight:800;
+ src:url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot');
+ src:url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot?#iefix') format('embedded-opentype'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2') format('woff2'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff') format('woff'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf') format('truetype'),url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg#OpenSans') format('svg');
+}
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot
new file mode 100644
index 00000000..12c84642
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg
new file mode 100644
index 00000000..e0fe71f4
--- /dev/null
+++ b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg
@@ -0,0 +1,366 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf
new file mode 100644
index 00000000..0f921544
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff
new file mode 100644
index 00000000..32c56a30
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2 b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2
new file mode 100644
index 00000000..26599958
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2 differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot
new file mode 100644
index 00000000..7dbc32ac
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg
new file mode 100644
index 00000000..717e6a6b
--- /dev/null
+++ b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg
@@ -0,0 +1,365 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf
new file mode 100644
index 00000000..e183c89b
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff
new file mode 100644
index 00000000..fd9eb374
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2 b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2
new file mode 100644
index 00000000..e44d73d1
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2 differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot
new file mode 100644
index 00000000..6645b6c4
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg
new file mode 100644
index 00000000..ed9eb115
--- /dev/null
+++ b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg
@@ -0,0 +1,363 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf
new file mode 100644
index 00000000..d09d27a0
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff
new file mode 100644
index 00000000..170dc154
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2 b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2
new file mode 100644
index 00000000..8af8d849
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2 differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot
new file mode 100644
index 00000000..c7ae8c2e
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg
new file mode 100644
index 00000000..9d49aeb1
--- /dev/null
+++ b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg
@@ -0,0 +1,365 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf
new file mode 100644
index 00000000..cafe7982
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff
new file mode 100644
index 00000000..9bc5d1ee
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff differ
diff --git a/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2 b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2
new file mode 100644
index 00000000..2aa7f333
Binary files /dev/null and b/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2 differ
diff --git a/images/avatar.png b/images/avatar.png
index 694dfc1b..b88ecad6 100644
Binary files a/images/avatar.png and b/images/avatar.png differ
diff --git a/images/avatar.svg b/images/avatar.svg
deleted file mode 100644
index 24562249..00000000
--- a/images/avatar.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/images/avatar@2x.png b/images/avatar@2x.png
index 0ca79e0b..2255a425 100644
Binary files a/images/avatar@2x.png and b/images/avatar@2x.png differ
diff --git a/images/icons/amazon-music.svg b/images/icons/amazon-music.svg
new file mode 100644
index 00000000..5e392e33
--- /dev/null
+++ b/images/icons/amazon-music.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/amazon.svg b/images/icons/amazon.svg
index b0c84df9..0f30b215 100644
--- a/images/icons/amazon.svg
+++ b/images/icons/amazon.svg
@@ -1,13 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/apple-music-alt.svg b/images/icons/apple-music-alt.svg
new file mode 100644
index 00000000..152598fa
--- /dev/null
+++ b/images/icons/apple-music-alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/apple-music.svg b/images/icons/apple-music.svg
new file mode 100644
index 00000000..c4a5a6b2
--- /dev/null
+++ b/images/icons/apple-music.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/apple-podcasts-alt.svg b/images/icons/apple-podcasts-alt.svg
new file mode 100644
index 00000000..de30ad88
--- /dev/null
+++ b/images/icons/apple-podcasts-alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/apple-podcasts.svg b/images/icons/apple-podcasts.svg
new file mode 100644
index 00000000..9d8e414f
--- /dev/null
+++ b/images/icons/apple-podcasts.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/apple.svg b/images/icons/apple.svg
new file mode 100644
index 00000000..6eb6a008
--- /dev/null
+++ b/images/icons/apple.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/appstore.svg b/images/icons/appstore.svg
deleted file mode 100644
index ff199d11..00000000
--- a/images/icons/appstore.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/images/icons/artstation.svg b/images/icons/artstation.svg
new file mode 100644
index 00000000..e8fd6b6a
--- /dev/null
+++ b/images/icons/artstation.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/bandcamp.svg b/images/icons/bandcamp.svg
index cde6f604..c68ce86f 100644
--- a/images/icons/bandcamp.svg
+++ b/images/icons/bandcamp.svg
@@ -1,26 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/behance.svg b/images/icons/behance.svg
new file mode 100644
index 00000000..00116cab
--- /dev/null
+++ b/images/icons/behance.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/blog.svg b/images/icons/blog.svg
index cd54c19a..ac23f7f0 100644
--- a/images/icons/blog.svg
+++ b/images/icons/blog.svg
@@ -1,37 +1 @@
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/bluesky-alt.svg b/images/icons/bluesky-alt.svg
new file mode 100644
index 00000000..716e8737
--- /dev/null
+++ b/images/icons/bluesky-alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/bluesky.svg b/images/icons/bluesky.svg
new file mode 100644
index 00000000..8742cd76
--- /dev/null
+++ b/images/icons/bluesky.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/buy-me-a-coffee.svg b/images/icons/buy-me-a-coffee.svg
new file mode 100644
index 00000000..a273355b
--- /dev/null
+++ b/images/icons/buy-me-a-coffee.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/cal.svg b/images/icons/cal.svg
new file mode 100644
index 00000000..cec7ea5c
--- /dev/null
+++ b/images/icons/cal.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/calendly.svg b/images/icons/calendly.svg
new file mode 100644
index 00000000..a56807c7
--- /dev/null
+++ b/images/icons/calendly.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/cash-app-btc.svg b/images/icons/cash-app-btc.svg
new file mode 100644
index 00000000..0c282232
--- /dev/null
+++ b/images/icons/cash-app-btc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/cash-app-dollar.svg b/images/icons/cash-app-dollar.svg
new file mode 100644
index 00000000..1e9ef1a9
--- /dev/null
+++ b/images/icons/cash-app-dollar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/cash-app-pound.svg b/images/icons/cash-app-pound.svg
new file mode 100644
index 00000000..84edc5bb
--- /dev/null
+++ b/images/icons/cash-app-pound.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/cashapp_btc.svg b/images/icons/cashapp_btc.svg
deleted file mode 100644
index 8c4a6d7c..00000000
--- a/images/icons/cashapp_btc.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/icons/cashapp_dollar.svg b/images/icons/cashapp_dollar.svg
deleted file mode 100644
index 8075ef5c..00000000
--- a/images/icons/cashapp_dollar.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/icons/cashapp_pound.svg b/images/icons/cashapp_pound.svg
deleted file mode 100644
index 70d3f3ea..00000000
--- a/images/icons/cashapp_pound.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/icons/coffee.svg b/images/icons/coffee.svg
deleted file mode 100644
index 1876bfc4..00000000
--- a/images/icons/coffee.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/icons/dev-to.svg b/images/icons/dev-to.svg
new file mode 100644
index 00000000..2d25a8eb
--- /dev/null
+++ b/images/icons/dev-to.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/dev_to.svg b/images/icons/dev_to.svg
deleted file mode 100644
index d52b2ed1..00000000
--- a/images/icons/dev_to.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/icons/discogs-alt.svg b/images/icons/discogs-alt.svg
new file mode 100644
index 00000000..f91e5c1e
--- /dev/null
+++ b/images/icons/discogs-alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/discogs.svg b/images/icons/discogs.svg
new file mode 100644
index 00000000..08d99aa9
--- /dev/null
+++ b/images/icons/discogs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/discord.svg b/images/icons/discord.svg
index 667def4c..1677aa27 100644
--- a/images/icons/discord.svg
+++ b/images/icons/discord.svg
@@ -1,3 +1 @@
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/dribbble.svg b/images/icons/dribbble.svg
new file mode 100644
index 00000000..f73d21f6
--- /dev/null
+++ b/images/icons/dribbble.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/email-alt.svg b/images/icons/email-alt.svg
new file mode 100644
index 00000000..2cd5c518
--- /dev/null
+++ b/images/icons/email-alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/email.svg b/images/icons/email.svg
index 85697acf..b00cab14 100644
--- a/images/icons/email.svg
+++ b/images/icons/email.svg
@@ -1,3 +1 @@
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/email_alt.svg b/images/icons/email_alt.svg
deleted file mode 100644
index 954a4afb..00000000
--- a/images/icons/email_alt.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/images/icons/etsy.svg b/images/icons/etsy.svg
index e414e573..bd82581c 100644
--- a/images/icons/etsy.svg
+++ b/images/icons/etsy.svg
@@ -1,3 +1 @@
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/facebook.svg b/images/icons/facebook.svg
index 62b14e2a..337ac701 100644
--- a/images/icons/facebook.svg
+++ b/images/icons/facebook.svg
@@ -1,2 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/figma.svg b/images/icons/figma.svg
index 9cb862da..60b2398e 100644
--- a/images/icons/figma.svg
+++ b/images/icons/figma.svg
@@ -1,14 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/fiverr.svg b/images/icons/fiverr.svg
new file mode 100644
index 00000000..8d9fe037
--- /dev/null
+++ b/images/icons/fiverr.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/images/icons/flickr.svg b/images/icons/flickr.svg
index bde20ab7..79a005ea 100644
--- a/images/icons/flickr.svg
+++ b/images/icons/flickr.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/images/icons/generic-blog.svg b/images/icons/generic-blog.svg
new file mode 100644
index 00000000..d107c7b9
--- /dev/null
+++ b/images/icons/generic-blog.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-calendar.svg b/images/icons/generic-calendar.svg
new file mode 100644
index 00000000..90a70c9a
--- /dev/null
+++ b/images/icons/generic-calendar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-cloud.svg b/images/icons/generic-cloud.svg
new file mode 100644
index 00000000..d8e2a657
--- /dev/null
+++ b/images/icons/generic-cloud.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-code.svg b/images/icons/generic-code.svg
new file mode 100644
index 00000000..4d7999b1
--- /dev/null
+++ b/images/icons/generic-code.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-computer.svg b/images/icons/generic-computer.svg
new file mode 100644
index 00000000..c19b60c5
--- /dev/null
+++ b/images/icons/generic-computer.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-email-alt.svg b/images/icons/generic-email-alt.svg
new file mode 100644
index 00000000..84c2a466
--- /dev/null
+++ b/images/icons/generic-email-alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-email.svg b/images/icons/generic-email.svg
new file mode 100644
index 00000000..b77761cc
--- /dev/null
+++ b/images/icons/generic-email.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-homepage.svg b/images/icons/generic-homepage.svg
new file mode 100644
index 00000000..82343d1f
--- /dev/null
+++ b/images/icons/generic-homepage.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-map.svg b/images/icons/generic-map.svg
new file mode 100644
index 00000000..fa89872a
--- /dev/null
+++ b/images/icons/generic-map.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-phone.svg b/images/icons/generic-phone.svg
new file mode 100644
index 00000000..13af93de
--- /dev/null
+++ b/images/icons/generic-phone.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-review.svg b/images/icons/generic-review.svg
new file mode 100644
index 00000000..22e09aef
--- /dev/null
+++ b/images/icons/generic-review.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-rss.svg b/images/icons/generic-rss.svg
new file mode 100644
index 00000000..989ebe92
--- /dev/null
+++ b/images/icons/generic-rss.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-shopping-bag.svg b/images/icons/generic-shopping-bag.svg
new file mode 100644
index 00000000..4e22ed55
--- /dev/null
+++ b/images/icons/generic-shopping-bag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-shopping-tag.svg b/images/icons/generic-shopping-tag.svg
new file mode 100644
index 00000000..15bdb68d
--- /dev/null
+++ b/images/icons/generic-shopping-tag.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-sms.svg b/images/icons/generic-sms.svg
new file mode 100644
index 00000000..3d4adf42
--- /dev/null
+++ b/images/icons/generic-sms.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/generic-website.svg b/images/icons/generic-website.svg
new file mode 100644
index 00000000..a3623c92
--- /dev/null
+++ b/images/icons/generic-website.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/github.svg b/images/icons/github.svg
index 543256c7..bfdc3594 100644
--- a/images/icons/github.svg
+++ b/images/icons/github.svg
@@ -1,2 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/gitlab.svg b/images/icons/gitlab.svg
index b88f3620..e17e1464 100644
--- a/images/icons/gitlab.svg
+++ b/images/icons/gitlab.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/gofundme.svg b/images/icons/gofundme.svg
new file mode 100644
index 00000000..0944d4b0
--- /dev/null
+++ b/images/icons/gofundme.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/goodreads.svg b/images/icons/goodreads.svg
index ce870939..7edf57a8 100644
--- a/images/icons/goodreads.svg
+++ b/images/icons/goodreads.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/google-drive.svg b/images/icons/google-drive.svg
new file mode 100644
index 00000000..56620e2d
--- /dev/null
+++ b/images/icons/google-drive.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/google-play.svg b/images/icons/google-play.svg
new file mode 100644
index 00000000..010d6208
--- /dev/null
+++ b/images/icons/google-play.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/google-podcasts.svg b/images/icons/google-podcasts.svg
new file mode 100644
index 00000000..e5962117
--- /dev/null
+++ b/images/icons/google-podcasts.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/google-scholar.svg b/images/icons/google-scholar.svg
new file mode 100644
index 00000000..59120820
--- /dev/null
+++ b/images/icons/google-scholar.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/hashnode.svg b/images/icons/hashnode.svg
new file mode 100644
index 00000000..4e42d84f
--- /dev/null
+++ b/images/icons/hashnode.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/instagram.svg b/images/icons/instagram.svg
index a398760b..841d3e89 100644
--- a/images/icons/instagram.svg
+++ b/images/icons/instagram.svg
@@ -1,3 +1 @@
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/kick-alt.svg b/images/icons/kick-alt.svg
new file mode 100644
index 00000000..f9dd757f
--- /dev/null
+++ b/images/icons/kick-alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/kick.svg b/images/icons/kick.svg
new file mode 100644
index 00000000..d4568b62
--- /dev/null
+++ b/images/icons/kick.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/kickstarter.svg b/images/icons/kickstarter.svg
index 075b10e3..71ce32fe 100644
--- a/images/icons/kickstarter.svg
+++ b/images/icons/kickstarter.svg
@@ -1,10 +1 @@
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/kit.svg b/images/icons/kit.svg
index 5c270735..a972f9a5 100644
--- a/images/icons/kit.svg
+++ b/images/icons/kit.svg
@@ -1,11 +1 @@
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/ko-fi.svg b/images/icons/ko-fi.svg
index 4fefd54e..fa05eed6 100644
--- a/images/icons/ko-fi.svg
+++ b/images/icons/ko-fi.svg
@@ -1,11 +1,20 @@
-
-
- Layer 1
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/images/icons/last-fm.svg b/images/icons/last-fm.svg
new file mode 100644
index 00000000..503b94db
--- /dev/null
+++ b/images/icons/last-fm.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/letterboxd.svg b/images/icons/letterboxd.svg
index 02a9fe25..d6c518d0 100644
--- a/images/icons/letterboxd.svg
+++ b/images/icons/letterboxd.svg
@@ -1,13 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/line.svg b/images/icons/line.svg
new file mode 100644
index 00000000..11f9b43e
--- /dev/null
+++ b/images/icons/line.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/linkedin.svg b/images/icons/linkedin.svg
index d8c921a6..e323d7ea 100644
--- a/images/icons/linkedin.svg
+++ b/images/icons/linkedin.svg
@@ -1,2 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/littlelink.svg b/images/icons/littlelink.svg
index 99953e4a..55e0bc86 100644
--- a/images/icons/littlelink.svg
+++ b/images/icons/littlelink.svg
@@ -1,3 +1,11 @@
-
+
+
+
+
+
+
+
+
+
diff --git a/images/icons/mailchimp.svg b/images/icons/mailchimp.svg
new file mode 100644
index 00000000..89f12b5a
--- /dev/null
+++ b/images/icons/mailchimp.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/mastodon.svg b/images/icons/mastodon.svg
index 9d8ff0ed..c71fe889 100644
--- a/images/icons/mastodon.svg
+++ b/images/icons/mastodon.svg
@@ -1,4 +1 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/medium.svg b/images/icons/medium.svg
index ac7d0fd8..0ae1ff41 100644
--- a/images/icons/medium.svg
+++ b/images/icons/medium.svg
@@ -1,5 +1,12 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/images/icons/messenger.svg b/images/icons/messenger.svg
index 87a9e0aa..c638a64f 100644
--- a/images/icons/messenger.svg
+++ b/images/icons/messenger.svg
@@ -1,3 +1 @@
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/microsoft.svg b/images/icons/microsoft.svg
new file mode 100644
index 00000000..a50ed2da
--- /dev/null
+++ b/images/icons/microsoft.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/ngl.svg b/images/icons/ngl.svg
new file mode 100644
index 00000000..b91d77ce
--- /dev/null
+++ b/images/icons/ngl.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/notion.svg b/images/icons/notion.svg
index 201f7bb6..fb878e02 100644
--- a/images/icons/notion.svg
+++ b/images/icons/notion.svg
@@ -1,9 +1 @@
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/onlyfans.svg b/images/icons/onlyfans.svg
index 69830769..82288e3b 100644
--- a/images/icons/onlyfans.svg
+++ b/images/icons/onlyfans.svg
@@ -1,4 +1 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/patreon.svg b/images/icons/patreon.svg
index fe07eb17..46abf0f8 100644
--- a/images/icons/patreon.svg
+++ b/images/icons/patreon.svg
@@ -1,3 +1 @@
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/paypal.svg b/images/icons/paypal.svg
index 306ba8c0..08034264 100644
--- a/images/icons/paypal.svg
+++ b/images/icons/paypal.svg
@@ -1,21 +1 @@
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/pinterest.svg b/images/icons/pinterest.svg
index c57d0f68..76af8b44 100644
--- a/images/icons/pinterest.svg
+++ b/images/icons/pinterest.svg
@@ -1,11 +1 @@
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/playstore.svg b/images/icons/playstore.svg
deleted file mode 100644
index 703a0d0c..00000000
--- a/images/icons/playstore.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/images/icons/product-hunt.svg b/images/icons/product-hunt.svg
new file mode 100644
index 00000000..9b578cf9
--- /dev/null
+++ b/images/icons/product-hunt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/producthunt.svg b/images/icons/producthunt.svg
deleted file mode 100644
index f1df0f5c..00000000
--- a/images/icons/producthunt.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/images/icons/read-cv.svg b/images/icons/read-cv.svg
new file mode 100644
index 00000000..1d9863c5
--- /dev/null
+++ b/images/icons/read-cv.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/reddit.svg b/images/icons/reddit.svg
index ec269db2..42728fef 100644
--- a/images/icons/reddit.svg
+++ b/images/icons/reddit.svg
@@ -1,4 +1 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/shop.svg b/images/icons/shop.svg
new file mode 100644
index 00000000..fcb1541e
--- /dev/null
+++ b/images/icons/shop.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/signal.svg b/images/icons/signal.svg
index 4cef57ab..38059c41 100644
--- a/images/icons/signal.svg
+++ b/images/icons/signal.svg
@@ -1,3 +1 @@
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/skoob.svg b/images/icons/skoob.svg
deleted file mode 100644
index d24b768d..00000000
--- a/images/icons/skoob.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/images/icons/slack.svg b/images/icons/slack.svg
new file mode 100644
index 00000000..44f8fbf7
--- /dev/null
+++ b/images/icons/slack.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/snapchat.svg b/images/icons/snapchat.svg
index 55e4b3e9..224170b2 100644
--- a/images/icons/snapchat.svg
+++ b/images/icons/snapchat.svg
@@ -1,4 +1 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/soundcloud.svg b/images/icons/soundcloud.svg
index 1f428ad0..2598ed5d 100644
--- a/images/icons/soundcloud.svg
+++ b/images/icons/soundcloud.svg
@@ -1,2 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/spotify-alt.svg b/images/icons/spotify-alt.svg
new file mode 100644
index 00000000..f51ee41a
--- /dev/null
+++ b/images/icons/spotify-alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/spotify.svg b/images/icons/spotify.svg
index c037b0fb..0e5b39ca 100644
--- a/images/icons/spotify.svg
+++ b/images/icons/spotify.svg
@@ -1,2 +1 @@
-
-
+
\ No newline at end of file
diff --git a/images/icons/square.svg b/images/icons/square.svg
new file mode 100644
index 00000000..52c42f09
--- /dev/null
+++ b/images/icons/square.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/stack-overflow.svg b/images/icons/stack-overflow.svg
new file mode 100644
index 00000000..282f0382
--- /dev/null
+++ b/images/icons/stack-overflow.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/steam.svg b/images/icons/steam.svg
index 96af0d4b..4da4e0bc 100644
--- a/images/icons/steam.svg
+++ b/images/icons/steam.svg
@@ -1,2 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/strava.svg b/images/icons/strava.svg
index fdfe55f4..4befe827 100644
--- a/images/icons/strava.svg
+++ b/images/icons/strava.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/substack.svg b/images/icons/substack.svg
new file mode 100644
index 00000000..e0ca9348
--- /dev/null
+++ b/images/icons/substack.svg
@@ -0,0 +1,3 @@
+
+
+
diff --git a/images/icons/telegram.svg b/images/icons/telegram.svg
index 9d471fc9..88b40997 100644
--- a/images/icons/telegram.svg
+++ b/images/icons/telegram.svg
@@ -1,2 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/threads.svg b/images/icons/threads.svg
new file mode 100644
index 00000000..d0dab5bb
--- /dev/null
+++ b/images/icons/threads.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/threema.svg b/images/icons/threema.svg
index 142a6f85..6a6503d6 100644
--- a/images/icons/threema.svg
+++ b/images/icons/threema.svg
@@ -1,9 +1 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/tiktok.svg b/images/icons/tiktok.svg
index ecf07158..080162cc 100644
--- a/images/icons/tiktok.svg
+++ b/images/icons/tiktok.svg
@@ -1,12 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/trello.svg b/images/icons/trello.svg
index c0d516ce..9bae6e29 100644
--- a/images/icons/trello.svg
+++ b/images/icons/trello.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/tumblr.svg b/images/icons/tumblr.svg
index de775cf9..d0e93f2b 100644
--- a/images/icons/tumblr.svg
+++ b/images/icons/tumblr.svg
@@ -1,2 +1 @@
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/twitch.svg b/images/icons/twitch.svg
index f0d29b0d..7ddd8111 100644
--- a/images/icons/twitch.svg
+++ b/images/icons/twitch.svg
@@ -1,5 +1 @@
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/twitter.svg b/images/icons/twitter.svg
deleted file mode 100644
index 856eedf1..00000000
--- a/images/icons/twitter.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/images/icons/unsplash.svg b/images/icons/unsplash.svg
new file mode 100755
index 00000000..b9c608cd
--- /dev/null
+++ b/images/icons/unsplash.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/untappd.svg b/images/icons/untappd.svg
deleted file mode 100644
index 0e7f36ec..00000000
--- a/images/icons/untappd.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/images/icons/venmo.svg b/images/icons/venmo.svg
index 0c37329f..324eb840 100644
--- a/images/icons/venmo.svg
+++ b/images/icons/venmo.svg
@@ -1,3 +1 @@
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/images/icons/vimeo.svg b/images/icons/vimeo.svg
index b04df9b6..ad2a3ae3 100644
--- a/images/icons/vimeo.svg
+++ b/images/icons/vimeo.svg
@@ -1,10 +1 @@
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/vrchat.svg b/images/icons/vrchat.svg
index 8433269b..4d90ffe2 100644
--- a/images/icons/vrchat.svg
+++ b/images/icons/vrchat.svg
@@ -1 +1 @@
-
+
\ No newline at end of file
diff --git a/images/icons/vsco.svg b/images/icons/vsco.svg
new file mode 100644
index 00000000..9059e2c6
--- /dev/null
+++ b/images/icons/vsco.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/web.svg b/images/icons/web.svg
deleted file mode 100644
index 316d45ff..00000000
--- a/images/icons/web.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
\ No newline at end of file
diff --git a/images/icons/whatsapp.svg b/images/icons/whatsapp.svg
index e22953c8..979145bf 100644
--- a/images/icons/whatsapp.svg
+++ b/images/icons/whatsapp.svg
@@ -1,16 +1 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/wordpress.svg b/images/icons/wordpress.svg
index f8ce5ed6..dddc9ccd 100644
--- a/images/icons/wordpress.svg
+++ b/images/icons/wordpress.svg
@@ -1,3 +1 @@
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/x.svg b/images/icons/x.svg
new file mode 100644
index 00000000..393e68b1
--- /dev/null
+++ b/images/icons/x.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/xing.svg b/images/icons/xing.svg
deleted file mode 100644
index ad84a5ae..00000000
--- a/images/icons/xing.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
diff --git a/images/icons/youtube-music.svg b/images/icons/youtube-music.svg
new file mode 100644
index 00000000..ba8cc895
--- /dev/null
+++ b/images/icons/youtube-music.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/images/icons/youtube.svg b/images/icons/youtube.svg
index 7cf1b9b8..bdfcb3e7 100644
--- a/images/icons/youtube.svg
+++ b/images/icons/youtube.svg
@@ -1,11 +1 @@
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/images/icons/zoom.svg b/images/icons/zoom.svg
new file mode 100644
index 00000000..7b864f04
--- /dev/null
+++ b/images/icons/zoom.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/index.html b/index.html
index f71a260f..18f20bcb 100644
--- a/index.html
+++ b/index.html
@@ -1,189 +1,386 @@
-
-
+
-
-
- Dale Slack's links
-
-
+
-
-
+
+
+
+
+
+ LittleLink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
+
- You can add your own brand or others brands you may need in the `css/brands.css` file.
+
+
+ LittleLink
+
- You can add custom icons to `images/icons/...`. It is recommended to use a 24x24 .SVG.
+
+
An open source DIY Linktree alternative.
- Edit the "Your Image Here" section to add your own personal branding, like a picture of yourself or your brand logo!
+
+
+
+
+
+
-
diff --git a/privacy.html b/privacy.html
new file mode 100644
index 00000000..f21e6674
--- /dev/null
+++ b/privacy.html
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
Privacy Policy | LittleLink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ β Back to main page
+
+
+
Privacy Overview
+
+
+ Analytics
+ The services contained in this section enable the Owner to monitor and analyze web traffic and can be used to keep track of User behavior.
+
+ Example LLC
+
+ Personal Data: various types of Data as specified in the privacy policy of the service
+ Privacy Policy
+
+
+
+
+ External Content
+ This type of service allows you to view content hosted on external platforms directly from the pages of this website and interact with them.
+ This type of service might still collect web traffic data for the pages where the service is installed, even when Users do not use it.
+
+ Example LLC
+
+ Personal Data: Usage Data; various types of Data as specified in the privacy policy of the service
+ Privacy Policy
+
+
+
+
+ Hosting and Infrastructure
+ This type of service has the purpose of hosting Data and files that enable this website to exist.
+ Some services among those listed below, if any, may work through geographically distributed servers, making it difficult to determine the actual location where the Personal Data are stored.
+
+ Example LLC
+
+ Personal Data: various types of Data as specified in the privacy policy of the service
+ Privacy Policy
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file