• Как оживить картинку?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Насоветуют... Менять бэкграунды - забудьте. HTML area - тоже похоронить.

    Берёте вашу картинку. Поверх зданий создаёте векторный путь (обводите здания).
    Размечаете нарисованные пути как вам удобно, достаточно будет повесить класс для дальнейшей стилизации по ховеру + в дата-атрибуты значимую информацию для тултипа/клика/что там ещё.
    <svg ...>
      <path class="area" data-id="1" d="..." />
      <path class="area" data-id="2" d="..." />
    </svg>


    Инлайните получившуюся конструкцию на страницу. Фон можно в отдельном элементе и карту поверх, можно прямо в SVG зашить - не суть важно.

    По ховеру на путь - через CSS делаете ему полупрозрачную заливку, у вас судя по картинке сплошным цветом просто заполняется при наведении - самый простой вариант.

    По клику на путь - достаёте его `data-id` и выводите какую-либо информацию.

    Вот пример статьи, где описано более подробно.
    https://css-tricks.com/svg-map-rollovers/
    В конце интерактивный пример есть.
    Принципиальная разница с вашей задачей - вам изначально нужны пути без заливки и изображение под ними.
    Ответ написан
    Комментировать
  • Как такое сверстать?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Вот здесь, например, делал когда-то такую вещь (блок "Этапы создания корпоративного сайта").

    605df09f637c9864487824.jpeg

    Идея, вкратце:
    1. Элементы размещаете просто в сетку с помощью inline-block/float/flex/grid - как привычнее.
    2. Родителю задаёте относительное позиционирование, в него помещаете абсолютный элемент на всю ширину/высоту с небольшим запасом, на котором будете рисовать SVG.
    3. Как нарисуется - на js считаете ключевые точки (координаты), через которые нужно провести линии.
    4. Динамически рисуете SVG по вашим ключевым точкам.
      О том, какие варианты вообще есть, можно почитать на MDN, например.
      Выглядеть это будет примерно так:

      605df0b0256ca826129561.jpeg

      В вашем случае рекомендую использовать кривые Безье. Здесь мне нужно было сделать полукруг, поэтому я использовал дуги, у вас же просто статичная величина закругления.
    5. На ресайз окна считаете ключевые точки заново и перерисовываете SVG.
    6. Опционально заморачиваетесь и добавляете сверху ещё один путь, который по скроллу будет "заполняться"


    Это в целом чёрная магия, можно полдня убить, но красиво :)
    Если это всё очень сложно, то просто картинкой вставьте, высоту элементов фиксируйте, и меняйте картинку для адаптивных вариантов.

    Готовых вариантов тут в общем-то вы вряд ли найдёте, нужно взять и разработать.
    У меня была идея оформить это в какую-то библиотеку, но как и все остальные идеи - и ныне лежит в туду-листе на 60+ пунктов. :)
    Ответ написан
    12 комментариев
  • Есть ли аналогичные карусели на других фреймворках?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Точно нету? Демо Swiper с эффектом Coverflow.
    Величина разворота, смещение - всё кастомизируется.
    Ответ написан
    Комментировать
  • Как через шорткод вывести wp_nav_menu внутри HTML структуры?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    wp_nav_menu(['echo' => false]), м? :)
    Оно по умолчанию его выводит, а не возвращает, вот и выводится сначала меню, потом всё остальное.
    Ответ написан
    Комментировать
  • Есть ли плагин для галпа для добавления тега picture?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    А лучше бы сразу плагин, который с единственным методом "сделать хорошо" :)
    Плагинов таких нет, а если и найдётся, то не советую. Picture - это же не изображение, не shadow-dom магия, это обёртка над изображением, физическая обёртка, реальная. По сути вы хотите обернуть изображение в .
    И его, и картинку внутри неё стилизовать надо по-разному. А в случае автоматического оборачивания откуда вы узнаете, что и как стилизовать? А как будете помечать изображения, чтобы не оборачивалось, если не надо? А вы уверены, что всегда надо?

    Есть плагины, которые сделают вам дубли ваших картинок в webp и положат рядом или в отдельную папочку.
    А picture - пишите сами.
    Если лень набирать - используйте сниппеты, если используйте компонентный подход - заведите какой-нибудь компонент `base-picture`, в который передавайте URL основного изображения, и проп по типу `webp`, заданный в `true` по умолчанию, что в контексте логики компонента будет означать, что webp-версию нужно дописать автоматически путём замены расширения в переданном основном изображении (ну или через любую логику, которая вам нужна). Только так.
    Ответ написан
  • Какие есть библиотеки JS для деформации изображений по принципу инструмента Warp из PS?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    В закладках лежит glfx.js - выглядит как то, что вам нужно, есть нужный фильтр.
    Сам не трогал, нет проектов в работе, где это было бы надо - так что опытом использования не поделюсь.
    Но на первый взгляд выглядит весьма удобно. :)
    Ответ написан
  • VSCode - автоматическое создание открытых и закрывающих скобок в CSS?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    При необходимости прям вот такой оптимизации вряд ли, слишком узкая задача. Это не невозможно, просто зачем?

    Если автоматически из HTML-разметки нужно сделать s?css, то для этого есть eCSStractor

    Если лень самостоятельно писать управляющую структуру для CSS, то можно её свести к одному символу с помощью сниппетов. Вот мой вопрос с моим же ответом, до сих пор так и делаю, брат жив.
    Ответ написан
    Комментировать
  • Откуда появляется белые пиксели в верхнем левом углу Googe Chrome?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Похоже на то, что у меня было недавно.
    Со шрифтами после апдейта иногда происходило вот такое, тоже мелькало периодически:
    5f682519bc86f197589791.jpeg

    Вот тут обсуждение моей проблемы, но там кроме советов "включите аппаратное ускорение" ничего полезного нет (а оно уже было включено).

    Мне помогло переустановить/обновить драйвера.
    Не знаю, какие конкретно - просто пачкой запустил через DPS, наверняка что-то про видеокарту, я тут вообще не специалист :)
    Ответ написан
    Комментировать
  • Как лучше фиксить, если баг в npm пакете thirdparty библиотеки?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Форкнуть, поправить, в зависимостях указать свой форк вместо оригинального пакета.
    Ответ написан
    Комментировать
  • Как верстать с хорошими показателями Google Speed?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Здесь нет волшебной таблетки. Это комплекс факторов...
    Из главного: ленивая/отложенная загрузка всего и вся (всевозможные метрики и второстепенные скрипты / графика / компоненты, если используете фреймворки), использование современных форматов графики (webp в частности), вёрстка mobile-first (существенно снижает время на расчёт лейаута и рендер на приоритетных устройствах), инжект CriticalCSS (это про time to first paint), уменьшение размера DOM-дерева.
    Это из фронта, на бэке - сжатие gzip/brotli, максимальное время жизни кэша, оптимизация времени до ответа.

    Они же все рекомендации прямо при проверке пишут, там очень подробно всё расписано.
    Волшебной кнопки не существует.

    За 100/100 гоняться на чём-то больше стандартного лендоса - как правило бред сумасшедшего (оно обычно можно, но того совершенно не стоит, так как из-за отложенной загрузки/рендера будет страдать UX, что важнее красивой пузомерки).
    90+ для почти любого проекта - вполне несложно, если умеючи.
    А умеючи - это с опытом, анализом рекомендаций, а не поиском новых сборок/инструментов.
    Ответ написан
    2 комментария
  • Как правильно делать правки или допиливать кусок сайта, если уже разместил на WP?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Изначально в сборке этот кейс предусмотреть. Не так уж и много - пути компиляции в WP версии заменить.
    Нет так уж сложно :)
    Ответ написан
    Комментировать
  • Как задать переменные в SCSS/SASS?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Ну нельзя число на проценты поделить.

    Сделайте так:
    $a: 60 / 16 * 100 + '%';

    А лучше оформите отдельную функцию вроде:
    @function percent-font-size($base) {
      @return $base / 16 * 100 + '%';
    }
    
    font-size: percent-font-size(16);


    Ну и я не поднимаю вопрос, зачем оно вам надо - мало ли.
    Ответ написан
    6 комментариев
  • Как подсветить неиспользуемые переменные аля WebStorm в VSCode?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Здравствуйте. Вот тут настраивается.

    5f4807bc9dae9500762670.jpeg
    Ответ написан
  • Шаблонизатор Blade?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    https://github.com/EFTEC/BladeOne, Blade без Laravel
    Горячо рекомендую именно этот пакет, он наиболее полно воссоздаёт всё, что нужно.
    Кроме того, автор просто образец отзывчивости и активно развивает свой порт.
    Ответ написан
    Комментировать
  • Почему многие используют var в JavaScript?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Здравствуйте. Ну не видят люди в этом проблемы, вот и пишут. Не всем быть прогрессивными. :)
    Порой мне кажется, что лучше уж так, чем, как иногда встречаются советы, "просто используйте let вместо var и всё будет хорошо" (картинка лица с рукой).
    Ответ написан
    Комментировать
  • Играет ли роль разрешения дизайна сайта для верстальщика?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    1. Фоновые изображения нужно иметь в максимальном размере;
    2. Часто выглядит визуально несколько более законченно, мне всегда макеты, которые шириной контейнера обрубаются, кажутся несколько зажатыми. Особенно на мониторе с 2560 ширины :)
    А больше - незачем. Но почему бы и не да - какие ваши аргументы против? Экономите место?
    Ответ написан
  • Съезжает перспектива при translateX?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Порядок свойств имеет значение. Сначала сделайте translate, потом всё остальное, только и всего. :)
    Ответ написан
    1 комментарий
  • Применение стилей к динамическому контенту?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Через каскад такие вещи стилизуются.
    Каскад - плохо в общем случае, но для пользовательского контента - допустимо. Уж тем более не стоит того, чтобы на JS по дому бегать. :)

    .user-content { ... }
    .user-content p { ... }
    .user-content h# { ... }
    Ответ написан
    Комментировать
  • Как развить навык разбиения сущностей на абстракции?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Чтобы научиться плавать, нужно плавать.
    Ставить перед собой неодинаковые, но по духу схожие задачи, чтобы была пища для анализа в духе "ага, а если бы в прошлый раз вот это вынес в отдельную сущность - сейчас мог бы просто переиспользовать". Это лучший метод.
    Также крайне помогает увеличивать так называемую насмотренность - изучать, как те же самые задачи решают другие люди и попытаться понять, почему именно так. Иногда и просто спросить можно - не съедят :)
    Ответ написан
    1 комментарий
  • Как сделать прокрутку как на сайте Apple Music?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Вот тут человек тоже вдохновился продуктами Apple и реализовал библиотеку, которая позволяет делать эти вещи просто.
    Сам пока не использовал, но на первый взгляд выглядит просто и работает.
    Ответ написан
    Комментировать