How To Bulk Optimize Images With Smush…for Free!

Using full-sized images on your WordPress site not only takes up storage space but slows down your site, too. Instead of wasting time and effort compressing them manually, see how Smush can help you do it in bulk.

Smush is an award-winning image optimization plugin that focuses on compressing and resizing your images. It saves storage space and takes some of the load away from your server, which can speed up your site.

If you haven’t already, make sure to download the Smush plugin for free at WordPress.org today.

You can manually compress your images before adding them to WordPress but this is a lot more time consuming than simply using a plugin like Smush.

Smush gives you full control over when and how your images are compressed and optimized in at least 7 ways.

In this article, we show you how to:

1. Activate Smush Scan

2. Exclude Selected Image Sizes

3. Super-Smush for 2x More Compression (or Ultra-Smush for 5x)

4. Remove Image Metadata

5. Choose JPEGS Over PNGs

6. Manage Your Original Images

7. Bulk Smush Images

1. Activate Smush Scan

When you activate Smush, it automatically combs through your site and takes note of any images that can be compressed.

Smush then displays the number of images in need of attention on its main screen.

Screenshot of the amount of images that need smushing - 19.
This is just one of the methods you can use to smush your images.

Before hitting the Bulk Smush button, it’s worth checking out Smush’s other image compression features.

Let’s go through each of these options.

2. Exclude Selected Image Sizes

First, you can exclude images of certain sizes from being compressed by simply unticking the checkboxes shown below:

Screenshot of the various image sizes you can exclude.
If you’re happy for Smush to compress all of your images, you can select ‘All’.

WordPress creates multiple copies of an image. If you run a site that requires your images to be crystal clear, you may not want your larger images to be compressed, however, you can still compress the smaller image versions using these settings.

3. Super-Smush For 2x More Compression (or Ultra-Smush for 5x)

If site speed and storage space are at the forefront of your priorities when it comes to your website, you can take image optimization a step further with Super-Smush.

Bulk Smush Settings - Super Smush
Choose Super Smush for better performance and load speed without compromising image quality. 

Super-Smush works by stripping out as much of your image data as possible without sacrificing quality, reducing the file size by up to twice as much as regular smush.

For even more compression and savings (up to 5x more) with minimal image quality loss, choose the Ultra Smush setting.

Smush Settings - Ultra Smush enabled
Ultra Smush your images for 5x compression.

You can tweak Smush’s settings to ensure it saves a copy of your original images, however, if you’re not quite ready to Super-Smush or Ultra-Smush, there are a couple of other ways to trim off a few extra KBs.

4. Remove Image Metadata

Smush lets you strip unnecessary metadata from your images.

Screenshot of the strip metadata button.
The information that Smush strips serves no purpose on most sites.

With this setting enabled, all of the unnecessary data stored within your images will be removed while preserving the data needed for SEO.

Whilst a lot of the EXIF data stored within a photo is harmless, other details such as the location it was taken and the camera details are better off removed. The location could lead people to where you took the photo (your house perhaps) and if the serial number of the camera is included, it could be used to trace other photos online taken with the same camera and result in an invasion of privacy.

These scenarios may be unlikely, however since all the extra data is clogging up your site anyway, it makes perfect sense to remove it. Luckily, Smush does it for you automatically once you enable this setting.

5. Choose JPEGs Over PNGs

Another way to potentially reduce your file sizes is by converting your PNG images to JPEGs.

Screenshot of the pngs to jpegs button
If a saving won’t be made, Smush will leave your images as PNGs.

If you’re unsure whether you should enable this setting, a good general rule of thumb is that you should convert photographs to JPEG as there is no noticeable loss in quality. You can achieve a file size of less than 10% of the original if you compress as a JPEG compared to PNG.

If you have graphics, screenshots, or images that contain text, it’s better to leave them as PNGs to ensure they stay crystal clear as JPEGs tend to add a little bit of noise/grain around the text

6. How Smush Handles Original Images

As of WordPress 5.3, large images are automatically resized down to the new maximum image size of 2560px in width/height. WordPress then refers to these resized images as “new originals”.

