Identify and Select Blocks via the Wayfinder WordPress Plugin

Christopher John, a Seattle-based designer and UX engineer, released his first project to the plugin directory yesterday. Announced via Twitter to high praise, Wayfinder is a block outline solution for the WordPress editor.

Like similar plugins, the goal is to make it easier for end-users to select nested blocks, which can sometimes be tough to pin down. Wayfinder outlines each block in the editor on hover. It then displays the block name at the upper left of the box.

My favorite feature that you will not find elsewhere is the addition of each block’s classes at the bottom right of the box. This makes it easy for designers or users who want to quickly find a class for styling.

Outline of a heading block between two paragraphs via the Wayfinder plugin.
Outline of a Heading block.

Users can also enable or disable the pieces of the UI they want to appear via the plugin’s setting screen. However, any changes affect all of the site’s user experiences. Currently, there are no per-user settings.

At first glance, the plugin seemed to work great. The hover outline experience felt smooth, and I did not need to change the default options. Wayfinder almost seemed to be everything one might look for in a block-outline solution. It was besting existing plugins in nearly every way.

However, things soon began rolling downhill when writing a typical blog post with nothing other than Heading, Paragraph, and Image blocks. I first noticed that I could not type the same number of words as usual on one line. My perfectly-tuned typography was breaking sooner than it should have. Spacing between paragraphs seemed a bit too large. My wide-aligned images were just a little smaller than usual.

The user experience still felt good until this point, but the little oddities were stacking up. Something was not right. The plugin had been showered with praise on Twitter and already received three five-star reviews in its first 24 hours. Maybe my custom theme was the issue. However, similar problems arose when testing several others, such as Twenty Twenty-One, Nutmeg, and Eksell — each a well-rounded theme catered to the block editor.

As clean as the plugin’s UI is, it more often than not wrecks the theme’s default block spacing. This becomes more noticeable as users begin adding nested layers of blocks.

The problem is the plugin adds 18 pixels of padding around every block via its stylesheet.

.wp-block:not(.block-list-appender) {
    position: relative;
    outline: 1px dashed transparent;
    padding: 18px;
    overflow: visible !important;
}

To the untrained eye, this may not be a visible issue in many cases. It will affect each site differently, but 18 pixels of extra padding on every block will undoubtedly mess things up to some degree unless the theme itself uses that exact same spacing in its design.

The more noticeable issues are seen with blocks like Social Icons:

Enlarged social icons when using the Wayfinder plugin.
Holy moly! Those are some gigantic social icons!

But, even something as basic as a List block can be misaligned:

Viewing a list block in the editor where the Wayfinder plugin's padding misaligns it.
List block shifted out of alignment.

Theme authors can write custom CSS to overrule the plugin’s padding. However, the last thing the WordPress community needs is a specificity war between themes and plugins. Themers already have to do this enough to wrangle blocks now.

Removing that one padding rule from the plugin’s editor-style.css killed 99% of its issues. Afterward, things were running like a well-oiled machine.

As a developer, I would explore outline-offset for spacing between the block and its outline, maybe cutting that 18px down a bit. Because outlines are not a part of the CSS box model, it would not affect spacing. Adjustments may be necessary on a per-block basis, especially when those blocks are nested or small (e.g., Social Icons, Navigation). It would carry its own challenges but should be a less destructive course.

To a lesser extent, the plugin’s overflow rule breaks the theme design from time to time. Its position and outline rules could overrule some edge-case block styles too, but they are necessary for the plugin to actually do its job. In particular, I could see positioning being problematic with sticky headers as we get into site editing.

The only other issue might be themes that use ::before and ::after pseudo-elements on blocks, but the plugin also needs to overwrite those to display the block name and classes list. This is likely another edge case.

Despite the issues, the plugin is ahead of the pack at this point.

Gutenberg Editor Full Width Blocks Border (a bit of a mouthful), another recent plugin to offer similar functionality, breaks custom theme design across the board. It does accomplish the job of making blocks easier to select, but the sacrifice of a WYSIWYG is not worth it.

The Editor Block Outline plugin has been my go-to recommendation for a while. It has a few design issues of its own, but some of those are adjustable on a per-user basis. However, as of late, it has made the editor feel sluggish. Plus, its misuse of the WordPress admin notice system for Twitter followers makes it something I’d prefer to steer clear of.

