Author Archive

11 Best Video Editing Apps

December 7th, 2022 No comments

We’re living in a world where video content is everywhere. So if you’re not creating videos, you’re probably consuming them. It’s a massive part of our online lives.

Video is also more popular than ever before. According to statistics, 78% of people watch online video content weekly, while about 55% of internet users view videos daily. And that number is only increasing as time goes on.

That means that if you want to be successful, it’s essential that you learn how to use video editing software and create compelling visual content for your business or personal brand.

When you’re ready to start editing your videos, you’ll want to consider a platform that’s easy to use, has plenty of features, and makes it easy to share and collaborate with others.

There are many video editing programs, each with its strengths and weaknesses. Some are free, and others cost money, but they all have something to offer.

Here are some of the best video editing tools on the market today:

1. Adobe Premiere Pro

Adobe Premiere Pro is one of the most popular video editing software packages, and for a good reason. It’s an excellent tool for both beginners and professionals alike.

With Adobe Premiere Pro, you can create professional-quality videos, add motion graphics and effects, create titles, and much more. The software is easy to use, but there is a steep learning curve. If you’ve used Adobe Creative Cloud applications before, Premiere Pro will seem more familiar. That said, Creative Cloud Learning Center offers many materials for users at every level.

To start, open a project and import your video and audio files using the media browser. You can also use dynamic linking to bring in Illustrator, Photoshop, and After Effects files. Then create or edit the sequence, add titles to your video, and add transitions and effects. You can edit colors, mix audio, change speed, and export your video file.

The user interface isn’t too complex, considering it’s a video editing platform with many editing options. The UI consists of panels, a workspace, and a blue highlight. After using Photoshop and Illustrator for so long, the panels were easy to understand.

The best part? Premiere Pro’s customizable workspace!

You can arrange the panels however you want and save different setups for different projects or tasks. For example, you could have one workspace with your video and audio files open and another workspace with only your timeline open. 

As you resize one panel, the other gets resized to adjust automatically—this makes it a cinch to move around the interface to find what you’re looking for.

Here’s a quick breakdown of the workspace: 

  • On top, you will see a menu including assembly, editing, color, effects, audio, graphics, and library. 
  • Assembly is where you import your files. You cannot simply drag & drop your files here. 
  • Editing is where you can mix your audio and video and drag & drop them into your timeline. 
  • The color area will give you outstanding control over your video colors. 
  • On the right side, you will see color balance details; on the left, you will see the Lumetri Scopes of your video clip.

Key Features:

  • You can import single or multiple images from other Adobe applications such as Illustrator and Photoshop.
  • You can add animated graphics and edit them.
  • With, you can get time-stamped feedback from the reviewers.
  • It offers stunning video and audio transition effects and lighting effects.
  • Version 23.0 offers the best titling toolsets, with the ability to bulk-edit your clip titles in the timeline and flexible alignment controls.


  • It offers a 7-day trial period, where you can try out all of its features to see if it is the right fit for your business.
  • It has a flexible and customizable workspace.
  • The site’s learning center is packed with valuable resources.


  • It takes some time to get used to it.
  • It doesn’t offer a freemium version.
  • The program has a lot of effects you may never use.


It starts at $20.99 for 100 GB of cloud storage.

2. Pinnacle Studio 26 Ultimate

Pinnacle Studio 26 Ultimate is one of Pinnacle’s more powerful video editing software. It lets you create stunning videos with accurate keyframing, high-level performance, and professional-level editing.

Pinnacle Studio’s interface looks like a mini version of Adobe Premiere Pro, but some crucial differences exist. For example, Pinnacle Studio doesn’t have as many effects or color correction tools as Premiere Pro. 

The first thing I noticed when I started using the editor was its color grading controls. The toolkit lets you adjust your clip’s tone, brightness, hue, and other color levels.

You can also create animated video overlays to direct viewers’ attention to a specific part of the screen. These overlays can contain any image, logo, graphic, or text with a transition. 

In addition to these features, you can also create video masks and edit YouTube videos, drone videos, 360 videos, and other types of videos.

Key Features: 

  • It lets you make targeted edits with motion tracking.
  • You can create two types of video masks: shape masks & panel masks. You can use them to add creative effects to your video, censor a part of the video, overlay some elements of the video, and even use it to hide objects.
  • Smart object tracking lets you create shape-aware masks in the video, and smart technology means you don’t have to recreate masks for each frame.
  • Have you seen those popular gaming videos on YouTube? You can make them with MultiCam Capture 2.0 Lite, which allows you to record your screen and add audio overlays. This product is also suitable for making tutorial videos.


  • It offers MultiCam editing.
  • Its UI is clean and easy to navigate.
  • In addition, they have plenty of helpful information and learning material on their website.


  • It’s costly.
  • With so many effects and detailed masking features, it can confuse some users.


It starts at $129.99 for the complete version.

3. Apple Final Cut Pro

Apple Final Cut Pro is a powerful video editing tool for Mac users. It’s been around for years, but it’s still one of the most popular options for video editing. The software has many features, from basic video editing to advanced compositing.

From editing, mixing, audio, motion graphics, object tracking, and color grading to plugins, cinematic mode, and effects, it offers everything a professional video editor would want. 

There are many built-in effects and transitions which you can use to enhance your videos. For example, you can add titles and text to your footage by dragging the product onto your footage or clicking on it directly from the library window. This is much faster than using hundreds of effects individually, which takes much more time than this method!

In addition, the newest version of the Final Cut Pro 10.6.2 makes it easier to track down duplicate clips in the timeline and timeline index, as they’ll be highlighted automatically. It also improves speech clarity by using machine learning to minimize or adjust background noise levels. And it’s easier to move, rotate, and resize clips.

Final Cut Pro is also optimized for Apple Silicon, Mac Studio, and Macbook Pro, which means you can work with high frame rates with high performance. Let’s take a look at some of its key features.

Key Features: 

  • Apple Final Cut Pro lets you move and trim your clips seamlessly. It also enables you to pack multiple video and audio clips into one bundle with its compound clips feature.
  • You can add metadata tags to your clips, which will help you find them quickly. You can create custom column views and sort your clips by proxy or media types.
  • The Duplicate Detection feature highlights duplicate clips in the timeline.
  • With its Multicam editing feature, you can automatically sync up to 64 angles of videos with different frame sizes, frame rates, and formats.


  • UI is easy to understand and navigate.
  • It offers magnetic timelines.
  • It provides a free trial.


  • Available for Mac OS systems only.
  • Very expensive. If you need it for a shorter period, you cannot get a monthly or yearly subscription.


It costs $299.99 for a one-time purchase. 

4. CyberLink PowerDirector

CyberLink PowerDirector 365 is a powerful video editing program that is especially easy for beginners. 

What’s appealing about it is that you don’t need to have any experience working with editing software—PowerDirector provides amazing customizable templates. The templates save plenty of time, as they are organized into proper categories such as Beauty, Business, Design, Education, and more.

Focused on making video editing easier for people without technical know-how, PowerDirector offers essential editing tools with advanced features – such as Mask Designer for creating images, text, and custom masks.

It also has a Title Designer that lets you add animated stickers, shapes, and call-outs to your video. Choose from a drag-and-drop menu for motion graphics, sound effects, and special effects. You can also add animated stickers, shapes, and call-outs to your video using its PIP Designer.

Key Features: 

  • It offers AI Motion Tracking, which means you can add text and graphics that will directly follow the object’s motion in your video.
  • It offers automatic AI Object Detection.
  • You can use its Chroma Key feature to use the green screen effect.
  • It lets you correct the colors in your video in one click.
  • You can also use its preset lens correction feature to remove distortion in your video and change video speed.


  • You can add multiple trackers and apply different effects to each for motion trackers.
  • A free trial is available.


  • If you apply reverse, it gets applied to the entire video.
  • Expensive monthly subscription.


It starts at $99.99.

5. Apple iMovie

Apple iMovie is the best free video editing app that comes with all Macs and iOS devices. It’s also an excellent choice for beginners. 

You can use iMovie to edit videos, add music and effects, and create slideshows. It’s also great if you need to make simple edits, such as trimming clips or adding transitions.

It allows you to create/edit your videos in 4 simple steps: 

To start a trailer using iMovie, first select a theme from Apple’s pre-designed themes. Then add visual effects to your video. Next, add the music of your choice, choose one of Apple’s pre-designed templates, and your video is ready to export.

To make a movie, select a project and photos and videos to add from the library. You can record directly in iMovie before editing. Like other phone apps, you can add text, effects, and music to your video.

Next, trim and arrange your clips and images in the timeline. When you’re done with that, click the Add Media button to add a soundtrack to your project. Your track will be automatically placed in the beginning and will fit your clip length. You can also add sound effects by browsing and selecting from their built-in sound effects.

Next, add your titles and text. You can make title screens, end credits, or other text elements with this feature. In your timeline, click the clip and then click Titles in the toolbar and choose from the title styles to add your titles.

You can now add filters to your videos to give them a complete makeover. Click the Filter button and choose from the built-in filters, and then preview your video as you choose the effect.

Now, you’re ready to export your video file. To do so, click on the Share button in the project browser and then choose Email or Text Message.

Yes—it’s that simple. So simple that even a complete newbie can get started right away.

However, note that iMovie is suitable only if you want to create basic videos, such as slideshows, short clips, and home movies. If you’re looking for more advanced features like motion graphics or adding filters to your videos, then Adobe Premiere Pro or Apple Final Cut Pro might be better suited for you.

