Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
CSS GLOBALS
Slide 2
Slide 2 text
Giorgio Polvara
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
.btn { background: hsla(0, 0%, 100%, 0); color: #fff; outline: 20px solid #fff; transition: all 125ms; } .btn:hover { background: #fff; color: #6b2afe; transform: scale(1.5); outline: 0; }
Slide 7
Slide 7 text
No content
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
THE GLOBAL PROBLEM
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
[email protected]
email
Slide 16
Slide 16 text
[email protected]
email .label { font-style: italic; color #333; }
Slide 17
Slide 17 text
APPROVED
Slide 18
Slide 18 text
APPROVED .label { margin: 1em; padding: 0.3em 0.6em; font-family: 'Black Ops One'; font-size: 2rem; text-transform: uppercase; color: #777; border: 5px solid #777; transform: rotate(12deg); }
Slide 19
Slide 19 text
.label { margin: 1em; padding: 0.3em 0.6em; font-family: 'Black Ops One'; font-size: 2rem; text-transform: uppercase; color: #777; border: 5px solid #777; transform: rotate(12deg); } .label { font-style: italic; color #333; }
Slide 20
Slide 20 text
.label { margin: 1em; padding: 0.3em 0.6em; font-family: 'Black Ops One'; font-size: 2rem; text-transform: uppercase; color: #777; border: 5px solid #777; transform: rotate(12deg); } .label { font-style: italic; color #333; }
Slide 21
Slide 21 text
.label { margin: 1em; padding: 0.3em 0.6em; font-family: 'Black Ops One'; font-size: 2rem; text-transform: uppercase; color: #777; border: 5px solid #777; transform: rotate(12deg); } .label { font-style: italic; color #333; }
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
.label
Slide 24
Slide 24 text
.label .table
Slide 25
Slide 25 text
.label .table .row
Slide 26
Slide 26 text
.label .table .row Over 300…
Slide 27
Slide 27 text
Every .class Is Global
Slide 28
Slide 28 text
Slide 29
Slide 29 text
style="color:red"
Slide 30
Slide 30 text
style="color:red;background:blue;b order:1px solid red;font- family:sans-serif;font-size:2em;"
Slide 31
Slide 31 text
style="color:red;background:blue;b order:1px solid red;font- family:sans-serif;font-size:2em;" style="color:red;background:blue;b order:1px solid red;font- family:sans-serif;font-size:2em;"
Slide 32
Slide 32 text
style="color:red;background:blue;b order:1px solid red;font- family:sans-serif;font-size:2em;" style="color:red;background:blue;b order:1px solid red;font- family:sans-serif;font-size:2em;"
Slide 33
Slide 33 text
style="color:red;background:blue;b order:1px solid red;font- family:sans-serif;font-size:3em;" style="color:red;background:blue;b order:1px solid red;font- family:sans-serif;font-size:3em;"
Slide 34
Slide 34 text
.btn:hover { … }
Slide 35
Slide 35 text
.btn:hover { … } @media (max-width: 700px;) { … }
Slide 36
Slide 36 text
.btn:hover { … } @media (max-width: 700px;) { … } @keyframes animation { … }
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
label .
Slide 39
Slide 39 text
label .menu__
Slide 40
Slide 40 text
label .menu__ --on
Slide 41
Slide 41 text
label .menu__ --on .hero__label--hover
Slide 42
Slide 42 text
label .menu__ --on .hero__label--hover .form__label
Slide 43
Slide 43 text
✅ Semantic names
Slide 44
Slide 44 text
❌ Hard to name ✅ Semantic names
Slide 45
Slide 45 text
❌ Hard to name ✅ Semantic names ✅ Less collisions
Slide 46
Slide 46 text
❌ Still collisions ❌ Hard to name ✅ Semantic names ✅ Less collisions
Slide 47
Slide 47 text
CAN WE DO BETTER?
Slide 48
Slide 48 text
CAN WE DO BETTER?
Slide 49
Slide 49 text
No content
Slide 50
Slide 50 text
Web Components
Slide 51
Slide 51 text
Component
Slide 52
Slide 52 text
Component An atomic piece of UI/UX that you can reuse
Slide 53
Slide 53 text
Click me!
Slide 54
Slide 54 text
React
Slide 55
Slide 55 text
const Hello = () =>
Hello world!
;
Slide 56
Slide 56 text
const Hello = () =>
Hello world!
;
Slide 57
Slide 57 text
const Hello = () =>
Hello world!
;
Hello world!
Slide 58
Slide 58 text
const Label = (props) => (
{props.children}
)
Slide 59
Slide 59 text
const Label = (props) => (
{props.children}
) APPROVED
Slide 60
Slide 60 text
Approved const Label = (props) => (
{props.children}
)
Slide 61
Slide 61 text
Approved const Label = (props) => (
{props.children}
)
Approved
Slide 62
Slide 62 text
No content
Slide 63
Slide 63 text
No content
Slide 64
Slide 64 text
const Label = (props) => (
{props.children}
)
Slide 65
Slide 65 text
.label { color: #777; font-size: 2rem; ... } const Label = (props) => (
{props.children}
)
Slide 66
Slide 66 text
.label { color: #777; font-size: 2rem; ... } // Label.css const Label = (props) => (
{props.children}
)
Slide 67
Slide 67 text
.label { color: #777; font-size: 2rem; ... } // Label.css const Label = (props) => (
{props.children}
) import cx from './Label.css'
Slide 68
Slide 68 text
.label { color: #777; font-size: 2rem; ... } // Label.css const Label = (props) => (
{props.children}
) import cx from './Label.css'
Slide 69
Slide 69 text
.label { color: #777; font-size: 2rem; ... }
Slide 70
Slide 70 text
.label { color: #777; font-size: 2rem; ... }
Slide 71
Slide 71 text
.label { color: #777; font-size: 2rem; ... } .xyz123 { color: #777; font-size: 2rem; ... }
Slide 72
Slide 72 text
.label { color: #777; font-size: 2rem; ... } .xyz123 { color: #777; font-size: 2rem; ... }
Slide 73
Slide 73 text
.label { color: #777; font-size: 2rem; ... } .xyz123 { color: #777; font-size: 2rem; ... }
Slide 74
Slide 74 text
.label { color: #777; font-size: 2rem; ... }
Slide 75
Slide 75 text
.label { color: #777; font-size: 2rem; ... } .label { color:rgb(1,2,3); } .label { position: sticky; }
Slide 76
Slide 76 text
.label { color: #777; font-size: 2rem; ... } .xyz123 { color: #777; font-size: 2rem; ... } .abc987 { color:rgb(1,2,3); } .bada55 { position: sticky; } .label { color:rgb(1,2,3); } .label { position: sticky; }
Slide 77
Slide 77 text
Demo
Slide 78
Slide 78 text
Component
Slide 79
Slide 79 text
Component
Slide 80
Slide 80 text
Component HTML/CSS/JS
Slide 81
Slide 81 text
Component UI/UX
Slide 82
Slide 82 text
Component
Slide 83
Slide 83 text
Component
Slide 84
Slide 84 text
Thank You Giorgio Polvara @gpx