If you want to upload a photo larger than this, Smush can help you override this setting.

Screenshot of the resize my full size images section with custom size set to 4000px.
You can select your own new maximum width and height for images.

With this setting enabled, Smush automatically creates a new size for super-large images and reduces these to your new custom sizes, rather than WordPress resizing them to its default maximum size of 2560px.

If you resize your images manually prior to adding them to WordPress then you may not need to enable this setting, however, it saves a lot of time and works if you have many large images you need to display on your site.

Now that you’ve decided how large your original images will be, it’s time to decide what to do with them.

By default, Smush doesn’t compress your original images during a Bulk Smush, it only compresses the thumbnail images that WordPress produces.

Since your original images are what takes up the majority of your storage space, it makes sense to ensure these are smushed too.

Screenshot of the original images toggles.
Use the top toggle to ensure your full-sized images are smushed.

If you’re smushing all of your original images, you might want to have a backup in case you decide to revert back to the pre-smushed version.

If you upload an image higher than the maximum size your site will support (either WordPress’ maximum or a custom maximum you create with Smush) WordPress stores your image as the original and then creates the new max-sized image to display on your site.

If an image you upload is smaller than the maximum allowed, WordPress will not store this as a separate original – this version will be compressed directly by Smush.

Whilst Smush guarantees no loss in quality when compressing your images, we understand that some people will want a backup, which is why the ‘Store a copy of my small originals’ feature exists.

Enable this to store a copy of your original images in wp-content/uploads.

7. Bulk Smush Images

Compressing your images will free up some of your site’s storage space as well as reduce the time it takes to load onto your visitors’ screens. Now that you’ve worked your way through the different settings, it’s time to compress with Bulk Smush.

When you hit the blue button, Smush will compress the images that it identified upon activation.

Screenshot of a smush in process showing it at 94%.
Make sure you keep the tab open until Smush has finished compressing all the images.

Once the process has finished, Smush will keep an eye out for new images added to your site that are in need of compression.

When your image total on Smush’s main screen starts to creep up again, all you need to do is hit the Bulk Smush button and all your images will be compressed. It’s much quicker and easier than doing it manually outside of WordPress.

If you’re happy with your first Bulk Smush, you may want to consider enabling Automatic Compression.

Screenshot of automatic compression showing it enabled.
You can easily enable or disable this feature using the toggle shown above.

With Automatic Compression enabled, Smush will compress your images as soon as you upload them, which means that you will never need to use Bulk Smush again.

Image Optimization at the Touch of a Button

Compressing your images with Bulk Smush is just the start.

Having well-optimized images on your site means that there’s less pressure on the server when it’s dealing with browser requests. This is also one of the ways that Smush can help you increase your Google PageSpeed score.

Smush boasts a ton of other features such as a blazing-fast CDN and the ability to convert your images into next-gen formats that can help your site reach its full potential.

[Editor’s note: This post was originally published in July 2020 and updated in Dec 2023 for accuracy.]

WordPress.com Growth Summit

I’m speaking at The Official WordPress.com Growth Summit coming up in August. “Learn how to build and grow your site, from start to scale”, as they say. Lovely, thick, diverse set of speakers. It’s a little bit outside my normal spheres which makes it extra exciting for me. Selena Jackson:

The goal of this event is to inspire, connect you with the tools you need, and help you build your community. Sessions will take place across three tracks: blogging, business, and creative. You can take sessions on any or all tracks

If it interests you, it’s $79, and 20% off that with coupon code ChrisCoyier20.

My session?

CSS-Tricks: Putting WordPress to Work

Chris Coyier’s CSS-Tricks is a popular publication geared to web designers and developers. It’s also very much a business powered by WordPress. Chris will take us behind the scenes at CSS-Tricks, sharing all the ways it takes advantage of WordPress features, on both the technical and business sides.

Selena sent me some interesting questions as well:

What has kept you on WordPress for all these years? How has your website been essential to your growth or success?

