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
4.3k
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
580
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
840
立方体異世界生成魔法(キュービックディメンション・ジェネレーションマジック)
satoshi7190
2
610
新宿ダンジョンを可視化してみた
satoshi7190
3
1.1k
MapLibre GL JS とCSSアニメーションでできること
satoshi7190
0
1.3k
Other Decks in Programming
See All in Programming
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
120
GISエンジニアから見たLINKSデータ
nokonoko1203
0
200
CSC307 Lecture 02
javiergs
PRO
1
770
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
220
Fluid Templating in TYPO3 14
s2b
0
120
AI時代の認知負荷との向き合い方
optfit
0
130
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
1k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
960
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.5k
CSC307 Lecture 01
javiergs
PRO
0
680
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
130
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
230
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
130
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
170
How to Talk to Developers About Accessibility
jct
2
120
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Marketing to machines
jonoalderson
1
4.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
750
Game over? The fight for quality and originality in the time of robots
wayneb77
1
100
Exploring anti-patterns in Rails
aemeredith
2
240
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はただのコードから素晴らしい魔法になります