Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.





Essentials


Neil Ghosh
@neilghosh
Rough Timeline of Web Technologies
  • 1991 HTML
  • 1994 HTML 2
  • 1996 CSS 1 + JavaScript
  • 1997 HTML 4
  • 1998 CSS 2
  • 2000 XHTML 1
  • 2002 Tableless Web Design
  • 2005 AJAX
  • 2009 HTML 5

Web Storage

localStorage for persistent storage
sessionStorage for per tab storage

			
			saveButton.addEventListener('click', function () {
			  window.localStorage.setItem('value', area.value);
			  window.localStorage.setItem('timestamp', (new Date()).getTime());
			}, false);
			textarea.value = window.localStorage.getItem('value');
                

Save text value on the client side (crash-safe)


Web Workers

			var worker = new Worker('worker1.js');
			worker.onmessage = function (event) {
			 	document.getElementById('number').textContent = event.data;
			};
                
worker1.js
		var n = 1;
		search: while (true) {
		   n += 1;
		   for (var i = 2; i <= Math.sqrt(n); i += 1){
		  	if (n % i == 0)
		   	 continue search;
		   // found a prime!
		    postMessage(n);
		}
                
Last Prime Found:-

NA

File Drag API
		  document.querySelector('#dropzone').addEventListener('drop', function(e) {
		   var reader = new FileReader();
		   reader.onload = function(evt) {
		      document.querySelector('img').src = evt.target.result;
		   };

		   reader.readAsDataURL(e.dataTransfer.files[0]);
		}, false);
                

Thumbnail palette

Drag & drop or choose images from your local file system:

Geolocation

	if (navigator.geolocation) {
			    navigator.geolocation.getCurrentPosition(function(position) {
				 var latLng = new google.maps.LatLng(
				  	position.coords.latitude, position.coords.longitude);
				 var marker = new google.maps.Marker({position: latLng, map: map});
				 map.setCenter(latLng);
		}, errorHandler);
	}
                

Click the button to get your position:

Speech Input

					
<input type="text" x-webkit-speech />

Speech input is not enabled in your browser.
Try running Google Chrome with the --enable-speech-input flag.

Better Semantic Tags
				<header>Header</header>
				<nav>
				  <ul>
				  	  <li><a href="#">Home</a></li>				
				  	  <li><a href="#">About</a></li>
				  </ul>
				</nav>
				<article>					
				  	 <section>Section</section>
				</article>		
				<aside>					 
				  	 <p>Aside</p>
				</aside>	
				<footer>
				  	 <p>Copyright 2011 . All rights reserved.</p>
				</footer>				
                
			<input type="text" required />

			<input type="email" value="some@email.com" />

			<input type="date" min="2010-08-14" value="2010-08-14"/>

			<input type="range" min="0" max="50" value="10" />

			<input type="search" results="10" placeholder="Search..." />

			<input type="tel"  placeholder="(555) 555-5555"
					 pattern="^\(?\d{3}\)?[-\s]\d{3}[-\s]\d{4}.*?$" />

			<input type="color" placeholder="e.g. #bbbbbb" />

			<input type="number" step="1" min="-5" max="10" value="0" />
			
                
				<style>
				   [required] {
				  	border-color: #88a;
					   -webkit-box-shadow: 0 0 3px rgba(0, 0, 255, .5);
				  }
				   :invalid {
					  border-color: #e88;
					   -webkit-box-shadow: 0 0 5px rgba(255, 0, 0, .8);
				  }
				</style>
                

Canvas 2D

				 <canvas id="canvas" width="838" height="220"></canvas>

					<script>
					  var canvasContext = document.getElementById("canvas").getContext("2d");
					  canvasContext.fillRect(250, 25, 150, 100);
					  
					  canvasContext.beginPath();
					  canvasContext.arc(450, 110, 100, Math.PI * 1/2, Math.PI * 3/2);
					  canvasContext.lineWidth = 15;
					  canvasContext.lineCap = 'round';
					  canvasContext.strokeStyle = 'rgba(255, 127, 0, 0.5)';
					  canvasContext.stroke();
					</script>
Opacity and HSL
					color: rgba(255, 0, 0, 0.75); 
					background: rgba(0, 0, 255, 0.75); 
                

Independent opacity

		color: hsla(
		  128 
		  74% 
		  33% 
		  1.00 
                

Hue/saturation/luminance color
Browser Compatibility
				 background: -webkit-gradient(radial, 430 50, 0, 430 50, 200, from(red), to(#000))
				 background: -mz-gradient(radial, 430 50, 0, 430 50, 200, from(red), to(#000))
				 background: -moz-gradient(radial, 430 50, 0, 430 50, 200, from(red), to(#000))
				 background: -o-gradient(radial, 430 50, 0, 430 50, 200, from(red), to(#000))				  
                
Multiple Device Support
  • Supported most of the latest mobile browsers
  • Responsive UI
http://earthhour.fr
HTML5 beyond browsers
Thank You




this is image #1 this is image #2 this is image #3 this is image #4

Use a spacebar or arrow keys to navigate