It’s true that CSS-Tricks has never been anything but a WordPress site. I’ve never switched platforms or majorly re-architected in any way. But it’s not because of laziness or because I just don’t have any exposure to other methods of website building. I feel fortunate in that I’ve had lots of exposure and experience to different ways to build websites, from JAMstack with static site generators with cloud functions, to CMSs of all sorts, to Ruby on Rails sites, to Python-based sites… all kinds of stuff. All of it has a place.

Part of the equation is that I’m a solo developer for the most part on CSS-Tricks. Just me over here. I don’t have the budget for a fancy development team. But I still want to feel powerful and productive. That’s one of the things that WordPress has given to me. I feel like I can build just about anything on WordPress, and do it in a way that doesn’t feel like a mountain of technical debt that I would struggle to maintain.

Even though there is a decent amount of custom stuff going on, it probably looks like more than it is. Most of the work I do is pretty normcore WordPress development. I use popular well-maintained plugins. I use standard filters. I use the templating system as it was designed. I try to do things “The WordPress Way”, and that means year after year it’s very easy for me to maintain the site and build out what I want to build out. I never worry if I’m going against the grain or that I’m doing anything that puts me at any risk of not being able to upgrade things.

What’s one key thing you want our Growth Summit attendees to take away from your keynote talk/session?

I think my main vibe is going to be sharing just how powerful WordPress can be as a platform to run a publishing business on.

In a crowded and noisy web environment, what did you do to help your website stand out? What’s unique about your story or business?

What I hope we stand out for is the content on the site itself. We strive to be consistent, trustworthy, friendly, and helpful. In a world so laden with misinformation, zero-ethics advertising, and UX-hostile interfaces trying to squeeze everything they can from you, a site that’s just trying to help you understand the web and run a normal business out of it I hope feels as good to other people as it does to me.

Has COVID-19 changed how you use your website — or your approach to your online presence?

Not terribly. I’m finding advertisers pulling back a little bit, and keeping a closer eye on their sponsorship investments. And while I don’t love the idea of seeing those dollars go down, I don’t blame them. It’s smart for any business to make sure their money is well-spent.


The post WordPress.com Growth Summit appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

Getting Started With Distributed SQL

In recent years, NoSQL distributed databases have become common, as they are built from the ground up to be distributed. Yet they force difficult design choices, such as choosing availability over consistency, data integrity, and ease of query, to meet their applications’ need for scale. This Refcard serves as a reference to the key characteristics of distributed SQL databases, how functionality compares across database offerings, and the criteria for designing a proof of concept.

Okta Introduces Java Library for PASETOs

Okta, an authentication solution provider, has announced a new Java developer library to streamline use of PASETOs. PASETOs (Platform Agnostic Security Tokens) reduce the scope of JavaScript Object Signing and Encryption (JOSE), but continues to provide the functionality needed to secure applications. PASETOs are said to be easier to use than JOSE or any JWT, with all the same security.

Fighting Covid-19 With The Power of AI

All in the world was going well, when suddenly, one day, everything came to a halt with the spread of the deadly COVID-19 pandemic. Not just a city or a country, but the whole world was in trouble because of a virus, having no treatment spreading at an unprecedented pace and claiming lives.

It was soon realized that such a powerful virus required something even powerful to combat its spread till a vaccine or a drug was found and thus, promising technologies like Artificial Intelligence and Internet of Things were given a consideration which did offer a huge helping hand as was desired.

How to Create a Powerful and Secure Customized Firewall with Defender

Hackers can be persistent at trying to get into your site and drop malicious code, figuring out your credentials, and leaving spam. Thankfully, with WPMU DEV’s 5-star security plugin, Defender, you can set up a firewall, block IP addresses with customized lists, and more…leaving troublemakers unable to take even the first step into your WordPress site.

This tutorial will demonstrate how easy it is to set up Defender’s IP banning and keep your WordPress site safe.

Here are 8 areas we’ll be covering (jump to a specific topic by clicking on it):

  1. Automatically Identify Bad Acting IP Addresses
  2. Creating a Custom Blocklist & Allowlist
  3. Active Lockout Displays
  4. Unlocking IP Addresses
  5. Location Banning
  6. Creating Custom Message for Banned Users
  7. Importing and Exporting Custom Blocklist & Allowlist
  8. Check Your Lockout Log for Suspicious Activity

