Post thumbnail: 70 Free JavaScript Books

70 Free JavaScript Books

Best free JavaScript books: ECMAScript, jQuery, and other. Download ebooks (pdf, mobi, epub) and read online. Update of December 2017 collection. 6 new books.

JavaScript, often abbreviated as JS, is a high-level, dynamic, weakly typed, prototype-based, multi-paradigm, and interpreted programming language.

Table Of Contents

  1. ECMAScript
  2. JavaScript Books
  3. jQuery Books
  4. Other Books

ECMAScript Books

Cover Image: Practical ES6
Practical ES6 (cover image)

Practical ES6

Ideal for professional software developers with a basic understanding of JavaScript, this practical book shows you how to build small, interconnected ES6 JavaScript modules that emphasize reusability. You’ll learn how to face a project with a modular mindset, and how to organize your applications into simple pieces that work well in isolation and can be combined to create a large, robust application. This book focuses on two aspects of JavaScript development: modularity and ES6 features. You’ll learn how to tackle application development by following a scale-out approach. As pieces of your codebase grow too big, you can break them up into smaller modules.
Author: Nicolas Bevacqua
Date: 2017

Cover Image: Understanding ECMAScript 6
Understanding ECMAScript 6 (cover image)

Understanding ECMAScript 6

ECMAScript 6 is coming, are you ready? There’s a lot of new concepts to learn and understand. Get a headstart with this book!
Author: Nicholas C. Zakas
Date: 2017

Cover Image: Exploring ES2016 and ES2017
Exploring ES2016 and ES2017 (cover image)

Exploring ES2016 and ES2017

This book covers the latest versions of JavaScript as they are created.
Author: Axel Rauschmayer
Date: 2016

Cover Image: Exploring ES6
Exploring ES6 (cover image)

Exploring ES6

An in-depth book on ECMAScript 6, for JavaScript programmers.
Author: Axel Rauschmayer
Date: 2016

Cover Image: ECMAScript 6 Succinctly
ECMAScript 6 Succinctly (cover image)

ECMAScript 6 Succinctly

ECMAScript 6 (ES6), also known as ECMAScript 2015, brings new functionality and features to the table that developers have been wanting for a long time. The wait is over, and with help from ECMAScript 6 Succinctly by Matthew Duffield, you can now develop all of these features. You can also target browsers that don’t even support ES6 yet using a transpiler. A compiler translates one language to another, such as C# to MSIL, while a transpiler converts one version of a language to another, such as ES6 to ES5.
Author: Matthew Duffield
Date: 2016

JavaScript Books

Book image: JavaScript Notes For Professionals

Author

  • Goalkicker.com

Release date

  • 2018

About the book

JavaScript Notes For Professionals

The JavaScript® Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA. See credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified. Book created for educational purposes and is not affiliated with JavaScript® group(s), company(s) nor Stack Overflow. All trademarks belong to their respective company owners. 490 pages.

Book image: The JavaScript Way. A modern introduction to an essential language.

Author

  • Baptiste Pesquet

Release date

  • 2018

About the book

The JavaScript Way. A modern introduction to an essential language.

JavaScript is a great entry point into the world of programming, and required knowledge for an ever increasing number of software professionals. Complete beginner or already experienced in other programming languages, what better time than now to discover the JavaScript Way?

Cover book: Practical Modern JavaScript

Author

  • Nicolás Bevacqua

Release Date

  • 2017

About the book

Practical Modern JavaScript

Ideal for professional software developers with a basic understanding of JavaScript, this practical book shows you how to build small, interconnected ES6 JavaScript modules that emphasize reusability. You’ll learn how to face a project with a modular mindset, and how to organize your applications into simple pieces that work well in isolation and can be combined to create a large, robust application. This book focuses on two aspects of JavaScript development: modularity and ES6 features. You’ll learn how to tackle application development by following a scale-out approach. As pieces of your codebase grow too big, you can break them up into smaller modules.

Book image: JavaScript Functions, Closures, and Prototypes

Author

  • Amin Meyghani

Release date

  • 2016

About the book

JavaScript Functions, Closures, and Prototypes

This is a short book that walks you through the fundamentals of functions, closures, and prototypes. Understanding these three core concepts are key in learning JavaScript. Now that JavaScript is becoming more important than ever, it is crucial to have a good understanding of the fundamental concepts.

