Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
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
120
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.4k
インターフェースのユーザビリティ概論および調査手法について
readymadegogo
0
370
UIデザインのための行動・認知プロセス
readymadegogo
0
240
知っておくと得をする(かもしれない) SVGの基礎とviewBox
readymadegogo
1
170
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
490
ウェブデザインとセルフブランディング 2018
readymadegogo
2
300
Other Decks in Technology
See All in Technology
Microsoft Build Keynoteふりかえり
tomokusaba
0
120
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
140
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
2.2k
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
110
チームで進めるAI駆動アジャイル×ウォーターフォール
kumaiu
0
150
protovalidate-es を導入してみた
bengo4com
0
170
Building applications in the Gemini API family.
line_developers_tw
PRO
0
2.9k
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
30
24k
MCP Appsを作ってみよう
iwamot
PRO
4
490
新しいVibe Codingと”自走”について
watany
5
290
Djangoユーザが知っ得なPostgreSQL機能 - 設計の選択肢を増やす / Djang-use-PostgreSQL
soudai
PRO
1
230
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
19
6.4k
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How GitHub (no longer) Works
holman
316
150k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Chasing Engaging Ingredients in Design
codingconduct
0
220
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Tell your own story through comics
letsgokoyo
1
950
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
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(כ׆ַ׃ֻזְ
匟歊湫埠 ָ֮הֲ׀ְׂת׃