Most areas of this tutorial are accessible in Defender under the Firewall and IP Banning section unless specified differently.

Let’s get started with the best and most powerful feature of Defender’s firewall…

1. Automatically Identify Bad Acting IP Addresses

Defender automatically identifies bad acting IP addresses and adds them to a firewall, providing your site with ongoing security and protection.

You can lock out users who attempt a number of failed login attempts. Defender gives you control over the threshold and duration of the lockout in the Login Protection screen (Defender > Firewall > Login Protection).

Defender Login Protection screen.
Defender lets you set how many failed login attempts will trigger a lockout for a user’s IP address.

You can view how many IP addresses have been temporarily blocked in the Active Lockouts section of the IP Banning screen (Defender > Firewall > IP Banning > Active Lockouts). You can also unblock IP addresses here.

Defender Active Lockouts
View and release temporarily blocked IP addresses in the Active Lockouts section.

You can also enable 404 detection (Defender > Firewall > 404 Detection), and Defender will automatically block IP addresses that repeatedly request pages on your website that don’t exist. It will also temporarily block these offending IP addresses from accessing your site.

Defender 404 Detection
Defender’s 404 detection blocks IP addresses that repeatedly request pages on your site that don’t exist.

Tip: You can use the 404 detection feature in combination with Defender’s login masking feature to immediately identify and block IP addresses requesting your site’s login page.

In addition to Defender’s automatic IP blocking features, you can also block IPs manually, as the next section explains.

2. Creating a Custom Blocklist & Allowlist

Creating a custom blocklist & allowlist with Defender will keep unwanted IPs from accessing your site.

It’s done by easily entering any IP addresses. This includes admins, too.

The first area is for your Blocklist.

The area to enter your blocklisted IPs.
The area to enter your blocklisted IPs.

You can type out any IPs you want to be blocked, and they’ll no longer be able to access your site.

When you scroll down a bit further, you’ll have the option to add IP addresses to your Allowlist.

The Allowlist area.
The Allowlist area.

It’s the same as the blocklist, where you just enter the IP addresses that you’d like to always have access to your WordPress site.

IPv4 and IPv6 are both supported for the blocklist and allowlist.

Note: We recommend adding your own IP to avoid getting locked out by accident. Your current IP address will be shown below the allowlist and you can easily copy and paste it in.

When you have all the information added to the blocklist and allowlist, there’s a Save Changes button at the bottom of the screen that will save everything.

Unwanted IPs are no longer going to be stopping by your WordPress site.

3.Active Lockout Displays

You can easily view any IP addresses that are blocked from accessing your site based on your rules.

Active lockouts screen.
Active lockouts screen.

Once you start having lockouts, they’ll all be compiled here. You can see how many IP addresses are currently blocked.

And if you need to unblock any IPs, there’s…

4. Unlocking IP Addresses

Sometimes an IP is blocked or banned and you need to unblock it for many reasons.

Defender makes it simple to release any IP addresses from the Active Lockout area by hitting the Unlock IPS button.

Unlock IPs area.
You can see there are 30 IP addresses currently blocked here.

This will reveal all of the blocked IP addresses and it’s one-click to unblock them by clicking Unblock.

Where you’ll unblock an IP address.
Where you’ll unblock an IP address.

There’s no need to hit anything further after this. It will unblock the IP and you’re all set.

You can also search for specific IPs in the search area if you’re having difficulty locating them on the list.

5. Location Banning

Along with IP addresses, you can also ban entire countries with Defender. This feature is handy when you don’t want or expect traffic from specific locations and want to put a stop to hackers and bots visiting from certain areas.

All of this can be achieved in the Locations section.

Defender works with a company called MaxMind, so it can have access to the GeoLite2 Database. It’s free to set up an account and will ask you to do so when first setting up location banning.

The Locations area. When you get started with Defender, it asks you to set up an account with MaxMind.
The Locations area. When you get started with Defender, it asks you to set up an account with MaxMind.

There are prompts for a free account. From there, they’ll email you steps to set up a password. Once you login in, you click the link for a new license key in Defender’s dashboard.

