My Honest Moz Review for 2025

Original Source: https://ecommerce-platforms.com/articles/moz-review

If you’ve set up your eCommerce website, your focus should now be ensuring customers can find it. That starts with boosting your presence on Search Engines like Google. Unfortunately, rising to the top of the search engine rankings is tough. 

Setting up a website is easy enough – particularly these days. Navigating the ever-evolving world of SEO (Search Engine Optimization) is something else entirely. 

If you’re a budding entrepreneur like me, you’ll probably find yourself searching for an all-in-one SEO tool that’s also easy to understand. Y

ou’ll want something simple enough for a non-SEO-pro to master. But, at the same time, you’ll also need something scalable enough to evolve with you as your skills evolve. 

That’s precisely why I’m discussing Moz here. It’s my go-to tool for all my SEO needs. I’m not an SEO pro – just a basic SEO nerd, and Moz works for me.

It’s designed to be as user-friendly as possible, helping users with everything from tracking keywords to assessing backlinks and examining how well my website your website is doing. 

However, Moz isn’t just for absolute beginners. The platform constantly introduces new tools and features perfect for advanced users, too.

When you’re ready to dive into technical SEO tactics, establish authority with advanced link-building tactics, and tap into advanced performance metrics, Moz will continue to excel. 

Plus, since it offers access to tons of learning resources, you won’t have to worry about getting stuck along the way.

So let me discuss Moz in detail with you – what it is and what it can do for you.

What is Moz?

Moz is an SEO platform packed with tools to help you improve your search engine rankings. On a broad scale – it’s a solution for driving more traffic towards your website. But as a user, I think Moz is more than just an “SEO tool” – it’s a system that makes SEO less intimidating.

Moz is one of the few SEO software providers that prioritizes user experience. It doesn’t restrict its tools to people with a high degree of search engine, data analytics, and marketing knowledge. Moz makes SEO mastery accessible to anyone. 

Whether you’re an absolute beginner who fears being overwhelmed by too many metrics and raw data or an SEO pro, you can achieve incredible results with this tool without the headaches. 

That’s not to say that Moz isn’t a feature-rich platform or that it’s way more basic than other SEO tools. This platform is still packed with advanced features, and more are emerging all the time. You can use Moz for everything from domain analysis to competitive research, link building, and in-depth SERP tracking.

But Moz makes every aspect of the SEO journey feel easier to manage. For instance, Moz’s keyword research tool is one of the easiest options out there in my opinion – and it gives you tons of inspiration and insights.

The page analysis tool is incredibly intuitive too. It crawls your website and gives you information about your pages and how healthy they are.

Moz gives you the information and tools you need, without overwhelming you with overly technical and complicated elements.

Pros 👍
Cons 👎

Pros 👍

Detailed keyword insights with search volume
Accurate backlink analysis
Clean and simple interface
Regular algorithm updates that let you stay at the top with changing SEO trends
Free trial for 30 days

Cons 👎

Some features such as site crawl are slow
Inadequate metrics for seasoned SEO experts

Go to the top

How I Tested Moz

I stumbled upon Moz about three years ago when I was looking for an SEO tool for my eCommerce website.

I checked some other tools as well (Semrush and Ahrefs, as mentioned earlier), but I felt the most comfortable with Moz.

I began with keyword analysis and it gave me a lot of good ideas to help me with my content. I could easily see how much each keyword is being searched so I could focus on the most important ones.

Next, I wanted to check my backlink performance. With Moz, I got a detailed breakdown of all the links that were pointing to my website.

I could also see their Domain Authority and spam score. That was a surprise for me. If you’re planning to use Moz, trust me, checking your website’s health is one thing you’ve got to do!

And of course, once I was done with both these features, the next step was to run a site crawl.

I let Moz crawl my website and show me how each page was performing. It showed me where I forgot to add meta descriptions and where I had broken links.

I didn’t even realize I had these errors. With a trusted SEO tool, you get to learn a lot about your own website and fix the issues that exist.

This boosts your site’s performance and it ranks high on Google and other search engines.

Go to the top

How to Use Moz

I have been using Moz for a few years now but I’ll start from step 1 to show you how it’s done. For this example, I’m using a website I created as an experiment a few months ago.

Once you subscribe to Moz Pro, you’ll be asked to enter your website address so you can track its performance.

Let’s begin with that.

Step 1. Enter your website details.

Just enter the URL and name of your brand and click on Next.

Step 2. Set crawl limit

Select the number of pages you want Moz to crawl. This depends on the number of products you have on your eCommerce website. Select the number according to the size of your website.

Step 3. Measure traffic

Here you’ll need to link your Google Analytics with Moz. This step takes just a few seconds but you can also skip it in the beginning.

Step 4. Select search engines.

Here you can select the search engines, platforms, and location. This will show you how your website will perform on that search engine in the given region.

Step 5. Add keywords

Here you can enter the keywords related to your niche. For example, if you’re selling fashion accessories, you can enter keywords such as necklaces, earrings, hats, handbags, etc., and see what Moz returns.

Step 6. Measure against competition

Now this is the juicy bit. That’s where you’ll ask Moz to stalk your competitors. Enter the top three competitors in your niche and see how they’re performing.

After this, you’ll be taken to your dashboard. This is how it will look.

Right now, you won’t find any insights because it’s working on your website. Check back after some time and you’ll see new insights here.

Let’s try some other features of Moz.

Site Crawl

Site crawl is a slow process. It will begin when you register at Moz. Once it’s completed, you’ll get an email to see how your website is performing.

Once finished, you will see your page details along with the status code.

As you can see, some pages have the status code 301. This means the visitors to these pages are redirected to another page.

Some other pages have status code 200. This means that the page is functioning properly.

You can find the complete list of status codes on Moz.

Domain Overview

Moz lets you take an overview of your domain. You’ll find the Domain Overview option on the left panel of your dashboard.

Here, you can enter your domain name or a specific page to see how it is performing.

You’ll get a result like this.

As you can see, Moz uses AI to determine the search theme of the page. In this case, it’s Fashion Accessories. Not great results (I mean, I created this website a couple of months ago and abandoned it), but as you can see, the report is pretty clean and concise.

Moz Marketplace

Moz Marketplace is a new offering by Moz. It’s right there on your dashboard but you might need to pay extra for it. It offers options for local business listings, APIs, Moz academy courses, add-ons, and other features.

Let’s see some other services offered by Moz

Scroll down the Moz dashboard and you’ll see these options:

They will help you optimize your pages and get keyword ranking to see how you’re performing. You will also receive insightful link research and a site audit. Apart from these features, you can also use MozBar, a free Chrome extension that will conduct SEO research on the go.

Make sure you use all of them to help your website rank high.

Go to the top

Is Moz Only For Paying Customers?

While all the “good stuff” is paid, it’s not like you cannot access anything without paying. Here’s a list of all the free tools offered by Moz.

With these tools, you can begin your SEO journey and then move on to the paid services when you’re ready. Let’s discuss the pricing plans offered by Moz.

Go to the top

Pricing

There are four pricing plans.

Starter for $49/month

Standard for $99/month

Medium for $179/month

Large for $299/month

There’s a 30-day free trial for the Standard and Medium plans. However, you’ll need to enter your credit card details to sign up. But once registered, you can cancel any time before a month and your card will not be charged.

I use the Medium plan. Let’s see which plan would be the best for you. If you are an individual working on your website, and you just want to run a single campaign, the Starter package is right for you.

However, for an individual with up to three campaigns, the Standard package is most suited. And if you are like me (we are a team of two people, working on multiple websites), go for the Medium plan. The Large plan is for bigger companies.

Go to the top

User Experience

Imho, Moz performs really well. But I wanted to know the general opinion about this SEO tool. So I visited Gartner to see what others have been talking about Moz.

It had only 17 ratings and 3.8 stars. In all fairness, there are tools out there that are more suitable for seasoned SEO players. However, Moz is easier and comes with a mild learning curve.

People love it for its ease of use as it lets them access all control from a single dashboard. Many users love the Moz Local feature that helps businesses create local listings and get traffic on them. It also helps in reputation management by managing reviews and responding to them.

There were some complaints about the keyword research tool and some others complained about the outdated data sources.

Based on my own experience and user reviews I read, it’s a good tool for beginners and a not-so-good tool for experienced users.

Go to the top

Is Moz Worth It?

Is Moz worth its price? I mean it costs at least $49/month to use it. If you’re a new entrepreneur, should you spend all that on SEO?

In my opinion, it’s a definite yes. But with some strings attached. If you’re running a website, especially an eCommerce website, Moz can be a game changer. With keyword and link analysis, Moz can help you hit the right search terms and rank well on Google.

