Webフロントエンド開発で役立つサービスまとめ

この記事では、Webフロントエンド開発において役に立つと思われるサービスやツールをまとめます。

# 全般
## [Can I use](https://caniuse.com)
指定した特定の機能が、どのブラウザのどのバージョンで利用可能かを確認するためサービスです。新しいJavaScriptのAPIやCSS3の機能を使ってモダンなWeb開発を行う場合、必須とも言えるくらい利用することになります。
指定した国におけるブラウザのシェア情報をもとにして、特定の機能が何割のユーザーで使用可能かを調べることもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/ddea914e-ce6e-efbf-debc-30ba33e79ad8.png)


# npm / webpack
## [BUNDLE PHOBIA](https://bundlephobia.com)
指定したnpmパッケージのサイズを調べるサービスです。近年のWebではページの表示速度が非常に重要視されており、Webサービスにバンドルするパッケージのサイズも極力小さくすることが求められています。パッケージのサイズを調べる方法は多々ありますが、このツールの場合はパッケージ自体のインストールをすることなく簡単にサイズをチェックできます。サイズのチェック時には、チェック対象のパッケージと同等の機能を提供しながらより軽量なパッケージについてもサジェストしてくれるので、パッケージの選定時に役に立つでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/68f05f95-0ba1-0b36-dfd4-0f5bc0d7cbea.png)


## [npm semver calculator](https://semver.npmjs.com)
npmパッケージのバージョン指定結果をシミュレートすることができるサービスです。npmパッケージのバージョンはSemantic Versioningで管理されており、package.json 内の dependencies では `^1.2` や `~2.3.2` のように、 [所定のルール](https://docs.npmjs.com/about-semantic-versioning) に基づいて許容できるバージョンの範囲を指定することになります。このサービスでは、そのような指定をした結果、どの範囲のバージョンがインストールされ得るかを確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/96e2959e-93ba-a037-d43e-462fae09cb9b.png)


## [npm trends](https://www.npmtrends.com/)

指定したnpmパッケージのトレンドをチェックすることができるサービスです。任意の期間におけるダウンロード数の変化や、starの数、issueの数といった情報をパッケージ間で比較することができます。もちろんここで得られる情報が人気や支持をそのまま反映しているわけではありませんが、利用する技術を選定するにあたって、パッケージごとのトレンドを把握するための目安になるかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/4c694006-dd20-3a54-9067-1a890b599826.png)


# パフォーマンス

## [PageSpeed Insights](https://pagespeed.web.dev/)
PageSpeed Insights は、Googleが提供するウェブサイトのパフォーマンス評価サービスです。評価対象のURLを入力すると、デスクトップ用、モバイル用のパフォーマンス評価スコアを算出します。スコアはラボデータ、フィールドデータと呼んでいる2つのデータから計算されます。前者は管理された環境における評価データ、後者は実際のユーザーの環境から収集された評価データであり、理論値だけではなく実際のユーザーの体験に基づいたスコアを確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/b94267ad-353b-7625-553f-8e231c9c5157.png)


## [WebPagetest](https://www.webpagetest.org/)
WebPagetestはWebサイトの速度計測サービスです。ファイルの転送時間を表すウォーターフォールチャートや、ページの表示に要した各種メトリクスなどといった、パフォーマンスに関連する各種メトリクスを確認することができます。レビュー結果を確認することでパフォーマンス向上のポイントを把握することが可能であり、Webサイトの高速化に役立てることができます。また、一度生成された結果は同一URLでアクセス可能なので、診断結果を保存、共有することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/4e7fffcb-ae10-94e0-c4d8-97a15d7edab8.png)

## [Website Image Analysis Tool](https://webspeedtest.cloudinary.com/)

