[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10121":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":10,"languages":10,"totalLinesOfCode":10,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":15,"starSnapshotCount":15,"syncStatus":18,"lastSyncTime":37,"discoverSource":38},10121,"spellbook-of-modern-webdev","dexteryy\u002Fspellbook-of-modern-webdev","dexteryy","A Big Picture, Thesaurus, and Taxonomy of Modern JavaScript Web Development","",null,17827,1279,499,10,0,7,34,2,73.22,false,"master",[23,24,25,26,27,28,29,30,31,32,33],"awesome","css3","html5","isomorphic-javascript","javascript","learning","libraries","nodejs","universal-javascript","webapp","webplatform","2026-06-12 04:00:48","\n\u003Ch1 align=\"center\">\n  Spellbook of Modern Web Dev\n\u003C\u002Fh1>\n\n\u003Cdiv align=\"center\">\n  \u003Cem>A Big Picture, Thesaurus, and Taxonomy of Modern JavaScript Web Development\u003C\u002Fem>\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\u003Cbr>\n\u003Cbr>\n\u003Cbr>\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"assets\u002Fcover.png\" alt=\"Spellbook of Modern Web Dev\" width=\"256\">\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\u003Cbr>\n\u003Cbr>\n\u003Cbr>\n\n* This document originated from a bunch of most commonly used links and learning resources I sent to every new web developer on our full-stack web development team.\n* What I'm doing in this document now is trying to provide the __complete view angle__ of __modern web (app or page) development ruled by JavaScript__, reflect __technological advance__ and help developers to __acquire APIs, libraries, tools, services, best practices and learning resource__ which are __not outdated__ and __most commonly used__.\n* I hope this document can __help one developer to have more power to do much more and much better__, just __like a spellbook does in fantasy worlds__.\n* The JS\u002Fweb technology is like [an ocean of stuff you don’t know](https:\u002F\u002Fmedium.com\u002Fjavascript-scene\u002Fwhy-im-thankful-for-js-fatigue-i-know-you-re-sick-of-those-words-but-this-is-different-296fae0c888f). Simply collecting more stuff or composing dozens of \"awesome lists\" into a single one will only exacerbate the [Javascript Fatigue](https:\u002F\u002Fmedium.com\u002F@ericclemmons\u002Fjavascript-fatigue-48d4011b6fc4). So this document must __stay lean__ and focus on __the most frequent problems__ and __the most commonly used stuff__.\n* So for each problem domain and each technology, I try my best to pick only __one or a few__ links.\n* Which link belongs to \"not outdated and most commonly used stuff\" is not only decided by __clear trends__, __empirical observation__, and __working experience__, also by __public data__ and __web scraping scripts__.\n* __The npm package statistics (like download count) are given more weight than Github repo statistics (like starring data)__ because npm statistics can better reflect the actual usage and popularity.\n* Prefer __fine-grained classifications and deep hierarchies__ over __featureless descriptions and distractive comments__.\n* Ideally, __each line is a unique category__. The __\" \u002F \"__ symbol between the links means they are replaceable. The __\", \"__ symbol between the links means they are complementary.\n* I wish this document could be closer to a kind of __knowledge graph__ or __skill tree__ than a list or a collection.\n* It currently contains __2000+__\u003C!-- \\[[^\\]]+\\] --> links (projects, tools, plugins, services, articles, books, sites, etc.)\n* Feel free to submit the __missing__ or __better__ links in your opinion. Also, please provide the __reason__.\n* [Why not add a Europe (or other regions) section](https:\u002F\u002Fgithub.com\u002Fdexteryy\u002Fspellbook-of-modern-webdev\u002Fpull\u002F4#issuecomment-308073026)? [Why not add your project](https:\u002F\u002Fgithub.com\u002Fdexteryy\u002Fspellbook-of-modern-webdev\u002Fpull\u002F5)? [Why so many React-based projects? Why not Angular\u002FVue.js\u002FXXX](http:\u002F\u002Fwww.npmtrends.com\u002Frxjs-vs-mobx-vs-redux-vs-vue-vs-react-vs-@angular\u002Fcore-vs-@cycle\u002Fdom-vs-backbone-vs-jquery-vs-vuex)?\n\n#### Understanding Modern Web Development\n\n* In English: coming soon...\n* In Chinese: [slides](https:\u002F\u002Fspeakerdeck.com\u002Fdexteryy\u002Funderstanding-modern-web-development-at-jsconf-china-2017-zhong-wen) @ [JSConf CN 2017](http:\u002F\u002F2017.jsconf.cn\u002F#schedule)\n\n\u003Cbr>\n\u003Cbr>\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"assets\u002Fshowme.jpg\" width=\"\">\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\u003Cbr>\n\n---\n\n## Table of Contents\n\n\n- [Platforms and Languages](#platforms-and-languages)\n  - [Open Web Platform](#open-web-platform)\n    - Learning, Reference, Visual Tools\n    - Performance, Security, Semantics \u002F SEO \u002F Accessibility\n  - [HTML5 \u002F Web APIs](#html5--web-apis)\n    - HTML\u002FDOM, Appearance, Interaction, Access, Network, Media, Graphics, Computing...\n  - [CSS Features](#css-features)\n    - RWD, Layout, Typography, Text, Animation, Effects...\n  - [Modern CSS \u002F Next-Gen CSS](#modern-css--next-gen-css)\n    - CSS Module, PostCSS, CSS in JS\n    - Best Practices (Skeleton, Methodology, Code Style...)\n    - Know More about Web Design \u002F UI Design \u002F UX Design (RWD, Atomic Design, Motion Design, Grid System, Typography, Style Guide...)\n  - [Modern JS \u002F Next-Gen JS](#modern-js--next-gen-js)\n    - ES6+ Features, Intro to ES6+, Re-intro to JS, Important Proposals, Functional Programming, FRP, Static Typing, Code Style...\n  - [WebAssembly](#webassembly)\n    - Concepts, Features, Rust, ...\n  - [Node.js](#nodejs)\n    - Intro, Workshop, Best Practices...\n  - [Platform Compatibility and Proposal Status](#platform-compatibility-and-proposal-status)\n    - Platform Status \u002F Releases \u002F Updates, ECMAScript Compatibility\n    - Proposal Status (W3C WG, WICG, WHATWG, ECMA TC39, Node.js CTC)\n    - JS Engine (V8, JSC, Chakra), Web\u002FJS Runtime (Electron, Cordova, React Native...), Device...\n  - [Cross-browser \u002F Polyfill Libraries](#cross-browser--polyfill-libraries)\n    - Appearance, Interaction, Access, Network, Performance, Offline, Media...\n  - [npm Ecosystem](#npm-ecosystem)\n    - Finding Packages (Search, Stats, Rank)\n    - Dependency Management \u002F Release \u002F Maintenance (npm, yarn, lerna, ncp...)\n    - Convention (Open Source, SemVer, package.json, Small modules, Isomorphic JS \u002F Universal JS...)\n  - [Universal Utility Libraries](#universal-utility-libraries)\n    - Standard Library Extensions (FP, OOP, Async...)\n    - Hashing \u002F Generating\n    - Parsing \u002F Manipulating (URL, Validator, i18n, Date, Numbers, Color, Text, Buffer \u002F Blob...)\n    - Logic, Network, Storage, NLP, ML...\n- [Universal Web Apps \u002F Web Pages](#universal-web-apps--web-pages)\n  - [GUI Framework](#gui-framework)\n    - View \u002F ViewModel \u002F ViewController (React)\n    - Model \u002F App State (Redux)\n    - API (GraphQL)\n    - GUI Architectures (MVC, MVP, PM, MVVM, Flux, Redux, Elm, MVI, SAM...)\n  - [UI Toolkits](#ui-toolkits)\n    - CSS, React...\n  - [Standalone UI Components](#standalone-ui-components)\n    - Layout, Icon, Button, Form, Overlay, Picker, Content, Editor...\n- [Client Side](#client-side)\n  - [UX Libraries](#ux-libraries)\n    - Drag & Drop, Gesture, Scrolling, Zoom, Tooltip, Tour...\n  - [Graphic Libraries](#graphic-libraries)\n    - Animation (Effects, Loading, Scrolling, Parallax, Transition, Timeline, Motion \u002F Curved Path...)\n    - 2D (Canvas, SVG, Physics...), 3D (WebGL, Physics...)\n    - Data Visualization, Game...\n  - [Hybrid Libraries](#hybrid-libraries)\n    - Electron, React Native\n- [Server Side](#server-side)\n  - [Network](#network)\n    - HTTP (Intro, Same-origin policy, Performance, HTTPS, HTTP\u002F2, gRPC...)\n    - TCP, UDP...\n  - [Server-side Best Practices](#server-side-best-practices)\n    - Restful API, SaaS, Microservices (API Gateway, Serverless)\n    - Cloud \u002F Distributed, Web Hosting \u002F Non-distributed\n    - Authentication \u002F Authorization, Security, Logging \u002F Monitoring, DevOps...\n  - [Microservices \u002F API Services (Node.js)](#microservices--api-services-nodejs)\n    - Frameworks (RESTful API, Microservices, Serverless, Bots...), GraphQL, DocGen + CodeGen...\n  - [Server-side Libraries (Node.js)](#server-side-libraries-nodejs)\n    - Configuration, Debugging, Protocols, Network, Crypto, Auth, Storage, Jobs, Scraping, Images, Parsing \u002F Generating, NLP...\n  - [Cloud Services (Global)](#cloud-services-global)\n    - Compute (FaaS \u002F Serverless \u002F WebHook, PaaS, CaaS)\n    - Storage (Object Storage, DBaaS)\n    - BaaS (CRUD, Auth, Search, Email, SMS...)\n    - AIaaS \u002F BDaaS (Natural Language, Computer Vision...)\n  - [Cloud Services (China)](#cloud-services-china)\n    - The evil twins inside [the Great Firewall of China](https:\u002F\u002Fgithub.com\u002Fdexteryy\u002Fspellbook-of-modern-webdev\u002Fpull\u002F4)\n- [Tooling](#tooling)\n  - [Testing](#testing)\n    - Unit Testing \u002F Test Runner, Test Doubles\n    - Web Testing (Integration Testing, Functional\u002FE2E Testing, Visual testing, Monkey Testing, Headless Browsers)\n    - Server-side Testing (Functional Testing, Load Testing)\n    - Benchmark Testing\n    - Analysis (Code Coverage, Node.js Security...)\n  - [Documentation](#documentation)\n    - JS, API, CLI, CSS \u002F Style Guide, Writing\n  - [Toolchain](#toolchain)\n    - Compiler \u002F Transpiler \u002F Preprocessor (Babel, PostCSS...)\n    - Loader \u002F Builder \u002F Bundler (Webpack, Rollup...)\n    - Minifier \u002F Compressor \u002F Optimizer (Prepack, Babili \u002F Uglify, imagemin, cssnano \u002F clean-css...)\n    - Formatter (Prettier, Stylefmt...)\n    - Static Analysis (ESLint, Flow, StyleLint...)\n    - Task Automation (npm scripts, Gulp...)\n  - [Workflow](#workflow)\n    - Development (Micro Generator, Live Reload \u002F Watch \u002F Preview, Dev Tools, HTTP Inspector, Debugging Proxy...)\n    - Deployment (Process Supervisor, Containers, Container Clusters, PaaS)\n    - Monitoring (Error Tracking, Logging, APM...)\n  - [Command-line Environment (Mac)](#command-line-environment-mac)\n    - Terminal, Homebrew, Zsh, Vim, Git, Docker, dotfiles, Utilities...\n  - [Command-line Libraries (Node.js)](#command-line-libraries-nodejs)\n    - Input (Options\u002FArguments Parser, Interactive, Configuration...)\n    - Output (Color \u002F Style, Icon, Updating Log, Notice, Columns, Curses, Drawing...)\n    - Delivery, OS, API, Parser...\n  - [IDE \u002F Editors](#ide--editors)\n    - VSCode Plugins (UI, Formatting, Operating, Static Analysis, Docs, Assistant, Integration...)\n    - Atom Plugins (UI, Formatting, Operating, Static Analysis, Docs, Assistant, Integration...)\n    - Out-of-the-box Atom IDE, Other Electron-based IDE, Programming Fonts...\n  - [Useful Apps](#useful-apps)\n    - Playground, Visual Tools, Viewer, Docs, Automation...\n  - [Collaboration](#collaboration)\n    - Version Control, ChatOps, Kanban, Markdown, Design...\n\nA Subset as a __Learning Path__\n\n1. [Open Web Platform](#open-web-platform)\n2. [HTML5 \u002F Web APIs](#html5--web-apis)\n3. [CSS Features](#css-features)\n4. [Modern CSS \u002F Next-Gen CSS](#modern-css--next-gen-css)\n5. [Modern JS \u002F Next-Gen JS](#modern-js--next-gen-js)\n6. [Platform Compatibility and Proposal Status](#platform-compatibility-and-proposal-status)\n7. [Network](#network)\n8. [Node.js](#nodejs)\n9. [npm Ecosystem](#npm-ecosystem)\n10. [Command-line Environment (Mac)](#command-line-environment-mac)\n11. [IDE \u002F Editors](#ide--editors)\n12. [GUI Framework](#gui-framework)\n13. [Microservices \u002F API Services (Node.js)](#microservices--api-services-nodejs)\n15. [Testing](#testing)\n\nA Subset for __Finding Libraries__\n\n- [Cross-browser \u002F Polyfill Libraries](#cross-browser--polyfill-libraries)\n- [Hybrid Libraries](#hybrid-libraries)\n- [GUI Framework](#gui-framework)\n- [UI Toolkits](#ui-toolkits)\n- [Standalone UI Components](#standalone-ui-components)\n- [UX Libraries](#ux-libraries)\n- [Graphic Libraries](#graphic-libraries)\n- [Universal Utility Libraries](#universal-utility-libraries)\n- [Microservices \u002F API Services (Node.js)](#microservices--api-services-nodejs)\n- [Server-side Libraries (Node.js)](#server-side-libraries-nodejs)\n- [Command-line Libraries (Node.js)](#command-line-libraries-nodejs)\n\nA Subset for __Architecture and Infrastructure__\n\n- [GUI Framework](#gui-framework)\n- [Toolchain](#toolchain)\n- [Workflow](#workflow)\n- [Microservices \u002F API Services (Node.js)](#microservices--api-services-nodejs)\n- [Server-side Best Practices](#server-side-best-practices)\n- [Cloud Services (Global)](#cloud-services-global) \u002F [Cloud Services (China)](#cloud-services-china)\n- [Documentation](#documentation)\n\n---\n\n\u003Cbr>\n\u003Cbr>\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"assets\u002Fmerlins_spell_book.jpg\" width=\"\">\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\u003Cbr>\n\n## Platforms and Languages\n\n### Open Web Platform\n\n* Learning\n  * [What is the Internet](http:\u002F\u002Fwww.20thingsilearned.com\u002Fen-US\u002Fwhat-is-the-internet\u002F), [How does the Internet work](https:\u002F\u002Fwww.w3.org\u002Fwiki\u002FHow_does_the_Internet_work)\n    * HTTP - see _[Server Side > Network](#network)_\n  * [Evolution of the Web](http:\u002F\u002Fwww.evolutionoftheweb.com\u002F)\n    * [Timeline of web browsers](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTimeline_of_web_browsers)\n    * [Dive Into HTML5 - A Quite Biased History of HTML5](http:\u002F\u002Fdiveintohtml5.info\u002Fpast.html)\n    * [20 Things I Learned About Browsers and the Web](http:\u002F\u002Fwww.20thingsilearned.com\u002F)\n  * MDN's [Learn Web Development](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FLearn)\n* Reference\n  * [MDN Web Docs](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb)\n    * [HTML](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTML\u002FReference), [SVG](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FSVG), [CSS](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002FReference), [DOM](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FDocument_Object_Model), [DOM Events](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FEvents), [Web APIs](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI)\n    * [MDN content Roadmap](https:\u002F\u002Ftrello.com\u002Fb\u002FLFl3umOX\u002Fmdn-content-roadmap)\n  * [Google Developers](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002F)\n    * [Web Fundamentals](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002F), [Update](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F), [HTML5Rocks Archived Tutorials](https:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002F)\n  * Apple\n    * [WebKit JS](https:\u002F\u002Fdeveloper.apple.com\u002Freference\u002Fwebkitjs\u002F)\n  * [CSSDB](https:\u002F\u002Fcssdb.org\u002F)\n  * CSS-Tricks's [CSS Almanac](https:\u002F\u002Fcss-tricks.com\u002Falmanac\u002F), [Codrops' CSS Reference](https:\u002F\u002Ftympanus.net\u002Fcodrops\u002Fcss_reference\u002F)\n  * [Mastering CSS Principles: A Comprehensive Guide](https:\u002F\u002Fwww.smashingmagazine.com\u002Fmastering-css-principles-comprehensive-reference-guide\u002F)\n  * [HTML: The Living Standard (Web Developer Edition)](https:\u002F\u002Fdevelopers.whatwg.org\u002F)\n    * [The Web platform: Browser technologies](https:\u002F\u002Fplatform.html5.org\u002F)\n  * [W3Fools](http:\u002F\u002Fwww.w3fools.com\u002F)\n    * [W3Schools Responds to W3Fools](https:\u002F\u002Freadwrite.com\u002F2011\u002F01\u002F17\u002Fw3schools-responds-to-w3fools\u002F)\n    * [Why shouldn't I use W3Schools?](https:\u002F\u002Fcodereview.meta.stackexchange.com\u002Fquestions\u002F4975\u002Fwhy-shouldnt-i-use-w3schools-as-reference), [Why do people hate W3schools?](https:\u002F\u002Fwww.quora.com\u002FWhy-do-people-hate-W3schools-com), [Does W3Schools really suck?](https:\u002F\u002Fwww.quora.com\u002FDoes-W3Schools-really-suck)\n  * Visual Tools\n    * see _[Tooling > Useful Apps](#useful-apps) > Visual Tools_\n* Performance\n  * Rendering\n    * [How Browsers Work: Behind the scenes of modern web browsers](https:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002Finternals\u002Fhowbrowserswork\u002F), \\\n      [How Browsers Lay Out Web Pages](https:\u002F\u002Fdbaron.org\u002Ftalks\u002F2012-03-11-sxsw\u002Fmaster.xhtml)\n    * [Rendering Performance](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fperformance\u002Frendering\u002F)\n    * [GPU Animation: Doing It Right](https:\u002F\u002Fwww.smashingmagazine.com\u002F2016\u002F12\u002Fgpu-animation-doing-it-right\u002F) \u002F [An Introduction to Hardware Acceleration with CSS Animations](https:\u002F\u002Fwww.sitepoint.com\u002Fintroduction-to-hardware-acceleration-css-animations\u002F)\n    * [CSS will-change](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002Fwill-change)\n      * [Everything You Need to Know About the CSS will-change Property](https:\u002F\u002Fdev.opera.com\u002Farticles\u002Fcss-will-change-property\u002F)\n    * [CSS Containment in Chrome 52](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2016\u002F06\u002Fcss-containment)\n  * Loading\n    * [How DNS works](https:\u002F\u002Fhowdns.works\u002F)\n    * [Network resilience](https:\u002F\u002Fweb.dev\u002Freliable)\n    * [Evolution of Script Loading](https:\u002F\u002Fwww.stevesouders.com\u002Fblog\u002F2010\u002F12\u002F06\u002Fevolution-of-script-loading\u002F), [Browser script loading roundup](https:\u002F\u002Fwww.stevesouders.com\u002Fblog\u002F2010\u002F02\u002F07\u002Fbrowser-script-loading-roundup\u002F)\n    * [JavaScript Start-up Performance](https:\u002F\u002Fmedium.com\u002Freloading\u002Fjavascript-start-up-performance-69200f43b201)\n    * [Critical Rendering Path](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fperformance\u002Fcritical-rendering-path\u002F),\n       [CSS and the critical path](http:\u002F\u002Fwww.phpied.com\u002Fcss-and-the-critical-path\u002F)\n  * Offline\n    * see _[HTML5 \u002F Web APIs](#html5--web-apis) > Offline_\n  * Measure\n    * [Performance budgets 101](https:\u002F\u002Fweb.dev\u002Fperformance-budgets-101\u002F)\n    * [Measure Performance with the RAIL Model](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fperformance\u002Frail)\n    * [Measuring Page Load Speed with Navigation Timing](https:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002Fwebperformance\u002Fbasics\u002F)\n    * [Measuring network performance with Resource Timing API](https:\u002F\u002Fdevelopers.googleblog.com\u002F2013\u002F12\u002Fmeasuring-network-performance-with.html)\n    * [User Timing API](https:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002Fwebperformance\u002Fusertiming\u002F)\n    * [Why Web Developers Need to Care about Interactivity](https:\u002F\u002Fphilipwalton.com\u002Farticles\u002Fwhy-web-developers-need-to-care-about-interactivity\u002F)\n      * [requestIdleCallback](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2015\u002F08\u002Fusing-requestidlecallback)\n      * [PerformanceObserver](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FPerformanceObserver)\n  * Optimization\n    * [Fast load times](https:\u002F\u002Fweb.dev\u002Ffast)\n    * [Why Performance Matters](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fperformance\u002Fwhy-performance-matters\u002F)\n    * [Performance audits](https:\u002F\u002Fweb.dev\u002Flighthouse-performance)\n    * [Lighthouse Audit References](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ftools\u002Flighthouse\u002Faudits\u002Fcritical-request-chains)\n* Security\n  * [Safe and secure](https:\u002F\u002Fweb.dev\u002Fsecure)\n  * [The Tangled Web: A Guide to Securing Modern Web Applications](http:\u002F\u002Flcamtuf.coredump.cx\u002Ftangled\u002F)\n  * [HTML5 Security Cheatsheet](https:\u002F\u002Fhtml5sec.org\u002F)\n* Semantics\n  * SEO\n    * [Let’s Talk about Semantics](http:\u002F\u002Fhtml5doctor.com\u002Flets-talk-about-semantics\u002F)\n    * [Easily discoverable](https:\u002F\u002Fweb.dev\u002Fdiscoverable)\n    * [SEO audits](https:\u002F\u002Fweb.dev\u002Flighthouse-seo)\n    * [SEO Tutorial For Beginners](https:\u002F\u002Fwww.hobo-web.co.uk\u002Fseo-tutorial\u002F), \\\n      Google's [Search Engine Optimization Starter Guide](http:\u002F\u002Fwww.google.com\u002Fwebmasters\u002Fdocs\u002Fsearch-engine-optimization-starter-guide.pdf)\n  * Accessibility\n    * [Accessible to all](https:\u002F\u002Fweb.dev\u002Faccessible)\n    * [The A11Y Project](http:\u002F\u002Fa11yproject.com\u002F), [Using ARIA](https:\u002F\u002Fw3c.github.io\u002Fusing-aria\u002F)\n\n\\>\\> Return to [Table of Contents](#table-of-contents)\n\n### HTML5 \u002F Web APIs\n\n* HTML \u002F DOM\n  * [You Might Not Need jQuery](http:\u002F\u002Fyoumightnotneedjquery.com\u002F), \\\n    [You Don't Need jQuery](https:\u002F\u002Fgithub.com\u002Foneuijs\u002FYou-Dont-Need-jQuery), \\\n    [(Now More Than Ever) You Might Not Need jQuery](https:\u002F\u002Fcss-tricks.com\u002Fnow-ever-might-not-need-jquery\u002F)\n  * [HEAD](https:\u002F\u002Fgithub.com\u002Fjoshbuchea\u002FHEAD\u002F)\n  * [favicon](https:\u002F\u002Fgithub.com\u002Faudreyr\u002Ffavicon-cheat-sheet)\n  * [Form pseudo-element](https:\u002F\u002Fgist.github.com\u002Fwebtobesocial\u002Faefd6e25064c08e0cc9a)\n  * [Native form elements](http:\u002F\u002Fnativeformelements.com\u002F)\n  * [Detect DOM changes with Mutation Observers](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2012\u002F02\u002FDetect-DOM-changes-with-Mutation-Observers)\n* Appearance\n  * [Web Components](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2017\u002F01\u002Fwebcomponents-org)\n    * [Shadow DOM v1](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fgetting-started\u002Fprimers\u002Fshadowdom), [Custom Elements v1](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fgetting-started\u002Fprimers\u002Fcustomelements)\n  * [Web Animations](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWeb_Animations_API)\n    * [Web Animation Past, Present, and Future](https:\u002F\u002Falistapart.com\u002Farticle\u002Fweb-animation-past-present-and-future)\n    * [Let's talk about the Web Animations API](http:\u002F\u002Fdanielcwilson.com\u002Fblog\u002F2015\u002F07\u002Fanimations-intro\u002F)\n    * Status - [Are we animated yet?](https:\u002F\u002Fbirtles.github.io\u002Fareweanimatedyet\u002F)\n* Interaction\n  * Desktop\n    * [MouseEvent](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FMouseEvent), [WheelEvent](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWheelEvent), [KeyboardEvent](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FKeyboardEvent)\n    * [Drag and Drop](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FHTML_Drag_and_Drop_API), [Pointer Lock](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FPointer_Lock_API)\n  * Mobile\n    * [TouchEvent](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FTouchEvent)\n      * [300ms tap delay, gone away](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2013\u002F12\u002F300ms-tap-delay-gone-away), [More Responsive Tapping on iOS](https:\u002F\u002Fwebkit.org\u002Fblog\u002F5610\u002Fmore-responsive-tapping-on-ios\u002F)\n    * [DeviceOrientationEvent + DeviceMotionEvent](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FDetecting_device_orientation)\n  * Hardware Agnostic\n    * [PointerEvent](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FPointerEvent), [Selection](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FSelection)\n    * [Intersection Observer API](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FIntersection_Observer_API) ([Intro](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2016\u002F04\u002Fintersectionobserver))\n    * [Resize Observer API](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2016\u002F10\u002Fresizeobserver)\n  * [Gamepad](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FGamepad_API), [Web Speech](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWeb_Speech_API)\n* Access\n  * [URL](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FURL), [History](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FHistory), [Navigator](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FNavigator), [Screen](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FScreen), [Page Visibility](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FPage_Visibility_API), [Clipboard](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002Ftag\u002FClipboard%20API), [Performance](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FPerformance), [Console](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FConsole)\n  * [Permissions](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FPermissions_API), [Geolocation](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FGeolocation)\n  * [Web Notifications](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FNotifications_API) , [Vibration](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FVibration_API)\n* Network\n  * [XMLHttpRequest2](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FXMLHttpRequest)\n  * [Fetch](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FFetch_API)\n    * [Abortable Fetch](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2017\u002F09\u002Fabortable-fetch)\n    * [Why I won’t be using Fetch API in my apps](https:\u002F\u002Fmedium.com\u002F@shahata\u002Fwhy-i-wont-be-using-fetch-api-in-my-apps-6900e6c6fe78)\n  * [WebSocket](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWebSocket), [Server-sent Event](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FEventSource)\n  * [WebRTC](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWebRTC_API)\n    * [Getting Started with WebRTC](https:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002Fwebrtc\u002Fbasics\u002F)\n    * [WebRTC in the real world: STUN, TURN and signaling](https:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002Fwebrtc\u002Finfrastructure\u002F)\n    * [WebRTC data channels](https:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002Fwebrtc\u002Fdatachannels\u002F)\n    * Workshop - [Codelabs - Real time communication with WebRTC](https:\u002F\u002Fcodelabs.developers.google.com\u002Fcodelabs\u002Fwebrtc-web\u002F)\n* Offline\n  * Overview\n    * [Offline UX Considerations](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Finstant-and-offline\u002Foffline-ux)\n    * [The offline cookbook](https:\u002F\u002Fjakearchibald.com\u002F2014\u002Foffline-cookbook\u002F)\n    * [Offline First - HTML5 technologies for a faster, smarter, more engaging web](http:\u002F\u002Fwww.webdirections.org\u002Fofflineworkshop\u002FibooksDraft.pdf)\n  * [Web Storage](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWeb_Storage_API), [IndexedDB](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FIndexedDB_API#database_connection)\n  * [FileReader](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FFileReader), [File](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FFile), [Blob](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FBlob)\n  * [Service Worker](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FService_Worker_API)\n    * [Service Workers Explained](https:\u002F\u002Fgithub.com\u002Fw3c\u002FServiceWorker\u002Fblob\u002Fmaster\u002Fexplainer.md)\n    * [Service Workers: an Introduction](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fgetting-started\u002Fprimers\u002Fservice-workers), [The Service Worker Lifecycle](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Finstant-and-offline\u002Fservice-worker\u002Flifecycle)\n    * [Instant Loading Web Apps with an Application Shell Architecture](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2015\u002F11\u002Fapp-shell)\n    * [Service Worker Cookbook](https:\u002F\u002Fserviceworke.rs\u002F)\n    * Status - [Is ServiceWorker Ready?](https:\u002F\u002Fjakearchibald.github.io\u002Fisserviceworkerready\u002F)\n  * [Progressive Web Apps](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fprogressive-web-apps\u002F)\n    * [Progressive Web App Checklist](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fprogressive-web-apps\u002Fchecklist), [PWA audits](https:\u002F\u002Fweb.dev\u002Flighthouse-pwa)\n    * [Offline Storage for Progressive Web Apps](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Finstant-and-offline\u002Fweb-storage\u002Foffline-for-pwa)\n    * [The PRPL pattern](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fperformance\u002Fprpl-pattern\u002F)\n    * Workshop - [Codelabs - Your First Progressive Web App](https:\u002F\u002Fcodelabs.developers.google.com\u002Fcodelabs\u002Fyour-first-pwapp\u002F)\n* Media\n  * [\\\u003Cvideo\\>](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTML\u002FElement\u002Fvideo), [\\\u003Caudio\\>](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTML\u002FElement\u002Faudio)\n  * [Web Audio API](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWeb_Audio_API)\n    * [Web Audio API Book](http:\u002F\u002Fchimera.labs.oreilly.com\u002Fbooks\u002F1234000001552\u002Findex.html)\n    * Workshop - [Web Audio School](https:\u002F\u002Fgithub.com\u002Fmmckegg\u002Fweb-audio-school)\n  * [Media Streams](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FMedia_Streams_API)\n    * [Capturing Audio & Video in HTML5](https:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002Fgetusermedia\u002Fintro\u002F)\n* Graphics\n  * [SVG](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FSVG)\n    * [Styling And Animating SVGs With CSS](https:\u002F\u002Fwww.smashingmagazine.com\u002F2014\u002F11\u002Fstyling-and-animating-svgs-with-css\u002F)\n  * [Canvas](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FHTML\u002FCanvas)\n    * [HTML5 Canvas](http:\u002F\u002Fchimera.labs.oreilly.com\u002Fbooks\u002F1234000001654\u002Findex.html)\n  * [WebGL](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWebGL_API)\n    * [WebGL by example](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FLearn\u002FWebGL\u002FBy_example), [WebGL tutorial](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWebGL_API\u002FTutorial), [Learning WebGL](http:\u002F\u002Flearningwebgl.com\u002Fblog\u002F?page_id=1217)\n    * [Primer: Shaders](https:\u002F\u002Fnotes.underscorediscovery.com\u002Fshaders-a-primer\u002F), [An Introduction to Shaders](https:\u002F\u002Faerotwist.com\u002Ftutorials\u002Fan-introduction-to-shaders-part-1\u002F)\n    * [The Book of Shaders](http:\u002F\u002Fthebookofshaders.com\u002F)\n    * Workshop -[Shader School](https:\u002F\u002Fgithub.com\u002Fstackgl\u002Fshader-school), [WebGL Workshop](https:\u002F\u002Fgithub.com\u002Fstackgl\u002Fwebgl-workshop), [WebGL Academy](http:\u002F\u002Fwww.webglacademy.com\u002F)\n    * [Learning Modern 3D Graphics Programming](https:\u002F\u002Fparoj.github.io\u002Fgltut\u002F)\n  * [WebXR \u002F Immersive Web](https:\u002F\u002Fgithub.com\u002Fimmersive-web\u002Fwebxr)\n    * [Welcome to the immersive web](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2018\u002F05\u002Fwelcome-to-immersive)\n    * [Progressive WebXR](https:\u002F\u002Fblog.mozvr.com\u002Fprogressive-webxr-ar-store\u002F)\n* Computing\n  * [Web Cryptography](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FCrypto)\n  * [Web Workers](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWeb_Workers_API)\n  * WebAssembly\n    * see _[WebAssembly](#webassembly)_\n\n\\>\\> Return to [Table of Contents](#table-of-contents)\n\n### CSS Features\n\n* Basics\n  * [You Don't Need JavaScript](https:\u002F\u002Fgithub.com\u002Fyou-dont-need\u002FYou-Dont-Need-JavaScript)\n  * [CSS Selectors from CSS4 till CSS1](http:\u002F\u002Fcss4-selectors.com\u002Fselectors\u002F)\n    * [CSS Diner - Where we feast on CSS Selectors!](http:\u002F\u002Fflukeout.github.io\u002F)\n  * [An Ultimate Guide To CSS Pseudo-Classes And Pseudo-Elements](https:\u002F\u002Fwww.smashingmagazine.com\u002F2016\u002F05\u002Fan-ultimate-guide-to-css-pseudo-classes-and-pseudo-elements\u002F)\n  * [@supports Rule (Feature Queries)](https:\u002F\u002Fwww.sitepoint.com\u002Fan-introduction-to-css-supports-rule-feature-queries\u002F)\n  * [Houdini](https:\u002F\u002Fgithub.com\u002Fw3c\u002Fcss-houdini-drafts\u002Fwiki)\n    * [Houdini: Demystifying CSS](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F2016\u002F05\u002Fhoudini), [Houdini: Maybe The Most Exciting Development In CSS You've Never Heard Of](https:\u002F\u002Fwww.smashingmagazine.com\u002F2016\u002F03\u002Fhoudini-maybe-the-most-exciting-development-in-css-youve-never-heard-of\u002F)\n* Responsive Web Design\n  * Media Queries\n    * [Media Queries for Standard Devices](https:\u002F\u002Fcss-tricks.com\u002Fsnippets\u002Fcss\u002Fmedia-queries-for-standard-devices\u002F)\n  * Images\n    * [Responsive Images](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fdesign-and-ui\u002Fresponsive\u002Fimages), [Responsive Images in CSS](https:\u002F\u002Fcss-tricks.com\u002Fresponsive-images-css\u002F)\n  * Units\n    * [Font Size Idea: px at the Root, rem for Components, em for Text Elements](https:\u002F\u002Fcss-tricks.com\u002Frems-ems\u002F), \\\n      [Understanding and Using rem Units in CSS](https:\u002F\u002Fwww.sitepoint.com\u002Funderstanding-and-using-rem-units-in-css\u002F)\n    * [Truly Fluid Typography With vh And vw Units](https:\u002F\u002Fwww.smashingmagazine.com\u002F2016\u002F05\u002Ffluid-typography\u002F)\n* [Layout](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FLearn\u002FCSS\u002FCSS_layout)\n  * Flexbox, CSS Grid Layout\n    * [CSS Grid, Flexbox And Box Alignment: Our New System For Web Layout](https:\u002F\u002Fwww.smashingmagazine.com\u002F2016\u002F11\u002Fcss-grids-flexbox-and-box-alignment-our-new-system-for-web-layout\u002F)\n    * [A Complete Guide to Flexbox (CSS-Tricks)](https:\u002F\u002Fcss-tricks.com\u002Fsnippets\u002Fcss\u002Fa-guide-to-flexbox\u002F) \u002F [Flexbox (Codrops)](https:\u002F\u002Ftympanus.net\u002Fcodrops\u002Fcss_reference\u002Fflexbox\u002F)\n      * [Using Flexbox today](https:\u002F\u002Fchriswrightdesign.com\u002Fexperiments\u002Fusing-flexbox-today\u002F)\n      * [Solved by Flexbox](https:\u002F\u002Fphilipwalton.github.io\u002Fsolved-by-flexbox\u002F), [Flexbox Patterns](http:\u002F\u002Fwww.flexboxpatterns.com\u002Fhome)\n        * [Centering Elements with Flexbox](https:\u002F\u002Fwww.smashingmagazine.com\u002F2013\u002F05\u002Fcentering-elements-with-flexbox\u002F)\n        * [Quantity Queries with Flexbox](https:\u002F\u002Fwww.smashingmagazine.com\u002F2015\u002F07\u002Fquantity-ordering-with-css\u002F)\n    * [A Complete Guide to Grid (CSS-Tricks)](https:\u002F\u002Fcss-tricks.com\u002Fsnippets\u002Fcss\u002Fcomplete-guide-grid\u002F) \u002F [A Complete Guide to CSS Grid (Codrops)](https:\u002F\u002Ftympanus.net\u002Fcodrops\u002Fcss_reference\u002Fgrid\u002F)\n  * Traditional\n    * [Learn CSS Layout](http:\u002F\u002Flearnlayout.com\u002F)\n      * [Learn CSS Layout - the pedantic way](http:\u002F\u002Fbook.mixu.net\u002Fcss\u002F)\n    * [CSS Floats 101](https:\u002F\u002Falistapart.com\u002Farticle\u002Fcss-floats-101), [All About Floats](https:\u002F\u002Fcss-tricks.com\u002Fall-about-floats\u002F), [CSS Float Theory: Things You Should Know](https:\u002F\u002Fwww.smashingmagazine.com\u002F2007\u002F05\u002Fcss-float-theory-things-you-should-know\u002F)\n    * [CSS Positioning 101](https:\u002F\u002Falistapart.com\u002Farticle\u002Fcss-positioning-101)\n      * [CSS “position: sticky” – Introduction and Polyfills](https:\u002F\u002Fwww.sitepoint.com\u002Fcss-position-sticky-introduction-polyfills\u002F)\n    * [The Z-Index CSS Property: A Comprehensive Look](https:\u002F\u002Fwww.smashingmagazine.com\u002F2009\u002F09\u002Fthe-z-index-css-property-a-comprehensive-look\u002F)\n    * [Centering in CSS: A Complete Guide](https:\u002F\u002Fcss-tricks.com\u002Fcentering-css-complete-guide\u002F), [Absolute Center an Image](https:\u002F\u002Fcss-tricks.com\u002Fsnippets\u002Fcss\u002Fabsolute-center-vertical-horizontal-an-image\u002F), [How To Center in CSS](http:\u002F\u002Fhowtocenterincss.com\u002F)\n* Web Typography\n  * [Using @font-face](https:\u002F\u002Fcss-tricks.com\u002Fsnippets\u002Fcss\u002Fusing-font-face\u002F)\n  * [A Comprehensive Guide to Font Loading Strategies](https:\u002F\u002Fwww.zachleat.com\u002Fweb\u002Fcomprehensive-webfonts\u002F)\n* Text\n  * [Handling Long Words and URLs](https:\u002F\u002Fcss-tricks.com\u002Fsnippets\u002Fcss\u002Fprevent-long-urls-from-breaking-out-of-container\u002F)\n  * [writing-mode](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002Fwriting-mode) + [text-orientation](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002Ftext-orientation)\n* Animation\n  * CSS Transition\n    * [Using CSS transitions](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FCSS\u002FCSS_Transitions\u002FUsing_CSS_transitions)\n    * [Intro to CSS 3D transforms](http:\u002F\u002Fdesandro.github.io\u002F3dtransforms\u002F)\n  * CSS Animation\n    * [The Guide To CSS Animation: Principles and Examples](https:\u002F\u002Fwww.smashingmagazine.com\u002F2011\u002F09\u002Fthe-guide-to-css-animation-principles-and-examples\u002F)\n    * [Upgrading CSS Animation With Motion Curves](https:\u002F\u002Fwww.smashingmagazine.com\u002F2016\u002F08\u002Fcss-animations-motion-curves\u002F)\n  * Motion Path\n    * [Animating Clipped Elements In SVG](https:\u002F\u002Fwww.smashingmagazine.com\u002F2015\u002F12\u002Fanimating-clipped-elements-svg\u002F)\n    * [Moving along a curved path in CSS with layered animation](http:\u002F\u002Ftobiasahlin.com\u002Fblog\u002Fcurved-path-animations-in-css\u002F)\n    * [Future Use: CSS Motion Paths](https:\u002F\u002Fcodepen.io\u002Fdanwilson\u002Fpost\u002Fcss-motion-paths)\n* Effects\n  * [CSS Image Effects](https:\u002F\u002Funa.im\u002Fvintage-washout\u002F)\n  * [Web Image Effects Performance Showdown](https:\u002F\u002Fwww.smashingmagazine.com\u002F2016\u002F05\u002Fweb-image-effects-performance-showdown\u002F)\n    * [Basics of CSS Blend Modes](https:\u002F\u002Fcss-tricks.com\u002Fbasics-css-blend-modes\u002F)\n    * [CSS Blend Modes could be the next big thing in Web Design](https:\u002F\u002Fmedium.com\u002F@bennettfeely\u002Fcss-blend-modes-could-be-the-next-big-thing-in-web-design-6b51bf53743a)\n    * [Understanding CSS Filter Effects](https:\u002F\u002Fwww.html5rocks.com\u002Fen\u002Ftutorials\u002Ffilters\u002Funderstanding-css\u002F)\n  * [Clipping and Masking in CSS](https:\u002F\u002Fcss-tricks.com\u002Fclipping-masking-css\u002F)\n  * [The State of CSS Reflections](https:\u002F\u002Fcss-tricks.com\u002Fstate-css-reflections\u002F)\n  * [CSS Shapes 101](https:\u002F\u002Falistapart.com\u002Farticle\u002Fcss-shapes-101)\n\n\\>\\> Return to [Table of Contents](#table-of-contents)\n\n### Modern CSS \u002F Next-Gen CSS\n\n* Component-based CSS\n  * Utility Class \u002F Functional CSS \u002F Utility-first CSS \u002F Atomic CSS\n    * [The Case for Atomic \u002F Utility-First CSS](https:\u002F\u002Fjohnpolacek.github.io\u002Fthe-case-for-atomic-css\u002F)\n      * [CSS Utility Classes and \"Separation of Concerns\"](https:\u002F\u002Fadamwathan.me\u002Fcss-utility-classes-and-separation-of-concerns\u002F)\n    * [A Year of Utility Classes](https:\u002F\u002Fcss-irl.info\u002Fa-year-of-utility-classes\u002F)\n    * [So you need a CSS utility library?](https:\u002F\u002Fcss-tricks.com\u002Fneed-css-utility-library\u002F)\n    * see _[UI Toolkits](#ui-toolkits)_\n  * [CSS Modules](https:\u002F\u002Fgithub.com\u002Fcss-modules\u002Fcss-modules)\n    * [The End of Global CSS](https:\u002F\u002Fmedium.com\u002Fseek-blog\u002Fthe-end-of-global-css-90d2a4a06284)\n    * Tools - see _[Tooling > Toolchain](#toolchain) > Builder \u002F Bundler > Webpack_\n  * [Styled-Components](https:\u002F\u002Fgithub.com\u002Fstyled-components\u002Fstyled-components) \u002F [Emotion](https:\u002F\u002Femotion.sh\u002F)\n    * [CSS in JS](https:\u002F\u002Fspeakerdeck.com\u002Fvjeux\u002Freact-css-in-js)\n      * [A Unified Styling Language](https:\u002F\u002Fmedium.com\u002Fseek-blog\u002Fa-unified-styling-language-d0c208de2660)\n      * [A Brief History of CSS-in-JS: How We Got Here and Where We’re Going](https:\u002F\u002Flevelup.gitconnected.com\u002Fa-brief-history-of-css-in-js-how-we-got-here-and-where-were-going-ea6261c19f04), [The State of CSS](http:\u002F\u002Fryanogles.by\u002Fcss\u002Fjavascript\u002F2017\u002F05\u002F25\u002Fthe-state-of-css.html)\n      * [Comparison of CSS-in-JS solutions](http:\u002F\u002Fmichelebertoli.github.io\u002Fcss-in-js\u002F)\n    * [Styled Components: Enforcing Best Practices In Component-Based Systems](https:\u002F\u002Fwww.smashingmagazine.com\u002F2017\u002F01\u002Fstyled-components-enforcing-best-practices-component-based-systems\u002F)\n    * [Writing your styles in JS ≠ writing inline styles](http:\u002F\u002Fmxstbr.blog\u002F2016\u002F11\u002Finline-styles-vs-css-in-js\u002F)\n    * Libraries\n      * [styled-system](https:\u002F\u002Fgithub.com\u002Fjxnblk\u002Fstyled-system), [system-components](https:\u002F\u002Fgithub.com\u002Fjxnblk\u002Fstyled-system\u002Ftree\u002Fmaster\u002Fsystem-components), [grid-styled](https:\u002F\u002Fjxnblk.com\u002Fgrid-styled\u002F)\n      * [styled-normalize](https:\u002F\u002Fgithub.com\u002Fsergeysova\u002Fstyled-normalize) \u002F [styled-sanitize](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fstyled-sanitize)\n      * [styled-components-breakpoint](https:\u002F\u002Fgithub.com\u002Fjameslnewell\u002Fstyled-components-breakpoint)\n      * [styled-tools](https:\u002F\u002Fgithub.com\u002Fdiegohaz\u002Fstyled-tools)\n* Preprocessor-based CSS\n  * [PostCSS](http:\u002F\u002Fpostcss.org\u002F)\n    * Intro\n      * [Meet PostCSS](http:\u002F\u002Fwww.meetpostcss.com\u002F)\n      * [PostCSS – A Comprehensive Introduction](https:\u002F\u002Fwww.smashingmagazine.com\u002F2015\u002F12\u002Fintroduction-to-postcss\u002F)\n      * [PostCSS – Sass Killer or Preprocessing Pretender?](https:\u002F\u002Fashleynolan.co.uk\u002Fblog\u002Fpostcss-a-review)\n      * [PostCSS Playground](https:\u002F\u002Fsneakertack.github.io\u002Fpostcss-playground\u002F)\n    * [Preset Env](https:\u002F\u002Fpreset-env.cssdb.org\u002Ffeatures)\n      * [It’s Time To Start Using CSS Custom Properties](https:\u002F\u002Fwww.smashingmagazine.com\u002F2017\u002F04\u002Fstart-using-css-custom-properties\u002F)\n      * [Getting Started With CSS calc()](https:\u002F\u002Fwww.smashingmagazine.com\u002F2015\u002F12\u002Fgetting-started-css-calc-techniques\u002F)\n    * More Plugins - see _[Tooling > Toolchain](#toolchain) > Compiler \u002F Transpiler \u002F Preprocessor > PostCSS_\n* Best Practices\n  * [Sanitize.css](https:\u002F\u002Fgithub.com\u002Fcsstools\u002Fsanitize.css) \u002F [Normalize.css](http:\u002F\u002Fnicolasgallagher.com\u002Fabout-normalize-css\u002F) \u002F [Reset.css](http:\u002F\u002Fmeyerweb.com\u002Feric\u002Ftools\u002Fcss\u002Freset\u002F)\n  * Methodology\n    * [BEM](https:\u002F\u002Fen.bem.info\u002Fmethodology\u002F)\n      * [BEM 101](https:\u002F\u002Fcss-tricks.com\u002Fbem-101\u002F) \u002F [MindBEMding](https:\u002F\u002Fcsswizardry.com\u002F2013\u002F01\u002Fmindbemding-getting-your-head-round-bem-syntax\u002F)\n    * [OOCSS](https:\u002F\u002Fgithub.com\u002Fstubbornella\u002Foocss\u002Fwiki)\n      * [An Introduction To Object Oriented CSS (OOCSS)](https:\u002F\u002Fwww.smashingmagazine.com\u002F2011\u002F12\u002Fan-introduction-to-object-oriented-css-oocss\u002F)\n    * [SMACSS](https:\u002F\u002Fsmacss.com\u002F)\n    * [ITCSS](https:\u002F\u002Fwww.xfive.co\u002Fblog\u002Fitcss-scalable-maintainable-css-architecture\u002F), [RSCSS](http:\u002F\u002Frscss.io\u002F), [SOLID CSS](http:\u002F\u002Fblog.millermedeiros.com\u002Fsolid-css\u002F)\n    * [CSS Guidelines](https:\u002F\u002Fcssguidelin.es\u002F), [MaintainableCSS](https:\u002F\u002Fmaintainablecss.com\u002F)\n  * Code Style\n    * [Idiomatic CSS](https:\u002F\u002Fgithub.com\u002Fnecolas\u002Fidiomatic-css)\n    * [Airbnb CSS \u002F Sass Styleguide](https:\u002F\u002Fgithub.com\u002Fairbnb\u002Fcss)\n    * [Airbnb CSS-in-JavaScript Style Guide](https:\u002F\u002Fgithub.com\u002Fairbnb\u002Fjavascript\u002Ftree\u002Fmaster\u002Fcss-in-javascript)\n    * CSS + HTML\n      * [Isobar Front-end Code Standards](http:\u002F\u002Fisobar-idev.github.io\u002Fcode-standards\u002F)\n      * [Code Guide by @mdo](http:\u002F\u002Fcodeguide.co\u002F)\n* Know More about Web Design \u002F [UI Design \u002F UX Design](https:\u002F\u002Fmedium.com\u002F@Mockplus\u002Fux-vs-ui-vs-ia-vs-ixd-4-confusing-digital-design-terms-defined-ebd679f53f2)\n  * Responsive\u002FAdaptive Web Design\n    * [Responsive Web Design Basics](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fdesign-and-ui\u002Fresponsive\u002F) \u002F\\\n      [Responsive Web Design: What It Is And How To Use It](https:\u002F\u002Fwww.smashingmagazine.com\u002F2011\u002F01\u002Fguidelines-for-responsive-web-design\u002F)\n    * [The Difference Between Responsive and Adaptive Design](https:\u002F\u002Fcss-tricks.com\u002Fthe-difference-between-responsive-and-adaptive-design\u002F)\n    * [The Current State of Adaptive Design](https:\u002F\u002Fmedium.com\u002Fswlh\u002Fthe-current-state-of-adaptive-design-6b2b89b258c4)\n    * Responsivedesign.is - [Design](https:\u002F\u002Fresponsivedesign.is\u002Fdesign\u002F), [Develop](https:\u002F\u002Fresponsivedesign.is\u002Fdevelop\u002F)\n    * Patterns\n      * [Responsive Web Design Patterns](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fdesign-and-ui\u002Fresponsive\u002Fpatterns), \\\n        [Responsive Patterns](http:\u002F\u002Fbradfrost.github.io\u002Fthis-is-responsive\u002Fpatterns.html), \\\n        [ResponsiveDesign.is Patterns](https:\u002F\u002Fresponsivedesign.is\u002Fpatterns\u002F)\n      * [Responsive Data Table Roundup](https:\u002F\u002Fcss-tricks.com\u002Fresponsive-data-table-roundup\u002F)\n  * Motion Design\n    * [Creating Usability with Motion: The UX in Motion Manifesto](https:\u002F\u002Fmedium.com\u002Fux-in-motion\u002Fcreating-usability-with-motion-the-ux-in-motion-manifesto-a87a4584ddc)\n    * [10 principles for smooth web animations](https:\u002F\u002Fblog.gyrosco.pe\u002Fsmooth-css-animations-7d8ffc2c1d29)\n  * Grid System - [A Comprehensive Introduction to Grids in Web Design](https:\u002F\u002Fwebdesign.tutsplus.com\u002Farticles\u002Fa-comprehensive-introduction-to-grids-in-web-design--cms-26521)\n    * calc() grid system - [Lost Grid](http:\u002F\u002Flostgrid.org\u002F)\n    * flexbox grid system - [Flexbox Grid](http:\u002F\u002Fflexboxgrid.com\u002F)\n    * [The 8-Point Grid](https:\u002F\u002Fspec.fm\u002Fspecifics\u002F8-pt-grid)\n  * Typography\n    * [Typography.js](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Ftypography)\n    * [Gutenberg](http:\u002F\u002Fmatejlatin.github.io\u002FGutenberg\u002F)\n    * [The Equilateral Triangle of a Perfect Paragraph](https:\u002F\u002Fbetterwebtype.com\u002Ftriangle)\n    * [The Elements of Typographic Style Applied to the Web](http:\u002F\u002Fwebtypography.net\u002Ftoc\u002F)\n    * [Why is Vertical Rhythm an Important Typography Practice?](https:\u002F\u002Fzellwk.com\u002Fblog\u002Fwhy-vertical-rhythms\u002F)\n      * [CSS with vertical rhythm](https:\u002F\u002Fdrewish.com\u002Ftools\u002Fvertical-rhythm\u002F)\n    * [More Meaningful Typography](https:\u002F\u002Falistapart.com\u002Farticle\u002Fmore-meaningful-typography)\n      * [Modular Scale](http:\u002F\u002Fwww.modularscale.com\u002F)\n  * [Atomic Design](http:\u002F\u002Fbradfrost.com\u002Fblog\u002Fpost\u002Fatomic-web-design\u002F) ([Book](http:\u002F\u002Fatomicdesign.bradfrost.com\u002Ftable-of-contents\u002F))\n    * [The Atomic Workflow — People, Process, And Making Design Systems Happen](https:\u002F\u002Fwww.smashingmagazine.com\u002Fatomic-design-workflow\u002F)\n    * [The “Other” Interface: Atomic Design With Sass](https:\u002F\u002Fwww.smashingmagazine.com\u002F2013\u002F08\u002Fother-interface-atomic-design-sass\u002F)\n    * [Atomic Design – Your Ultimate Guide to Scalable & Modular CSS (Sass)](https:\u002F\u002Fblog.alexdevero.com\u002Fatomic-design-scalable-modular-css-sass\u002F)\n  * Design System\n    * [A comprehensive guide to design systems](https:\u002F\u002Fwww.invisionapp.com\u002Fblog\u002Fguide-to-design-systems\u002F), [Design Systems Handbook](https:\u002F\u002Fwww.designbetter.co\u002Fdesign-systems-handbook\u002Fintroducing-design-systems)\n    * Design Tokens\n      * [Tokens in Design Systems](https:\u002F\u002Fmedium.com\u002Feightshapes-llc\u002Ftokens-in-design-systems-25dd82d58421)\n      * [How to manage your Design Tokens with Style Dictionary](https:\u002F\u002Fmedium.com\u002F@didoo\u002Fhow-to-manage-your-design-tokens-with-style-dictionary-98c795b938aa)\n      * [What Are Design Tokens?](https:\u002F\u002Fcss-tricks.com\u002Fwhat-are-design-tokens\u002F)\n    * Style Guide\n      * [Style Guide Driven Development \u002F Living Style Guides](http:\u002F\u002Fstyleguides.io\u002F)\n      * Tools - see _[Tooling > Documentation](#documentation) > Style Guide_\n      * Examples\n        * Apple's [Human Interface Guidelines](https:\u002F\u002Fdeveloper.apple.com\u002Fdesign\u002F)\n        * Google's [Material Design](https:\u002F\u002Fmaterial.io\u002F)\n        * Microsoft's [Fluent Design System](http:\u002F\u002Ffluent.microsoft.com\u002F)\n        * Airbnb's [new design system](https:\u002F\u002Fairbnb.design\u002Fbuilding-a-visual-language\u002F)\n        * Github's [Primer](http:\u002F\u002Fprimercss.io\u002F)\n        * Atlassian's [Design Guidelines](https:\u002F\u002Fatlassian.design\u002Fguidelines\u002Fproduct\u002Foverview)\n        * Salesforce's [Lightning Design System](https:\u002F\u002Fwww.lightningdesignsystem.com\u002F)\n        * Yelp's [Styleguide](https:\u002F\u002Fwww.yelp.com\u002Fstyleguide)\n        * IBM's [Living Language](https:\u002F\u002Fwww.ibm.com\u002Fdesign\u002Flanguage\u002F)\n        * BBC's [GEL Guidelines](http:\u002F\u002Fwww.bbc.co.uk\u002Fgel\u002Fguidelines\u002F)\n        * A List Apart's [pattern library](http:\u002F\u002Fpatterns.alistapart.com\u002F)\n        * \u003Cspan>USA\u003C\u002Fspan>.gov's [Web Design Standards](https:\u002F\u002Fstandards.usa.gov\u002F)\n        * MailChimp's [Email Design Guide](https:\u002F\u002Fmailchimp.com\u002Femail-design-guide\u002F)\n\n\\>\\> Return to [Table of Contents](#table-of-contents)\n\n### Modern JS \u002F Next-Gen JS\n\n* ES6+ Features\n  * [Overview of ECMAScript 6 features](https:\u002F\u002Fgithub.com\u002Flukehoban\u002Fes6features)\n  * [Babel REPL](http:\u002F\u002Fbabeljs.io\u002Frepl\u002F) \u002F [ES6 New Features Comparison](http:\u002F\u002Fes6-features.org\u002F)\n* Intro to ES6+\n  * [Dr. Axel Rauschmayer's blog](http:\u002F\u002F2ality.com\u002F)\n    * [Exploring ES6](http:\u002F\u002Fexploringjs.com\u002Fes6\u002F)\n    * [Exploring ES2016 and ES2017](http:\u002F\u002Fexploringjs.com\u002Fes2016-es2017\u002F)\n  * [ES6 In Depth](https:\u002F\u002Fhacks.mozilla.org\u002Fcategory\u002Fes6-in-depth\u002F)\n  * Nicholas C. Zakas's [Understanding ECMAScript 6](https:\u002F\u002Fleanpub.com\u002Funderstandinges6)\n* Re-intro to JS\n  * Articles\n    * MDN\n      * [A re-introduction to JavaScript (JS tutorial)](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FA_re-introduction_to_JavaScript)\n      * [Equality comparisons and sameness](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FEquality_comparisons_and_sameness), [Data types and data structures](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FData_structures), [Closures](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FClosures), [Inheritance and the prototype chain](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FInheritance_and_the_prototype_chain)\n      * [Concurrency model and Event Loop](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FEventLoop), [Memory Management](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FMemory_Management)\n    * Dmitry Soshnikov\n      * [JavaScript. The Core](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fjavascript-the-core\u002F)\n      * ECMA-262-3 in detail\n        * [Execution Contexts](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fchapter-1-execution-contexts\u002F), [Variable object](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fchapter-2-variable-object\u002F), [This](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fchapter-3-this\u002F), [Scope chain](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fchapter-4-scope-chain\u002F), [Functions](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fchapter-5-functions\u002F), [Closures](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fchapter-6-closures\u002F), [Evaluation strategy](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fchapter-8-evaluation-strategy\u002F)\n        * OOP: [The general theory](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fchapter-7-1-oop-general-theory\u002F), [ECMAScript implementation](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fchapter-7-2-oop-ecmascript-implementation\u002F),\n      * ECMA-262-5 in detail\n        * [Properties and Property Descriptors](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fes5-chapter-1-properties-and-property-descriptors\u002F), [Strict Mode](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fes5-chapter-2-strict-mode\u002F)\n        * Lexical environments: [Common Theory](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fes5-chapter-3-1-lexical-environments-common-theory\u002F), [ECMAScript implementation](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fes5-chapter-3-2-lexical-environments-ecmascript-implementation\u002F)\n      * Notes\n        * [Equality operators](http:\u002F\u002Fdmitrysoshnikov.com\u002Fnotes\u002Fnote-2-ecmascript-equality-operators\u002F), [Default values of parameters](http:\u002F\u002Fdmitrysoshnikov.com\u002Fecmascript\u002Fes6-notes-default-values-of-parameters\u002F)\n    * Dmitri Pavlutin\n      * [equality operator](https:\u002F\u002Fdmitripavlutin.com\u002Fthe-legend-of-javascript-equality-operator\u002F), [undefined](https:\u002F\u002Fdmitripavlutin.com\u002F7-tips-to-handle-undefined-in-javascript\u002F)\n      * [variables hoisting](https:\u002F\u002Fdmitripavlutin.com\u002Fjavascript-hoisting-in-details\u002F), [variables lifecycle](https:\u002F\u002Fdmitripavlutin.com\u002Fvariables-lifecycle-and-why-let-is-not-hoisted\u002F)\n      * [declare functions](https:\u002F\u002Fdmitripavlutin.com\u002F6-ways-to-declare-javascript-functions\u002F), ['this' keyword](https:\u002F\u002Fdmitripavlutin.com\u002Fgentle-explanation-of-this-in-javascript\u002F)\n      * [three dots](https:\u002F\u002Fdmitripavlutin.com\u002Fhow-three-dots-changed-javascript\u002F)\n      * [array creation](https:\u002F\u002Fdmitripavlutin.com\u002Fpower-up-the-array-creation-in-javascript\u002F), [object literals](https:\u002F\u002Fdmitripavlutin.com\u002Fwhy-object-literals-in-javascript-are-cool\u002F)\n      * [well-known symbols](https:\u002F\u002Fdmitripavlutin.com\u002Fdetailed-overview-of-well-known-symbols\u002F)\n      * [small and plain functions](https:\u002F\u002Fdmitripavlutin.com\u002Fthe-art-of-writing-small-and-plain-functions\u002F)\n      * [unicode](https:\u002F\u002Fdmitripavlutin.com\u002Fwhat-every-javascript-developer-should-know-about-unicode\u002F)\n    * Other\n      * [The Evolution of JavaScript Modularity](https:\u002F\u002Fgithub.com\u002Fmyshov\u002Fhistory-of-javascript\u002Ftree\u002Fmaster\u002F4_evolution_of_js_modularity)\n      * [About object-oriented design and the “class” & “extends” keywords in ES6](http:\u002F\u002Fblog.wolksoftware.com\u002Fabout-classes-inheritance-and-object-oriented-design-in-typescript-and-es6)\n      * [JavaScript Regular Expression Enlightenment](http:\u002F\u002Fcodylindley.com\u002Ftechpro\u002F2013_05_14__javascript-regular-expression-\u002F)\n  * Books\n    * [Eloquent JavaScript](http:\u002F\u002Feloquentjavascript.net\u002F)\n    * [Speaking JavaScript](http:\u002F\u002Fspeakingjs.com\u002Fes5\u002F)\n    * [You Don't Know JS (book series)](https:\u002F\u002Fgithub.com\u002Fgetify\u002FYou-Dont-Know-JS)\n* Reference\n  * [JavaScript Guide](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FGuide)\n  * [JavaScript Reference](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference)\n* Important Proposals\n  * ESM (ECMAScript Modules)\n    * Intro\n      * [The state of JavaScript modules](https:\u002F\u002Fmedium.com\u002Fwebpack\u002Fthe-state-of-javascript-modules-4636d1774358)\n      * [ECMAScript 6 modules: the final syntax](http:\u002F\u002F2ality.com\u002F2014\u002F09\u002Fes6-modules-final.html)\n      * [ES6 Modules in Depth](https:\u002F\u002Fponyfoo.com\u002Farticles\u002Fes6-modules-in-depth#the-es6-module-system)\n    * Browsers\n      * [ECMAScript modules in browsers](https:\u002F\u002Fjakearchibald.com\u002F2017\u002Fes-modules-in-browsers\u002F)\n    * Node.js\n      * [Node.js, TC-39, and Modules](https:\u002F\u002Fhackernoon.com\u002Fnode-js-tc-39-and-modules-a1118aecf95e)\n      * [.mjs](https:\u002F\u002Fnodejs.org\u002Fapi\u002Fesm.html)\n        * [Using ES modules natively in Node.js](http:\u002F\u002F2ality.com\u002F2017\u002F09\u002Fnative-esm-node.html)\n      * [esm](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fesm)\n        * [ES Modules in Node Today!](https:\u002F\u002Fmedium.com\u002Fweb-on-the-edge\u002Fes-modules-in-node-today-32cff914e4b)\n  * [Dynamic Import (`import()`)](https:\u002F\u002Fgithub.com\u002Ftc39\u002Fproposal-dynamic-import)\n  * [Class Fields & Static Properties](https:\u002F\u002Fgithub.com\u002Ftc39\u002Fproposal-class-public-fields\u002Fissues\u002F46#issuecomment-239031422)\n  * [Decorators](https:\u002F\u002Fgithub.com\u002Fwycats\u002Fjavascript-decorators)\n  * [async\u002Fawait](https:\u002F\u002Fgithub.com\u002Fyortus\u002Fasyncawait), [Promise](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference\u002FGlobal_Objects\u002FPromise), [Promise Promote](https:\u002F\u002Fwww.promisejs.org\u002F), [Promises\u002FA+](https:\u002F\u002Fpromisesaplus.com\u002Fimplementations)\n  * [Observables](https:\u002F\u002Fgithub.com\u002Ftc39\u002Fproposal-observable)\n  * [Static Typing](https:\u002F\u002Fecmascript-daily.github.io\u002Fpages\u002Fstatus-of-static-typing-in-ecmascript\u002F)\n  * Concurrent JS \u002F Parallel JavaScript\n    * [Concurrent JavaScript: It can work!](https:\u002F\u002Fwebkit.org\u002Fblog\u002F7846\u002Fconcurrent-javascript-it-can-work\u002F)\n    * [The Path to Parallel JavaScript](https:\u002F\u002Fblog.mozilla.org\u002Fjavascript\u002F2015\u002F02\u002F26\u002Fthe-path-to-parallel-javascript\u002F)\n      * [A Taste of JavaScript’s New Parallel Primitives](https:\u002F\u002Fhacks.mozilla.org\u002F2016\u002F05\u002Fa-taste-of-javascripts-new-parallel-primitives\u002F)\n      * [A cartoon intro to ArrayBuffers and SharedArrayBuffers](https:\u002F\u002Fhacks.mozilla.org\u002F2017\u002F06\u002Fa-cartoon-intro-to-arraybuffers-and-sharedarraybuffers\u002F)\n* Functional Programming\n  * [Functional Programming for JavaScript People](https:\u002F\u002Fmedium.com\u002F@chetcorcos\u002Ffunctional-programming-for-javascript-people-1915d8775504)\n  * [Functional Programming Jargon](https:\u002F\u002Fgithub.com\u002Fhemanth\u002Ffunctional-programming-jargon)\n  * [Composing Software](https:\u002F\u002Fmedium.com\u002Fjavascript-scene\u002Fthe-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c)\n  * Books\n    * [Professor Frisby's Mostly Adequate Guide to Functional Programming](https:\u002F\u002Fdrboolean.gitbooks.io\u002Fmostly-adequate-guide)\n    * [Functional-Light JavaScript](https:\u002F\u002Fgithub.com\u002Fgetify\u002Ffunctional-light-js)\n  * [Lodash's FP Guide](https:\u002F\u002Fgithub.com\u002Flodash\u002Flodash\u002Fwiki\u002FFP-Guide)\n  * [Introduction to Immutable.js and Functional Programming Concepts](https:\u002F\u002Fauth0.com\u002Fblog\u002Fintro-to-immutable-js\u002F)\n  * [Why Ramda?](http:\u002F\u002Ffr.umio.us\u002Fwhy-ramda\u002F)\n    * [The Philosophy of Ramda](http:\u002F\u002Ffr.umio.us\u002Fthe-philosophy-of-ramda\u002F)\n    * [Favoring Curry](http:\u002F\u002Ffr.umio.us\u002Ffavoring-curry\u002F)\n    * [Thinking in Ramda](http:\u002F\u002Frandycoulman.com\u002Fblog\u002F2016\u002F05\u002F24\u002Fthinking-in-ramda-getting-started\u002F)\n  * [Fantasy Land](https:\u002F\u002Fgithub.com\u002Ffantasyland\u002Ffantasy-land)\n    * [From Callback to Future -> Functor -> Monad](https:\u002F\u002Fhackernoon.com\u002Ffrom-callback-to-future-functor-monad-6c86d9c16cb5)\n    * [ADT (Algebraic Data Types)](http:\u002F\u002Fblog.jenkster.com\u002F2016\u002F06\u002Ffunctional-mumbo-jumbo-adts.html)\n    * [JavaScript and Type Thinking](https:\u002F\u002Fmedium.com\u002F@yelouafi\u002Fjavascript-and-type-thinking-735edddc388d)\n    * [Functors, Applicatives, And Monads In Pictures](http:\u002F\u002Fadit.io\u002Fposts\u002F2013-04-17-functors,_applicatives,_and_monads_in_pictures.html)\n* FRP (Functional Reactive Programming)\n  * [The introduction to Reactive Programming you've been missing](https:\u002F\u002Fgist.github.com\u002Fstaltz\u002F868e7e9bc2a7b8c1f754)\n  * [How Is Reactive Different From Procedural Programming?](http:\u002F\u002Finsights.dice.com\u002F2014\u002F01\u002F13\u002Fhow-is-reactive-different-from-procedural-programming\u002F)\n  * [A General Theory of Reactivity](https:\u002F\u002Fgithub.com\u002Fkriskowal\u002Fgtor)\n  * [Learn RxJS](https:\u002F\u002Fwww.learnrxjs.io\u002F)\n    * [Rx Book](http:\u002F\u002Fxgrommx.github.io\u002Frx-book\u002Findex.html)\n    * [Functional Programming in JavaScript](http:\u002F\u002Freactivex.io\u002Flearnrx\u002F)\n    * [RxMarbles](http:\u002F\u002Frxmarbles.com\u002F)\n* Static Typing\n  * Intro\n    * [Why use static types in JavaScript?](https:\u002F\u002Fmedium.freecodecamp.com\u002Fwhy-use-static-types-in-javascript-part-1-8382da1e0adb)\n    * [You Might Not Need TypeScript (or Static Types)](https:\u002F\u002Fmedium.com\u002Fjavascript-scene\u002Fyou-might-not-need-typescript-or-static-types-aa7cb670a77b)\n  * [Flow](https:\u002F\u002Fflow.org\u002Fen\u002Fdocs\u002F)\n    * [Flow Runtime](https:\u002F\u002Fcodemix.github.io\u002Fflow-runtime\u002F)\n    * [Flow Comments](https:\u002F\u002Fflow.org\u002Fblog\u002F2015\u002F02\u002F20\u002FFlow-Comments\u002F)\n  * [TypeScript](http:\u002F\u002Fwww.typescriptlang.org\u002F)\n    * [TypeScript Playground](https:\u002F\u002Fwww.typescriptlang.org\u002Fplay\u002F)\n    * [DefinitelyTyped](http:\u002F\u002Fdefinitelytyped.org\u002F), [TypeSearch](http:\u002F\u002Fmicrosoft.github.io\u002FTypeSearch\u002F)\n  * [tcomb](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Ftcomb)\n  * [JSDoc Tags](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fclosure-compiler\u002Fwiki\u002FAnnotating-JavaScript-for-the-Closure-Compiler)\n    * [jsdoc-to-assert](https:\u002F\u002Fgithub.com\u002Fazu\u002Fjsdoc-to-assert)\n* Concurrent JS \u002F Parallel JavaScript\n  * [Napa.js](https:\u002F\u002Fgithub.com\u002FMicrosoft\u002Fnapajs\u002F)\n* Code Style\n  * [Airbnb JavaScript Style Guide](https:\u002F\u002Fgithub.com\u002Fairbnb\u002Fjavascript)\n  * [Node.js Style Guide](https:\u002F\u002Fgithub.com\u002Ffelixge\u002Fnode-style-guide)\n  * [Clean Code JavaScript](https:\u002F\u002Fgithub.com\u002Fryanmcdermott\u002Fclean-code-javascript)\n  * [JavaScript Clean Coding Best Practices](https:\u002F\u002Fblog.risingstack.com\u002Fjavascript-clean-coding-best-practices-node-js-at-scale\u002F)\n\n\\>\\> Return to [Table of Contents](#table-of-contents)\n\n### WebAssembly\n\n* References\n  * [WebAssembly.org](http:\u002F\u002Fwebassembly.org\u002F)\n  * [MDN docs](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWebAssembly)\n* Concepts\n  * [WebAssembly High-Level Goals](https:\u002F\u002Fgithub.com\u002FWebAssembly\u002Fdesign\u002Fblob\u002Fmaster\u002FHighLevelGoals.md)\n  * [Minimum Viable Product](https:\u002F\u002Fgithub.com\u002FWebAssembly\u002Fdesign\u002Fblob\u002Fmaster\u002FMVP.md)\n  * [WebAssembly concepts](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWebAssembly\u002FConcepts)\n  * [An Abridged Cartoon Introduction To WebAssembly](https:\u002F\u002Fwww.smashingmagazine.com\u002F2017\u002F05\u002Fabridged-cartoon-introduction-webassembly\u002F)\n* Features\n  * [Features to add after the MVP](https:\u002F\u002Fgithub.com\u002FWebAssembly\u002Fdesign\u002Fblob\u002Fmaster\u002FFutureFeatures.md)\n  * [WebAssembly proposals](https:\u002F\u002Fgithub.com\u002FWebAssembly\u002Fproposals)\n* Workshop\n  * [Codelabs - An Introduction to Web Assembly](https:\u002F\u002Fcodelabs.developers.google.com\u002Fcodelabs\u002Fweb-assembly-intro\u002F)\n* Languages\n  * [Rust](https:\u002F\u002Fwww.rust-lang.org)\n    * [Rust and WebAssembly](https:\u002F\u002Frustwasm.github.io\u002Fdocs.html)\n      * [The Rust Wasm Book](https:\u002F\u002Frustwasm.github.io\u002Fdocs\u002Fbook\u002F)\n\n### Node.js\n\n* Intro\n  * [The Art of Node](https:\u002F\u002Fgithub.com\u002Fmaxogden\u002Fart-of-node)\n  * [You Don’t Know Node](https:\u002F\u002Fwebapplog.com\u002Fyou-dont-know-node\u002F)\n  * [RisingStack's](https:\u002F\u002Fblog.risingstack.com\u002Fnode-js-at-scale-understanding-node-js-event-loop\u002F) \u002F [NodeSource's](https:\u002F\u002Fnodesource.com\u002Fblog\u002Funderstanding-the-nodejs-event-loop\u002F) Understanding the Node.js Event Loop\n  * [Node.js Garbage Collection Explained](https:\u002F\u002Fblog.risingstack.com\u002Fnode-js-at-scale-node-js-garbage-collection\u002F)\n  * [Stream Handbook](https:\u002F\u002Fgithub.com\u002Fsubstack\u002Fstream-handbook)\n    * [A Brief History of Node Streams](https:\u002F\u002Fmedium.com\u002Fthe-node-js-collection\u002Fa-brief-history-of-node-streams-pt-1-3401db451f21)\n    * [Understanding Object Streams](https:\u002F\u002Fnodesource.com\u002Fblog\u002Funderstanding-object-streams\u002F)\n  * [Keeping the Node.js core small](https:\u002F\u002Fdeveloper.ibm.com\u002Fnode\u002F2017\u002F04\u002F20\u002Fkeeping-node-js-core-small\u002F)\n  * [Debugging Node.js with Google Chrome](https:\u002F\u002Fmedium.com\u002Fthe-node-js-collection\u002Fdebugging-node-js-with-google-chrome-4965b5f910f4)\n    * [Add v8_inspector supports](https:\u002F\u002Fmedium.com\u002F@paul_irish\u002Fdebugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27)\n    * [How to Debug Node.js with the Best Tools Available](https:\u002F\u002Fblog.risingstack.com\u002Fhow-to-debug-nodej-js-with-the-best-tools-available\u002F)\n* Workshop\n  * [NodeSchool](https:\u002F\u002Fnodeschool.io\u002F)\n    * [learnyounode](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Flearnyounode)\n* Best Practices\n  * [The Node Way](http:\u002F\u002Fthenodeway.io\u002Fintroduction\u002F)\n  * [Joyent's Production Practices - Design](https:\u002F\u002Fwww.joyent.com\u002Fnode-js\u002Fproduction\u002Fdesign\u002F), [Error Handling](https:\u002F\u002Fwww.joyent.com\u002Fnode-js\u002Fproduction\u002Fdesign\u002Ferrors)\n  * [Best Practices for Node.js Development](https:\u002F\u002Fdevcenter.heroku.com\u002Farticles\u002Fnode-best-practices)\n  * [Node.js Best Practices](https:\u002F\u002Fgithub.com\u002Falanjames1987\u002FNode.js-Best-Practices)\n\n\\>\\> Return to [Table of Contents](#table-of-contents)\n\n### Platform Compatibility and Proposal Status\n\n* Web\n  * Platform Status\n    * [Can I Use](http:\u002F\u002Fcaniuse.com\u002F)\n    * [Chrome](https:\u002F\u002Fwww.chromestatus.com\u002Ffeatures), [WebKit](https:\u002F\u002Fwebkit.org\u002Fstatus\u002F), [Firefox](https:\u002F\u002Fplatform-status.mozilla.org\u002F), [Edge](https:\u002F\u002Fdeveloper.microsoft.com\u002Fen-us\u002Fmicrosoft-edge\u002Fplatform\u002Fstatus\u002F), [TBS (China)](http:\u002F\u002Fx5.tencent.com\u002Ftbs\u002Fguide\u002Fw3c.html)\n  * Platform Releases\n    * [Chrome](https:\u002F\u002Fchromereleases.googleblog.com\u002F), [Safari](https:\u002F\u002Fdeveloper.apple.com\u002Fsafari\u002Fwhats-new\u002F) ([Webkit](https:\u002F\u002Ftrac.webkit.org\u002F)), [Firefox](https:\u002F\u002Fwww.mozilla.org\u002Fen-US\u002Ffirefox\u002Freleases\u002F), [Edge](https:\u002F\u002Fdeveloper.microsoft.com\u002Fen-us\u002Fmicrosoft-edge\u002Fplatform\u002Fchangelog\u002F)\n  * Platform Updates\n    * [Mozilla Hacks](https:\u002F\u002Fhacks.mozilla.org\u002F)\n    * [Web Updates](https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Fupdates\u002F), [Chromium Blog](https:\u002F\u002Fblog.chromium.org\u002F)\n    * [Webkit Blog](https:\u002F\u002Fwebkit.org\u002Fblog\u002F)\n    * [Microsoft Edge Dev Blog](https:\u002F\u002Fdeveloper.microsoft.com\u002Fen-us\u002Fmicrosoft-edge\u002Fcommunity\u002F)\n  * [Writing forward-compatible websites](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FGuide\u002FWriting_forward-compatible_websites)\n    * Polyfill - [What is a Polyfill?](https:\u002F\u002Fremysharp.com\u002F2010\u002F10\u002F08\u002Fwhat-is-a-polyfill)\n    * Feature Detection - [Modernizr\u002Ffeature-detects](https:\u002F\u002Fgithub.com\u002FModernizr\u002FModernizr\u002Ftree\u002Fmaster\u002Ffeature-detects), [feature.js](https:\u002F\u002Fgithub.com\u002Fviljamis\u002Ffeature.js\u002Fblob\u002Fmaster\u002Ffeature.js)\n    * Browser\u002FDevice\u002FRuntime Detection - see _[Platforms and Languages > Universal Utility Libraries](#universal-utility-libraries) > Parsing \u002F Manipulating_\n    * [Graded Browser Support](https:\u002F\u002Fgithub.com\u002Fyui\u002Fyui3\u002Fwiki\u002FGraded-Browser-Support) - [Grade components, not browsers](https:\u002F\u002Fwww.filamentgroup.com\u002Flab\u002Fgrade-the-components.html)\n  * Email\n    * [CSS Support Guide for Email Clients](https:\u002F\u002Fwww.campaignmonitor.com\u002Fcss\u002F) \u002F [Email Client CSS Support](https:\u002F\u002Ftemplates.mailchimp.com\u002Fresources\u002Femail-client-css-support\u002F)\n    * [Email Design Reference](https:\u002F\u002Ftemplates.mailchimp.com\u002F) + [HTML Email Templates](https:\u002F\u002Fgithub.com\u002Fmailchimp\u002FEmail-Blueprints)\n* Node.js\n  * Platform Releases\n    * [Node.js Release Working Group](https:\u002F\u002Fgithub.com\u002Fnodejs\u002FRelease)\n* ECMAScript Support\n  * [ECMAScript compatibility table](http:\u002F\u002Fkangax.github.io\u002Fcompat-table\u002Fes6\u002F)\n  * [Node.js ES2015+ Support](http:\u002F\u002Fnode.green\u002F)\n    * Node 10.x LTS - Supports ES modules natively (without `--experimental-modules`)\n    * [Node.8.5](https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Frelease\u002Fv8.5.0\u002F) - Supports ES modules natively (`.mjs` + `--experimental-modules`)\n    * [Node 8.3](https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Frelease\u002Fv8.3.0\u002F) - [V8 6.0](https:\u002F\u002Fv8project.blogspot.hk\u002F2017\u002F04\u002Fv8-release-59.html), [Ignition + Turbofan launched](https:\u002F\u002Fv8project.blogspot.hk\u002F2017\u002F05\u002Flaunching-ignition-and-turbofan.html)\n    * [Node 8.0 LTS](https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Frelease\u002Fv8.0.0\u002F) - [V8 5.8](https:\u002F\u002Fv8project.blogspot.hk\u002F2017\u002F03\u002Fv8-release-58.html), [Five New Features You Need To Know](http:\u002F\u002Fcodingsans.com\u002Fblog\u002Fnode-8)\n    * [Node 7.6](https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Frelease\u002Fv7.6.0\u002F) - [V8 5.5](https:\u002F\u002Fv8project.blogspot.hk\u002F2016\u002F10\u002Fv8-release-55.html), Async functions\n    * [Node 6.0 LTS](https:\u002F\u002Fnodejs.org\u002Fen\u002Fblog\u002Frelease\u002Fv6.0.0\u002F) - [V8 5.0](https:\u002F\u002Fv8project.blogspot.hk\u002F2016\u002F03\u002Fv8-release-50.html), 93% of ES6 language features\n  * Performance - [Six Speed](https:\u002F\u002Fkpdecker.github.io\u002Fsix-speed\u002F)\n* Proposal Status\n  * [W3C WG](https:\u002F\u002Fwww.w3.org\u002FConsortium\u002Factivities#Working) (World Wide Web Consortium Working Groups)\n    * [Web Platform Publication Status](https:\u002F\u002Fwww.w3.org\u002FWebPlatform\u002FWG\u002FPubStatus)\n      * [JavaScript APIs](https:\u002F\u002Fwww.w3.org\u002Fstandards\u002Ftechs\u002Fjs), [Mobile Web Applications](https:\u002F\u002Fwww.w3.org\u002Fstandards\u002Ftechs\u002Fmobileapp), [CSS](https:\u002F\u002Fwww.w3.org\u002Fstandards\u002Ftechs\u002Fcss)\n    * [CSS current work](https:\u002F\u002Fwww.w3.org\u002FStyle\u002FCSS\u002Fcurrent-work)\n    * [Current HTML5 Specifications](http:\u002F\u002Fhtml5-overview.net\u002Fcurrent)\n    * Inside\n      * [W3C TR (Technical Reports)](https:\u002F\u002Fwww.w3.org\u002F2014\u002FProcess-20140801\u002F#rec-advance)\n      * [An Inside View of the CSS Working Group at W3C](http:\u002F\u002Ffantasai.inkedblade.net\u002Fweblog\u002F2011\u002Finside-csswg\u002F)\n  * [WICG](https:\u002F\u002Fwicg.github.io\u002Fadmin\u002Fcharter.html) (Web Incubator Community Group)\n    * [Proposals](https:\u002F\u002Fgithub.com\u002FWICG)\n  * [WHATWG](https:\u002F\u002Fwhatwg.org\u002Ffaq) (Web Hypertext Application Technology Working Group)\n    * [WHATWG Live Standards](https:\u002F\u002Fspec.whatwg.org\u002F)\n    * Inside\n      * [W3C vs. WHATWG HTML5 Specs – The Differences Documented](http:\u002F\u002Fdeveloper.telerik.com\u002Ffeatured\u002Fw3c-vs-whatwg-html5-specs-differences-documented\u002F)\n  * [ECMA TC39](http:\u002F\u002Fecma-international.org\u002Fmemento\u002FTC39.htm) (Ecma International Technical Committee 39)\n    * [Status, process, and documents for ECMA262](https:\u002F\u002Fgithub.com\u002Ftc39\u002Fecma262)\n      * [ECMAScript Proposals](https:\u002F\u002Fgithub.com\u002Ftc39\u002Fproposals) \u002F [TC39 Proposals](https:\u002F\u002Fprop-tc39.now.sh\u002F)\n    * Inside\n      * [The TC39 Process](http:\u002F\u002Ftc39.github.io\u002Fprocess-document\u002F) \u002F [The TC39 process for ECMAScript features](http:\u002F\u002F2ality.com\u002F2015\u002F11\u002Ftc39-process.html)\n  * [Node.js TSC](https:\u002F\u002Fgithub.com\u002Fnodejs\u002FTSC) (Node.js Foundation Technical Steering Committee)\n    * [Meeting Notes](https:\u002F\u002Fgithub.com\u002Fnodejs\u002FTSC\u002Ftree\u002Fmaster\u002Fmeetings)\n    * Inside\n      * [How Node.js created a model open source community](https:\u002F\u002Freadwrite.com\u002F2016\u002F04\u002F15\u002Fhow-node-js-model-open-source-community-pl1\u002F)\n      * [Healthy Open Source](https:\u002F\u002Fmedium.com\u002Fthe-node-js-collection\u002Fhealthy-open-source-967fa8be7951)\n* JS Engine\n  * [A Guide to JavaScript Engines for Idiots](http:\u002F\u002Fdeveloper.telerik.com\u002Ffeatured\u002Fa-guide-to-javascript-engines-for-idiots\u002F)\n  * [V8](https:\u002F\u002Fdevelopers.google.com\u002Fv8\u002F)\n    * [How the V8 engine works?](http:\u002F\u002Fthibaultlaurens.github.io\u002Fjavascript\u002F2013\u002F04\u002F29\u002Fhow-the-v8-engine-works\u002F)\n    * Internal\n      * [v8: a tale of two compilers](https:\u002F\u002Fwingolog.org\u002Farchives\u002F2011\u002F07\u002F05\u002Fv8-a-tale-of-two-compilers), \\\n        [A tour of V8: full compiler](http:\u002F\u002Fjayconrod.com\u002Fposts\u002F51\u002Fa-tour-of-v8-full-compiler)\n      * [A tour of V8: Garbage Collection](http:\u002F\u002Fjayconrod.com\u002Fposts\u002F55\u002Fa-tour-of-v8-garbage-collection)\n    * Next Generation\n      * [Ignition + TurboFan launch and Declarative JavaScript](http:\u002F\u002Fbenediktmeurer.de\u002F2017\u002F04\u002F03\u002Fv8-behind-the-scenes-march-edition\u002F)\n        * [Launching Ignition and TurboFan](https:\u002F\u002Fv8project.blogspot.hk\u002F2017\u002F05\u002Flaunching-ignition-and-turbofan.html)\n        * [A tale of TurboFan](http:\u002F\u002Fbenediktmeurer.de\u002F2017\u002F03\u002F01\u002Fv8-behind-the-scenes-february-edition\u002F)\n      * [Ignition + TurboFan and ES2015](http:\u002F\u002Fbenediktmeurer.de\u002F2016\u002F11\u002F25\u002Fv8-behind-the-scenes-november-edition\u002F)\n  * [JSC](https:\u002F\u002Ftrac.webkit.org\u002Fwiki\u002FJavaScriptCore)\n    * [JavaScriptCore, the WebKit JS implementation](https:\u002F\u002Fwingolog.org\u002Farchives\u002F2011\u002F10\u002F28\u002Fjavascriptcore-the-webkit-js-implementation)\n    * Internal\n      * [Introducing the WebKit FTL JIT](https:\u002F\u002Fwebkit.org\u002Fblog\u002F3362\u002Fintroducing-the-webkit-ftl-jit\u002F)\n    * Next Generation\n      * [JSC Love ES6](https:\u002F\u002Fwebkit.org\u002Fblog\u002F7536\u002Fjsc-loves-es6\u002F)\n      * [Introducing the B3 JIT Compiler](https:\u002F\u002Fwebkit.org\u002Fblog\u002F5852\u002Fintroducing-the-b3-jit-compiler\u002F)\n  * [Chakra](https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FChakraCore)\n    * [Microsoft Edge’s JavaScript engine to go open-source](https:\u002F\u002Fblogs.windows.com\u002Fmsedgedev\u002F2015\u002F12\u002F05\u002Fopen-source-chakra-core\u002F)\n    * [Architecture Overview](https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FChakraCore\u002Fwiki\u002FArchitecture-Overview)\n    * [Node-ChakraCore and VM Neutrality in Node.js](https:\u002F\u002Fblogs.windows.com\u002Fmsedgedev\u002F2016\u002F11\u002F29\u002Fnode-chakracore-vm-neutrality\u002F)\n    * Internal\n      * JavaScript performance updates - [2015](https:\u002F\u002Fblogs.windows.com\u002Fmsedgedev\u002F2015\u002F05\u002F20\u002Fdelivering-fast-javascript-performance-in-microsoft-edge), [2016](https:\u002F\u002Fblogs.windows.com\u002Fmsedgedev\u002F2016\u002F06\u002F22\u002Fjavascript-performance-updates-anniversary-update\u002F), [2017](https:\u002F\u002Fblogs.windows.com\u002Fmsedgedev\u002F2017\u002F04\u002F20\u002Fimproved-javascript-performance-webassembly-shared-memory\u002F)\n    * Next Generation\n      * [Roadmap](https:\u002F\u002Fgithub.com\u002FMicrosoft\u002FChakraCore\u002Fwiki\u002FRoadmap)\n  * [SpiderMonkey](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FMozilla\u002FProjects\u002FSpiderMonkey)\n    * [The monkeys in 2013](https:\u002F\u002Fblog.mozilla.org\u002Fjavascript\u002F2014\u002F01\u002F23\u002Fthe-monkeys-in-2013\u002F)\n  * Benchmarks\n    * [The truth about traditional JavaScript benchmarks](http:\u002F\u002Fbenediktmeurer.de\u002F2016\u002F12\u002F16\u002Fthe-truth-about-traditional-javascript-benchmarks\u002F)\n    * [Browser Benchmarks](http:\u002F\u002Fbrowserbench.org\u002F)\n* Web Runtime \u002F JS Runtime\n  * [Electron](https:\u002F\u002Felectron.atom.io\u002F)\n    * Tutorials - [Essential Electron](http:\u002F\u002Fjlord.us\u002Fessential-electron\u002F)\n  * [Cordova](https:\u002F\u002Fcordova.apache.org\u002F)\n    * [Platform Support](https:\u002F\u002Fcordova.apache.org\u002Fdocs\u002Fen\u002Flatest\u002Fguide\u002Fsupport\u002Findex.html)\n    * [Top Mistakes by Developers new to Cordova\u002FPhonegap](https:\u002F\u002Fgithub.com\u002Fjessemonroy650\u002Ftop-phonegap-mistakes\u002Fblob\u002Fmaster\u002Fnew-to-Phonegap.md)\n    * Curated Plugins - [Awesome Cordova Plugins](https:\u002F\u002Fgithub.com\u002Frd","该项目是一个现代JavaScript Web开发的大图景、词典和技术分类。它旨在为开发者提供一个全面的视角来理解由JavaScript主导的现代网页或Web应用开发，反映了技术进步，并帮助开发者获取最新的API、库、工具、服务以及最佳实践等资源。项目通过精简和聚焦于最常见问题及常用工具，避免了“JavaScript疲劳”，并利用npm包统计数据作为主要参考依据来确保所推荐内容的实际使用价值与流行度。适用于任何希望深入了解或提升自己在现代Web开发领域技能的前端工程师或全栈开发者。","2026-06-11 03:26:42","top_topic"]