The problem is, Moz isn’t the cheapest option out there. Yes, it does give some free tools. But if you really want some good features, you’ll need to buy the paid plan. But despite that, I still subscribe to Moz, as do many other entrepreneurs because of the simplicity and the kickass SEO features it provides.

The insights you get into keyword research, competitor analysis, and site health are top-notch.

But hey, if you don’t have the budget for paid tools, make sure you check out the free ones. There’s no reason to say no to the free tools. If you find any difference in using SEO on your website, you can upgrade to the paid plan whenever you feel like it.

Go to the top

Moz Alternatives

Despite all its awesomeness, Moz has powerful competitors. Tools that can give more insightful details into website performance and help you get a high ranking website. Let’s discuss the top three contenders here.

Moz v/s Semrush

Semrush is a tough competitor. While both offer powerful SEO insights, which one should you choose?

Moz has a good reputation for being user-friendly, especially for beginners. It offers a keyword research tool, a backlink tool, and other related features. Plus, Moz’s free tools are a lifesaver for small businesses or those on a budget.

Semrush is like an all-in-one solution for experienced players. It offers in-depth competitor analysis to rank tracking and paid search insights. The level of data you get with SEMrush can be overwhelming, but it’s amazing if you want a deep dive into your strategy. However, Semrush is more expensive. Its plans start from $139.95/month.

So I’d say, go for Moz if you’re just starting or need a user-friendly experience without too much complexity. Semrush is the way to go if you’re ready to take your SEO game to the next level.

Moz v/s Ahrefs

Ahrefs is another tool that’s power-packed, pretty much like Semrush. While Ahrefs is younger than Moz, it has been around for over a decade and performs exceptionally well for expert SEO marketers.

I’ve tried Ahrefs as well and I like it as it lets you find out what related terms people are putting on Google. It creates SEO friendly content for you, helps you with link building, and even tweaks some technical areas of your website content so it can rank high on search engines.

Moz can’t do all that. But then again, it’s easier to use. The beginner plan of Ahrefs is Lite and will cost you $129/month, which is costlier than Moz.

Technically, Ahrefs can do whatever Moz can, plus more. But then, use it only if you need all the extra features because it costs extra as well.

Moz v/s Raven

Raven is an amazing choice for beginner SEO. Mainly because it’s budget friendly. Its beginner package costs just $39/month. And for this price, it offers amazing services.

In fact, Raven Tools offers a lot of similar solutions to Moz. Just like Moz, Raven can run timely website audits to make sure there are no issues with your website’s SEO.

It can also conduct in-depth competitor research on your behalf, showing you what types of terms competitors are ranking for, and where you can take advantage of gaps in your strategy. 

I do think Moz offers some more advanced features, however, like the ability to access weekly crawl emails, custom reports, and a more in-depth “competitive research” suite. Compared to Moz, Raven Tools is a little more simplistic.

Go to the top

Conclusion

I find that Moz offers the perfect balance between user friendliness, SEO features, and pricing. It hits the sweet spot as it’s not too complicated, not too simple. And it’s affordable as well.

It’s a trusted name in the SEO game and before I started using it, I had already heard a lot about it. Now that I’ve been using it for about three years, I don’t have any complaints.

One of the main strengths of Moz is its intuitive interface. Then there are features like keyword explorer, site audits, and their famous Domain Authority (DA) score. All these make SEO less intimidating for people like me.

While Moz doesn’t offer quite the same depth of data as big players like Ahrefs or SEMrush, it’s ideal for those who need a balance between usability and functionality.

In conclusion, if you’re looking for a powerful SEO tool that’s also easy to use, Moz is a go-to option to get you ranking higher and growing your online presence.

Go to the top

Frequently Asked Questions

Q: Is Moz good for beginner digital marketers?

A: Yes, Moz is an amazing tool for digital marketers as it provides keyword analysis, backlink analysis, and other features and reports in a clear and concise way.

Q: Does Moz have a free plan?

A: While Moz doesn’t have a free plan, it does have some free SEO tools such as domain SEO metrics, a basic keyword explorer, a basic backlink explorer, competitor research, and many others.

Q: Can I get a refund if I’m not happy with Moz?

A: There is no currently running refund deal but you can get a month for free. When you register, you will be charged after a month of registering on the website. You can cancel any time before a month and you won’t have to pay anything.

The post My Honest Moz Review for 2025 appeared first on Ecommerce Platforms.

Fine-Tuning an Open-Source LLM with Axolotl Using Direct Preference Optimization (DPO)

Original Source: https://www.sitepoint.com/fine-tuning-llm-with-direct-preference-optimization-dpo/?utm_source=rss

Read Fine-Tuning an Open-Source LLM with Axolotl Using Direct Preference Optimization (DPO) and learn AI with SitePoint. Our web development and design tutorials, courses, and books will teach you HTML, CSS, JavaScript, PHP, Python, and more.

Continue reading
Fine-Tuning an Open-Source LLM with Axolotl Using Direct Preference Optimization (DPO)
on SitePoint.

Prodigi vs Printful: Which Print on Demand Platform Wins?

Original Source: https://ecommerce-platforms.com/articles/prodigi-vs-printful

Prodigi or Printful: Which option is better for your print on demand business? If you want a quick answer, I honestly think Printful is one of the best POD platforms available for anyone.

It’s the more scalable, versatile, and powerful option, with better design tools and more integration options for various sales channels.

However, if you’re looking for a very straightforward platform, with very low product costs, Prodigi is still a great choice.

I examined the core features and benefits of both platforms in depth, to bring you this simple comparison guide that should help you make the right choice.

Quick Verdict, Pros and Cons

Overall, I recommend using Printful if you want a highly scalable, flexible, and intuitive platform with lots of high-quality products to choose from, and fantastic design tools. It even gives you more ways to sell your print on demand creations online.

I’d only really recommend Prodigi to those who want a simplistic platform, heavily focused on eco-conscious printing, and fulfillment.

Prodigi Pros and Cons

Pros:

Over 500,000 customizable products

Local printing and eco-friendly shipping

Integrations with platforms like Shopify and Etsy

Straightforward design tools

Free to use with reasonable product costs

Fast production times

Cons:

Fewer integrations than Printful

Not as many customization options

Variations in print quality

Printful Pros and Cons

Pros:

Fantastic customization options

Exceptional mockup generator and design tools

Brilliant range of integration options

Consistent product quality

Add-on services and premium plan options

Better interface for business leaders

Cons:

Customer support can be a little slow

Potentially fewer product choices

Prodigi vs Printful: The Features Side-by-Side

Both Prodigi and Printful are easy-to-use print on demand platforms that offer access to various high-quality, customizable products you can sell through a range of channels.

They have a lot in common, such as eco-friendly printing options, global fulfillment support, and free plans for beginners.

However, there are some major differences between these platforms that stand out when you put them to the test for yourself (like I did).

Product Variety and Customization

First, Prodigi definitely looks like it has more products to choose from than Printful (more than 500,000). However, I did notice that most of the items available are variations of the same product.

For instance, there are dozens of different types of t-shirt to choose from. Although, there are some unique options to choose from, like games, photo tiles, wooden prints, and so on.

Prodigi also specializes in eco-conscious and sustainable products, which is great if you’re worried about the planet.

The company even partners with global suppliers to ensure “local” production of products, reducing the supply chain when it comes to getting products to your customers.

That doesn’t mean that Printful isn’t eco-friendly, however. There are plenty of sustainable products available from this platform too.

However, Printful has fewer products overall (over 350). The platform does, however, give you more ways to customize your products with things like embroidery, and all-over print.

What really stood out to me when I was testing these two platforms, however, is that Printful’s design tools are a lot more intuitive.

Although Prodigi’s design maker is fine, Printful gives you more free assets you can add to products, and a better mockup generator for creating lifestyle images.

Prodigi vs Printful: Product Quality

It’s hard to get a clear view of the product quality you’ll get from any print on demand platform. Even if you order samples, quality can vary based on your design files, the items you choose to create, and more.

The good news is that Printful has an excellent reputation for consistently excellent quality.

Most customers say the items they create with Printful always feature crisp, clean prints, excellent materials, and very few mistakes or issues.

This is probably because Printful invests in cutting-edge machinery, and a comprehensive “quality assurance” process.

Prodigi also promises exceptional quality, but I have noticed a few reviews online saying that the print quality can vary between items.

Some people also suggest certain products, like t-shirts, can be a little flimsy and transparent compared to what you get from Printful.

That being said, Prodigi’s base product costs are a little cheaper than Printful’s, particularly if you buy items in bulk.

