FigmaでSVG書き出しが崩れる原因は?きれいに出力する対策を解説

[PR]

FigmaでデザインしたアイコンやイラストをSVGで書き出したとき、ブラウザで崩れて見えることはありませんか。テキストがズレる、グラデーションが消える、ストロークが変形するなどのトラブルは多くのデザイナーが経験します。本記事では、Figma SVG 書き出し 崩れるというキーワードに沿って、起こり得る原因を整理し、それぞれに対する実践的な対策を最新情報を交えて詳しく解説します。

目次

Figma SVG 書き出し 崩れるとなる主な原因の把握

SVG書き出し時の「崩れ」が起こる原因は多岐にわたります。まずは、何が見た目と出力の差を生み出しているのかを整理します。複雑なパス、ストローク位置の扱い、テキストやフォント、マスク/ブレンドモード、レイヤー構造などが主な要因です。意図しない崩れを防ぐには、それぞれの原因を理解することが重要です。

パスの複雑さとノードの数

SVGではベクトルパスが座標やノードで定義されています。ノードが多すぎたり曲線が複雑すぎると、レンダリング時にズレたり省略されたりすることがあります。特にSVGをウェブ/モバイルで表示する際、ブラウザやレンダリングエンジンの挙動によってアンチエイリアスの影響が出ることがあります。

また、フィルタやぼかしのエフェクト、画像をラスタライズした要素を混在させると、SVGとして完全なベクター要素ではなくなり、崩れの原因となります。これらの要素がSVG書き出し時に対応されず、代替手段として画像化されてしまうケースがあります。

ストローク位置(Inside/Outside/Center)の扱い

ストローク(線)の位置は、図形の境界線に対して内側か外側か中心かで見た目が異なります。FigmaではInsideやOutsideのストロークを指定できますが、SVG仕様ではストロークは中心(Center)に描画されるのが標準です。そのため、Inside/Outside指定をしていてもSVGに書き出すとCenter扱いに「簡略化」されることがあります。これが原因で線幅が想定とずれたり、デザインが崩れて見える場合があります。

テキストとフォントの問題

書き出されたSVGでテキストが正しく表示されないケースがあります。これはテキストがフォントとしてではなくアウトラインやグリフに変換されていたり、フォントが利用先環境で読み込まれない、またはフォント名がSVG内部で正しく参照されていないことが原因です。テキストが小さい場合や複雑なスタイルがかかっているときに、特に問題が顕著になります。

マスク/クリップ/ブレンドモードの影響

Figmaデザインで使用されるマスクやクリップ機能、さらにブレンドモード(乗算、オーバーレイなど)がSVG書き出し時に想定外の動きをすることがあります。例えば、マスクしたグループはSVGでopacity maskとして書き出され、特定の環境(モバイルブラウザ/アプリなど)でそれが正しく描画されないことがあります。また、ブレンドモードがサポート外の場合、Figmaがラスタライズ処理を入れてしまい、ベクター性が失われ崩れた見た目になります。

SVG書き出しで具体的に“崩れる”症状のパターン

次に、「崩れる」と感じる具体的なパターンを把握します。症状によって対策のアプローチが異なりますので、まずはこの段階でどのような崩れが起きているかを特定することが重要です。

ストロークが細すぎたり途切れたりする

細いストロークが非常に複雑なパスに沿って描かれている場合、SVGで書き出すとブラウザの描画精度やアンチエイリアスの影響で線が途切れたり弱く見えたりすることがあります。また、Inside/Outside指定が無視されCenter扱いになるため、位置がずれたり重なりが生じたりします。

テキストがアウトライン化されて編集不能になる/見た目が変わる

テキストをアウトライン化(パス化)すると、どの環境でも見た目が保たれますが、テキストのクリアさや可読性が損なわれることがあります。反対にアウトラインしないと、フォントが存在しない環境で代替フォントが使われてしまい、意図しないデザイン崩れが起きます。

マスクやクリップで切り抜いたはずが表示されない/崩れる

マスクを使って切り抜き表現をしたグループが、SVGエクスポート後に意図しない形で切り抜きが失われたり、透明領域がおかしくなったりすることがあります。モバイル環境ではopacity maskがサポートされていない場合があるため、クリップパスを使うか形状をブーリアン操作で整える必要があります。

グラデーションや特殊な塗りが消える・変色する