Key Features: 

  • The Magic Movie feature allows you to create videos with pre-styled templates and added titles, music, and transitions.
  • Storyboards: You can select from 20 storyboards with different genres, such as cooking or science experiment, and more.
  • Cinematic Mode: You can edit clips shooted in Cinematic Mode on iPhone 13.
  • Extra Special Effects: Add special effects such as slow-motion, speed it up, and use picture-in-picture and split-screen effects.
  • High-Fidelity Filters: It comes with 13 video filters to help you add a professional and cinematic look to your video.


  • It’s free! If you have an iPad, Macbook, (or iPhone), then you already have access to iMovie. 
  • The app lets you crop, trim, and adjust the brightness of your footage before you start editing it, making it easier to start creating a movie right away.
  • Lots of different templates are available for creating different types of videos (like slideshows with music)


  • Not available for Android, Windows, or Linux systems.
  • It’s a basic video editing software – with limited editing options for professional video editors.


It’s free for all users.

6. Adobe Premiere Elements

Adobe Premiere Elements is a video editing program that offers the best of both worlds: it’s simple enough for beginners to use yet has enough advanced video editing features for professional editors to create stunning content. 

The software also uses artificial intelligence to help you add cinematic effects to your movies.

Starting with the specifications, Premiere Elements offers a range of tools to help you resize and trim clips, add effects or overlays, and much more. In addition, its 2023 version comes with Adobe Sensei, which means you can add effects to your videos with one click. You can also use its newly-added audio tracks and slideshow templates to change the look and feel of your entire video.

You can also arrange your photos and videos in any way you want in the element organizer. It brings together all the photos from different locations on your computer and saves them there, so you don’t have to find them separately in different folders. 

You can also import files from your camera or card reader by selecting the import option ‘From Camera or Card Reader.’ 

Adobe Premiere Elements offers a user-friendly workspace that groups its features into Quick, Guided, and Exper views. You can choose any of these depending on your level of expertise.

If you choose Quick, you can trim video clips, create a movie by putting photos and videos together, and also choose never to see this option again. 

In Guided view, you can get a step-by-step guide throughout the creation. 

Expert view offers more advanced tools and features – for example, an audio mixer or time-stretches abilities.

In addition, video tools let you mark and extract favorite moments, freeze a frame as an image, track moving objects, and smart-trim low-quality parts of the clip. You can adjust the audio balance with the audio mixer and narrate clips.

However, most of its features are designed for beginners rather than for professional videographers.

Key Features: 

  • AI & Automation: Premiere Elements uses Adobe Sensei AI technology to automate common video editing tasks. You can add effects used in some popular artworks, and the program will automatically adjust them to match the aspect ratio you choose.
  • Guided Edits: It offers 26 different guided edits that you can customize to suit your needs.
  • Templates: It offers plenty of slideshow templates, backgrounds, and patterns.
  • Organization: It automatically organizes your files according to date, subject, people, and places.


  • It offers three views based on complexity.
  • It provides in-depth guides for users.
  • Guided edits are available.
  • It offers a free trial.


  • It has limited features for professional filmmakers.


7. Clipchamp

Clipchamp is another easy-to-use video software for beginners on this list – and it’s ideal for small businesses looking to create videos for marketing purposes. It’s a template-based video editing program, so each stage of the process is faster.

The app comes with pre-shot videos that you can use in your projects. These videos are in a 16:9 aspect ratio, and they are royalty-free. Click on the stock video tab to add these videos to your project. 

There will be multiple categories to choose from, and once you find your video, drag it and drop it into the timeline. Now you can start editing them!

You can also use its beginner-friendly video templates from the video editor homepage. Once you add a video to your timeline, it will automatically fit into the aspect ratio. But if you want to edit the video size, just click on the aspect ratio on the right side and choose from the options.

Now, you can make changes to the text and title. On the right side of your screen, click the text box and edit the text in the window that opens. You can also change other aspects of your project this way, such as the font, alignment, color, or transparency.

With its branding features, you can add logos or brand colors to your videos, which you can use in all of your videos.

Now, you can either use templates audio or add your own. If you want to upload your audio, upload it to the editor and drag and drop it into the timeline.

After that, you’re all set to export your video. Again, you can choose from three video resolutions: 480p, 720p, or 1080p.

Key Features: 

  • Video Editor: It comes with customizable templates, which you can trim, cut, rotate, crop, and add images and audio to. You can also balance color and do much more.
  • Stock Library: Its stock library has free stock videos and audio tracks – you just have to add your own titles and other minor changes. It also comes with a free camera recorder which lets you add filters, balance colors, and adjust contrast in your footage.
  • Text-to-speech: With its AI voice generator, you can choose from 170 voices to add a voiceover to your video.
  • Green Screen: Remove unwanted elements while shooting using the green screen, then remove them while editing with the background removal feature.
  • Video Overlay: You can spice up your videos with animated graphics, stock videos, transitions, and more using its built-in styles.


  • There Are so many templates to choose from.
  • It’s very affordable and also offers a free version.


  • It offers limited options for professional filmmakers.
  • Rendering takes more time than it should.


It starts at $11.99 per month or $119.99/per year (if you pay yearly). 

8. Coral VideoStudio Ultimate

Coral VideoStudio Ultimate is one of the powerful video editors that starts you with basics and takes you through very advanced editing features.

To get started, you have to import your media into the library folders. Then, you can simply drag and drop your files or click on the import button and choose your file from the media browser.

Just like any other video editing software, you can drag and drop your media files to your timeline to start editing them. 

Choosing an instant project template will help you get the result quickly. Now you can trim your clips, adding transitions, effects, and more.

To add a title to the video, click the title button [T] and add text. In addition, you can add transitions between your clips by dragging the transition thumbnail to your timeline.

Once you have added your video, you can add filters, effects, and music. Just click the respective button and follow the instructions. Once everything is done, you can save it and share it on blogs or websites, email or social media channels, YouTube, and more.

Key Features: 

  • Drag and Drop: Drag and drop elements in your timelines, such as a text box, an effect, or a transition.
  • Color Grading: Using color grading, you can enhance your video by boosting the colors and correcting their balance.
  • Premium Effects: Use animated AR stickers, Face Effects, blend overlays, and more.
  • Advanced Tools: Make your videos stand out with cinema-grade effects using masking, facial recognition technology, dynamic split screen templates, and more.


  • Online reviews hint at its fast rendering speed.
  • Screen Recording is available.
  • One-time fee structure.


  • There aren’t enough effects and transitions available.


It costs $99.99 / one-time payment. 

9. Movavi Video Editor

If you’ve been in the industry for a considerable time, you must have heard of Movavi Video Editor

It’s a powerful video editing software that allows you to edit videos, create slideshows and convert videos from one format to another. It is an award-winning video editor with readymade intros, keyframe animations, and many special effects.

Let’s see how to edit a 4K video in Movavi. As you see in the screenshot below, the user interface is spotless and straightforward. You just have to click on the “Add file” option to start importing your 4K video into the library and then add it to your timeline to begin editing it.

You’ll see icons for transitions, filters, and more on the left panel. From there, you can add different effects to your video. To cut your video into multiple parts, look above the timeline — you’ll see an icon for “Split Clip.” Select the clip and move the red marker to where you want to cut. Then click on the split icon.

You can also add titles to your video by clicking on the title tag in the left pan. Simply select the one that you want to use and drag it to the timeline. Now double-click on the title in the timeline and start editing the text.

After adding titles and special effects or transitions, save your file. Make sure you save in ultra-high definition. 

Key Features: 

  • AI background removal: Change your video background without using a green screen – with the power of AI.
  • AI noise removal: Its AI-based noise removal tool will help you remove car sounds, wind sounds, or other unwanted sounds.
  • Special effects for Youtube: It offers five frames and an exclusive pack of effects for YouTube.


  • You can directly upload your finished video on TikTok.
  • Clean user interface.
  • Free version available.
  • The video editing app has sound-accompanying transitions.


  • Slow rendering.
  • It does not offer more advanced features for filmmakers.


It costs $74.95 for a one-time license. 

10. DaVinci Resolve

DaVinci Resolve is an excellent video editing program – with a free version with many high-level features that you would expect from a much more expensive product. DaVinci Resolve also makes other products specifically for editors, including keyboards, color grading panels, and more.

In its latest release, they have included support for Blackmagic Cloud and Blackmagic Proxy Generator. You can host your media library on this cloud and share your work with other collaborators and editors.

To start editing in DaVinci Resolve, you must import your video by dragging and dropping your videos from the hard drive to the media pool on the top of the screen.

Many professional video and audio file formats are supported, including H.264, H.265, DNX, Blackmagic RAW, and more. You can mark the part of the clip that you want to use by specifying a start and endpoint for it. 

Once you’re done adding clips to the timeline on the right side of the screen, you can edit them further using options from the editing overlay. This tool can replace, insert and overwrite clips in your movie project.

DaVinci Resolve has a library of 30 different transition effects, including wipes, dissolves, warps, flares, and more. All you have to do is select the effect you want and drag it into your timeline on top of a clip.

You can also add 2D and 3D titles to your project from the title library. Drag Fusion Titles from the library onto the timeline to add a title. You can then customize the text, font, color, etc.

You can do much more with videos, such as making animations, creating soundtracks, controlling the speed of your video, and adding picture-in-picture effects, dynamic zoom effects, and timeline curves. 

Key Features: 

  • Multi-User Collaboration: It’s possible to work with editors, visual effects artists, colorists, and sound engineers who are also online at the same time.
  • Fairlight: It features tools to produce audio. You can use up to 2K tracks at a  time.
  • Media and Delivery Page: It offers a fullscreen workspace to prepare clips, sync audio, and organize media files into bins.
  • Resolve FX: You can add advanced effects such as blur, noise, light effects, beauty enhancement, image restoration, and more.
  • Color Collector: DaVinci’s 32-bit image processing enhances your photos, making them look their best.


  • It offers a free version with various editing options.
  • The paid version is also affordable, considering the features you get.
  • Clean and easy-to-use UI.


  • Steep learning curve.


