BLOG

Baselineを導入する

INDEX

Baselineは、主要ブラウザにおけるAPIやCSSのプロパティ、JavaScriptの構文などの互換性を表す指標です。
<baseline-status>要素を用いて、その機能の互換状態を表示することができます。
この文章の上に表示されている各ブラウザにおけるDOMの互換状態を表示している要素は、
<baseline-status>要素を使って表示しています。

対象ブラウザ

以下のブラウザの互換状態を確認しています。

  • Apple Safari(macOS/iOS)
  • Google Chrome(Desktop/Android)
  • Microsoft Edge(Desktop/Android)
  • Mozilla Firefox(Desktop/Android)

評価段階

Widely available

全ての対象ブラウザに2年半(30か月)以上前から互換があることを示します。

Newly available

全ての対象ブラウザの最新版に互換があることを示します。

Limited availability

互換がない対象ブラウザがあることを示します。

導入方法

インストール

npmかCDNからインストールし読み込みます。

// npm
npm install baseline-status

// CDN
https://cdn.jsdelivr.net/npm/baseline-status@1/baseline-status.min.js

カスタム要素の記述

<baseline-status>要素を記述します。
featureId属性には互換を確認したいidを入力します。
idはweb-featuresリポジトリのfeatures内から指定します。Web Platform Statusからも検索が可能です。

<baseline-status featureId="text-align"></baseline-status>

microCMS+Astro環境に導入する

せっかくなので本サイト、evolabに導入します。
evolabは2025年1月現在、記事はmicroCMSで執筆し、サイトはAstroで構築しています。

カスタムフィールドを追加

featureIdを入力するため、管理画面右上のボタンからカスタムフィールドを追加します。

テキストフィールドで定義します。

各種名称はお好みで。

APIスキーマにフィールドを追加

追加したカスタムフィールドを使うべく、APIスキーマにフィールドを追加します。
各所任意の名称を入力、種類は繰り返し、ポップアップにて先ほど追加したカスタムフィールドを選択します。

APIスキーマ変更するとfeatureIdを入力するフィールドが追加されます。

Baselineを表示させる

Astro EmbedにBaselineのコンポーネントがあるためインストールして使用します。

npm i astro-embed

ループして出力します。

---
import { getAllArticles } from '@/lib/microcms/getArticles';
import { BaselineStatus } from 'astro-embed';

export const getStaticPaths = async () => {
  const response = await getAllArticles('post');

  return response.map((content) => ({
    params: {
      slug: content.id,
    },
    props: {
      post: response.find((post) => post.id === content.id),
    },
  }));
};

const { post } = Astro.props;
---

{post.baseline && (
  <div class="baselines">
    {post.baseline.map((id) => (
      <BaselineStatus id={id.featureId} />
    ))}
  </div>
)}

<baseline-status>要素が読み込まれ、記事で指定したbackground-colorの互換情報が表示されました🎉

サンプル

参考

What is Baseline? | Baseline
Baseline (互換性) - MDN Web Docs 用語集: ウェブ関連用語の定義 | MDN
ベースライン 2024: ウェブ デベロッパーを支援するツールの追加 | Articles | web.dev
Baseline Status | Astro Embed
カスタムフィールド|microCMSドキュメント