From 150c41a6e69d6cc4c9d88203e91fd2ceaaeb7d7e Mon Sep 17 00:00:00 2001 From: Seth Cottle Date: Wed, 13 Nov 2024 01:04:11 -0500 Subject: [PATCH 01/27] 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 4befed3..a036416 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 03231cc..bfe6bc4 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 a2b84a0..e7a2445 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 0000000..7b92999 --- /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 0f04e30..a3118aa 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 458eea1..0000000 --- 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 0000000..d158daf --- /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 56f49cb..0000000 --- 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 f2f57f8..0000000 --- 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 d33a65d..0000000 --- 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 0000000..906fa62 --- /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 3a5a007..55e0bc8 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 e8ea647..0ae1ff4 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 2f2d486..0000000 --- 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 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͘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 bbf642b..0650cb5 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 02/27] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index e7a2445..91c316f 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 03/27] Update VERSION.md --- VERSION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION.md b/VERSION.md index 7b92999..76e9e26 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 04/27] 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 7b92999..f99928d 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 a3118aa..d395548 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 906fa62..afb4ce4 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 6d50d58..0000000 --- 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 c962f4f..0000000 --- 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 5042594..0000000 --- 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 2356fc9..0000000 --- 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 264072c..18f20bc 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 05/27] 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 de82e76..0000000 --- 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 0650cb5..f21e667 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 06/27] Update VERSION.md --- VERSION.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/VERSION.md b/VERSION.md index a2f3123..75e2009 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 07/27] 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 d395548..168423d 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 0000000..679a19b --- /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 08/27] Add Obsidian to index.html --- index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/index.html b/index.html index 18f20bc..52d5664 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 09/27] Version Bump --- VERSION.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/VERSION.md b/VERSION.md index 75e2009..4e8e8f3 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 10/27] 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 52d5664..d617c10 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.