Задать вопрос
  • Как грамотно продумать шаблон?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Может быть переставить логотип в темную полоску, а меню растянуть во всю ширину?

    5ae6d81349887290298746.jpeg
    Ответ написан
  • Как сделать кастомные тултипы в определённых областях изображения?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Или можно всё сделать проще?

    Так у них [на сайте, на который вы ссылку дали] и так все просто:
    1. Есть SVG, в которую через image воткнули картинки. Это обычные png с прозрачным фоном. Каждый человек - отдельная картинка. Можно еще сделать маску вокруг каждого человека, чтобы буквально вырезать его по контуру и определять наведение не по прямоугольнику (как у них), а по силуэту
    2. Зная положение каждого человека, можно нарисовать текст над ним. Это можно как внутри SVG сделать (но тогда адаптировать сложно будет), так и с помощью обычных div`ов и абсолютного позиционирования из CSS. Если сделать viewbox='0 0 100 100' у SVG, то считать будет проще.
    3. При наведении на человека (думаю про addEventListener вы знаете):
      • Берем большой прямоугольник в SVG, заливаем его черным полупрозрачным, таким образом делается затемнение. Показываем его.
      • Человека можно заменить другим человеком (как сделано на том сайте), или применить к нему какой-нибудь фильтр, чтобы цвета изменить. В любом нормальном графическом редакторе вы найдете кучу фильтров.
      • Показываем текст

        Когда я говорю "показываем" я имею в виду, что есть миллион способов сделать это, от банального отключения display:none или изменения прозрачности и до хитрых анимаций с SVG-масками или еще чем-нибудь.

    Ответ написан
    Комментировать
  • Ваша структура проекта под верстку?

    sfi0zy
    @sfi0zy Куратор тега Вёрстка
    Creative frontend developer
    Что есть для вас компонент а что нет?

    Любая логически независимая сущность - компонент.

    Ваша структура проекта под верстку?

    Обычно получается структура в таком духе:
    спойлер
    src/less
    ├── animations.less (универсальные анимации вроде fade-in)
    ├── colors.less (цветовая схема: константы + вспомогательные классы)
    ├── components (тут все компоненты, их много-много)
    │   ├── accordion.less
    │   ├── badge.less
    │   ├── blockquote.less
    │   ├── breadcrumb.less
    │   ├── button-dropdown.less
    │   ├── button-group.less
    │   ├── button.less
    │   ├── card.less
    │   ├── carousel.less (у сложных компонентов могут быть внутренние
                           компоненты, которые нигде больше не используются,
                           соответственно они лежат в одном файле с родительским)
    │   ├── checkbox.less
    │   ├── grid.less (да, сетка - это тоже компонент)
    │   ├── . . . . и.т.д.
    ├── constants.less (константы, это что-то вроде глобального конфига)
    ├── fonts.less (все, что связано с типографикой)
    ├── helpers.less (классы-хелперы с перебиваниями стилей)
    ├── main.less (сюда все импортируется в нужном порядке)
    ├── normalize-ext.less (расширение стандартного normalize.css)
    └── utils.less (миксины, их обычно довольно мало.
                    все хаки и фиксы добавляет PostCSS, так что тут их нет)

    Рядом с этим лежат скрипты (структура для обычного не-spa варианта). Эти файлы создаются по мере надобности - может так статься, что все в одном-двух файлах будет, если делается лендинг какой-нибудь:
    src/js
    ├── component.js (если компонентов много - они все наследуются
                    от базового компонента. единообразие важно.)
    ├── components
    │   ├── . . . . тут сами компоненты, называются аналогично своим *.less файлам
    ├── components.js (индекс для компонентов)
    ├── controls
    │   ├── . . . . тут могут быть (а могут не быть) утилиты-обертки
                    для клавиатуры/тачпада; это иногда позволяет сильно
                    разгрузить остальной код.
    ├── dependencies.js (обертки-адаптеры для зависимостей)
    ├── events.js (следилка за событиями)
    ├── factory.js (маленькая фабрика компонентов)
    ├── main.js
    ├── polyfills.js (обертки-адаптеры для полифилов)
    ├── store.js (минимальное хранилище, иногда является оберткой
                    для какого-то стороннего решения)
    ├── utils
    │   ├── . . . . (тут могут быть файлы с разными утититами, иногда их вообще нет)
    └── utils.js (если файлов с утилитами много, этот файл является индексом для них)
    Ответ написан
    Комментировать
  • Как вывести HTML структуру в дерево?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Имеете в виду что-то такое?
    Ответ написан
    1 комментарий
  • Хотите задать вопрос администрации Тостера?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Было бы хорошо иметь возможность закреплять у себя в профиле не самые залайканные ответы, а те, которые сам выбрал. Чтобы там были серьезные ответы на сложные вопросы (которые не так много людей могут заценить), а не философские размышления и удачно подобранные ссылки.
    Ответ написан
    6 комментариев
  • Как делаются подобные сайты?

    sfi0zy
    @sfi0zy Куратор тега Вёрстка
    Creative frontend developer
    И вообще при помощи чего конкретно сделано здесь


    Конкретно здесь многое сделано на three.js (да почти все). Тормоза в основном исходят от этого же инструмента, а точнее от того, что им малость злоупотребляют там, где можно все сделать проще.

    как верстальщику со знанием html, css и немного jquery как сделать такое?


    Параллакс с картинками, текстами и градиентными фонами для секций; смена надписей и плюсик - анимации svg; видео на фоне; немного css-трансформаций для переходов между страницами SPA; соответственно роутер, практика показывает, что в таких ситуациях имеет смысл написать свой, кастомный; шкала справа - еще css-переходы; на страницах проектов и агенства - большие картинки, еще видео, немного svg-анимаций, много абсолютного позиционирования, немного эффекта scrollfire + css-переходы; где-то между делом - подгрузка ресурсов аяксом. Если все это поделить на отдельные задачи, то такой сайт будет вполне реализуем, главное - не усложнять на ровном месте.
    Ответ написан
    Комментировать
  • Как масштабировать SVG так, чтобы сохранить радиус окружностей?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Используя чисто SVG так сделать не получится. Тут есть два пути решения проблемы:
    1. Первый - убрать preserveAspectRatio и сделать все на скриптах, то есть все координаты на SVG будут рассчитываться по ходу дела. Этот способ будет хорошим выбором, если у вас данные постоянно меняются и нужно все перерисовывать, на лету менять тип графика и.т.д.
    2. Второй путь - поверх SVG положить еще один слой и на нем расположить точки, текст и все, что там еще нужно. Этот вариант можно набросать по-быстрому (пример) и он хорош в случае, когда данные сильно не меняются (или вообще не меняются - только один раз с сервера прилетают) и нужно простое решение без особой js-логики.
    Ответ написан
    Комментировать
  • User agent stylesheet и цвет орфографической ошибки?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В отдаленном светлом будущем скорее всего у нас будут псевдоэлементы ::spelling-error и ::grammar-error, мы будем из CSS переопределять стандартное подчеркивание. На данный момент вот так просто из CSS ничего сделать не получится.

    куда копать

    В девелоперской версии Хрома есть chrome.automation API, в котором по идее с помощью метода getTree() можно получить некое дерево, похожее на DOM, но на самом деле им не являющееся, и опять же по идее в нем должны быть элементы типа AutomationNode для слов, которые содержат ошибки, и у них есть некоторые свойства вроде цвета и подчеркивания. Сам я этим никогда не пользовался, но интуиция подсказывает, что стоит копать в эту сторону.

    P.S.: Если вам нужно решение для сайта "здесь и сейчас", то думаю лучше будет совсем отключить проверку орфографии со стороны браузера и вместо нее вставить кастомную, в сети есть готовые решения.
    Ответ написан
    2 комментария
  • Как опустить одно слово ниже строчки?

    sfi0zy
    @sfi0zy Куратор тега Вёрстка
    Creative frontend developer
    чтобы слово "in" было ниже "Work" на одну строчку, а "minimalism" ниже "in" также на одну строчку?

    .in {
        vertical-align: -1em;
    }
    
    .minimal {
        vertical-align: -2em;
    }
    Ответ написан
    Комментировать
  • В macOS San Francisco, windows Segoe UI?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    На маке и под виндой, нужно отображение контента шрифтом по умолчанию

    Не стоит забывать и о других операционных системах. Есть более глобальная версия этого заклинания:
    font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif


    Здесь примерно такой расклад:
    • -apple-system - для macOS
    • BlinkMacSystemFont - обратно для macOS
    • Segoe UI - Windows (начиная с Висты)
    • Roboto - Ведроид
    • Oxygen - Линуксы с кедами
    • Ubuntu - Собственно Ubuntu и некоторые ее производные
    • Cantarell - Линуксы с гномами
    • Fira Sans - Шрифт от мозиллы (был сделан для Firefox OS, теперь не очень понятно, нужно это или нет, я так ни разу и не видел вживую устройства с этой ОС)
    • Droid Sans - Старый ведроид
    • Helvetica Neue - Еще немного старых маков
    • sans-serif - На всякий случай

    Emoji в этом варианте не включаются (обычно они и не нужны), но можно добавить так, как вы написали (в конце, после sans-serif). В отдаленном светлом будущем у нас еще будет system-ui, но пока будущее еще не до конца наступило.

    При использовании таких заклинаний нужно помнить о том, что "-apple-system" не стоит использовать в свойстве font, только в font-family, а то все может внезапно сломаться. Про проблемы с SEO ни разу не слышал, скорее будет небольшой положительный эффект за счет уменьшения скорости загрузки страниц. А может и не будет.
    Ответ написан
    Комментировать
  • Как привязать контекст?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    чтобы клик срабатывал верно

    Чтобы клик срабатывал, никакие привязки контекста вообще не нужны:
    div.onclick = (e) => {
        e.target.classList.toggle("ss");
    }

    Если хочется попривязывать, то можно конечно, но для вашей задачи это усложнение на ровном месте:
    function listener(e) {
        this.classList.toggle("ss");
    }
    
    div.onclick = (e) => {
        listener.call(e.target, e);
    }
    Ответ написан
    1 комментарий
  • Есть ли у вас похожие проекты?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Как разумнее такое реализовать? По идеи полоски и синие точки должны крутиться в разные стороны, с keyframes верстать?

    1. Рисуете все эти дуги, точки и иконки в SVG.
    2. Дуги и точки анимируете с помощью transform:rotate и keyframes (поворот от 0 до 1turn, в этом нет ничего сильно замороченного, но оставлю пример для изучения), каждой ставите свое время полного оборота по вкусу.
    3. Иконки винды, ведра и айоси подвергаете извороту "туда-обратно" (как в этом примере). Обертку крутите в одну сторону, а иконку в другую - будет выглядеть, как будто они летают по кругу.
    Ответ написан
    Комментировать
  • SVG и анимация - как собрать в кучу и сделать?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Смысл такой: из точки в верхнем левом углу выходит линия, которая переходит в какую либо другую точку на карте. Следующая линия также выходит из первоначальной точки, но уже переходит в другую точку на карте и т.д. Вообщем, как возможно сделать такое

    Рисуете эти линии в векторном графическом редакторе (каждую по отдельности); затем действуете по принципу, описанному в этой статье, чтобы эти линии прорисовывались от начала до конца.

    Если нужно сделать переменную толщину линий, как на картинке, то принцип будет тот же, но с дополнением: толщина линий делается довольно большой, а сверху к ним применяется SVG-маска (как с ними работать описано вот в этой статье), состоящая из кривых вытянутых треугольников (не знаю, как описать по-русски изогнутую линию переменной толщины, но по вашей картинке понятно, о чем речь).
    Ответ написан
  • Как верстают такой фон?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    И вообще может уже что-то появилось, чтобы не ставить жирные картинки в качестве бекграунда?

    Таки да, называется SVG. Там только сам квадрокоптер скорее всего жирный, а круги с градиентами вполне можно в векторе сделать - они вообще ничего занимать не будут.

    Как верстают такой фон?

    Можно по-разному подходить к вопросу. Как вариант три слоя:
    1. Левый контент, у него фон в виде левого круга (чтобы не париться с его размером на разных размерах экрана - ведь там по идее контент должен помещаться в круг). Тут главное все аккуратно расположить и не забывать про critical css.
    2. Коптер (поскольку он жирный, его можно подгружать асинхронно и выдвигать с помощью CSS-анимации из-за правого края экрана - будет и красиво и производительно; я бы еще какой-нибудь эффект к тексту добавил, но это уже другая история). Его размер видимо должен зависеть от ширины экрана и размера контента слева. Надо заранее сообразить, как это все должно адаптивиться.
    3. Меню, которое справа вверху, оно должно быть поверх коптера (опять вопрос про адаптивность).
    4*. Фон, который самый-самый большой фон можно просто поставить на background у хидера. Поскольку он в векторе, его можно сделать гораздо выше, чем на картинке, чтобы опять же не париться, что он вылезет из скругления внизу секции на телефоне. Само это скругление можно сделать тысячей способов, на тостере уже не раз спрашивали.

    Такой подход требует больше времени, чем просто поставить все на фон у одного элемента, но и результат будет немного другого уровня.
    Ответ написан
    1 комментарий
  • Анимация пунктирной свг линии, возможно?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Можно поиграть с stroke-dasharray у этой линии (наводящий пример и статья вдогонку, чтобы понимать контекст).
    Ответ написан
    Комментировать
  • Какие есть сервисы основанные на социальной инженерии?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Мне бы описания от вас, примеры...

    "Azino три топора" - хороший пример. Втягивают народ через массовую рекламу (после того, как к рекламе подключился Витя АК-47, она просто заполонила рунет), предлагают заработать по-быстрому, сразу дают какие-то бонусы. Ну а потом предлагают бонусы за депозит, за еще депозит и.т.д. Люди их критикуют, роскомнадзор блочит, но хайп от этого только увеличивается. По здравому смыслу все эти игры слабоминусовые - там вообще никак нельзя выигрывать у казино, но народ думать не хочет и ведется (в нашей стране, особенно в замкадье, вообще хорошо заходят предложения заработать - сами знаете, как с зарплатами дела обстоят).
    Ответ написан
  • Как сделать шестиугольник в который потом вставить картинку?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Можно сделать несколько оберток на CSS (пример). Это немного костыльный вариант. Можно взять SVG (пример, уберите анимацию границы и останется чисто шестиугольник). Этот вариант поуниверсальнее будет.
    Ответ написан
    Комментировать
  • Как сделать полосу разных цветов?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    background: linear-gradient(to right, #f77 0%, #f77 30%, #fff 30%, #fff 100%);
    Ответ написан
    Комментировать
  • При помощи чего сделаны такие эффекты?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    при помощи каких библиотек/технологий

    Технологии - в основном canvas, webgl, иногда немного svg. Библиотеки - любые связанные с перечисленными технологиями и упрощающие работу с ними (на ваш вкус, иногда можно и вообще без них обойтись).

    Примеры снега есть вот тут. Вот этот довольно симпатичный. Классный дождик есть там же. Примеры огня найдете по аналогии.

    Главное здесь - помнить о производительности. Можно сделать суперреалистичный эффект и намертво повесить браузер, а можно сделать что-то более простое, декоративное, понятное больше на уровне образов, но при этом не тормозящее и понятное коллегам (нужно обговаривать с дизайнером).
    Ответ написан
    Комментировать
  • Можете терминологию в parceljs?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Терминология не относится именно к этому инструменту, она универсальная. Если пытаться как-то объяснить ее своими словами, то:
    • Asset - актив, полезная вещь (в нашем контексте - файл), которую мы используем для чего-либо. Например используете иконку на странице - она есть ассет. То же самое относится к скриптам, файлам со стилями и.т.д.
    • Bundle - связка, пучок; набор вещей, объединенных в одну кучу. В нашем контексте это набор ассетов (отдельных полезных файлов), собранных хитрым образом в один большой файл.
    Ответ написан
    2 комментария