🍇

[Webアプリ] 大文字 / 小文字変換ツールを作りました

2024/01/27に公開

アルファベットを大文字や小文字にワンクリックで変換できるWebアプリを作りました 🚀

大文字 / 小文字変換ツール「Case Converter」について

ツールの利用はこちらから。Webアプリなのでダウンロードなしですぐに利用できます。
https://caseconverter.chocolat5.com/

GitHubでソースコードも公開しています。
https://github.com/chocolat5/free-case-converter

変換の例

オプション 変換後
UPPER THIS IS AN EXAMPLE
lower this is an example
Capitalize This Is An Example

アプリ作成にあたって

アルファベットを大文字や小文字に変換したいとき、Mac標準のスティッキーズというアプリを利用していましたが、スティッキーズにペースト => テキストを選択 => 編集 => 変換 => 大文字/小文字にする という流れがやや手間に感じることがあるため簡素化するためにWebアプリとして作成しました。

1. ミニマル・ミニマムに

自分が何か変換をしたいとき大抵は短い単語であることが多いことと、Notionにも埋め込んでウィジェットとして利用できることを想定してあまりスペースを取らない大きさにしました。

2. シンプルなデザイン

上述の通りNotionでの埋め込みを想定していたので、モノクロでシンプルな見た目にしました。

3. 広告なし

これもNotionでの埋め込みのことがあったため、当初から広告はなしと決めていました。

技術スタック

開発時の基本セットとして利用しているもの

  • React
  • TypeScript
  • Vite: ビルドツール
  • ESLint: lintツール
  • Prettier: コードのフォーマット
  • normalize.css: スタイルのリセット

今回のWebアプリ用に利用したもの

  • copy-to-clipboard: 変換したテキストをクリップボードにコピーする
  • iconic: ツールチップのアイコン

実装

大文字 / 小文字への変換

JavaScriptのメソッドで実行できます。

const str: string = "sample";
str.toUpperCase(); // => SAMPLE

const str: string = "SAMPLE";
str.toLowerCase(); // => sample

先頭の文字だけ大文字にする変換

3つの処理をそれぞれ以下のメソッドを使用して実行します。

  1. テキストを単語区切りに配列に変換 split()
const str = "sample text";
const arr = str.split(" "); // => ['sample', 'text']
  1. それぞれの1文字目を大文字に変換 charAt(index) slice(index)
const str = "sample";
const firstLetter = str.charAt(0).toUpperCase(); // => S
const rest = str.slice(1) // => ample
  1. 文章の形に戻す join()
const arr = ["Sample", "Text"];
const converted = arr.join(" "); // => "Sample Text"

Clipboard API

クリップボードへのコピーに Clipboard API を使用したかったのですが、Clipboard APIを使用する場合必ず最初にユーザーがアクセス許可を与えることが必要です。
Notionで埋め込んで利用する場合、全てiframeとして扱われます。このことがアクセス許可の部分でネックとなりクリップボードへのコピーの実装はパッケージを使用することにしました。

https://developer.mozilla.org/ja/docs/Web/API/Clipboard_API

最後に

最後までお読みいただきありがとうございました 🙌

フィードバックやバグのご報告などはGitHubかTwitterアカウントまでお願いいたします 🙏
https://twitter.com/fyurie_

https://github.com/chocolat5/free-case-converter

Discussion