Содержание статьи
Face detection
https://github.com/jaysalvat/jquery.facedetection
Суть этого замечательного скрипта, в принципе, понятна из названия. Facedetection позволяет с помощью JavaScript определять человеческие лица не только на фотографиях, но еще на видео и canvas-объектах. Библиотека существует как плагин к jQuery и Zepto. Facedetection максимально прост в применении:
<script> $('#picture').faceDetection({ complete: function (faces) { console.log(faces); } });</script>
Pixi.js
https://github.com/GoodBoyDigital/pixi.js
Очень мощный и одновременно экономичный 2D-движок для JavaScript. Авторы проекта позиционируют его как 2D-аналог Three.js, и, хотя основной акцент при разработке делался на дальнейшее применение в игровой сфере, Pixi.js остается достаточно низкоуровневым, чтобы его можно было использовать везде, где требуется насыщенная 2D-анимация. Библиотека автоматически определяет способы рендеринга, переключаясь на Canvas в случае отсутствия поддержки WebGL. Для пущей уверенности при выборе Pixi.js рекомендую взглянуть на страницу с проектами, основанными на этом движке, где ты встретишь массу удивительных примеров от мировых брендов.
Gridforms
https://github.com/kumailht/gridforms
Как‑то сложилось так, что каждый бэкендер пытается написать свою собственную CMS, а каждый фронтендер — свой собственный CSS-фреймворк. И того и другого существует огромное множество. Но Gridform примечателен тем, что он сфокусирован только на отзывчивых формах и представляет собой изящное UI/UX-решение в виде классических бумажных форм для заполнения.
Sharedrop
https://github.com/cowbell/sharedrop
Данная разработка, возможно, не имеет особой практической ценности, но в любом случае заслуживает внимания в этой подборке как реализация. Дело в том, что Sharedrop — это веб‑клон яблочного AirDrop — P2P-сервиса для передачи файлов. Проект построен на технологии WebRTC и Firebase. Работает в десктопных и мобильных версиях Chrome 33+, Opera 20+, Firefox 28+.
Nunjuck
https://github.com/mozilla/nunjucks
Отличный шаблонизатор от компании Mozilla. Фактически это JavaScript-порт популярного Jinja2 из Python. Основные фичи: механизм наследования, позволяющий избавиться от излишней дубликации, фильтры для обработки вывода, асинхронный вызов, макросы и модульность библиотеки. Говоря о производительности, стоит помнить, что все тесты достаточно условны и зависят от конкретных шаблонов и динамических данных. Но Nunjuck чаще встречается в первой тройке с Dust и Swig.
Turf.js
https://github.com/Turfjs/turf
Модульный геопространственный движок для Node.js и браузеров. Turf работает благодаря GeoJSON и состоит из нескольких десятков мини‑компонентов, позволяющих производить различные операции над Open Street Map: прокладывать маршруты, определять расстояние между точками на карте, отрисовывать области по координатам в форме различных фигур, объединять их, находить центральные позиции и так далее.
Пример выделения области на карте:
<div id='map'></div><script>L.mapbox.accessToken = 'pk.ey...8OEerk74AYCLduMZQ';var polygon = turf.polygon([ [ [-97.42675781249999, 33.82023008524739], [-97.2125244140625, 33.89321737944089 ], ... [-97.646484375, 33.97980872872457], [-97.42675781249999, 33.82023008524739] ]], { "fill": "#6BC65F", "stroke": "#6BC65F", "stroke-width": 5});var map = L.mapbox.map('map', 'morganherlocker.kgidd73k') .setView([35.463453, -97.514914], 6) .featureLayer.setGeoJSON(polygon);</script>
TremulaJS
https://github.com/garris/TremulaJS
Picture Streams + Momentum Engine + Bézier Paths + Multi-Device. Потрясающий скрипт галереи, а точнее даже UI-компонент, обеспечивающий анимацию Безье для потокового контента при скроллинге, кликах или тач‑событиях. Tremula по принципу Velocity синхронизирует DOM и кеширует запросы, что обеспечивает высокую производительность для больших наборов визуальных данных. Поддерживается всеми современными браузерами. Для корректной работы необходимы jQuery, Hammer.js и jsBezier. А еще для Tremula есть онлайн‑конструктор с демонстрацией возможностей библиотеки. Выглядит все действительно впечатляюще.
Snabbt.js
https://github.com/daniel-lundin/snabbt.js
Еще одна примечательная анимационная библиотека в сегодняшней коллекции. Snabbt.js — очень миниатюрный (4 Кб минифицированный и в gzip), быстрый (60 FPS даже на мобильниках) инструмент, который позволяет творить удивительные вещи, базирующиеся на возможностях CSS. То есть вся анимация основана на манипуляции со свойствами translate, rotate, scale, skew и resize. Работает также во всех современных браузерах.
snabbt(element, { position: [100, 0, 0], easing: 'ease'}).then({ fromRotation: [0, 0, -2*Math.PI], easing: 'spring', springConstant: 0.2, springDeaccelaration: 0.95,});
PSI
https://github.com/addyosmani/psi
Удобная command line утилита для Page Speed Insights, написанная на ноде знаменитым разработчиком Эдди Османи (Addy Osmani). Для тех, кто не в курсе, Page Speed Insights — это инструмент от Google для оценки производительности твоего сайта на десктопе и мобильных устройствах. В эпоху постПК и мобильного интернета тема производительности очень важна не только для самих пользователей, но также с точки зрения индексирования поисковыми машинами.
npm install --save psipsi example.com
или
var psi = require('psi');// get the PageSpeed Insights reportpsi('html5rocks.com', function (err, data) { console.log(data.score); console.log(data.pageStats);});// output a formatted report to the terminalpsi.output('html5rocks.com', function (err) { console.log('done');});
Focusable
https://github.com/zzarcon/focusable
Простой скрипт, который выполняет одну простую задачу — производит фокус на элемент. Возможно, кому‑нибудь пригодится, дабы сосредоточить взгляд пользователя на конкретной области. А для создания полноценных пошаговых инструкций к интерфейсу наилучшим решением будет Intro.js, который собрал более 8000 старов (https://github.com/usablica/intro.js/).