It costs $295 for features like stereoscopic tools, Resolve FX filters, more Fairlight FX audio plugins, and advanced HDR grading.

11. Wondershare Filmora

Wondershare Filmora is an easy and simple video editing software that frequently updates with new features and advancements. 

Using the software is incredibly easy. You can create a new project for every video or start working on an existing project from the file menu.

Then you can import video, audio, or image by clicking on Import Media from the drop-down menu. You can either drag and drop your files in the library area, click on import media in the library, and select from the media browser.

Now add this video file from the library to your timeline to start editing. 

This can be done in two ways: drag and drop it to the timeline or right-click on the clip and choose the action from the insert, add to a new track, overwrite and append options.

This UI is straightforward, you don’t have to go back and forth, and mostly all options are on a single page. You can start adding titles, effects, animations, etc., by dropping them in the timeline. Then, select the option from the top of the window.

That’s it. Your first video in Wondershare Filmora is ready to be saved and exported. Click on the Export link on the topmost menu, choose the location, enter the video name, choose format, and click the Export button.

Filmora has the edge over other video editors, such as Adobe Creative Cloud, in its price point. Its rendering speed and performance are comparable to those of Creative Cloud products, but it lacks more advanced features, such as motion tracking and speed remapping. If you don’t require those features at all, though, it’s a good choice.

Key Features: 

  • Split Screen: It offers a split-screen template where you can add multiple videos in one to make it more fun. It has more than 30 split-screen templates.
  • Keyframing: Enlarge, narrow, or rotate your clips with its Keyframig feature and create many more visual animations.
  • Motion tracking: It automatically tracks the object movement and lets you pin the graphic or other elements to move in the same motion.
  • Screen Recorder: It allows you to record your screen with system and microphone audio.
  • Video effects: It offers over 900 video effects, including titles, filters, transitions, motion, and more.
  • Green Screen: You can change your video backgrounds or elements with the green screen.


  • Great selection of features
  • Easy-to-use interface
  • Fast rendering.
  • A free version is available.


  • So many features might be overwhelming for new users.
  • Users have reported that the software sometimes crashes.


It starts at $19.99 per month. 

Frequently Asked Questions about Video Editing Platforms 

What is a video editing platform?

A video editing platform is a software platform that allows you to edit your videos, photos, and other media files.

How do I choose the right video editing platform?

The first thing you should do when choosing a video editing platform is to find out whether it supports the features you need for your project. Then check if it supports multiple file types and if it has tools for basic editing.

How much does a professional video editing platform cost?

You can find affordable professional-grade video editing software for less than $100 per year. The more advanced platforms with additional features cost more, but they also offer more capabilities than basic ones like iMovie or Windows Movie Maker that come free with your operating system.

How do I edit a video?

Editing a video can be done on any video editing platform. The process of editing varies from platform to platform, but the basic steps are the same:

  1. Import your media (photos and videos) into the program
  2. Arrange your media into a sequence for your video
  3. Add transitions between scenes or clips
  4. Add titles and other text elements to enhance visual storytelling
  5. Save the project file

What features do video editing platforms have?

Video editing platforms provide many features to help users create their own videos. Some of these features include:     

  • Video creation and editing tools
  • Audio mixing capabilities
  • The ability to add titles, images, and animations

Over to You!

The choice of a video editing platform can be one of the most important decisions you make when creating your video. First, you must choose a platform that will allow you to create high-quality videos suitable to your requirements. And if you’re looking for a basic and free video editor, there are options for that too. 

If you’re a professional, use advanced video editing software tools like Adobe Premiere Pro, Pinnacle Studio 26 Ultimate, and Apple Final Cut Pro. They will take time to get used to, and you’d have to shell out a considerable budget, but it will be well worth it.

If you’re an amateur or a beginner, I recommend using Movavi Video Editor Wondershare Filmora or Clipchamp. They are easy to use and the best bang for the buck.

And if your purpose is just to create personal videos for your family and acquaintances on social media, then you can use a free video editing software like Apple iMovie


The post 11 Best Video Editing Apps first appeared on Webdesigner Depot.

Categories: Designing, Others Tags:

Adding Box Shadows to WordPress Blocks and Elements

December 7th, 2022 No comments

I stumbled across this tweet from Ana Segota looking for a way to add a CSS box-shadow to a button’s hover state in WordPress in the theme.json file.

She’s asking because theme.json is where WordPress wants us to start moving basic styles for block themes. Traditionally, we’d do any and all styling in style.css when working in a “classic” theme. But with the default Twenty Twenty-Three (TT3) theme that recently shipped with WordPress 6.1 moving all of its styles to theme.json, we’re getting closer and closer to being able to do the same with our own themes. I covered this in great detail in a recent article.

I say “closer and closer” because there are still plenty of CSS properties and selectors that are unsupported in theme.json. For example, if you’re hoping to style something with like perspective-origin in theme.json, it just won’t happen — at least as I’m writing this today.

Ana is looking at box-shadow and, luckily for her, that CSS property is supported by theme.json as of WordPress 6.1. Her tweet is dated Nov. 1, the same exact day that 6.1 released. It’s not like support for the property was a headline feature in the release. The bigger headlines were more related to spacing and layout techniques for blocks and block themes.

