Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SVG MANIAX
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Naoki Matsuda
January 23, 2016
Technology
130
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SVG MANIAX
Naoki Matsuda
January 23, 2016
More Decks by Naoki Matsuda
See All by Naoki Matsuda
管理画面の全体UXは利用時品質モデルで考える
readymadegogo
2
3.5k
インターフェースのユーザビリティ概論および調査手法について
readymadegogo
0
390
UIデザインのための行動・認知プロセス
readymadegogo
0
260
知っておくと得をする(かもしれない) SVGの基礎とviewBox
readymadegogo
1
180
XDはBeautiful SVGの夢を見るか
readymadegogo
4
1.5k
webフォントを120%活用するための基礎知識&最新動向
readymadegogo
7
3.7k
SVG is on your side @ MTDDC 2018
readymadegogo
6
2.1k
デザインフェーズにおけるワイヤーフレームとの付き合い方@WCAN201802
readymadegogo
5
500
ウェブデザインとセルフブランディング 2018
readymadegogo
2
310
Other Decks in Technology
See All in Technology
CSS2026:OWS研究会・招待講演「世界観を、実装する」
atsush1_sada
2
190
Refining Active Record
shugo
0
190
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
5
1.2k
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
200
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
350
dbt Semantic Layerで進めるenechainのデータ民主化
akizhou
1
210
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
170
企画を Software Factory-ready にする——開発が高速になったとき、PdMの仕事はどう変わったか
yachibit
1
130
sue445's proposals 2026
sue445
0
130
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
260
【データ横丁主催】AI エージェント時代のTranslytical Data Platform
shisyu_gaku
0
220
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
500
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
580
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.2k
Side Projects
sachag
456
43k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Transcript
SVG MANIAX Scalable Vector Graphics in AKITA দాथ 贃ך瑎8FC$SFBUPS.FFUVQ7PMչوٕثرغ؎أ㼎䘔պ
匟歊湫埠 $$0 8FC%FTJHOFS
47(⯋䎃
47(⯋䎃 ה鎉ְ竲ֽגծכװ䎃ְֻ穗麓
9~ 3.2~ 4~ 3~ 3.0~ 3.2~ ״ֲװֻ ⢪ִ橆㞮ך倯ָءؑ،ָرֻؕז iOS
47(琎噰涸ח⢪ְְ ׀儗⚅חⰅ
47(ךֽֿכ椚鍑׃הֽ
WJFX#PY
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200px" height="200px" viewBox="0 0 200 200" >
<circle cx="100" cy="100" r="100"/> </svg>
width="200px" height="160px" viewBox="0 0 200 160" ج४ͷxy࠲ඪ viewBoxͷ෯ viewBoxͷߴ͞
WJFX#PYך⦼ 䏟垥禸 邌爙؟؎ؤ WJFX#PY XJEUI IFJHIU width="200px" height="160px" viewBox="0 0
200 160" ͒
width="100px" height="100px" viewBox="0 0 200 200" <circle cx="100" cy="100" r="100"/>
QY QY ⰼך湫䖇כ 䏟垥 47(ך䏟垥 ـٓؐؠךQY = WJFX#PYך⦼הXJEUI IFJHIUך⦼כⴽ暟ד֮ QY =
WJFX#PYך䭷㹀ָזְ㜥さ QY QY ⰼך湫䖇כ 䏟垥 ⴱ劍䏟垥禸 QY = = 47(ך䏟垥
鋵銲稆ך؟؎ؤ width="100px" height="100px" viewBox="0 0 200 200" <circle cx="100" cy="100" r="100"/>
䏟垥ך؟؎ؤכծXJEUI IFJHIUח״ג㢌 խWJFX#PYח״ խ㢌䳔ׁ䏟垥 䏟垥ך⽃⡘ךֿה 䏟垥禸㢌䳔 ⵃ欽⽃⡘
ֿ椚鍑׃גֶֻֿהָ 47(ך邌爙דعوזְ؝خ WJFX#PY XJEUI IFJHIU QSFTFSWF"TQFDU3BUJP ͱɺͱ͖Ͳ͖
*MMVTUSBUPSד47(⥂㶷儗ծٖأهٝءـպ ثؑحؙׅהծTWH銲稆חXJEUIהIFJHIU㾩䚍ָ 䭷㹀ׁזְ 1PJOU
iOS 暴ח؝؎خה؝؎خךֶ⚅鑧ךח䗳⥜דׅ
iOS width="200px" height="160px" viewBox="0 0 200 160" ˖ $44ד䭷㹀ׅלծ㾩䚍ך⦼״⮚⯓ׁ ˖
*&דכչIFJHIUBVUPպָ⸬ַזְ ˖ "OESPJEתדչQSFTFSWF"TQFDU3BUJPպ䭁簭嫰桦ךغָؚ֮ ˖ זךדծٖأهٝءـ'MVJEחׅחכծJGSBNFךٖأهٝءـַהずׄ䩛岀 WJFX#PY䭷㹀֮կX IכչQYպ䭷㹀ָׅし
זחծ47(ךٖٝتؚٔٝכ *&װ&EHFָ剑笺뜧
㙵鴥倯
㣐ֹֻⴓֽג 珏겲
Dynamic Interactive Mode Animated Mode Secure Animated Mode Static Mode
Secure Static Mode SVGͷͯ͢ͷػೳΛ දࣔ ɾ ॲཧϞʔυ Ξχϝʔγϣϯ ॲཧϞʔυ Ξχϝʔγϣϯ ॲཧϞʔυ ੩ࢭըදࣔϞʔυ * আ͞ΕΔ༧ఆ ੩ࢭըදࣔϞʔυ ֎෦Ϧιʔεࢀর εΫϦϓτͷ࣮ߦ ΠϯλϥΫγϣϯॲཧ ʢΠϕϯτ ɾ ϦϯΫʣ SMILΞχϝʔγϣϯ HTML <img> HTML <object> <embed> <iframe> HTML5 inline SVG CSS background content HTML <img> CSS background content
ֿ椚鍑ְְ♳ד˘
47(⢪ְֻז 㣐طة
歗⫷ⰻחر٦ةה圓鸡ⰻ⺪דֹ 1
խխ歗⫷խד֮ծխխ俑剅խד֮ 47(כ
9.-俑剅ַծׅץגך㔳䕎כչ銲稆պ 俑㶵ر٦ةذؗأزظ٦سろ 歗⫷ך⚥ח،ؙإءؽٔذ؍然⥂דֹ
+1&(װ1/(ך➿剏ذؗأز alt="·͙Ζͷण࢘" longdesc="http:// example.com/desc1"
47(דכ銲稆׀החة؎زٕذؗأز縧ֽ <g> <title>͍͘Β</title> <desc>…</desc> </g> <g> <title>ւଽͱγϟϦ</title> <desc>…</desc> </g> <g>
<title>͓ࡼ</title> <desc>…</desc> </g> <title>͍͘Βͷ܉؋</title>
SPMFהBSJBMBCFMMFECZ鷄鎸ׅל أؙٔ٦ٝٔ٦ت٦㼎䘔דֹ <svg viewBox="0 0 100 100" role="img" aria-labelledby="title desc">
<title id="title">ϋϯόʔΨʔ</title> <desc id="desc">ϋϯόʔΨʔͷϑϥοτͳ ΠϥετΞΠίϯ</desc> … </svg>
͜Μͳάϥϑ"ݸʑͷཁૉ͝ͱ"ʹ ΞΫηγϒϧʹ͢Δ͜ͱ͕Ͱ͖Δ 0 30 60 90 120 150 ล ాத
ߴڮ ླ ࠤ౻ ⡟谏 挿 ꈿ加 挿 넝堀 挿 歊⚥ 挿 床鴟 挿
DEMO
ֿזծ兛鸐כ铣♳־זַדֹזֲׁז ♧卐歗⫷תדָ،ؙإءـٕח
ػ٦خךٌآُ٦ٕ⻉ⱄⵃ欽䚍 2
EFGT銲稆 TZNCPM銲稆 VTF銲稆 ٌآُ٦ٕ㹀纏 ٌآُ٦ٕ撑
47(ךׅ׀ְהֿ ずׄ47(俑剅ⰻծ׃ֻכ㢩鿇ך47(俑剅ⰻך ⦐ղך㔳䕎וֿדדⱄⵃ欽דֹ HTML5 ͷ Web Components Λઌߦ࣮͍ͯ͠ΔΑ͏ͳͷ͔ͳʁ
銲稆ךⱄⵃ欽 <symbol id="s"> <path d="..."/> </symbol> <use xlink:href="#s" x="20" y="10"
fill="#fc0"/> TZNCPM銲稆荈⡤כ㹋⡤ךזְ㔳䕎 VTF銲稆דⱄⵃ欽׃גⴱג邌爙דֹ 1PJOU TZNCPMך㜥さծ鋵47(銲稆הכⴽך杝甧׃WJFX#PY 䭯גךדծⱄⵃ欽׃ꥷך؟؎ؤ㢌刿〳腉
<symbol id="tw"> <path d="M64,6.2c-1.1,0.6-4.3,1.8-7.3,2.1c1.9-1,4.8-4 .5,5.5-7.2c-1.9,1.2-6.1,2.9-8.2,2.9v0C51.5,1.6, 48.2,0,44.4,0 c-7.3,0-13.2,5.9-13.2,13.2c0,1,0.1,2,0.3,2.9h0c -9.9-0.3-20.7-5.2-27.2-13.7c-4,6.9-0.5,14.6,4,1 7.4c-1.6,0.1-4.4-0.2-5.8-1.5 C2.5,23,4.7,29.1,12.7,31.3c-1.6,0.8-4.3,0.6-5.5
,0.4c0.4,3.9,5.9,9,11.8,9c-2.1,2.5-10.1,6.9-19, 5.5C6.1,49.9,13.2,52,20.7,52 c21.3,0,37.8-17.3,37-38.6c0,0,0,0,0-0.1c0-0.1,0 -0.1,0-0.2c0-0.1,0-0.1,0-0.2C59.5,11.7,62.1,9.3 ,64,6.2z"/> </symbol> <use xlink:href="#tw" x="20" y="0" fill="#319aec"/> <use xlink:href="#tw" x="40" y="0" fill="#319aec"/> <use xlink:href="#tw" x="60" y="0" fill="#319aec"/> <use xlink:href="#tw" x="80" y="0" fill="#319aec"/> ؝٦سꆀ眍秈דֹ
47(4QSJUFT JOEFYIUNM JDPOTTWH Send Mail 卐ך47(ך⚥ח֮㔳䕎ծ⦐ⴽחוֿחד邌爙דֹ 1PJOU <svg> <use xlink:href="icon.svg#train"/>
</svg>
DEMO
˖ WJFX#PY杝荈ח㹀纏דֹծ⽃杝דך䏟垥禸䭯א ˖ אתծVTF銲稆דⱄⵃ欽ׅꥷח؟؎ؤ㢌刿דֹ䏟垥禸㢌䳔 ˖ *MMVTUSBUPSךءٝنٕכTZNCPM銲稆ח㢌䳔ׁ ˖ 㔳䕎銲稆ؚٕ٦ؾؚٝ׃ג⽃חذٝفٖ٦ز⻉׃ך ˖ ⽃杝ך䏟垥禸כ䭯׆ծⱄⵃ欽儗ח؟؎ؤכ㢌刿דֹזְ
TZNCPM銲稆הEFGT銲稆ך麩ְ TZNCPM銲稆 EFGT銲稆
ֻׁה،صً٦ءّٝ 2
47(ך،صً٦ءّٝכ 㣐ֹֻⴓֽג珏겲 4.*-،صً٦ءّٝ $44،صً٦ءّٝ 47(%0.،صً٦ءّٝ
4.*-،صً٦ءّٝ 㼛勻涸ח䐖姺٥窟さ✮㹀זךד 䘌גְְדׅ $ISPNF⟃꣬דכծׅדחꬊ䱿㤺הזגְ 1PJOU
$44،صً٦ءّٝ $44ךBOJNBUJPO USBOTJUJPOדך ،صً٦ءָّٝ〳腉ָ˘ ׃ծ⹛ַׇךכ 47(ד⢪ִ$44فٗػذ؍חꣲ *&דכծ47(ך銲稆חUSBOTGPSNָתֻ⸬ַזְךד $44דכ㔳䕎獳⹛٥㢌䕎ׇֿׁהָדֹזְ 1PJOU 1PJOU
$44،صً٦ءّٝ אתծ$44ד䭷㹀דֹזְ㾩䚍⦼כ،صً♶〳腉 <circle cx="120" cy="120" r=“100" />
㔳䕎ך㣐ֹׁծ⡘縧ծػأ䕎朐זו䭷㹀ׅ 㾩䚍כծ$44דכ䭷㹀דֹזְ
IUUQXXXXPSH5347(QSPQJEYIUNM 47(ד⢪ִ$44فٗػذ؍♧鋮 1PJOU
$44،صً٦ءّٝ .FEJB2VFSJFTה PQBDJUZזַ穈さׇךכ0,
IUUQBTDJJKQFMFN
47(%0.،صً٦ءّٝ +BWB4DSJQUד47(ך%0.乼⡲׃ג ،صً٦ءׇׁّٝ 47(銲稆ך㾩䚍⦼剅ֹ䳔ִկ㹋颵涸חזדדֹ 1PJOU 47(%0.%0.-FWFMכ)5.-%0.%0.-FWFM הכⴽ暟זךדծK2VFSZדכ銲稆欰䧭זודֹזְ 1PJOU 㢩鿇ך47(ؿ؋؎ٕծJNH銲稆װ$44CBDLHSPVOEד 撑邌爙ׇׁ㜥さծ➬圫♳תֻ⹛ַזְ
1PJOU
47(%0.،صً٦ءّٝ var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); rect.setAttribute("x", "50"); rect.setAttribute("y", "50");
rect.setAttribute("width", "100"); rect.setAttribute("height", "100"); rect.setAttribute("fill", "red"); var rot = 0; setInterval(function(){ rect.setAttribute("transform", "rotate(" + rot + " 100 100)"); rot = rot + 1; }, 10); document.querySelector("svg").appendChild(rect);
47(%0.،صً٦ءّٝ 47(欽ך،صً٦ءّٝٓ؎ـٓٔ⢪ֲֶ IUUQTHSFFOTPDLDPN IUUQKVMJBODPNSFTFBSDIWFMPDJUZ IUUQTOBQTWHJP 넝堣腉ז窟さ،صً٦ءّٝٓ ؎ـٓٔկ 47(ך،صً٦ءّٝ欽鷿׀ה חفؚٓ؎ٝ㼪Ⰵ׃ג⢪欽ׅ կ׳הꨇ׃ְկ
K2VFSZךBOJNBUF✼䳔הזג ְ،صً٦ءّٝٓ؎ـٓٔկ 〳腉זꣲ$44⢪גֻ ךד،صً٦ءّٝך넝鸞⻉ָ 㔳կ 㸣Ⰻח47(㼔欽ךٓ؎ـٓٔկ 47(ך欰䧭װծ㢩鿇ך47(ؿ؋ ؎ٕ《鴥דⰻ鿇乼⡲ׅ ֿה〳腉կ K2VFSZٓ؎ؙח剅ֽկ 넝堣腉 ֶׅׅ
DEMO +
47(%0.،صً٦ءّٝ )5.-װ$BOWBTדך،صً٦ءّٝדכ ػ٦خ׀הח剅ֹ⳿ׅ䗳銲ָ֮ めんどい!
47(%0.،صً٦ءّٝ 47(זծⰋ⡤剅ֹ⳿׃䖓圓鸡 ךתת⥂䭯׃גְךדծػ٦خך䪔ְָ嚂
IUUQTHSFFOTPDLDPNUXFFONBY
IUUQDPEFQFOJPQQQQQFO&72C:R
ꆙֽ ⹛ַׇ 湡ֽ ⹛ַׇ 47(כ 卐窩ׁה剅ֹ⳿׃גծ ׳ֿה鿇ⴓ涸ח⹛ַׅךחぢְג
״ֻ֮颵㉏
鯪ֻׅ倯岀כ
ΞϯΧʔϙΠϯτͷ 1854 ϑΝΠϧ༰ྔ 66KB ΞϯΧʔϙΠϯτͷ 461 ϑΝΠϧ༰ྔ 29KB ،ٝؕ٦ه؎ٝز幾ׅ
ΞϐΞϥϯεͰɺԼ͔Β ʮઢˠઢˠృΓʯͷॱ൪ͱͨ͠ਤܗ 47( ʹอଘ͢Δͱɺࣗಈతʹׂ͞Εɺ ̏ͭͷಉਤܗ͕ॏͶΒΕΔ SFDU ཁૉ SFDU ཁૉ SFDU
ཁૉ ،ؾ،ٓٝأ㢳欽׃זְ
؝٦سך㼭侧挿⟃♴ך呞侧䫇ִ
47(0.(זוד剑黝⻉ׅ https://jakearchibald.github.io/svgomg/
MUFSכ䗳銲剑⡚ꣲח http://jorgeatgu.github.io/svg-filters/
*&װ"OESPJEזוד 嫰桦ָ期ג邌爙ׁ
None
iOS width="200px" height="160px" viewBox="0 0 200 160" WJFX#PY䭷㹀֮կX IכչQYպ䭷㹀ׅ
47(ךٖأهٝءـ⻉כ 鋵銲稆ךQBEEJOHUPQד TWHXSBQ TWH .svg-wrap > svg { display: block;
position: absolute; max-width: 100%; width: 100%; height: 100%; } .svg-wrap { position: relative; height:0; padding-top: 60%; } ֿך㜥さכծTWH銲稆ךXJEUI IFJHIUכ䭷㹀׃זְֿה 1PJOU
ؿؓ٦ٕغحؙכ
ؿؓ٦ٕغحָؙ䗳銲זךכծ⚺ח؝؎خ IE 8 Android 2
IE 8 Android 2 銲⟝ה׃גוֲ׃ג㼎䘔ׅץֹ儗כ չ47(⢪זְպ
⹈䓼ׅךחְְ؟؎زכ
IUUQTXXXESPQCPYDPNTZLI[TDNTWMUGPMMPXVQ@TWH@MJOLTNE EMQSFWJFXGPMMPXVQ@TWH@MJOLTNE
הְֲֿהד ת׆כ47(兛鸐ך歗⫷ה׃ג ⢪ג״ֲ
׆ַ׃ְֿה׃זֽל 47(כ׆ַ׃ֻזְ
匟歊湫埠 ָ֮הֲ׀ְׂת׃