グラデーション、パターン塗り、特殊なフィルタなどはSVG出力時に環境、設定、書き出し時の選択項目によって削除されたり単純化されたりします。例えばグラデーションのID名にコロンが含まれると外部参照で壊れることが報告されています。こうした特殊要素の扱いを確認することが重要です。

きれいにSVGを書き出すための具体的な対策と設定

崩れる症状を知ったうえで、実践できる対策を以下に示します。デザインの品質を維持しつつSVGを書き出すために使える最新の設定や手順を含めています。

ストロークはCenterに統一する

デザイン段階でストローク位置をCenterにするか、Inside/Outsideを避けて使うのが望ましいです。SVGはCenterストロークのみ正式にサポートしており、Inside/Outsideは簡略化されSurface(外側)または内部へ拡大して描画されるため、見た目が変わる原因となります。Figmaのストローク設定メニューでPositionをCenterにして統一しましょう。

テキストはOutline TextやOutline Strokeを使い分ける

テキストが環境によって異なる見た目になることを防ぐには、アウトライン化が有効です。Exportパネルの「Outline Text」オプションを使うか、テキストを選択して手動でアウトライン化(またはStrokeのアウトライン化)します。ただし編集性を失うことがあるため、可読性や将来的な修正を考慮しながら使い分けることが大切です。

マスクやクリップ、ブレンドモードを積極的に整理する

マスク機能を多用すると、SVGでopacity maskとして書き出されることがあり、モバイルブラウザ・アプリでの互換性に問題が出ることがあります。また、ブレンドモードがSVG仕様で非対応な場合、ラスタライズされてしまいます。これらを避けるために、切り抜きにはクリップパスやブーリアン演算を使い、デザインに影響が少ないブレンドモードを選定することが重要です。

不要なレイヤー・エフェクトを削除しフラットにする

隠れているレイヤー、オーバーレイ、複数のエフェクト(ドロップシャドウ、ぼかしなど)が重なっていると、SVG出力時に予期せぬ崩れを引き起こします。書き出す前にデザインを整理し、複雑な部分はフラット化(Flatten)やベクターパスに変換することで安定した出力が得られます。

エクスポート設定を正しくチェックする

Export設定パネル内のオプションは崩れ防止に直結します。以下は特に注意すべき項目です。

  • Outline Text:テキストをパス化するかどうか
  • Simplify Stroke:Inside/OutsideのストロークをCenter扱いに簡略化する
  • Include “id” attribute:ID属性の有無がブラウザでの解釈に影響すること
  • Ignore Overlapping Layers:不要な重なりを除外するか
  • Color Profile:sRGB等、表示先環境に近いものを選ぶ

これらを調整することで、SVGが他の環境で「見た目崩れ」を起こす確率を大幅に下げられます。

環境別の注意点と応用例

SVGを書き出したあと、使用環境によって崩れるかどうかが左右されることが多いです。ここではブラウザ・モバイルアプリ・React/Flutterなどでの応用例と注意点を整理します。

ウェブブラウザでの表示崩れ

ブラウザによってSVG描画のサポートレベルが異なります。特にiOSのSafariやWebKitベースのビューではopacity maskや特定のフィルタ、特殊なグラデーションが正しく処理されないことがあります。ID属性にコロンなど特殊文字が含まれると、Gradient参照が壊れることが報告されており、これらの命名規則に注意が必要です。

React/Flutterなどフレームワークで使うとき

ReactやFlutterなどでSVGを読み込む際、SVGの内部構造(defsタグ、グラデーション、パターン定義など)が正しく解釈されないことがあります。Flutterではパターンやbase64画像をdefs内で使うとレンダリングが乱れることがあり、defs要素を先に記述する、id属性を省く、画像を別ファイルとして分けるなどの対策が有効です。

モバイルアプリでの互換性

AndroidやiOSのアプリ開発では、SVG表示ライブラリがWebKit/Skiaなどの描画エンジンを使います。opacity mask やフィルタが使われているSVGはうまく描画されないことがあります。マスクをブーリアン演算に置き換える、クリップパスを使う、そしてできるだけ効果を減らすことが推奨されます。

Figmaで書き出す手順チェックリスト