However, that doesn’t necessarily mean you’ll be able to achieve higher profits – particularly if you can’t rely on consistent quality, so keep that in mind.

Plus, it’s worth noting that Printful has recently reduced the base cost of its items, making them a lot more affordable.

Integrations and Fulfillment

Both Prodigi and Printful offer worldwide fulfillment options, with distribution centers worldwide to ensure items can reach your customers as quickly as possible.

Prodigi does promise slightly faster fulfillment for some products, saying some options can be shipped to customers within two days.

However, it’s worth noting Printful offers some specific “fast delivery” products too.

Additionally, Printful gives you a lot more options for where you can sell your products.

While Prodigi offers easy integrations with Squarespace, Etsy, Shopify, Wix, WooCommerce, and BigCommerce, Printful provides dozens of platforms to choose from.

Alongside all the channels that Prodigi supports, Printful also integrations with options like TikTok Shop, Webflow, Square Online, Storenvy, Ecwid, and Amazon.

If you’re based in the US, you can even use Printful’s “Quick Store” option to create a simple online store and start selling without the need for any integrations or additional platforms.

More sales channels means more options to potentially reach and convert customers, making Printful the more profitable choice.

Ease of Use and Customer Support

The truth is that most print on demand platforms are easy to use. You don’t need any business knowledge or expertise to get started with either Prodigi or Printful.

The process is as simple as creating an account, choosing a product, adding a design, and adding it to your store.

Prodigi might be a little faster to set up than Printful, because it gives you fewer tools for things like tracking analytics, branding, and creating lifestyle mockups.

However, for me, Printful is the more intuitive platform overall. The design tools are more flexible, and even give you options like an AI upscaler so you can enhance the quality of your images with a single click.

Printful’s platform also comes with more in-built support in the platform. There’s an onboarding checklist, and tooltips for every feature you might want to use.

If you need extra support, both companies offer plenty of self-help resources like videos, guides, tutorials, and FAQs.

Printful’s resources are a bit more comprehensive, with more screenshots and in-depth insights to help beginners, but both companies excel in this area.

For direct support from a customer support team, Printful gives you 24/7 chat and email, whereas Prodigi only offers email support. This means Printful can generally respond quicker to any questions you might have.

Prodigi vs Printful: Plans and Pricing

So, how much does it cost to use both of these platforms? Well, first of all, both are available to access for free – you don’t need to pay a monthly subscription fee to use either Prodigi or Printful. However, both come with extra costs to consider.

For instance, you’ll need to think about the price of paying for the ecommerce platform you’re going to integrate with the tool.

Plus, there are the base costs of products to consider too. Printful’s products – though more affordable these days – are a little more expensive.

That’s because generally, they’re higher in quality than what you’ll get from Prodigi.

Both companies offer extra services you can pay for too. However, Printful is the only platform (of these two), that has a paid plan available.

The “Growth” plan costs $24.99 per month in general, but it becomes free to use when you’re earning at least $12k per year.

I think this plan is extremely valuable for growing businesses, thanks to extra discounts it offers on products, and branding options.

It even gives you free digitization for your embroidered products, and other bonuses that you simply can’t get with Prodigi.

Prodigi vs Printful: The Verdict

So, which platform should you choose? In my opinion, the answer is easy.

Prodigi might be great if you’re looking for thousands of cost-effective products and ease of use.

However, Printful outperforms Prodigi in almost every other area.

It gives you more customization options, higher quality products, better design tools, more features (like an ad creator), and more sales channels to choose from.

You can even create a simple store with Printful if you’re in the US. Plus, Printful provides customers with better support too.

If you’re looking for the most scalable and robust print on demand platform, Printful is the best choice hands-down.

The post Prodigi vs Printful: Which Print on Demand Platform Wins? appeared first on Ecommerce Platforms.

Apple Releases Its Picks for the Best Apps of 2024

Original Source: https://webdesignerdepot.com/apple-releases-its-picks-for-the-best-apps-of-2024/

Every year, the App Store team takes on the exciting challenge of picking the most exceptional apps and games to celebrate with their App Store Awards.

This year, Apple has recognized 17 incredible apps and games that made a big impact from a list of 45 finalists. From innovative tools that help creators and learners to games that bring pure fun, these winners showcase what’s possible when creativity and technology come together.

Whether you’re looking for your next favorite app or just curious about what’s trending in the world of digital experiences, here’s a breakdown of 2024’s App Store Award winners, handpicked by Apple’s editors.

What Makes These Apps Special?

The 2024 winners represent a wide range of experiences, from empowering creativity and productivity to delivering fun and relaxation. Here are just a few standouts:

Kino turns your everyday moments into cinematic memories with gorgeous film-inspired filters.

Moises is a game-changer for musicians, offering AI-powered tools to practice, remix, and perfect their craft.

Lightroom on Mac takes photo editing to the next level with precise, professional-grade tools.

Lumy makes it easy to align your day with the sun’s patterns, helping you find small moments of magic.

F1 TV delivers a full-throttle Formula 1 viewing experience right from your Apple TV.

Apple App Store Awards 2024 Adobe LightroomMac App of the Year: Adobe Lightroom, from Adobe Inc.

For Gamers, 2024 Was a Stellar Year

Gaming also had its moment in the spotlight. Here are the games that captured hearts (and lots of screen time):

AFK Journey brings tactical battles and immersive storytelling to iPhone.

Squad Busters is perfect for iPad gamers who love fast-paced, multiplayer action.

Thank Goodness You’re Here! made Mac users laugh with its quirky humor and fun skits.

THRASHER: Arcade Odyssey blew minds with its colorful, cosmic worlds, earning the title of Vision Pro Game of the Year.

Balatro+ reinvented card games on Apple Arcade, delivering fresh twists with every hand.

Apple App Store Awards 2024 Thank Goodness Youre HereMac Game of the Year: Thank Goodness You’re Here!, from Panic, Inc.

New Frontiers in Spatial Computing

This year, Apple introduced a brand-new category for Apple Vision Pro apps and games, celebrating the future of spatial computing. The winners showed off the potential of this groundbreaking technology:

What If…? An Immersive Story takes you on a mind-bending journey through the Marvel Universe.

THRASHER: Arcade Odyssey pairs stunning visuals with fun gameplay, creating a truly immersive experience.

Cultural Impact: Apps That Made a Difference

In addition to celebrating the best in design and functionality, Apple also recognized apps that made a meaningful cultural impact. These winners tackled real-world challenges, inspired curiosity, and brought people together:

Oko helps visually impaired users navigate city streets with confidence.

EF Hello supports language learners with AI-powered lessons for all skill levels.

DailyArt connects users to timeless art pieces, sparking curiosity and wonder.

NYT Games is a daily ritual for many, offering puzzles and games that bring friends and families together.

The Wreck tells a deeply emotional story, using interactive narratives to explore life’s challenges.

Do You Really Want to Know 2 provides critical education and resources for navigating life with HIV.

Apple App Store Awards 2024 NYT GamesNYT Games from The New York Times Company

Why It Matters

The App Store Awards are more than just a celebration of great apps—they’re a reflection of how technology shapes our lives, communities, and even culture.

From solo developers to massive teams, these creators remind us how powerful and creative the digital world can be.

So, if you’re looking for something new to inspire, entertain, or connect you with others, these apps and games are a great place to start. Happy exploring!

The Importance Of Graceful Degradation In Accessible Interface Design

Original Source: https://smashingmagazine.com/2024/12/importance-graceful-degradation-accessible-interface-design/

Graceful degradation is a design approach that ensures the basics of a website will still function even if specific individual parts of it stop working. The approach removes single points of failure: just because one thing stops working doesn’t mean the system as a whole fails. A site following this principle fails in pieces instead of all at once, so the most important features remain available when some components encounter an error.

The idea or the concept of single points of failure is well known in the manufacturing sector. It’s one of the most common resilience strategies in manufacturing and supply chain operations. A factory with multiple sources of material can keep working even when one supplier becomes unavailable. However, it’s become increasingly crucial to web development as user expectations around availability and functionality rise.

Data center redundancy is a common example of graceful degradation in web development. By using multiple server components, websites ensure they’ll stay up when one or more servers fail. In a design context, it may look like guaranteeing the lack of support for a given feature in a user’s browser or device doesn’t render an app unusable.

Escalators are a familiar real-world example of the same concept. When they stop working, they can still get people from one floor to the next by acting as stairs. They may not be as functional as they normally are, but they’re not entirely useless.

The BBC News webpage is a good example of graceful degradation in web design. As this screenshot shows, the site prioritizes loading navigation and the text within a news story over images. Consequently, slow speeds or old, incompatible browser plugins may make pictures unavailable, but the site’s core function — sharing the news — is still accessible.