Create a new license key in MaxMind and then it will be ready to copy and paste into Defender.

Where a new key is produced.
Where a new key is produced.

Once your new license key is pasted, you’ll be all set once you hit the Download button. It may take a few minutes for the key to register, so keep that in mind.

Now you have the option to Blocklist & Allowlist any country.

There is a drop-down menu that displays them. Once you start typing, it will populate any corresponding countries that start with that letter.

The drop-down menu of countries. Select as many as you’d like to blocklist or allowlist.
The drop-down menu of countries. Select as many as you’d like to blocklist or allowlist.

They’ll all appear in the box below your choice of blocklist or allowlist. You can also take them off the list by clicking on the ‘X’ next to the country’s name.

Blocklist of countries.
List of the countries added so far.

When completed, it’s all saved by hitting the Save Changes button.

6. Creating Custom Messages for Banned Users

Give any locked out hacker a customized message from Defender himself. All of this can be done in the Message area.

You have the ability to add a customized message in this space.

Customized blocklist message.
Where you’ll type in a customized message.

And after that, anyone that is on the blocklist will be greeted by Defender.

A message from Defender.
Defender is here to tell them what’s happening.

After clicking the Save Changes button, the message will be functioning and unwelcome guests will know why they’re IP isn’t making the cut.

7. Importing and Exporting Blocklist & Allowlist

If you have a blocklist or allowlist from another website and want to import them, it’s quick and easy to do. Likewise, you can export your list that you have for blocklist and allowlist to use on another website.

All of this is under Import and Export in Defender.

Where you can import and export blocklist and allowlist.
Where you can import and export blocklist and allowlist.

There’s an Import button to import and Export button to export a list.

Importing will not remove existing IPs. Also, when you export, it will include the blocklist and allowlist.

8. Check Your Lockout Log for Suspicious Activity

You can view all of your lockouts and quickly ban, allowlist, or delete the list in just a couple of clicks. Plus, you can easily download your activity logs of IP lockouts.

This, unlike the previous sections, is located in Firewall and Logs on Defender’s dashboard.

Where you can view all of your lockout activity.
Where you can view all of your lockout activity.

Once here, you can sort logs by the latest, oldest, or IP address. You can also export them as a CSV and adjust the date range.

Where you can sort the logs.
Where you can sort the logs.

Also, take care of the issues in one-click with Bulk Update. You can ban, allowlist, or delete just by checking the boxes individually or by the dropdown to take care of them all.

Take care of things in bulk with the bulk update.
Take care of things in bulk with the bulk update.

You can also get more detailed information by clicking on the arrow dropdown next to the issue. There, you’ll also have an option to allowlist or blocklist.

And just like that, all of your lockouts are now taken care of.

Setting Up a Lockout Firewall Can’t Get Any Easier

Unwanted guests won’t get far with Defender’s custom IP address lockout.

And it’s more than just customized IP address lockout — there’s custom messages, location banning, logs, and much more with Defender.

To learn more tips on using Defender, check out our article about finding & deleting suspicious code and all about how to stop hackers in their tracks.

For more information, check out Defender’s documentation page.

Revised Block Directory Guidelines Proposal Updates Wording but Changes Little Else

Yesterday, Alex Shiels posted an update to the proposed guidelines for the WordPress block directory. The document adds eight rules for plugin authors to follow if they plan to add their one-off blocks to the directory. The guidelines are additional requirements on top of the existing plugin directory guidelines.

While the wording and organization of the block guidelines received a revamp in comparison to the original proposal, the overall sentiment is unchanged. Shiels thanks community developers for the feedback on the original guidelines but does not go into detail about the things that changed as a result.

The primary guidelines are mostly expected, run-of-the-mill requirements for blocks. Developers need a block.json file. They should name stuff appropriately. Plugins should contain only a single block. Plugins should only touch the block editor. Blocks should work seamlessly once activated.

The remaining guidelines are certain to be a disappointment or point of contention for some developers.

Monetization Still Not Allowed

