自作SVGマニュアル
SVGのデザイン方針
- simple line iconに似せる。
- 色は#FFFFFFで作成(実装の時はあまり関係ないけど)
SVGの書き出し
- イラレの書き出し機能にバグがあるようなので、XDにコピペで持ってきてから書き出し
- ファイルサイズを最適化(最小化)にチェック
- 画像が小さいので、vscodeでsvgを開き、
width,height
を消すと確認しやすい。
コンポーネント化手順
svgファイル内の記述を整理
- svgファイルをvscodeで開く
- ドラッグ&ドロップでも、アプリ指定で開くでも、なんでもOK
- イラレ作業用の記述を削除
- 不要なタグ、
<g>
, <style>
を消す
<path>
,<rect>
内のclassを消す
- SVGデータ内のクラスは基本的にイラレ作業用のものなので、ぜんぶ消しちゃってOK
- 透明な箱(当たり判定)を設定する
- SVGタグ直下くらいに
<rect width="XX" height="YY"/>
という感じの簡素な正方形パスがあるので、これにfillOpacity="0"
を追加
- この透明な正方形は、SVGの見た目を整えるために必要
<path>
タグ内、長い記述を折り返す
- パスの文字列が長いとエラーが出るので、適当な場所で改行
- 改行位置が悪いと表示がぶっ壊れるので注意
jsxでコンポーネント化
growi/src/client/js/components/icons
にjsxファイルを作成し、reactの定形文↓をコピペ
import React from 'react';
const ~~~~Icon = () => (
//ここにsvg貼る
);
export default ~~~~Icon;
svgの内容をコピペ
//ここにsvg貼る
の部分にコピペ
- 何事もなければこれで完成
実装時の方針
- 個別ファイルでコンポーネント化、必要に応じて呼び出し。
- 例外:使用箇所が限定的な場合、1ファイルにまとめてコンポーネント化(Edit nav のアイコンなど)
import React from 'react';
const ~~~~Icon = () => (
//ここにsvg貼る
<svg
xmlns="http://www.w3.org/2000/svg"
width="xx"
height="yy"
viewBox="0 0 XX YY"
>
<rect width="XX" height="YY" fillOpacity="0" />
<path d="~~~~~~~~~" />
<path d="~~~~~~~~~" />
<path d="~~~~~~~~~" />
</svg>
//ここまでsvgのコピペ
);
export default ~~~~Icon;
データ保管
SVG命名規則
作業データ保管場所
特記事項
favicon
- 概要
- いろんなブラウザ、環境で正しく表示されるように、データがたくさんあります。
readmeに従って貼り付けてください。
- 元データ(svg)はGit(Design系LFS) .../designs/faviconに入ってます。
使用サービス
- faviconの作成 external_link
Commments