In contrast, the Adobe Express website is an example of what happens without graceful degradation. Instead of making some features unavailable or dropping load times, the entire site is inaccessible on some browsers. Consequently, users have to update or switch software to use the web app, which isn’t great for accessibility.

Graceful Degradation vs. Progressive Enhancement

The graceful degradation approach acts as the opposite of progressive enhancement — an approach in which a designer builds the basics of a website and progressively adds features that are turned on only if a browser is capable of running them. Each layer of features is turned off by default, allowing for one seamless user experience designed to work for everyone.

There is much debate between designers about whether graceful degradation or progressive enhancement is the best way to build site functionality. In reality, though, both are important. Each method has unique pros and cons, so the two can complement each other to provide the most resilience.

Progressive enhancement is a good strategy when building a new site or app because you ensure a functional experience for everyone from the start. However, new standards and issues can emerge in the future, which is where graceful degradation comes in. This approach helps you adjust an existing website to comply with new accessibility standards or resolve a compatibility problem you didn’t notice earlier.

Focusing solely on one design principle or the other will limit accessibility. Progressive enhancement alone struggles to account for post-launch functionality issues, while graceful degradation alone may fail to provide the most feature-rich baseline experience. Combining both will produce the best result.

How Graceful Degradation Impacts Accessibility

Ensuring your site or app remains functional is crucial for accessibility. When core functions become unavailable, the platform is no longer accessible to anyone. On a smaller scale, if features like text-to-speech readers or video closed captioning stop working, users with sight difficulties may be unable to enjoy the site.

Graceful degradation’s impact on accessibility is all the larger when considering varying device capabilities. As the average person spends 3.6 hours each day on their phone, failing to ensure a site supports less powerful mobile browsers will alienate a considerable chunk of your audience. Even if some complex functions may not work on mobile, sacrificing those to keep the bulk of the website available on phones ensures broader accessibility.

Outdated browsers are another common accessibility issue you can address with graceful degradation. Consider this example from Fairleigh Dickinson University about Adobe Flash, which most modern browsers no longer support.

Software still using Flash cannot use the multi-factor authentication feature in question. As a result, users with older programs can’t log in. Graceful degradation may compromise by making some functionality unavailable to Flash-supporting browsers while still allowing general access. That way, people don’t need to upgrade to use the service.

How to Incorporate Graceful Degradation Into Your Site

Graceful degradation removes technological barriers to accessibility. In a broader sense, it also keeps your site or app running at all times, even amid unforeseen technical difficulties. While there are many ways you can achieve that, here are some general best practices to follow.

Identify Mission-Critical Functions

The first step in ensuring graceful degradation is determining what your core functions are. You can only guarantee the availability of mission-critical features once you know what’s essential and what isn’t.

Review your user data to see what your audience interacts with most — these are generally elements worth prioritizing. Anything related to site security, transactions, and readability is also crucial. Infrequently used features or elements like video players and interactive maps are nice to have but okay to sacrifice if you must to ensure mission-critical components remain available.

Build Redundancy

Once you’ve categorized site functions by criticality, you can ensure redundancy for the most important ones. That may mean replicating elements in a few forms to work on varying browsers or devices. Alternatively, you could provide multiple services to carry out important functions, like supporting alternate payment methods or providing both video and text versions of content.

Remember that redundancy applies to the hardware your platform runs on, too. The Uptime Institute classifies data centers into tiers, which you can use to determine what redundant systems you need. Similarly, make sure you can run your site on multiple servers to avoid a crash should one go down.

Accommodate All Browsers

Remember that graceful degradation is also about supporting software and hardware of varying capabilities. One of the most important considerations under that umbrella for web design is to accommodate outdated browsers.

While mobile devices don’t support Flash, some older versions of desktop browsers still use it. You can work with both by avoiding Flash — you can often use HTML5 instead — but not requiring users to have a non-Flash-supporting browser. Similarly, you can offer low-bandwidth, simple alternatives to any features that take up considerable processing power to keep things accessible on older systems.

Remember to pay attention to newer software’s security settings, too. Error messages like this one a Microsoft user posted about can appear if a site does not support some browsers’ updated security protocols. Always keep up with updates from popular platforms like Chrome and Safari to meet these standards and avoid such access issues.

Employ Load Balancing and Caching

Load balancing is another crucial step in graceful degradation. Many cloud services automatically distribute traffic between server resources to prevent overloading. Enabling this also ensures that requests can be processed on a different part of the system if another fails.

Caching is similar. By storing critical data, you build a fallback plan if an external service or application program interface (API) doesn’t work. When the API doesn’t respond, you can load the cached data instead. As a result, caches significantly reduce latency in many cases, but you should be aware that you can’t cache everything. Focus on the most critical functions.

Test Before Publishing

Finally, be sure to test your website for accessibility issues before taking it live. Access it from multiple devices, including various browser versions. See if you can run it on a single server to test its ability to balance loads.

You likely won’t discover all possible errors in testing, but it’s better to catch some than none. Remember to test your site’s functionality before any updates or redesigns, too.

Getting Started With Graceful Degradation

Designers, both big and small, can start their graceful degradation journey by tweaking some settings with their web hosting service. AWS offers guidance for managing failures you can use to build degradation into your site’s architecture. Hosting providers should also allow you to upgrade your storage plan and configure your server settings to provide redundancy and balance loads.

Businesses large enough to run their own data centers should install redundant server capacity and uninterruptible power supplies to keep things running. Smaller organizations can instead rely on their code, using semantic HTML to keep it simple enough for multiple browsers. Programming nonessential things like images and videos to stop when bandwidth is low will also help.

Virtualization systems like Kubernetes are also useful as a way to scale site capacity and help load elements separately from one another to maintain accessibility. Testing tools like BrowserStack, WAVE, and CSS HTML Validator can assist you by revealing if your site has functional issues on some browsers or for certain users.

At its core, web accessibility is about ensuring a platform works as intended for all people. While design features may be the most obvious part of that goal, technical defenses also play a role. A site is only accessible when it works, so you must keep it functional, even when unexpected hiccups occur.

Graceful degradation is not a perfect solution, but it prevents a small issue from becoming a larger one. Following these five steps to implement it on your website or app will ensure that your work in creating an accessible design doesn’t go to waste.

An Introduction To CSS Scroll-Driven Animations: Scroll And View Progress Timelines

Original Source: https://smashingmagazine.com/2024/12/introduction-css-scroll-driven-animations/

You can safely use scroll-driven animations in Chrome as of December 2024. Firefox supports them, too, though you’ll need to enable a flag. Safari? Not yet, but don’t worry — you can still offer a seamless experience across all browsers with a polyfill. Just keep in mind that adding a polyfill involves a JavaScript library, so you won’t get the same performance boost.

There are plenty of valuable resources to dive into scroll-driven animations, which I’ll be linking throughout the article. My starting point was Bramus’ video tutorial, which pairs nicely with Geoff’s in-depth notes Graham that build on the tutorial.

In this article, we’ll walk through the latest published version by the W3C and explore the two types of scroll-driven timelines — scroll progress timelines and view progress timelines. By the end, I hope that you are familiar with both timelines, not only being able to tell them apart but also feeling confident enough to use them in your work.

Note: All demos in this article only work in Chrome 116 or later at the time of writing.

Scroll Progress Timelines

The scroll progress timeline links an animation’s timeline to the scroll position of a scroll container along a specific axis. So, the animation is tied directly to scrolling. As you scroll forward, so does the animation. You’ll see me refer to them as scroll-timeline animations in addition to calling them scroll progress timelines.

Just as we have two types of scroll-driven animations, we have two types of scroll-timeline animations: anonymous timelines and named timelines.

Anonymous scroll-timeline

Let’s start with a classic example: creating a scroll progress bar at the top of a blog post to track your reading progress.

See the Pen Scroll Progress Timeline example – before animation-timeline scroll() [forked] by Mariana Beldi.

In this example, there’s a <div> with the ID “progress.” At the end of the CSS file, you’ll see it has a background color, a defined width and height, and it’s fixed at the top of the page. There’s also an animation that scales it from 0 to 1 along the x-axis — pretty standard if you’re familiar with CSS animations!

Here’s the relevant part of the styles:

#progress {
/* … */
animation: progressBar 1s linear;
}

@keyframes progressBar {
from { transform: scaleX(0); }
}

The progressBar animation runs once and lasts one second with a linear timing function. Linking this animation scrolling is just a single line in CSS:

animation-timeline: scroll();

