Новые паттерны взаимодействия с интерфейсом. Декларативный дрег-энд-дроп https://www.youtube.com/watch?v=l7v-UwpsEbk сайт: https://declarative-dragging.github.io/ Обычный паттерн перетаскивание делает цифровое осязаемым. Но проектирование собственных взаимодействий с перетаскиванием требует массы кропотливого кода для геометрии, обратной связи и анимаций. Декларативное перетаскивание переворачивает задачу. Вместо того чтобы напрямую программировать всё это визуальное поведение, вы просто указываете для каждого элемента, который хотите сделать перетаскиваемым, к каким будущим состояниям вашего приложения должно вести его перетаскивание. Наша система спекулятивно отрисовывает эти состояния, чтобы выяснить, куда что может переместиться, а затем объединяет эти возможные миры в плавное, отзывчивое взаимодействие с перетаскиванием. Главное новшество в том, что перетаскивание описывается через состояния модели, а не через геометрию. Создатель паттерна декларативного перетаскивания предполагает : «из текущего состояния этот элемент можно перетащить так, что получится состояние A, B или C». Где эти состояния находятся на экране, система выясняет сама. Это тот же сдвиг, что сделал React для отрисовки (интерфейс как функция от состояния), только перенесённый на взаимодействие: перетаскивание становится навигацией между возможными состояниями модели. Простые варианты поведения можно комбинировать в сложные, а поверх накладывать модификаторы: «парение» элемента за курсором, привязку к позициям, анимированные переходы. Это не нужно программировать заново для каждого случая. Почему это перспективно с точки зрения интерфейса? Интерфейс следует семантике предметной области. Автор думает в терминах своего мира (перестановки, деревья, правила переписывания, рефакторинги), а не в терминах координат и событий мыши - что потенциально хорошо для образовательных продуктов - пользователь перетаскивает из одной области в другую и получает при перетаскивании в каждом домене свой собственный эффект. Например тащите человека в биологическом домене и он у вас живет, покрывается зеленью и тд, перетаскиваете в домен экономики и от него идут экономические формулы Примеры https://joshuahhh.com/dragology/#/demos