Here’s how we can apply a box-shadow to a specific block — say the Featured Image block — in theme.json:

  "version": 2,
  "settings": {},
  // etc.
  "styles": {
    "blocks" :{
      "core/post-featured-image": {
        "shadow": "10px 10px 5px 0px rgba(0, 0, 0, 0.66)"

Wondering if the new color syntax works? Me too! But when I tried — rgb(0 0 0 / 0.66) — I got nothing. Perhaps that’s already in the works or could use a pull request.

Easy, right? Sure, it’s way different than writing vanilla CSS in style.css and takes some getting used to. But it is indeed possible as of the most recent WordPress release.

And, hey, we can do the same thing to individual “elements”, like a button. A button is a block in and of itself, but it can also be a nested block within another block. So, to apply a box-shadow globally to all buttons, we’d do something like this in theme.json:

  "version": 2,
  "settings": {},
  // etc.
  "styles": {
    "elements": {
      "button": {
        "shadow": "10px 10px 5px 0px rgba(0,0,0,0.66)"

But Ana wants to add the shadow to the button’s :hover state. Thankfully, support for styling interactive states for certain elements, like buttons and links, using pseudo-classes — including :hover, :focus, :active, and :visited — also gained theme.json support in WordPress 6.1.

  "version": 2,
  "settings": {},
  // etc.
  "styles": {
    "elements": {
      "button": {
        ":hover": {
          "shadow": "10px 10px 5px 0px rgba(0,0,0,0.66)"

If you’re using a parent theme, you can certainly override a theme’s styles in a child theme. Here, I am completely overriding TT3’s button styles.

View full code
  "version": 2,
  "settings": {},
  // etc.
  "styles": {
    "elements": {
      "button": {
        "border": {
          "radius": "0"
        "color": {
          "background": "var(--wp--preset--color--tertiary)",
          "text": "var(--wp--preset--color--contrast)"
        "outline": {
          "offset": "3px",
          "width": "3px",
          "style": "dashed",
          "color": "red"
        "typography": {
          "fontSize": "var(--wp--preset--font-size--medium)"
        "shadow": "5px 5px 5px 0px rgba(9, 30, 66, 0.25), 5px 5px 5px 1px rgba(9, 30, 66, 0.08)",
        ":hover": {
          "color": {
            "background": "var(--wp--preset--color--contrast)",
            "text": "var(--wp--preset--color--base)"
          "outline": {
            "offset": "3px",
            "width": "3px",
            "style": "solid",
            "color": "blue"
        ":focus": {
          "color": {
            "background": "var(--wp--preset--color--contrast)",
            "text": "var(--wp--preset--color--base)"
        ":active": {
          "color": {
            "background": "var(--wp--preset--color--secondary)",
            "text": "var(--wp--preset--color--base)"

Here’s how that renders:

The button’s natural state (left) and it’s hovered state (right)

Another way to do it: custom styles

The recently released Pixl block theme provides another example of real-world usage of the box-shadow property in theme.json using an alternative method that defines custom values. In the theme, a custom box-shadow property is defined as .settings.custom.shadow:

  "version": 2,
  "settings": {
    // etc. 
    "custom": {
      // etc.
      "shadow": "5px 5px 0px -2px var(--wp--preset--color--background), 5px 5px var(--wp--preset--color--foreground)"
    // etc.

Then, later in the file, the custom shadow property is called on a button element:

  "version": 2,
  "settings": {
    // etc.
  "styles": {
    "elements": {
      "button": {
        // etc.
        "shadow": "var(--wp--custom--shadow) !important",
        // etc.
        ":active": {
          // etc.
          "shadow": "2px 2px var(--wp--preset--color--primary) !important"
    // etc.

I’m not totally sure about the use of !important in this context. My hunch is that it’s an attempt to prevent overriding those styles using the Global Styles UI in the Site Editor, which has high specificity than styles defined in theme.json. Here’s an anchored link to more information from my previous article on managing block theme styles.

Update: Turns out there was a whole discussion about this in Pull Request #34689, which notes that it was addressed in WordPress 5.9.

And there’s more…

In addition to shadows, the CSS outline property also gained theme.json support in WordPress 6.1 and can be applied to buttons and their interactive states. This GitHub PR shows a good example.

"elements": {
  "button": {
    "outline": {
      "offset": "3px",
      "width": "3px",
      "style": "dashed",
      "color": "red"
    ":hover": {
      "outline": {
        "offset": "3px",
        "width": "3px",
        "style": "solid",
        "color": "blue"

You can also find the real examples of how the outline property works in other themes, including Loudness, Block Canvas, and Blockbase.

Wrapping up

Who knew there was so much to talk about with a single CSS property when it comes to block theming in WordPress 6.1? We saw the officially supported methods for setting a box-shadow on blocks and individual elements, including the interactive states of a button element. We also checked out how we could override shadows in a child theme. And, finally, we cracked open a real-world example that defines and sets shadows in a custom property.

You can find more detailed in-depth discussions about the WordPress and it’s box-shadow implementation in this GitHub PR. There is also a GitHub proposal for adding UI directly in WordPress to set shadow values on blocks — you can jump directly to an animated GIF showing how that would work.

Speaking of which, Justin Tadlock recently developed a block that renders a progress bar and integrated box shadow controls into it. He shows it off in this video:

More information

If you’d like to dig deeper into the box-shadow and other CSS properties that are supported by the theme.json file in a block theme, here are a couple of resources you can use:

Adding Box Shadows to WordPress Blocks and Elements originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

CSS is OK, I guess.

December 6th, 2022 No comments

Nothing but ear-to-ear smiles as I was watching this video from @quayjn on YouTube. (No actual name in the byline, though I think it’s Brian Katz if my paper trail is correct).

The best is this Pen you can use to sing along…

CodePen Embed Fallback

The little song Una did for memorizing for JavaScript’s map(), filter(), and reduce()methods at the end of this article comes to mind for sure.

To Shared LinkPermalink on CSS-Tricks

CSS is OK, I guess. originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

Exciting New Tools for Designers, December 2022

December 5th, 2022 No comments

Designing a website or app can be a daunting task. But with the right design tools, it can be a lot easier. In this article, we’ll introduce you to some of the best tools, apps, and resources available right now. From client management to AI-powered design tools, there’s tons here to round out the year in style. Enjoy!


WelcomeSpaces is a collaborative tool for professional designers. Communicate with clients, share files, discuss revisions, and stay on track with an activity feed. Client collaboration has never been so simple. is an excellent plugin for Figma to help you quickly and easily create beautiful designs from existing websites. With just a few clicks, you can import the HTML code for any website and start designing your own version of it.


Squeaky is a privacy-friendly analytics suite that lets you capture up to 60% more data than legacy tools. With Squeaky, you can get insights into your customers’ behavior without compromising their privacy. Use Squeaky to make better decisions for your business.

AI Canvas

AI Canvas is an online collaborative platform that allows users to create and share AI artwork with other community members. Start your artwork with text prompts and watch it grow.


Magician is an AI-powered plugin for Figma that can create icons, images, and web copy from text prompts. It’s the perfect tool for designers who want to quickly and easily create beautiful designs.


Doughnut is a supportive design and freelancing community designed to help you succeed as a freelance designer. From finding new clients to managing your time, Doughnut has everything you need to make the most of your freelance career.


Deckset is a simple way to produce great-looking presentations. Just write your thoughts in your favorite text editor and watch Deckset transform them into beautiful, persuasive presentations.


With Vectormaker, you can easily convert pixel-based images into colorful vector graphics. Vectormaker uses the Potrace algorithm to trace the edges of your image. You can then choose the colors for your vector path based on the colors in the original.


Wrap is a browser extension for capturing and editing product screenshots with ease. With a selection of carefully selected styles to choose from, you can create pixel-perfect designs in seconds—even if you’re not a designer.

Illustration Builder

The Illustration Builder digital designer toolkit is a Figma plugin for creating beautiful illustrations for your business website. You can create any illustration with a wide range of objects, backgrounds, characters, abstractions, and more.


With OptiMonk, you can create beautiful pop-ups for Shopify, WordPress, MailChimp, and more that will help you increase your marketing reach, increase customer engagement and boost your conversions.


Jot is a marketing tool that uses OpenAI’s GPT-3 to generate human-like ad copy based on a single product description. With Jot, you can create engaging adverts quickly and easily.

Free Mockup Generator

Pixelied’s free mockup generator allows you to create stunning designs with editable mockups in minutes. With a wide range of customizable templates to choose from, you can design the perfect mockup for your project.


Womp is a new way to create 3D images. Intuitive and easy to use. With Womp, you can create beautiful 3D designs. Everything you create in Womp is exportable for 3D printing, social media, or directly into a game. It’s a great way to produce 3D icons and illustrations for your website.


Tinkerwell is a must-have companion to your favorite IDE. Quickly iterate on PHP code within the context of your web application. There’s no need to waste time opening browsers, creating test URLs, and uploading apps to servers. Use Tinkerwell locally, via SSH, Docker, and even on Laravel Vapor.


Magical is a tool that helps you speed up the meeting scheduling process. With Magical, you can easily find time slots that work for everyone and create personalized links to those slots. With Magical’s Dynamic Availability feature, you and your attendees can always find the best meeting time.

Explain Code

Explain Code is a great way to understand complicated code. You can see how the code works line by line and learn about programming concepts. Gain in-depth knowledge of how and why code is constructed and fast-track your learning process.

Shuffle Alternatives

Shuffle Alternatives allows you to create multiple site styles with a simple drag-and-drop builder. Create your core design and then choose from different design styles for a site that best fits your brand approach.

Idea Clarity

Get help honing your ideas, perfecting your pitch, and targeting the most profitable directions. Idea Clarity is an app that gives you direct access to experts in your chosen field who will help you revise your rough idea into a concrete plan.


Graphicsly is an all-in-one graphics assets plugin for WordPress that lets you import directly into your installation. There are 1000+ 3D assets, 3000+ illustrations, and 9000+ icons ready to use today.


The post Exciting New Tools for Designers, December 2022 first appeared on Webdesigner Depot.

Categories: Designing, Others Tags:

CSS Infinite and Circular Rotating Image Slider

December 2nd, 2022 No comments

Image sliders (also called carousels) are everywhere. There are a lot of CSS tricks to create the common slider where the images slide from left to right (or the opposite). It’s the same deal with the many JavaScript libraries out there that create fancy sliders with complex animations. We are not going to do any of that in this post.

Through a little series of articles, we are going to explore some fancy and uncommon CSS-only sliders. If you are of tired seeing the same ol’ classic sliders, then you are in the right place!

CSS Sliders series

For this first article, we will start with something I call the “circular rotating image slider”:

CodePen Embed Fallback

Cool right? let’s dissect the code!

The HTML markup

If you followed my series of fancy image decorations or CSS grid and custom shapes, then you know that my first rule is to work with the smallest HTML possible. I always try hard to find CSS solutions before cluttering my code with a lot

s and other stuff.

The same rule applies here — our code is nothing but a list of images in a container.

Let’s say we’re working with four images:

<div class="gallery">
  <img src="" alt="">
  <img src="" alt="">
  <img src="" alt="">
  <img src="" alt="">

That’s it! Now let’s move to the interesting part of the code. But first, we’re going to dive into this to understand the logic of how our slider works.

How does it work?

Here is a video where I remove overflow: hidden from the CSS so we can better understand how the images are moving:

It’s like our four images are placed on a large circle that rotates counter-clockwise.

All the images have the same size (denoted by S in the figure). Note the blue circle which is the circle that intersects with the center of all the images and has a radius (R). We will need this value later for our animation. R is equal to 0.707 * S. (I’m going to skip the geometry that gives us that equation.)

Let’s write some CSS!

We will be using CSS Grid to place all the images in the same area above each other:

.gallery  {
  --s: 280px; /* control the size */

  display: grid;
  width: var(--s);
  aspect-ratio: 1;
  padding: calc(var(--s) / 20); /* we will see the utility of this later */
  border-radius: 50%;
.gallery > img {
  grid-area: 1 / 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;

Nothing too complex so far. The tricky part is the animation.

We talked about rotating a big circle, but in reality, we will rotate each image individually creating the illusion of a big rotating circle. So, let’s define an animation, m, and apply it to the image elements:

.gallery > img {
  /* same as before */
  animation: m 8s infinite linear;
  transform-origin: 50% 120.7%;

@keyframes m {
  100% { transform: rotate(-360deg); }

The main trick relies on that highlighted line. By default, the CSS transform-origin property is equal to center (or 50% 50%) which makes the image rotate around its center, but we don’t need it to do that. We need the image to rotate around the center of the big circle that contains our images hence the new value for transform-origin.

Since R is equal to 0.707 * S, we can say that R is equal to 70.7% of the image size. Here’s a figure to illustrate how we got the 120.7% value:

Let’s run the animation and see what happens:

CodePen Embed Fallback

I know, I know. The result is far from what we want, but in reality we are very close. It may looks like there’s just one image there, but don’t forget that we have stacked all the images on top of each other. All of them are rotating at the same time and only the top image is visible. What we need is to delay the animation of each image to avoid this overlap.

.gallery > img:nth-child(2) { animation-delay: -2s; } /* -1 * 8s / 4 */
.gallery > img:nth-child(3) { animation-delay: -4s; } /* -2 * 8s / 4 */
.gallery > img:nth-child(4) { animation-delay: -6s; } /* -3 * 8s / 4 */

Things are already getting better!

CodePen Embed Fallback

If we hide the overflow on the container we can already see a slider, but we will update the animation a little so that each image remains visible for a short period before it moves along.

We’re going to update our animation keyframes to do just that:

@keyframes m {
  0%, 3% { transform: rotate(0); }
  22%, 27% { transform: rotate(-90deg); }
  47%, 52% { transform: rotate(-180deg); }
  72%, 77% { transform: rotate(-270deg); }
  98%, 100% { transform: rotate(-360deg); }

For each 90deg (360deg/4, where 4 is the number of images) we will add a small pause. Each image will remain visible for 5% of the overall duration before we slide to the next one (27%-22%, 52%-47%, etc.). I’m going to update the animation-timing-function using a cubic-bezier() function to make the animation a bit fancier:

CodePen Embed Fallback

Now our slider is perfect! Well, almost perfect because we are still missing the final touch: the colorful circular border that rotates around our images. We can use a pseudo-element on the .gallery wrapper to make it:

.gallery {
  padding: calc(var(--s) / 20); /* the padding is needed here */
  position: relative;
.gallery::after {
  content: "";
  position: absolute;
  inset: 0;
  padding: inherit; /* Inherits the same padding */
  border-radius: 50%;
  background: repeating-conic-gradient(#789048 0 30deg, #DFBA69 0 60deg);
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  mask-composite: exclude;
.gallery >img {
  animation: m 8s infinite cubic-bezier(.5, -0.2, .5, 1.2);

I have created a circle with a repeating conic gradient for the background while using a masking trick that only shows the padded area. Then I apply to it the same animation we defined for the images.

We are done! We have a cool circular slider:

CodePen Embed Fallback

Let’s add more images

Working with four images is good, but it would be better if we can scale it to any number of images. After all, this is the purpose of an image slider. We should be able to consider N images.

For this, we are going to make the code more generic by introducing Sass. First, we define a variable for the number of images ($n) and we will update every part where we hard-coded the number of images (4).

Let’s start with the delays:

.gallery > img:nth-child(2) { animation-delay: -2s; } /* -1 * 8s / 4 */
.gallery > img:nth-child(3) { animation-delay: -4s; } /* -2 * 8s / 4 */
.gallery > img:nth-child(4) { animation-delay: -6s; } /* -3 * 8s / 4 */

The formula for the delay is (1 - $i)*duration/$n, which gives us the following Sass loop:

@for $i from 2 to ($n + 1) {
  .gallery > img:nth-child(#{$i}) {
    animation-delay: calc(#{(1 - $i) / $n} * 8s);

We can make the duration a variable as well if we really want to. But let’s move on to the animation:

@keyframes m {
  0%, 3% { transform: rotate(0); }
  22%, 27% { transform: rotate(-90deg); }
  47%, 52% { transform: rotate(-180deg); }
  72%, 77% { transform: rotate(-270deg); }
  98%, 100% {transform: rotate(-360deg); }

Let’s simplify it to get a better view of the pattern:

@keyframes m {
  0% { transform: rotate(0); }
  25% { transform: rotate(-90deg); }
  50% { transform: rotate(-180deg); }
  75% { transform: rotate(-270deg); }
  100% { transform: rotate(-360deg); }

The step between each state is equal to 25% — which is 100%/4 — and we add a -90deg angle — which is -360deg/4. That means we can write our loop like this instead:

@keyframes m {
  0% { transform: rotate(0); }
  @for $i from 1 to $n {
    #{($i / $n) * 100}% { transform: rotate(#{($i / $n) * -360}deg); }  
  100% { transform: rotate(-360deg); }

Since each image takes 5% of the animation, we change this:

#{($i / $n) * 100}%

…with this:

#{($i / $n) * 100 - 2}%, #{($i / $n) * 100 + 3}%

It should be noted that 5% is an arbitrary value I choose for this example. We can also make it a variable to control how much time each image should stay visible. I am going to skip that for the sake of simplicity, but for homework, you can try to do it and share your implementation in the comments!

@keyframes m {
  0%,3% { transform: rotate(0); }
  @for $i from 1 to $n {
    #{($i / $n) * 100 - 2}%, #{($i / $n) * 100 + 3}% { transform: rotate(#{($i / $n) * -360}deg); }  
  98%,100% { transform: rotate(-360deg); }

The last bit is to update transform-origin. We will need some geometry tricks. Whatever the number of images, the configuration is always the same. We have our images (small circles) placed inside a big circle and we need to find the value of the radius, R.

You probably don’t want a boring geometry explanation so here’s how we find R:

R = S / (2 * sin(180deg / N))

If we express that as a percentage, that gives us:

R = 100% / (2 * sin(180deg / N)) = 50% / sin(180deg / N)

…which means the transform-origin value is equal to:

transform-origin: 50% (50% / math.sin(180deg / $n) + 50%);

We’re done! We have a slider that works with any number images!

CodePen Embed Fallback

Let’s toss nine images in there:

CodePen Embed Fallback

Add as many images as you want and update the $n variable with the total number of images.

Wrapping up

With a few tricks using CSS transforms and standard geometry, we created a nice circular slider that doesn’t require a lot of code. What is cool about this slider is that we don’t need to bother duplicating the images to keep the infinite animation since we have a circle. After a full rotation, we will get back to the first image!

CSS Infinite and Circular Rotating Image Slider originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

Digging Deeper Into Container Style Queries

December 1st, 2022 No comments

I wrote up some early thoughts on container style queries a little while back. It’s still early days. They’re already defined in the CSS Containment Module Level 1 specification (currently in Editor’s Draft status) but there’s still a couple of outstanding discussions taking place.

The basic idea is that we can define a container and then apply styles conditionally to its descendants based on its computed styling.

@container <name>? <conditions> {
  /* conditional styles */

The best example I’ve seen so far is removing italics from something like , , and when they are used in a context where content is already italicized:

em, i, q {
  font-style: italic; /* default UA behavior */

/* When the container's font-style is italic, remove italics from these elements. */
@container style(font-style: italic) {
  em, i, q {
    font-style: normal;

That’s the general idea. But if you didn’t know it, Miriam Suzanne, who is an editor of the spec, keeps an ongoing and thorough set of personal notes on container style queries that is publicly available. It was updated the other day and I spent some time in there trying to wrap my head around more nuanced aspects of style queries. It’s unofficial stuff, but I thought I’d jot down some things that stood out to me. Who knows? Maybe it’s stuff we can eventually look forward to!

Every element is a style container

We don’t even need to explictly assign a container-name or container-type to define a style container because everything is a style container by default.

So, you see that example above that removes italics? Notice it doesn’t identify a container. It jumps right to the query using the style() function. So, what container is being queried? It’s going to be the direct parent of the elements receiving the applied styles. And if not that, then it’s the next nearest relative container that takes precedence.

I like that. It’s very CSS-y for the query to search up for a match, then continue to bubble up until it finds a matching condition.

It was hard for my little brain to understand why we can get away with an implicit container based on styles but not so much when we’re dealing with dimensional queries, like size and inline-size. Miriam explains it nicely:

Dimensional queries require css containment on the size, layout, and style of the container in order to prevent layout loops. Containment is an invasive thing to apply broadly, so it was important that authors have careful control over what elements are (or are not) size containers.

Style-based queries don’t have the same limitation. There is already no way in CSS for descendant styles to have an impact on the computed styles of an ancestor. So no containment is required, and there are no invasive or unexpected side-effects in establishing an element as a style query container.

(Emphasis mine)

It all comes down to consequences — of which there are none as far as everything being a style query container right out of the box.

  • If a container is found: conditions are resolved against that container.
  • If multiple containers match: the nearest relative container takes precedence.
  • If no matches are found: unknown returned.

That’s the same “forgiving” spirit as the rest of CSS.

A container can support both dimensional and style queries

Let’s say we want define a style query without an explicit container-name:

@container style(font-style: italic) {
  em {
    font-style: normal;

This works because all elements are style containers, no matter the container-type. That’s what allows us to implicitly query styles and rely on the nearest match. And this is totally fine since, again, there are no adverse side effects when establishing style containers.

We have to use an explicit container-type for dimensional queries, but not so much for style queries since every element is a style query. That also means this container is both a style and dimensional query:

.card-container {
  container: card / inline-size; /* implictly a style query container as well */

Excluding a container from being queried

Perhaps we don’t want a container to participate in the matching process. That’s where it might be possible to set container-type: none on an element.

.some-element {
  container-type: none;

Explicit style query containers offer more control of what gets queried

If, say, we were to write a style query for padding , there is no reliable way to determine the best matching container, regardless of whether we’re working with an explicitly named container or the nearest direct parent. That’s because padding is not an inherited property.

So, in those instances, we ought to use container-name to explictly inform the browser which containers they can pull from. We can even give a container multiple explicit names to make it match more conditions:

.card {
  container-name: card layout theme;

Oh, and container-name accepts any number of optional and reusable names for a container! That’s even more flexibility when it comes to helping the browser make a choice when searching for matches.

.theme {
  container-name: theme;
.grid {
  container-name: layout;
.card {
  container-name: card layout theme;

I sort of wonder if that might also be considered a “fallback” in the event that one container is passed over.

Style queries can be combined

The or and and operators allow us to combine wueries to keep things DRY:

@container bubble style(--arrow-position: start start) or style(--arrow-position: end start) {
  .bubble::after {
    border-block-end-color: inherit;
    inset-block-end: 100%;

/* is the same as... */
@container bubble style(--arrow-position: start start) {
  /* etc. */
@container bubble style(--arrow-position: end start) {
  /* etc. */

Toggling styles

There’s a little overlap between container style queries and Tab Atkins’ unofficial proposal for CSS Toggles. For example, we can cycle through two font-style values, say italic and normal:

em, i, q {
  font-style: italic;

@container style(font-style: italic) {
  em, i, q {
    font-style: normal;

Cool. But the proposal for CSS Toggles suggests that the toggle() function would be a simpler approach:

em, i, q {
  font-style: toggle(italic, normal);

But anything beyond this sort of binary use case is where toggle() is less suitable. Style queries, though, are good to go. Miriam identifies three instances where style queries are more suitable than a toggle():

/* When font-style is italic, apply background color. */
/* Toggles can only handle one property at a time. */
@container style(font-style: italic) {
  em, i, q {
    background: lightpink;

/* When font-style is italic and --color-mode equals light */
/* Toggles can only evaluate one condition at a time */
@container style((font-style: italic) and (--color-mode: light)) {
  em, i, q {
    background: lightpink;

/* Apply the same query condition to multiple properties */
/* Toggles have to set each one individually as separate toggles */
@container style(font-style: italic) {
  em, i, q {
    /* clipped gradient text */
    background: var(--feature-gradient);
    background-clip: text;
    box-decoration-break: clone;
    color: transparent;
    text-shadow: none;

Style queries solve the “Custom Property Toggle Hack”

Notice that style queries are a formal solution for the “CSS custom property toggle trick”. In there, we set an empty custom property (--foo: ;) and use the comma-separated fallback method to “toggle” properties on and off when then custom property is set to a real value.

button {
  --is-raised: ; /* off by default */
  border: 1px solid var(--is-raised, rgb(0 0 0 / 0.1));
  box-shadow: var(
    0 1px hsl(0 0% 100% / 0.8) inset,
    0 0.1em 0.1em -0.1em rgb(0 0 0 / 0.2)
  text-shadow: var(--is-raised, 0 -1px 1px rgb(0 0 0 / 0.3));

button:active {
  box-shadow: var(--is-raised, 0 1px 0.2em black inset);

#foo {
  --is-raised: initial; /* turned on, all fallbacks take effect. */

That’s super cool, also a lot of work that style container queries makes trivial.

Style queries and CSS generated content

For generated content produced by the content property of ::before and ::after pseudo-elements, the matching container is the element on which the content is generated.

.bubble {
  --arrow-position: end end;
  container: bubble;
  border: medium solid green;
  position: relative;

.bubble::after {
  content: "";
  border: 1em solid transparent;
  position: absolute;

@container bubble style(--arrow-position: end end) {
  .bubble::after {
    border-block-start-color: inherit;
    inset-block-start: 100%;
    inset-inline-end: 1em;

Style queries and web components

We can define a web component as a container and query it by style. First, we have the of the component:

<template id="media-host">
    <div part="img">
      <slot name="img">…</slot>
    <div part="content">
      <slot name="title">…</slot>
      <slot name="content">…</slot>

Then we use the :host pseudo-element as a container to set a container-name, a container-type, and some high-level attributes on it:

:host {
  container: media-host / inline-size;
  --media-location: before;
  --media-style: square;
  --theme: light;

Elements inside the can query the parameters of the element:

@container media-host style(--media-style: round) {
  [part='img'] {
    border-radius: 100%;

What’s next?

Again, all the stuff I’ve jotted down here is based on Miriam’s notes, and those notes are not a substitute for the official spec. But they are an indication of what’s being discussed and where things could land in the future. I appreciate Miriam linked up a handful of outstanding discussions still taking place that we can follow to stay on top of things:

Digging Deeper Into Container Style Queries originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

10 Key Principles of User-Centered Design

November 30th, 2022 No comments

Many firms’ design and development decisions are increasingly oriented toward human-centered innovation. Instead of rushing goods to market, these firms are using a user-centered design approach.

Design and development teams build high-performing digital products or websites that uniquely meet customers’ demands by concentrating on the user experience. After all, a good web design is helpful in boosting the business reputation or user experience.

This post will define user-centered design, discuss its fundamental principles, and describe the user-centered design process.

What Is User-Centered Design?

To create an enjoyable solution to a problem, user-centered design is a collection of iterative design processes concentrating on the user’s needs at each step. In UCD, the expectations, objectives, and preferences of the user significantly impact design decisions.

Additionally, users are actively involved in the entire process from start to finish. User-centered design principles encourage designers to create products with users rather than just for them. This strategy typically includes user research, interviews, usability testing, and a massive amount of feedback gathering.

UCD Requires Four Fundamental Components:

  • Visibility: Can people see what your website is about and how to utilize it the moment they land on your page?
  • Availability: Is your website user-friendly? Can they swiftly locate information? They should be able to find call-to-action buttons, menus, filters, and search choices with ease.
  • Legibility: Is the text simple to read for users?
  • Language: Is the language simple to grasp for users? Do you avoid using industry jargon in your UX authoring, which might lead to confusion and hesitation?

What Is The Significance Of UCD?

User experience is important in product design, especially in digital products such as app design, web and interface design, and marketing. Customers want their lives to be simplified. A website, app, or product exists to fulfill a consumer. Hence its success is determined by their interaction with it.

The following are some of the advantages of a user-centered design strategy for a business:

  • Customers keep coming back for more
  • There would be an increase in sales
  • Creating polished, efficient, and widely available goods
  • Understanding challenges thoroughly to provide suitable solutions
  • Customers and teams working together
  • Avoiding typical blunders
  • Enhancing Competitiveness
  • Assisting them in comprehending their market

It offers consumers the following advantages:

  • Making their life easier
  • Fulfilling their desires
  • Companies making them feel heard and understood
  • Making them feel important in the creation of things they use
  • Providing answers to challenges they were unaware they had or could not imagine solutions to

Let’s dig in to learn more about the advantages of UCD.

Businesses can benefit from using the user-centered design approach in various ways. As you incorporate this into your web development, you can enjoy the following four main advantages.

1. Prevent Project Failure

Your company might find it simpler to incorporate improvements and ensure your product is in line with actual user needs if you have a continuous feedback process assessing how customers react to your product, like a website.

Customers feel like their needs are better represented in the finished product, which can increase engagement and strengthen the bond with the company.

2. Improve ROI

This method produces products that more accurately reflect user expectations. The procedure also lessens mistakes made by website users, for instance. When combined, these factors motivate users to convert from leads to paying clients, boosting return on investment.

3. Increase Development Efficiency

In user-centered design, the objectives of the various team members are aligned. This can help clarify the best course of action for all parties involved. A more targeted, goal-oriented development process may be encouraged by the regular evaluation process.

Additionally, businesses can engage stakeholders and explain how their efforts and methodologies will improve customer interactions by using an iterative life cycle during product development.

4. Up The Level Of Competition

Customers will more fully appreciate what you offer, improve their engagement with your product or website, and be more likely to purchase from you if your product is created with their needs and expectations in mind.

As a result, this may increase your ability to compete in your sector.

5. KPIs Are Included

Given your user needs and business objectives, how do you move from the first to the second? You can measure key performance indicators with this in mind once you know what user needs are essential for the overall goals.

For instance, productivity may be the focus of office software, shopper activity may be the focus of sales tools, and retention rates may be the focus of other apps. All of these are necessary steps toward achieving business values like profit and revenue.

Human-Centered Design Versus User-Centered Design

There is a significant difference between humans and users. Simply put, all users are humans; however, not all humans will use your product. Therefore, you must thoroughly understand your target market to produce a successful user-centered design.

Detailed research should be done on the problems and goals of your users. Then, talk to them and give them several chances to offer feedback. By doing this, you’ll create a user persona that is complete and that you can use to determine the priorities for your design.

It’s critical to understand that different user groups may have additional requirements, levels of technical expertise, and expectations for using products like the one you’ve made.

What crucial guidelines or principles should designers consider when adopting a user-centric design?

The Process Of User-Centered Design

Certain fundamental principles underpin user-centered design. While the development process is always iterative, no explicit methods for implementation are specified. The approach can be implemented in either a waterfall or an agile environment.

1. Contextualization

The first step is to analyze the environment in which users will use the product. What are the intended applications of the product for future users? Teams working on projects can get answers by watching and talking to potential users.

2. Outlining The Prerequisites

Specifying the requirements for the new product is the second step. In this step, user requirements are described while considering corporate needs.

3. Design

Once the requirements are established, the actual design process can begin. Designers typically start by producing a straightforward prototype, like one made of paper, then move on to digital wireframes and a finished prototype.

4. Analysis

The project team solicits feedback from potential users after creating a prototype. This is typically done for digital applications through in-depth user testing and qualitative research.

Do surveys and tests evaluate user satisfaction, effectiveness, and efficiency? With the new information, the project team goes back to step 2 or step 3 of the design process to improve the product. Once the user feedback is satisfied, these iterations continue while taking into account corporate frameworks (time and costs).

Top 10 User-Centered Design Principles

Principles of user-centered design attempt to guarantee that usability is the primary priority throughout the development process. These principles, if successfully followed, will ensure that user experience is fulfilled not just during the initial introduction of a product but also during its use.

Furthermore, each of the following principles may be tailored to match the specific requirements and interaction demands of any product.

1. Use Simple Language

Professional Web Designer strives to provide the most readable discourse for the user while creating a product. This involves clarifying vocabulary, eliminating jargon, and simply providing information pertinent to the work.

Presenting users with irrelevant information throughout their use of the product taints its usefulness. Furthermore, basic language helps the user finish the work without being overwhelmed or confused.

2. Feedback

Users expect a reaction to all of their actions. This might involve modifying the look of the screen after completing an activity. If the job is finished after some time, it should display a loading page to notify the user that the task is in process.

Keeping the user informed throughout the process reassures them and keeps them on track with their job.

3. Maintaining Consistency

Keeping the product consistent is essential in ensuring an ideal user experience. Consistency affects how customers approach a product, and the time it takes to learn how to use it.

From the start of the project until its completion, the consistent philosophy underpinning the UCD process should be maintained. If the interface design needs to be updated, it is critical to maintaining consistency across new features to stay beneficial to the user.

4. Give The Complete User Control

Consumers are already aware of their requirements. They should be able to use a product with minimal effort and depend on the product’s help to accomplish the rest.

By removing the effort from the job, the user can do it quickly while keeping control of their activities.

5. Describe The Situation

Before developing a product, the designer must first investigate the ideal user and their wants. The designers can gain a comprehensive sense of some of the issues these people experience by studying their lifestyles.

Many of these observations are conducted through interviews. These interviews provide the designer with information on the exact goals that users want to attain and how they want to achieve them.

6. Examine the Design

Designers undertake usability testing with actual users of their product at this stage in the UCD process. This stage provides designers with insight into how consumers will interact with the product and how to modify it to suit them better.

It is advised that this stage be completed as quickly as feasible. The sooner customers provide input, the faster designers can comprehend their product from the user’s perspective.

7. Create Designs That Are Specific To The Needs Of The User

The design team must examine the distinctive features of their intended demographic as well as frequent real-world activities while beginning the design process. Furthermore, the product should be appropriate for the environment in which it will be utilized the most.

Making a product that needs a lot of work from the user reduces its usability and usefulness, ultimately defeating the objective of UCD.

8. The Design Process Is Iterative

Because user-centered design is based on putting the user first, the product team should constantly be working to improve the user experience. By introducing changes gradually, you will gain a better understanding of your target audience.

9. Adequate Navigational Tools

An essential component of the user experience is the capability to navigate between pages of your website and return to the previous one. Make sure users know where they are on your website and how to leave any pages they don’t want to see.

Customers can better understand how to navigate your page by giving them features like a navigation map, for instance. Make it simple for customers to change their order without leaving the current page if they buy clothing and discover they need a different size once they reach the checkout page.

10. Unflawed System

Customers should find it easy to navigate between your website’s pages and accomplish their goals. If they make a mistake, be there to help them fix it so they can achieve their goal.

The form may ask for specific, essential fields, such as the square footage, and may also include a gentle reminder or an alert that appears if the user accidentally leaves a required field blank.

Customers may feel more comfortable responding to your prompts and participating in a conversation if you ask questions one at a time and offer automated responses for each response.

Wrapping Up

User-centered design is more than just making a good product. It goes further than that. You demonstrate your motivations and intentions by putting your users in the spotlight. You’re demonstrating that it’s not all about meeting deadlines or turning a profit. Instead, you’re telling your users that you understand what they want and prioritize their needs.

It should come as no surprise that the most effective teams are user-centric. Knowing your customer is essential for success in any industry, including design. Create products that put the user first, and you will create products that people will love.

You can build a more robust, user-friendly website that is better equipped to respond to user needs and expectations by incorporating the User Centered Design process into your product design. However, it’s crucial to collaborate with a specialist who can apply these techniques and produce the result you’ve envisioned.


Featured image by pch.vector on Freepik


The post 10 Key Principles of User-Centered Design first appeared on Webdesigner Depot.

Categories: Designing, Others Tags:

Using The New Constrained Layout In WordPress Block Themes

November 30th, 2022 No comments

One of the main goals of the WordPress Site Editor (and, yes, that is now the “official” name) is to move basic block styling from CSS to structured JSON. JSON files are machine-readable, which makes it consumable by the JavaScript-based Site Editor for configuring a theme’s global styles directly in WordPress.

It’s not all the way there yet! If we look at the Twenty Twenty-Two (TT2) default theme, there were two main unresolved issues: styling interactions (like :hover, :active, :focus), and the margins and padding of layout containers. You can see how those were temporarily fixed in the TT2 style.css file rather than making it into the theme.json file.

WordPress 6.1 fixed those issues and what I want to do is look specifically at the latter. Now that we have JSON-ified styles for the margins and padding of layout containers, that opens us up to more flexible and robust ways to define spacing in our theme layouts.

What kind of spacing are we talking about?

First off, we already have root-level padding which is a fancy way of describing padding on the element. That’s nice because it ensures consistent spacing on an element that is shared on all pages and posts.

But there’s more to it because now we have a way for blocks to bypass that padding and align themselves full-width. That’s thanks to padding-aware alignments which is a new opt-in feature in theme.json. So, even if you have root-level padding, you can still allow, say, an image (or some other block) to break out and go full-width.

That gets us to another thing we get: constrained layouts. The idea here is that any blocks nested in the layout respect the layout’s content width — which is a global setting — and do not flow outside of it. We can override that behavior on a block-by-block basis with alignments, but we’ll get to that.

Let’s start with…

Root-level padding

Again, this isn’t new. We’ve had the ability to set padding on the element in theme.json since the experimental Gutenberg plugin introduced it in version 11.7. We set it on the styles.spacing object, where we have margin and padding objects to define the top, right, bottom, and left spacing on the body:

  "version": 2,
  "styles": {
    "spacing": {
      "margin": {
        "top": "60px",
        "right": "30px",
        "bottom": "60px",
        "left": "30px"
      "padding": {
        "top": "30px",
        "right": "30px",
        "bottom": "30px",
        "left": "30px"

This is a global setting. So, if we were to crack open DevTools and inspect the element, we would see these CSS styles:

body {
  margin-top: 60px;
  margin-right: 30px;
  margin-bottom: 60px;
  margin-left: 30px;
  padding-top: 30px;
  padding-right: 30px;
  padding-bottom: 30px;
  padding-left: 30px;

Cool. But herein lies the issue of how in the world we can allow some blocks to break out of that spacing to fill the full screen, edge-to-edge. That’s why the spacing is there, right? It helps prevent that from happening!

But there are indeed plenty of cases where you might want to break out of that spacing on a one-off instance when working in the Block Editor. Say we plop an Image block on a page and we want it to go full-width while the rest of the content respects the root-level padding?


Padding-aware alignments

While attempting to create the first default WordPress theme that defines all styles in the theme.json file, lead designer Kjell Reigstad illustrates the challenging aspects of breaking out of root-level padding in this GitHub issue.

Root-level padding prevents blocks from taking up the full viewport width (left). But with padding-aware alignments, some blocks can “opt-out” of that spacing and take up the full viewport width (right). (Image credit: Kjell Reigstad)

New features in WordPress 6.1 were created to address this issue. Let’s dig into those next.


A new useRootPaddingAwareAlignments property was created to address the problem. It was actually first introduced in the Gutenberg plugin v13.8. The original pull request is a nice primer on how it works.

  "version": 2,
  "settings": {
    "appearanceTools": true,
    "useRootPaddingAwareAlignments": true,
    // etc.

Right off the bat, notice that this is a feature we have to opt into. The property is set to false by default and we have to explicitly set it to true in order to enable it. Also notice that we have appearanceTools set to true as well. That opts us into UI controls in the Site Editor for styling borders, link colors, typography, and, yes, spacing which includes margin and padding.

Setting appearanceTools set to true automatically opts blocks into margin and padding without having to set either settings.spacing.padding or setting.spacing.margin to true.

When we do enable useRootPaddingAwareAlignments, we are provided with custom properties with root padding values that are set on the element on the front end. Interestingly, it also applies the padding to the .editor-styles-wrapper class so the spacing is displayed when working in the back-end Block Editor. Pretty cool!

I was able to confirm those CSS custom properties in DevTools while digging around.

Enabling useRootPaddingAwareAlignments also applies left and right padding to any block that supports the “content” width and “wide” width values in the Global Styles image above. We can also define those values in theme.json:

  "version": 2,
  "settings": {
    "layout": {
      "contentSize": "640px",
      "wideSize": "1000px"

If the Global Styles settings are different than what is defined in theme.json, then the Global Styles take precedence. You can learn all about managing block theme styles in my last article.

  • contentSize is the default width for blocks.
  • wideSize provides a “wide” layout option and establishes a wider column for blocks to stretch out.

So, that last code example will give us the following CSS:

/* The default content container */
.wp-container-[id] > * {
  max-width: 640px;
  margin-left: auto !important;
  margin-right: auto !important;

/* The wider content container */
.wp-container-[id] > .alignwide {
  max-width: 1000px;

[id] indicates a unique number automatically generated by WordPress.

But guess what else we get? Full alignment as well!

.wp-container-[id] .alignfull {
  max-width: none;

See that? By enabling useRootPaddingAwareAlignments and defining contentSize and wideSize, we also get a full alignment CSS class for a total of three container configurations for controlling the width of blocks that are added to pages and posts.

This applies to the following layout-specific blocks: Columns, Group, Post Content, and Query Loop.

Block layout controls

Let’s say we add any of those aforementioned layout-specific blocks to a page. When we select the block, the block settings UI offers us new layout settings based on the settings.layout values we defined in theme.json (or the Global Styles UI).

We’re dealing with very specific blocks here — ones that can have other blocks nested inside. So, these Layout settings are really about controlling the width and alignment of those nested blocks. The “Inner blocks use content width” setting is enabled by default. If we toggle it off, then we have no max-width on the container and the blocks inside it go edge-to-edge.

If we leave the toggle on, then nested blocks will adhere to either the contentWidth or wideWidth values (more on that in a bit). Or we can use the numeric inputs to define custom contentWidth and wideWidth values in this one-off instance. That’s great flexibility!

Wide blocks

The settings we just looked are set on the parent block. Once we’ve nested a block inside and select it, we have additional options in that block to use the contentWidth, wideWidth, or go full-width.

This Image block is set to respect the contentWidth setting, labeled “None” in the contextual menu, but can also be set to wideWidth (labeled “Wide width”) or “Full width”.

Notice how WordPress multiplies the root-level padding CSS custom properties by -1 to create negative margins when selecting the “Full width” option.

The .alignfull class sets negative margins on a nested block to ensure it takes up the full viewport width without conflicting with the root-level padding settings.

Using a constrained layout

We just covered the new spacing and alignments we get with WordPress 6.1. Those are specific to blocks and any nested blocks within blocks. But WordPress 6.1 also introduces new layout features for even more flexibility and consistency in a theme’s templates.

Case in point: WordPress has completely restructured its Flex and Flow layout types and gave us a constrained layout type that makes it easier to align block layouts in themes using the content width settings in the Site Editor’s Global Styles UI.

Flex, Flow, and Constrained layouts

The difference between these three layout types is the styles that they output. Isabel Brison has an excellent write-up that nicely outlines the differences, but let’s paraphrase them here for reference:

  • Flow layout: Adds vertical spacing between nested blocks in the margin-block direction. Those nested blocks can also be aligned to the left, right, or center.
  • Constrained layout: Same exact deal as a Flow layout, but with width constraints on nested blocks that are based on the contentWidth and wideWidth settings (either in theme.json or Global Styles).
  • Flex layout: This was unchanged in WordPress 6.1. It uses CSS Flexbox to create a layout that flows horizontally (in a row) by default, but can flow vertically as well so blocks stack one on top of another. Spacing is applied using the CSS gap property.

This new slate of layout types creates semantic class names for each layout:

Semantic layout class Layout type Supported blocks
.is-layout-flow Flow layout Columns, Group, Post Content, and Query Loop.
.is-layout-constrained Constrained layout Columns, Group, Post Content, and Query Loop.
.is-layout-flex Flex layout Columns, Buttons, Social Icons

Justin Tadlock has an extensive write-up on the different layout types and semantic classes, including use cases and examples.

Updating your theme to support constrained layouts

If you’re already using a block theme of your own making, you’re going to want to update it to support constrained layouts. All it takes is swapping out a couple of things in theme.json:

  "version": 2,
  "settings": {
    "layout": {
      "type": "constrained", // replaces `"inherit": true`
      "type": "default", // replaces `"inherit": false`

These are recently released block themes that have enabled spacing settings with useRootPaddingAwareAlignments and have an updated theme.json file that defines a constrained layout:

Theme Root-level padding Constrained layout features
TT3 Source code Source codeTemplates
ProWP Source code Source codeTemplates
Triangulate Source code Source codeTemplates
Oaknut Source code Source codeTemplates
Loudness Source code Source codeTemplates
Pixl Source code Source codeTemplates
Block Canvas Source code Source code, Templates
Rainfall Source code Source codeTemplates

Disabling layout styles

The base layout styles are default features that ship in WordPress 6.1 Core. In other words, they’re enabled right out of the box. But we can disable them if we need to with this little snippet in functions.php:

// Remove layout styles.
add_theme_support( 'disable-layout-styles' );

Big warning here: disabling support for the default layout types also removes all of the base styling for those layouts. That means you’ll need to roll your own styles for spacing, alignments, and anything else needed to display content in different template and block contexts.

Wrapping up

As a great fan of full-width images, the new contained WordPress 6.1 layout and padding aware alignment features are two of my most favorites yet. Taken together with other tools including, better margin and padding control, fluid typography, and updated List and Quote blocks, among others, is solid proof that WordPress is moving towards a better content creation experience.

Now, we have to wait and look at how the imagination and creativity of ordinary designers and content creators use these incredible tools and take it to a new level.

Because of the site editor development iterations in progress, we should always anticipate a difficult path ahead. However, as an optimist, I am eager to see what will happen in the upcoming version of WordPress 6.2. Some of the thing, that I am keeping a close eye on are things like features being considered for inclusion, support for sticky positioning, new layout class names for inner block wrappers, updated footer alignment options, and adding constrained and flow layout options to Cover blocks.

This GitHub issues #44720 lists the layout related discussions slated for WordPress 6.2.

Additional resources

I consulted and referenced a lot of sources while digging into all of this. Here’s a big ol’ list of things I found helpful and think you might enjoy as well.


WordPress posts

GitHub pull requests and issues

Using The New Constrained Layout In WordPress Block Themes originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

More Than “Slapping Paint on a Website”

November 29th, 2022 No comments

I’m a sucker for anything about front-end job titles.

Anselm Hannemann:

CSS evolved and we’re beyond the point where everyone can just do it as a side interest. We all can learn it and build amazing stuff with it, but using it wisely and correctly in a large-scale context isn’t an easy job anymore. It deserves people whose work is to focus on that part of the code.

Anselm is partly in responding to Sacha Greif’s “Is There Too Much CSS Now?” and the overall sentiment that CSS has a much higher barrier to entry for those learning it today than it did, say, in the CSS3 days. Back then, there was a super direct path to see the magic of CSS. Rachel Andrew perfectly captures that magic feeling in a prescient post from 2019:

There is something remarkable about the fact that, with everything we have created in the past 20 years or so, I can still take a complete beginner and teach them to build a simple webpage with HTML and CSS, in a day. […] We just need a text editor and a few hours. This is how we make things show up on a webpage.

That’s the real entry point here […]

“HTML, CSS and our vanishing industry entry points”

Rachel is speaking to the abstraction of frameworks on top of vanilla CSS (and HTML) but you might as well tack big, shiny, and fairly new features on there, like CSS grid, flexbox, container queries, cascade layers, custom properties, and relational pseudo-classes, to name a few. Not that those are abstractions, of course. There’s just a lot to learn right now, whether you’ve been writing CSS for 20 days or 20 years.

But back to Anselm’s post. Do we need to think about CSS as more than just, you know, styling things? I often joke that my job is slapping paint on websites to make them pretty. But, honestly, I know it’s a lot more than that. We all know it’s more than that.

Maybe CSS is an industry in itself. Think of all the possible considerations that have to pass through your brain when writing CSS rules. Heck, Ahmad Shadeed recently shared all the things his brain processes just to style a Hero component. CSS touches so much of the overall user experience — responsiveness, accessibility, performance, cross-browser, etc. — that it clearly goes well beyond “slapping paint on websites”. So far beyond that each of those things could be someone’s full-time gig, depending on the project.

So, yes, CSS has reached a point where I could imagine seeing “CSS Engineer” on some job board. As Anselm said, “[CSS] deserves people whose work is to focus on that part of the code.” Seen that way, it’s not so hard to imagine front-end development as a whole evolving into areas of specialization, just like many other industries.

More Than “Slapping Paint on a Website” originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

Categories: Designing, Others Tags:

3 Essential Design Trends, December 2022

November 28th, 2022 No comments

As we head into the final month of 2022, plenty of new ideas and website design trends are still emerging. The evolution throughout the year has been exciting and designed to help website designers and developers create greater engagement and interactivity while pushing the envelope. These trends are no exception.

Here’s what’s trending in design this month.

1. Video Game Inspiration

That space where reality and virtual reality merge is popular for website design. Trending are design elements and themes with a pseudo-video game style that looks interactive, somewhat real, and much imagined.

These websites can have a variety of looks and themes but have a few key elements in common:

  • Plenty of animation
  • Interactive elements, real or perceived
  • Fast motion that puts the user in the scene
  • ”Unreal elements” such as the bat-skull for Mythical Games
  • Dark color schemes
  • Often lack traditional navigation or calls to action so that the “game” is the whole screen
  • Leading text or design elements to help you move through interactions

Each of these examples takes a similar but different approach with their video-game-inspired design styles.

Adidas uses a three-dimensional trio of people in flight to get you interested in jobs at their animation studio. The point of view makes you feel part of the action, but traditional design elements, such as navigation, help you know what to do next.

Mutant Stand looks like an old-school video game and moves between a home screen with navigational elements to more of an in-game experience. The motion creates an interactive feel even before you dive into the design.

Mythical Games is an actual gaming website design, so you would expect video game inspiration here. Interestingly, this site takes the most subtle approach, although the design elements of fantasy are strong here.

2. Difficult Typography

Sometimes website design trends can be tough to explain. That’s the case with this one, where designers are experimenting with very difficult typography styles. What’s difficult about the text in these projects is readability.

Difficult typography is somewhat subjective but is emphasized by designs that have a lot of words. The reading challenge extends to mobile design, particularly when these fonts are smaller and can present even greater readability issues.

There are a lot of different styles and combinations of typefaces that can cause readability challenges. Some of the most common for website design include:

  • Condensed or thin typefaces
  • Unusual character styles or strokes
  • Modern or thick serifs
  • Old world styles
  • Scripts or cursive styles

All of this, though, is somewhat in the eye of the beholder. While these examples all present some reading challenges, the designs are still interesting and visually sound. Whether to make these font choices is a personal choice, but you should pay attention to your audience base and website analytics to make sure it works for you.

Here’s where you probably see a lot of this trend outside of website design. Pay attention to the typefaces used for World Cup broadcasts. Difficult typefaces are paired for all on-screen text elements.

Kakeru Yagou uses an interesting modern serif with a bit of a tilted style. As a logotype, the typography works pretty well. It is when there’s a lot to read that the challenge comes into play.

Abymes Numerique uses a condensed typeface in an all-caps style. Either of these options alone might create less of a readability concern than when paired.

Think Dance uses an incredibly interesting but difficult typeface for the two keywords on its website. They do an excellent job by using only two words and pairing them with easy-to-read options everywhere else. But it still takes a minute to think about and comprehend the words, so you can argue the effectiveness of the font choice.

3. Avatars

Already popular on social media platforms such as Snapchat and Facebook, avatars are having a pretty big moment in website design as well. The big difference is that website avatars aren’t just cartoon heads, they can include full-body designs and animated effects.

Avatars can have an extremely personal look and feel, such as when they are used for portfolio websites or be more character-oriented. Both are an excellent way to use faces and incorporate somewhat of a personal element when you don’t have the right photography for the job or want a greater element of whimsy in the design.

Simona Nikolova uses an oversized avatar for her portfolio site. She pairs it with her name to create a connection with users, and the style shows her creativity as well. An avatar is a good way to “show yourself” in a portfolio without the privacy concerns that might come with an actual photo.

Byte Trading uses “Lego-style” avatars to get you interested enough to “enter” the website. Each avatar moves and changes clothing to get you ready to enter the website for the crypto marketplace. Avatars are a popular option for crypto and NFT websites.

Pomelo Paradigm uses three-dimensional avatars to create scenes throughout its website. These created characters help explain what the company does and interactions people should have with the design. They have very human looks, and you almost don’t miss that they aren’t actual photographs.


As we head into a new year, what website design trends are you most excited for? Do you plan to try new things with projects in the new year? Hopefully, these trends give you some ideas and jumpstart that inspiration heading into 2023.


The post 3 Essential Design Trends, December 2022 first appeared on Webdesigner Depot.

Categories: Designing, Others Tags: