Задать вопрос
  • Зачем в библиотеке lodash функция map?

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

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Возьмите animate.css и добавляйте нужные классы к элементам. Или, что еще лучше, достаньте из нее только необходимые вам анимации (postcss-animation может это дело автоматизировать) или посмотрите идеи в исходниках и сами их напишите, чтобы не тащить всю библиотеку ради пары десятков строк. Если хотите что-то совсем кастомное и необычное - идите на codepen, смотрите идеи там и адаптируйте под свои нужды. Тут главное не переборщить, все-таки сильно нестандартные или длинные анимации интересны первые пару-тройку раз, потом начинают раздражать.
    Ответ написан
    Комментировать
  • Какую лучше сделать разметку и как запомнить выбор?

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

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Про SEO уже сказали, добавлю про юзабилити и общее впечатление:

    1. Отсутствует информация о всех товарах. Если есть категория в каталоге - она должна что-то содержать. Чем больше ассортимент - тем лучше. А пустующие категории, как и пустющие прилавки в обычном магазине - настораживают.
    Решение проблемы: заполнить сайт контентом. В том числе на всех второстепенных страницах.

    2. А как собственно купить? Ни кнопок "купить", ни информации об оплате и доставке. Это как автомат с газировкой без дырки для денег.
    Решение проблемы: добавить инструкцию как купить. Как минимум напишите, куда позвонить/написать, чтобы заказать какой-то товар, куда вы доставляете, в какие сроки и.т.д. Чем подробнее - тем лучше. Кнопка "купить" у товаров тоже желательна. Даже если она будет вести на страницу "как заказать". Это не полноценная корзина, но лучше, чем ничего.

    3. Тексты на цветных фонах сложно читать. Это даже не дизайнеру заметно. Сложно читать = я не буду это читать.
    Решение проблемы: Уменьшить яркость фонов под текстом (которые с разноцветным паттерном), добавить небольшие темные тени светлому тексту и светлые темному для заголовков на фоне фотографий.

    4. Прелоадер реально бесит. Я серьезно. На этом сайте нет ничего такого, что можно было бы так долго грузить. В современном мире все куда-то спешат, если ваш сайт ничего не показывает по 10 секунд, а соседний показывает что-то сразу - у вас проблемы (особенно, если вы не владеете заметной долей рынка или не предоставляете товар, не имеющий аналогов).
    Решение проблемы: убрать прелоадер. Почитать про оптимизацию скорости загрузки. Как минимум необходимо убрать фон, который весит больше 5MB, картинки можно немного сжать и законвертить в progressive-jpeg, скрипты и стили вниз страницы, наверху вставить critical css (на тостере уже спрашивали про все это - почитайте).
    Ответ написан
    1 комментарий
  • Как реализуется подобный hover?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Идея примерно такая:
    span {
        background: linear-gradient(to right, #ccc 0%, #ccc 50%, #fff 50%, #fff);
        background-size: 200% 100%;
        background-position: 100% 0;
        transition: background-position .5s cubic-bezier(.56,.08,.42,.7);
    }
    
    span:hover {
        background-position: 0 0;
    }


    codepen
    Ответ написан
    Комментировать
  • Как использовать em применительно к font-size?

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

    Почитайте вот эту статью.
    Ответ написан
    Комментировать
  • Как не применять html при отключенном JS?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Как не показывать прелоадер если у человека выключен JS?

    Можно посмотреть на вопрос с обратной стороны и показывать ваш прелоадер с помощью JS. Там, где нет JS - не будет и прелоадера.
    Ответ написан
    Комментировать
  • Как сверстать блок из PSD? Точнее, как реализовать?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Расположить круглые кнопки по кругу можно примерно так. На маленьких экранах можно убрать все трансформации и поставить кнопки в столбик/строчку. Логику переключения стоит делать на JS, чистый CSS - это интересно, но не практично.
    Ответ написан
    1 комментарий
  • Как реализовать такой блок?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Демка, от которой вы можете оттолкнуться. Она была сделана для другого вопроса, но суть одна и та же.
    Ответ написан
    1 комментарий
  • Какие цели вы преследуете при создании мини/пет-проектов?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Какие цели вы преследуете при создании мини/пет-проектов?

    • Попробовать инструмент, который хочется попробовать, но не стоит тащить в основной проект, или спроектировать что-то относительно крупное самостоятельно, что очень полезно для начинающих.
    • Создать какой-то источник дохода из этого проекта в отдаленой перспективе.
    • Just for fun. Иногда можно сделать что-то совсем небольшое, что еще никто не делал, просто чтобы посмотреть, что из этого получится. Например я недавно пытался адаптировать уже существующую верстку одного из проектов для отображения в очках виртуальной реальности. Просто было интересно посмотреть, можно ли это сделать. Первую часть эксперимента описал в статье.
    Ответ написан
    Комментировать
  • IMG друг за другом без пустоты?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    1 вариант (плохой): с помощью transform:translateY приподнять нижнюю картинку. Такой подход сохранит разметку, но это костыль.
    2 вариант (хороший): все-таки сделать какую-то сетку, вместо идущих друг за другом изображений. Это и упростит адаптацию под маленькие экраны и позволит сохранить порядок в случае, если какие-то картинки не загрузятся. В качестве примера, от которого можно оттолкнуться можете посмотреть вот эту демку.
    Ответ написан
    Комментировать
  • Как делать отступы по макету?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Это по какой-то системе делается или дизайнер просто так по красоте на глазок подбирает отступы?

    Эта система в народе называется стайлгайд. В долгоживущих проектах иметь его в оформленном виде очень полезно. В нем есть и все размеры, и все цвета, и шрифты, а часто и компоненты по отдельности. Если у вас есть стайлгайд - то вы работаете по нему, макет страницы - это скорее для понимания "что в какое место поставить". Он может быть кривым/косым, хоть на бумажке нарисованным.

    Надо ли именно такие отступы соблюдать или можно, например, просто в бутстраповский контейнер запихнуть секцию и не париться?

    А вот если у вас нет стайлгайда и при этом кривой макет, то стоит спросить дизайнера/заказчика об этом и действовать исходя из их объяснений. Единственное, что стоит серьезно обсуждать - так это ситуацию, когда заказчик хочет pixel-perfect, до дизайнера уже не достучаться, а весь макет кривой настолько, что аж в глазах рябит. Там нужно или увеличивать сроки и цену или убеждать, что плюс-минус пара пикселей не имеют великого смысла и вы выиграете и по срокам и в перспективе при поддержке всего этого.
    Ответ написан
    Комментировать
  • Какую библиотеку для анимации вы используете постоянно?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    На постоянной основе - anime.js или делаю анимации на CSS, иногда использую D3.js.
    Ответ написан
    Комментировать
  • Как запланировать ежедневные изменения файле js (график)?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    как сделать cron, чтобы он вносил изменения в файл js

    Это очень плохая идея, которая создает неявную логику работы фронтенда, ломает его сборку, и из-за которой можно очень крупно влипнуть в перспективе. Если на JS совсем никак нельзя эти точки генерировать - то лучше не в скриптах что-то менять, а сделать отдельный json файл, в котором будут храниться точки и потом его аяксом загружать на клиента. В таком случае вам нужно просто вставлять нужную строку перед последней строкой этого json файла (google->php insert string before last line), это будет очень простой скрипт, а для того, чтобы добавить его в cron вам понадобится (google->cron php script). Ответы на оба вопроса есть по первой ссылке на stackoverflow. Про то, как можно загрузить на клиента можно почитать здесь, там и пример есть и пояснения.
    Ответ написан
    Комментировать
  • Простой пример одного и того же кода в ООП, функциональном и процедурном стиле?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    (Все это дико не академично, не корректно и воообще, но должно быть понятно):

    Процедурный подход: есть последовательность команд. Каждая из них может содержать последовательность команд.
    возьми_кофемашину();
    налей_воды_в_кофемашину();
    нажми_кнопку();
    подставь_кружку();
    вылей_кофе_в_кружку();
    наслаждайся();


    ФП - акцент на действии. Одни действия влекут за собой другие.
    наслаждайся(
        своим_кофе(
            которое_сделала_кофемашина(
                в_которую_налили_воды())))


    ООП - акцент на объектах. Любое действие совершает конкретный предмет
    есть кофемашина;
    есть кружка;
    есть ты;
    
    ты.имеешь(кружку)
    кофемашина.имеет(кружку)
    кофемашина.поехали();
    ты.возьми_свою_кружку();
    ты.наслаждайся();
    Ответ написан
    2 комментария
  • Можно ли (используют ли) один и тот же код (к примеру Angular или Vue) как для Веб, так и для Мобильных приложений?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Про Ionic для Angular уже сказали. Для Vue есть Weex. Позволяет собрать приложение под Android и под iOS. Я пробовал делать с ним небольшое приложение под ведроид. Могу выделить плюсы, которые увидел (возможно, что в большом проекте что-то будет по-другому):
    - Vue из коробки, простой и понятный инструмент, что приятно
    - Не тормозит
    - Большая часть кода спокойно переносится из веб-версии без изменений
    И минусы:
    - Стартовать проект без знаний Java довольно непросто (ошибку при первой сборке искал часа три)
    - Небольшое комьюнити, мало информации, на StackOverflow практически нет вопросов по теме

    Для себя сделал вывод, что не стоит использовать Weex в ближайшее время в крупном бизнесе (есть риск провалить все сроки из-за нехватки информации), но для своих небольших приложений попробовать вполне можно, особенно если вам нравится Vue. Думаю стоит присматривать за развитием этого проекта - может быть через пол года/год его уже можно будет спокойно использовать.
    Ответ написан
    7 комментариев
  • Как правильно искать работу на junior должность?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Слишком большой зоопарк технологий... После приема на работу менять область не хочу

    В психологии переговоров о работе есть понятие жизненного пути. Идея в том, что компания может вам что-то дать, какие-то возможности, и если ваш путь совпадает с этими возможностями - шансы найти общий язык растут. Лучше конечно выбрать какое-то одно направление, совпадающее с вакансией, на которую откликаетесь. Это еще покажет то, что вы идете по своему пути, а не "куда получится".

    какой нибудь шанс, что меня возьмут без портфолио

    В целом - есть. Тут все от компании зависит, от людей, которые там работают. Бывает так, что и с хорошим портфолио и с хорошими знаниями вы пролетаете, а бывает, что посидели с будущим начальником, поговорили за жизнь - и работа ваша. Но лучше конечно посмотреть на свои проекты - может там есть, что показать, или, если совсем ничего нет - сделать что-то сейчас.

    Какую именно примерно сумму называть в моем случае?

    Есть три подхода:
    - Назвать сумму. Вероятность не попасть в ожидания работодателя очень высокая. Как вести переговоры в случае непопадания - не понятно, нужно импровизировать.
    - Сказать, что деньги не важны, важен опыт. Но какая-то минимальная планка все равно должна быть. Если вакансия стажерская - может подойти.
    - Сказать что-то в духе "у вас есть вакансия, у нее определена зарплатная вилка, я готов согласиться на минимальную зарплату из этой вилки при условии ее пересмотра через месяц/три/шесть по результатам моего труда". Хороший вариант если вы все-таки что-то умеете. Фишка в том, что вы уменьшаете риск для работодателя, но при этом со временем все равно приходите к желаемой зарплате.
    Ответ написан
    Комментировать
  • Есть ли какие-то преимущества в разделении кода для одного селектора на части?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Если вопрос о компонентах - то скорее всего особой пользы от такого не будет. Если о каких-то глобальных вещах (даже вы сразу приводите пример с html) - может иметь смысл деление глобальных стилей на смысловые части: стандартная нормализация (например normalize.css), дополнительная нормализация (например дать всему box-sizing: border-box), все, что связано с текстами (размеры, шрифты), хаки и куски полифилов, которые со временем было бы хорошо убрать и.т.д. В случае крупного проекта вы можете думать не селекторами, а смысловыми группами - это не обязательно, но довольно удобно.

    Ну и, разумеется, есть вариант "10 фрилансеров, каждый что-то добавил, получилось чудовище франкенштейна - куча швов и заплаток, но вроде работает". Там никакого смысла не будет, просто "так получилось".
    Ответ написан
    1 комментарий
  • С какими проблемами сталкиваетесь при flexbox верстке и как их решаете?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Cобственно проблемы описаны тут. Решения там тоже описаны. Также проблемы решаются ограничением использования флексбоксов (дабы не мучать свой мозг и не тестировать каждый чих во всех браузерах). Ну и postcss-flexbugs-fixes в составе postcss-fixes тоже лишним не будет.
    Ответ написан
    Комментировать