Website Image Analysis Tool は、Cloudinary が提供するWebサイト中の画像評価ツールです。指定されたWebサイトに含まれる画像を解析し、画像サイズやフォーマットに基づいて、どれだけファイル転送量を削減できる可能性があるかを教えてくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/6fe9ebab-d5e8-a9b5-b2d6-c3bbad0862ac.png)

# JavaScript
## [JSONLint](https://jsonlint.com)
JSON形式のテキストのLinterツールです。JSON形式のテキストをペーストして「Validate JSON」ボタンをクリックすると、正しいJSONフォーマットとなっているかどうかのバリデーションを実行してくれます。バリデーション実行時にインデントや改行を付加してフォーマットもしてくれるので、フォーマッターとしての使用という面でも便利です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/d9e9110c-0daa-7177-742b-7e1be05439ea.png)

## [perf.link](https://perf.link)
JavaScriptコードのパフォーマンスを比較することができるサービスです。比較したいコードをフォームの中に入力して実行すると、コードごとのパフォーマンスをグラフで表示してくれます。ブラウザごとの実行速度の比較や、パフォーマンスを重視したコードの選択をする際に役立ちそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/0ab1fb99-6fdd-55b9-2851-fc00dc8c9062.png)

## [JSON Hero](https://jsonhero.io/)
JSON Hero は、指定したJSONの内容をパースし、フィールドとデータの値を可視化するツールです。解析対象とするJSONを入力すると、JSONに含まれるフィールドを一覧表示し、さらに指定したフィールドに含まれるデータの詳細情報を表示してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/33cbeadd-e796-3a98-b42c-58196658c82a.png)

## [Transform](https://transform.tools/json-to-zod)

「JSONからYAML」「CSSからTailwind」のように、あるデータの構造やコードを基にして、別のコードへと変換するサービスです。非常に多くの変換パターンが用意されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/bc46d634-aa85-af31-2db8-eaa94dee11d3.png)


# TypeScript
## [TypeScript Playground](https://www.typescriptlang.org/play)
WebでTypeScriptを記述できるサービスです。TypeScriptのコードをさっと実行してみたい時に役立つかもしれません。
また、右側のエリアにはJavaScriptへとトランスパイルされた結果がリアルタイムで表示されるので、実際にブラウザで実行されるはずのコードを確認することもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/4fe5afc2-3993-081b-1814-bcae000bbcdb.png)

## [TypeScript Error Translator](https://ts-error-translator.vercel.app/)
TypeScriptのエラーを平易な文章(英語)で変換するサービスです。エラーテキストをコピーして投稿すると、エラー内容を解説するテキストが表示されます。TypeScriptが指摘するエラーは時に難解になることがありますが、このサービスを利用することでエラー内容を理解しやすくなるでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/a6864411-b91a-eff7-2837-365bc7abae45.png)


# CSS
## [CSS Grid Layout Builder](https://grid.layoutit.com/)

CSS gridを編集することができるツールです。用意したいレイアウトの指定して、各領域を命名するだけで、そのレイアウトを反映するための各種gridプロパティを生成します。gridは強力な機能である反面、慣れていないとスクラッチで書くのが少し大変ですが、このツールを使えばすぐに作業が終わります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/f1624af7-7011-72b1-bed7-051b373ff804.png)


## [Keyframes](https://keyframes.app/animate/)
CSSのKeyframesを用いたアニメーションのエディタです。画面下に表示されるタイムフレームを指定し、任意のタイミングにおけるトランスフォームや色などの情報を定義することでCSSアニメーションを作成することができます。基本的な操作はフォームに数値を入力するだけであり、HTMLやCSSを書く必要はなく、また作成したアニメーションはリプレイによってすぐに確認可能です。作成したアニメーションはCSSでアウトプットすることができるので、コピペするだけで自身のWebサイトにアニメーションを適用することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/e732fe5b-baa2-cd14-1527-db12fcc64343.png)

## [Easing Functions](https://easings.net/ja#)