Cover book: Build Pacman

Author

  • Jeffrey Biles

Release Date

  • 2016

About the book

Build Pacman

Learn modern Javascript, HTML5 Canvas, and a bit of EmberJS. This is a book about surviving an alien invasion and using web technologies.

Cover Image: What You Need To Know About JavaScript
What You Need To Know About JavaScript (cover image)

What You Need To Know About JavaScript

Discover everything a beginner needs to know about the world of JavaScript with this free eBook. From the absolute basics of JS syntax to combining ECMAScript 6 and Visual Studio Code this primer is the perfect resource for a JavaScript Master-in-the-Making!
Author: Gabriel A. Canepa
Date: 2016

Cover Image: Designing Scalable JavaScript Applications
Designing Scalable JavaScript Applications (cover image)

Designing Scalable JavaScript Applications


Author: Emmit Scott
Date: 2016

Cover Image: JavaScript Allongé, The Six Edition
JavaScript Allongé, The “Six” Edition (cover image)

JavaScript Allongé, The “Six” Edition

A long pull of functions, combinators, & decorators, updated to include the latest ES-6 features.
Author: Reg Braithwaite
Date: 2016

Cover book: Learn Javascript

Author

  • GitBook

Release Date

  • 2016

About the book

Learn Javascript

This book will teach you the basics of programming and Javascript. Whether you are an experienced programmer or not, this book is intended for everyone who wishes to learn the JavaScript programming language.

Cover Image: You Don't Know JS (Book Series)
You Don’t Know JS (Book Series) (cover image)

You Don’t Know JS (Book Series)

This is a series of books diving deep into the core mechanisms of the JavaScript language. The first edition of the series is now complete.
Author: Kyle Simpson
Date: 2013-2016

Cover book: JavaScript: Novice To Ninja

Author

  • Darren Jones

Release Date

  • 2015

About the book

JavaScript: Novice To Ninja

JavaScript has become a must-have skill for all web developers. JavaScript: Novice to Ninja is a fun, practical, and comprehensive guide to the modern usage of this deceptively powerful language. In this step-by-step introduction to coding in JavaScript you’ll learn how to solve real-world problems, track events, design eye-catching animations, build smarter forms, and develop richer applications. Along the way, you’ll learn to develop according to best practices, including Object Oriented Programming and Test Driven Development.

Cover book: JS MythBusters

Author

  • Kiko Beats

Release Date

  • 2015

About the book

JS MythBusters

A JavaScript optimization handbook from a high level point of view.

Cover Image: Mastering JavaScript High Performance
Mastering JavaScript High Performance (cover image)

Mastering JavaScript High Performance

Master the art of building, deploying, and optimizing faster web applications with JavaScript.
Author: Chad R. Adams
Date: 2015

Cover Image: Building Front-End Web Apps With Plain JavaScript
Building Front-End Web Apps With Plain JavaScript (cover image)

Building Front-End Web Apps With Plain JavaScript

An incremental in-depth tutorial about building front-end web applications with plain JavaScript, not using any third-party library or framework, for theory-underpinned and example-based learning by doing it yourself.
Author: Gerd Wagner
Date: 2015

Cover Image: Learning JavaScript Design Patterns
Learning JavaScript Design Patterns (cover image)

Learning JavaScript Design Patterns

With Learning JavaScript Design Patterns, you’ll learn how to write beautiful, structured, and maintainable JavaScript by applying classical and modern design patterns to the language. If you want to keep your code efficient, more manageable, and up-to-date with the latest best practices, this book is for you.
Author: Addy Osmani
Date: 2015

Book image: Javascript Challenges

Author

  • Tomás Corral Casas

Release date

  • 2014

About the book

Javascript Challenges

This book will challenge you to learn and understand the most obscure and tricky parts of Javascript.

Cover book: JavaScript Plus A Dash Of JQuery

Author

  • Nicholas Johnson

Release Date

  • 2014

About the book

JavaScript Plus A Dash Of JQuery

A sensible introduction to coding with JavaScript.

Cover Image: Eloquent JavaScript
Eloquent JavaScript (cover image)

Eloquent JavaScript