No need to specify seconds for the duration — the scrolling behavior itself will dictate the timing. And that’s it! You’ve just created your first scroll-driven animation! Notice how the animation’s direction is directly tied to the scrolling direction — scroll down, and the progress indicator grows wider; scroll up, and it becomes narrower.

See the Pen Scroll Progress Timeline example – animation-timeline scroll() [forked] by Mariana Beldi.

scroll-timeline Property Parameters

In a scroll-timeline animation, the scroll() function is used inside the animation-timeline property. It only takes two parameters: <scroller> and <axis>.

<scroller> refers to the scroll container, which can be set as nearest (the default), root, or self.
<axis> refers to the scroll axis, which can be block (the default), inline, x, or y.

In the reading progress example above, we didn’t declare any of these because we used the defaults. But we could achieve the same result with:

animation-timeline: scroll(nearest block);

Here, the nearest scroll container is the root scroll of the HTML element. So, we could also write it this way instead:

animation-timeline: scroll(root block);

The block axis confirms that the scroll moves top to bottom in a left-to-right writing mode. If the page has a wide horizontal scroll, and we want to animate along that axis, we could use the inline or x values (depending on whether we want the scrolling direction to always be left-to-right or adapt based on the writing mode).

We’ll dive into self and inline in more examples later, but the best way to learn is to play around with all the combinations, and this tool by Bramus lets you do exactly that. Spend a few minutes before we jump into the next property associated with scroll timelines.

The animation-range Property

The animation-range for scroll-timeline defines which part of the scrollable content controls the start and end of an animation’s progress based on the scroll position. It allows you to decide when the animation starts or ends while scrolling through the container.

By default, the animation-range is set to normal, which is shorthand for the following:

animation-range-start: normal;
animation-range-end: normal;

This translates to 0% (start) and 100% (end) in a scroll-timeline animation:

animation-range: normal normal;

…which is the same as:

animation-range: 0% 100%;

You can declare any CSS length units or even calculations. For example, let’s say I have a footer that’s 500px tall. It’s filled with banners, ads, and related posts. I don’t want the scroll progress bar to include any of that as part of the reading progress. What I want is for the animation to start at the top and end 500px before the bottom. Here we go:

animation-range: 0% calc(100% – 500px);

See the Pen Scroll Progress Timeline example – animation-timeline, animation-range [forked] by Mariana Beldi.

Just like that, we’ve covered the key properties of scroll-timeline animations. Ready to take it a step further?

Named scroll-timeline

Let’s say I want to use the scroll position of a different scroll container for the same animation. The scroll-timeline-name property allows you to specify which scroll container the scroll animation should be linked to. You give it a name (a dashed-ident, e.g., –my-scroll-timeline) that maps to the scroll container you want to use. This container will then control the animation’s progress as the user scrolls through it.

Next, we need to define the scroll axis for this new container by using the scroll-timeline-axis, which tells the animation which axis will trigger the motion. Here’s how it looks in the code:

.my-class {
/* This is my new scroll-container */
scroll-timeline-name: –my-custom-name;
scroll-timeline-axis: inline;
}

If you omit the axis, then the default block value will be used. However, you can also use the shorthand scroll-timeline property to combine both the name and axis in a single declaration:

.my-class {
/* Shorthand for scroll-container with axis */
scroll-timeline: –my-custom-name inline;
}

I think it’s easier to understand all this with a practical example. Here’s the same progress indicator we’ve been working with, but with inline scrolling (i.e., along the x-axis):

See the Pen Named Scroll Progress Timeline [forked] by Mariana Beldi.

We have two animations running:

A progress bar grows wider when scrolling in an inline direction.
The container’s background color changes the further you scroll.

The HTML structure looks like the following:

<div class=”gallery”>
<div class=”gallery-scroll-container”>
<div class=”gallery-progress” role=”progressbar” aria-label=”progress”></div>
<img src=”image1.svg” alt=”Alt text” draggable=”false” width=”500″>
<img src=”image2.svg” alt=”Alt text” draggable=”false” width=”500″>
<img src=”image3.svg” alt=”Alt text” draggable=”false” width=”500″>
</div>
</div>

In this case, the gallery-scroll-container has horizontal scrolling and changes its background color as you scroll. Normally, we could just use animation-timeline: scroll(self inline) to achieve this. However, we also want the gallery-progress element to use the same scroll for its animation.

The gallery-progress element is the first inside gallery-scroll-container, and we will lose it when scrolling unless it’s absolutely positioned. But when we do this, the element no longer occupies space in the normal document flow, and that affects how the element behaves with its parent and siblings. We need to specify which scroll container we want it to listen to.

That’s where naming the scroll container comes in handy. By giving gallery-scroll-container a scroll-timeline-name and scroll-timeline-axis, we can ensure both animations sync to the same scroll:

.gallery-scroll-container {
/* … */
animation: bg steps(1);
scroll-timeline: –scroller inline;
}

And is using that scrolling to define its own animation-timeline:

.gallery-scroll-container {
/* … */
animation: bg steps(1);
scroll-timeline: –scroller inline;
animation-timeline: –scroller;
}

Now we can scale this name to the progress bar that is using a different animation but listening to the same scroll:

.gallery-progress {
/* … */
animation: progressBar linear;
animation-timeline: –scroller;
}

This allows both animations (the growing progress bar and changing background color) to follow the same scroll behavior, even though they are separate elements and animations.

The timeline-scope Property

What happens if we want to animate something based on the scroll position of a sibling or even a higher ancestor? This is where the timeline-scope property comes into play. It allows us to extend the scope of a scroll-timeline beyond the current element’s subtree. The value of timeline-scope must be a custom identifier, which again is a dashed-ident.

Let’s illustrate this with a new example. This time, scrolling in one container runs an animation inside another container:

See the Pen Scroll Driven Animations – timeline-scope [forked] by Mariana Beldi.

We can play the animation on the image when scrolling the text container because they are siblings in the HTML structure:

<div class=”main-container”>
<div class=”sardinas-container”>
<img …>
</div>

<div class=”scroll-container”>
<p>Long text…</p>
</div>
</div>

Here, only the .scroll-container has scrollable content, so let’s start by naming this:

.scroll-container {
/* … */
overflow-y: scroll;
scroll-timeline: –containerText;
}

Notice that I haven’t specified the scroll axis, as it defaults to block (vertical scrolling), and that’s the value I want.

Let’s move on to the image inside the sardinas-container. We want this image to animate as we scroll through the scroll-container. I’ve added a scroll-timeline-name to its animation-timeline property:

.sardinas-container img {
/* … */
animation: moveUp steps(6) both;
animation-timeline: –containerText;
}

At this point, however, the animation still won’t work because the scroll-container is not directly related to the images. To make this work, we need to extend the scroll-timeline-name so it becomes reachable. This is done by adding the timeline-scope to the parent element (or a higher ancestor) shared by both elements:

.main-container {
/* … */
timeline-scope: –containerText;
}

With this setup, the scroll of the scroll-container will now control the animation of the image inside the sardinas-container!

Now that we’ve covered how to use timeline-scope, we’re ready to move on to the next type of scroll-driven animations, where the same properties will apply but with slight differences in how they behave.

View Progress Timelines

We just looked at scroll progress animations. That’s the first type of scroll-driven animation of the two. Next, we’re turning our attention to view progress animations. There’s a lot of similarities between the two! But they’re different enough to warrant their own section for us to explore how they work. You’ll see me refer to these as view-timeline animations in addition to calling them view progress animations, as they revolve around a view() function.

The view progress timeline is the second type of type of scroll-driven animation that we’re looking at. It tracks an element as it enters or exits the scrollport (the visible area of the scrollable content). This behavior is quite similar to how an IntersectionObserver works in JavaScript but can be done entirely in CSS.

We have anonymous and named view progress timelines, just as we have anonymous and named scroll progress animations. Let’s unpack those.

Anonymous View Timeline

Here’s a simple example to help us see the basic idea of anonymous view timelines. Notice how the image fades into view when you scroll down to a certain point on the page:

See the Pen View Timeline Animation – view() [forked] by Mariana Beldi.

Let’s say we want to animate an image that fades in as it appears in the scrollport. The image’s opacity will go from 0 to 1. This is how you might write that same animation in classic CSS using @keyframes:

img {
/* … */
animation: fadeIn 1s;
}

@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}

That’s great, but we want the image to fadeIn when it’s in view. Otherwise, the animation is sort of like a tree that falls in a forest with no one there to witness it… did the animation ever happen? We’ll never know!

We have a view() function that makes this a view progress animation with a single line of CSS:

img {
/* … */
animation: fadeIn;
animation-timeline: view();
}

