SVG勉強会大阪 vol.1
2017.8.30
Kozaru
名前 こざる(小寺 順子)
所属 こざる舎(フリーランス)
仕事 マークアップエンジニア
趣味 ビール、オイスター、絵本、電子工作系手芸
ほか CoderDojoメンター、concrete5 Kansai Girls 運営
DojoCon Japan 2017 実行委員
難易度:★☆☆☆☆(簡単・初心者向け)
SVGを使ったことがない方、知っているけどお仕事で使うのを悩んでいる方向けに
マークアップ作業目線からのお話をします
Scalable Vector Graphicsの略。
XMLをベースにしたベクトルグラフィックスの記述言語です。
ベクターデータなので、解像度の高いモニターでもカピカピしないです!
XML(テキスト)で書かれた画像形式です。テキストエディタではXMLのコード、webブラウザでは画像で表示されます。
See the Pen svg sample01 by Kozaru (@kozaru) on CodePen.
XML文書は、始めにXML宣言を記述することが推奨されるが、以下の条件を満たして入れば、省略可能
XML文書のツリー構造で最上位の要素
SVG固有のタグが使えるようになる
HTML5のSVG要素(インライン要素)として扱う場合には省略可能
xmlns="http://www.w3.org/2000/svg"
href属性を使う場合は、下記の名前空間宣言が必要
SVG2.0では省略可能
xmlns:xlink="http://www.w3.org/1999/xlink"
See the Pen svg sample01 by Kozaru (@kozaru) on CodePen.
See the Pen svg sample01 by Kozaru (@kozaru) on CodePen.
path: パス、rect: 四角形、circle: 円 など。
See the Pen svg sample01 by Kozaru (@kozaru) on CodePen.
省略可能な部分をとると、すっきり!
See the Pen svg sample01 by Kozaru (@kozaru) on CodePen.
インライン
img要素
背景画像
HTML内にSVGのコードを記載
img要素のsrcで
SVGファイルを読み込む
background-imageで
SVGファイルを読み込む
インライン:<svg>...省略...</svg>を直接HTMLに書き込みます。
SVGファイル:SVGのコードが書かれた、.svgの拡張子を持つファイルです
インライン
img要素
背景画像
インライン
img要素
背景画像
SVGの親要素にcssを設定
img要素にcssを設定
background-sizeを設定
インライン
img要素
背景画像
SVGの親要素にcssを設定
img要素にcssを設定
background-sizeを設定
SVG要素のwidth/heightを変更
SVG要素にcssを設定
右はSVGタグにwidth/height属性なし
SVG属性に、width/heightをつけると解決します
SVG要素には
を設定しておくとよいでしょう。
書き出し方法がいろいろあります
DEMO
どんな書き出し方法があるか確認
書出方法ごとにSVGのコードが変わります
See the Pen svg sample01 by Kozaru (@kozaru) on CodePen.
どれがオススメなんだろう...
スクリーン用に書き出し+プレゼンテーション属性の設定が、コードが軽くなる場合が多いです。
スクリーン用に書き出し + プレゼンテーション属性
でばっちり!!!
のはずなんですが
いただくカンプが
最新Illustratorじゃない
多分大丈夫
デザイナーさんと
環境やバージョンが違う
ほぼ大丈夫
SVGデータを支給
書き出し形式を選べない
...
ジップロックよりすごいツールがあります!
ブラウザから SVGファイルを最適化できるツール
See the Pen svg sample01 by Kozaru (@kozaru) on CodePen.
書き出し後、最適化するとなおよいですね!
書き出し時に、SVGファイルを最適化してくれるプラグインがあります!
DEMO
プラグインインストール後のSketchからコードを書出
Export:widthとheightが入らず
Copy SVG code:SVGO Compressor が効かず
See the Pen Sketchからの書出 by Kozaru (@kozaru) on CodePen.
Export した SVG に width/height 属性を追加
Copy SVG codeを、SVGOMGで最適化
See the Pen Sketchからの書出(解決) by Kozaru (@kozaru) on CodePen.
Sketchのデフォルト:evenodd(白抜き)
SVGのデフォルト:nonzero(全面を塗る)
DEMO
nonzero(全面を塗る)で書き出すためには設定変更が必要
See the Pen Sketchからの書出(fill-rule) by Kozaru (@kozaru) on CodePen.
See the Pen Illustratorからの書出(塗り) by Kozaru (@kozaru) on CodePen.
同じ星なのに、コードは別物ですね。びっくり。
DEMO
Sketch Symbolのoverride機能
便利なんですが、SVG書き出し時には注意が必要です
width/height属性をいれましょう
See the Pen Sketchからの書出(symbol/export) by Kozaru (@kozaru) on CodePen.
SVGOMGで最適化するとマスク部分の表示がおかしくなる場合があります
See the Pen Sketchからの書出(symbol/copy) by Kozaru (@kozaru) on CodePen.
ZeplinはアップロードしたSketchの
アートボードからSVGなどが書き出せるツールです
DEMO
ZeplinからのSVGの書き出し
SVGOで最適化されたSVGコードが書き出されます!
See the Pen Sketchからの書出(symbol/zeplin) by Kozaru (@kozaru) on CodePen.
SketchからZeplinにアップロードする前に
Make Exportableを設定しましょう
SVG使ってみましょう!
今日紹介したツールや内容
き、緊張しました!