JavaScript lies at the heart of almost every modern web application, from social apps to the newest browser-based games. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.
Author: Marijn Haverbeke
Date: 2014

Cover Image: Thinking In JavaScript
Thinking In JavaScript (cover image)

Thinking In JavaScript

Get started with JavaScript with this free eBook and learn one of the most important languages in web development today. With helpful tips and code examples, discover how you can create websites with impressive and dynamic functionality. Explore JavaScript’s in-built features and find out how to customize them in this accessible and free guide.
Author: Aravind Shenoy
Date: 2014

Cover Image: Speaking JavaScript
Speaking JavaScript (cover image)

Speaking JavaScript

Like it or not, JavaScript is everywhere these days—from browser to server to mobile—and now you, too, need to learn the language or dive deeper than you have. This concise book guides you into and through JavaScript, written by a veteran programmer who once found himself in the same position.
Author: Axel Rauschmayer
Date: 2014

Cover Image: Programming JavaScript Applications
Programming JavaScript Applications (cover image)

Programming JavaScript Applications

Take advantage of JavaScript’s power to build robust web-scale or enterprise applications that are easy to extend and maintain. By applying the design patterns outlined in this practical book, experienced JavaScript developers will learn how to write flexible and resilient code that’s easier—yes, easier—to work with as your code base grows.
Author: Eric Elliott
Date: 2014

Cover Image: JavaScript Succinctly
JavaScript Succinctly (cover image)

JavaScript Succinctly

JavaScript Succinctly was written to give readers an accurate, concise examination of JavaScript objects and their supporting nuances, such as complex values, primitive values, scope, inheritance, the head object, and more. If you’re an intermediate JavaScript developer and want to solidify your understanding of the language, or if you’ve only used JavaScript beneath the mantle of libraries such as jQuery or Prototype, this is the book for you.
Author: Cody Lindley
Date: 2014

Cover book: Object-oriented JavaScript - Second Edition

Author

  • Stoyan Stefanov
  • Kumar Chetan Sharma

Release Date

  • 2013

About the book

Object-oriented JavaScript - Second Edition

As applications move from the desktop to the browser, the need to learn well-structured JavaScript is vital. This book is for developers who want to learn JavaScript from scratch, or take their JavaScript skills to a new level of sophistication. A completely free and full-length introduction to objects in JavaScript, it teaches through examples and practical play.

Cover Image: JavaScript For Cats
JavaScript For Cats (cover image)

JavaScript For Cats

An introduction for new programmers.
Date: 2013

Cover Image: Human JavaScript
Human JavaScript (cover image)

Human JavaScript

Introducing Human JavaScript: Practical patterns for simple but powerful JavaScript apps.
Author: Henrik Joreteg
Date: 2013

Cover Image: JavaScript In Ten Minutes
JavaScript In Ten Minutes (cover image)

JavaScript In Ten Minutes

JavaScript in ten (arbitrarily long) minutes.
Author: Spencer Tipping
Date: 2013

Cover book: HTML5 Graphing And Data Visualization Cookbook

Author

  • Ben Fhala

Release Date

  • 2012

About the book

HTML5 Graphing And Data Visualization Cookbook

This cookbook is organized in a linear, progressive way allowing it to be read from start to finish, as well as to be used as a useful resource for specific tasks. The HTML5 examples and recipes will have you making dynamic, interactive, and animated charts and graphs in no time. You don't need to have a background in HTML5 or Canvas but you do need to have a basic understanding of how HTML works and know how to code in any language (preferably in JavaScript). In this book we will not explain how to learn to code but how to create projects and how to plan and execute them in the process.

Cover Image: JavaScript Enlightenment
JavaScript Enlightenment (cover image)

JavaScript Enlightenment

If you’re an advanced beginner or intermediate JavaScript developer, JavaScript Enlightenment will solidify your understanding of the language—especially if you use a JavaScript library. In this concise book, JavaScript expert Cody Lindley (jQuery Cookbook) provides an accurate view of the language by examining its objects and supporting nuances. Libraries and frameworks help you build web applications quickly and efficiently, but when things go wrong or performance becomes an issue, knowing how and why they work is critical. If you’re ready to go under the hood and get your hands dirty with JavaScript internals, this is your book.
Author: Cody Lindley
Date: 2012

