はじめに
Vueでサイトを作っていると、「もう少しインパクトが欲しいな」と思うことがあります。
個人的には、Reactで使えるアニメーションライブラリがVueにないことにモヤモヤしていました。特に React Bits という3万スター超えのライブラリを見て「Vueでも同じようなの欲しいな」と思っていたんですよ。
そんな中で見つけたのが Vue Bits です。これ、React Bitsの公式Vue移植版なんですよね。同じDavid Haz氏がメンテナンスしていて、すでにGitHubスターが3,300を超えています。
Vue Bitsとは
Vue Bitsは、アニメーション付きのVueコンポーネントを90以上収録したオープンソースのライブラリです。MIT + Commons Clauseライセンスで提供されていて、毎週新しいコンポーネントが追加されています。
公式サイト: https://vue-bits.dev
コンポーネントは大きく4つのカテゴリに分かれています。
- テキストアニメーション: タイピングエフェクト、グリッチ効果、スプリットテキストなど
- アニメーション: フェードイン、スライド、パララックスなど
- コンポーネント: インタラクティブなUIパーツ
- 背景: パーティクル、グラデーション、幾何学模様など
特徴・メリット
React Bitsとの互換性
React Bitsで気に入ったコンポーネントがあれば、Vue Bitsでもほぼ同じものが使えます。プロジェクトによってReactとVueを使い分けている人には、これが地味に嬉しいポイントです。
最小限の依存関係
重たいライブラリを入れるとバンドルサイズが膨らんで困ることがあります。Vue Bitsは最小限の依存関係で設計されていて、モダンなVue/Nuxtプロジェクトにシームレスに統合できます。
高いカスタマイズ性
propsを通じてかなり細かくカスタマイズできます。ソースコード自体もコピーして使う形式なので、必要に応じて自分で改造することも可能です。
毎週アップデート
これ、意外と重要なんですよね。90以上のコンポーネントが収録されていますが、毎週新しいコンポーネントが追加されています。コミュニティも活発で、コントリビューターは20人以上います。
インストール方法
Vue Bitsは jsrepo というCLIツールを使ってインストールします。npmから直接入れる形式ではないのがちょっと独特ですね。
jsrepoを使ったインストール
まず、jsrepoをインストールします。
npm install -g jsrepo
次に、使いたいコンポーネントを追加します。
npx jsrepo add github/DavidHDev/vue-bits/TextAnimations/SplitText
コンポーネントごとにコマンドを実行する形式です。使いたいものだけ入れられるので、バンドルサイズを抑えられます。
詳細なセットアップ手順は、各コンポーネントのドキュメントページに記載されています。
基本的な使い方
インストールしたコンポーネントは、通常のVueコンポーネントとして使えます。
テキストアニメーションの例
<template>
<div class="hero-section">
<SplitText
text="Welcome to my portfolio"
:delay="50"
:animation-from="{ opacity: 0, y: 40 }"
:animation-to="{ opacity: 1, y: 0 }"
/>
</div>
</template>
<script setup lang="ts">
import SplitText from '@/components/ui/SplitText.vue';
</script>
背景エフェクトの例
<template>
<div class="relative min-h-screen">
<Particles
class="absolute inset-0"
:quantity="100"
color="#ffffff"
/>
<div class="relative z-10">
<!-- コンテンツ -->
</div>
</div>
</template>
<script setup lang="ts">
import Particles from '@/components/ui/Particles.vue';
</script>
propsで細かく調整できるので、サイトのトンマナに合わせやすいです。
実践的なユースケース
ポートフォリオサイト
個人的には、ポートフォリオサイトとの相性が抜群だと思います。ヒーローセクションにテキストアニメーション、背景にパーティクルエフェクトを入れるだけで、かなり見栄えが良くなります。
Vueで個人サイトを作っている人には、まさにうってつけのライブラリですね。
ランディングページ
LPでユーザーの目を引きたいセクションに使うのも効果的です。ただし、やりすぎると逆効果なので、ポイントを絞って使うのがコツですね。
Nuxtプロジェクト
Vue Bitsは最新のVue/Nuxtプロジェクトに対応しています。Nuxt 3でSSGやSSRを使っている場合も、適切に動作します。
注意点
いくつか気になる点もあります。
- ライセンス: MIT + Commons Clauseなので、商用利用する場合は条項を確認しておいたほうがいいです
- SSR対応: Nuxtで使う場合、一部のコンポーネントはクライアントサイドでのみ動作するものがあります
- パフォーマンス: 背景エフェクト系は処理が重いものもあるので、モバイルでの動作確認は必須です
- まだ若いプロジェクト: React Bitsと比べるとまだ5ヶ月程度の歴史なので、コンポーネント数はこれから増えていく段階です
まとめ
Vue Bitsは、手軽にリッチなアニメーションを導入できる便利なライブラリです。
- 90以上のコンポーネントを収録(毎週追加)
- React Bitsの公式Vue移植版
- 最小限の依存関係
- jsrepoで簡単インストール
- Nuxtにも対応
30代になって思うのは、「良いものは技術スタックを超えて広まる」という話なんですよね。React Bitsの成功を見て、Vue版を望む声は多かったはずです。それが公式で提供されているのは素直に嬉しいです。
VueやNuxtでポートフォリオやLPを作る機会があれば、ぜひ試してみてください。
参考リンク