• Как изменять размер шрифта в зависимости от размера экрана?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Можно поставить размер шрифта в зависимости от размеров экрана, но через calc() задавать минимальное значение.

    В этом примере ( codepen.io/paulradzkov/pen/jqYqgY ) размер шрифта заголовка никогда не будет меньше 16px (1em):
    h1 {
        font-size: calc(1em + 4vw);
    }


    Можно использовать более сложные формулы совместно с @media. Тут размер шрифта плавно меняется от 14 до 18px в диапазоне от 480 до 1024px.

    @media (min-width: 480px) and (max-width: 1024px) {
      p {
        font-size: calc(14px + (18 - 14) * ( (100vw - 480px) / ( 1024 - 480) ));
      }
    }


    До 480 и после 1024px размер задан жестко с использованием @media.

    Но в целом это все сложно и редко нужно. Я обычно задаю размер фиксированно на двух-трёх диапазонах при помощи @media.

    UPD: можно даже заставить текст максимально заполнять площадь вьюпорта codepen.io/CrocoDillon/pen/fBJxu
    Ответ написан
    2 комментария
  • Как менять css-стили в зависимости от размера окна, но без использования медиа-запросов?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Есть техника эмуляции одного брейкпоинта через min-width, max-width и calc.
    Этот «брейкпоинт» зависит от размеров контейнера, а не от ширины окна — идеально для виждетов.

    codepen.io/paulradzkov/pen/NNgVEO — вот пример.
    https://medium.freecodecamp.com/the-fab-four-techn... — вот статья с описанием принципа работы.
    Ответ написан
    Комментировать
  • Как сместить фон вверх?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    У background-position есть значение local. С помощью него можно попробовать.

    codepen.io/paulradzkov/pen/GZEJOy?editors=1100 — это не готовое решение, только демонстрация идеи. Тут проблемы с прокрутками.
    Ответ написан
    Комментировать
  • Как при нажатии на кнопку пролистнуть один экран?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Если я вас правильно понял, то вам нужно такое поведение codepen.io/paulradzkov/pen/PNjqPJ?editors=0010

    В этом примере в принципе js не нужен (он используется только для плавной прокрутки). Можно поставить якорь на элемент после картинки и листать к нему.
    Ответ написан
    Комментировать
  • Некорректное отображение свойства flex в Chrome или что-то другое?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    По скриншотам трудно гадать, может дело в таблице, которая, скорее всего, генерится скриптом.

    Вот пример рабочего лэйаута c фиксированными хеадером и футером и прокруткой посередине codepen.io/paulradzkov/pen/mPwyYO?editors=1100

    Общая рекомендация: не использовать короткую запись «flex: 1», т.к. в разных браузерах есть разночтения по поводу. Лучше указывать явно «flex-grow: 1».
    Про этот и другие баги флексов можно почитать тут https://github.com/philipwalton/flexbugs
    Ответ написан
    2 комментария
  • Как сделать фиксированную шапку таблицы на css?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    codepen.io/paulradzkov/pen/sjyFb — на чистом css можно только с ограничениями по количеству резиновых колонок (одна резиновая, остальные в px или %) и заданными явно высоте шапки и самой таблицы.
    Ответ написан
    2 комментария
  • Как подсказать пользователю (взрослый контингент) что логотип является ссылкой на главную страницу сайта?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    При hover на логотипе сделайте какую-нибудь анимацию, например, фона. И добавьте tooltip с текстом «на главную» getbootstrap.com/javascript/#tooltips

    Тултип можно показывать всегда, можно скрывать через время после перезагрузки страницы. Но если скрыт, при наведении показывать без задержек. Стандартная подсказка из title появляется с задержкой, поэтому не совсем подходит. Со временем пользователи научатся.

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

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    https://zenmoney.ru/ — не уверен насчет совместного ведения с разделением доступа. Остальное есть.
    Ответ написан
    Комментировать
  • Где разместить свой блог на it тематику?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    На https://pages.github.com/ заведите блог.

    Преимущества:
    Бесплатный хостинг, быстрый, стабильный, без рекламы, поддерживает https
    Крутое «прогерское» доменное имя — username.github.io
    Полный контроль над кодом — можно использовать стандартный блоговый шаблон на Jekyll, а можно сделать полностью свой — до последней строчки кода — сайт.
    Ответ написан
    Комментировать
  • Как разложить скрипты и стили по папкам в bower?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    При помощи grunt или gulp копировать нужные файлы из папки bower-components в правильные папки.
    Ответ написан
    Комментировать
  • Какой лучший движок для информационных сайтов?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Для информационных сайтов лучше всего подходят генераторы статики.
    Доводы в пользу генераторов статики и против большинства классических CMS для информационных сайтов:

    1) Контент неудобно хранить в базе, как делает большинство CMS.

    Если контент в базе, то его тяжело бэкапить и восстанавливать из бэкапа, неудобно сравнивать версии до изменения и после. Тяжело откатить изменения в конкретной статье, не затронув всё остальное. Для всего этого в CMS должна быть запрограммирована собственная функциональность.

    Если хранить контент в файлах (так делают все генераторы статики), то связка «файлы + GIT» даёт легкий бэкап, сравнение и восстановление контента целиком и отдельным статьям почти с нулевыми затратами.

    2) Редакторы контента в админке (TinyMCE, CKeditor) обычно неудобные и часто выдают посредственный код. А еще тяжело настраиваются. Контент-менеджеры, которые умеют верстать, всё равно тянут код в текстовый редактор, правят там и вставляют обратно.

    Быстрее сразу работать с файлами в любимом редакторе кода. От этого можно получить дополнительные плюшки в виде подсветки измененных строк по сравнению с последним коммитом и некоторые другие.

    3) Markdown поддерживают все генераторы статики, а это самый удобный язык для написания контента. Markdown компилируется в качественный и чистый HTML. При необходимости Markdown можно смешивать с HTML.

    4) С классическими CMS, где контент в БД, разработчику приходится держать localhost и/или dev версию сайта с копией живой базы данных и синхронизировать их между собой. Чаще синхронизация односторонняя (с лайва на локалхост), т.к. мерждить базы сложно и страшно что-то сломать на лайве. А в таких случаях, контентщикам приходится сначала делать все локально, а потом повторять на лайве.

    С генераторами статики в этом так же просто как с файлами: можно нарендерить несколько версий для тестирования, сделать зеркала и т.д.

    5) Скорость и безопасность. Статический сайт по определению быстрее любой CMS. Сгенерированный сайт легко положить в CDN и получить максимальную скорость открытия при любых нагрузках. А еще статические сайты не взламываются.

    https://www.staticgen.com/ — список всех генераторов статики, отсортированный по популярности.

    Сам уже года три пользуюсь docpad.org — генератор на node.js. Не сказал бы, что это идеальный инструмент. Я на нем потому, что уже хорошо его знаю, и у меня собралось много наработок для docpad, в том числе автоматизация.

    Так же отмечу https://octobercms.com/ — CMS, которая следует принципам генераторов статики. Сам еще не пробовал, но если понадобится поддержка PHP, то это первый кандидат.
    Ответ написан
    4 комментария
  • Почему размер шрифта разный в локальном и сервере?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    1. Убедитесь, что масштаб страницы в браузере в обоих случаях одинаковый и равен 100%
    2. Проверьте, а не разные ли шрифты. Для этого во вкладке «Computed» в самом низу посмотрите какими глифами отрендерен текст.

    a0c241c861cc40cda50492d19cb25b9a.png

    3. Если разные, проверьте во вкладке «Networks», правильные ли подключены веб-шрифты. Грузятся ли.
    4. Если пути у шрифтов правильные, но не грузятся, посмотрите этот ответ Почему могут слетать шрифты, после заливки на хостинг?
    Ответ написан
    1 комментарий
  • Напомните как плагин для колонок назывался?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Ответ написан
    Комментировать
  • Каким образом организовать модульный дизайн в фотошопе?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Есть. Используйте для этого смарт-объекты и/или линкование файлов внутрь других файлов.

    https://helpx.adobe.com/ru/photoshop/using/create-...

    Облачные библиотеки из Photoshop CC 2015 не рекомендую: в этом случае Photoshop заливает все ресурсы в облако, а локально они кэшируются где-то глубоко в служебных папках программы. Лучше линкование файлов из файловой системы — понятнее, где что искать.
    Ответ написан
    Комментировать
  • Где найти того, кто "оценит" твой код?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Для начала максимально упростите жизнь ревьюверам. Чем меньше усилий потребуется с их стороны, тем больше шанс получить код ревью. Отправлять на почте zip-архив и просить посмотреть — это для ревьювера неудобно, многие откажутся. К тому же как передать комментарии обратно.

    Для каких-то маленьких простых вещей делайте демку на codepen.io или аналогичных сервисах — это очень удобно и быстро открыть ссылку, увидеть код и результат, форкнуть, исправить или оставить комменты.

    Если это уже сайт (даже одностраничник), заливайте его на github pages (https://pages.github.com/).
    Для этого вам придется разобраться с git (если еще не изучили), но git вам точно в профессии понадобится. Когда код на github, его удобно просматривать и оставлять комментарии к конкретным строкам кода, или сделать исправления через pull request. К тому же, не покупая домен и хостинг, вы соберете себе на github портфолио.

    Когда вам будет что показать, ищите ревьюверов прямо здесь на тостере.

    Дополнил этот ответ и написал статью на paulradzkov.com/2016/code_review
    Ответ написан
    Комментировать
  • А вы используете Flexbox в продакшене?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Использую уже пару лет как прогрессивное улучшение:

    1. Сначала пишу разметку по-старинке через float, display-table или inline-block. При этом результат может несколько отличаться от дизайна, быть проще, главное, чтобы выглядело аккуратно.

    2. Через modernizr определяю поддержку флексбокса и переписываю разметку на flexbox. Тут уже всё должно быть по дизайну.

    В последнее время начинаю делать наоборот: сначала пишу разметку на flexbox. А потом через .no-flexbox деградацию на старые float, display-table или inline-block.
    Ответ написан
    2 комментария
  • Какие книги используете для вдохновения в web дизайне?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    www.awwwards.com/shop — не эти ли книги вы ищите?
    Ответ написан
  • Что лучше использовать ID или class?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Недавно отвечал в соседней теме. Скопировал сюда.

    1. Айдишник можно использовать на странице один раз. Два и более раза — это уже не валидно. Поэтому, если понадобится переделать сайт по схеме «три колонки → блок от края до края → снова три колонки» на одной странице, этот кусок кода придется полностью переписывать.

    2. На один элемент можно повесить только один айдишник, а классов на один элемент можно повесить много. Получается, если вешать стили на id, мы лишаемся гибкости.

    3. У айдишников слишком высокий вес селектора. Если вам понадобится контекстно перестилить что-то внутри колонки, то вероятнее всего вы впишите в селектор айдишник и потом, чтобы обнулить овверрайд или сделать новый, вам придется использовать этот же айдишник (или поставить другой). Классами перебить селектор с айдишником не получится — не хватит веса. Айдишник будет множиться в css-ке и реффакторить становится всё сложнее.

    Поэтому выводы: 1) никогда не вешать на айдишники стили; 2) если нет выбора, писать селектор так: div[id="left"] {...} — этот селектор медленнее, чем селектор по классу, но и вес у него на равне с классом. Т.е. это меньшее зло, чем айдишник в стилях.
    Ответ написан
    2 комментария
  • Оправданность применения миксинов bootstrap типа .make-row()?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Миксины .make-row() и прочие я использую, только чтобы сгенерировать альтернативную сетку. Например, параллельно стандартной 12-колоночной нужно использовать 5-колоночную с увеличенным гуттером.

    В остальных случаях пишу классы «row», «col-*» и прочие бутстраповские сразу в вёрстке, мне так удобнее. Потому что нужно сбалансировать сложность в HTML разметке и сложность в CSS коде. Рассмотрим крайности.

    1) Если каждому блоку в разметке писать уникальный класс, а потом в CSS миксинами накидывать rows, cols и прочие свойства из фреймворка, то в HTML сложность понижается, ведь у нас на блоке всего один класс, зато в CSS сложность резко вырастает: чтобы исправить баг, верстальщику придется бегать по миксинам, анализировать зависимости, чтобы не поломалось в другом месте. При этом растет размер CSS файлов: стили для модульной сетки повторяются в разных селекторах (дублирование кода), а верстальщику для каждого нового блока приходится придумывать новое уникальное имя класса. Два внешне похожих блока имеют 90% одинакового кода и этот код повторяется два раза. Такая ситуация называется «css bloating» (css наводнение).

    2) Противоположная ситуация называется «html bloating»: когда в стилях создают простейшие классы типа .colorred, .fontsize14, fontweightbold, .padding20 и т.д., а в разметку на каждый тег кидают по 10-20 таких классов, пока блок не будет выглядеть как надо. В этом случае в CSS очень низкая сложность, нет никаких конфликтов, размер файла невелик. Но если дизайн хоть чуть-чуть поменяется, верстальщику придется переписывать классы на каждом тэге. Вся сложность из стилей ушла в разметку.

    В первом случае (css bloating) у нас 100% отделение внешного вида от разметки. Это вроде бы хорошо, блоки выглядят независимыми, но достигается это высокой ценой: большой риск сломать что-нибудь, внося правки в миксины; повторения в коде и в результате обязательный gzip стилей. В чистом виде можно использовать, когда нет доступа к html-разметке: один и тот же виджет используется на разных сайтах и должен выглядеть по-разному, менять ему html опасно.

    Во втором случае (html bloating) внешний вид смешан с разметкой (это лишь чуть-чуть лучше, чем инлайн styles) и даже самое маленькое изменение в дизайне влечет кучу тупой работы по перестановке классов в html, но зато в css конфликтовать нечему. Пожалуй, в чистом виде может встречаться в веб-приложениях, когда верстка генерируется через js-шаблоны (тупая работа автоматизирована). Отлавливать css баги в динамичной верстке приложений очень сложно, поэтому есть смысл увеличить прочность стилей, перенеся сложность в разметку.

    Оптимальный вариант — распределить сложность примерно поровну между стилями и разметкой — «multiple classes». На каждый блок вешать 3-5 классов, которые отвечают за модульную сетку, геометрию, скин этого блока. Соответствующие классы можно переиспользовать в других блоках. Классы Bootstrap'а хорошо справляются с модульной сеткой и частично с геометрией, а скины и геометрию собственных компонентов верстальщик дописывает сам.

    В БЭМ баланс сложности смещен в сторону css bloating: блоки должны быть независимыми, их нельзя смешивать, можно лишь вкладывать друг в друга, а значит увеличено количество повторений css кода.

    В OOCSS баланс смещен в сторону html bloating: пишут больше мелких, но переиспользуемых конструкций, имена классов придумывать сложнее, т.к. они должны быть достаточно абстрактны, но всё ещё показывать, что этот класс делает.
    Ответ написан
    Комментировать
  • Какие существуют правила хорошего дизайна?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Немножко лирики по теме отношений дизайнер-верстальщик paulradzkov.com/2014/designer-superstar
    Ответ написан
    Комментировать