The largest feedback on the guidelines we received here at the Tavern surrounded what is essentially a blanket ban on commercial interests for block developers. Blocks still cannot hook into a paid service or advertise within the admin. This limitation will obviously turn away many businesses that may have been looking forward to the block directory as a potential avenue for profit. Right now, one-off blocks will need to be built by those with altruistic interests, giving back to the community simply out of the kindness of their hearts.

While there is nothing inherently wrong with wanting to do that, it is not attractive to developers who are primarily focused on putting food on the table. Hobbyists and larger businesses with the resources to give back will be well-suited to add blocks to the directory. However, it will give a lot of developers pause because it is unlikely a good return on investment. Instead, those developers are more likely to submit their blocks to the normal plugin directory with their normal upsell methods. This will only serve to make block discoverability harder for end-users.

This is a missed opportunity to build a well-rounded system that is fair to both users and developers who need to make a living. Whether it is through the plugin tag system or specific guidelines on monetization, we could have built something that made everyone a little happy and a little mad, a compromise that merged a good user interface and experience.

It is not like there have been no proposals. In January, Luke Carbis wrote a detailed outline of how WordPress could provide a middle ground between sustainability (business models) and accessibility (free options) with the upcoming block directory. His fear was that the block directory would be full of blocks without updates in a few years because the completely free model is unsustainable. His proposal was a badge-based system that let users know if a block contained ads, used a freemium model, or required a sign-in to a third-party service.

The current guideline is not set in stone. This is the first version of the block directory. It is not out of the question that the team could change things as the directory grows over time.

No Love for Server-Side Blocks

The block directory guidelines are still heavily geared toward static blocks. PHP must be kept at a minimum and primarily be used to load any necessary scripts and stylesheets. Server-side blocks are not getting much attention at the moment, which may be a limitation of the software.

It would be great to see a way for some server-side blocks to be included in the block directory. For example, a breadcrumbs block would need to rely heavily on PHP to render its output. It is a dynamic block rather than static. This particular block would not be useful until full-site editing lands in WordPress, which is still several months away. However, I am getting the itch to turn an old breadcrumbs plugin of mine into a block. It would be neat to see it listed in the block directory.

There are countless other scenarios. Post lists, product grids, and data pulled from external APIs are all good use cases for one-off blocks.

Dependencies Are Not Allowed

Given the way that WordPress works, it makes sense to ban dependencies on other plugins for any particular block to function. This is an old limitation that is rearing its head again. Every other modern framework uses some sort of dependency management to address this problem.

The block directory has the potential to exacerbate the problem even further. Because plugins coming from this directory will be single blocks, it will often mean that developers are using the same bits of code across multiple projects. For example, an end-user may activate multiple block plugins that rely on the same JavaScript library. Because there is no 100%, sure-fire way to make sure only one instance of this library is loaded, users may be running multiple instances of it on their sites. It is not a new problem, but smaller block plugins mean that users are more likely to install more plugins. It increases the probability of running into this issue.

If there was any sort of basic dependency management for plugin authors to use in WordPress, it would solve a world of problems. Over the years, developers have created methods to minimize the issues stemming from the lack of such a system. However, nothing is foolproof without a standard to follow.

This has also held developers back from building libraries, scripts, and tools that could benefit the entire development community as a whole. Everyone builds their own things in-house, and the block directory is making a promise for more of the same.

Deep Learning for Signal Processing: What You Need to Know

Using Deep Learning for Signal Processing

According to the Institute of Electrical and Electronic Engineers (IEEE), Signal Processing encapsulates our daily lives without any of us even knowing. Computers, radios, videos, mobile phones are all enabled by signal processing. Signal Processing is a branch of electrical engineering that models and analyzes data representations of physical events. It is at the core of the digital world. Speech and audio, autonomous driving, image processing, wearable technology, and communication systems all work thanks to signal processing. And now, signal processing is starting to make some waves in deep learning. 

Source

Cloud Data Integration Companies in 2020

Concept of Cloud Data Integration

Cloud Data Integration combines cloud-based systems with on-premise systems creating a server-less engine with dynamic range and automation to simplify cloud-based processing. It uses various tools and technologies to connect a range of applications with systems, and IT environments to process and exchange data in real-time.

