• Как масштабировать 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 комментария
  • Почему не работает наследование методов?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    function Figure() {
        THREE.Group.call(this);
        this.add('TEST');
    }
    
    Figure.prototype = Object.create(THREE.Group.prototype); // <-- вы забыли вот это
    
    let f = new Figure();
    Ответ написан
  • Что использовать для адаптивной вёрстке?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    для адаптивной вёрстке?

    В современной практике нет разделения на резиновую/адаптивную/отзывчивую верстку - это все единый процесс создания компонентов, которые хорошо выглядят на разных размерах экрана. Ответ на ваш вопрос очевиден: используйте тот инструмент, который хорошо решает вашу конкретную задачу. Не нужно вообще всегда использовать вот этот или вот тот инструмент, потому что кто-то в интернете так сказал. Смотрите на логику поведения/применения ваших конкретных компонентов и выбирайте:
    1. px - если нужно жестко задать размер
    2. % - если размер привязан к чему-то в процентном отношении
    3. vw - если нужно привязать что-то к размеру вьюпорта (например размер шрифта)
    4. vh - то же самое (ну и vmin/vmax туда же)
    5. em - если нужно привязать размер чего-то к размеру шрифта (текущему или родительскому)
    6. rem - то же самое, но глобально (можно использовать везде и для всего)
    7. cm, mm, in, pt, pc - если нужно красиво выводить на печать
    8. ex, ch - не сильно удобные единицы измерения в текущих реалиях
    Ответ написан
    Комментировать
  • Как лучше всего реализовать это меню?

    sfi0zy
    @sfi0zy Куратор тега Вёрстка
    Creative frontend developer
    1. Окружность большого диаметра - большой div, большой border-radius, тонкий border.
    2. Пункты меню расположены абсолютным позиционированием один поверх другого, затем с помощью transform: rotate подвинуты в нужные положения (как в этом примере, только углы меньше).
    3. Затемнение сверху и снизу - это линейный градиент поверх всего этого, в центре он прозрачный, по краям - видимо синий.
    4. Центральный (активный) элемент меню при попадании в центр изменяется - из точки увеличивается с помощью transform: scale иконка, а вокруг нее делается что-то такое.
    5. Соответственно остается прикрутить js-логику: считать углы в зависимости от количества элементов, все это поворачивать (при переходе к новому пункту меню), добавить поддержку клавиатуры (и видимо мышки, чтобы меню проворачивать колесиком) и адаптивность (на маленьких экранах можно всю эту красоту спрятать и оставить пункты меню в столбик).
    Ответ написан
    5 комментариев
  • Как сделать анимацию стирания кода?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Посмотрите пример с сердечком из статьи SVG маски и вау-эффекты: о магии простыми словами. Он должен навести на правильные мысли.
    Ответ написан
    Комментировать
  • Чем отличаются псевдоклассы с разным двоеточием?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    В древние времена все браузеры поддерживали только одинарное двоеточие. В наше время (начиная с IE9) принято использовать:


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

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Вот вам наглядный пример того, как все будет тормозить, вплоть до зависания страницы, если применить фильтры и все немного увеличить (и не говорите, что на вашем 12ядерномразогнанноммакпро не тормозит - у пользователя его не будет). Поэтому если выбор пал на SVG - анимируйте path, а потом заливайте его градиентом, как это и сделано на картинке. В простейшем виде можно сразу нарисовать десяток состояний каждой кляксы и последовать примерам из вот этой статьи.
    Ответ написан
    Комментировать