Easing Functionsは、様々なパターンのCSS transitionを提供するサイトです。CSSの [`transition-timing-function`](https://www.w3schools.com/cssref/css3_pr_transition-timing-function.asp) プロパティには `ease` や `ease-in-out` といった、動きを滑らかにするための値を指定することができますが、現実の世界のオブジェクトは、跳ねたり震えたりします。Easing Functions では、そうした動作を `cubic-bezier` を指定して実現するための方法を確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/6fbec8e2-f15c-2fe7-29fc-c6e800b4fc9b.png)

## [cssbuttons.io](http://cssbuttons.io/)
さまざまデザインのボタン、チェックボックス、スイッチを掲載しているサイトです。ホバーや状態変更に応じてアニメーション動作をするものが多く、またそれらのCSS定義を確認することができます。自分が実現したい部品のデザインに近いものを探して、参考にすることができるでしょう。

![cssbuttons.io_(iPad).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/c88c9062-de5f-94fd-c878-7eb624276e2e.png)

## [Neumorphism.io](https://neumorphism.io/)

名前が表す通り、ニューモーフィズムデザインに則ったCSSを生成するサイトです。サイズや形状などといった情報を視覚的に確認しながら調整することができ、それを実現するためのCSS定義を取得することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/0f76091b-645a-aee1-32de-e837bd0f596f.png)


## [Clippy](https://bennettfeely.com/clippy/)

Clippyは、CSSの `clip-path` プロパティを使用したクリッピング領域を編集、定義することができるツールです。ドラッグ&ドロップで切り取りたい領域を指定するだけで、クリッピングをするためのCSSが出力されます。ちなみに、 [Firefoxもクリッピング編集機能を提供しているのですが](https://youtu.be/u9bDe3Bw0sA)、こちらも非常に便利です。(むしろこっちの方が使いやすいかも。CSS関連の開発機能に関しては、Firefoxはかなり充実している印象があります)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/8d573d7c-37ea-6089-2f41-c908cbb9150e.png)

## [Capsize](https://seek-oss.github.io/capsize/)

Capsizeは、指定したフォントの大文字のを任意の高さとするために必要となるフォントサイズを計算することができるサービスです。デザインデータに基づいてテキストの高さを正確に合わせたい場合などに利用できるかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/43131c1b-7334-8b80-dac9-48b1a7a3bf57.png)

## [Font Match](https://font-match.netlify.app/)

Font Match は指定した2つのフォントの文字サイズが合致するよう調節することができるサービスです。フォントが異なれば、当然幅やギャップが異なりますが、これを利用することでそれぞれのフォントでのテキストのサイズを近づけることができます。フォントのスワッピングをする際に、画面のちらつきやレイアウトシフトを減らすことを目的として利用できるでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/29a0dc17-a8de-4486-478f-a9be6803d306.png)

# コードエディタ

## [Code Sandbox](https://codesandbox.io)
Webブラウザで利用可能なコードエディタです。ブラウザで動作していることを忘れるほど非常に高機能なエディタであり、コード編集はもちろん、オートコンプリート、定義ジャンプ、リネームといった、一般的なIDEが提供する機能を最初から備えています。操作感もVS Codeに近く、VS Codeを普段から使っている人なら違和感なく利用することができるでしょう。また、GitHubとの連携も可能であり、GitHubレポジトリへからのpullやcommitといった操作も可能です。さらに、ReactやVueなどのテンプレートが提供されており、ちょっとした機能を試したいのであればブラウザのみで作業が完結します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/df10b665-00c2-de7a-2206-5425d4fa9fcc.png)


## [CodePen](https://codepen.io)
HTML、CSS、JavaScriptによるコード実行環境を提供するサービスです。このサービスの特徴の1として、CSSの作品がアートワークのように多く投稿されており、世界中のCSS職人による素晴らしいギャラリーを堪能することができます。その技術はもはや~~変態~~職人の域に達しているものが多く、より高いレベルのCSSを組みたい場合に勉強になるでしょう。
なお、Halm, Slim, Pug, Sass, Lessなどのプリプロセッサが提供されており、好みの記法で記述することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/c766fe09-c25d-2bd1-7562-02e75dd65ff6.png)


