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
Webエンジニアに転生したらCSS魔導士になった件
Search
Satoshi Komatsu
June 01, 2023
Programming
3
3.9k
Webエンジニアに転生したらCSS魔導士になった件
MIERUNE BBQ #01 発表スライド 2023/05/31
https://mierune.connpass.com/event/284183/
Satoshi Komatsu
June 01, 2023
Tweet
Share
More Decks by Satoshi Komatsu
See All by Satoshi Komatsu
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
95
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
600
立方体異世界生成魔法(キュービックディメンション・ジェネレーションマジック)
satoshi7190
2
440
新宿ダンジョンを可視化してみた
satoshi7190
3
750
MapLibre GL JS とCSSアニメーションでできること
satoshi7190
0
1k
Other Decks in Programming
See All in Programming
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
36
14k
Pythonでもちょっとリッチな見た目のアプリを設計してみる
ueponx
1
550
DROBEの生成AI活用事例 with AWS
ippey
0
130
自分ひとりから始められる生産性向上の取り組み #でぃーぷらすオオサカ
irof
8
2.8k
CI改善もDatadogとともに
taumu
0
110
[Fin-JAWS 第38回 ~re:Invent 2024 金融re:Cap~]FaultInjectionServiceアップデート@pre:Invent2024
shintaro_fukatsu
0
410
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
370
昭和の職場からアジャイルの世界へ
kumagoro95
1
370
Amazon Bedrock Multi Agentsを試してきた
tm2
1
280
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
120
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
10
3.6k
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
0
170
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
BBQ
matthewcrist
87
9.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Documentation Writing (for coders)
carmenintech
67
4.6k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
550
Build your cross-platform service in a week with App Engine
jlugia
229
18k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Transcript
©OpenStreetMap contributors Webエンジニアに転生したら CSS魔導士になった件 Satoshi Komatsu
©Project PLATEAU / MLIT Japan 小松 聖 自己紹介 KOMATSU Satoshi
CSS好きです。 フロントエンドエンジニア
©OpenStreetMap contributors 01 私の転生エピソード 02 CSS魔導士の誕生秘話 03 CSS魔法発動(DEMO) 04 CSS魔導士の心得 目次
©OpenStreetMap contributors 01 私の転生エピソード
© 地理院地図 全国最新写真(シームレス) 今から3年前の異世界の話 私の転生エピソード
異世界 2020年 岐阜で造園業(庭師)をやってた。
異世界 2020年 岐阜で造園業(庭師)をやってた。 林業やりたいな・・・
異世界 林業の職業訓練校に入学。 27歳から2年間学生生活を送る。
異世界 が、入学直後に未知のウイルスによ り一時休校。 2ヶ月間自粛生活を送る
異世界 自粛期間中に興味本位でVBAとかGASとか 触ってた。 プログラミング楽しくなった そのうちにjavascriptとか触り始めるように なった。
異世界 林業を学びながら空き時間プログラミングする学生生活を送る
異世界 木を切るよりコード書く方が面白いな・・・ 林業を学びながら空き時間プログラミングする学生生活を送る
異世界 2022年 卒業研究で校内のWEB地図ア プリを独学で作った。 Web開発の楽しさを味合う。
異世界 2022年 林業への就活をせず、Qiitaの 記事で知った今の会社のメン バーに加わりました。
転生 転職 等世界(札幌のWebエンジニア) 異世界(岐阜の庭師) 異世界から等世界へ
©OpenStreetMap contributors 02 CSS魔導士の誕生秘話
CSS魔導士の誕生秘話 もともと趣味でイラスト描いてた
CSS魔導士の誕生秘話 図形をペンで表現するかコードで表現するかの違いだけなので CSS デジタルイラスト ≒ CSSでなにかを表現することが割と好き
CSS魔導士の誕生秘話 ある日、遊び半分でCSSだけで魔法陣を描いて社内に公表した。
CSS魔導士の誕生秘話 CSS魔導士誕生。 社内で「魔法使い」のあだ名がついた。
©OpenStreetMap contributors 03 CSS魔法発動(DEMO)
© 地理院地図 全国最新写真(シームレス) 魔法発動リンク CSS魔法発動(DEMO) https://satoshi7190.github.io/CSS-Magic-Circle/
解説 JavaScript無使用。 アニメーションはanimationプロパ ティと@keyframesで実装。
解説 魔法陣の線はborderプロパティ。 それぞれの太さを変えて線の強弱をつ けている。
解説 使用フォント 「RuneAssignMN Series Fonts」 古代のルーン文字を再現するフォント群 http://michinarinukazawa.github.io/Rune AssignMN_Series_Fonts/ ※A〜Zのアルファベットをただ羅列してるだけ。
解説 CSSのcos(),sin()関数でピクセル座標を計算 して文字を円に配置。 --angle: calc(360deg / 52 * var(--index)); --x:
calc(cos(var(--angle)) * 30px); --y: calc(sin(var(--angle)) * 30px); translate: calc(var(--x) - 50%) calc)var(--y) - 50%);
perspective: 2000px; perspective-origin: center; 3D効果
解説 filter: drop-shadow(0px 0px 10px #913513) drop-shadow(0px 0px 10px #913513)
drop-shadow(0px 0px 20px #913513); グロー効果
こだわりポイント filter: drop-shadow(0px 0px 10px #913513) drop-shadow(0px 0px 10px #913513)
drop-shadow(0px 0px 20px #913513) drop-shadow(0px 0px 20px #FFF); filter: drop-shadow(0px 0px 10px #913513) drop-shadow(0px 0px 10px #913513) drop-shadow(0px 0px 20px #913513); さらに白い影を重ねることでより光る表現に。
こだわりポイント filter: blur(10px); opacity: 0.1; filter: blur(10px); 一層目のdiv要素 二層目のdiv要素 外側にはさらにぼかし効果をつけたdiv要素を重ねて表現。
©OpenStreetMap contributors 04 CSS魔導士の心得
CSS魔導士の心得 この心得を実践することで 今日からあなたもCSS魔導士になることができます。
© 地理院地図 全国最新写真(シームレス) 「目的」 「手段」 「追求」 CSS魔導士の心得
CSS魔導士の心得 目的 自分が達成したいビジュアルの「目的」を明確にする。
CSS魔導士の心得 魔法少女アニメの魔法陣を考察することで明確なビジョン(目的)も持った。 画像出典:「魔法少女リリカルなのは」シリーズより ⚫ 線は白くてグロー効果に色がある ⚫ 魔法陣の動きがパーツごとにバラバラ ⚫ フォントがギリシャ文字っぽい ⚫
線に太さの違いがある 目的
CSS魔導士の心得 手段 コードを書くスキルだけではなく、ビジュアルを理解し、 それを表現する。
CSS魔導士の心得 手段 魔法陣の特性を理解し、それをコードに落としこんだ。 + 魔法陣は光っている・・・ 光らせるには filter: drop-shadow()だな
CSS魔導士の心得 追求 ディテールへのこだわりと、より良いビジュアルを追求するための 持続的な努力。
CSS魔導士の心得 追求 魔法陣らしさのアニメーションにこだわった。 (その分、今回のスライド作成の時間が減った。) @keyframes animation-duration animation-timing-function animation-delay animation-fill-mode animation-name
animation-iteration-count
まとめ 「目的を理解し、手段を選び、そして追求する」 あなたのCSSはただのコードから素晴らしい魔法になります