EditorsKit has a similar “block guidelines” feature that uses a box-shadow instead of padding and an outline. It does not muck up most theme layouts with that technique. However, I have hit other style conflicts with the plugin. Plus, EditorsKit is overkill for users who simply want just one feature.

That leaves us with Wayfinder. Warts and all, it is the best standalone option right now. Maybe that’s not saying much, but it is saying something. This is a feature that is hard to nail down. I do not envy the developers who are trying to make miracles happen.

It is sure to please many who have been on the lookout for a block outline solution. It is in a position to pull farther ahead of the competition with its relatively solid first outing. With more thorough theme testing and a bit of adjustment to its approach, it could be even better. I am eager to test future iterations.

Developer First Culture and Collectives at Stack Overflow

If you’ve ever written code you’ve probably heard of Stack Overflow.

Most of us have learned from them or shared knowledge on their site. They’ve also got one of the most inclusive and positive engineering cultures out there.

On this week's episode of Dev Interrupted I bring on Ben Matthews, Director of Engineering at Stack Overflow, to give us the inside scoop on Stack's operations, teams and company culture. Ben also discusses their newest product launch - Collectives - and why he thinks they will be a game changer for dev teams.  

Vertx, Guice and Config Retriever: Dependency Injection in Vertx 4.x

In computer science, dependency injection is defined as a pattern, whereby one component gets other components (dependencies) from outside. Numerous posts were written about various implementations of dependency injection in Vertx using the Google Guice library. All of them are good and I do not want to reinvent a bicycle here and repeat the same things again. However, in my opinion, it is a good idea to give a bit more systematic approach to this topic. In my experience, in most cases, for developers is not a big deal to implement a basic DI with Vertx, rather it seems hard to incorporate Vertx components into the DI pipeline. In this post, we will review how to do dependency injection in Vertx with Google Guice and how to build a basic injection that has the ConfigRetriever component (Vertx’s way to obtain an application configuration). Please note, that in this article we use Futures API, so it is focused on Vertx 4.x developers.

Basic DI with Google Guice

Google Guice is an established solution to implement a dependency injection technique in Java applications. Like most established libraries, it is quite simple to use, yet it does not mean that it is limited in any way. This is a very flexible and powerful solution. The main building blocks of the framework are modules and injectors. The module is used to define how to get dependencies. The injector serves as a main entry point of an application and is used for an actual component initialization. Let have a quick example, that uses a constructor injection technique. Imagine, that you develop a verticle, that has two external dependencies — a client class (that performed HTTP calls) and a repository class (that does database operations). For sure, we will not do here their precise implementations, because it is out of the scope of the post. In order to specify these dependencies classes inside the verticle, we need to use an @Inject annotation. If you are familiar with the Spring framework, you would find a process familiar. Basically, we need to create fields to keep references for components, define a constructor and annotate it with the @Inject, so Guice will know that we use constructor injection.

Automattic Acquires Pocket Casts

Automattic has acquired Pocket Casts, a popular podcast listening, search, and discovery app for Android and iOS. Australian co-founders Russell Ivanovic and Philip Simpson are staying on to continue leading Pocket Casts as a part of the acquisition.

The app allows users to keep all of their podcast subscriptions together in one place and sync between platforms. Previously a commercial-only app, Pocket Casts has been free since it switched to the freemium model in September 2019. Its creators have been monetizing the app through its Pocket Cast Plus tier, which gives users access to desktop apps, cloud storage, watch playback, and themes and icons for $9.99/year.

In May 2018, Pocket Casts was acquired by public media organizations NPR, WNYC Studios, WBEZ Chicago, and This American Life. BBC Studios also held a small ownership stake in the platform prior to Automattic’s acquisition.

Despite being widely regarded as one of the best podcasting apps available, NPR’s financial statements and auditor’s report from 2020 shows a net loss of more than $800K. The board governing the company met in December 2020 and agreed to sell Pocket Casts.

No financial details of the acquisition were disclosed but Automattic may have gotten a bargain on Pocket Casts if its other owners were also losing money. After acquiring Tumblr and Day One, Automattic is starting to gain a reputation for buying up apps that people love to use and giving them a fighting chance at financial stability and longevity. The company has also demonstrated a growing interest in podcasting-related technologies with its recent investment in Castos and partnership with Spotify’s Anchor podcast creation platform.

Acquisition announcements often include assurances of no changes for current customers but Automattic’s post made no promises and did not share many details regarding its plans for Pocket Casts. Integration with WordPress.com may be on the horizon but it’s currently in the exploration stage.