# 画像編集
## [Responsive Image Breakpoints Generator](https://responsivebreakpoints.com/)
アップロードした画像ファイルを、設定値に基づいて各種サイズで生成するサービスです。パフォーマンス向上を目的として、ユーザーの端末のサイズに応じて最適なサイズの画像ファイルをダウンロードさせることは多いかと思いますが、このサービスを用いることで想定しているサイズごとの画像を生成することができます。画像生成と同時に、 `srcset` で指定する値も提示してくれるので、生成された画像ファイルをダウンロードすると共に `srcset` をコピペするだけで、レスポンシブな画像ダウンロードができるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/7bcd00c9-05ac-2770-6172-4ac18da75cd0.png)


## [Squoosh](https://squoosh.app/)

Squoosh は、画像ファイルの圧縮が可能なサービスです。画像ファイルをアップロードした後、画像形式や画像品質などを選択して画像ファイルサイズを減らすことができます。さらに圧縮前後の画像や圧縮率の変化などを確認することができるので、圧縮後の画像が適切な品質を保っているかどうかをその場ですぐに確認することが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/b9c710af-73be-1ee8-030e-853fe97a1774.png)

# SEO

## [Meta Tags](https://metatags.io/)

Meta Tags は、設定されたMetaタグによってWebサイトがどのように表示されるかをチェックできるサービスです。チェック対象とするWebサイトのURLを指定すると、Googleの検索結果、TwitterやFacebookといったSNSにおけるOGPの表示結果などをチェックすることができます。各種SNSで実際にURLを投稿せずとも表示結果が確認できるので、表示に便利です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/2b27e775-7e33-f911-baed-af7e622a66ed.png)

# セキュリティ
## [Mozilla Observatory](https://observatory.mozilla.org/)

Mozilla Observatory は、指定されたWebサイトのHTTPレスポンスヘッダをチェックし、適切なセキュリティ対策が行われているかどうかをチェックしてくれるツールです。チェック対象のサイトのURLを入力して解析を実行すると、CSP、HSTS といったヘッダの内容をチェックた上で、全体的なセキュリティ対策のスコアを提示します。サイトに不足している個々のセキュリティ対策を把握する上で便利です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/d2b91cdd-9eb8-bba9-69a0-ce57d9739fe2.png)

## [CSP Evaluator](https://csp-evaluator.withgoogle.com/)

CSP Evaluator は、Content Security Policy の内容を解析、評価するツールです。チェック対象のURLを入力すると、HTTPレスポンスヘッダに含まれるCSPの内容を解析し、適切な設定が行われているかどうかをチェックします。CSPの内容を直接入力することも可能なので、設定しようとしている値が適切かどうかを確認する上でも便利です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/b844ff7b-86bf-bb88-6e35-406d09f867ea.png)


# デバッグ
## [RemoteJS](https://remotejs.com)
RemoteJSは、自身のマシンとは異なる環境、つまりリモートのブラウザで動作しているWebアプリケーションなどのデバッグを可能にするサービスです。つまり、WindowsマシンのEdgeで動いていようが、AndroidのFirefoxで動いていようが、リモートから検証を行うことができます。具体的には、以下のようなことが可能です。

- 発生したイベントの監視
- JavaScriptコードの実行、DOMの取得
- スクリーンショットの取得

このツールは、特定のデバイスの特定のブラウザでしか起きない現象であり、かつコンソールなどを使用したデバッグが困難、というような状況で有効です。使用も非常に簡単であり、RemotJSのサイト内で生成される `<script>` 要素を埋め込むだけで、RemoteJSのためのセッションを生成してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/fbf5340f-0546-c5b1-8293-b8f333a86253.png)


