Собрали в одном месте самые важные ссылкичитайте авторский блог
Автору понадобилось всего 80 строк на реализацию. Статья содержит существенно больше строк и ньюансов об этой разработке.