With the help of Cloud Data Integration's ability to combine data promptly, enterprises can effectively reduce costs and become efficient. It controls the entire data field impeccably across different data platforms, increases data migrations to Big Data or cloud in days, and also reduces the architectural complexity.

Understanding Sentiment Analysis

A simple chatbot is not enough to talk to enhance your clients’ experience and boost your business performance. When it comes to development, you realize that you require sentiment analysis to understand their feedback.

It might not seem a particularly difficult task to a human, but discerning intent behind each comment requires significant effort and specific algorithms. Our texts, blog posts, and any other form of written communication is riddled with emotion. An AI system may have little trouble understanding what a short and straightforward “I like it” means, but, in most cases, a single message contains more layers of context, subtext, irony, and other distorting factors. To classify each message correctly and respond appropriately, AI-powered communication systems rely on sentiment analysis.

Accordion Rows in CSS Grid

I’d bet grid-template-columns is used about 10× more than grid-template-rows, but maybe everyone has just been missing out. Eric Meyer chucks a bunch of row lines onto his main site layout grid like this:

grid-template-rows: repeat(7, min-content) 1fr repeat(3, min-content);

That way, if you need to use them they are they for you:

like this pattern. It feels good to me, having two sets of rows where the individual rows accordion open to accept content when needed, and collapse to zero height when not, with a “blank” row in between the sets that pushes them apart. It’s flexible, and even allows me to add more rows to the sets without having to rewrite all my layout styles.

Direct Link to ArticlePermalink


The post Accordion Rows in CSS Grid appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

Creating PDF’s With Custom Data Using Mule 4+ Java

Hello, readers!

We know that we can create PDFs and Images using Base64 Data, we can generate PDFs only if we have a valid Base64 content which includes, PDF format like Borders, Fonts, Style along with Data. Even if a small character is missed in Base64 content, you won't be able to generate a PDF.

Checking Out Camunda: Replacing the Old BPMS Legacy System

Traditional BPM or tightly coupled application although designed in accurate way but over the time due to addition of new functionality and lack of old version product support usually it ends up with the following problems:

  • Heavyweight system that is hard to install and to maintain.
  • Closed architecture, hard to integrate with existing technology stack.
  • Required their proprietary approach to application development, disliked by software developers and limited in flexibility.
  • Lack of support for BPMN, or missing features and tools.
  • Issues with performance and scalability.
  • Difficult to get qualified, affordable professional services.
  • Total Cost of Ownership (TCO) too high, in part due to high maintenance fees.

As a result, only BPMS replacement or redesigned option remains.

Exclude Flows and Files From MUnit Test Coverage

1. Overview

In this article, we will discuss how to exclude flows and files in MUnit test. This is useful when you want to exclude unnecessary flows/files from MUnit test coverage. We also demonstrate how to run specific MUnit file or flow.

2. What Is MUnit?

MUnit is a Mule application testing framework which allows you to build automated tests for your Mule integrations and API’s. With MUnit you can mock, spy, tag processors. We will learn about these MUnit tools in next articles.

4 Ways an Integration Platform as a Service (iPaaS) Fuels Efficiency

One of the major challenges that many companies face nowadays is cloud integration. As a rule, most enterprises are known for using multiple systems, each of them operating separately on a different platform, each playing a significant part but none of them integrated. In such a case, the company has all the chances not only to lose important data but also to create chaos in the business processes. Integration technology will serve here as a great solution to allow companies to control all their work infrastructure.

Defining iPaaS

iPaaS is a sort of conduit that links separate applications that companies use. The platform unifies all the existing information, allowing enterprises to integrate all their data.

Collective #615




Collective 615 item image

Primo

Primo is an all-in-one IDE, CMS, component library, and static site generator.

Check it out




Collective 615 item image

3D Hands gestures

An amazing free 3D hands gestures library with 12 hands gestures in 9 different skin tones and with 3 sleeve types.

Check it out











Collective 615 item image

css-media-vars

A brand new way to write responsive CSS. Named breakpoints, DRY selectors, no scripts, no builds, vanilla CSS.

Check it out









The post Collective #615 appeared first on Codrops.