3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

draw.io 自作の図形にスタイルを設定する方法

Last updated at Posted at 2024-03-21

draw.ioを使っていると、良い図形がなくて困るときがあります。
そんなときはお絵かきソフトで自作して、インポートして使ってらっしゃらる方も多いと思います。

でも、図形はそのままで色だけ変えたいときってありますよね?
色を変えて作図すればよいのですが、面倒です・・・:sweat:

image.png
※公開鍵(のつもり):sweat_smile:

draw.ioにはスタイルを設定できる図形があるので、
自作図形もこのようにできないかなと思って色々調べてみました。

image.png
※draw.ioによるスタイル設定


大まかな手順は以下のとおりです。

1.自作SVGをテキストエディタで開き、styleタグを埋め込む

自作SVGのpathタグの前に挿入
<!-- 略 -->
<style type="text/css">
.st0{fill:#a2a2a2;}
.st1{fill:#8e8e8e;}
.st2{fill:#ffffff;stroke:#ffffff;}
</style>
<path>
<!-- 略 -->

2. 自作SVGのfill、stroke属性を削除しclass属性を与える

属性の削除と追加

(略)
id=”path14”
class=”st2”  ←クラスst2のスタイルを指定する場合
style=”….(略);fill:#ffcc00;stroke:none; ….(略)

3. draw.ioにインポートし、設定を加える

スタイルタブ→編集プルダウン→フォーマットを編集

shape=image;のあとに埋め込み
shape=image;editableCssRules=.*;

以下の記事を参考にしています


ここからは、詳しく説明していきます。

1. 作図してSVG形式でExport
2. SVGにstyleタグでCSSクラス定義を埋め込む
3. fillやstrokeの属性を削除する
4. draw.ioに図形をインポートする
5. 図形のフォーマットに属性を加える


1. 作図してSVG形式でExport

まず作図して、SVG形式でExportしましょう。
今回はInkscapeを使用しましたが、SVG形式を扱えるなら他のソフトでも大丈夫だと思います。

image.png

Export時は...

  • 「選択中のもののみエクスポート」にチェックを入れます
  • 「Plain SVG(*.svg)」を指定します

2. SVGにstyleタグでCSSクラス定義を埋め込む

  • Exportしたファイルをテキストエディタで開き、styleタグを埋め込みます。
自作SVGに埋め込む
<style type="text/css">
.st0{fill:#a2a2a2;}
.st1{fill:#8e8e8e;}
.st2{fill:#ffffff;stroke:#ffffff;}
</style>

3. fillやstrokeの属性を削除する

  • styleタグで定義したスタイルクラス(.st0や.st1、.st2のこと)を反映させたい場所を特定します。

  • 該当箇所のfill:#xxxxxxstroke:xxxxxxの属性を削除しましょう。

変更前
image.png

変更後:クラス属性を与え、fill属性を削除
image.png
※st0にはstroke属性のスタイルしていないので、stroke属性は削除していません。

  • この例ですと、id=path14が鍵のpath、id=tspan9-8が"公"という文字のpathに該当します。
  • fillやstroke属性が残っていると、この設定が優先され、スタイルが反映されません。

image.png
※左が変更前、右が変更後

4. draw.ioに図形をインポートする

ファイル次の場所からインポート

5. draw.ioでの設定

自作図形をインポートしたら、
スタイルタブ→編集プルダウン→フォーマットを編集
編集用のダイアログが表示されるので、以下の属性を追加して適用しましょう。

editableCssRules=.*;

image.png

image.png

shape=image;のあとに埋め込み
shape=image;editableCssRules=.*;

スタイルを変更できるようになった!

image.png

image.png

お疲れさまでした。:relaxed:

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?