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
TIL about masks
Search
Gunnar Bittersmann
August 03, 2020
Programming
110
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TIL about masks
Lightning talk about masking in SVG
Gunnar Bittersmann
August 03, 2020
More Decks by Gunnar Bittersmann
See All by Gunnar Bittersmann
Responsive typography 2
gunnarbittersmann
0
180
Go home, Prettifier, you’re drunk!!
gunnarbittersmann
0
130
3 Fehler sind zu finden
gunnarbittersmann
0
200
TIL that the future :has already begun
gunnarbittersmann
0
130
TIL how to clear floats
gunnarbittersmann
0
140
TIL about showModal (from small things big things one day come)
gunnarbittersmann
0
140
Inclusive Design 24 2022 – Gunnar’s picks
gunnarbittersmann
0
110
The color rebeccapurple
gunnarbittersmann
0
200
Mehrsprachige Websites
gunnarbittersmann
0
120
Other Decks in Programming
See All in Programming
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
780
はてなアカウント基盤 State of the Union
cockscomb
1
1.2k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
240
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
260
Creating Composable Callables in Contemporary C++
rollbear
0
180
どこまでゆるくて許されるのか
tk3fftk
0
300
Oxcを導入して開発体験が向上した話
yug1224
4
370
Oxlintのカスタムルールの現況
syumai
6
1.2k
Performance Engineering for Everyone
elenatanasoiu
0
250
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.7k
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
Vite+ Unified Toolchain for the Web
naokihaba
0
410
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Writing Fast Ruby
sferik
630
63k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Automating Front-end Workflow
addyosmani
1370
210k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
180
How to build a perfect <img>
jonoalderson
1
5.8k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
630
Transcript
Photo by Flavio Gasperini on Unsplash TIL about masks
None
None
None
None
<svg xmlns="http:!"!!#.w3.org/2000/svg" xmlns:xlink="http:!" !!#.w3.org/1999/xlink" viewBox="0 0 3000 630"> <defs> <symbol
id="j" viewBox="0 0 364 387"> <path d="M362 386v-23h-18c-11-3-17-13-24-30-11-24-81-261-84-267-3-7-5-16-5-2 4 0-4 3-11 8-16 6-4 6-6 2-17-2-6-7-10-9-9l-83 35c-2 1-7 5-5 9 3 4 4 17 4 28 0 16-43 127-45 132L44 347c-5 12-10 16-16 16H0v24h119v-24H88c-3-3-7-5-7-15 0-5 3-17 5-24l24-67h96l32 93c2 8-3 13-6 13h-32v23h162zM192 233l-78 1 42-117 36 116z" !$ !%symbol> <symbol id="i" viewBox="0 0 336 369"> <path d="M336 301c-2-2-14-37-14-37-2-6-6-6-11-5-7 2-7
32h-34v16l79 132h72l-24-3-77-132s27-5 38-22c9-12 13-26 13-41 0 0 2-57-13-73 1 0-8-9-20-12l-18-3H401l30
6v277l-23 3z" !$ <radialGradient id="d" cx="1232" cy="1042" r="21" gradientTransform="matrix(10 0 0 10 -10822 -10055)" gradientUnits="userSpaceOnUse"> <stop offset="0" stop-color="#fff" !$ <stop offset=".2" stop-color="#fff" !$ <stop offset=".5" stop-color="#dadada" !$ <stop offset=".8" stop-color="#b5b5b5" !$ !%radialGradient> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="url(#d)" stroke="#fff" stroke-width="20"!$ <clipPath id="e"> <ellipse cx="1510" cy="411" rx="200" ry="194" !$
32h-34v16l79 132h72l-24-3-77-132s27-5 38-22c9-12 13-26 13-41 0 0 2-57-13-73 1 0-8-9-20-12l-18-3H401l30
6v277l-23 3z" !$ <radialGradient id="d" cx="1232" cy="1042" r="21" gradientTransform="matrix(10 0 0 10 -10822 -10055)" gradientUnits="userSpaceOnUse"> <stop offset="0" stop-color="#fff" !$ <stop offset=".2" stop-color="#fff" !$ <stop offset=".5" stop-color="#dadada" !$ <stop offset=".8" stop-color="#b5b5b5" !$ !%radialGradient> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="url(#d)" stroke="#f5f4f4" stroke-width="20"!$ <clipPath id="e"> <ellipse cx="1510" cy="411" rx="200" ry="194" !$
32h-34v16l79 132h72l-24-3-77-132s27-5 38-22c9-12 13-26 13-41 0 0 2-57-13-73 1 0-8-9-20-12l-18-3H401l30
6v277l-23 3z" !$ <radialGradient id="d" cx="1232" cy="1042" r="21" gradientTransform="matrix(10 0 0 10 -10822 -10055)" gradientUnits="userSpaceOnUse"> <stop offset="0" stop-color="#fff" !$ <stop offset=".2" stop-color="#fff" !$ <stop offset=".5" stop-color="#dadada" !$ <stop offset=".8" stop-color="#b5b5b5" !$ !%radialGradient> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="url(#d)" stroke="var(!'background)" stroke-width="20"!$ <clipPath id="e"> <ellipse cx="1510" cy="411" rx="200" ry="194" !$
32h-34v16l79 132h72l-24-3-77-132s27-5 38-22c9-12 13-26 13-41 0 0 2-57-13-73 1 0-8-9-20-12l-18-3H401l30
6v277l-23 3z" !$ <radialGradient id="d" cx="1232" cy="1042" r="21" gradientTransform="matrix(10 0 0 10 -10822 -10055)" gradientUnits="userSpaceOnUse"> <stop offset="0" stop-color="#fff" !$ <stop offset=".2" stop-color="#fff" !$ <stop offset=".5" stop-color="#dadada" !$ <stop offset=".8" stop-color="#b5b5b5" !$ !%radialGradient> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="url(#d)" stroke="var(!'background, #fff)" stroke-width="20"!$ <clipPath id="e"> <ellipse cx="1510" cy="411" rx="200" ry="194" !$
32h-34v16l79 132h72l-24-3-77-132s27-5 38-22c9-12 13-26 13-41 0 0 2-57-13-73 1 0-8-9-20-12l-18-3H401l30
6v277l-23 3z" !$ <radialGradient id="d" cx="1232" cy="1042" r="21" gradientTransform="matrix(10 0 0 10 -10822 -10055)" gradientUnits="userSpaceOnUse"> <stop offset="0" stop-color="#fff" !$ <stop offset=".2" stop-color="#fff" !$ <stop offset=".5" stop-color="#dadada" !$ <stop offset=".8" stop-color="#b5b5b5" !$ !%radialGradient> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="url(#d)" style="stroke: var(!'background, #fff)" stroke-width="20"!$ <clipPath id="e"> <ellipse cx="1510" cy="411" rx="200" ry="194" !$
32h-34v16l79 132h72l-24-3-77-132s27-5 38-22c9-12 13-26 13-41 0 0 2-57-13-73 1 0-8-9-20-12l-18-3H401l30
6v277l-23 3z" !$ <radialGradient id="d" cx="1232" cy="1042" r="21" gradientTransform="matrix(10 0 0 10 -10822 -10055)" gradientUnits="userSpaceOnUse"> <stop offset="0" stop-color="#fff" !$ <stop offset=".2" stop-color="#fff" !$ <stop offset=".5" stop-color="#dadada" !$ <stop offset=".8" stop-color="#b5b5b5" !$ !%radialGradient> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="url(#d)" style="stroke: #fff; stroke: var(!'background, #fff)" stroke- width="20"!$ <clipPath id="e">
<svg xmlns="http:!"!!#.w3.org/2000/svg" xmlns:xlink="http:!" !!#.w3.org/1999/xlink" viewBox="0 0 3000 630"> <defs> <mask
id="x"> !%mask> <symbol id="j" viewBox="0 0 364 387"> <path d="M362 386v-23h-18c-11-3-17-13-24-30-11-24-81-261-84-267-3-7-5-16-5-2 4 0-4 3-11 8-16 6-4 6-6 2-17-2-6-7-10-9-9l-83 35c-2 1-7 5-5 9 3 4 4 17 4 28 0 16-43 127-45 132L44 347c-5 12-10 16-16 16H0v24h119v-24H88c-3-3-7-5-7-15 0-5 3-17 5-24l24-67h96l32 93c2 8-3 13-6 13h-32v23h162zM192 233l-78 1 42-117 36 116z" !$ !%symbol>
<svg xmlns="http:!"!!#.w3.org/2000/svg" xmlns:xlink="http:!" !!#.w3.org/1999/xlink" viewBox="0 0 3000 630"> <defs> <mask
id="x"> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="url(#d)" style="stroke: #fff; stroke: var(!'background, #fff)" stroke-width="20"!$ !%mask> <symbol id="j" viewBox="0 0 364 387"> <path d="M362 386v-23h-18c-11-3-17-13-24-30-11-24-81-261-84-267-3-7-5-16-5-2 4 0-4 3-11 8-16 6-4 6-6 2-17-2-6-7-10-9-9l-83 35c-2 1-7 5-5 9 3 4 4 17 4 28 0 16-43 127-45 132L44 347c-5 12-10 16-16
<svg xmlns="http:!"!!#.w3.org/2000/svg" xmlns:xlink="http:!" !!#.w3.org/1999/xlink" viewBox="0 0 3000 630"> <defs> <mask
id="x"> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="black" style="stroke: #fff; stroke: var(!'background, #fff)" stroke-width="20"!$ !%mask> <symbol id="j" viewBox="0 0 364 387"> <path d="M362 386v-23h-18c-11-3-17-13-24-30-11-24-81-261-84-267-3-7-5-16-5-2 4 0-4 3-11 8-16 6-4 6-6 2-17-2-6-7-10-9-9l-83 35c-2 1-7 5-5 9 3 4 4 17 4 28 0 16-43 127-45 132L44 347c-5 12-10 16-16
<svg xmlns="http:!"!!#.w3.org/2000/svg" xmlns:xlink="http:!" !!#.w3.org/1999/xlink" viewBox="0 0 3000 630"> <defs> <mask
id="x"> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="black" stroke="black" stroke-width="20"!$ !%mask> <symbol id="j" viewBox="0 0 364 387"> <path d="M362 386v-23h-18c-11-3-17-13-24-30-11-24-81-261-84-267-3-7-5-16-5-2 4 0-4 3-11 8-16 6-4 6-6 2-17-2-6-7-10-9-9l-83 35c-2 1-7 5-5 9 3 4 4 17 4 28 0 16-43 127-45 132L44 347c-5 12-10 16-16 16H0v24h119v-24H88c-3-3-7-5-7-15 0-5 3-17 5-24l24-67h96l32
<svg xmlns="http:!"!!#.w3.org/2000/svg" xmlns:xlink="http:!" !!#.w3.org/1999/xlink" viewBox="0 0 3000 630"> <defs> <mask
id="x"> <ellipse cx="1510" cy="411" rx="220" ry="214" fill="black" stroke="none"!$ !%mask> <symbol id="j" viewBox="0 0 364 387"> <path d="M362 386v-23h-18c-11-3-17-13-24-30-11-24-81-261-84-267-3-7-5-16-5-2 4 0-4 3-11 8-16 6-4 6-6 2-17-2-6-7-10-9-9l-83 35c-2 1-7 5-5 9 3 4 4 17 4 28 0 16-43 127-45 132L44 347c-5 12-10 16-16 16H0v24h119v-24H88c-3-3-7-5-7-15 0-5 3-17 5-24l24-67h96l32
<svg xmlns="http:!"!!#.w3.org/2000/svg" xmlns:xlink="http:!" !!#.w3.org/1999/xlink" viewBox="0 0 3000 630"> <defs> <mask
id="x"> <rect width="3000" height="630" fill="white"!$ <ellipse cx="1510" cy="411" rx="220" ry="214" fill="black" stroke="none"!$ !%mask> <symbol id="j" viewBox="0 0 364 387"> <path d="M362 386v-23h-18c-11-3-17-13-24-30-11-24-81-261-84-267-3-7-5-16-5-2 4 0-4 3-11 8-16 6-4 6-6 2-17-2-6-7-10-9-9l-83 35c-2 1-7 5-5 9 3 4 4 17 4 28 0 16-43 127-45 132L44 347c-5 12-10 16-16
!%symbol> !%defs> <g mask="url(#x)"> <use width="155" height="311" x="1543" xlink:href="#a" !$
<use width="149" height="286" x="230" y="10" xlink:href="#b" !$ <use width="149" height="286" x="1365" y="10" xlink:href="#b" !$ <use width="255" height="297" x="1083" y="3" xlink:href="#c" !$ <path d="M719 90V10h182v80l-8-60h-59v261l23 4h-91l23-4V30h-62l-8 60zm165 206h46l-11-2 48-203 26 113h-53l-5 19h64l17 70-16 3h83l-15-3-76-283h-24l-71 282-13 4z" !$ <use width="149" height="286" x="2188" y="10" xlink:href="#b" !$
120-21 21-52 18-52 18h-31v-20h32c9 0 23-16 25-49 1-35-5-66-25-67h-32v261l23 5h-92l23-6zm163-281h93l-23 5v276l21
7h-91l24-7V15l-24-5zm756 286h159v-65l-8 46h-82V16l23-5h-92l22 5v276l-22 4z" !$ <use width="255" height="297" x="2368" y="3" xlink:href="#c" !$ <path d="M69 296h69s45-5 57-52c12-46 28-206-42-232l-12-1H1l22 4v276l-23 5h69V30h49s7 1 13 7c23 20 26 85 26 120s-1 71-14 94c-13 24-21 24-31 26H69v19zm339 0h93l-24-4V30h38s10 2 16 14c7 15 7 57 2 72-5 11-13 30-22 32h-34v16l79 132h72l-24-3-77-132s27-5 38-22c9-12 13-26 13-41 0 0 2-57-13-73 1 0-8-9-20-12l-18-3H401l30 6v277l-23 3z" !$ !%g> <radialGradient id="d" cx="1232" cy="1042" r="21" gradientTransform="matrix(10 0 0 10 -10822 -10055)"
0 2-57-13-73 1 0-8-9-20-12l-18-3H401l30 6v277l-23 3z" !$ !%g> <radialGradient id="d"
cx="1232" cy="1042" r="21" gradientTransform="matrix(10 0 0 10 -10822 -10055)" gradientUnits="userSpaceOnUse"> <stop offset="0" stop-color="#fff" !$ <stop offset=".2" stop-color="#fff" !$ <stop offset=".5" stop-color="#dadada" !$ <stop offset=".8" stop-color="#b5b5b5" !$ !%radialGradient> <ellipse cx="1510" cy="411" rx="210" ry="204" fill="url(#d)" stroke="none"!$ <clipPath id="e"> <ellipse cx="1510" cy="411" rx="200" ry="194" !$
Photo by Flavio Gasperini on Unsplash