And notice how we no longer need to declare an animation-duration like we did in classic CSS. The animation is no longer tied by time but by space. The animation is triggered as the image becomes visible in the scrollport.

View Timeline Parameters

Just like the scroll-timeline property, the view-timeline property accepts parameters that allow for more customization:

animation-timeline: view( );

<inset>
Controls when the animation starts and ends relative to the element’s visibility within the scrollport. It defines the margin between the edges of the scrollport and the element being tracked. The default value is auto, but it can also take length percentages as well as start and end values.
<axis>
This is similar to the scroll-timeline’s axis parameter. It defines which axis (horizontal or vertical) the animation is tied to. The default is block, which means it tracks the vertical movement. You can also use inline to track horizontal movement or simple x or y.

Here’s an example that uses both inset and axis to customize when and how the animation starts:

img {
animation-timeline: view(20% block);
}

In this case:

The animation starts when the image is 20% visible in the scrollport.
The animation is triggered by vertical scrolling (block axis).

Parallax Effect

With the view() function, it’s also easy to create parallax effects by simply adjusting the animation properties. For example, you can have an element move or scale as it enters the scrollport without any JavaScript:

img {
animation: parallaxMove 1s;
animation-timeline: view();
}

@keyframes parallaxMove {
to { transform: translateY(-50px); }
}

This makes it incredibly simple to create dynamic and engaging scroll animations with just a few lines of CSS.

See the Pen Parallax effect with CSS Scroll driven animations – view() [forked] by Mariana Beldi.

The animation-range Property

Using the CSS animation-range property with view timelines defines how much of an element’s visibility within the scrollport controls the start and end points of the animation’s progress. This can be used to fine-tune when the animation begins and ends based on the element’s visibility in the viewport.

While the default value is normal, in view timelines, it translates to tracking the full visibility of the element from the moment it starts entering the scrollport until it fully leaves. This is represented by the following:

animation-range: normal normal;
/* Equivalent to */
animation-range: cover 0% cover 100%;

Or, more simply:

animation-range: cover;

There are six possible values or timeline-range-names:

cover
Tracks the full visibility of the element, from when it starts entering the scrollport to when it completely leaves it.
contain
Tracks when the element is fully visible inside the scrollport, from the moment it’s fully contained until it no longer is.
entry
Tracks the element from the point it starts entering the scrollport until it’s fully inside.
exit
Tracks the element from the point it starts, leaving the scrollport until it’s fully outside.
entry-crossing
Tracks the element as it crosses the starting edge of the scrollport, from start to full crossing.
exit-crossing
Tracks the element as it crosses the end edge of the scrollport, from start to full crossing.

You can mix different timeline-range-names to control the start and end points of the animation range. For example, you could make the animation start when the element enters the scrollport and end when it exits:

animation-range: entry exit;

You can also combine these values with percentages to define more custom behavior, such as starting the animation halfway through the element’s entry and ending it halfway through its exit:

animation-range: entry 50% exit 50%;

Exploring all these values and combinations is best done interactively. Tools like Bramus’ view-timeline range visualizer make it easier to understand.

Target Range Inside @keyframes

One of the powerful features of timeline-range-names is their ability to be used inside @keyframes:

See the Pen target range inside @keyframes – view-timeline, timeline-range-name [forked] by Mariana Beldi.

Two different animations are happening in that demo:

slideIn
When the element enters the scrollport, it scales up and becomes visible.
slideOut
When the element leaves, it scales down and fades out.

@keyframes slideIn {
from {
transform: scale(.8) translateY(100px);
opacity: 0;
}
to {
transform: scale(1) translateY(0);
opacity: 1;
}
}

@keyframes slideOut {
from {
transform: scale(1) translateY(0);
opacity: 1;
}
to {
transform: scale(.8) translateY(-100px);
opacity: 0
}
}

The new thing is that now we can merge these two animations using the entry and exit timeline-range-names, simplifying it into one animation that handles both cases:

@keyframes slideInOut {
/* Animation for when the element enters the scrollport */
entry 0% {
transform: scale(.8) translateY(100px);
opacity: 0;
}
entry 100% {
transform: scale(1) translateY(0);
opacity: 1;
}
/* Animation for when the element exits the scrollport */
exit 0% {
transform: scale(1) translateY(0);
opacity: 1;
}
exit 100% {
transform: scale(.8) translateY(-100px);
opacity: 0;
}
}

entry 0%
Defines the state of the element at the beginning of its entry into the scrollport (scaled down and transparent).
entry 100%
Defines the state when the element has fully entered the scrollport (fully visible and scaled up).
exit 0%
Starts tracking the element as it begins to leave the scrollport (visible and scaled up).
exit 100%
Defines the state when the element has fully left the scrollport (scaled down and transparent).

This approach allows us to animate the element’s behavior smoothly as it both enters and leaves the scrollport, all within a single @keyframes block.

Named view-timeline And timeline-scope

The concept of using view-timeline with named timelines and linking them across different elements can truly expand the possibilities for scroll-driven animations. In this case, we are linking the scroll-driven animation of images with the animations of unrelated paragraphs in the DOM structure by using a named view-timeline and timeline-scope.

The view-timeline property works similarly to the scroll-timeline property. It’s the shorthand for declaring the view-timeline-name and view-timeline-axis properties in one line. However, the difference from scroll-timeline is that we can link the animation of an element when the linked elements enter the scrollport. I took the previous demo and added an animation to the paragraphs so you can see how the opacity of the text is animated when scrolling the images on the left:

See the Pen View-timeline, timeline-scope [forked] by Mariana Beldi.

This one looks a bit verbose, but I found it hard to come up with a better example to show the power of it. Each image in the vertical scroll container is assigned a named view-timeline with a unique identifier:

.vertical-scroll-container img:nth-of-type(1) { view-timeline: –one; }
.vertical-scroll-container img:nth-of-type(2) { view-timeline: –two; }
.vertical-scroll-container img:nth-of-type(3) { view-timeline: –three; }
.vertical-scroll-container img:nth-of-type(4) { view-timeline: –four; }

This makes the scroll timeline of each image have its own custom name, such as –one for the first image, –two for the second, and so on.

Next, we connect the animations of the paragraphs to the named timelines of the images. The corresponding paragraph should animate when the images enter the scrollport:

.vertical-text p:nth-of-type(1) { animation-timeline: –one; }
.vertical-text p:nth-of-type(2) { animation-timeline: –two; }
.vertical-text p:nth-of-type(3) { animation-timeline: –three; }
.vertical-text p:nth-of-type(4) { animation-timeline: –four; }

However, since the images and paragraphs are not directly related in the DOM, we need to declare a timeline-scope on their common ancestor. This ensures that the named timelines (–one, –two, and so on) can be referenced and shared between the elements:

.porto {
/* … */
timeline-scope: –one, –two, –three, –four;
}

By declaring the timeline-scope with all the named timelines (–one, —two, –three, –four), both the images and the paragraphs can participate in the same scroll-timeline logic, despite being in separate parts of the DOM tree.

Final Notes

We’ve covered the vast majority of what’s currently defined in the CSS Scroll-Driven Animations Module Leve 1 specification today in December 2024. But I want to highlight a few key takeaways that helped me better understand these new rules that you may not get directly from the spec:

Scroll container essentials
It may seem obvious, but a scroll container is necessary for scroll-driven animations to work. Issues often arise when elements like text or containers are resized or when animations are tested on larger screens, causing the scrollable area to disappear.
Impact of position: absolute
Using absolute positioning can sometimes interfere with the intended behavior of scroll-driven animations. The relationship between elements and their parent elements gets tricky when position: absolute is applied.
Tracking an element’s initial state
The browser evaluates the element’s state before any transformations (like translate) are applied. This affects when animations, particularly view timelines, begin. Your animation might trigger earlier or later than expected due to the initial state.
Avoid hiding overflow
Using overflow: hidden can disrupt the scroll-seeking mechanism in scroll-driven animations. The recommended solution is to switch to overflow: clip. Bramus has a great article about this and a video from Kevin Powell also suggests that we may no longer need overflow: hidden.
Performance
For the best results, stick to animating GPU-friendly properties like transforms, opacity, and some filters. These skip the heavy lifting of recalculating layout and repainting. On the other hand, animating things like width, height, or box-shadow can slow things down since they require re-rendering. Bramus mentioned that soon, more properties — like background-color, clip-path, width, and height — will be animatable on the compositor, making the performance even better.
Use will-change wisely
Leverage this property to promote elements to the GPU, but use it sparingly. Overusing will-change can lead to excessive memory usage since the browser reserves resources even if the animations don’t frequently change.
The order matters
If you are using the animation shorthand, always place the animation-timeline after it.
Progressive enhancement and accessibility
Combine media queries for reduced motion preferences with the @supports rule to ensure animations only apply when the user has no motion restrictions, and the browser supports them.

