Когда нужно обозначить разделение между двумя элементами, лучше избежать добавление бордеров, их использование в слишком большом количестве может перегрузить дизайн деталями и создать чувство загроможденности. Есть и другие способы:
- box-shadow
- Используйте два разных цвета фона
- Добавьте дополнительный интерва
Иконки с малым количествой элементов лучше не увеличивать, отсутсвие деталий ухудшает их восприятие, если размер больше задуманного
- Онлайн типографов - для оформление текста, чтобы не расставлять ручками неразрывные пробелы и т.п.
- Оптимальная высота строки (line-height) 1.4 — 1.8 от размера шрифта.
- Конвертор шрифтов
- На айфоне бывает неконтролируемый резайз шрифтов, надо поробовать добавить:
-webkit-text-size-adjust: none;
- Заметка на будующее - доклад от Юлии Бухваловой про кастомные шрифты
- Инфо по тегу
<picture>
с кучей примеров - Сделать одноцветную png
- Плагин
postcss-inline-svg
который при сборке может менять фон SVG и его инлайнить, подробнее - картинки-превью для видео на YT
- Иконки, в частности svg-прелодеры
- Ленивая загрузка изображений, в данной случае фонового, с помощью Intersection Observer API. Документация с примерами. Поддержка хорошая, в IE конечно нет.
-
документация гугла . ВАЖНО не забыть атрибут
muted
на<video>
сautoplay
-
атрибут
playsinline
у<video>
не позволяет ему воспроизводиться в полноэкранном режиме на iPhone
- Верстка простых элементов круг, квадрат, треугольник
<select>
кроссбраузерная стилизация select
select {
width: 100%;
border: 0;
height: 3.7rem;
line-height: 1em;
/*text-indent: .01px;*/
/*text-overflow: '';*/
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
-moz-outline: none;
padding-left: 5%;
font-weight: bold;
outline: none !important;
color: black;
}
Возможно нужен не селект на самом деле, есть еще datalist и optgroup
clip
статья для понимания- Для
input[type='number']
&:-moz-focusring {
outline: none;
}
&::-webkit-outer-spin-button,
&::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
- Удобный сайт для понимая
flex
- Треугольники на css
- Градиент при избыточной прокрутке
- Старое-доброе позиционирование по ценру
.divInCenter {
width: 300px; /* жестко задана ширина */
position: absolute;
left: 50%;
margin-left: -150px; /* отрицательный отступ равный 1/2 ширины (width) позиционируемого блока */
}
- Пульсирующий волны от круга
- Подергивание элемента
- Анимации для гамбургер-меню
- Контентная картинка, как бэкграунд-cover через svg + статья, но в таком способе использования (через svg) приоритет загрузки у картинки всегда будет LOW
- truncate, статья. Truncate для select
.text-block {
overflow: hidden;
height: 40px;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
- Паттерны для таблиц с логикой
inputmode
- атрибут дляinput
иtextarea
указывающий какую клаву на мобилке открыть, крутая и удобная штука, но поддержка в линейке iphone начия от 6го, а на рынке еще много 5к. Сататья про inputmode- Повернутый текст
.rotated {
writing-mode: tb-rl;
transform: rotate(-180deg);
}
- Управляет доступом к заголовку Referer
<a href="https://some-site.com"
referrerpolicy="no-referrer">
External Resource
</a>
- Можно указать в ссылке на почту так же тему письма, кого поставить в копию и др.
<a href="mailto:mefody@yandex-team.ru
?cc=dark.mefody@yandex.ru,n.a.dubko@gmail.com
&bcc=n.a.dubko@gmail.com
&subject=I%20Love%20Frontend%202020
&body=Хочу%20выступить">
- Для ссылки, открывающейся в новом окне хорошо бы это показать, например, иконка перед текстом
a[target="_blank"]::before {
content: url('path-to-icon.svg');
}
- Задержка после таба по устройству - 300ms, чтобы его исключить -
touch-action: manipulation
. Не поддерживается только в сафари - Библиотека для фокуса на элементах - flying-focus
text-decoration-skip-ink: auto
делает красовое подчеркивание. Работает в хром и FF- Галочка на CSS:
content: '';
position: absolute;
left: 5px;
top: 5px;
width: 5px;
height: 9px;
border: solid @white;
border-width: 0 2px 2px 0;
transform: rotate(45deg);
- Кнопки для писем
- Мапинг картинок
- Поддержка css-свойств и не только
- Поддержка медиа-выражений в письмах на февраль 2018 года
- Таймер
- Какие шрифты использовать
Без засечек:
* Arial
* Arial Black
* Tahoma
* Trebuchet MS
* Verdana
* Lucida Console
С засечками:
* Courier
* Courier New
* Georgia
* Times
* Times New Roman
- Page Ruler
- FireShot
- PerfectPixel by WellDoneCode
- Tampermonkey
- Siteimprove Accessibility Checker
- Switcheroo Redirector
- Счетчик - countUp.js
- Проверка наличия элемента во вьюпорте - jquery-visible
- Анимированое появление элементов, плагин платный - wowjs
- Параллакс для фона - jquery-parallax.js
- Параллакс для фиксированных блоков на странице - rellax
- Слайдер 3D, возможностей не хватает и работает как-то костыльно, но бесплатен и уже используется на килзе и лореале - jQuery Rondell - стоит поискать аналог
- flipclock — вылезла проблема, не работает корректно, если стоит больше 2х недель
var date = new Date(2018, 2, 31, 24),
now = new Date(),
diff = (date.getTime() / 1000) - (now.getTime() / 1000),
seconds = (diff > 0) ? diff : 0,
clock;
clock = new FlipClock(this.$timer, {
clockFace: 'DailyCounter',
countdown: true,
language: 'ru-ru',
showSeconds: true,
autoStart: false
});
clock.setTime(seconds);
clock.start();
- countdownjs — нашла как альтернативу flipclock, документация так себе, но разобраться можно
var date = new Date(2020, 0, 15, 0, 0);
countdown(
date,
function(ts) {
document.getElementById('mcaTimer').innerHTML = ts.toHTML('strong');
},
countdown.DAYS|countdown.HOURS|countdown.MINUTES,
countdown.setLabels(
' milliseconde| секунда| минута| час| день| semaine| mois| année| décennie| siècle| millénaire',
' millisecondes| секунд| минут| часов| дней| semaines| mois| années| décennies| siècles| millénaires',
' ',
' ',
' ',
function(n){return '<span class="mca-2018-timer__numeric">' + n + '</span><br>'; }
)
);
- Микроразметка, пояснения от яндекс, schema.org
- Установка NPM глобально - на убунте нормально не работает
- https://lawsofux.com/
- Полезная статья про фронтэнд разработку
- sessionStorage
- Ресурс для изучения git, еще не тыкала, но выглядит удобно
- Статья про бесплатные конструкторы сайтов
- keyframes.app
- cssgrid-generator
TODO @me
- Сделать пример по видео
- Пополнить список плагинов