Cover Image: Master Space And Time With JavaScript
Master Space And Time With JavaScript (cover image)

Master Space And Time With JavaScript

Master Space and Time With JavaScript is a four book series that will help you come to to grips with modern JavaScript, including the JavaScript object model, testing, Backbone, and Ember.
Author: Noel Rappin
Date: 2012

Cover Image: JavaScript Cookbook
JavaScript Cookbook (cover image)

JavaScript Cookbook

Enjoy this complimentary excerpt from JavaScript Cookbook featuring interactive examples that illustrate how to use JavaScript to manipulate strings, arrays, and graphics.
Author: Shelley Powers
Date: 2010

jQuery Books

Book image: jQuery Notes for Professionals

Author

  • Goalkicker.com

Release date

  • 2018

About the book

jQuery Notes for Professionals

The jQuery Notes for Professionals book is compiled from Stack Overflow Documentation, the content is written by the beautiful people at Stack Overflow. Text content is released under Creative Commons BY-SA. See credits at the end of this book whom contributed to the various chapters. Images may be copyright of their respective owners unless otherwise specified. Book created for educational purposes and is not affiliated with jQuery® group(s), company(s) nor Stack Overflow. All trademarks belong to their respective company owners. 67 pages.

Cover book: Jquery Learning Center

Author

  • offDocs

Release Date

  • 2017

About the book

Jquery Learning Center

Up-to-date compilation of the official documentation pages, hosted on https://github.com/jquery/learn.jquery.com. Updated regularly for you to have the latest version.

Cover book: JQuery. Step by Logical Step

Author

  • Nicholas Johnson

Release Date

  • 2014

About the book

JQuery. Step By Logical Step

JQuery is a library written in JavaScript which is primarily about DOM manipulation. It lets you find parts of a web page and make changes to them with very little code. It's wildly popular and is used extensively across the Internet. It also forms the basis of other larger frameworks. If you're serious about web development you need to know jQuery.

Cover Image: jQuery Succinctly
jQuery Succinctly (cover image)

jQuery Succinctly

jQuery Succinctly was written to express, in short-order, the concepts essential to intermediate and advanced jQuery development. Its purpose is to instill in you, the reader, practices that jQuery developers take as common knowledge. Each chapter contains concepts essential to becoming a seasoned jQuery developer. This book is intended for two types of readers. The first is someone who has read introductory material on jQuery and is looking for the next logical step. The second type of reader is a JavaScript developer, already versed in another library, now trying to quickly learn jQuery. I crafted this book to be used as my own personal reference point for jQuery concepts. This is exactly the type of book I wish every JavaScript library had available.
Author: Cody Lindley
Date: 2014

Cover book: jQuery Trickshots

Author

  • Tutorialzine

Release Date

  • 2013

About the book

jQuery Trickshots

In this book, you will find 100 advanced jQuery techniques that we have developed over the years as JavaScript programmers and authors for Tutorialzine, presented as easy to understand tips. If you are an experienced jQuery developer, or a beginner just starting out with JavaScript, this book is for you. You will learn neat tricks, find out about awesome plugins, and discover how to use (and abuse) our favorite library to your advantage.

Cover Image: jQuery Enlightenment
jQuery Enlightenment (cover image)

jQuery Enlightenment

“jQuery Enlightenment was written to express, in short-order, the concepts essential to intermediate and advanced jQuery development. Its purpose is to instill in you, the reader, practices that jQuery developers take as common knowledge. Each chapter contains concepts essential to becoming a seasoned jQuery developer. This book is intended for three types of readers. The first is someone who has read introductory books on jQuery and is looking for the next logical step. The second type of reader is a JavaScript developer, already versed in another library, now trying to quickly learn jQuery. The third reader is myself, the author. I crafted this book to be used as my own personal reference point for jQuery concepts. This is exactly the type of book I wish every JavaScript library had available.”
Author: Cody Lindley
Date: 2009

Other Books

Cover book: Nodebots - Javascript And Robotic In The Real World

Author

  • Will Mendes

Release Date

  • 2017

About the book

Nodebots - Javascript And Robotic In The Real World

Do you want to know how to use Javascript to read sensors and create powerful applications with Nodebots? Do you want to learn how to create performance tests and good architecture practices for complex applications? So this book is for you!