For example:

@media screen and (prefers-reduce-motion: no-preference) {
@supports ((animation-timeline: scroll()) and (animation-range: 0% 100%)) {
.my-class {
animation: moveCard linear both;
animation-timeline: view();
}
}
}

My main struggle while trying to build the demos was more about CSS itself than the scroll animations. Sometimes, building the layout and generating the scroll was more difficult than applying the scroll animation. Also, some things that confused me at the beginning as the spec keeps evolving, and some of these are not there anymore (remember, it has been under development for more than five years now!):

x and y axes
These used to be called the “horizontal” and “vertical” axes, and while Firefox may still support the old terminology, it has been updated.
Old @scroll-timeline syntax
In the past, @scroll-timeline was used to declare scroll timelines, but this has changed in the most recent version of the spec.
Scroll-driven vs. scroll-linked animations
Scroll-driven animations were originally called scroll-linked animations. If you come across this older term in articles, double-check whether the content has been updated to reflect the latest spec, particularly with features like timeline-scope.

Resources

All demos from this article can be found in this collection, and I might include more as I experiment further.
A collection of demos from CodePen that I find interesting (send me yours, and I’ll include it!)
This GitHub repo is where you can report issues or join discussions about scroll-driven animations.
Demos, tools, videos, and (even) more information from Bramus
Google Chrome video tutorial

I've never been more tempted to buy a Cricut Explore Air 2 – now only £199

Original Source: https://www.creativebloq.com/creative-inspiration/digital-crafting/ive-never-been-more-tempted-to-buy-a-cricut-explore-air-2-now-only-gbp199

This counts as a necessary wedding expense, right?

10 Tools to Remove Image Background Online – Best of

Original Source: https://www.hongkiat.com/blog/remove-image-background-online/

Are you still manually removing image backgrounds using Photoshop or other photo editing tools? Well, you shouldn’t be, at least not anymore. In this blog post, we have compiled a list of the 10 best online tools to Remove backgrounds effortlessly.

These image background-removing tools, with the assistance of AI, are designed to make your life easier, save you time, and help you achieve professional-looking results.

Whether you are a graphic designer, a social media manager, or just someone looking to enhance your images, these online tools will undoubtedly come in handy. Let’s check them out.

Our Testing Process

We put every image background removal tool on our list through a thorough test. For our tests, we used two different kinds of images:

Image 1: a simple one (an ice cream cone against a plain background) and,
Image 2: a more complex one (a girl wearing a red dress with a detailed background).

Image 1

Image 1

Image 1

Image 2

Click on “Image 1” or “Image 2” in the “See results for:” section at the bottom of each tool’s description.

HitPaw Online Background Remover
HitPaw Online Background Remover

HitPaw Online Background Remover allows users to edit images after removing the background. It offers various functionalities, such as adding different color backgrounds, using pre-designed background templates, or even incorporating photos into the design. Users can also resize the image to meet their needs, ensuring a perfect end result.

A key feature of this tool is the ability to preview the image outcome after the background removal. This allows users to make any necessary adjustments before finalizing their design. However, it is important to note that downloading the edited image requires a paid plan.

Price:

The paid plan offers competitive pricing, starting at just $2.57 per day. Subscribing to the paid plan unlocks additional benefits, such as watermark removal, batch processing for multiple images, and unlimited access to high-definition exports.

See results for:
Image 1
Image 2

Remove background with HitPaw

Freepik Background Remover
Freepik Background Remover

Freepik’s Background Remover is a simple and effective tool for removing image backgrounds. It uses AI technology to detect and remove backgrounds instantly, making it easy to integrate subjects into new designs. The tool supports various image formats and is part of Freepik’s online editor. It also provides access to other AI tools, such as a text-to-image generator, allowing you to create new backgrounds for your images. This makes it flexible for redesigning or repurposing visuals.

Using the Background Remover is straightforward. Upload your image by dragging and dropping it or selecting it from your device. Click the “Remove bg” button, and the AI will automatically remove the background in seconds. You can refine the edges or adjust the results with the brush tool. Once done, you can download the edited image or replace the background with an AI-generated option, Freepik’s visuals, or your own picture.

Price:

Price: Free with limitations. Unlimited access starts at $12/month via the premium plan.

See results for:
Image 1
Image 2

Remove background with Freepik

Fotor’s Bg Remover
Fotor's Bg Remover

With “Bg Remover,” you can remove the background from an image and replace it with a different color or a new photo to enhance its appearance. This feature allows you to create visually appealing and customized images tailored to your specific needs.

To ensure the background removal process is successful and meets your expectations, a convenient “compare” button is provided. This feature allows you to quickly view a side-by-side comparison of the original image and the edited version with the background removed.

One of the great features of this tool is its ability to handle multiple image uploads simultaneously. This batch upload functionality saves time and effort by allowing you to process several images at once, streamlining your workflow and increasing efficiency.

If you wish to download a preview version of the edited image, you can do so without signing in. This preview version will be available in a 500×500 resolution. However, if you require a high-definition version of the image in 2000×2000 resolution, signing in is necessary.

Price:

Signing up for an account is completely free, allowing you to access high-quality edited images at no additional cost.

See results for:
Image 1
Image 2

Remove background with Fotor

Zyro’s AI Background Remover
Zyro's AI Background Remover

The simplicity of Zyro’s AI Background Remover is one of its most appealing features, as it does not include any complicated functions or additional features. It is designed to provide users with a hassle-free experience when removing the background from an image.

All you need to do is drag and drop the image into the designated area, and the tool will handle the rest. Once the background has been successfully removed, you can easily download the final result by clicking the “Download Image” button. The entire process is straightforward and user-friendly.

Price:

Zyro’s AI Background Remover is free.

See results for:
Image 1
Image 2

Remove background with Zyro

Background Remover by Icons8
Icons8' Background Remover

The Icons8 background remover features a user-friendly interface, allowing you to effortlessly remove backgrounds from images with a single click. It supports the bulk upload of up to 500 images simultaneously, accommodating formats like JPG, PNG, and WebP. Simply upload your photo to the background remover, and let the AI do the rest. This tool can be used without creating an account, offering free background removal for up to three images.

Price:

For more extensive needs, consider upgrading to one of three paid plans. The Prepaid package is priced at $0.20 per image. The Limited subscription plan, at $9, allows for up to 100 images per month. Alternatively, the Unlimited subscription, at $99, offers unlimited image background removals.

See results for:
Image 1
Image 2

Remove background with Icons8

VanceAI Background Remover
VanceAI Background Remover

VanceAI’s Background Remover is an easy-to-use tool. To start, drag your chosen image onto the page and click the “Start to process” button. Shortly after, the processed image with the background removed will appear on the right side of the screen.

Price:

With a free account, users receive 3 credits to try out the tool. Downloading a processed image costs 2 credits. To learn more about how credits work, visit this page.

See results for:
Image 1
Image 2

Remove background with VanceAI

AVC.AI
AVC.AI

To remove an image background with Avc.AI, first, sign up for a free account. The free account provides you with 12 credits, and each background removal costs 1 credit. Once your account is set up, upload the image you want to edit, choose the “RemoveBG” option, and click the “Start Processing” button.

In addition to background removal, this tool offers features such as noise removal, image upscaling, and colorization. You can select any or all of these options before clicking the “Start Processing” button to customize your image processing experience.

After processing, download the high-quality image by clicking the “Download in high quality” button. Note that processed photos will remain in your account for 72 hours before being deleted from the server.

Price:

Starts at $9.95/month for 100 credits.

See results for:
Image 1
Image 2

Remove background with AVC.AI

Claid.AI
Claid.AI

To use Claid.AI’s image background removal tool, you must first sign up for an account. Upon successful registration, you will receive 50 credits to explore the tool’s features and capabilities.

One of the main advantages of this tool is its AI-powered technology, which allows for seamless background removal and additional customization options. After removing the background, you can easily resize the image, add a solid background color, or choose from a variety of pre-designed templates.

Furthermore, the AI component lets users enter descriptions or prompts, which the system uses to generate a custom background tailored to their specific needs. Once you have made your selections, simply click “Generate” to obtain the finished result.

Price:

Plans starts at $19/month.

See results for:
Image 1
Image 2

Remove background with Claid.AI

Cutout.pro
Cutout.pro

To remove the background using Cutout.pro, simply drag and drop an image or paste the URL of any online image. The tool will efficiently process the image, displaying the original and resulting images side by side for easy comparison.

