From 18d46bd04d17866846edc7ef4951c39e48e624cb Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Mon, 4 Mar 2024 10:41:31 -0500 Subject: [PATCH 01/23] Stack Overflow + Tweaks Added Stack Overflow, renamed Steam Dark to Steam Alt to match the defined pattern we're already using for alternate buttons. Added stroke for accessibility. --- css/brands.css | 24 ++++++++++++++++++------ images/icons/stack-overflow.svg | 11 +++++++++++ index.html | 7 +++++-- 3 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 images/icons/stack-overflow.svg diff --git a/css/brands.css b/css/brands.css index 3e2eeea8..3bc142c4 100644 --- a/css/brands.css +++ b/css/brands.css @@ -884,13 +884,14 @@ button:hover, filter: brightness(90%); } -/* Steam Dark */ -.button.button-steam-dark { - color: #ffffff; - background-image: linear-gradient(90deg, #09172a, #072a57, #0c5085); +/* Stack Overflow */ +.button.button-stack-overflow { + color: #000000; + background-color: #FFFFFF; + border: 1px solid #000000; } -.button.button-steam-dark:hover, -.button.button-steam-dark:focus { +.button.button-stack-overflow:hover, +.button.button-stack-overflow:focus { filter: brightness(90%); } @@ -904,6 +905,17 @@ button:hover, filter: brightness(90%); } +/* Steam Alt */ +.button.button-steam-alt { + color: #ffffff; + background-image: linear-gradient(90deg, #09172a, #072a57, #0c5085); + border: 1px solid #FFFFFF; +} +.button.button-steam-alt:hover, +.button.button-steam-alt:focus { + filter: brightness(90%); +} + /* Strava */ .button.button-strava { color: #ffffff; diff --git a/images/icons/stack-overflow.svg b/images/icons/stack-overflow.svg new file mode 100644 index 00000000..e548a790 --- /dev/null +++ b/images/icons/stack-overflow.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/index.html b/index.html index 0394e47e..35c2bc85 100644 --- a/index.html +++ b/index.html @@ -325,12 +325,15 @@ Buy with Square
- - Steam
+ + Stack Overflow
Steam
+ + Steam
+ Strava
From df1f9e607543ff42bcba3c9c59e711435759d490 Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Wed, 6 Mar 2024 12:04:16 -0500 Subject: [PATCH 02/23] Added Microsoft Store --- css/brands.css | 11 +++++++++++ images/icons/microsoft.svg | 6 ++++++ index.html | 3 +++ 3 files changed, 20 insertions(+) create mode 100644 images/icons/microsoft.svg diff --git a/css/brands.css b/css/brands.css index 3bc142c4..c1d4c4fd 100644 --- a/css/brands.css +++ b/css/brands.css @@ -642,6 +642,17 @@ button:hover, filter: brightness(90%); } +/* Microsoft */ +.button.button-microsoft { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-microsoft:hover, +.button.button-microsoft:focus { + filter: brightness(90%); +} + /* NGL */ .button.button-ngl { color: #ffffff; diff --git a/images/icons/microsoft.svg b/images/icons/microsoft.svg new file mode 100644 index 00000000..8e7945c7 --- /dev/null +++ b/images/icons/microsoft.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/index.html b/index.html index 35c2bc85..294a3fb2 100644 --- a/index.html +++ b/index.html @@ -255,6 +255,9 @@ Medium
+ + + Get it from Microsoft
NGL
From 94ddcd2685f4c5197492b00a8b583d89a00e736b Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Wed, 6 Mar 2024 22:59:49 -0500 Subject: [PATCH 03/23] General Updates Added the `aria-hidden="true"` to `img` to avoid having the icon be read by screen readers. Screen readers should now read as a simplified `[brand] button` (i.e. `LittleLink button`). Alt text is making a return with this as well. I've removed Twitter, since it looks like X branding is sticking around. Renamed `discogs_alt` to `discogs-alt` to align with how other alt versions are added. --- css/brands.css | 39 +-- .../{discogs_alt.svg => discogs-alt.svg} | 0 images/icons/twitter.svg | 10 - index.html | 246 +++++++++--------- 4 files changed, 126 insertions(+), 169 deletions(-) rename images/icons/{discogs_alt.svg => discogs-alt.svg} (100%) delete mode 100644 images/icons/twitter.svg diff --git a/css/brands.css b/css/brands.css index c1d4c4fd..90f0e7de 100644 --- a/css/brands.css +++ b/css/brands.css @@ -299,14 +299,14 @@ button:hover, filter: brightness(90%); } -/* Discogs_alt */ -.button.button-discogs_alt { +/* Discogs Alt */ +.button.button-discogs-alt { color: #FFFFFF; background-color: #000000; border: 1px solid #FFFFFF } -.button.button-discogs:hover, -.button.button-discogs:focus { +.button.button-discogs-alt:hover, +.button.button-discogs-alt:focus { filter: brightness(90%); } @@ -465,17 +465,6 @@ button:hover, filter: brightness(90%); } -/* Google Podcasts */ -.button.button-google-podcasts { - color: #000000; - background-color: #FFFFFF; - border: 1px solid #212121; -} -.button.button-google-podcasts:hover, -.button.button-google-podcasts:focus { - filter: brightness(90%); -} - /* Google Scholar */ .button.button-google-scholar { color: #000000; @@ -537,7 +526,6 @@ button:hover, filter: brightness(90%); } - /* Kickstarter */ .button.button-kickstarter { color: #ffffff; @@ -752,7 +740,7 @@ button:hover, .button.button-qq { color: #000000; background-color: #FFFFFF; - border: 3px solid #4D94FF; + border: 1px solid #000000; } .button.button-qq:hover, .button.button-qq:focus { @@ -843,7 +831,6 @@ button:hover, filter: brightness(90%); } - /* Snapchat */ .button.button-snapchat { color: #000000; @@ -1030,16 +1017,6 @@ button:hover, filter: brightness(90%); } -/* Twitter (archiving soon, see 'X') */ -.button.button-twit { - color: #ffffff; - background-color: #1da1f2; -} -.button.button-twit:hover, -.button.button-twit:focus { - filter: brightness(90%); -} - /* Unsplash */ .button.button-unsplash { color: #000000; @@ -1184,8 +1161,4 @@ button:hover, .button.button-zoom:hover, .button.button-zoom:focus { filter: brightness(90%); -} - - - - +} \ No newline at end of file diff --git a/images/icons/discogs_alt.svg b/images/icons/discogs-alt.svg similarity index 100% rename from images/icons/discogs_alt.svg rename to images/icons/discogs-alt.svg diff --git a/images/icons/twitter.svg b/images/icons/twitter.svg deleted file mode 100644 index 53dcd7aa..00000000 --- a/images/icons/twitter.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/index.html b/index.html index 294a3fb2..385e8f97 100644 --- a/index.html +++ b/index.html @@ -69,7 +69,7 @@

LittleLink

-

An open source DIY Linktree alternative.

+

An open source DIY Linktree alternative.

- LittleLink
+ LittleLink
- Amazon Wishlist
+ Amazon Wishlist
- Listen on Amazon Music
+ Listen on Amazon Music
- Apple App Store
+ Apple App Store
- Listen on Apple Music
+ Listen on Apple Music
- Listen on Apple Music
+ Listen on Apple Music
- Listen on Apple Podcasts
+ Listen on Apple Podcasts
- Listen on Apple Podcasts
+ Listen on Apple Podcasts
- Bandcamp
+ Bandcamp
- Behance
+ Behance
- BeReal
+ BeReal
- Bluesky
+ Bluesky
- Bluesky
+ Bluesky
- Buy Me A Coffee
+ Buy Me A Coffee
- Schedule with Cal.com
+ Schedule with Cal.com
- Schedule with Calendly
+ Schedule with Calendly
- Cash App
+ Cash App
- Clubhouse
+ Clubhouse
- Dev.to
+ Dev.to
- Discogs
+ Discogs
- - Discogs
+ + Discogs
- Discord
+ Discord
- Dribbble
+ Dribbble
- Shop on Etsy
+ Shop on Etsy
- Find us on Facebook
+ Find us on Facebook
- Chat on Messenger
+ Chat on Messenger
- Figma Community
+ Figma Community
- Fiverr Gig
+ Fiverr Gig
- Flickr
+ Flickr
- GitHub
+ GitHub
- GitLab
+ GitLab
- GoFundMe
+ GoFundMe
- Goodreads
+ Goodreads
- View in Google Drive
+ View in Google Drive
- Google Play Store
- - - Listen on Google Podcasts
+ Google Play Store
- Google Scholar
+ Google Scholar
- Guilded
+ Guilded
- Hashnode
+ Hashnode
- Instagram
+ Instagram
- Kick
+ Kick
- Kick
+ Kick
- Kickstarter
+ Kickstarter
- Kit
+ Kit
- Ko-fi
+ Ko-fi
- Last.fm
+ Last.fm
- Letterboxd
+ Letterboxd
- Line
+ Line
- LinkedIn
+ LinkedIn
- Mailchimp
+ Mailchimp
- Mastodon
+ Mastodon
- Medium
+ Medium
- Get it from Microsoft
+ Get it from Microsoft
- NGL
+ NGL
- Notion
+ Notion
- OnlyFans (18+)
+ OnlyFans (18+)
- Partiful
+ Partiful
- Patreon
+ Patreon
- PayPal
+ PayPal
- Pinterest
+ Pinterest
- Post.news
+ Post.news
- Product Hunt
+ Product Hunt
- QQ
+ QQ
- Read.cv
+ Read.cv
- Redbubble
+ Redbubble
- Reddit
+ Reddit
- Revolut
+ Revolut
- Buy with Shop
+ Buy with Shop
- Signal
+ Signal
- Skoob
+ Skoob
- Join Slack
+ Join Slack
- Snapchat
+ Snapchat
- SoundCloud
+ SoundCloud
- Listen on Spotify
+ Listen on Spotify
- Listen on Spotify
+ Listen on Spotify
- Buy with Square
+ Buy with Square
- Stack Overflow
+ Stack Overflow
- Steam
+ Steam
- Steam
+ Steam
- Strava
+ Strava
- Substack
+ Substack
- Telegram
+ Telegram
- Threads
+ Threads
- Threema
+ Threema
- TikTok
+ TikTok
- Trakt
+ Trakt
- Trello
+ Trello
- Tumblr
+ Tumblr
- Twitch
- - - Twitter
+ Twitch
- Unsplash
+ Unsplash
- Untappd
+ Untappd
- Upwork
+ Upwork
- Venmo
+ Venmo
- Vimeo
+ Vimeo
- VRChat
+ VRChat
- VSCO
+ VSCO
- WhatsApp
+ WhatsApp
- WordPress
+ WordPress
- Follow on X
+ Follow on X
- Xing
+ Xing
- YouTube
+ YouTube
- Listen on YouTube Music
+ Listen on YouTube Music
- Join Zoom Webinar
+ Join Zoom Webinar
- Read our blog
+ Read our blog
- Event RSVP
+ Event RSVP
- Download File
+ Download File
- View the code
+ View the code
- Homelab Setup
+ Homelab Setup
- Email Us
+ Email Us
- Email Us
+ Email Us
- Visit Homepage
+ Visit Homepage
- Get Directions
+ Get Directions
- Call Us
+ Call Us
- Leave us a review
+ Leave us a review
- RSS Subscribe
+ RSS Subscribe
- Visit Our Shop
+ Visit Our Shop
- 10% Discount
+ 10% Discount
- Send us a message
+ Send us a message
- Visit Website
+ Visit Website

+ @@ -129,10 +137,7 @@ Behance
- - - BeReal
- + Bluesky
@@ -151,9 +156,6 @@ Cash App
- - Clubhouse
- Dev.to
@@ -208,9 +210,6 @@ Google Scholar
- - Guilded
- Hashnode
@@ -265,9 +264,6 @@ OnlyFans (18+)
- - Partiful
- Patreon
@@ -277,15 +273,9 @@ Pinterest
- - Post.news
- Product Hunt
- - QQ
- Read.cv
@@ -304,9 +294,6 @@ Signal
- - Skoob
- Join Slack
@@ -379,9 +366,6 @@ Vimeo
- - VRChat
- VSCO
@@ -394,9 +378,6 @@ Follow on X
- - Xing
- YouTube
From 174cc57907e3c20d6a3dabb28e711cf886303857 Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Tue, 23 Jul 2024 10:41:54 -0400 Subject: [PATCH 11/23] Optimized Image File Size Saved 46 KB out of 303 KB. 17.1% per file on average. --- images/icons/amazon-music.svg | 18 +---- images/icons/amazon.svg | 14 +--- images/icons/apple-music-alt.svg | 11 +-- images/icons/apple-music.svg | 16 +--- images/icons/apple-podcasts-alt.svg | 15 +--- images/icons/apple-podcasts.svg | 19 +---- images/icons/apple.svg | 11 +-- images/icons/artstation.svg | 6 +- images/icons/bandcamp.svg | 5 +- images/icons/behance.svg | 11 +-- images/icons/blog.svg | 11 +-- images/icons/bluesky-alt.svg | 39 +--------- images/icons/bluesky.svg | 39 +--------- images/icons/buy-me-a-coffee.svg | 12 +-- images/icons/cal.svg | 6 +- images/icons/calendly.svg | 13 +--- images/icons/cash-app-btc.svg | 21 +----- images/icons/cash-app-dollar.svg | 21 +----- images/icons/cash-app-pound.svg | 21 +----- images/icons/dev-to.svg | 4 +- images/icons/discogs-alt.svg | 28 +------ images/icons/discogs.svg | 28 +------ images/icons/discord.svg | 4 +- images/icons/dribbble.svg | 12 +-- images/icons/email-alt.svg | 11 +-- images/icons/email.svg | 11 +-- images/icons/etsy.svg | 11 +-- images/icons/facebook.svg | 11 +-- images/icons/figma.svg | 8 +- images/icons/flickr.svg | 18 +---- images/icons/generic-blog.svg | 11 +-- images/icons/generic-calendar.svg | 4 +- images/icons/generic-cloud.svg | 4 +- images/icons/generic-code.svg | 11 +-- images/icons/generic-computer.svg | 4 +- images/icons/generic-email-alt.svg | 11 +-- images/icons/generic-email.svg | 4 +- images/icons/generic-homepage.svg | 4 +- images/icons/generic-map.svg | 4 +- images/icons/generic-phone.svg | 11 +-- images/icons/generic-review.svg | 4 +- images/icons/generic-rss.svg | 11 +-- images/icons/generic-shopping-bag.svg | 4 +- images/icons/generic-shopping-tag.svg | 11 +-- images/icons/generic-sms.svg | 4 +- images/icons/generic-website.svg | 11 +-- images/icons/github.svg | 11 +-- images/icons/gitlab.svg | 10 +-- images/icons/gofundme.svg | 7 +- images/icons/goodreads.svg | 12 +-- images/icons/google-drive.svg | 16 +--- images/icons/google-play.svg | 7 +- images/icons/google-podcasts.svg | 20 +---- images/icons/google-scholar.svg | 14 +--- images/icons/hashnode.svg | 24 +----- images/icons/instagram.svg | 11 +-- images/icons/kick-alt.svg | 28 +------ images/icons/kick.svg | 24 +----- images/icons/kickstarter.svg | 16 +--- images/icons/kit.svg | 11 +-- images/icons/ko-fi.svg | 6 +- images/icons/last-fm.svg | 4 +- images/icons/letterboxd.svg | 8 +- images/icons/line.svg | 4 +- images/icons/linkedin.svg | 11 +-- images/icons/littlelink.svg | 17 +---- images/icons/mailchimp.svg | 11 +-- images/icons/mastodon.svg | 16 +--- images/icons/medium.svg | 6 +- images/icons/messenger.svg | 11 +-- images/icons/microsoft.svg | 7 +- images/icons/ngl.svg | 2 +- images/icons/notion.svg | 15 +--- images/icons/onlyfans.svg | 5 +- images/icons/patreon.svg | 11 +-- images/icons/paypal.svg | 6 +- images/icons/pinterest.svg | 12 +-- images/icons/product-hunt.svg | 12 +-- images/icons/read-cv.svg | 11 +-- images/icons/redbubble.svg | 11 +-- images/icons/reddit.svg | 105 +------------------------- images/icons/revolut.svg | 5 +- images/icons/shop.svg | 11 +-- images/icons/signal.svg | 11 +-- images/icons/slack.svg | 11 +-- images/icons/snapchat.svg | 12 +-- images/icons/soundcloud.svg | 4 +- images/icons/spotify-alt.svg | 11 +-- images/icons/spotify.svg | 11 +-- images/icons/square.svg | 12 +-- images/icons/stack-overflow.svg | 12 +-- images/icons/steam.svg | 11 +-- images/icons/strava.svg | 4 +- images/icons/telegram.svg | 11 +-- images/icons/threads.svg | 4 +- images/icons/threema.svg | 11 +-- images/icons/tiktok.svg | 13 +--- images/icons/trakt.svg | 14 +--- images/icons/trello.svg | 20 +---- images/icons/tumblr.svg | 4 +- images/icons/twitch.svg | 6 +- images/icons/unsplash.svg | 11 +-- images/icons/untappd.svg | 5 +- images/icons/upwork.svg | 4 +- images/icons/venmo.svg | 4 +- images/icons/vimeo.svg | 4 +- images/icons/vrchat.svg | 3 +- images/icons/vsco.svg | 11 +-- images/icons/whatsapp.svg | 22 +----- images/icons/wordpress.svg | 11 +-- images/icons/x.svg | 4 +- images/icons/youtube-music.svg | 13 +--- images/icons/youtube.svg | 5 +- images/icons/zoom.svg | 4 +- images/littlelink.png | Bin 2991 -> 2710 bytes images/littlelink.svg | 12 +-- images/littlelink@2x.png | Bin 8812 -> 7665 bytes 117 files changed, 115 insertions(+), 1266 deletions(-) diff --git a/images/icons/amazon-music.svg b/images/icons/amazon-music.svg index 1d74ad06..5e392e33 100644 --- a/images/icons/amazon-music.svg +++ b/images/icons/amazon-music.svg @@ -1,17 +1 @@ - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/amazon.svg b/images/icons/amazon.svg index 4dfc77f8..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 index b5bff105..152598fa 100644 --- a/images/icons/apple-music-alt.svg +++ b/images/icons/apple-music-alt.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/apple-music.svg b/images/icons/apple-music.svg index 846eb200..c4a5a6b2 100644 --- a/images/icons/apple-music.svg +++ b/images/icons/apple-music.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/apple-podcasts-alt.svg b/images/icons/apple-podcasts-alt.svg index b029a7e8..de30ad88 100644 --- a/images/icons/apple-podcasts-alt.svg +++ b/images/icons/apple-podcasts-alt.svg @@ -1,14 +1 @@ - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/apple-podcasts.svg b/images/icons/apple-podcasts.svg index 2e4d203c..9d8e414f 100644 --- a/images/icons/apple-podcasts.svg +++ b/images/icons/apple-podcasts.svg @@ -1,18 +1 @@ - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/apple.svg b/images/icons/apple.svg index fe122330..6eb6a008 100644 --- a/images/icons/apple.svg +++ b/images/icons/apple.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/artstation.svg b/images/icons/artstation.svg index 849010fc..e8fd6b6a 100644 --- a/images/icons/artstation.svg +++ b/images/icons/artstation.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/images/icons/bandcamp.svg b/images/icons/bandcamp.svg index 7dce88b4..c68ce86f 100644 --- a/images/icons/bandcamp.svg +++ b/images/icons/bandcamp.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/images/icons/behance.svg b/images/icons/behance.svg index e1b92f65..00116cab 100644 --- a/images/icons/behance.svg +++ b/images/icons/behance.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/blog.svg b/images/icons/blog.svg index 063390fa..ac23f7f0 100644 --- a/images/icons/blog.svg +++ b/images/icons/blog.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/bluesky-alt.svg b/images/icons/bluesky-alt.svg index 9e04bb07..716e8737 100644 --- a/images/icons/bluesky-alt.svg +++ b/images/icons/bluesky-alt.svg @@ -1,38 +1 @@ - - - - - - + \ No newline at end of file diff --git a/images/icons/bluesky.svg b/images/icons/bluesky.svg index 8eba5b0d..8742cd76 100644 --- a/images/icons/bluesky.svg +++ b/images/icons/bluesky.svg @@ -1,38 +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 index 1a6e5009..a273355b 100644 --- a/images/icons/buy-me-a-coffee.svg +++ b/images/icons/buy-me-a-coffee.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/cal.svg b/images/icons/cal.svg index 1af57fdf..cec7ea5c 100644 --- a/images/icons/cal.svg +++ b/images/icons/cal.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/images/icons/calendly.svg b/images/icons/calendly.svg index acb104e9..a56807c7 100644 --- a/images/icons/calendly.svg +++ b/images/icons/calendly.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/cash-app-btc.svg b/images/icons/cash-app-btc.svg index 81c78b64..0c282232 100644 --- a/images/icons/cash-app-btc.svg +++ b/images/icons/cash-app-btc.svg @@ -1,20 +1 @@ - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/cash-app-dollar.svg b/images/icons/cash-app-dollar.svg index 276416ca..1e9ef1a9 100644 --- a/images/icons/cash-app-dollar.svg +++ b/images/icons/cash-app-dollar.svg @@ -1,20 +1 @@ - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/cash-app-pound.svg b/images/icons/cash-app-pound.svg index 6220f75b..84edc5bb 100644 --- a/images/icons/cash-app-pound.svg +++ b/images/icons/cash-app-pound.svg @@ -1,20 +1 @@ - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/dev-to.svg b/images/icons/dev-to.svg index 4e9896fe..2d25a8eb 100644 --- a/images/icons/dev-to.svg +++ b/images/icons/dev-to.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/discogs-alt.svg b/images/icons/discogs-alt.svg index fc36ae63..f91e5c1e 100644 --- a/images/icons/discogs-alt.svg +++ b/images/icons/discogs-alt.svg @@ -1,27 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/images/icons/discogs.svg b/images/icons/discogs.svg index 2e516565..08d99aa9 100644 --- a/images/icons/discogs.svg +++ b/images/icons/discogs.svg @@ -1,27 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/images/icons/discord.svg b/images/icons/discord.svg index 0d23b23f..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 index 4d36ccf6..f73d21f6 100644 --- a/images/icons/dribbble.svg +++ b/images/icons/dribbble.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/email-alt.svg b/images/icons/email-alt.svg index 80facf0b..2cd5c518 100644 --- a/images/icons/email-alt.svg +++ b/images/icons/email-alt.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/email.svg b/images/icons/email.svg index b494f4eb..b00cab14 100644 --- a/images/icons/email.svg +++ b/images/icons/email.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/etsy.svg b/images/icons/etsy.svg index 9be5ae0f..bd82581c 100644 --- a/images/icons/etsy.svg +++ b/images/icons/etsy.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/facebook.svg b/images/icons/facebook.svg index 583ffe2b..337ac701 100644 --- a/images/icons/facebook.svg +++ b/images/icons/facebook.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/figma.svg b/images/icons/figma.svg index 297e4486..60b2398e 100644 --- a/images/icons/figma.svg +++ b/images/icons/figma.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/images/icons/flickr.svg b/images/icons/flickr.svg index d3898a1a..79a005ea 100644 --- a/images/icons/flickr.svg +++ b/images/icons/flickr.svg @@ -1,17 +1 @@ - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/generic-blog.svg b/images/icons/generic-blog.svg index c9a9ae5f..d107c7b9 100644 --- a/images/icons/generic-blog.svg +++ b/images/icons/generic-blog.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/generic-calendar.svg b/images/icons/generic-calendar.svg index 49dfe191..90a70c9a 100644 --- a/images/icons/generic-calendar.svg +++ b/images/icons/generic-calendar.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/generic-cloud.svg b/images/icons/generic-cloud.svg index a879a3e1..d8e2a657 100644 --- a/images/icons/generic-cloud.svg +++ b/images/icons/generic-cloud.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/generic-code.svg b/images/icons/generic-code.svg index b8d9479d..4d7999b1 100644 --- a/images/icons/generic-code.svg +++ b/images/icons/generic-code.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/generic-computer.svg b/images/icons/generic-computer.svg index 5d582f4b..c19b60c5 100644 --- a/images/icons/generic-computer.svg +++ b/images/icons/generic-computer.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/generic-email-alt.svg b/images/icons/generic-email-alt.svg index d3e6a061..84c2a466 100644 --- a/images/icons/generic-email-alt.svg +++ b/images/icons/generic-email-alt.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/generic-email.svg b/images/icons/generic-email.svg index dd44d150..b77761cc 100644 --- a/images/icons/generic-email.svg +++ b/images/icons/generic-email.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/generic-homepage.svg b/images/icons/generic-homepage.svg index dd471256..82343d1f 100644 --- a/images/icons/generic-homepage.svg +++ b/images/icons/generic-homepage.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/generic-map.svg b/images/icons/generic-map.svg index d8f8e849..fa89872a 100644 --- a/images/icons/generic-map.svg +++ b/images/icons/generic-map.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/generic-phone.svg b/images/icons/generic-phone.svg index e83096bf..13af93de 100644 --- a/images/icons/generic-phone.svg +++ b/images/icons/generic-phone.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/generic-review.svg b/images/icons/generic-review.svg index 8b93dc91..22e09aef 100644 --- a/images/icons/generic-review.svg +++ b/images/icons/generic-review.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/generic-rss.svg b/images/icons/generic-rss.svg index e4be1652..989ebe92 100644 --- a/images/icons/generic-rss.svg +++ b/images/icons/generic-rss.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/generic-shopping-bag.svg b/images/icons/generic-shopping-bag.svg index 4c74f568..4e22ed55 100644 --- a/images/icons/generic-shopping-bag.svg +++ b/images/icons/generic-shopping-bag.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/generic-shopping-tag.svg b/images/icons/generic-shopping-tag.svg index 8774852c..15bdb68d 100644 --- a/images/icons/generic-shopping-tag.svg +++ b/images/icons/generic-shopping-tag.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/generic-sms.svg b/images/icons/generic-sms.svg index 5d750216..3d4adf42 100644 --- a/images/icons/generic-sms.svg +++ b/images/icons/generic-sms.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/generic-website.svg b/images/icons/generic-website.svg index 919574e3..a3623c92 100644 --- a/images/icons/generic-website.svg +++ b/images/icons/generic-website.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/github.svg b/images/icons/github.svg index 6994757d..bfdc3594 100644 --- a/images/icons/github.svg +++ b/images/icons/github.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/gitlab.svg b/images/icons/gitlab.svg index 816f2747..e17e1464 100644 --- a/images/icons/gitlab.svg +++ b/images/icons/gitlab.svg @@ -1,9 +1 @@ - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/gofundme.svg b/images/icons/gofundme.svg index 1db8fb83..0944d4b0 100644 --- a/images/icons/gofundme.svg +++ b/images/icons/gofundme.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/images/icons/goodreads.svg b/images/icons/goodreads.svg index 50c45f97..7edf57a8 100644 --- a/images/icons/goodreads.svg +++ b/images/icons/goodreads.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/google-drive.svg b/images/icons/google-drive.svg index 4aff9866..56620e2d 100644 --- a/images/icons/google-drive.svg +++ b/images/icons/google-drive.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/google-play.svg b/images/icons/google-play.svg index b72aea58..010d6208 100644 --- a/images/icons/google-play.svg +++ b/images/icons/google-play.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/images/icons/google-podcasts.svg b/images/icons/google-podcasts.svg index 792b51f2..e5962117 100644 --- a/images/icons/google-podcasts.svg +++ b/images/icons/google-podcasts.svg @@ -1,19 +1 @@ - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/google-scholar.svg b/images/icons/google-scholar.svg index 929e0e60..59120820 100644 --- a/images/icons/google-scholar.svg +++ b/images/icons/google-scholar.svg @@ -1,13 +1 @@ - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/hashnode.svg b/images/icons/hashnode.svg index 46063763..4e42d84f 100644 --- a/images/icons/hashnode.svg +++ b/images/icons/hashnode.svg @@ -1,23 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/instagram.svg b/images/icons/instagram.svg index 2e7eead6..841d3e89 100644 --- a/images/icons/instagram.svg +++ b/images/icons/instagram.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/kick-alt.svg b/images/icons/kick-alt.svg index e21eb883..f9dd757f 100644 --- a/images/icons/kick-alt.svg +++ b/images/icons/kick-alt.svg @@ -1,27 +1 @@ - - kick-svg - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/images/icons/kick.svg b/images/icons/kick.svg index 8a8589f2..d4568b62 100644 --- a/images/icons/kick.svg +++ b/images/icons/kick.svg @@ -1,23 +1 @@ - - Kick_logo-svg - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/images/icons/kickstarter.svg b/images/icons/kickstarter.svg index 2b0c4e7f..71ce32fe 100644 --- a/images/icons/kickstarter.svg +++ b/images/icons/kickstarter.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/kit.svg b/images/icons/kit.svg index 8708a3ad..a972f9a5 100644 --- a/images/icons/kit.svg +++ b/images/icons/kit.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/ko-fi.svg b/images/icons/ko-fi.svg index eea0dbd5..8bcd6858 100644 --- a/images/icons/ko-fi.svg +++ b/images/icons/ko-fi.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/images/icons/last-fm.svg b/images/icons/last-fm.svg index 468b66b9..503b94db 100644 --- a/images/icons/last-fm.svg +++ b/images/icons/last-fm.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/letterboxd.svg b/images/icons/letterboxd.svg index 27efec7b..d6c518d0 100644 --- a/images/icons/letterboxd.svg +++ b/images/icons/letterboxd.svg @@ -1,7 +1 @@ - - - - - - - + \ No newline at end of file diff --git a/images/icons/line.svg b/images/icons/line.svg index 059a13d0..11f9b43e 100644 --- a/images/icons/line.svg +++ b/images/icons/line.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/linkedin.svg b/images/icons/linkedin.svg index 88029891..e323d7ea 100644 --- a/images/icons/linkedin.svg +++ b/images/icons/linkedin.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/littlelink.svg b/images/icons/littlelink.svg index bf7b92cc..3a5a0073 100644 --- a/images/icons/littlelink.svg +++ b/images/icons/littlelink.svg @@ -1,16 +1 @@ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/mailchimp.svg b/images/icons/mailchimp.svg index f40e31fe..89f12b5a 100644 --- a/images/icons/mailchimp.svg +++ b/images/icons/mailchimp.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/mastodon.svg b/images/icons/mastodon.svg index c8769921..c71fe889 100644 --- a/images/icons/mastodon.svg +++ b/images/icons/mastodon.svg @@ -1,15 +1 @@ - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/medium.svg b/images/icons/medium.svg index dbe8d4f6..e8ea6473 100644 --- a/images/icons/medium.svg +++ b/images/icons/medium.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/images/icons/messenger.svg b/images/icons/messenger.svg index 82a7a7ff..c638a64f 100644 --- a/images/icons/messenger.svg +++ b/images/icons/messenger.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/microsoft.svg b/images/icons/microsoft.svg index 8e7945c7..a50ed2da 100644 --- a/images/icons/microsoft.svg +++ b/images/icons/microsoft.svg @@ -1,6 +1 @@ - - - - - - + \ No newline at end of file diff --git a/images/icons/ngl.svg b/images/icons/ngl.svg index 3c215b47..b91d77ce 100644 --- a/images/icons/ngl.svg +++ b/images/icons/ngl.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/images/icons/notion.svg b/images/icons/notion.svg index ceaf7af8..fb878e02 100644 --- a/images/icons/notion.svg +++ b/images/icons/notion.svg @@ -1,14 +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 31828a2c..46abf0f8 100644 --- a/images/icons/patreon.svg +++ b/images/icons/patreon.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/paypal.svg b/images/icons/paypal.svg index 56c459b3..08034264 100644 --- a/images/icons/paypal.svg +++ b/images/icons/paypal.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/images/icons/pinterest.svg b/images/icons/pinterest.svg index 16607c94..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/product-hunt.svg b/images/icons/product-hunt.svg index 9b152973..9b578cf9 100644 --- a/images/icons/product-hunt.svg +++ b/images/icons/product-hunt.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/read-cv.svg b/images/icons/read-cv.svg index bdbf13b8..1d9863c5 100644 --- a/images/icons/read-cv.svg +++ b/images/icons/read-cv.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/redbubble.svg b/images/icons/redbubble.svg index 142feee1..6d50d58e 100644 --- a/images/icons/redbubble.svg +++ b/images/icons/redbubble.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/reddit.svg b/images/icons/reddit.svg index 8b652612..42728fef 100644 --- a/images/icons/reddit.svg +++ b/images/icons/reddit.svg @@ -1,104 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/revolut.svg b/images/icons/revolut.svg index 8619d4b1..c962f4f3 100644 --- a/images/icons/revolut.svg +++ b/images/icons/revolut.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/images/icons/shop.svg b/images/icons/shop.svg index 7164626b..fcb1541e 100644 --- a/images/icons/shop.svg +++ b/images/icons/shop.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/signal.svg b/images/icons/signal.svg index 0ee0526e..38059c41 100644 --- a/images/icons/signal.svg +++ b/images/icons/signal.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/slack.svg b/images/icons/slack.svg index bbbf65cd..44f8fbf7 100644 --- a/images/icons/slack.svg +++ b/images/icons/slack.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/snapchat.svg b/images/icons/snapchat.svg index a788af5e..224170b2 100644 --- a/images/icons/snapchat.svg +++ b/images/icons/snapchat.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/soundcloud.svg b/images/icons/soundcloud.svg index 5cdfc00e..2598ed5d 100644 --- a/images/icons/soundcloud.svg +++ b/images/icons/soundcloud.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/spotify-alt.svg b/images/icons/spotify-alt.svg index 1eb2109c..f51ee41a 100644 --- a/images/icons/spotify-alt.svg +++ b/images/icons/spotify-alt.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/spotify.svg b/images/icons/spotify.svg index 8e3860a3..0e5b39ca 100644 --- a/images/icons/spotify.svg +++ b/images/icons/spotify.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/square.svg b/images/icons/square.svg index 46bb4da7..52c42f09 100644 --- a/images/icons/square.svg +++ b/images/icons/square.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/stack-overflow.svg b/images/icons/stack-overflow.svg index e548a790..282f0382 100644 --- a/images/icons/stack-overflow.svg +++ b/images/icons/stack-overflow.svg @@ -1,11 +1 @@ - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/steam.svg b/images/icons/steam.svg index 6af65ae6..4da4e0bc 100644 --- a/images/icons/steam.svg +++ b/images/icons/steam.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/strava.svg b/images/icons/strava.svg index a9f20fba..4befe827 100644 --- a/images/icons/strava.svg +++ b/images/icons/strava.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/telegram.svg b/images/icons/telegram.svg index 9df81e67..88b40997 100644 --- a/images/icons/telegram.svg +++ b/images/icons/telegram.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/threads.svg b/images/icons/threads.svg index c6fc44b2..d0dab5bb 100644 --- a/images/icons/threads.svg +++ b/images/icons/threads.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/threema.svg b/images/icons/threema.svg index 3f07b71a..6a6503d6 100644 --- a/images/icons/threema.svg +++ b/images/icons/threema.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/tiktok.svg b/images/icons/tiktok.svg index 50f5acfe..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/trakt.svg b/images/icons/trakt.svg index 5cda61e3..de82e765 100644 --- a/images/icons/trakt.svg +++ b/images/icons/trakt.svg @@ -1,13 +1 @@ - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/trello.svg b/images/icons/trello.svg index a55874c8..9bae6e29 100644 --- a/images/icons/trello.svg +++ b/images/icons/trello.svg @@ -1,19 +1 @@ - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/tumblr.svg b/images/icons/tumblr.svg index 6b14955e..d0e93f2b 100644 --- a/images/icons/tumblr.svg +++ b/images/icons/tumblr.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/twitch.svg b/images/icons/twitch.svg index afe7e8e0..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/unsplash.svg b/images/icons/unsplash.svg index 2051ee1f..b9c608cd 100755 --- a/images/icons/unsplash.svg +++ b/images/icons/unsplash.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/untappd.svg b/images/icons/untappd.svg index f1106a9d..5042594c 100644 --- a/images/icons/untappd.svg +++ b/images/icons/untappd.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/images/icons/upwork.svg b/images/icons/upwork.svg index cb9fb98b..2356fc95 100644 --- a/images/icons/upwork.svg +++ b/images/icons/upwork.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/venmo.svg b/images/icons/venmo.svg index c38ea3c8..324eb840 100644 --- a/images/icons/venmo.svg +++ b/images/icons/venmo.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/vimeo.svg b/images/icons/vimeo.svg index 26c20f1d..ad2a3ae3 100644 --- a/images/icons/vimeo.svg +++ b/images/icons/vimeo.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/vrchat.svg b/images/icons/vrchat.svg index 1d1d5b65..4d90ffe2 100644 --- a/images/icons/vrchat.svg +++ b/images/icons/vrchat.svg @@ -1,2 +1 @@ - - + \ No newline at end of file diff --git a/images/icons/vsco.svg b/images/icons/vsco.svg index c91f124d..9059e2c6 100644 --- a/images/icons/vsco.svg +++ b/images/icons/vsco.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/whatsapp.svg b/images/icons/whatsapp.svg index 6d1318ed..979145bf 100644 --- a/images/icons/whatsapp.svg +++ b/images/icons/whatsapp.svg @@ -1,21 +1 @@ - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/wordpress.svg b/images/icons/wordpress.svg index 446906e4..dddc9ccd 100644 --- a/images/icons/wordpress.svg +++ b/images/icons/wordpress.svg @@ -1,10 +1 @@ - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/x.svg b/images/icons/x.svg index a239dff6..393e68b1 100644 --- a/images/icons/x.svg +++ b/images/icons/x.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/icons/youtube-music.svg b/images/icons/youtube-music.svg index 93a80732..ba8cc895 100644 --- a/images/icons/youtube-music.svg +++ b/images/icons/youtube-music.svg @@ -1,12 +1 @@ - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/icons/youtube.svg b/images/icons/youtube.svg index 4f35613b..bdfcb3e7 100644 --- a/images/icons/youtube.svg +++ b/images/icons/youtube.svg @@ -1,4 +1 @@ - - - - + \ No newline at end of file diff --git a/images/icons/zoom.svg b/images/icons/zoom.svg index c26618e9..7b864f04 100644 --- a/images/icons/zoom.svg +++ b/images/icons/zoom.svg @@ -1,3 +1 @@ - - - + \ No newline at end of file diff --git a/images/littlelink.png b/images/littlelink.png index e1b3314a00a865589e32e4b09aa3d736ca490bdf..b38bd437cce32d5c883071af4648261a38530f98 100644 GIT binary patch delta 2703 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 JPDHLkV1f3+BrbCk^ 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 - - - - - - - - - - + \ No newline at end of file diff --git a/images/littlelink@2x.png b/images/littlelink@2x.png index e61ba11c86d82770f68184c8e88659477f8f2620..48629a38402eb1ea596997c3a5c50c040c451b9b 100644 GIT binary patch literal 7665 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͘kLu-7JlX{A(6-Qy1upZ8Jw@aE1&DC_tC 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 iC+_*-jrI0000 Date: Wed, 13 Nov 2024 01:04:11 -0500 Subject: [PATCH 12/23] v3 --- .gitignore | 1 + LICENSE.md | 2 +- README.md | 14 +- VERSION.md | 42 ++ css/brands.css | 1231 +++++++++++++---------------------- css/normalize.css | 427 ------------ css/reset.css | 91 +++ css/skeleton-auto.css | 279 -------- css/skeleton-dark.css | 261 -------- css/skeleton-light.css | 261 -------- css/style.css | 382 +++++++++++ images/avatar.png | Bin 0 -> 18823 bytes images/avatar@2x.png | Bin 0 -> 38576 bytes images/icons/ko-fi.svg | 21 +- images/icons/littlelink.svg | 12 +- images/icons/medium.svg | 13 +- images/littlelink.png | Bin 2710 -> 0 bytes images/littlelink.svg | 1 - images/littlelink@2x.png | Bin 7665 -> 0 bytes index.html | 609 ++++++++--------- privacy.html | 224 +++---- 21 files changed, 1355 insertions(+), 2516 deletions(-) create mode 100644 VERSION.md delete mode 100644 css/normalize.css create mode 100644 css/reset.css delete mode 100644 css/skeleton-auto.css delete mode 100644 css/skeleton-dark.css delete mode 100644 css/skeleton-light.css create mode 100644 css/style.css create mode 100644 images/avatar.png create mode 100644 images/avatar@2x.png delete mode 100644 images/littlelink.png delete mode 100644 images/littlelink.svg delete mode 100644 images/littlelink@2x.png diff --git a/.gitignore b/.gitignore index 4befed30..a036416d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +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 a2b84a04..e7a24459 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,25 @@ -![Logo](https://cdn.cottle.cloud/littlelink/littlelink.gif) +![Logo](https://cdn.cottle.cloud/GitHub/LittleLink/littlelink.gif) # 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). --- ### 🌞 Themes and Accessibility -LittleLink offers both `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 `skeleton-light.css` or `skeleton-dark.css`. For those who prefer an automatic adjustment, setting your CSS to `skeleton-auto.css` enables the theme to adapt based on the device's system settings. 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. +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. -![Theme](https://cdn.cottle.cloud/littlelink/themesupport.gif) +![Theme](https://cdn.cottle.cloud/GitHub/LittleLink/ThemeSupport.gif) --- ### 🥇 Performance -![Performance](https://cdn.cottle.cloud/littlelink/PerformanceBlock.svg) +![Performance](https://cdn.cottle.cloud/GitHub/LittleLink/ranking.gif) -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. I chose [Skeleton](http://getskeleton.com/) as the foundation, enabling me to create something minimal and quick, removing the unnecessary bloat you would get from using a large framework for a page that requires nothing more than simplicity. +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 -![Publish](https://cdn.cottle.cloud/littlelink/Deployment.svg) +![Publish](https://cdn.cottle.cloud/GitHub/LittleLink/test/css/deploy.gif) 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. 🤞 @@ -56,7 +56,7 @@ Duplicate the [LittleLink Template on Figma Community](https://www.figma.com/com #### 🗃️ Misc • [Khashayar](https://github.com/khashayarzavosh) is building [LittleLink Admin](https://github.com/khashayarzavosh/admin-littlelink) which lets you host your own admin portal to manage LittleLink! -• [Julian](https://github.com/JulianPrieber) is building [LittleLink Custom](https://github.com/JulianPrieber/littlelink-custom) which approaches the admin portal with an easy-to-use "plug-and-play" mentality! +• [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). --- diff --git a/VERSION.md b/VERSION.md new file mode 100644 index 00000000..7b929990 --- /dev/null +++ b/VERSION.md @@ -0,0 +1,42 @@ +# LittleLink Version History + +## Current Version: v3.0.0 + +### 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 themeing 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 to us their Almost Black +- Updated Ko-fi button color and updated their logo +- Updated Medium logo + +--- +For the complete history of changes, please visit: +https://github.com/sethcottle/littlelink/releases \ No newline at end of file diff --git a/css/brands.css b/css/brands.css index 0f04e300..a3118aaa 100644 --- a/css/brands.css +++ b/css/brands.css @@ -1,1079 +1,722 @@ /* -* 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: 100%; - text-align: center; - vertical-align: middle; - font-size: 18px; - width: 300px; - font-weight: 700; - line-height: 20px; - padding: 14px 12px 12px 12px; - letter-spacing: 0.1px; - white-space: wrap; - outline: none; - border-radius: 8px; - cursor: pointer; - -} -button:hover, -.button:focus { - color: #212121; - border-color: #888; - outline: #7AB8FF solid 3px -} -.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: #2457F5; -} -.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; - border: 1px solid #212121; -} -.button.button-amazon:hover, -.button.button-amazon:focus { - filter: brightness(90%); +.button-amazon { + --button-text:#000000; + --button-background:#FFFFFF; + --button-border:1px solid #212121; } /* Amazon Music */ -.button.button-amazon-music { - color: #000000; - background-color: #25D1DA; -} -.button.button-amazon-music:hover, -.button.button-amazon-music:focus { - filter: brightness(90%); +.button-amazon-music { + --button-text:#000000; + --button-background:#25D1DA; } /* Apple App Store */ -.button.button-appstore { - color: #FFFFFF; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-appstore:hover, -.button.button-appstore:focus { - filter: brightness(90%); +.button-appstore { + --button-text:#FFFFFF; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Apple Music */ -.button.button-apple-music { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-apple-music:hover, -.button.button-apple-music:focus { - filter: brightness(90%); +.button-apple-music { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Apple Music Alt */ -.button.button-apple-music-alt { - color: #ffffff; - background-image: linear-gradient(to bottom, #FB5C74, #FA233B); -} -.button.button-apple-music-alt:hover, -.button.button-apple-music-alt:focus { - filter: brightness(90%); +.button-apple-music-alt { + --button-text:#ffffff; + background-image:linear-gradient(to bottom,#FB5C74,#FA233B); } /* Apple Podcasts */ -.button.button-apple-podcasts { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-apple-podcasts:hover, -.button.button-apple-podcasts:focus { - filter: brightness(90%); +.button-apple-podcasts { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Apple Podcasts Alt */ -.button.button-apple-podcasts-alt { - color: #ffffff; - background-image: linear-gradient(to bottom, #F452FF, #832BC1); -} -.button.button-apple-podcasts-alt:hover, -.button.button-apple-podcasts-alt:focus { - filter: brightness(90%); -} - -/* ArtStation */ -.button.button-artstation { - color: #ffffff; - background-color: #18181C; - border: 1px solid #FFFFFF; -} -.button.button-artstation:hover, -.button.button-artstation:focus { - filter: brightness(90%); +.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.button-bandcamp:hover, -.button.button-bandcamp:focus { - filter: brightness(90%); +.button-bandcamp { + --button-text:#ffffff; + --button-background:#1d9fc3; } /* Behance */ -.button.button-behance { - color: #ffffff; - background-color: #0057FF; -} -.button.button-behance:hover, -.button.button-behance:focus { - filter: brightness(90%); +.button-behance { + --button-text:#ffffff; + --button-background:#0057FF; + --button-border:1px solid #FFFFFF; } /* Bluesky */ -.button.button-bluesky { - color: #FFFFFF; - background-color: #1185FE; -} - -.button.button-bluesky:hover, -.button.button-bluesky:focus { - filter: brightness(90%); +.button-bluesky { + --button-text:#FFFFFF; + --button-background:#1185FE; } /* Bluesky Alt */ -.button.button-bluesky-alt { - color: #000000; - background-color: #FFFFFF; - border: 1px solid #000000; -} -.button.button-bluesky-alt:hover, -.button.button-bluesky-alt:focus { - filter: brightness(90%); +.button-bluesky-alt { + --button-text:#000000; + --button-background:#FFFFFF; + --button-border:1px solid #000000; } /* Buy Me a Coffee */ -.button.button-coffee { - color: #000000; - background-color: #ffdd00; -} -.button.button-coffee:hover, -.button.button-coffee:focus { - filter: brightness(90%); +.button-coffee { + --button-text:#000000; + --button-background:#ffdd00; } /* Cal.com */ -.button.button-cal { - color: #FFFFFF; - background-color: #292929; - border: 1px solid #FFFFFF; -} -.button.button-cal:hover, -.button.button-cal:focus { - filter: brightness(90%); +.button-cal { + --button-text:#FFFFFF; + --button-background:#292929; + --button-border:1px solid #FFFFFF; } /* Calendly */ -.button.button-calendly { - color: #FFFFFF; - background-color: #006BFF; -} -.button.button-calendly:hover, -.button.button-calendly:focus { - filter: brightness(90%); +.button-calendly { + --button-text:#FFFFFF; + --button-background:#006BFF; } /* Cash App */ -.button.button-cash-app { - color: #ffffff; - background-image: linear-gradient(to bottom, #00d64b, #00c244); -} -.button.button-cash-app:hover, -.button.button-cash-app: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; - border: 1px solid #212121; -} -.button.button-dev-to:hover, -.button.button-dev-to:focus { - filter: brightness(90%); +.button-dev-to { + --button-text:#000000; + --button-background:#f5f5f5; + --button-border:1px solid #212121; } /* Discogs */ -.button.button-discogs { - color: #000000; - background-color: #FFFFFF; - border: 1px solid #000000 -} -.button.button-discogs:hover, -.button.button-discogs:focus { - filter: brightness(90%); +.button-discogs { + --button-text:#000000; + --button-background:#FFFFFF; + --button-border:1px solid #000000; } /* Discogs Alt */ -.button.button-discogs-alt { - color: #FFFFFF; - background-color: #000000; - border: 1px solid #FFFFFF -} -.button.button-discogs-alt:hover, -.button.button-discogs-alt:focus { - filter: brightness(90%); +.button-discogs-alt { + --button-text:#FFFFFF; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Discord */ -.button.button-discord { - color: #ffffff; - background-color: #161CBB; -} -.button.button-discord:hover, -.button.button-discord:focus { - filter: brightness(90%); +.button-discord { + --button-text:#ffffff; + --button-background:#5865F2; } /* Dribbble */ -.button.button-dribbble { - color: #000000; - background-color: #FFFFFF; - border: 1px solid #212121; -} -.button.button-dribbble:hover, -.button.button-dribbble:focus { - filter: brightness(90%); +.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; - border: 1px solid #FFFFFF; -} -.button.button-figma:hover, -.button.button-figma:focus { - filter: brightness(90%); +.button-figma { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Fiverr */ -.button.button-fiverr { - color: #ffffff; - background-color: #1DBF73; -} -.button.button-fiverr:hover, -.button.button-fiverr:focus { - filter: brightness(90%); +.button-fiverr { + --button-text:#ffffff; + --button-background:#1DBF73; } /* Flickr */ -.button.button-flickr { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.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; - border: 1px solid #FFFFFF; -} -.button.button-github:hover, -.button.button-github:focus { - filter: brightness(90%); +.button-github { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* GitLab */ -.button.button-gitlab { - color: #ffffff; - background-color: #6151b2; -} -.button.button-gitlab:hover, -.button.button-gitlab:focus { - filter: brightness(90%); +.button-gitlab { + --button-text:#ffffff; + --button-background:#6151b2; } /* GoFundMe */ -.button.button-gofundme { - color: #ffffff; - background-color: #02A95C; -} -.button.button-gofundme:hover, -.button.button-gofundme:focus { - filter: brightness(90%); +.button-gofundme { + --button-text:#ffffff; + --button-background:#02A95C; } /* Goodreads */ -.button.button-goodreads { - color: #333333; - background-color: #f3f1e6; - border: 1px solid #212121; -} -.button.button-goodreads:hover, -.button.button-goodreads:focus { - filter: brightness(90%); +.button-goodreads { + --button-text:#333333; + --button-background:#f3f1e6; + --button-border:1px solid #212121; } /* Google Black */ -.button.button-google-black { - color: #FFFFFF; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-google-black:hover, -.button.button-google-black:focus { - filter: brightness(90%); +.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; - border: 1px solid #FFFFFF; -} -.button.button-playstore:hover, -.button.button-playstore:focus { - filter: brightness(90%); +.button-playstore { + --button-text:#FFFFFF; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Google Scholar */ -.button.button-google-scholar { - color: #000000; - background-color: #FFFFFF; - border: 1px solid #212121; -} -.button.button-google-scholar:hover, -.button.button-google-scholar:focus { - filter: brightness(90%); +.button-google-scholar { + --button-text:#000000; + --button-background:#FFFFFF; + --button-border:1px solid #212121; } /* Hashnode */ -.button.button-hashnode { - color: #000000; - background-color: #ffffff; - border: 1px solid #212121; -} -.button.button-hashnode:hover, -.button.button-hashnode:focus { - filter: brightness(90%); +.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); } /* Kick */ -.button.button-kick { - background-color:#000000; - color: #ffffff; - border: 1px solid #ffffff; -} -.button.button-kick:hover { - filter: brightness(90%); +.button-kick { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #ffffff; } /* Kick Alt */ -.button.button-kick-alt { - background-color:#01e701; - color: #000; -} -.button.button-kick-alt:hover { - filter: brightness(90%); +.button-kick-alt { + --button-text:#000000; + --button-background:#01e701; } /* Kickstarter */ -.button.button-kickstarter { - color: #ffffff; - background-color: #05ce78; -} -.button.button-kickstarter:hover, -.button.button-kickstarter:focus { - filter: brightness(90%); +.button-kickstarter { + --button-text:#ffffff; + --button-background:#05ce78; } /* Kit */ -.button.button-kit { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-kit:hover, -.button.button-kit:focus { - filter: brightness(90%); +.button-kit { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Ko-fi */ -.button.button-ko-fi { - color: #ffffff; - background-color: #13C3FF; -} -.button.button-ko-fi:hover, -.button.button-ko-fi:focus { - filter: brightness(90%); +.button-ko-fi { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Last.fm */ -.button.button-last-fm { - color: #ffffff; - background-color: #D51007; -} -.button.button-last-fm:hover, -.button.button-last-fm:focus { - filter: brightness(90%); +.button-last-fm { + --button-text:#ffffff; + --button-background:#D51007; } /* Letterboxd */ -.button.button-letterboxd { - color: #ffffff; - background-color: #2c3440; - border: 1px solid #FFFFFF; -} -.button.button-letterboxd:hover, -.button.button-letterboxd:focus { - filter: brightness(90%); +.button-letterboxd { + --button-text:#ffffff; + --button-background:#2c3440; + --button-border:1px solid #FFFFFF; } /* Line */ -.button.button-line { - color: #FFFFFF; - background-color: #06C755; -} -.button.button-line:hover, -.button.button-line:focus { - filter: brightness(90%); +.button-line { + --button-text:#FFFFFF; + --button-background:#06C755; } /* LinkedIn */ -.button.button-linked { - color: #ffffff; - background-color: #2867b2; -} -.button.button-linked:hover, -.button.button-linked:focus { - filter: brightness(90%); +.button-linked { + --button-text:#ffffff; + --button-background:#2867b2; } /* Mailchimp */ -.button.button-mailchimp { - color: #000000; - background-color: #FFE01B; -} -.button.button-mailchimp:hover, -.button.button-mailchimp:focus { - filter: brightness(90%); +.button-mailchimp { + --button-text:#000000; + --button-background:#FFE01B; } /* Mastodon */ -.button.button-mastodon { - color: #ffffff; - background-color: #17063B; - border: 1px solid #FFFFFF; -} -.button.button-mastodon:hover, -.button.button-mastodon:focus { - filter: brightness(90%); +.button-mastodon { + --button-text:#ffffff; + --button-background:#17063B; + --button-border:1px solid #FFFFFF; } /* Medium */ -.button.button-medium { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-medium:hover, -.button.button-medium:focus { - filter: brightness(90%); +.button-medium { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Microsoft */ -.button.button-microsoft { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-microsoft:hover, -.button.button-microsoft:focus { - filter: brightness(90%); -} - -/* NGL */ -.button.button-ngl { - color: #ffffff; - background-image: linear-gradient(-45deg, #ff8d10, #ec1187); -} -.button.button-ngl:hover, -.button.button-ngl:focus { - filter: brightness(90%); +.button-microsoft { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Notion */ -.button.button-notion { - color: #000000; - border: 1px solid #212121; - background-color: #ffffff; -} -.button.button-notion:hover, -.button.button-notion:focus { - filter: brightness(90%); +.button-notion { + --button-text:#000000; + --button-background:#ffffff; + --button-border:1px solid #212121; } /* OnlyFans */ -.button.button-onlyfans { - color: #ffffff; - background-color: #00AEEF; -} -.button.button-onlyfans:hover, -.button.button-onlyfans:focus { - filter: brightness(90%); +.button-onlyfans { + --button-text:#ffffff; + --button-background:#00AEEF; } /* Patreon */ -.button.button-patreon { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-patreon:hover, -.button.button-patreon:focus { - filter: brightness(90%); +.button-patreon { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* PayPal */ -.button.button-paypal { - color: #ffffff; - background-color: #003087; -} -.button.button-paypal:hover, -.button.button-paypal:focus { - filter: brightness(90%); +.button-paypal { + --button-text:#ffffff; + --button-background:#002991; + --button-border:1px solid #FFFFFF; } /* Pinterest */ -.button.button-pinterest { - color: #000000; - background-color: #ffe2eb; - border: 1px solid #212121; -} -.button.button-pinterest:hover, -.button.button-pinterest:focus { - filter: brightness(90%); -} - -/* Post.news */ -.button.button-post-news { - color: #ffffff; - background-color: #678BFF; -} -.button.button-post-news:hover, -.button.button-post-news:focus { - filter: brightness(90%); +.button-pinterest { + --button-text:#000000; + --button-background:#ffe2eb; + --button-border:1px solid #212121; } /* Product Hunt */ -.button.button-product-hunt { - color: #000000; - background-color: #ffffff; - border: 1px solid #212121; -} -.button.button-producthunt:hover, -.button.button-producthunt:focus { - filter: brightness(90%); +.button-product-hunt { + --button-text:#000000; + --button-background:#ffffff; + --button-border:1px solid #212121; } /* Read.cv */ -.button.button-read-cv { - color: #FFFFFF; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-read-cv:hover, -.button.button-read-cv:focus { - filter: brightness(90%); +.button-read-cv { + --button-text:#FFFFFF; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Redbubble */ -.button.button-redbubble { - color: #e41321; - background-color: #ffffff; - border: 1px solid #212121; -} -.button.button-redbubble:hover, -.button.button-redbubble:focus { - filter: brightness(90%); +.button-redbubble { + --button-text:#e41321; + --button-background:#ffffff; + --button-border:1px solid #212121; } /* Reddit */ -.button.button-reddit { - color: #FFFFFF; - background-color: #FF4500; -} -.button.button-reddit:hover, -.button.button-reddit:focus { - filter: brightness(90%); +.button-reddit { + --button-text:#FFFFFF; + --button-background:#FF4500; } /* Revolut */ -.button.button-revolut { - color: #000000; - background-color: #ffffff; - border: 1px solid black; -} -.button.button-revolut:hover, -.button.button-revolut:focus { - filter: brightness(90%); +.button-revolut { + --button-text:#000000; + --button-background:#ffffff; + --button-border:1px solid black; } /* Shop */ -.button.button-shop { - color: #ffffff; - background-color: #5A31F4; -} -.button.button-shop:hover, -.button.button-shop:focus { - filter: brightness(90%); +.button-shop { + --button-text:#ffffff; + --button-background:#5A31F4; } /* Signal */ -.button.button-signal { - color: #ffffff; - background-color: #3a76f0; -} -.button.button-signal:hover, -.button.button-signal:focus { - filter: brightness(90%); +.button-signal { + --button-text:#ffffff; + --button-background:#3a76f0; } /* Slack */ -.button.button-slack { - color: #000000; - background-color: #FFFFFF; - border: 1px solid #212121; -} -.button.button-slack:hover, -.button.button-slack:focus { - filter: brightness(90%); +.button-slack { + --button-text:#000000; + --button-background:#FFFFFF; + --button-border:1px solid #212121; } /* Snapchat */ -.button.button-snapchat { - color: #000000; - background-color: #fffc00; -} -.button.button-snapchat:hover, -.button.button-snapchat:focus { - filter: brightness(90%); +.button-snapchat { + --button-text:#000000; + --button-background:#fffc00; } /* SoundCloud */ -.button.button-soundcloud { - color: #ffffff; - background-color: #ff5500; -} -.button.button-soundcloud:hover, -.button.button-soundcloud:focus { - filter: brightness(90%); +.button-soundcloud { + --button-text:#ffffff; + --button-background:#ff5500; } /* Spotify */ -.button.button-spotify { - color: #191414; - background-color: #1db954; -} -.button.button-spotify:hover, -.button.button-spotify:focus { - filter: brightness(90%); +.button-spotify { + --button-text:#191414; + --button-background:#1db954; } /* Spotify Alt */ -.button.button-spotify-alt { - color: #FFFFFF; - background-color: #191414; - border: 1px solid #FFFFFF; -} -.button.button-spotify-alt:hover, -.button.button-spotify-alt:focus { - filter: brightness(90%); +.button-spotify-alt { + --button-text:#FFFFFF; + --button-background:#191414; + --button-border:1px solid #FFFFFF; } /* Square */ -.button.button-square { - color: #FFFFFF; - background-color: #006AFF; -} -.button.button-square:hover, -.button.button-square:focus { - filter: brightness(90%); +.button-square { + --button-text:#FFFFFF; + --button-background:#006AFF; } /* Stack Overflow */ -.button.button-stack-overflow { - color: #000000; - background-color: #FFFFFF; - border: 1px solid #000000; -} -.button.button-stack-overflow:hover, -.button.button-stack-overflow:focus { - filter: brightness(90%); +.button-stack-overflow { + --button-text:#000000; + --button-background:#FFFFFF; + --button-border:1px solid #000000; } /* Steam */ -.button.button-steam { - color: #ffffff; - background-image: linear-gradient(90deg, #08BBFF, #2B75FF); -} -.button.button-steam:hover, -.button.button-steam:focus { - filter: brightness(90%); +.button-steam { + --button-text:#ffffff; + background-image:linear-gradient(90deg,#08BBFF,#2B75FF); } /* Steam Alt */ -.button.button-steam-alt { - color: #ffffff; - background-image: linear-gradient(90deg, #09172a, #072a57, #0c5085); - border: 1px solid #FFFFFF; -} -.button.button-steam-alt:hover, -.button.button-steam-alt:focus { - filter: brightness(90%); +.button-steam-alt { + --button-text:#ffffff; + background-image:linear-gradient(90deg,#09172a,#072a57,#0c5085); + --button-border:1px solid #FFFFFF; } /* Strava */ -.button.button-strava { - color: #ffffff; - background-color: #fc5200; -} -.button.button-strava:hover, -.button.button-strava:focus { - filter: brightness(90%); +.button-strava { + --button-text:#ffffff; + --button-background:#fc5200; } /* Substack */ -.button.button-substack { - color: #ffffff; - background-color: #FF6719; -} -.button.button-substack:hover, -.button.button-substack:focus { - filter: brightness(90%); +.button-substack { + --button-text:#ffffff; + --button-background:#FF6719; } /* Telegram */ -.button.button-telegram { - color: #ffffff; - background-color: #3faee8; -} -.button.button-telegram:hover, -.button.button-telegram:focus { - filter: brightness(90%); +.button-telegram { + --button-text:#ffffff; + --button-background:#3faee8; } /* Threads */ -.button.button-threads { - color: #FFFFFF; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-threads:hover, -.button.button-threads:focus { - filter: brightness(90%); +.button-threads { + --button-text:#FFFFFF; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Threema */ -.button.button-threema { - color: #000000; - background-color: #3fe669; -} -.button.button-threema:hover, -.button.button-threema:focus { - filter: brightness(90%); +.button-threema { + --button-text:#000000; + --button-background:#3fe669; } /* TikTok */ -.button.button-tiktok { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-tiktok:hover, -.button.button-tiktok:focus { - filter: brightness(90%); +.button-tiktok { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* Trakt */ -.button.button-trakt { - color: #ffffff; - background-color: #ED1C24; -} -.button.button-trakt:hover, -.button.button-trakt:focus { - filter: brightness(90%); +.button-trakt { + --button-text:#ffffff; + --button-background:#ED1C24; } /* Trello */ -.button.button-trello { - color: #ffffff; - background-color: #0065ff; -} -.button.button-trello:hover, -.button.button-trello:focus { - filter: brightness(90%); +.button-trello { + --button-text:#ffffff; + --button-background:#0065ff; } /* Tumblr */ -.button.button-tumb { - color: #ffffff; - background-color: #131313; - border: 1px solid #FFFFFF; -} -.button.button-tumb:hover, -.button.button-tumb:focus { - filter: brightness(90%); +.button-tumb { + --button-text:#ffffff; + --button-background:#131313; + --button-border:1px solid #FFFFFF; } /* Twitch */ -.button.button-twitch { - color: #ffffff; - background-color: #9146ff; -} -.button.button-twitch:hover, -.button.button-twitch:focus { - filter: brightness(90%); +.button-twitch { + --button-text:#ffffff; + --button-background:#9146ff; } /* Unsplash */ -.button.button-unsplash { - color: #000000; - background-color: #ffffff; - border: 1px solid #212121; -} -.button.button-unsplash:hover, -.button.button-unsplash:focus { - filter: brightness(90%); +.button-unsplash { + --button-text:#000000; + --button-background:#ffffff; + --button-border:1px solid #212121; } /* Untappd */ -.button.button-untappd { - color: #000000; - background-color: #ffc000; -} -.button.button-untappd:hover, -.button.button-untappd:focus { - filter: brightness(90%); +.button-untappd { + --button-text:#000000; + --button-background:#ffc000; } /* Upwork */ -.button.button-upwork { - color: #FFFFFF; - background-color: #14A800; -} -.button.button-upwork:hover, -.button.button-upwork:focus { - filter: brightness(90%); +.button-upwork { + --button-text:#FFFFFF; + --button-background:#14A800; } /* Venmo */ -.button.button-venmo { - color: #ffffff; - background-color: #008CFF; -} -.button.button-venmo:hover, -.button.button-venmo:focus { - filter: brightness(90%); +.button-venmo { + --button-text:#ffffff; + --button-background:#008CFF; } /* Vimeo */ -.button.button-vimeo { - color: #ffffff; - background-color: #1ab7ea; -} -.button.button-vimeo:hover, -.button.button-vimeo:focus { - filter: brightness(90%); +.button-vimeo { + --button-text:#ffffff; + --button-background:#1ab7ea; } /* VSCO */ -.button.button-vsco { - color: #FFFFFF; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-vsco:hover, -.button.button-vsco:focus { - filter: brightness(90%); -} - -/* Website */ -.button.button-web { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-web:hover, -.button.button-web:focus { - filter: brightness(90%); +.button-vsco { + --button-text:#FFFFFF; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* WhatsApp */ -.button.button-whatsapp { - color: #ffffff; - background-color: #455a64; -} -.button.button-whatsapp:hover, -.button.button-whatsapp:focus { - filter: brightness(90%); +.button-whatsapp { + --button-text:#ffffff; + --button-background:#455a64; } -/* Wordpress */ -.button.button-wordpress { - color: #ffffff; - background-color: #21759b; -} -.button.button-wordpress:hover, -.button.button-wordpress:focus { - filter: brightness(90%); +/* WordPress */ +.button-wordpress { + --button-text:#ffffff; + --button-background:#21759b; } /* X */ -.button.button-x { - color: #FFFFFF; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-x:hover, -.button.button-x:focus { - filter: brightness(90%); +.button-x { + --button-text:#FFFFFF; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } /* YouTube */ -.button.button-yt { - color: #ffffff; - background-color: #000000; - border: 1px solid #FFFFFF; -} -.button.button-yt:hover, -.button.button-yt:focus { - filter: brightness(90%); +.button-yt { + --button-text:#ffffff; + --button-background:#282828; + --button-border:1px solid #FFFFFF; } /* Zoom */ -.button.button-zoom { - color: #ffffff; - background-color: #0B5CFF; +.button-zoom { + --button-text:#ffffff; + --button-background:#0B5CFF; + --button-border:1px solid #FFFFFF; +} + +/* Generic Buttons */ +.button-default { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-blog { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-calendar { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-cloud { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-code { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-computer { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-email { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-homepage { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-map { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-phone { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-review { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-rss { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-shopping-bag { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-shopping-tag { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-sms { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; +} + +.button-website { + --button-text:#ffffff; + --button-background:#000000; + --button-border:1px solid #FFFFFF; } -.button.button-zoom:hover, -.button.button-zoom:focus { - filter: brightness(90%); -} \ 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 56f49cbe..00000000 --- a/css/skeleton-auto.css +++ /dev/null @@ -1,279 +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: #2457F5; -} -a:hover { - color: #083BDA; -} -a:focus { - outline: #7AB8FF solid 2px; - border-radius: 2px; -} - -/* Link Color Dark Theme */ -@media (prefers-color-scheme: dark) { - a { - color: #4899F7; -} -a:hover { - color: #7AB8FF; -} -a:focus { - outline: #7AB8FF solid 2px; - border-radius: 2px; -} -} - -/* 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%; -} - -/* open-sans-regular - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ -} -/* open-sans-600 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg#OpenSans') format('svg'); /* Legacy iOS */ -} -/* open-sans-700 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg#OpenSans') format('svg'); /* Legacy iOS */ -} -/* open-sans-800 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg#OpenSans') format('svg'); /* Legacy iOS */ -} \ No newline at end of file diff --git a/css/skeleton-dark.css b/css/skeleton-dark.css deleted file mode 100644 index f2f57f8c..00000000 --- a/css/skeleton-dark.css +++ /dev/null @@ -1,261 +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: #4899F7; -} -a:hover { - color: #7AB8FF; -} - -/* 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%; -} - -/* open-sans-regular - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ -} -/* open-sans-600 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg#OpenSans') format('svg'); /* Legacy iOS */ -} -/* open-sans-700 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg#OpenSans') format('svg'); /* Legacy iOS */ -} -/* open-sans-800 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg#OpenSans') format('svg'); /* Legacy iOS */ -} \ No newline at end of file diff --git a/css/skeleton-light.css b/css/skeleton-light.css deleted file mode 100644 index d33a65d0..00000000 --- a/css/skeleton-light.css +++ /dev/null @@ -1,261 +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: #2457F5; -} -a:hover { - color: #083BDA; -} - -/* 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%; -} - -/* open-sans-regular - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ -} -/* open-sans-600 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg#OpenSans') format('svg'); /* Legacy iOS */ -} -/* open-sans-700 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg#OpenSans') format('svg'); /* Legacy iOS */ -} -/* open-sans-800 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ -@font-face { - font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ - 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'); /* IE9 Compat Modes */ - src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2') format('woff2'), /* Super Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff') format('woff'), /* Modern Browsers */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf') format('truetype'), /* Safari, Android, iOS */ - url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg#OpenSans') format('svg'); /* Legacy iOS */ -} \ No newline at end of file diff --git a/css/style.css b/css/style.css new file mode 100644 index 00000000..906fa625 --- /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/images/avatar.png b/images/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..b88ecad64446cc2999d67cf28e7d54c4e5d5410e GIT binary patch literal 18823 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 O00002P&BBup5qtb=1dhTl_P9JE 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 \ No newline at end of file + + + + + + + + + + + + + + + + + + + + diff --git a/images/icons/littlelink.svg b/images/icons/littlelink.svg index 3a5a0073..55e0bc86 100644 --- a/images/icons/littlelink.svg +++ b/images/icons/littlelink.svg @@ -1 +1,11 @@ - \ No newline at end of file + + + + + + + + + + + diff --git a/images/icons/medium.svg b/images/icons/medium.svg index e8ea6473..0ae1ff41 100644 --- a/images/icons/medium.svg +++ b/images/icons/medium.svg @@ -1 +1,12 @@ - \ No newline at end of file + + + + + + + + + + + + diff --git a/images/littlelink.png b/images/littlelink.png deleted file mode 100644 index b38bd437cce32d5c883071af4648261a38530f98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2710 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 QA^-pY07*qoM6N<$f>7fqPXGV_ diff --git a/images/littlelink.svg b/images/littlelink.svg deleted file mode 100644 index 2f2d4869..00000000 --- a/images/littlelink.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/littlelink@2x.png b/images/littlelink@2x.png deleted file mode 100644 index 48629a38402eb1ea596997c3a5c50c040c451b9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7665 zcmVB?h!yDPnNg^fFyuq^2p#%215e4!_;Bf)jhc1U3=F(=l*K` z!};Vle{+B5@sswl_pal<-QBASRlt~ZvvajO%|2%*%|K2~EH@*Au{*Qn3UHRlp zbuo5#7js20(HN9->3{7kzP6k?+BU_wUWC*T!9WFSZC26=nl^;Xb6l+`!U+V1ragF> zPvPM|zJS-gy%!z6QrEvtiMpi8H(DikldDkT0<~H#pVKg0VYVfUX)fCI)mQ{ ziZfLp+yV+(ke}%II=FESyP4RH6dOE@PMA zt0=?@g$jbTaPa({JcfS;89efb6QiCWSv}Ol_i@6D&MX0MJ@LT7zbZGPXf2>diqz#~ zBp^t>0K&}JDTFPVOlhEa{Vq7QDz{1@zSk_~fcbzZs3O1)mc+*+Z}~Iia`Qo-oYAes z+{CRva01@+-v+*LbO<($qmNFc+Cim{|XX>gI7I79F8v z_o$NcYj#fnJAlEzHeMadPlhlr@fASrKzcTUBnL$4Anyuy1{BM%k)434po||5xjzR= zX*6j}f&))^xn$bBhWFrj>qhG0-J~-Jt(4d7rjGKluOC&=C0Fk|vb|3mp}4?_SEizr z7GN_D3DL{=Pbrv|i;P#PNiwXB7v42J72oJ`cbAAxvY&J1FMYnrGgYKsB~jt)zT@nI z6lGRVE|n2Eqx@rEPV4Xq@BwccN%#?0$Db5&WYF_DNvL!f9*i6q3D|!@LShwBL$dN& zwG29y5#1^Mg%2qh9Cjb8e}EV&G$(BQ9%FsWXCwSpVsO%RkayGA0dM$!2)gjve4!%l zYKUm*2LkPw$rCo3)J}0S{90EyHFx$TL^=nY(cr>e{m|biwO#Z&9z!w?5}1mJmF&d{ zEx*g1O(Gs449OLsh!8~RneB@o&Z{3Yu7=AazVXXO92PV@s=Occ^OmsOmstZZjf~d<^l%g8KXW_SQp= zM#SI!RIa^R;dSxR6Q7RESNctZQi!Np-2<@2M#wPLM78*sH%%N|BraoFWBdE8BoN3e zFPP#jPdad40+!dk|4@A9TU+syU(e`Rb0l0NX2KMvA3%pPfFl?97>bQ5kV1iiWA2jQ zgAO>csQx&zwJ&~|iVOP;zt44eE|i?2du1{N4N1tBl1{RDilRWF%MXa{R~(8s{=5h6 z{F`xq>w{lD9bexlE!bYW`vM0Qfh4@3g9v4OuM_UqLycu5`9^=A%}%=u<{j|2n6FC@ zKlp`Z(p^?B{Pa<&B@Wg`q4LK@&IC1cTDe`_Mg8?0f3YpP1%)JY=9Pyck3aWdI{158Z-4qu64v(%QF4~O%?UrzuW8ivHfBa% zlnhY8yf=yf)ZCO$jVWV#dFg7%-?$w4&)Qpr`iRqc0^Dn3r9ZzC&nbdM1eyNf|HP<)b@1+j;ZK~^1+9veNon| zm@7ERLB>frxsItoWc(f%Mf#74xptIgnjM#s$}2OjydZK^J1a`UGv=MJkCTylJ;mWf zu_aUwHur~}vko2XhYXbrAwDXu=ANvr|J*ofnjQrkuO>MO7sVASrye=a4*I+Z2iS>K ziVnsX1QS^aceTME);peYAe{t2gd?6|NK`jqfUV@r$N%TZrOTg5+zxG1-R!kDP5alT zRIZ74Ef|LA?EI$Y=o0;>bm`Z}#IcYdew`*`Y2PkXJTT#|FbU5*7*AZ==Nu>l+CLFP zNYrHyAVV1tD;9etJ-OMboHO)A=M-iv`q>42*~xB95xPKK^CoYEt#Yx+E{v5)#7YG- z#<_o*hr1?TkWuw+bHbg@fAHN2&#DqNLmA0}qqs@%Ll3?pNUGq0bbJSHFv9qD$W&f9 zMZ{q!0=HEiDHlaX0*Q?Ioir6G7d8mle36k>H)N>DsFgpLn&&_GSnquHf|wNnLdIjr zXF!Y14C)%n#YrSz$ey$+z=~CeCt|+mIR2o)PZzOE7KS3So#d$V>2zfnDpG}=6$Jn5 z_srs7C$;A!tRLGqm|@>V*IhsF|FOj+FJQqF^q8tvznYlM$x;#q4z3oD30-vVQW#DQ zEk04mqpWRSVWsj0tsnukhex9!Dg@L9Q}dg1%WcD2M8k{JFb!>A&VqMsAbk7O&A};j;my2@hetX z`FHLFpOEmo&5|#>^VFW;==!Usiu)=Jg`xVe- zI?pM%vBW!TT-npaZEh#baAK2%Kqkf$$W6un#tE1*VxGUU;46g+O-{x zSc1zcFF9#+wZj>+$`kXwQl#<64@|TbMJD4q3cP)kaW0KpL0=GUJdwtIuu_IHEj3pX z{Oz6K&rm?le-{HT!QX9$&Nc~~e=YHgKNNe#?q8&A!XkL52S@^&P?82I#hVeL5KJPb z8c_QXyTAS)USKw_g)j4{f+uO%xnSC>)I{*NZ2VjvsD4*wAD;boo`l=ZJPEgbZ`&h+ z_PLbfHO_^5$O^d%vtbiE!naAnWhXu^D+gf6xquz0e2$h=$at!l9^f4NPSM_VKGn_- zw?}&sDG3m3LDDOC&I$37Gf2X%-`$F@|9rLxrkCZW91?8WTXj0Vko!u7QMf3=aOp66 zc_3%P@c5xi9<*4dmhZWD9vVS|X=>%K26pb8!%kW^^Q)9Lmo_%;V`yN_;plnCPsMNl zTw;066Z45LpN`wUyB($a%wByW^e3tavxq)uh z?|EQC{M_mWYnGa`C`C%c3zxsXZ-o*zi3on-j?CPrt1ifV#DnLUulU6uiwvQ>-&C0K zJ9>VOKTOCegIk80f4mDY+pU;}`MmLCCp@H(U0+!om=<3ojXxncVnXg2M?fti_^nVA>N%xv$- z%$_5`K!w#F^^eZj68_O`y(iY6p3bbwjEqW{U)IUCc@n6}%(XN^-4A&X3a`o^X)(f+y|6Ti!YJ{l(91 z;p={O(*`37%&kPkDS&gQ;CrcIp674P5}IzyUC;*O-1%!0YS261vshjD_it(3{UE{R z_c7TU6Ie9#0GEMb`Yu@pE~2m?T96d~2Yd!OQ_l`;`<+fJ32pVxhkjYKAZkWuL>1b;UnNduDJ`lc< z(PW-L-St{r73Y^=ZoZ?fXCss#$pl{!I+72Czz1i3C#<7Ki0c%-mGFLh=L8ubSlx5u z;ghG7?~W7xymJDG=4dW}b~xaYX5nDtp-(+{^Yp^6Y#UjXa~tJGUfrshAoPt?uAJL> zLpwj$yL{q#y!>2b9l8w;+LWDEoigTYXrS8suQiV_D1r#*Wv2+SH3$O!;B31|;cqP? zm|kk2>E3yuWkGwpAy*N;zoyBvn-jj*2xkpW=9e|FVX?o0BS!xipqg%I2?QoKh3doz z-Q7;@87_` zuIrk@|Cal=!_>^a)duHv#3i?2q|sV|NQD-dPR|690e|+`Vame4`SsoRZ`IaAMujc_ zF$ZUH`e;Cc_%5GwP9@lhWK^?)zW>eg9WUas2dJmM%YyI!W{XQU(l7Zp|Jv|7gjNn*f)0hdid6u-UsZ37@+JQe@?zk-*`#(X5bnuR{E$j6mx zy$VTIKIh2&*pXo+o1enZ1S~1tKhQ#UetFB7qXI0rAiFYk+k6H4+>mR(OaZ`J2VG+5 z6Nk6BV}TEQ`vvYfI^Y%Ofqz+Vc<|4*@l(IQ?U=-34uw$YKFi*F6#DK6e+!@fU7G?@ zUP04j5xEtW)tjRN&dHsm1b=wyr3U͘kLu-7JlX{A(6-Qy1upZ8Jw@aE1&DC_tC zzTwOdZs6b6YuBq<$rnO5YQsb??27PzYa1uO^Wyy0kPg5@@wl&YMw#mVQukU*ujshJ>b#zv?ObE&N;;Xz;boc&x?_&@Pm+xqnH+_0C?(k;5w zq1g}RWrPG(py3!wO&H8o%uj-78|FHq0Q2I^`cDl!ofM55VecTO)`|01c!E(!$aUY6Yl0Woslfsus0)vsN(Iqmy zoOYgYIh2dEEdzf8%Ftg+q%>xr8KPdl629gcJLafT&xF$gDF<1r@BEYBwINBCe{uNE z8zMmq+0n6OP{~5ON@{RG<%?$*&at+o0pJJts}S`YAVBAc`ZG??;7z9we$6v?glqHW z=1Akt-!-)Jofl~zFRCF-pm%p`!n_d0%5u8qgbt&X4+p`H6`ew7?f;%lFENytZPW_VJ{tKs}jfXo_IpEehCM1yhHJw#u*a^)+RZ(*o* z-xpp9v25F1oIr{s?O`%s2O^oc9r){imD2}TP{If?cWnOd34b&@kf3HjF$rD@pn~pM zwvwFXY-PE#A_Qtc@>O<}aFFF1+DVgBA#z)G&(5N4Lqt1j-yD6@FKxl=W|i>&celG` zc6Njhu(=2uc4>msFJWvl&;EwUf-?lFLcXrFZ3`wV_oV zmoZPUICJZjkZ1>P$RspCwHY|)iJWAVu}(tvrnEL3c=nPRU=!bPc31#wQO^~aA21@A zn<`(PG+owuQ`L@KRi58~72!Sxr@wDgKl!`2ObL!~zk37G2eh=A>2x>o|6h`omW$yK zN;2+1IN7cER)U~741YLmZ*TpP{6(Q?z!A19gAemYu9ZTQQ+E)pZwO>3b0@Dt9L>?K zP=blIi-ZK1pvonwn69sUm6_B-Nfw{ef^vmunsgMuNnrW)+8>Ss9Bx|-csSu!=019L z8rkKp762w>?U(u2W9sLf{P2DFptlN$x+>29?#=mbHuVxSV*0m($e9IhJ~+v(BQtec z=G*jb+&-+Iy|5-}ZBl+DHyP&ELTv9E%iTil^q27cK?pl+8|5 zL*2ToDg>P+=Xc=L_pG7>n;mmIqKuq9(F2V3G_^k3@O$n=AsUJkitAQ)O9>M+8I5+o z&@c!M6n`x4Hez>r!=y4mq`!!j_}@5sy2z-_wJ_)Rc}WTQ$=}&tfz{ktN?bChV5T;> zd*_3>V>~F*|4z^aDz^J}xXWd~fuJnF#kYbB4B!I)^$)lo)H;0hjD(VuYmiI~!UUY5 zna`!oR4&$^S#CGNN}L=|f|YP%HlLv6XUN<;oweePP7rj-`6L8y#3jC;lp=y+l;)I0 zWDYAIM$-dm!hj}>KU(9L&bM+ao-9S*CUsLXm#6kPNvo=F-g6+k1YnC#z2fe zhUqs4c;L$b{x6i4CG$W*H#UWw#+kQZ_C4;BJLTlFvZwGWCyFev?bP>d;=3Q%x{e5U z(`8I<8H0p`0;43XmL0F(epw6i7(qrL zn=1w*{!Q9XD-nTGN|XK=9@l-QKaL*UErg<+aZ`7)Pg|Dm=Aek2Rn{Qdk1hR&5tE*j zb0>M<$Grl%4!!Q;S0KGxFG>Wu!ndiNW63JaN469wqX^BpgC{UAlAW+cLz6+ zKhgx*6dm9Hq9%Mvnw{is)aE8c7%*Ihuu*NE6E#Y`Y)s!MvPK3o=*^;Wv>nbcc7I;7 zWLtWZgDmgo=gb{@nqyzMqn6i>PWQ{;1v}x7JBKT+Bd;@j$#!cmVt>qE*dqsQIU_hf z6XcXfjf4G!-kfSNM`)ISFOvLsNuDL*^4GowfyOYqNzWVBimdPIktJSpAMnbnk1{;2 zZzUEVF9~EO$U5P+?-Tj;>rCx(!J_( zBz$AV$*(nxPWdE&LrGO2JCo$hco-JuocY!~GYna;S||cTTq7~{XGt=rqWGZMjzr;PLORf!Ge0Gf9nn5jB3Or-K1K`otc4YUTYI5 ztxNpU3&X}J_;swXc$-haO6$-e+%^n*-wohNg12?-tI-P4>lOVnugxdg0XeP{>ZGS2z zkx*dl5)1hBOxT-tH - - - + - - - LittleLink - - + - - - - - - - - - - - + + + + + + LittleLink + + + + + + + + + + + + + + + + + - - - - - + - -
-
-
+
+
- + LittleLink - This page has been built with every pre-designed button available in LittleLink by default. You can rearrange and delete as needed. + +

+
LittleLink
+

- You can add your own brand or others brands you may need in the `css/brands.css` file. + +

An open source DIY Linktree alternative.

- You can add custom icons to `images/icons/...`. It is recommended to use a 24x24 .SVG. + +
+ + + +
- diff --git a/privacy.html b/privacy.html index bbf642bc..0650cb58 100644 --- a/privacy.html +++ b/privacy.html @@ -1,164 +1,86 @@ - + + + + + - + + - - - LittleLink Privacy Policy - - + + Privacy Policy | LittleLink + - - - - + + + - - - - - - - + + + + + + - + - -
-
-
-

- ⬅️ Back to main page -

- - - - -

🔒 Privacy Overview

- - -

- Personal Data collected for the following purposes and using the - following services: -
-
- - 🧮 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. -
-
- - 1.) Example LLC.
- Personal Data: - various types of Data as specified in the privacy policy of the - service
- Privacy Policy -

- - - -

- 📦 Displaying Content From External Platforms -
- 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. -
-
- - 1.) Example LLC
- Personal Data: - Usage Data; various types of Data as specified in the privacy - policy of the service -
- Privacy Policy -

- - - -

- 📁 Hosting and Backend 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. -
-
- - 1.) Example LLC.
- Personal Data: - various types of Data as specified in the privacy policy of the - service -
- Privacy Policy -

- -
-
- - -
-

Build your own by forking LittleLink.

-
-
+
+
+ + +

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 From b66840a5bc47c4bb0ad1e50803437e81f56e131b Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Wed, 13 Nov 2024 01:10:17 -0500 Subject: [PATCH 13/23] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index e7a24459..91c316fc 100644 --- a/README.md +++ b/README.md @@ -54,8 +54,6 @@ Duplicate the [LittleLink Template on Figma Community](https://www.figma.com/com • [Drew](https://github.com/davisdre) is building a [super simple Docker implementation of LittleLink](https://github.com/davisdre/littlelink). #### 🗃️ Misc -• [Khashayar](https://github.com/khashayarzavosh) is building [LittleLink Admin](https://github.com/khashayarzavosh/admin-littlelink) which lets you host your own admin portal to manage LittleLink! - • [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). --- From 39a493747bb0e196dff1ddd7c972bb64c53ae594 Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Wed, 13 Nov 2024 01:13:43 -0500 Subject: [PATCH 14/23] Update VERSION.md --- VERSION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION.md b/VERSION.md index 7b929990..76e9e26b 100644 --- a/VERSION.md +++ b/VERSION.md @@ -9,7 +9,7 @@ A complete modernization of LittleLink focusing on accessibility, maintainabilit - 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 themeing implementation + - Enhanced dark mode and auto theming implementation - Enhanced `brands.css` - Accessibility Improvements @@ -39,4 +39,4 @@ A complete modernization of LittleLink focusing on accessibility, maintainabilit --- For the complete history of changes, please visit: -https://github.com/sethcottle/littlelink/releases \ No newline at end of file +https://github.com/sethcottle/littlelink/releases From 29f8833176d81355ea52f0240934c88835522ceb Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Wed, 13 Nov 2024 11:51:51 -0500 Subject: [PATCH 15/23] Updates! --- VERSION.md | 10 +- css/brands.css | 135 +--------------------- css/style.css | 2 +- images/icons/redbubble.svg | 1 - images/icons/revolut.svg | 1 - images/icons/untappd.svg | 1 - images/icons/upwork.svg | 1 - index.html | 221 +++++++++++++++++-------------------- 8 files changed, 116 insertions(+), 256 deletions(-) delete mode 100644 images/icons/redbubble.svg delete mode 100644 images/icons/revolut.svg delete mode 100644 images/icons/untappd.svg delete mode 100644 images/icons/upwork.svg diff --git a/VERSION.md b/VERSION.md index 7b929990..f99928d2 100644 --- a/VERSION.md +++ b/VERSION.md @@ -33,9 +33,17 @@ A complete modernization of LittleLink focusing on accessibility, maintainabilit #### Brand Changes - Updated PayPal button color - Updated Discord button color -- Updated YouTube to us their Almost Black +- 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: diff --git a/css/brands.css b/css/brands.css index a3118aaa..d3955484 100644 --- a/css/brands.css +++ b/css/brands.css @@ -382,7 +382,7 @@ /* Pinterest */ .button-pinterest { --button-text:#000000; - --button-background:#ffe2eb; + --button-background:#ffffff; --button-border:1px solid #212121; } @@ -400,26 +400,12 @@ --button-border:1px solid #FFFFFF; } -/* Redbubble */ -.button-redbubble { - --button-text:#e41321; - --button-background:#ffffff; - --button-border:1px solid #212121; -} - /* Reddit */ .button-reddit { --button-text:#FFFFFF; --button-background:#FF4500; } -/* Revolut */ -.button-revolut { - --button-text:#000000; - --button-background:#ffffff; - --button-border:1px solid black; -} - /* Shop */ .button-shop { --button-text:#ffffff; @@ -528,12 +514,6 @@ --button-border:1px solid #FFFFFF; } -/* Trakt */ -.button-trakt { - --button-text:#ffffff; - --button-background:#ED1C24; -} - /* Trello */ .button-trello { --button-text:#ffffff; @@ -560,18 +540,6 @@ --button-border:1px solid #212121; } -/* Untappd */ -.button-untappd { - --button-text:#000000; - --button-background:#ffc000; -} - -/* Upwork */ -.button-upwork { - --button-text:#FFFFFF; - --button-background:#14A800; -} - /* Venmo */ .button-venmo { --button-text:#ffffff; @@ -600,7 +568,7 @@ /* WordPress */ .button-wordpress { --button-text:#ffffff; - --button-background:#21759b; + --button-background:#3858E9; } /* X */ @@ -622,101 +590,4 @@ --button-text:#ffffff; --button-background:#0B5CFF; --button-border:1px solid #FFFFFF; -} - -/* Generic Buttons */ -.button-default { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-blog { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-calendar { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-cloud { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-code { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-computer { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-email { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-homepage { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-map { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-phone { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-review { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-rss { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-shopping-bag { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-shopping-tag { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-sms { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} - -.button-website { - --button-text:#ffffff; - --button-background:#000000; - --button-border:1px solid #FFFFFF; -} +} \ No newline at end of file diff --git a/css/style.css b/css/style.css index 906fa625..afb4ce46 100644 --- a/css/style.css +++ b/css/style.css @@ -191,7 +191,7 @@ a:hover { align-items:center; justify-content:center; width:18.75rem; /* 300px */ - min-height:3rem; /* 48px */ + min-height:3rem; /* 48px */ padding:0.75rem 1rem; /* 12px ; 16px */ font-size:1.125rem; /* 18px */ font-weight:700; diff --git a/images/icons/redbubble.svg b/images/icons/redbubble.svg deleted file mode 100644 index 6d50d58e..00000000 --- a/images/icons/redbubble.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/icons/revolut.svg b/images/icons/revolut.svg deleted file mode 100644 index c962f4f3..00000000 --- a/images/icons/revolut.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/icons/untappd.svg b/images/icons/untappd.svg deleted file mode 100644 index 5042594c..00000000 --- a/images/icons/untappd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/images/icons/upwork.svg b/images/icons/upwork.svg deleted file mode 100644 index 2356fc95..00000000 --- a/images/icons/upwork.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/index.html b/index.html index 264072ca..18f20bcb 100644 --- a/index.html +++ b/index.html @@ -63,328 +63,313 @@ From 44aa76a2ce742893244fe98037ae6787d8cee0c7 Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Wed, 13 Nov 2024 15:45:27 -0500 Subject: [PATCH 16/23] v3.0.1 --- images/icons/trakt.svg | 1 - privacy.html | 2 -- 2 files changed, 3 deletions(-) delete mode 100644 images/icons/trakt.svg diff --git a/images/icons/trakt.svg b/images/icons/trakt.svg deleted file mode 100644 index de82e765..00000000 --- a/images/icons/trakt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/privacy.html b/privacy.html index 0650cb58..f21e6674 100644 --- a/privacy.html +++ b/privacy.html @@ -27,8 +27,6 @@ - - From 33d3e002b984ffcedd278650cbcfcff2101580d6 Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Wed, 13 Nov 2024 15:47:19 -0500 Subject: [PATCH 17/23] Update VERSION.md --- VERSION.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/VERSION.md b/VERSION.md index a2f3123f..75e2009c 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1,6 +1,10 @@ # LittleLink Version History -## Current Version: v3.0.0 +## 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. From c48c752a26f96fe7e3668399d4425fbfdc78194b Mon Sep 17 00:00:00 2001 From: Nick Mudry Date: Sun, 15 Dec 2024 15:10:35 -0500 Subject: [PATCH 18/23] Adding Obsidian CSS and SVG --- css/brands.css | 7 ++++++ images/icons/obsidian.svg | 51 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 images/icons/obsidian.svg diff --git a/css/brands.css b/css/brands.css index d3955484..168423de 100644 --- a/css/brands.css +++ b/css/brands.css @@ -359,6 +359,13 @@ --button-border:1px solid #212121; } +/* Obsidian */ +.button.button-obsidian { + --button-text:#ffffff; + --button-background:#262626; + --button-border:1px solid #ffffff; +} + /* OnlyFans */ .button-onlyfans { --button-text:#ffffff; diff --git a/images/icons/obsidian.svg b/images/icons/obsidian.svg new file mode 100644 index 00000000..679a19b4 --- /dev/null +++ b/images/icons/obsidian.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 568b2f6c0e321899767010b0aabf31c99b88c66e Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Fri, 20 Dec 2024 13:12:03 -0500 Subject: [PATCH 19/23] Add Obsidian to index.html --- index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/index.html b/index.html index 18f20bcb..52d5664f 100644 --- a/index.html +++ b/index.html @@ -211,6 +211,9 @@ Notion + + + Obsidian OnlyFans (18+) From 15f86144614575826c0bca8ade34b04c1ab61752 Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Fri, 20 Dec 2024 13:14:55 -0500 Subject: [PATCH 20/23] Version Bump --- VERSION.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/VERSION.md b/VERSION.md index 75e2009c..4e8e8f3d 100644 --- a/VERSION.md +++ b/VERSION.md @@ -1,6 +1,9 @@ # LittleLink Version History -## Current Version: v3.0.1 +## Current Version: v3.0.2 + +### v3.0.2 - 12/20/2024 +- Added Obsidian as a brand ### v3.0.1 - 11/13/2024 - Removed Trakt logo from `images/icons` since this now lives in LittleLink Extended From 905791e1c7363281a7cc15f209f52a319753aae6 Mon Sep 17 00:00:00 2001 From: rosahaj <141790572+rosahaj@users.noreply.github.com> Date: Sun, 22 Dec 2024 05:43:38 +0100 Subject: [PATCH 21/23] Fix accessibility issues --- index.html | 4 ++-- privacy.html | 34 +++++++++++++++++----------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/index.html b/index.html index 52d5664f..d617c101 100644 --- a/index.html +++ b/index.html @@ -52,12 +52,12 @@ LittleLink -

+

LittleLink

-

An open source DIY Linktree alternative.

+

An open source DIY Linktree alternative.