Cover book: Bing Maps V8 Succinctly

Author

  • James McCaffrey

Release Date

  • 2017

About the book

Bing Maps V8 Succinctly

At least 80% of all information being collected by enterprises includes geolocation data. The Bing Maps V8 library is a very large collection of JavaScript code that allows web developers to place a map on a webpage, query for data, and manipulate objects on a map, creating a geo-application. In Bing Maps V8 Succinctly, James McCaffrey takes readers through utilizing this library, from creating the simplest application that uses it, to mastering more advanced functions like creating color-gradient legends and custom-styled Infobox objects.

Cover book: D3 Tips and Tricks v4.x

Author

  • Malcolm Maclean

Release Date

  • 2017

About the book

D3 Tips and Tricks v4.x

Tips and tricks for using d3.js (version 4), one of the leading data visualization tools for the web. It's aimed at getting you started and moving you forward. You can download for FREE or donate to encourage further development if you wish :-).

Cover Image: CoffeeScript Cookbook
CoffeeScript Cookbook (cover image)

CoffeeScript Cookbook

CoffeeScript recipes for the community by the community.
Date: 2017

Cover Image: D3 Tips And Tricks
D3 Tips And Tricks (cover image)

D3 Tips And Tricks

Over 600 pages of tips and tricks for using d3.js, one of the leading data visualization tools for the web. It’s aimed at getting you started and moving you forward. Includes over 50 downloadable code examples.
Author: Malcolm Maclean
Date: 2017

Cover book: TypeScript Deep Dive

Author

  • Basarat Ali Syed

Release Date

  • 2016

About the book

TypeScript Deep Dive

The definitive guide to TypeScript. Dive into all the details that a JavaScript developer needs to know to be a great TypeScript developer.

Cover book: Essential TypeScript

Author

  • Jess Chadwick

Release Date

  • 2016

About the book

Essential TypeScript

JavaScript is the defacto language of the world, but its dynamic nature can often get you in trouble. Static typing helps avoid a bunch of mistakes that are easy to make when using a dynamic language. TypeScript is JavaScript, only better. These days, TypeScript is Essential.

Cover Image: Gulp Succinctly
Gulp Succinctly (cover image)

Gulp Succinctly

Gulp is an easy-to learn, easy-to-use JavaScript task runner that has become an industry standard. This book offers an entry to Gulp for experienced developers. Author Kris van der Mast offers practical examples and clear descriptions, making Gulp Succinctly the perfect entry point for developers interested in Gulp.
Author: Kris van der Mast
Date: 2016

Cover Image: Leaflet.js Succinctly
Leaflet.js Succinctly (cover image)

Leaflet.js Succinctly

This introduction to Leaflet.js will teach key concepts of the software and critical techniques in order to help you develop web-ready interactive maps. Mark Lewin’s Leaflet.js Succinctly is the first step on the road to producing the best interactive maps you possibly can.
Author: Mark Lewin
Date: 2016

Cover book: Full Stack JavaScript Development With MEAN

Author

  • Colin Ihrig
  • Adam Bretz

Release Date

  • 2015

About the book

Full Stack JavaScript Development With MEAN

With modern tools, it is possible to create production-grade applications using only JavaScript, HTML, and CSS. The combination of MongoDB, Express, AngularJS, and Node.js, all JavaScript technologies, has become so popular that it’s been dubbed the MEAN stack. This book will explore the MEAN stack in detail.

Cover Image: Hard Rock CoffeeScript
Hard Rock CoffeeScript (cover image)

Hard Rock CoffeeScript


Author: Alex Chaplinsky
Date: 2014

Cover Image: Knockout.js Succinctly
Knockout.js Succinctly (cover image)

Knockout.js Succinctly

Knockout.js Succinctly is intended for professional web developers who need to build dynamic, scalable user interfaces with minimal code. Author Ryan Hodson guides you through the essentials of the library, starting with a brief overview of Knockout and its data-oriented aspects, followed by a thorough examination of binding data to various HTML elements, and finally examples of accessing external data and combining Knockout with jQuery animation routines. Complete with code examples and informative diagrams yet shorter than 100 pages, Knockout.js Succinctly is the one resource you need for getting started with Knockout as fast as possible.
Author: Ryan Hodson
Date: 2014