One unique feature of this tool is the ability to add a custom background color to the processed image, allowing users to personalize their images according to their preferences.

Downloading the processed image is free and does not require signing up for an account. However, the free version of the image is limited to a size of 500×500 pixels.

For users who require a high-definition version of the processed image, a 2000×2000 resolution is available. To access this feature, you must sign up for an account and use one credit.

Price

A free account includes five free credits to get started. For more information on the credit system and its pricing, click here.

See results for:
Image 1
Image 2

Remove background with Cutout.pro

DeepImage
DeepImage

To use DeepImage for background removal, you must first sign up for an account. Once registered, you can easily upload images by either dragging and dropping them or importing them from Google Drive. The tool offers various image editing features, including background removal, upscaling, enhancing facial details, sharpening, and noise reduction.

Please note that processed images with removed backgrounds will have a watermark. To remove this watermark, you need to subscribe to one of the available paid plans.

Price:

DeepImages comes with free trial. Paid plans starts at $7.50/month for 100 credits.

See results for:
Image 1
Image 2

Remove background with DeepImage

Erase.bg
Erase.bg

Erase.bg can process images up to 5000×500 pixels. To use it, simply drag and drop a single image. Once the processing is complete, you’ll be directed to a results page showing a comparison of the original image and the version with the background removed.

A magnifier tool is provided to help you examine the results more closely. If you’re satisfied with the outcome, click on “Download Original Size” to obtain the processed image.

Price:

Erase.bg is free to use, and there’s no need to sign up for an account.

See results for:
Image 1
Image 2

Remove background with Erase.bg

Removal.ai
Removal.ai

With Remove.ai, once the image is uploaded, you will see a side-by-side comparison in two tabs, displaying the before and after results. This helps you easily visualize the enhancements made to your image.

You can download a free preview image with dimensions of 800×800 pixels without signing up for an account. However, if you want a high-quality image measuring 2000×2000 pixels, you need to create an account.

By signing up for a free account, you can download one high-resolution image for free.

Price:

Paid plans start at $5.99/month for 40 images.

See results for:
Image 1
Image 2

Remove background with Removal.ai

The post 10 Tools to Remove Image Background Online – Best of appeared first on Hongkiat.

Mastering SVG Arcs

Original Source: https://smashingmagazine.com/2024/12/mastering-svg-arcs/

So, I love drawing birds with code. Inspired by my brother’s love for birdwatching, I admire the uniqueness of their feathers, colors, and sounds. But what I notice most is the way their bodies curve and different birds can have dramatically different curves! So, I took my love for drawing with SVG graphics and used it to experiment with bird shapes. Over time, I’ve drawn enough to become incredibly adept at working with arc shapes.

Here are a few of my recent works. Inspired by designs I came across on Dribbble, I created my versions with code. You can browse through the code for each on my CodePen.

But before we dive into creating curves with arcs, please pause here and check out Myriam Frisano’s recent article, “SVG Coding Examples: Useful Recipes For Writing Vectors By Hand.” It’s an excellent primer to the SVG syntax and it will give you solid context heading into the concepts we’re covering here when it comes to mastering SVG arcs.

A Quick SVG Refresher

You probably know that SVGs are crisp, infinitely scalable illustrations without pixelated degradation — vectors for the win! What you might not know is that few developers write SVG code. Why? Well, the syntax looks complicated and unfamiliar compared to, say, HTML. But trust me, once you break it down, it’s not only possible to hand-code SVG but also quite a bit of fun.

Let’s make sure you’re up to speed on the SVG viewBox because it’s a key concept when it comes to the scalable part of *SVG. We’ll use the analogy of a camera, lens, and canvas to explain this concept. Think of your browser window as a camera and the SVG viewBox as the camera lens focusing on the painting of a bird you’ve created (the SVG). Imagine the painting on a large canvas that may stretch far beyond what the camera captures. The viewBox defines which part of this canvas is visible through the camera.

Let’s say we have an SVG element that we’re sizing at 600px square with width and height attributes directly on the <svg> element.

<svg width=”600px” height=”600px”>

Let’s turn our attention to the viewBox attribute:

<svg width=”600px” height=”600px” viewBox=”-300 -300 600 600″>

The viewBox attribute defines the internal coordinate system for the SVG, with four values mapping to the SVG’s x, y, width, and height in that order.

Here’s how this relates to our analogy:

Camera Position and Size
The -300, -300 represents the camera lens’ left and top edge position. Meanwhile, 600 x 600 is like the camera’s frame size, showing a specific portion of that space.
Unchanging Canvas Size
Changing the x and y values adjusts where the camera points, and width and height govern how much of the canvas it frames. It doesn’t resize the actual canvas (the SVG element itself, which remains at 600×600 pixels). No matter where the camera is positioned or zoomed, the canvas itself remains fixed.

So, when you adjust the viewBox coordinates, you’re simply choosing a new area of the canvas to focus on without resizing the canvas itself. This lets you control the visible area without changing the SVG’s actual display dimensions.

You now have the context you need to learn how to work with <path> elements in SVG, which is where we start working with arcs!

The <path> Element

We have an <svg> element. And we’re viewing the element’s contents through the “lens” of a viewBox.

A <path> allows us to draw shapes. We have other elements for drawing shapes — namely <circle>, <line>, and <polygon> — but imagine being restricted to strict geometrical shapes as an artist. That’s where the custom <path> element comes in. It’s used to draw complex shapes that cannot be created with the basic ones. Think of <path> as a flexible container that lets you mix and match different drawing commands.

With a single <path>, you can combine multiple drawing commands into one smooth, elegant design. Today, we’re focusing on a super specific path command: arcs. In other words, what we’re doing is drawing arc shapes with <path>.

Here’s a quick, no-frills example that places a <path> inside the <svg> example we looked at earlier:

<svg width=”600px” height=”600px” viewBox=”-300 -300 600 600″>
<path d=”M 0 0 A 100 100 0 1 1 200 0″
fill=”transparent”
stroke=”black”
stroke-width=”24″
/>
</svg>

Let’s take this information and start playing with values to see how it behaves.

Visualizing The Possibilities

Again, if this is the <path> we’re starting with:

<path d=”M 0 0 A 100 100 0 1 1 200 0″/>

Then, we can manipulate it in myriad ways. Mathematically speaking, you can create an infinite number of arcs between any two points by adjusting the parameters. Here are a few variations of an arc that we get when all we do is change the arc’s endpoints in the X (<ex>) and Y (<ey>) directions.

See the Pen Arc Possibilities b/w 2 points [forked] by akshaygpt.

Or, let’s control the arc’s width and height by updating its radius in the X direction (<rx>) and the Y direction (<ry>). If we play around with the <rx> value, we can manipulate the arc’s height:

See the Pen Rx [forked] by akshaygpt.

Similarly, we can manipulate the arc’s width by updating the <ry> value:

See the Pen Rx [forked] by akshaygpt.

Let’s see what happens when we rotate the arc along its X-axis (<rotation>). This parameter rotates the arc’s ellipse around its center. It won’t affect circles, but it’s a game-changer for ellipses.

See the Pen x-axis-rotation [forked] by akshaygpt.

Even with a fixed set of endpoints and radii (<rx> and <ry>), and a given angle of rotation, four distinct arcs can connect them. That’s because we have the <arc> flag value that can be one of two values, as well as the <sweep> flag that is also one of two values. Two boolean values, each with two arguments, give us four distinct possibilities.

See the Pen 4 cases [forked] by akshaygpt.

And lastly, adjusting the arc’s endpoint along the X (<ex>) and Y (<ey>) directions shifts the arc’s location without changing the overall shape.

See the Pen endx, endy [forked] by akshaygpt.

Wrapping Up

And there you have it, SVG arcs demystified! Whether you’re manipulating radii, rotation, or arc direction, you now have all the tools to master these beautiful curves. With practice, arcs will become just another part of your SVG toolkit, one that gives you the power to create more dynamic, intricate designs with confidence.

So keep playing, keep experimenting, and soon you’ll be bending arcs like a pro — making your SVGs not just functional but beautifully artistic. If you enjoyed this dive into arcs, drop a like or share it with your friends. Let’s keep pushing the boundaries of what SVG can do!

Accessibility Best Practices for Single Page Applications (SPAs)

Original Source: https://www.sitepoint.com/accessibility-best-practices-for-single-page-applications/?utm_source=rss

Discover essential accessibility best practices for Single Page Applications (SPAs) to ensure dynamic content, focus management, and navigation are user-friendly for everyone.

Continue reading
Accessibility Best Practices for Single Page Applications (SPAs)
on SitePoint.