“As part of Automattic, Pocket Casts will continue to provide you with the features needed to enjoy your favorite podcasts (or find something new),” Automattic’s Head of Apps Eli Budelli said. “We will explore building deep integrations with WordPress.com and Pocket Casts, making it easier to distribute and listen to podcasts. We’re thrilled that we can continue to give our users a multitude of ways to tell and engage with stories that matter.”

From Behind the Chair to Behind the Keyboard: How Hairdressing Prepared Me for Network Automation

Every developer lead has been there. You’re mid-phone call with a client who is experiencing an outage or chaos in the system. She’s stressed out, balancing feedback from stakeholders across her organization, weighing the potential impacts of the issue, and relying on you for advice and solutions.

In these pivotal moments, I’m often hit with a sudden sense of déjà vu from when I was 16, working as a hairdresser in my first full-time job, facing a customer whose hair color was left on too long and oxidizing, causing the microscopic outer layer of hair follicles to peel back and release green color pigments.

The Beginner’s Guide to Business Structure

Building a business can be incredibly exciting—until you hit the legal part.

When you start a business, you have to make the monumental decision of selecting a business structure. This is where you decide the type of legal structure you want for your company, which also determines the tax you pay and how you pay it.

It’ll affect the amount of paperwork your business needs to do, the extent of your liability, and your ability to raise money.

The good news is you don’t need an MBA to understand this. Things are very straightforward when explained correctly. Read on as I decode common business structure basics, along with a few useful tools and tips to set you up for success.

What is a Business Structure?

A business of structure indicates an organization‘s structure as it is recognized in a given jurisdiction.

Choosing a business structure creates a legal recognition for your trade, where it becomes a key determinant of the activities your business can undertake, including raising capital, paying taxes, and the responsibility for the business’s obligations.

Your business structure trickles down to several factors that are part and parcel of running a business. In addition to enlightening the legal documentation you need, it also clarifies the amount of taxes your organization owes to tax agencies. More importantly, it decides the extent of your liabilities on behalf of the business.

Precisely why before choosing your legal structure, you should carefully consider your needs and goals and understand the features of every business structure.

The Basics of Business Structures

In the section, I’ll detail the basis of common business structures. By the end, hopefully, you will have a fair idea about which option would be better suited for you.

Sole Proprietorship

The sole proprietorship is the simplest business structure, involving one individual who owns and operates the enterprise. Any organization that isn’t registered as otherwise is considered as a sole proprietorship.

For instance, if you make and sell jewelry on Amazon and your website, you’re a sole proprietor. So if you plan to work alone and want total control over operations, this is right up your alley.

But that doesn’t mean there are no legal obligations. You have to figure out the licensing, permits, and regulatory hoops depending on the industry.

A sole proprietorship is appealing for tax purposes because all the income and expenses from the business are included on your personal income tax return, Form 1040. Your profit and losses are then recorded on a form called Schedule C, which you’ll file with your 1040.

From here, the “bottom-line amount” is transferred to your personal tax return. You must also file a Schedule SE with Form 1040.

Sole Proprietorship Pointers

  • It’s relatively inexpensive—provided you don’t need to file for a DBA (Doing Business As).
  • Being a “pass-through” tax entity where all the profits and losses come straight to you (the owner), paying taxes is relatively easy.
  • You can have employees if you want. However, this will complicate your taxes a bit.
  • Raising money and getting a small business loan will be difficult.
  • You have to assume full responsibility for your business’s debts and obligations.

Partnership

When your business is owned and operated by two or more individuals, it becomes a partnership. Generally, partnerships can be of two kinds: General partnerships and Limited partnerships.

When you’re part of a general partnership, you and the other partners in the company assume full responsibility for the business’s debts and other obligations.

In a limited partnership, there are general partners and limited partners. While the general partners operate the business and are personally liable for the partnership, limited partners are strictly investors. Limited partners have no control over the company and don’t share the same liabilities as general partners.

Let’s explain this with the jewelry selling example on Amazon.

If you bring in your best friend who is equally as good as you in creating jewelry, you won’t be a sole proprietorship anymore—your business is now a partnership.

On the tax front, partnerships have it relatively easy. A partnership business isn’t required to pay tax on its income and is considered a pass-through entity, where any profits or losses are extended to the individual partners. During the tax season, the partnership files a tax return (Form 1065) to report its income and loss to the IRS.