崩れを防ぐための実践的なチェックリストです。デザイン完成後から書き出しまでの作業ステップとして活用してください。

  • 全レイヤーの位置・サイズが小数点ではなく整数値か確認する
  • ストローク位置をすべてCenterに統一する
  • テキストが必要ならOutline Text設定を有効に、必要ならテキストをパス化する
  • マスクやブレンドモードを可能な限り簡略化または代替表現に置き換える
  • 不要なレイヤー・重なり・見えない要素を削除する
  • Export設定を次のようにチェックする:
  • 書き出したSVGを使う最終環境でテストする(ブラウザ、アプリなど)
  • 最新のアップデートやバグ情報とその対策

    Figma自体やユーザーコミュニティから報告されている最新の不具合や改善点も押さえておくことで、予期しないトラブルに備えられます。

    小数点位置によるサイズ/座標のずれ

    オブジェクトのサイズや位置が小数点(sub pixel 値)になると、SVGの書き出し時に余計なピクセルが付与されたり、サイズが想定外に変動したりするケースがあります。最新では、クイックアクションから Round to Pixel 機能を使ってこれらを整数値に丸める機能が提供されており、これを使うことでズレを防止できます。

    ストロークの位置Inside/Outsideを扱うバグ

    Inside/Outside ストロークを適用した図形が、SVG書き出し後に抜けや重なりが発生するという報告があります。出力に Simplify Stroke が適用される設定では、これらを Center ストロークに変換するプロセスが自動で入ります。見た目を完全に保ちたい場合は、デザイン段階で Center に統一するのが確実です。

    グラデーションのID命名による参照エラー

    最近の報告では、SVG内部でグラデーションの参照IDにコロンや特殊文字が含まれることで、外部から読み込んだときやブラウザでの参照時にレンダリングが壊れるケースがあります。これを避けるため、IDを含める設定を利用するときは命名規則をシンプルにし、場合によってはIDを省略する方が安全なことがあります。

    まとめ

    FigmaでSVGを書き出したときに崩れる原因は、ストローク位置、テキストの扱い、マスク/クリップ/ブレンドモード、レイヤー構造、小数表記など多くあります。これらを理解したうえで、デザインの整理→Export設定の最適化→環境でのテストという流れで対策を講じると、大幅に品質を向上できます。

    本文で紹介したチェックリストや最新のアップデート機能を取り入れれば、SVG書き出しの「崩れ」に悩むことは減るはずです。Figma SVG 書き出し 崩れるという問題には原因と対策がはっきりありますので、一つひとつ潰してきれいに出力できるよう心がけてください。

    関連記事

    特集記事

    コメント

    この記事へのトラックバックはありません。

    最近の記事
    1. Figmaで日本語フォントが反映されないのはなぜ?原因と対処をやさしく解説

    2. 文字化けした漢字をコピペで直すには?原因別の対処法を解説

    3. ColorSupply(カラーサプライ)の使い方は?配色作成が楽になる活用法

    4. グラボのRTXとGTXの違いは?選ぶ前に知りたい性能差を解説

    5. イベント委譲とは何かと使い方を解説!JavaScriptをすっきり書く基本

    6. Photoshop(フォトショ)で写真をイラスト風加工!雰囲気を変えるコツ

    7. CheckMyLinksの使い方を解説!リンク切れ確認を効率化する方法

    8. ブロックエディタで困ることは何?つまずきやすい点と対処を紹介

    9. ドミナントカラー配色とは?印象を統一する色選びの考え方を解説

    10. WordPressテーマに子テーマは必要?作るべきケースを解説

    11. 方眼Diffの使い方と安全性は?Excel比較前に知りたい基本を解説

    12. 無限スクロールの仕組みを簡単に解説!実装前に知るべき注意点

    13. SSL証明書の更新が失敗する原因は?復旧までの確認手順を解説

    14. Illustrator(イラレ)で和風の雲の作り方!装飾に映える描き方を解説

    15. サイト構造のsiloとは何か?SEOで意識したい設計の考え方を解説

    16. バナートレースを初心者が練習するやり方は?学びが深まるコツを解説

    17. デザイントレースのやり方は?初心者でも上達しやすい練習法を紹介

    18. TypeScriptの型推論の使い方は?型注釈との違いも含めて解説

    19. AIでエラー原因を特定する手順は?調査を早める進め方を解説

    20. 手書き文字をおしゃれにするひらがなの書き方は?雰囲気作りのコツ

    アーカイブ
    TOP
    設定項目 推奨設定/ポイント
    ストローク簡略化(Simplify Stroke) 有効化してCenterストロークに変換する
    Outline Text 必要に応じてオン、編集性を考慮
    Include ID属性 シンプルな命名にして特殊文字を避ける
    Color Profile sRGBなど表示先に適したものを選ぶ