# Chromeエクステンション
## [VisBug](https://chrome.google.com/webstore/detail/visbug/cdockenadnadldjbbgcallicgledbeoc)
Chromeで表示しているWebページに対して様々な操作を行うことが可能なエクステンションです。マージンやパディング、要素の位置を変更したり、アクセシビリティのチェックを行うことが可能です。Devtoolsでも代用可能な機能は多いですが、より簡潔で直感的に操作できる機能が多いです。デザイン面の調整にも利用しやすいので、エンジニアはもとより、デザイナーの方にもおすすめできるエクステンションです。
なお、 [Firefox用のadd-on](https://addons.mozilla.org/en-US/firefox/addon/visbug/) も提供されているので、Firefoxからも利用可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/8e77910d-b3a6-2e7e-cad1-5fb18bc9f0cc.png)


## [WhatFont](https://chrome.google.com/webstore/detail/whatfont/jabopobgcpjmedljpbcaablpmlmfcogm)
サイト上で使用されている各テキストのフォント情報を簡易的に調べることができるエクステンションです。WhatFontをONにしてChrome上でカーソルを動かすと、ホバーしている位置のテキストのフォント名をツールチップで表示します。また、任意の位置でクリックすることで、font-familyやweightといった詳細情報を表示することもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/d8066e71-7df2-0749-f3ea-c79ed9444fb8.png)


## [Accessibility Insights for Web](https://chrome.google.com/webstore/detail/accessibility-insights-fo/pbjjkligggfmakdaogkfomddhfmpjeni)
Microsoftが提供するアクセシビリティのチェックツールです。
簡易的なチェックを行う「FastPass」、詳細な評価を行う「Assessment」、Web上にビジュアル化した上で評価結果を確認できる「Ad hoc tools」といった機能を提供しています。特に「Assessment」では多岐にわたる評価項目が用意してあり、非常に詳細なレベルでの確認が可能です。Chrome devtoolsよりも、さらに細かいレベルで評価したい場合にも役に立つでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/3e735644-33d6-7dad-8667-06a22cbe6320.png)

## [META SEO inspector](https://chrome.google.com/webstore/detail/meta-seo-inspector/ibkclpciafdglkjkcibmohobjkcfkaef)

META SEO inspectorは、表示中のWebサイトのメタ情報などをチェックするためのエクステンションです。チェック対象のWebサイトを表示中にエクステンションを表示すると、 `<head>` 内に定義された各種情報などに基づいて、SEOの観点から適切な値が設定されているかどうかをチェックしてくれます。修正するべき内容内容があればwarningやtipという形で検出してくれるので、内容を確認して適宜修正すると良いでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/c5167e85-0d9f-6ae1-2f06-388945f1ecde.png)


# その他ツール
## [Responsively](https://responsively.app/)

Responsively は、ウェブサイトを様々なデバイスサイズで閲覧できるブラウジングツールです。スマホサイズ、タブレットサイズ、PCサイズといった様々なサイズの表示結果を同時に閲覧することができます。そのため、ホットリロードを利用しながら他のデバイスサイズに影響を与えないようCSSやHTMLを編集するようなケースでは、Responsivelyは強力なサポートツールとなるでしょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/bb500b95-26e8-5c77-aa0b-dd82f1d66e0a.png)

## [ImageOptim](https://imageoptim.com/mac)

画像ファイルのファイルサイズを削減するアプリケーションです。lossy minification の設定を有効にしてファイルをドラッグ&ドロップすると、画像ファイルを指定した品質に基づいて圧縮します。また、同時に不要なメタデータなども取り除きます。ImageOptimで画像サイズを減らしておくことで、Webサイトのパフォーマンスを向上させるこtができるでしょう。(アプリケーションはMacのみ対応しているようです)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/12152/bd731a1a-b9dc-05df-3d15-929df00f69ec.png)