Additionally, every partner has to report their share of income and loss on Schedule K-1 of Form 1065.

Partnership Pointers

  • There must be an official partnership agreement between the partners.
  • A partnership is a pass-through tax entity, where all profits and losses “passed through” to the partners.
  • Partners must stay true to each other and have a trusting relationship.
  • It’s possible to have a one-off partnership known as a joint venture. In this case, you partner with other individuals for one specific project.

Corporations

A corporation is the first thing that comes to mind when people think of a business structure. It has a complex legal structure comprising shareholders, which also makes tax requirements more intricate and stringent.

There are three different types of corporations: C-Corp, S-Corp, and B-Corp. Each type has its own set of distinct characteristics.

C Corporation or C-Corp refers to the structure where all shareholders combine funds in exchange for stock in a newly formed business. It‘s an independent tax entity in the eyes of the IRS, which means it can file taxes in its name and will get tax deductions.

This business structure has a unique double taxation situation. In addition to the corporation paying corporate income tax at the federal and state level, its owners have to pay personal income tax on any earnings they receive from the business.

S Corporation or S-Corp is similar to a C-Corp except in the tax aspect. In an S-Corp, all income and losses are passed through to shareholders and included in their individual tax returns. As such, there’s just one layer of federal tax that owners must pay.

In other words, you can take your share of profit home without deducting the corporation’s share of tax—something important in the case of C-Corps.

That said, becoming an S-Corp isn’t easy. You have to set your business up as a corporation within your state and then request an S-Corp status (Form 2553).

B Corporation or B-Corp simply means benefit corporation. This can be a viable business structure if your company has a dedicated social mission, with a good cause built into its foundation that you plan to continue pursuing as your company grows.

A B-Corp is just a regular C-Corp that has been vetted and approved for the B-Corp status. Many people prefer to be a B-Corp over a non-profit because of ownership terms. With a non-profit, there are no owners or shareholders, whereas, for a B-Corp, there are still some shareholders who actually own the company.

Corporation Pointers

  • Corporations offer higher protection for personal assets as the liability is mostly limited.
  • There’s greater potential to raise capital.
  • Corporate taxes are filed separately from personal taxes, making the business eligible for corporate tax breaks.
  • Corporations are more difficult to set up.
  • A traditional C-Corp has a double taxation factor.
  • B-Corporations must have a social mission and require vetting to receive the status.

Limited Liability Corporation

A limited liability corporation or LLC combines the best of both worlds. You get the flexibility of a partnership with the liability protection of a corporation. The earnings and losses pass through to the owners and are included on their personal tax returns.

An LLC is similar to an S-Corp—but with more attractions.

It offers a combination of legal liability limitation and favorable tax treatment for profit and its transfer. You can have as many shareholders for an LLC as an S-Corp, which has a limit of 100. It’s a new form of legal entity that varies a lot from one state to another. As such, the advisability and benefits of forming this business structure also vary.

Limited Liability Corporation Pointers

  • Starting an LLC is more complex as you have to adhere to stringent rules and regulations.
  • LLCs provide personal asset protection to the owner. If sued, they can only go after business assets, not personal property or money.
  • An LLC is a pass-through tax entity for federal income taxes and enjoy greater tax incentives.
  • An LLC is a good alternative to a sole proprietorship. Except for Massachusetts, you can form a single-member LLC.

3 Tools to Help Start Your Business

I’m going to go ahead and assume you plan on starting a business. Congratulations!

At the same time, you have to be prepared for the never-ending paperwork, legal assistance, and several other steps to kickstart your business. Check out our buying guide for in-depth reviews of the top 11 business formation services today. Below, I have listed three of the best business formation services that can do all the hard work for you, regardless of whether you want to create a single-member LLC, multi-member S-Corp, partnership, or a non-profit.

ZenBusiness

ZenBusiness is fast, reliable, and diverse. It comes with a wide range of offerings that include incorporation services, LLC services, registered agent services, and DBA.

It comes with a user-friendly interface, which makes it suitable for beginners. However, its biggest USP is arguably the worry-free guarantee that includes two amendments to yearly corporate annual reports.

The other reason why I like ZenBusiness is its affordability. A $39 price point and a free year of registered agent service and accounting assessment—in addition to incorporation—make it even more attractive.

Rocket Lawyer


