commit 746103d78919c994d89732cc9ac4a7e9777c385e Author: N.A. Ferrell <77352335+nafnlj@users.noreply.github.com> Date: Thu Apr 13 00:48:47 2023 +0000 Initialize gh-pages diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/cache.json b/cache.json new file mode 100644 index 0000000..ac68882 --- /dev/null +++ b/cache.json @@ -0,0 +1,551 @@ +{ + "sources": [ + { + "title": "Release notes from osmosfeed", + "feedUrl": "https://github.com/osmoscraft/osmosfeed/releases.atom", + "siteUrl": "https://github.com/osmoscraft/osmosfeed/releases", + "articles": [] + }, + { + "title": "CSS-Tricks", + "feedUrl": "https://css-tricks.com/feed/", + "siteUrl": "https://css-tricks.com", + "articles": [ + { + "id": "https://css-tricks.com/?p=357985", + "author": "Chris Coyier", + "description": "I think if you’re a DevOps person in any capacity, the utility of Docker is very clear. Your things run in containers that are identical everywhere. Assuming Docker is working/running, the code will execute in a reliably consistent way whether …", + "link": "https://css-tricks.com/dock-life-using-docker-for-all-the-things/", + "publishedOn": "2021-12-01T21:11:53.000Z", + "wordCount": 628, + "title": "Dock Life: Using Docker for All The Things!" + }, + { + "id": "https://css-tricks.com/?p=357344", + "author": "George Francis", + "description": "In nature, no two things are ever the same. Life is imperfect, unpredictable, and beautiful. We can walk through the same forest every day and see differently colored leaves. We can look up at the clouds every minute and watch …", + "link": "https://css-tricks.com/embrace-the-unpredictable/", + "publishedOn": "2021-12-01T15:47:46.000Z", + "wordCount": 726, + "title": "Embrace the Unpredictable" + }, + { + "id": "https://css-tricks.com/?p=356146", + "author": "Amelia Wattenberger", + "description": "What is one thing people can do to make their website better?\n Exactly what you want to build!\nAsk yourself:\nWhat drew you to development in the beginning?\nIs there an experimental API that you’ve been wanting to try out?\n…", + "link": "https://css-tricks.com/exactly-what-you-want/", + "publishedOn": "2021-12-01T15:46:29.000Z", + "wordCount": 491, + "title": "Exactly What You Want" + }, + { + "id": "https://css-tricks.com/?p=357109", + "author": "Chris Coyier", + "description": "I was playing this game on Apple Arcade the other day called wurdweb. It’s a fun little game! Little touches like the little shape dudes that walk around the screen (but otherwise don’t do anything) give it a lot …", + "link": "https://css-tricks.com/diagonal-stripes-wipe-animation/", + "publishedOn": "2021-11-30T17:26:35.000Z", + "wordCount": 946, + "title": "Diagonal Stripes Wipe Animation" + }, + { + "id": "https://css-tricks.com/?p=357728", + "author": "Tobias Günther", + "description": "This article is part of our “Advanced Git” series. Be sure to follow us on Twitter or sign up for our newsletter to hear about future articles!\nThe “Reflog” is one of Git’s lesser-known features—but one that can be extremely …", + "link": "https://css-tricks.com/using-the-reflog-to-restore-lost-commits/", + "publishedOn": "2021-11-30T15:53:27.000Z", + "wordCount": 2431, + "title": "Using the Reflog to Restore Lost Commits" + }, + { + "id": "https://css-tricks.com/?p=357679", + "author": "Chris Coyier", + "description": "(This is a sponsored post.)\nCloudinary (the media hosting and optimization service) has a brand new version (v3) of its WordPress plugin that has really nailed it. First, a high-level look at the biggest things this plugin does:\nIt \n…", + "link": "https://css-tricks.com/a-look-at-the-cloudinary-wordpress-plugin/", + "publishedOn": "2021-11-30T15:23:00.000Z", + "wordCount": 1256, + "title": "A Look at the Cloudinary WordPress Plugin" + }, + { + "id": "https://css-tricks.com/?p=357565", + "author": "Geoff Graham", + "description": "Apple Music has this “Spatial Audio” feature where the direction of the music in your headphones is based on the location of the device. It’s tough to explain just how neat it is. But that’s not what I’m here to …", + "link": "https://css-tricks.com/recreating-the-apple-music-hits-playlist-animation-in-css/", + "publishedOn": "2021-11-29T16:38:49.000Z", + "wordCount": 1516, + "title": "Recreating the Apple Music Hits Playlist Animation in CSS" + }, + { + "id": "https://css-tricks.com/?p=357976", + "author": "Chris Coyier", + "description": "This is a neat idea for a research project. The big map is fun, but the research had some tidbits in it worth looking at.\nThe average favicon network request takes 130ms, at least from our speedy cloud instance.\n…", + "link": "https://css-tricks.com/we-analyzed-425909-favicons/", + "publishedOn": "2021-11-29T16:38:07.000Z", + "wordCount": 483, + "title": "We Analyzed 425,909 Favicons" + }, + { + "id": "https://css-tricks.com/?p=357271", + "author": "Chris Coyier", + "description": "I’ve got some blind spots in CSS-related performance things. One example is the will-change property. It’s a good name. You’re telling the browser some particular property (or the scroll-position or content) uh, will, change:\n.el {\n will-change: opacity;\n\n…", + "link": "https://css-tricks.com/when-is-it-right-to-reach-for-contain-and-will-change-in-css/", + "publishedOn": "2021-11-26T20:43:05.000Z", + "wordCount": 2084, + "title": "When is it “Right” to Reach for contain and will-change in CSS?" + }, + { + "id": "https://css-tricks.com/?p=357239", + "author": "Neale Van Fleet", + "description": "I love little touches that make a website feel like more than just a static document. What if web content wouldn’t just “appear” when a page loaded, but instead popped, slid, faded, or spun into place? It might be a …", + "link": "https://css-tricks.com/a-handy-little-system-for-animated-entrances-in-css/", + "publishedOn": "2021-11-26T16:12:33.000Z", + "wordCount": 2444, + "title": "A Handy Little System for Animated Entrances in CSS" + }, + { + "id": "https://css-tricks.com/?p=357294", + "author": "George Francis", + "description": "The browser has long been a medium for art and design. From Lynn Fisher’s joyful A Single Div creations to Diana Smith’s staggeringly detailed CSS paintings, wildly creative, highly skilled developers have — over the years — continuously pushed …", + "link": "https://css-tricks.com/creating-generative-patterns-with-the-css-paint-api/", + "publishedOn": "2021-11-24T15:49:08.000Z", + "wordCount": 5674, + "title": "Creating Generative Patterns with The CSS Paint API" + }, + { + "id": "https://css-tricks.com/?p=357412", + "author": "Chris Coyier", + "description": "Tyler Sticka digs in here in the best possible way: by making a test page and literally measuring performance. Maybe 1,000 icons is a little bit of an edge case, but hey, 250 rows of data with four icons in …", + "link": "https://css-tricks.com/which-svg-technique-performs-best-for-way-too-many-icons/", + "publishedOn": "2021-11-23T19:21:28.000Z", + "wordCount": 461, + "title": "Which SVG technique performs best for way too many icons?" + }, + { + "id": "https://css-tricks.com/?p=356977", + "author": "Alaa Abd El-Rahim", + "description": "Many business websites need a multilingual setup. As with anything development-related, implementing one in an easy, efficient, and maintainable way is desirable. Designing and developing to be ready for multiple languages, whether it happens right at launch or is expected …", + "link": "https://css-tricks.com/control-layout-in-a-multi-directional-website/", + "publishedOn": "2021-11-23T16:06:44.000Z", + "wordCount": 4908, + "title": "Control Layout in a Multi-Directional Website" + }, + { + "id": "https://css-tricks.com/?p=357149", + "author": "Chris Coyier", + "description": "Inspired by Eva PenzeyMoog’s new book, Jeremy highlights the widespread user tracking situation in this industry:\nThere was a line that really stood out to me: \nThe idea that it’s alright to do whatever unethical thing is currently the \n…", + "link": "https://css-tricks.com/on-user-tracking-and-industry-standards-on-privacy/", + "publishedOn": "2021-11-22T21:00:50.000Z", + "wordCount": 2662, + "title": "On User Tracking and Industry Standards on Privacy" + }, + { + "id": "https://css-tricks.com/?p=357046", + "author": "Chris Coyier", + "description": "A reader wrote to me the other day asking about this bit of CSS they came across in Wikipedia’s Common.css:\n.mw-collapsible-leftside-toggle .mw-collapsible-toggle {\n /* @noflip */\n float: left;\n /* @noflip */\n text-align: left;\n}\nWhat’s that @noflip business? That’s …", + "link": "https://css-tricks.com/css-decorations/", + "publishedOn": "2021-11-22T18:48:00.000Z", + "wordCount": 1090, + "title": "CSS “decorations”" + } + ] + }, + { + "title": "Articles on Smashing Magazine — For Web Designers And Developers", + "feedUrl": "https://www.smashingmagazine.com/feed/", + "siteUrl": "https://www.smashingmagazine.com/", + "articles": [ + { + "id": "https://smashingmagazine.com/2021/11/smashing-podcast-episode-44/", + "author": "hello@smashingmagazine.com (Drew McLellan)", + "description": "In this episode, we’re asking if changes to best practises over the last year have negatively impacted the web. Is it all downhill from here? Drew McLellan talks to expert Chris Ferdinandi to find out.", + "link": "https://smashingmagazine.com/2021/11/smashing-podcast-episode-44/", + "publishedOn": "2021-11-30T14:00:00.000Z", + "wordCount": 8722, + "title": "Smashing Podcast Episode 44 With Chris Ferdinandi: Is The Web Dead?", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fa0481fb-1555-40f1-94c2-014b5553f45f/smashing-podcast-episode-44.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/desktop-wallpaper-calendars-december-2021/", + "author": "hello@smashingmagazine.com (Cosima Mielke)", + "description": "Let’s welcome December with some new wallpapers! Designed by artists and designers from across the globe, they are available with and without a calendar for the month. Enjoy!", + "link": "https://smashingmagazine.com/2021/11/desktop-wallpaper-calendars-december-2021/", + "publishedOn": "2021-11-30T09:45:00.000Z", + "wordCount": 2814, + "title": "It’s That Time Of The Year (December 2021 Desktop Wallpapers Edition)", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b96c8c2-9305-4a64-aa40-cf22662ea698/dec-21-winter-holidays-preview-opt.png", + "length": "0", + "type": "image/png" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/3d-css-flippy-snaps-react-greensock/", + "author": "hello@smashingmagazine.com (Jhey Tompkins)", + "description": "One of Jhey’s main mantras is to make learning fun. In this article, he shows you ways to level up your skills by bringing your ideas to life, and not forgetting that [you can be playful with code](https://www.smashingmagazine.com/2020/11/playfulness-code-supercharge-fun-learning/). With that mindset, every idea is bound to become an opportunity to try something new.", + "link": "https://smashingmagazine.com/2021/11/3d-css-flippy-snaps-react-greensock/", + "publishedOn": "2021-11-29T12:30:00.000Z", + "wordCount": 3237, + "title": "3D CSS Flippy Snaps With React And GreenSock", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a865f227-d5a1-4a63-a889-288a84fa2bce/3d-css-flippy-snaps-react-greensock.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/maintain-large-nextjs-application/", + "author": "hello@smashingmagazine.com (Nirmalya Ghosh)", + "description": "In this article, Nirmalya discusses some of the complex problems that he faced while building and maintaining large Next.js applications. He always explains how these problems can be solved by using various tools.", + "link": "https://smashingmagazine.com/2021/11/maintain-large-nextjs-application/", + "publishedOn": "2021-11-26T12:30:00.000Z", + "wordCount": 2622, + "title": "How To Maintain A Large Next.js Application", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d36d3a50-0f3f-402e-9ceb-8164b41065bc/maintain-large-nextjs-application.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/showcase-lovely-little-websites/", + "author": "hello@smashingmagazine.com (Cosima Mielke)", + "description": "Instead of spending your coffee break scrolling through your social feeds, how about a lovely little website instead? We came across some fantastic ones that are just too good not to be shared. But be warned, your break might take a bit longer than intended.", + "link": "https://smashingmagazine.com/2021/11/showcase-lovely-little-websites/", + "publishedOn": "2021-11-24T12:00:00.000Z", + "wordCount": 4228, + "title": "A Showcase Of Lovely Little Websites", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5a0a3a89-ba5a-40a8-af80-f8db0554af37/radiooooo-opt.png", + "length": "0", + "type": "image/png" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/dyslexia-friendly-mode-website/", + "author": "hello@smashingmagazine.com (John C Barstow)", + "description": "With a little CSS, we can adapt our web designs to be more accommodating for people with dyslexia. In this article, we’ll explore those techniques by adding a dyslexia-friendly mode to an existing design.", + "link": "https://smashingmagazine.com/2021/11/dyslexia-friendly-mode-website/", + "publishedOn": "2021-11-23T10:00:00.000Z", + "wordCount": 2745, + "title": "Adding A Dyslexia-Friendly Mode To A Website", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e1fb4e46-6f0a-4631-a04c-d42376eddc82/dyslexia-friendly-mode-website.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/smashingconf-workshops-winter-2021/", + "author": "hello@smashingmagazine.com (Iris Lješnjanin)", + "description": "What’s the state of CSS, Vue.js and Next.js? What are new, smart interface design patterns we could use? Let’s figure it out. With our [online workshops on UX, front-end and design](https://smashingconf.com/online-workshops).", + "link": "https://smashingmagazine.com/2021/11/smashingconf-workshops-winter-2021/", + "publishedOn": "2021-11-22T16:00:00.000Z", + "wordCount": 1013, + "title": "Smashing Workshops: Winter 2021", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d2659d54-48e0-40d0-9fea-07c199eee87d/sanfran-2022.png", + "length": "0", + "type": "image/png" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/improving-performance-wix-websites-case-study/", + "author": "hello@smashingmagazine.com (Dan Shappir)", + "description": "Implementing a performance culture is very important. In this article, Dan Shappir shares which actions and processes the Wix team put in place in order to achieve dramatic improvements in the performance of websites built and hosted on their platform.", + "link": "https://smashingmagazine.com/2021/11/improving-performance-wix-websites-case-study/", + "publishedOn": "2021-11-22T10:30:00.000Z", + "wordCount": 4743, + "title": "Improving The Performance Of Wix Websites (Case Study)", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/253b5a80-a208-4057-95b0-60762c922d07/improving-performance-wix-websites-case-study.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/nextjs-wildcard-subdomains/", + "author": "hello@smashingmagazine.com (Sam Poder)", + "description": "Hosting with a wildcard subdomain enables your users to visit your site on any subdomain of your domain (*.example.com), and as you can imagine, we can use this to create unique user experiences which we’ll be exploring in this article through a Next.js lens.", + "link": "https://smashingmagazine.com/2021/11/nextjs-wildcard-subdomains/", + "publishedOn": "2021-11-19T10:30:00.000Z", + "wordCount": 2192, + "title": "Next.js Wildcard Subdomains", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2b24747b-6f11-4588-a119-16eaf38bc933/nextjs-wildcard-subdomains.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/guide-modern-css-colors/", + "author": "hello@smashingmagazine.com (Michelle Barker)", + "description": "In this article, we’ll take a look at the best ways to handle colors in CSS today, some tips for using them in a design system, and what we can expect from our colors in the not-too-distant future.", + "link": "https://smashingmagazine.com/2021/11/guide-modern-css-colors/", + "publishedOn": "2021-11-17T16:00:00.000Z", + "wordCount": 3472, + "title": "A Guide To Modern CSS Colors With RGB, HSL, HWB, LAB And LCH", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b424cd2e-1e44-4ca2-8506-4e45a5bdb570/guide-modern-css-colors.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/touch-design-pre-release/", + "author": "hello@smashingmagazine.com (Vitaly Friedman)", + "description": "Meet “Touch Design for Mobile Interfaces”, our brand-new guide on designing for mobile with proven, universal, human-centric standards. 400 pages. Shipping starting in early January.", + "link": "https://smashingmagazine.com/2021/11/touch-design-pre-release/", + "publishedOn": "2021-11-16T16:00:00.000Z", + "wordCount": 2170, + "title": "Meet Touch Design For Mobile Interfaces, A New Smashing Book By Steven Hoober", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b41ae541-7618-44f2-81cd-cc681c64d0d0/touch-design-for-mobile-interfaces-header.png", + "length": "0", + "type": "image/png" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/powerful-terminal-commandline-tools-modern-web-development/", + "author": "hello@smashingmagazine.com (Louis Lazaris)", + "description": "What’s your favorite command-line tool? In this post, Louis Lazaris shares a collection of relevant command-line apps and utilities that he has personally come across in the past few years. If there’s a useful one that hasn’t been mentioned and one you use regularly, please do share it in the comments.", + "link": "https://smashingmagazine.com/2021/11/powerful-terminal-commandline-tools-modern-web-development/", + "publishedOn": "2021-11-15T13:00:00.000Z", + "wordCount": 2123, + "title": "Powerful Terminal And Command-Line (CLI) Tools For Modern Web Development", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2d3081a-5a36-4763-9b94-13bf7d1cb5d6/powerful-terminal-commandline-tools-modern-web-development.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/useful-react-hooks/", + "author": "hello@smashingmagazine.com (Ifeanyi Dike)", + "description": "The React team introduced several hooks in React 16.8 which you can use from third-party providers in your application, or even create your own custom hook. In this tutorial, we’ll take a look at some of the most useful hooks in React and how to use them.", + "link": "https://smashingmagazine.com/2021/11/useful-react-hooks/", + "publishedOn": "2021-11-12T10:00:00.000Z", + "wordCount": 10255, + "title": "Useful React Hooks That You Can Use In Your Projects", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad5f8d5b-6da6-4441-a6f7-466c79e7fb0d/useful-react-hooks.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/dashboard-design-research-decluttering-data-viz/", + "author": "hello@smashingmagazine.com (Adam Fard)", + "description": "Dribbbleshots just might be the hotbed of questionable dashboards. Striking visuals, little context, and no research: all recipes for mediocrity. Mediocrity won’t do. We’ll pursue greatness. And in that pursuit, we’ll cover research, decluttering, and data visualization.", + "link": "https://smashingmagazine.com/2021/11/dashboard-design-research-decluttering-data-viz/", + "publishedOn": "2021-11-11T14:00:00.000Z", + "wordCount": 4289, + "title": "From Good To Great In Dashboard Design: Research, Decluttering And Data Viz", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/835f0cba-e214-437a-a025-e69ba7691997/dashboard-design-research-decluttering-data-viz.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/localizing-your-nextjs-app/", + "author": "hello@smashingmagazine.com (Átila Fassina)", + "description": "Internationalized routing is not exactly a new feature on Next.js. In this article, we are not only checking what we get from this feature, but also how to leverage such functionalities to achieve the best user experience and a smooth developer experience as well.", + "link": "https://smashingmagazine.com/2021/11/localizing-your-nextjs-app/", + "publishedOn": "2021-11-09T13:00:00.000Z", + "wordCount": 1902, + "title": "Localizing Your Next.js App", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/12e7620f-0e7b-4b95-a1b6-cd2f25ccac52/localizing-your-nextjs-app.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/transforming-optimizing-images-videos-wordpress-website/", + "author": "hello@smashingmagazine.com (Leonardo Losoviz)", + "description": "In this article, Leonardo Losoviz explains how Cloudinary’s integration can be used with WordPress to produce and deliver optimal digital experiences.", + "link": "https://smashingmagazine.com/2021/11/transforming-optimizing-images-videos-wordpress-website/", + "publishedOn": "2021-11-09T09:30:00.000Z", + "wordCount": 2425, + "title": "Automatically Transforming And Optimizing Images And Videos On Your WordPress Website", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8aaa9d52-375d-4e64-bdaa-151ef40a3f3c/transforming-optimizing-images-videos-wordpress-website.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/hydrogen-react-framework-dynamic-contextual-personalized-ecommerce/", + "author": "hello@smashingmagazine.com (Ilya Grigorik)", + "description": "A great commerce experience is not a Lighthouse score or a set of Core Web Vitals figures (although both are important inputs), but it’s also a trilemma that carefully balances competing needs of delivering a great customer experience, dynamic storefront capabilities and long-term business objectives.", + "link": "https://smashingmagazine.com/2021/11/hydrogen-react-framework-dynamic-contextual-personalized-ecommerce/", + "publishedOn": "2021-11-08T14:30:00.000Z", + "wordCount": 1527, + "title": "Meet Hydrogen: A React Framework For Dynamic, Contextual And Personalized E-Commerce", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ee33395f-684a-40e5-bf72-56d9e9e4d975/hydrogen-react-framework-dynamic-contextual-personalized-ecommerce.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/concept-testing-part-of-product-design/", + "author": "hello@smashingmagazine.com (Victor Yocco)", + "description": "Concept testing ideas before moving into a detailed design is good UX practice. In this article, Victor Yocco presents details on how and when to engage in concept testing, as well as case studies providing details on the insights gained in two very different settings.", + "link": "https://smashingmagazine.com/2021/11/concept-testing-part-of-product-design/", + "publishedOn": "2021-11-05T11:00:00.000Z", + "wordCount": 6182, + "title": "The Value Of Concept Testing As Part Of Product Design", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ca39dbc3-101c-4973-9dce-debb1ab283ff/concept-testing-part-of-product-design.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/smashing-podcast-episode-43/", + "author": "hello@smashingmagazine.com (Drew McLellan)", + "description": "In this episode, we’re talking about Astro. Will this modern static site builder launch you into the stratosphere? Drew McLellan talks to developer Matthew Phillips to find out.", + "link": "https://smashingmagazine.com/2021/11/smashing-podcast-episode-43/", + "publishedOn": "2021-11-04T18:00:00.000Z", + "wordCount": 5848, + "title": "Smashing Podcast Episode 43 With Matthew Phillips: What Is Astro?", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/475de692-46fc-4058-af10-3736770698d5/smashing-podcast-episode-43.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/graphql-frontend-react-apollo/", + "author": "hello@smashingmagazine.com (David Atanda)", + "description": "Within the last decade, technologies like GraphQL have changed how we build web apps and how they communicate with each other. GraphQL provides certain benefits over REST APIs — let’s find out what they are.", + "link": "https://smashingmagazine.com/2021/11/graphql-frontend-react-apollo/", + "publishedOn": "2021-11-04T11:30:00.000Z", + "wordCount": 3382, + "title": "GraphQL On The Front-End (React And Apollo)", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bb584488-c16f-4409-a992-993ce92d4b51/graphql-frontend-react-apollo.jpg", + "length": "0", + "type": "image/jpg" + } + }, + { + "id": "https://smashingmagazine.com/2021/11/deep-dive-into-serverless-ui-typescript/", + "author": "hello@smashingmagazine.com (Ikeh Akinyemi)", + "description": "Serverless UI is simply a free, open-source command-line utility for quickly building and deploying serverless applications on the AWS platform. In this article, we will learn and cover everything needed on using Serverless UI to deploy our projects or serverless applications to cloud services providers.", + "link": "https://smashingmagazine.com/2021/11/deep-dive-into-serverless-ui-typescript/", + "publishedOn": "2021-11-03T11:30:00.000Z", + "wordCount": 3605, + "title": "A Deep Dive Into Serverless UI With TypeScript", + "enclosure": { + "url": "http://cloud.netlifyusercontent.com/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/aff46dfe-164d-4bf7-8e14-057470001b41/deep-dive-into-serverless-ui-typescript.jpg", + "length": "0", + "type": "image/jpg" + } + } + ] + }, + { + "title": "freeCodeCamp.org", + "feedUrl": "https://www.freecodecamp.org/news/rss/", + "siteUrl": "https://www.freecodecamp.org/news", + "articles": [ + { + "id": "61a5f9680c0c7407b2b3e607", + "author": null, + "description": "In general, a headphone jack and a pair of headphones improve the sound from your PC. You'll be able to hear things more clearly, without disturbing other around you. But sometimes, setting them up is difficult. Or they might stop working entirely. This could be due to outdated drivers, or", + "link": "https://www.freecodecamp.org/news/headphone-jack-not-working-in-windows-10-how-to-fix-headphones-on-pc/", + "publishedOn": "2021-12-01T09:49:48.000Z", + "wordCount": 743, + "title": "Headphone Jack Not Working in Windows 10 - How to Fix Headphones on PC" + }, + { + "id": "61783ffa33422e07df364d2c", + "author": null, + "description": "For six years in a row, Rust has been voted the most loved programming language by Stack Overflow. So if you're ready to learn this popular programming language, this course will introduce you to Rust so you can start using it in your projects. You will be working entirely within", + "link": "https://www.freecodecamp.org/news/rust-in-replit/", + "publishedOn": "2021-11-30T14:35:18.000Z", + "wordCount": 5418, + "title": "Learn Rust Programming Course – Interactive Rust Language Tutorial on Repl.it" + }, + { + "id": "61a0f98125888a07c3e1bfbc", + "author": null, + "description": "Everyone should learn three skills that can help them make money in their life. This means that you won't have to rely on one skill to make money, and it gives you a chance to make a side income, too. The value you can add at your job or to", + "link": "https://www.freecodecamp.org/news/5-valuable-skills-developers-should-learn/", + "publishedOn": "2021-11-30T01:12:15.000Z", + "wordCount": 1098, + "title": "5 Valuable Skills Developers Should Learn in 2022" + }, + { + "id": "61a39f3025888a07c3e1cf08", + "author": null, + "description": "How you train for your career is one of the most consequential decisions you'll ever make. But it's hard to narrow down your options for a career in software development or IT. Medicine is easy: pick a medical school and apply. But programming? Will what you learn in a four", + "link": "https://www.freecodecamp.org/news/types-of-software-development-training/", + "publishedOn": "2021-11-29T21:06:01.000Z", + "wordCount": 2285, + "title": "Types of Software Development Training – A Data Analysis of IT Career Training Tool Efficacy" + }, + { + "id": "60c08938d3126007592d56f5", + "author": null, + "description": "Many software applications need to exchange data between a client and server. For a long time, XML was the preferred data format when it came to information exchange between the two points. Then in early 2000, JSON was introduced as an alternate data format for information exchange. In this article,", + "link": "https://www.freecodecamp.org/news/what-is-json-a-json-file-example/", + "publishedOn": "2021-11-29T19:16:16.000Z", + "wordCount": 1544, + "title": "JSON for Beginners – JavaScript Object Notation Explained in Plain English" + }, + { + "id": "61a0dae325888a07c3e1bee6", + "author": null, + "description": "These 7 tricks and tips will take you from 50% to 90% accuracy for your image recognition models in literally minutes. So, you have gathered a dataset, built a neural network, and trained your model. But despite the hours (and sometimes days) of work you've invested to create the model,", + "link": "https://www.freecodecamp.org/news/improve-image-recognition-model-accuracy-with-these-hacks/", + "publishedOn": "2021-11-29T17:09:30.000Z", + "wordCount": 1153, + "title": "How to Improve the Accuracy of Your Image Recognition Models" + }, + { + "id": "61a3882925888a07c3e1ce6d", + "author": null, + "description": "When you're programming, you'll often need to switch between data types. The ability to convert one data type to another gives you great flexibility when working with information. There are different built-in ways to convert, or cast, types in the Python programming language. In this article, you'll learn how to", + "link": "https://www.freecodecamp.org/news/python-convert-string-to-int-how-to-cast-a-string-in-python/", + "publishedOn": "2021-11-29T16:47:01.000Z", + "wordCount": 1030, + "title": "Python Convert String to Int – How to Cast a String in Python" + }, + { + "id": "61924f5811d3cb08287a6648", + "author": null, + "description": "On January 10, Class Central is launching two new bootcamps that are free, remote, and open to all. You’ll complete freeCodeCamp’s JavaScript or Responsive Web Design certification, with weekly live streams, projects, and a friendly group of learners worldwide. Free Bootcamp Based on the freeCodeCamp CurriculumHi everyone, I’", + "link": "https://www.freecodecamp.org/news/new-free-bootcamps-based-on-freecodecamp-learn-javascript-webdev-with-weekly-live-streams/", + "publishedOn": "2021-11-29T15:55:00.000Z", + "wordCount": 1395, + "title": "New Free Bootcamps Based on freeCodeCamp – Learn JavaScript & Web Development with Weekly Live Streams" + }, + { + "id": "6140e027852f4307d372d933", + "author": null, + "description": "NoSQL Databases can sometimes seem confusing and overwhelming, partly because of their flexibility. This is why we have put together a 3-hour video course to help you understand exactly what a NoSQL Database is, as well as the different types available to you. By the end of this course, you", + "link": "https://www.freecodecamp.org/news/learn-nosql-in-3-hours/", + "publishedOn": "2021-11-29T15:47:00.000Z", + "wordCount": 765, + "title": "Learn About NoSQL Databases in This 3-hour Course" + }, + { + "id": "61a4b12225888a07c3e1d240", + "author": null, + "description": "Spell check in Microsoft Word and other Word Processing apps is a powerful feature. With spell check, you don’t have to worry too about making small grammatical and typographical errors, because the program will point them out for you in real-time as you type. But sometimes, the spell check", + "link": "https://www.freecodecamp.org/news/spell-check-not-working-in-word-fixed-on-windows-10-pc/", + "publishedOn": "2021-11-29T14:53:48.000Z", + "wordCount": 741, + "title": "Spell Check Not Working in Word [Fixed on Windows 10 PC]" + } + ] + } + ], + "cliVersion": "1.11.3" +} \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..5106792 Binary files /dev/null and b/favicon.ico differ diff --git a/feed.atom b/feed.atom new file mode 100644 index 0000000..2e4a35a --- /dev/null +++ b/feed.atom @@ -0,0 +1,493 @@ + + + urn:2021-12-02T00:42:53.367Z + osmos::feed + 2021-12-02T00:42:53.367Z + osmosfeed 1.11.3 + + + <![CDATA[Dock Life: Using Docker for All The Things!]]> + https://css-tricks.com/?p=357985 + + 2021-12-01T21:11:53.000Z + + + Chris Coyier + + + + <![CDATA[Embrace the Unpredictable]]> + https://css-tricks.com/?p=357344 + + 2021-12-01T15:47:46.000Z + + + George Francis + + + + <![CDATA[Exactly What You Want]]> + https://css-tricks.com/?p=356146 + + 2021-12-01T15:46:29.000Z + + + Amelia Wattenberger + + + + <![CDATA[Headphone Jack Not Working in Windows 10 - How to Fix Headphones on PC]]> + 61a5f9680c0c7407b2b3e607 + + 2021-12-01T09:49:48.000Z + + + freeCodeCamp.org + + + + <![CDATA[Diagonal Stripes Wipe Animation]]> + https://css-tricks.com/?p=357109 + + 2021-11-30T17:26:35.000Z + + + Chris Coyier + + + + <![CDATA[Using the Reflog to Restore Lost Commits]]> + https://css-tricks.com/?p=357728 + + 2021-11-30T15:53:27.000Z + + + Tobias Günther + + + + <![CDATA[A Look at the Cloudinary WordPress Plugin]]> + https://css-tricks.com/?p=357679 + + 2021-11-30T15:23:00.000Z + + + Chris Coyier + + + + <![CDATA[Learn Rust Programming Course – Interactive Rust Language Tutorial on Repl.it]]> + 61783ffa33422e07df364d2c + + 2021-11-30T14:35:18.000Z + + + freeCodeCamp.org + + + + <![CDATA[Smashing Podcast Episode 44 With Chris Ferdinandi: Is The Web Dead?]]> + https://smashingmagazine.com/2021/11/smashing-podcast-episode-44/ + + 2021-11-30T14:00:00.000Z + + + hello@smashingmagazine.com (Drew McLellan) + + + + <![CDATA[It’s That Time Of The Year (December 2021 Desktop Wallpapers Edition)]]> + https://smashingmagazine.com/2021/11/desktop-wallpaper-calendars-december-2021/ + + 2021-11-30T09:45:00.000Z + + + hello@smashingmagazine.com (Cosima Mielke) + + + + <![CDATA[5 Valuable Skills Developers Should Learn in 2022]]> + 61a0f98125888a07c3e1bfbc + + 2021-11-30T01:12:15.000Z + + + freeCodeCamp.org + + + + <![CDATA[Types of Software Development Training – A Data Analysis of IT Career Training Tool Efficacy]]> + 61a39f3025888a07c3e1cf08 + + 2021-11-29T21:06:01.000Z + + + freeCodeCamp.org + + + + <![CDATA[JSON for Beginners – JavaScript Object Notation Explained in Plain English]]> + 60c08938d3126007592d56f5 + + 2021-11-29T19:16:16.000Z + + + freeCodeCamp.org + + + + <![CDATA[How to Improve the Accuracy of Your Image Recognition Models]]> + 61a0dae325888a07c3e1bee6 + + 2021-11-29T17:09:30.000Z + + + freeCodeCamp.org + + + + <![CDATA[Python Convert String to Int – How to Cast a String in Python]]> + 61a3882925888a07c3e1ce6d + + 2021-11-29T16:47:01.000Z + + + freeCodeCamp.org + + + + <![CDATA[Recreating the Apple Music Hits Playlist Animation in CSS]]> + https://css-tricks.com/?p=357565 + + 2021-11-29T16:38:49.000Z + + + Geoff Graham + + + + <![CDATA[We Analyzed 425,909 Favicons]]> + https://css-tricks.com/?p=357976 + + 2021-11-29T16:38:07.000Z + + + Chris Coyier + + + + <![CDATA[New Free Bootcamps Based on freeCodeCamp – Learn JavaScript & Web Development with Weekly Live Streams]]> + 61924f5811d3cb08287a6648 + + 2021-11-29T15:55:00.000Z + + + freeCodeCamp.org + + + + <![CDATA[Learn About NoSQL Databases in This 3-hour Course]]> + 6140e027852f4307d372d933 + + 2021-11-29T15:47:00.000Z + + + freeCodeCamp.org + + + + <![CDATA[Spell Check Not Working in Word [Fixed on Windows 10 PC]]]> + 61a4b12225888a07c3e1d240 + + 2021-11-29T14:53:48.000Z + + + freeCodeCamp.org + + + + <![CDATA[3D CSS Flippy Snaps With React And GreenSock]]> + https://smashingmagazine.com/2021/11/3d-css-flippy-snaps-react-greensock/ + + 2021-11-29T12:30:00.000Z + + + hello@smashingmagazine.com (Jhey Tompkins) + + + + <![CDATA[When is it “Right” to Reach for contain and will-change in CSS?]]> + https://css-tricks.com/?p=357271 + + 2021-11-26T20:43:05.000Z + + + Chris Coyier + + + + <![CDATA[A Handy Little System for Animated Entrances in CSS]]> + https://css-tricks.com/?p=357239 + + 2021-11-26T16:12:33.000Z + + + Neale Van Fleet + + + + <![CDATA[How To Maintain A Large Next.js Application]]> + https://smashingmagazine.com/2021/11/maintain-large-nextjs-application/ + + 2021-11-26T12:30:00.000Z + + + hello@smashingmagazine.com (Nirmalya Ghosh) + + + + <![CDATA[Creating Generative Patterns with The CSS Paint API]]> + https://css-tricks.com/?p=357294 + + 2021-11-24T15:49:08.000Z + + + George Francis + + + + <![CDATA[A Showcase Of Lovely Little Websites]]> + https://smashingmagazine.com/2021/11/showcase-lovely-little-websites/ + + 2021-11-24T12:00:00.000Z + + + hello@smashingmagazine.com (Cosima Mielke) + + + + <![CDATA[Which SVG technique performs best for way too many icons?]]> + https://css-tricks.com/?p=357412 + + 2021-11-23T19:21:28.000Z + + + Chris Coyier + + + + <![CDATA[Control Layout in a Multi-Directional Website]]> + https://css-tricks.com/?p=356977 + + 2021-11-23T16:06:44.000Z + + + Alaa Abd El-Rahim + + + + <![CDATA[Adding A Dyslexia-Friendly Mode To A Website]]> + https://smashingmagazine.com/2021/11/dyslexia-friendly-mode-website/ + + 2021-11-23T10:00:00.000Z + + + hello@smashingmagazine.com (John C Barstow) + + + + <![CDATA[On User Tracking and Industry Standards on Privacy]]> + https://css-tricks.com/?p=357149 + + 2021-11-22T21:00:50.000Z + + + Chris Coyier + + + + <![CDATA[CSS “decorations”]]> + https://css-tricks.com/?p=357046 + + 2021-11-22T18:48:00.000Z + + + Chris Coyier + + + + <![CDATA[Smashing Workshops: Winter 2021]]> + https://smashingmagazine.com/2021/11/smashingconf-workshops-winter-2021/ + + 2021-11-22T16:00:00.000Z + + + hello@smashingmagazine.com (Iris Lješnjanin) + + + + <![CDATA[Improving The Performance Of Wix Websites (Case Study)]]> + https://smashingmagazine.com/2021/11/improving-performance-wix-websites-case-study/ + + 2021-11-22T10:30:00.000Z + + + hello@smashingmagazine.com (Dan Shappir) + + + + <![CDATA[Next.js Wildcard Subdomains]]> + https://smashingmagazine.com/2021/11/nextjs-wildcard-subdomains/ + + 2021-11-19T10:30:00.000Z + + + hello@smashingmagazine.com (Sam Poder) + + + + <![CDATA[A Guide To Modern CSS Colors With RGB, HSL, HWB, LAB And LCH]]> + https://smashingmagazine.com/2021/11/guide-modern-css-colors/ + + 2021-11-17T16:00:00.000Z + + + hello@smashingmagazine.com (Michelle Barker) + + + + <![CDATA[Meet Touch Design For Mobile Interfaces, A New Smashing Book By Steven Hoober]]> + https://smashingmagazine.com/2021/11/touch-design-pre-release/ + + 2021-11-16T16:00:00.000Z + + + hello@smashingmagazine.com (Vitaly Friedman) + + + + <![CDATA[Powerful Terminal And Command-Line (CLI) Tools For Modern Web Development]]> + https://smashingmagazine.com/2021/11/powerful-terminal-commandline-tools-modern-web-development/ + + 2021-11-15T13:00:00.000Z + + + hello@smashingmagazine.com (Louis Lazaris) + + + + <![CDATA[Useful React Hooks That You Can Use In Your Projects]]> + https://smashingmagazine.com/2021/11/useful-react-hooks/ + + 2021-11-12T10:00:00.000Z + + + hello@smashingmagazine.com (Ifeanyi Dike) + + + + <![CDATA[From Good To Great In Dashboard Design: Research, Decluttering And Data Viz]]> + https://smashingmagazine.com/2021/11/dashboard-design-research-decluttering-data-viz/ + + 2021-11-11T14:00:00.000Z + + + hello@smashingmagazine.com (Adam Fard) + + + + <![CDATA[Localizing Your Next.js App]]> + https://smashingmagazine.com/2021/11/localizing-your-nextjs-app/ + + 2021-11-09T13:00:00.000Z + + + hello@smashingmagazine.com (Átila Fassina) + + + + <![CDATA[Automatically Transforming And Optimizing Images And Videos On Your WordPress Website]]> + https://smashingmagazine.com/2021/11/transforming-optimizing-images-videos-wordpress-website/ + + 2021-11-09T09:30:00.000Z + + + hello@smashingmagazine.com (Leonardo Losoviz) + + + + <![CDATA[Meet Hydrogen: A React Framework For Dynamic, Contextual And Personalized E-Commerce]]> + https://smashingmagazine.com/2021/11/hydrogen-react-framework-dynamic-contextual-personalized-ecommerce/ + + 2021-11-08T14:30:00.000Z + + + hello@smashingmagazine.com (Ilya Grigorik) + + + + <![CDATA[The Value Of Concept Testing As Part Of Product Design]]> + https://smashingmagazine.com/2021/11/concept-testing-part-of-product-design/ + + 2021-11-05T11:00:00.000Z + + + hello@smashingmagazine.com (Victor Yocco) + + + + <![CDATA[Smashing Podcast Episode 43 With Matthew Phillips: What Is Astro?]]> + https://smashingmagazine.com/2021/11/smashing-podcast-episode-43/ + + 2021-11-04T18:00:00.000Z + + + hello@smashingmagazine.com (Drew McLellan) + + + + <![CDATA[GraphQL On The Front-End (React And Apollo)]]> + https://smashingmagazine.com/2021/11/graphql-frontend-react-apollo/ + + 2021-11-04T11:30:00.000Z + + + hello@smashingmagazine.com (David Atanda) + + + + <![CDATA[A Deep Dive Into Serverless UI With TypeScript]]> + https://smashingmagazine.com/2021/11/deep-dive-into-serverless-ui-typescript/ + + 2021-11-03T11:30:00.000Z + + + hello@smashingmagazine.com (Ikeh Akinyemi) + + + \ No newline at end of file diff --git a/index.css b/index.css new file mode 100644 index 0000000..30fbb7f --- /dev/null +++ b/index.css @@ -0,0 +1,194 @@ +:root { + /** + * Palette + * Gruvbox dark, medium + * Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) + */ + --base00: #282828; /* ---- */ + --base01: #3c3836; /* --- */ + --base02: #504945; /* -- */ + --base03: #665c54; /* - */ + --base04: #bdae93; /* + */ + --base05: #d5c4a1; /* ++ */ + --base06: #ebdbb2; /* +++ */ + --base07: #fbf1c7; /* ++++ */ + --base08: #fb4934; /* red */ + --base09: #fe8019; /* orange */ + --base0A: #fabd2f; /* yellow */ + --base0B: #b8bb26; /* green */ + --base0C: #8ec07c; /* aqua/cyan */ + --base0D: #83a598; /* blue */ + --base0E: #d3869b; /* purple */ + --base0F: #d65d0e; /* brown */ + + /** + * Typograph + */ + --font-family-default: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, + "Helvetica Neue", sans-serif; + --font-size-scaler: 62.5%; /* 1rem = 10px */ + --font-size-m: 1.4rem; + --font-size-s: 1.2rem; + + /** + * Components + */ + --body-color: var(--base04); + --body-bg: var(--base00); + + --daily-heading-color: var(--base04); + + --source-name-color: var(--base0A); + --source-name-hover-color: var(--base0A); + + --article-title-color: var(--base05); + --article-title-hover-color: var(--base07); + --article-summary-color: var(--base04); + --article-summary-hover-color: var(--base07); + + --accordion-content-rail-color: var(--base03); + --accordion-content-hover-rail-color: var(--base04); + --accordion-title-marker-color: var(--base03); + --accordion-title-hover-marker-color: var(--base04); + + --card-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%); + --card-bg: var(--base01); + --card-radius: 4px; + + --footer-color: var(--base04); + --footer-link-hover-color: var(--base07); +} + +/** + * Internals below + * + * If you can't create a specific look and feel with the configuration above, + * you might have reached the customization limit of the template. + * + * Options: + * 1. File an issue with the template. + * 2. Target specific elements and write your own CSS. A future change in HTML may break your style. + * 3. (Coming soon...) Write your own template with Template Extensibility API. + */ +html { + font-size: var(--font-size-scaler); +} + +body { + background-color: var(--body-bg); + font-family: var(--font-family-default); + color: var(--body-color); + margin: 0; + gap: 24px; + padding: 16px; + display: grid; +} + +:not(:focus-visible) { + outline: none; +} + +.card { + border-radius: var(--card-radius); + box-shadow: var(--card-shadow); + background: var(--card-bg); +} + +.sources { + padding: 12px 16px; + list-style: none; + margin: 0; + display: grid; + gap: 16px; +} + +.daily-heading { + font-size: var(--font-size-s); + font-weight: 600; + margin: 0 0 8px 0; + padding-left: 16px; + color: var(--daily-heading-color); +} + +.source { + display: grid; + gap: 4px; +} + +.source-name { + font-size: var(--font-size-s); + font-weight: 400; + margin: 0; +} +.source-name__link { + color: var(--source-name-color); + text-decoration: none; +} +.source-name__link:hover { + color: var(--source-name-hover-color); + text-decoration: underline; +} + +.article-expander { + padding: 2px 4px; + border-radius: 4px; +} + +.article-expander__title { + color: var(--article-title-color); + font-size: var(--font-size-m); + font-weight: 600; +} +.article-expander__title:hover { + cursor: pointer; + color: var(--article-title-hover-color); +} +.article-expander__title::marker { + color: var(--accordion-title-marker-color); +} +.article-expander__title:hover::marker { + color: var(--accordion-title-hover-marker-color); +} + +.article-summary-link { + color: var(--article-summary-color); + font-size: var(--font-size-m); + text-decoration: none; +} + +.article-summary-link:hover { + color: var(--article-summary-hover-color); + --accordion-content-rail-color: var(--accordion-content-hover-rail-color); +} + +.article-summary-box-outer { + display: block; + padding: 4px 8px 8px 4px; +} + +.article-summary-box-inner { + padding-left: 8px; + border-left: 1px solid var(--accordion-content-rail-color); +} + +.article-reading-time { + font-weight: 600; +} + +footer { + color: var(--footer-color); + font-size: var(--font-size-s); + display: flex; + padding: 0 16px; + justify-content: space-between; +} + +.footer-link { + color: var(--footer-link-text); + text-decoration: none; +} + +.footer-link:hover { + color: var(--footer-link-hover-color); + text-decoration: underline; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..781fbad --- /dev/null +++ b/index.html @@ -0,0 +1,810 @@ + + + + + osmos::feed + + + + + + + + + + + + +
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+
+

+ +
+ + + + + + + \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..cc6df78 --- /dev/null +++ b/index.js @@ -0,0 +1,10 @@ +document.addEventListener("click", (event) => { + const actionButton = event.target.closest(`[data-action]`); + + if (actionButton) { + actionButton.closest("article").classList.toggle("expanded"); + } +}); + +const timestamp = document.getElementById("build-timestamp"); +timestamp.innerText = new Date(timestamp.getAttribute("datetime")).toLocaleString();