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
CSS
Search
James Shedden
June 24, 2015
Technology
1
89
CSS
How I make cool & maintainable stuff, fast.
James Shedden
June 24, 2015
Tweet
Share
More Decks by James Shedden
See All by James Shedden
Flexbox is cool and fun
jamesshedden
1
140
Other Decks in Technology
See All in Technology
カンファレンスに託児サポートがあるということ / Having Childcare Support at Conferences
nobu09
1
580
アイテムレビュー機能導入からの学びと改善
zozotech
PRO
0
160
オープンソースでどこまでできる?フォーマル検証チャレンジ
msyksphinz
0
140
技育祭2025【秋】 企業ピッチ/登壇資料(高橋 悟生)
hacobu
PRO
0
100
AWSでAgentic AIを開発するための前提知識の整理
nasuvitz
2
160
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
320
20251007: What happens when multi-agent systems become larger? (CyberAgent, Inc)
ornew
1
290
20201008_ファインディ_品質意識を育てる役目は人かAIか___2_.pdf
findy_eventslides
2
640
RDS の負荷が高い場合に AWS で取りうる具体策 N 連発/a-series-of-specific-countermeasures-available-on-aws-when-rds-is-under-high-load
emiki
1
300
コンテキストエンジニアリング入門〜AI Coding Agent作りで学ぶ文脈設計〜
kworkdev
PRO
1
1.2k
【Kaigi on Rails 事後勉強会LT】MeはどうしてGirlsに? 私とRubyを繋いだRail(s)
joyfrommasara
0
260
AgentCon Accra: Ctrl + Alt + Assist: AI Agents Edition
bethany
0
110
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
Bash Introduction
62gerente
615
210k
Thoughts on Productivity
jonyablonski
70
4.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
GraphQLとの向き合い方2022年版
quramy
49
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Unsuck your backbone
ammeep
671
58k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
620
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
The Invisible Side of Design
smashingmag
302
51k
Transcript
CSS!
I want to...
I want to make cool stuff.
I want to make cool stuff, fast.
I want to make cool & maintainable stuff, fast.
Let’s make an app.
Let’s make our app look awesome.
Let’s make it easy to make our app look awesome.
/css /components /base /utilities main.css
The individual building blocks /components The fundamental rules /base Classes
for adjusting CSS within templates /utilities All the above imported main.css
Variables
SASS Variables $color-primary CSS Variables var(—-color-primary)
Pre-processing
SASS & LESS Pre-processors REWORK & POSTCSS Pre-processing plugin frameworks
Building, watching & reloading.
Let’s start making our app look cool.
Naming
BEM Block, Element, Modifier
Block block Element block__element Modifier block__element—-modifier
Cue human body analogy
Block block Element block__element Modifier block__element—-modifier
Block person Element person__arm Modifier person__arm—-left
Maybe not .person__arm__hand__finger Maybe .person .arm .hand__finger—-ring
HTML
HTML + CSS
HTML + CSS + JS
<div></div>
<div class=“person”> <div class=“person__arm person__arm—-left”> Left arm </div> <div class=“person__arm
person__arm—-right”> Right arm </div> </div>
<div class=“person”> <div class=“person__arm person__arm—-left”> Left arm </div> <div class=“person__arm
person__arm—-right”> Right arm </div> </div> /css/components/person.css .person {} .person__arm {} .person__arm—-left {}
<div class=“person”> <div class=“person__arm person__arm—-left”> Left arm </div> <div class=“person__arm
person__arm—-right u-margin-Tm”> Right arm </div> </div> /css/utilities/space.css .u-margin-Tm { margin-top: var(—-space-medium); }
Utilities
<div class=“u-display-block u-margin-Vm u-color-primary u-background-meta u- padding-Lm u-padding-Rs u-text-heading u-
text-m u-text-no-smoothing”> Forever alone </div>
<div class=“u-display-block u-margin-Vm u-color- primary u-background-meta u-padding-Lm u-padding- Rs u-text-heading
u-text-m u-text-no-smoothing”> Much CSS </div> <div class=“u-display-block u-margin-Vm u-color- primary u-background-meta u-padding-Lm u-padding- Rs u-text-heading u-text-m u-text-no-smoothing”> Very stylesheets </div> <div class=“u-display-block u-margin-Vm u-color- primary u-background-meta u-padding-Lm u-padding- Rs u-text-heading u-text-m u-text-no-smoothing”> Such utility class </div>
<div class=“my-cool-component”> Much CSS </div> <div class=“my-cool-component u-text-no-smoothing”> Very stylesheets
</div> <div class=“my-cool-component u-background-meta”> Such utility class </div>
Our app Lets us work quickly Easy to maintain Looks
awesome
Cheers!