<meta name="viewport" content="width=device-width">
start this tag.
<meta name="viewport" content="width=device-width,initial-scale=1">
1vmin = 1vm or 1vh, whichever is smallest
1vmax = 1vm or 1vh, whichever is largest
available media query expressions
width, height, device-width, device-height, orientation, aspect-ratio,
device-aspect-ratio, grid, color, color-index, monochrome, resolution, scan
.menu-items-grid {
display: flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-around;
padding: 0 1%
}
@media (orientation:portrait){
.menu-items-grid {
flex-direction: column;
}
}
window.devicePixelRatio
@media (min-pixel-ratio:2){
.pretteybackground {
background: url('images/hires_bkg.png');
}
}
cellular radio lifecycle
Idle -> active -> short sleep -> long sleep
-lifecycle of an HTTP request
DNS lookup -> socket connect -> HTTP request -> Data download
avoid redirect
minimize or eliminate render-blocking resources (stylesheets, fonts, unknown-size, image)
animation framework
settimeout, setInterval -> requestAnimationFrame
touch UI
hover does not rely on
use large hit target
do not disable mouse support
touch events
->touchstart, touchmove, touchend, touch cancel
Input
html5 has tel input type.
<input type="tel">
<label>
<input type="checkbox">
"Do you love lemurs?"
</label>