Home Web Front-end CSS Tutorial Baseline Status in a WordPress Block

Baseline Status in a WordPress Block

Mar 07, 2025 pm 05:02 PM

This tutorial demonstrates creating a WordPress block that integrates the Baseline web component, displaying web platform feature availability. The author, Geoff Graham, details the process, highlighting key steps and challenges encountered.

Baseline Status in a WordPress Block

The core concept leverages WordPress blocks to make the reusable <baseline-status></baseline-status> web component easily repeatable within the WordPress editor. This avoids directly embedding the HTML component, offering better reusability and management. A similar approach exists for Hugo and Astro.

Project Setup:

The project uses the @wordpress/create-block package for initialization. The plugin registration occurs in baseline-status.php, which registers the block type. This file also handles enqueuing the necessary JavaScript (baseline-status.min.js) conditionally, ensuring the component is only loaded when needed. A crucial function, csstricks_add_type_attribute, modifies the script tag to allow ES module import.

// ... (baseline-status.php excerpt) ...
function csstricks_enqueue_block_assets() {
  wp_enqueue_script(
    'baseline-status-widget-script',
    'https://cdn.jsdelivr.net/npm/[email protected]/baseline-status.min.js',
    array(),
    '1.0.4',
    true
  );
}
// ...
Copy after login

Front-end and Back-end Markup:

The front-end rendering (render.php) uses the <baseline-status></baseline-status> component, dynamically inserting the featureId attribute:

// ... (render.php excerpt) ...
<baseline-status featureid="<?php echo esc_html( $featureID ); ?>"></baseline-status>
Copy after login

The back-end view (edit.js) uses the useBlockProps function for debugging and rendering within the WordPress editor. The block.json file defines the block's attributes, including featureID.

// ... (block.json excerpt) ...
"attributes": {
  "featureID": {
    "type": "string"
  }
},
Copy after login

Block Settings:

The edit.js file incorporates InspectorControls, PanelBody, and TextControl from @wordpress/components to create a settings panel within the editor. This allows users to specify the featureID directly.

// ... (edit.js excerpt) ...
<textcontrol label="Feature ID" value="{" featureid onchange="{"> setAttributes( { featureID: value } ) }
/></textcontrol>
Copy after login

Styling:

Styling the component involves understanding Shadow DOM. The author utilizes CSS variables and direct selection of the <baseline-status></baseline-status> element to apply styles. The approach addresses challenges in styling Shadow DOM elements.

Plugin Availability and Future Improvements:

The plugin is available on the WordPress Plugin Directory. Future improvements include live updates, variations (size options), and a toggle for the heading's visibility.

The article provides a comprehensive guide to building a WordPress block that integrates a third-party web component, offering valuable insights into WordPress block development and Shadow DOM styling.

The above is the detailed content of Baseline Status in a WordPress Block. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

It&#039;s out! Congrats to the Vue team for getting it done, I know it was a massive effort and a long time coming. All new docs, as well.

A bit on ci/cd A bit on ci/cd Apr 02, 2025 pm 06:21 PM

I&#039;d say "website" fits better than "mobile app" but I like this framing from Max Lynch:

Can you get valid CSS property values from the browser? Can you get valid CSS property values from the browser? Apr 02, 2025 pm 06:17 PM

I had someone write in with this very legit question. Lea just blogged about how you can get valid CSS properties themselves from the browser. That&#039;s like this.

Using Markdown and Localization in the WordPress Block Editor Using Markdown and Localization in the WordPress Block Editor Apr 02, 2025 am 04:27 AM

If we need to show documentation to the user directly in the WordPress editor, what is the best way to do it?

Stacked Cards with Sticky Positioning and a Dash of Sass Stacked Cards with Sticky Positioning and a Dash of Sass Apr 03, 2025 am 10:30 AM

The other day, I spotted this particularly lovely bit from Corey Ginnivan’s website where a collection of cards stack on top of one another as you scroll.

Comparing Browsers for Responsive Design Comparing Browsers for Responsive Design Apr 02, 2025 pm 06:25 PM

There are a number of these desktop apps where the goal is showing your site at different dimensions all at the same time. So you can, for example, be writing

How to Use CSS Grid for Sticky Headers and Footers How to Use CSS Grid for Sticky Headers and Footers Apr 02, 2025 pm 06:29 PM

CSS Grid is a collection of properties designed to make layout easier than it’s ever been. Like anything, there&#039;s a bit of a learning curve, but Grid is

Google Fonts   Variable Fonts Google Fonts Variable Fonts Apr 09, 2025 am 10:42 AM

I see Google Fonts rolled out a new design (Tweet). Compared to the last big redesign, this feels much more iterative. I can barely tell the difference

See all articles