Awesome HTML5 [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [![Build Status](https://api.travis-ci.org/diegocard/awesome-html5.svg?branch=master)](https://travis-ci.org/diegocard/awesome-html5) ============= A curated list of awesome HTML5 resources. Inspired by [awesome-php](https://github.com/ziadoz/awesome-php) and [awesome-python](https://github.com/vinta/awesome-python) ## Table of Contents - [Articles and standards](#articles-and-standards) - [Multimedia capabilities](#multimedia-capabilities) - [Audio](#audio) - [Media capture](#media-capture) - [Picture in Picture](#picture-in-picture) - [Speech synthesis](#speech-synthesis) - [Voice recognition](#voice-recognition) - [Virtual Reality (VR)](#virtual-reality) - [Web animations](#web-animations) - [Elements](#elements) - [Canvas](#canvas) - [Head](#head) - [Sectioning](#sectioning) - [Media Elements](#media-elements) - [Forms](#forms) - [Time](#time) - [WebVTT](#webtt) - [HTML Imports](#html-imports) - [Development APIs](#development-apis) - [Permissions](#permissions) - [Geolocation](#geolocation) - [Cryptography](#cryptography) - [File](#file) - [Frame timing](#frame-timing) - [requestIdleCallback](#requestidlecallback) - [requestAnimationFrame](#requestanimationframe) - [Web payments](#web-payments) - [Semantics](#semantics) - [Accessibility](#accessibility) - [DOM management](#dom-management) - [Shadow DOM](#shadow-dom) - [Data Binding](#data-binding) - [Web Components](#web-components) - [Progressive web apps](#progressive-web-apps) - [Service Workers](#service-workers) - [Offline caching](#offline-caching) - [Push Notifications](#push-notifications) - [Client side storage](#client-side-storage) - [Performance](#performance) - [Mobile](#mobile) - [Communications and interoperability](#communications-and-interoperability) - [Web Sockets](#web-sockets) - [WebRTC](#webrtc) - [Web Workers](#web-workers) - [WebGL](#webgl) - [Browser compatibility](#browser-compatibility) - [Books](#books) - [Game development](#game-development) - [Bootcamp](#bootcamp) - [Videos and Keynotes](#videos-and-keynotes) - [Websites and resources](#websites-and-resources) - [Websites](#websites) - [Weekly news](#weekly-news) - [Twitter](#twitter) - [Contributing](#contributing) ## Articles and standards * [HTML 5.3](https://w3c.github.io/html/) - Current HTML5 spec * [Progressive enhancement](https://www.smashingmagazine.com/2009/04/progressive-enhancement-what-it-is-and-how-to-use-it/) * [The extensible web manifesto](https://extensiblewebmanifesto.org/) * [Differences between HTML5 and HTML4 from W3C](https://www.w3.org/TR/html5-diff/) ## Multimedia capabilities ### Audio * [Getting started with the Web Audio API](https://www.html5rocks.com/en/tutorials/webaudio/intro/?redirect_from_locale=es) * [Web Audio API at MDN](https://developer.mozilla.org/es/docs/Web_Audio_API) * [Making a Guitar Tuner with HTML5](https://jonathan.bergknoff.com/journal/making-a-guitar-tuner-html5) * [Audio visualisation with the Web Audio API and React](https://www.twilio.com/blog/audio-visualisation-web-audio-api--react) ### Media Capture * [Capturing Audio & Video in HTML5](https://www.html5rocks.com/es/tutorials/getusermedia/intro/) * [Using the media capture API](https://www.sitepoint.com/using-the-media-capture-api/) ### Picture in Picture * [Chrome's new Picture in Picture API](https://developers.google.com/web/updates/2018/10/watch-video-using-picture-in-picture) ### Speech Synthesis * [Intro to the HTML5 Speech Synthesis API](http://creative-punch.net/2014/10/intro-html5-speech-synthesis-api/) * [Another useful intro](https://shapeshed.com/html5-speech-recognition-api/) ### Voice Recognition * [Web speech API demo](https://www.google.com/intl/en/chrome/demos/speech.html) * [Using the Web Speech API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API) * [Experimenting with the Web Speech API](https://www.sitepoint.com/experimenting-web-speech-api/) * [Free voice recognition library (annyang)](https://www.talater.com/annyang/) ### Virtual Reality * [Firefox Reality now available](https://blog.mozilla.org/blog/2018/09/18/firefox-reality-now-available/) ### Web animations * [Intro to web animations](http://danielcwilson.com/blog/2015/07/animations-intro/) * [When to Use the Web Animations API](http://danielcwilson.com/blog/2016/08/why-waapi/) ## Elements ### Canvas * [Brief description from W3 Schools](https://www.w3schools.com/tags/tag_canvas.asp) * [Tutorial from MDN](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial) * [Various Tutorials](https://www.html5canvastutorials.com/) * [Cheat Sheet](https://simon.html5.org/dump/html5-canvas-cheat-sheet.html) ### Head * [A list of things that go in your pages' HEAD element](https://gethead.info/) ### Sectioning * [How to Use The HTML5 Sectioning Elements](https://blog.teamtreehouse.com/use-html5-sectioning-elements) ### Media Elements * Audio and Video - [audio tag from W3Schools](https://www.w3schools.com/tags/tag_audio.asp) - [video tag from W3 Schools](https://www.w3schools.com/tags/tag_video.asp) - [Tutorial from MDN](https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content) - [Capturing audio and video in HTML5](https://www.html5rocks.com/en/tutorials/getusermedia/intro/) * embed tag - [Brief description from W3 Schools](https://www.w3schools.com/tags/tag_embed.asp) * source tag - [Brief description from W3 Schools](https://www.w3schools.com/tags/tag_source.asp) * track tag - [Brief description from W3 Schools](https://www.w3schools.com/tags/tag_track.asp) ### Forms * [Changes to forms in HTML5 from MDN](https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms) * [HTML Forms](https://www.w3schools.com/html/html_forms.asp) ### Details * [How to Use the Details and Summary Elements](https://blog.teamtreehouse.com/use-details-summary-elements) * [Details element polyfill](https://www.smashingmagazine.com/2014/11/complete-polyfill-html5-details-element/) ### Time * [Time element guide](https://www.sitepoint.com/html5-time-element-guide/) ### WebVTT * [First draft from W3C](http://www.w3.org/TR/2014/WD-webvtt1-20141113/) ### HTML Imports * [Introduction to HTML imports](https://www.webcomponents.org/community/articles/introduction-to-html-imports) ## Development APIs ### Permissions * [Permissions API for the Web by Google](https://developers.google.com/web/updates/2015/04/permissions-api-for-the-web) ### Geolocation * [Using Geolocation](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API) * [HTML5 Apps: Positioning with Geolocation](https://code.tutsplus.com/tutorials/html5-apps-positioning-with-geolocation--mobile-456) ### Cryptography * [Web Cryptography API draft](http://www.w3.org/TR/WebCryptoAPI/) * [Table of web cryptography support](http://diafygi.github.io/webcrypto-examples/) * [Window.crypto](https://developer.mozilla.org/en-US/docs/Web/API/Window/crypto) * [Cryptography next steps from W3C](http://www.w3.org/2012/webcrypto/webcrypto-next-workshop/report.html) ### File * [Using files from web applications (MDN)](https://developer.mozilla.org/en-US/docs/Web/API/File/Using_files_from_web_applications) * [Reading local files in JavaScript](https://www.html5rocks.com/en/tutorials/file/dndfiles/) * [File API Draft](https://w3c.github.io/FileAPI/) * [File system API](http://www.w3.org/TR/file-system-api/) ### Frame timing * [Video from google developers](https://www.youtube.com/watch?v=4zoC3eaa9z0) * [Draft from W3C](https://w3c.github.io/frame-timing/) ### requestIdleCallback * [On Google developers](https://developers.google.com/web/updates/2015/08/using-requestidlecallback) ### requestAnimationFrame * [Using requestAnimationFrame (CSS Tricks)](https://css-tricks.com/using-requestanimationframe/) * [Great article by Paul Irish](https://medium.com/@paul_irish/requestanimationframe-scheduling-for-nerds-9c57f7438ef4#.9gev5fdub) ### Web payments * [Web payments API overview](https://developers.google.com/web/fundamentals/payments/) ## Semantics * [Semantic elements from W3Schools](https://www.w3schools.com/html/html5_semantic_elements.asp) * [Sections and Outlines of an HTML5 from MDN Document](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines) * [HTML5 Semantics from Smashing Magazine](https://www.smashingmagazine.com/2011/11/html5-semantics/) * [Lesser known semantics element from W3C & Opera](https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML/Advanced_text_formatting) ## Accessibility * [Excellent intro to accessibility from Google's fundamentals](https://developers.google.com/web/fundamentals/accessibility/) * [Accessibility checklist for web developers](https://webaim.org/standards/wcag/checklist) * [ARIA from MDN](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) * [Great Accessibility Style Guide](https://a11y-style-guide.com/style-guide/) * [Designing for Cognitive Differences](https://alistapart.com/article/designing-for-cognitive-differences) * [Guide on how HTML elements are supported by screen readers](https://thepaciellogroup.github.io/AT-browser-tests/) * [Top 25 Accessibility Testing Tools for Website](https://dynomapper.com/blog/27-accessibility-testing/246-top-25-awesome-accessibility-testing-tools-for-websites) * [Web Accessibility Evaluation Tools List from W3](http://www.w3.org/WAI/ER/tools/) * [Pa11y - automated accessibility testing](http://pa11y.org/) * [Aria in HTML](https://developer.paciellogroup.com/blog/2014/10/aria-in-html-there-goes-the-neighborhood/) * [Accessible and Responsive HTML5 Video Player](https://2017.ind.ie/blog/accessible-video-player/) ## DOM Management ### Shadow DOM * [Shadow DOM v1: self-contained web components](https://developers.google.com/web/fundamentals/web-components/shadowdom) * [What's New in Shadow DOM v1 (by examples)](https://hayato.io/2016/shadowdomv1/) ### Data Binding * [Data-binding Revolutions with Object.observe()](https://www.html5rocks.com/en/tutorials/es7/observe/) ### Web Components * [Custom elements v1: reusable web components](https://developers.google.com/web/fundamentals/web-components/customelements) * [The power of web components](https://hacks.mozilla.org/2018/11/the-power-of-web-components/) * [Polymer project](https://github.com/polymer) * [A Quick Introduction To Polymer](https://www.webcomponents.org/community/articles/a-quick-polymer-introduction) * [Building web components using Polymer and ES6 classes](https://www.polymer-project.org/blog/es6) * [Demythstifying Web Components](http://www.backalleycoder.com/2016/08/26/demythstifying-web-components/) * [HTML imports](https://www.html5rocks.com/en/tutorials/webcomponents/imports/) * [Building Webapps with Yeoman and Polymer](https://www.html5rocks.com/en/tutorials/webcomponents/yeoman/) ## Progressive web apps * [Intro to PWAs](https://developers.google.com/web/progressive-web-apps/) * [An Extensive Guide To Progressive Web Applications](https://www.smashingmagazine.com/2018/11/guide-pwa-progressive-web-applications/) * [The Business Case for Progressive Web Apps](https://cloudfour.com/thinks/the-business-case-for-progressive-web-apps/) ### Service Workers * [Service Worker fundamentals](https://developers.google.com/web/fundamentals/primers/service-workers/) * [ServiceWorkies - Learn SWs playing a game](https://serviceworkies.com/) * [The Service Worker Cookbook](https://serviceworke.rs/) * [Offline content with service workers](https://www.madebymike.com.au/writing/service-workers/) * [Making a Service Worker: a case study (Smashing Magazine)](https://www.smashingmagazine.com/2016/02/making-a-service-worker/) * [Service workers explained](https://github.com/w3c/ServiceWorker/blob/master/explainer.md) * [Service Worker Libraries, Totally Tooling Tips](https://www.youtube.com/watch?v=IIRj8DftkqE) * [ServiceWorker: Revolution of the Web Platform](https://ponyfoo.com/articles/serviceworker-revolution) ### Offline caching * [The Offline Cookbook](https://developers.google.com/web/fundamentals/instant-and-offline/offline-cookbook/) * [Instant-loading Offline-first (Progressive Web App Summit 2016)](https://www.youtube.com/watch?v=qDJAz3IIq18) * [Offline Storage for Progressive Web Apps (article by Addy Osmani)](https://medium.com/dev-channel/offline-storage-for-progressive-web-apps-70d52695513c#.jsbxgywzz) * [A Beginner's Guide to Using the Application Cache](https://www.html5rocks.com/en/tutorials/appcache/beginner/) ### Push Notifications * [Web Push Notifications (Google's Web fundamentals)](https://developers.google.com/web/fundamentals/push-notifications/) * [Push API W3C draft](http://w3c.github.io/push-api/) * [Notifications API spec](https://notifications.spec.whatwg.org/) ## Client side storage * [Client-Side Storage](https://www.html5rocks.com/en/tutorials/offline/storage/) * [Offline Cookbook](https://jakearchibald.com/2014/offline-cookbook/) * [Introduction to IndexedDB](https://www.codemag.com/Article/1411041) * [Real-World Off-Line Data Storage](https://code.tutsplus.com/tutorials/real-world-off-line-data-storage--net-34063) * [Local storage tutorial](https://developer.mozilla.org/en-US/docs/Archive/Add-ons/Overlay_Extensions/XUL_School/Local_Storage) ## Performance * [Accelerated Mobile Pages (AMP)](https://www.ampproject.org/learn/overview/) * [Google developers best practices](https://developers.google.com/speed/docs/insights/rules) * [Optimizing performance from Google Web Fundamentals](https://developers.google.com/web/fundamentals/performance/why-performance-matters/) * [Resource hints draft (preconnect and preload)](http://www.w3.org/TR/2014/WD-resource-hints-20141021/) * [Prefetching and prerendeding](https://medium.com/@luisvieira_gmr/html5-prefetch-1e54f6dda15d) * [Image compression](https://www.html5rocks.com/en/tutorials/speed/img-compression/) * [Text compression](https://www.html5rocks.com/en/tutorials/speed/txt-compression/) * [Resource timing spec](http://www.w3.org/TR/resource-timing/) ## Mobile * [The Web App Manifest (Google's fundamentals)](https://developers.google.com/web/fundamentals/web-app-manifest/) * [Field guide to web applications](https://www.html5rocks.com/webappfieldguide/toc/index/) * [Apache Cordova tutorial](http://ccoenraets.github.io/cordova-tutorial/) * [PhoneGap from Scratch](https://code.tutsplus.com/tutorials/phonegap-from-scratch-introduction--mobile-9171) * [Best practices for mobile web apps](https://www.html5rocks.com/en/tutorials/speed/quick/) * [Build mobile apps with Kendo UI](https://docs.telerik.com/kendo-ui/controls/hybrid/introduction) * [HTML5 Vibration API](https://code.tutsplus.com/tutorials/html5-vibration-api--mobile-22585) * [HTML5 Battery Status API](https://code.tutsplus.com/tutorials/html5-battery-status-api--mobile-22795) * [Privacy analysis of the HTML5 Battery Status API](https://eprint.iacr.org/2015/616.pdf) * [HTML5 Network Information API](https://code.tutsplus.com/tutorials/html5-network-information-api--cms-21598) * [Sencha Touch tutorials](https://docs.sencha.com/) ## Communications and interoperability ### Web Sockets * [Introducing Websockets](https://www.html5rocks.com/en/tutorials/websockets/basics/) * [About HTML5 WebSocket](https://www.websocket.org/aboutwebsocket.html) * [HTML5 Web Sockets API](http://www.tutorialspark.com/html5/HTML5_WebSockets.php) ### WebRTC * [What is WebRTC and how does it work](https://www.innoarchitech.com/what-is-webrtc-and-how-does-it-work/) * [WebRTC made simple](https://blog.carbonfive.com/2014/10/16/webrtc-made-simple/) * [WebRTC data channels tutorial](https://www.html5rocks.com/en/tutorials/webrtc/datachannels/) * [WebRTC data channels from MDN](https://developer.mozilla.org/en-US/docs/Games/Techniques/WebRTC_data_channels) ## Web Workers * [Web Worker Basics](https://www.html5rocks.com/en/tutorials/workers/basics/) * [How fast are web workers?](https://hacks.mozilla.org/2015/07/how-fast-are-web-workers/) * [Web Workers in MDN](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers) * [Getting started with Web Workers](https://code.tutsplus.com/tutorials/getting-started-with-web-workers--net-27667) ## WebGL * [WebGL Fundamentals](https://www.html5rocks.com/en/tutorials/webgl/webgl_fundamentals/) ## Browser compatibility * [I want to use](http://www.iwanttouse.com/) * [Can I use...](https://caniuse.com/) * [W3C quality tools](http://w3c.github.io/developers/tools/) * [HTML5 test](http://beta.html5test.com/) * [HTML5 demos](https://bestvpn.org/html5demos/) ## Books * [Dive Into HTML5](http://diveinto.html5doctor.com/) * [HTML5: Up and Running](https://www.amazon.com/HTML5-Running-Dive-Future-Development/dp/0596806027) * [Using the HTML5 Filesystem API](http://shop.oreilly.com/product/0636920021360.do) * [HTML5 Game Development Insights](https://www.apress.com/us/book/9781430266976) * [Web Design Playground: HTML & CSS The Interactive Way](https://www.manning.com/books/web-design-playground) ## Game development * [Getting started with HTML5 Game Development from Mozilla Hacks](https://hacks.mozilla.org/2013/09/getting-started-with-html5-game-development/) * [HTML 5 game development video series by Mozilla](https://hacks.mozilla.org/2016/02/html-5-game-development-video-series/) * [Info, news and tutorials](http://html5gamedevelopment.com/) * [Over 380 resources on HTML5 game development](https://html5-game-development.zeef.com/andre.antonio.schmitz) * Opensource JavaScript game engines - [Pixi.js](https://github.com/pixijs/pixi.js) - [Phaser](https://github.com/photonstorm/phaser) - [MelonJS](https://github.com/melonjs/melonJS) - [Kiwi.js](https://github.com/gamelab/kiwi.js) - [Crafty](https://github.com/craftyjs/Crafty) - [PhysicsJS](https://github.com/wellcaffeinated/PhysicsJS) - [Stage.js](https://github.com/shakiba/stage.js) - [Cocos2d](https://github.com/cocos2d/cocos2d-html5) ## Bootcamp *[Learn coding for free online](https://www.freecodecamp.org/) *[Free online cources](https://www.khanacademy.org/) ## Videos and Keynotes * [HTML5 Developer Conference](https://html5devconf.com/videos.html) * [Polymer: declarative, encapsulated, reusable components](https://www.youtube.com/watch?v=DH1vTVkqCDQ) * [Making the mobile web fast, feature-rich, and beautiful](https://www.youtube.com/watch?v=EXjPsvwIDwU) * [Dart: HTML of the Future, Today!](https://www.youtube.com/watch?v=euCNWhs7ivQ) ## Websites and resources ### Websites * [HTML official reference](https://webplatform.github.io/docs/Main_Page/index.html) (allows collaborative modification of content like wiki) * [HTML5 Rocks](https://www.html5rocks.com/en/) (news, tutorials and updates) * [HTML5 Gallery](http://html5gallery.com/) (a showcase of sites using HTML5 markup and API's) * [HTML5 development guide from MDN](https://developer.mozilla.org/en-US/docs/Learn/HTML) * [W3C Highlights form June 2014](http://www.w3.org/2014/06/w3c-highlights/) * [HTML5 Please](https://html5please.com/) (Know when HTML5 feature are ready to use) * [Keen HTML](https://keenhtml.com) (Free interactive lessons to learn HTML) * [A Complete Guide to the Table Element ](https://css-tricks.com/complete-guide-table-element/) ### Weekly news * [HTML5 Weekly](https://frontendfoc.us/) * [Mozilla Hacks Weekly Articles](https://hacks.mozilla.org/category/mozilla-hacks-weekly/) * [Responsive Design Newsletter](http://responsivedesignweekly.com/) ### Twitter * [@html5](https://twitter.com/html5) * [@html5rock](https://twitter.com/html5rock) * [@html5gallery](https://twitter.com/html5gallery) * [@html5doctor](https://twitter.com/html5doctor) * [@GameDevHTML5](https://twitter.com/GameDevHTML5) * [@mozhacks](https://twitter.com/mozhacks) * [@googlechrome](https://twitter.com/googlechrome) ## Other awesome lists * [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) * [lists](https://github.com/jnv/lists) * [Community Curated Resources](https://hackr.io/tutorials/learn-html-5) ## Contributing Your contributions are always welcome! [html5.md Github](https://github.com/diegocard/awesome-html5 )