Rocket Lawyer tries to provide the average person a reliable legal service without breaking the bank, and it delivers.

Signing up for this service gives you access to experienced attorneys who can answer all your legal queries within minutes. In addition, it has a lawyer directory that instantly connects you with an expert on a specific legal topic from your chosen state for the best possible guidance.

What’s more, you can contact your assigned lawyer whenever you want during the business incorporation process via call, mail, or chat. The fact you get post-launch care is another hard-to-miss benefit.

LegalZoom

LegalZoom is one the most popular business formation services that offer comprehensive legal assistance in all 50 U.S. states.

It has one of the most extensive lists of service offerings that are customized based on your business requirements. You’re directly paired with attorneys who can give personalized advice related to your business structure.

Additionally, LegalZoom offers various services like procuring seller’s permits, business licenses, EIN, state tax ID, and 501(c)(3) applications.

3 Tricks for Deciding the Best Business Structure for You

It’s not always easy to decide which structure would be most suitable for you, especially since there are several factors to consider.

Consider How Complex and Flexible You Want Your Business to Be

As mentioned before, nothing is more straightforward than a sole proprietorship. All you have to do is simply register your name, start your business, report profits and pay

Partnerships need a signed agreement that clearly outlines the roles of every partner, along with their profit percentages. Out of these, corporations and LLCs are more complex since they have different reporting requirements from the state and federal governments.

As for flexibility, your business structure should reflect the kind of growth you envision for your business. Take a long, hard look at your business plan where you’ve mentioned your long-term goals. Select a structure that aligns best with those objectives.

Think About Taxes, Licences, and Permits

LLC owners and sole proprietors are all liable to pay tax on profit considered personal income at the end of the year. On the other hand, corporation owners only have to file tax returns on behalf of the corporation as well as for all their personal returns through the business for the specific year.

Individuals in a partnership may also claim their share of profits as personal income.

In addition to taxes, you should also be mindful of whether you need specific licenses and permits to operate. This depends on the type of business and activities you indulge in, leading you to be licensed on the local, state, and federal levels.

Therefore, it’s best to determine the ongoing regulation concerning licenses and permits before you start operating.

Know the Level of Control You’re Willing to Give

If the sole control of your business activity is important to you, opting for a brighter ship or an LLC is your best bet. Furthermore, you can also negotiate this control when setting up a partnership agreement.

However, this isn’t possible in the case of a corporation. This business structure is constructed to have a board of directors responsible for making all the major decisions. You can, of course, have a single person control the corporation at its inception, but as it grows, so will its need to operate the business as a board-directed entity.

What to Do Next

Once you zero on a business structure for your company, it’s all action from there.

Start by signing up with a reliable business formation service to file the necessary paperwork. Once your company has been formed, you can then focus your efforts on getting more business.

Here are a few more QuickSprout guides to ensure your business’s success:

The Bag Data Structure From Eclipse Collections

In computer science, a bag is defined as an abstract data structure, that allows keeping duplicate elements in any order. This is similar to a physical bag, where you could also put any elements and take them out randomly. So, bags are different from lists (because lists care about a particular position of an element) and from sets (because sets do not allow duplicates). The bag is a good choice when you just need to collect items and do some processing using iterations. Java does not offer its "vanilla" implementation of the bag, however, you could find it in popular collections libraries. In this post, we will review the Bag from Eclipse Collections, which supplies both mutable and immutable versions.

Create Bags

Before we will proceed with various Bag methods, let observe how to initialize a new Bag instance within the Eclipse Collections framework. Likewise to other types of collections, there are presented both mutable (modifiable) and immutable (non-modifiable) versions. In general, we can use the Bags class, which allows utilizing static factory methods to obtain bags:

  • Bags.immutable.* calls ImmutableBagFactory to create immutable bags.
  • Bags.mutable.* calls MutableBagFactory to create mutable bags.

Both types use the same approaches, that can be separated into the following three categories:

Top 10 Low-Code App Development Best Practices to Follow

Low-code is the present and future of software development. The low-code market is expected to increase from its $10.3 billion market value back in 2019 to $187 billion by 2030 as more companies see the benefits of adopting the platform for their business needs. This is due to the growing need to either accelerate or finish their digital transformation. 

We at Appery.io build a huge variety of applications using the low-code approach and have even created our own low-code app builder that helps our customers turn ideas into real apps. We’ve experienced some challenges and learned some lessons that help us maximize the potential of low-code. 