Cover Image: TypeScript Succinctly
TypeScript Succinctly (cover image)

TypeScript Succinctly

The extensive adoption of JavaScript for application development, and the ability to use HTML and JavaScript to create Windows Store apps, has made JavaScript a vital part of the Windows development ecosystem. Microsoft has done extensive work to make JavaScript easier to use. Microsoft’s TypeScript extends many familiar features of .NET programming to JavaScript. With TypeScript Succinctly by Steve Fenton, you will learn how TypeScript provides optional static typing and classes to JavaScript development, how to create and load modules, and how to work with existing JavaScript libraries through ambient declarations. TypeScript is even significantly integrated with Visual Studio to provide the autocompletion and type checking you are most comfortable with.
Author: Steve Fenton
Date: 2014

Cover book: Interactive Data Visualization for the Web

Author

  • Scott Murray

Release Date

  • 2013

About the book

Interactive Data Visualization for the Web

This online version of Interactive Data Visualization for the Web includes 44 examples that will show you how to best represent your interactive data.

Cover Image: Developing Backbone.js Applications
Developing Backbone.js Applications (cover image)

Developing Backbone.js Applications

If you want to build your site’s frontend with the single-page application (SPA) model, this hands-on book shows you how to get the job done with Backbone.js. You’ll learn how to create structured JavaScript applications, using Backbone’s own flavor of model-view-controller (MVC) architecture. Start with the basics of MVC, SPA, and Backbone, then get your hands dirty building sample applications—a simple Todo list app, a RESTful book library app, and a modular app with Backbone and RequireJS. Author Addy Osmani, an engineer for Google’s Chrome team, also demonstrates advanced uses of the framework.
Author: Addy Osmani
Date: 2013

Cover Image: DOM Enlightenment
DOM Enlightenment (cover image)

DOM Enlightenment

With DOM Enlightenment, you’ll learn how to manipulate HTML more efficiently by scripting the Document Object Model (DOM) without a DOM library. Using code examples in cookbook style, author Cody Lindley (jQuery Cookbook) walks you through modern DOM concepts to demonstrate how various node objects work.
Author: Cody Lindley
Date: 2013

Cover Image: Single Page Apps In Depth
Single Page Apps In Depth (cover image)

Single Page Apps In Depth

“This free book is what I wanted when I started working with single page apps. It’s not an API reference on a particular framework, rather, the focus is on discussing patterns, implementation choices and decent practices. I’m taking a “code and concepts” approach to the topic - the best way to learn how to use something is to understand how it is implemented. My ambition here is to decompose the problem of writing a web app, take a fresh look at it and hopefully make better decisions the next time you make one.”
Author: Mikito Takada
Date: 2013

Cover Image: Smooth CoffeeScript
Smooth CoffeeScript (cover image)

Smooth CoffeeScript

Smooth CoffeeScript is a book about CoffeeScript and programming. Start with programming fundamentals, learn about functional programming with Underscore and problem solving, study object orientation and modularity. It covers client/server web apps with Canvas and WebSockets.
Author: E. Hoigaard
Date: 2012

Cover Image: The Little Book On CoffeeScript
The Little Book On CoffeeScript (cover image)

The Little Book On CoffeeScript

This concise book shows JavaScript developers how to build superb web applications with CoffeeScript, the remarkable language that’s gaining considerable interest. Through example code, this guide demonstrates how CoffeeScript abstracts JavaScript, providing syntactical sugar and preventing many common errors. You’ll learn CoffeeScript’s syntax and idioms step by step, from basic variables and functions to complex comprehensions and classes. Written by Alex MacCaw, author of JavaScript Web Applications (O’Reilly), with contributions from CoffeeScript creator Jeremy Ashkenas, this book quickly teaches you best practices for using this language—not just on the client side, but for server-side applications as well. It’s time to take a ride with the little language that could.
Author: Alex MacCaw
Date: 2012

Cover Image: Writing Modular JavaScript With AMD, CommonJS & ES Harmony
Writing Modular JavaScript With AMD, CommonJS & ES Harmony (cover image)

Writing Modular JavaScript With AMD, CommonJS & ES Harmony


Author: Addy Osmani
Date: 2012

Back to top