WE ARE THE JSLEAGUE
HTML+CSS+JS
Whoami
Diana Miron
5+ years experience as front-end dev
CEO JSLeague, JSgirls
co-organizer JSHacks
web animations enthusiast
Assistants
Agenda Day 1
10-30 - 11:00 Web history
11:00 - 11:25 Introduction to HTML, Front-end versus Back-end
11:25 - 11:45 What is CSS and JavaScript, Text Editors
11:45 - 12:00 Coffee break
12:00 - 12:20 Web page structure (elements, tags, attributes, syntax, nesting)
12:20 - 13:00 Primary tags (paragraphs, headings, lists, links, images, forms, tables)
13:00 - 14:00 Lunch break
14:00 - 16:00 Let's make some heroes
16:00 - 16:15 Coffee break
16:15 - 17:00 CSS: ids, classes and selectors, attributes
17:00 - 18:00 Let's make some pretty things
2x 15' coffee break + 1h lunch break
We expect cooperation from all participants to help ensure a safe environment for everybody.
We treat everyone with respect, we refrain from using offensive language and imagery, and we encourage to report any derogatory or offensive behavior to a member of the JSLeague community.
We provide a fantastic environment for everyone to learn and share skills regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion (or lack thereof), or technology choices.
We value your attendance and your participation in the JSLeague community and expect everyone to accord to the community Code of Conduct at all JSLeague workshops and other events.
Code of conduct
Partners
JSLeague
Let's write some code
90's kids will remember
Web history
A short history of web 👩🏻💻
Web history
Web history
The first web page
First browsers
1993 - Mosaic browser - first commercial browser
1995 - Netscape and Internet Explorer
Early days
Second generation websites
Table based layouts
Table based layouts
Spacer gif
Web timeline
New generation websites
New generation websites
Today
654 Million websites
The website trio
Introduction to HTML
HTML + CSS + JS = 💙
The Mighty Trio
HTML + CSS + JS
HTML = Hyper Text Markup Language
CSS = Casscading Style Sheets
JS = JavaScript
JavaScript != Java
Front-end vs. Back-end
Java
C#
Objective-C
Python
Scala
Go Lang
.....
700 programming languages https://en.wikipedia.org/wiki/List_of_programming_language
Code
Text editors
Text editors
What web is made of
Web page structure
Sugar, spice and everything nice 🌈
HTML
HTML
HTML
<html>
<head>
<title> Prima mea pagina </title>
</head>
<body>
<div>
<p>>Hello, there!</p>
</div>
</body>
</html>
HTML
Tags
Primary tags
Tag, you're it! 🙀
HEAD
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1,
shrink-to-fit=no, minimum-scale=1">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=
Open+Sans:300,400,600,700&lang=en" />
<link href="https://fonts.googleapis.com/css?family=Oswald" rel="stylesheet">
<link rel="stylesheet" href="stylesheet.css">
<script type="text/javascript" src="script.js"></script>
<title>My First Hero App</title>
</head>
Exercise
<section></section>
<header></header>
<footer></footer>
<aside></aside>
<div></div>
<p></p>
<h1></h1> .... <h6></h6>
<span></span>
<small></small>
<form></form>
<input/>
<select></select>
<button></button>
<ul></ul>
<ol></ol>
<table></table>
<a></a>
<img/>
<hr/>
<br/>
Attributes
<div class="hero jean" id="strange">
<a class="hero--btn previous" href="https://jsleague.ro"
onclick="previousHero()"><</a>
<div class="hero--left">
<div class="hero--image-container">
<img class="hero--image" src="img/Doctor_Strange.jpg" />
<img class="hero--image-back" src="img/Doctor_Strange_2.jpg" />
</div>
</div>
Exercise
Let's make some heroes
CSS: Ids, classes and selectors, attributes
CSS
The pretty part 🎁
<img class="hero--image img-green spanac" src="img/Doctor_Strange.jpg" id="hero-diana" />
ID vs Class
Ids are unique:
Classes are not unique:
ID vs Class
<img class="hero--image img-green spanac"
id="hero-diana"
src="img/Doctor_Strange.jpg" />
HTML
CSS
.hero--image {
border: none;
}
.spanac {
color: green;
}
#hero-diana {
background: pink;
}
Syntax
.hero {
width: 70%;
min-width: 900px;
position: absolute;
left: 15%;
top: 115px;
will-change: auto;
transition: left .45s ease-out;
}
Implementation
1. External file as link
<head>
<link rel="stylesheet" href="stylesheet.css">
</head>
2. External file - in HEAD
<head>
<style>
.spanac {
color: green;
}
</style>
</head>
2. External file - in HEAD
<h1 style="color: green;" class="spanac">SUNT UN SPANAC VERDE</h1>
Example
Example
Text
Box model
Margins
Border
Display
Position
Float
Colors
Coffee ?
Let's make some pretty things
JSLeague
yay 🚀
Day one over!
Intro to Web
OMG
Day two
Intro to Web
What a beautiful day for science 💣
Agenda Day 2
10-30 - 11:00 Day 1 recap
11:00 - 11:45 CSS Exercises
11:45 - 12:00 Coffee break
12:00 - 12:30 CSS Animations
12:20 - 13:00 Let's animate the web
13:00 - 14:00 Lunch break
14:00 - 15:00 Intro to JS, syntax, data types, console, debugging
15:00 - 16:00 Let's play
16:00 - 16:15 Coffee break
16:15 - 17:30 JS time
17:30 - 18:00 Discussion, pics and feedback
Day one recap
Intro to Web
'till you get it right! ✏️
CSS exercises
CSS
The web is so pretty 🎀
CSS Animations
CSS
Whaaaaat ?
Animations
/* The animation code */
@keyframes example {
from {background-color: red;}
to {background-color: yellow;}
}
/* The element to apply the animation to */
div {
width: 100px;
height: 100px;
background-color: red;
animation-name: example;
animation-duration: 4s;
}
Keyframes
"from" and "to" (which represents 0% (start) and 100% (complete)
/* The animation code */
@keyframes example {
0% {background-color:red; left:0px; top:0px;}
25% {background-color:yellow; left:200px; top:0px;}
50% {background-color:blue; left:200px; top:200px;}
75% {background-color:green; left:0px; top:200px;}
100% {background-color:red; left:0px; top:0px;}
}
/* The element to apply the animation to */
div {
width: 100px;
height: 100px;
position: relative;
background-color: red;
animation-name: example;
animation-duration: 4s;
}
Animations
Animations
animation-timing-function
#div1 {animation-timing-function: linear;}
#div2 {animation-timing-function: ease;}
#div3 {animation-timing-function: ease-in;}
#div4 {animation-timing-function: ease-out;}
#div5 {animation-timing-function: ease-in-out;}
Animations
div {
animation-name: example;
animation-duration: 5s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
Animations
Shorthand property
div {
animation: example 5s linear 2s infinite alternate;
}
Animations
CSS Filters
img {
-webkit-filter: grayscale(100%); /* Safari 6.0 - 9.0 */
filter: grayscale(100%);
}
filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url();
Complex animations
CSS Drawing
Let's animate the web
CSS Animations
Finally
Intro to JS
JavaScript
Syntax, data types, console, debugging
JavaScript
Implementation
<script type="text/javascript" src="script.js"></script>
1. External - as link
<script>
document.getElementById('demo').innerHTML = 'This is so awesome';
</script>
2. Internal - inside HTML
Usage
document.getElementById ("idulMeu")
//accesses an HTML element with a unique unique id
innerHTML
//a property that defines the HTML content of an item
window.alert ("Alert: Pay attention!")
alert on the screen
//document.write ()
web page prints
//console.log (myVariable + "message")
console printing, debugging
Example
Variables
Operators
Operators
Data types
Objects
== vs ===
77 == 77 //true
77 == “77” //true
false == 0 //true
“abc” == “abc” //true
50 == 60 //false
“Hero” = “hero” //false
3 === 3 //true
“abc” === “abc” //true
false === false //true
80 === “80” //false
“super” === “hero” //false
true === 1 //false
Arrays
Objects
let person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
Functions
Loops
onclick()
onload()
Let's play
JavaScript
Today we are programmers
Snacks ?
JS Time
JavaScript
Do we really have to ?
Cool JS stuff
Discussions & Pics
The End
Best weekend ever! 🙈
Q&A
diana@jsleague.ro
dianadesign19