Creating an AWS EKS Cluster and Providing Access to Developer

1. Introduction

This article is going to talk about mainly two points:

  1. How to create an AWS EKS Cluster.
  2. How to provide an AWS EKS cluster access to a developer who does not have admin access to AWS.

To deploy any microservices, we need to create AWS EKS clusters like dev and QA, etc. Once AWS EKS clusters are available then every developer should have access for logging and debugging purposes from their EC2 instance. 

Benchmarking Xcode Availability Across Hosted CI Services

Xcode versions are the drumbeat that iOS teams all around the world march to. The prompt access to Xcode versions ensures that apps are submitted, and updated on time, while Xcode betas help prepare for new features, functionality, and – the dreaded deprecations.

With WWDC 2021 around the corner, enticing teams with the shiny new things the Apple folks thought up for us, this topic is more relevant than ever.

How To Switch Tabs In A Browser Using Selenium Python?

Selenium automation offers dexterous ways to perform day-to-day tasks most efficiently. From capturing screenshots to testing PDF files, there’s no limit to what you can do with Selenium automation. Developers and testers are masters of drilling websites and finding loopholes. More often than not, this drill involves switching tabs multiple times a day. To reduce the manual effort that goes into doing so, we recommend using Python Selenium to switch tabs.

In this article, we will help you master multiple ways to switch tabs in Selenium using Python. Let’s get started –

Codeless Test Automation: The Biggest Software Testing Trend of 2021

Codeless test automation is arising as a promising solution for non-programmers during the software development cycle. Organizations are attempting to solve fast-tracking software delivery and the technical effort it takes to test. That's where software testing is switching from manual testing to codeless automation testing tools to validate applications.

Besides CI/CD integrations and multiple types of testing coverage, codeless test automation also solves the issue of coding skills resulting in more and faster releases. Thus, simplifying the testing processes for QA teams no matter how sophisticated the software is. 

Common Security Lapses That Empower Cybercriminals

Over the past 12 months, the number of successful ransomware attacks has increased alarmingly. Many attacks have been headline news due to the disruption they have caused and the high cost of remediation.

The healthcare industry in the United States has been targeted, with the attacks disrupting patient care and putting patient safety at risk. Recently there was an attack on Colonial Pipeline that resulted in the shutdown of the main fuel pipeline serving the East Coast of the United States, while JBS suffered an attack that threatened food production at its U.S. plants. 

WordPress Admin Warnings in the Block Editor

We sent out an email the other week that ultimately had a <video> in the HTML markup. We send the newsletter by creating it here in the WordPress block editor, which is fetched through RSS-to-Mailchimp. Mailchimp dutifully sent it out, but the HTML was such that it totally borked the layout. This lead to some charming totally fair emails like this:

This email looks like trash in thunderbird, just giving a heads up.

You actually can send <video> in HTML email, but our system just isn’t set up for it. It requires some fancy dancing CSS (e.g. hiding it for non-supporting users with a fallback, and detecting support is super tricky, etc.) and HTML (e.g. making sure the width/height attributes are small-screen friendly). We could do it, but I don’t think it’s worth it for the handful of times we would want to do it.

So instead, to prevent us from doing it again, I used (drumroll)…. CSS.

I have some CSS that gets loaded in the admin area only when the block editor is loaded, which is in a functionality plugin:

wp_register_style(
  'css-tricks-code-block-editor-css',
  plugins_url('location/of/styles.css', dirname( __FILE__ )),
  array('wp-edit-blocks'),
  filemtime( plugin_dir_path(__DIR__) . 'location/of/styles.css')
);

I can put anything I want in that CSS file and it will effect styles of the block editor but nothing on the public front end of the site.

I also wanted to scope this CSS only to the newsletters page. Fortunately, WordPress has body classes in the editor as well. We have a Custom Post Type for newsletters, and that expresses itself as a class here:

So I chuck these styles in:

/* Warn about videos in newsletters */
.post-type-newsletters .wp-block-video {
  border: 5px solid red;
}
.post-type-newsletters .wp-block-video::before {
  content: "WARNING: NO VIDEOS IN EMAILS";
  display: block;
  color: red;
}

And boom, I have styles that warn about this problem before it happens again:


The post WordPress Admin Warnings in the Block Editor appeared first on CSS-Tricks. You can support CSS-Tricks by being an MVP Supporter.