Обилие устройств с высоким разрешением экранов подталкивает разработчиков к использованию пиктограмм в векторных форматах. Шрифтовые иконки так и не стали универсальным средством из-за проблем с отображением. В докладе Владимир расскажет об использовании SVG для пиктограмм: о том, как собрать файл с контурами, как добавить их на страницу и как избежать типичных проблем.
This was from a talk I gave at New York Front End Coders in July 2013 on how to create random CSS Animations.
CSS Keyframe Animations are definitions in CSS that outline the CSS properties to be animated and the points in time during the life of the animation that these animations should be achieved. This can lead to huge amounts of CSS when trying to make something appear random.
This talk sought to explain how randomisation (of a sort) was achieved. Hopefully the slides themselves can communicate this.
Обилие устройств с высоким разрешением экранов подталкивает разработчиков к использованию пиктограмм в векторных форматах. Шрифтовые иконки так и не стали универсальным средством из-за проблем с отображением. В докладе Владимир расскажет об использовании SVG для пиктограмм: о том, как собрать файл с контурами, как добавить их на страницу и как избежать типичных проблем.
This was from a talk I gave at New York Front End Coders in July 2013 on how to create random CSS Animations.
CSS Keyframe Animations are definitions in CSS that outline the CSS properties to be animated and the points in time during the life of the animation that these animations should be achieved. This can lead to huge amounts of CSS when trying to make something appear random.
This talk sought to explain how randomisation (of a sort) was achieved. Hopefully the slides themselves can communicate this.
Презентация подготовлена по материалам выступления Юрия Бондаренко на витебском MiniQ#14, который был проведен 25 апреля 2019:
https://vk.com/miniq14;
https://communities.by/events/miniq-vitebsk-14.
Про доклад:
В докладе я расскажу о том, как писать стили на чистом "ванильном" CSS. Мы рассмотрим возникающие перед вертальщиком практические задачи и способы их решения.
Ваш CSS нас не устраивает, мы придумаем свой / Роман Прудников (2ГИС)Ontico
РИТ++ 2017, Frontend Сonf
Зал Дели + Калькутта, 5 июня, 11:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2514.html
Нам постоянно нужно от CSS больше того, что в нём (или браузерах) есть прямо сейчас.
История, рассказывающая о том, какими способами мы решали(ем) проблемы недостающих нам возможностей (css frameworks, css polyfills, preproccessors, “post”-proccessors) и о Houdini, который должен положить конец этой ерунде, позволив описывать разработчикам с помощью JavaScript не просто полифилы, а полноценные реализации, не мешающие производительности.
Расскажу о том, что мы можем контролировать в CSS сейчас, что сможем с Houdini, и что в нем есть на текущий момент с примерами демок.
Олег Мохов "Драматическая история одной маленькой промостранички"Yandex
Промостраницы — это отдельный жанр в вёрстке. Маленькие, лаконичные и обязательно с фишкой — вот всё, что обычно они из себя представляют. Чаще всего вёрстка промостраницы длится не более двух дней. Так должно было быть и на этот раз, но...
Роман Комаров "CSS-препроцессоры: из каменного века — в будущее"Yandex
Какие возможности предлагают CSS-препроцессоры, в чём различия между Sass, Less и Stylus, на какие грабли можно с ними наступить и какие дополнительные инструменты нужно использовать.
Тестировать регресс верстки скриншотами модно, этим никого не удивишь. Мы давно хотели внедрить этот вид тестирования у себя. Все время смущали вопросы простоты поддержки и применения, но в большей степени вопрос пропускной способности решений (производительности). Хотелось решения, простого в использовании и быстрого в работе. Готовые решения не подошли, и мы взялись делать свое.
В докладе расскажем, что из этого вышло, какие задачи решали и как мы добились того, чтобы тестирование скриншотами практически не влияло на общее время прохождения тестов.
Видео: https://youtu.be/ULwdj_Vr_WA
React со скоростью света: не совсем обычный серверный рендерингTimophy Chaptykov
Расскажу о небольшом исследовании, в котором мы думали о том, можем ли мы себе позволить использовать React для отдельных элементов на сайте, как устроен серверный рендеринг в VK; и получилось ли связать одно с другим. Упомяну о строковых шаблонизаторах, виртуальной DOM и LR-парсерах.
Презентация подготовлена по материалам выступления Юрия Бондаренко на витебском MiniQ#14, который был проведен 25 апреля 2019:
https://vk.com/miniq14;
https://communities.by/events/miniq-vitebsk-14.
Про доклад:
В докладе я расскажу о том, как писать стили на чистом "ванильном" CSS. Мы рассмотрим возникающие перед вертальщиком практические задачи и способы их решения.
Ваш CSS нас не устраивает, мы придумаем свой / Роман Прудников (2ГИС)Ontico
РИТ++ 2017, Frontend Сonf
Зал Дели + Калькутта, 5 июня, 11:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2514.html
Нам постоянно нужно от CSS больше того, что в нём (или браузерах) есть прямо сейчас.
История, рассказывающая о том, какими способами мы решали(ем) проблемы недостающих нам возможностей (css frameworks, css polyfills, preproccessors, “post”-proccessors) и о Houdini, который должен положить конец этой ерунде, позволив описывать разработчикам с помощью JavaScript не просто полифилы, а полноценные реализации, не мешающие производительности.
Расскажу о том, что мы можем контролировать в CSS сейчас, что сможем с Houdini, и что в нем есть на текущий момент с примерами демок.
Олег Мохов "Драматическая история одной маленькой промостранички"Yandex
Промостраницы — это отдельный жанр в вёрстке. Маленькие, лаконичные и обязательно с фишкой — вот всё, что обычно они из себя представляют. Чаще всего вёрстка промостраницы длится не более двух дней. Так должно было быть и на этот раз, но...
Роман Комаров "CSS-препроцессоры: из каменного века — в будущее"Yandex
Какие возможности предлагают CSS-препроцессоры, в чём различия между Sass, Less и Stylus, на какие грабли можно с ними наступить и какие дополнительные инструменты нужно использовать.
Тестировать регресс верстки скриншотами модно, этим никого не удивишь. Мы давно хотели внедрить этот вид тестирования у себя. Все время смущали вопросы простоты поддержки и применения, но в большей степени вопрос пропускной способности решений (производительности). Хотелось решения, простого в использовании и быстрого в работе. Готовые решения не подошли, и мы взялись делать свое.
В докладе расскажем, что из этого вышло, какие задачи решали и как мы добились того, чтобы тестирование скриншотами практически не влияло на общее время прохождения тестов.
Видео: https://youtu.be/ULwdj_Vr_WA
React со скоростью света: не совсем обычный серверный рендерингTimophy Chaptykov
Расскажу о небольшом исследовании, в котором мы думали о том, можем ли мы себе позволить использовать React для отдельных элементов на сайте, как устроен серверный рендеринг в VK; и получилось ли связать одно с другим. Упомяну о строковых шаблонизаторах, виртуальной DOM и LR-парсерах.
19. Определяем
vendor prefix
<script type="text/javascript">
var vendor_prefix = null,
div = document.createElement('div');
if (typeof(div.style.webkitTransform) != 'undefined')
vendor_prefix = '-webkit-';
else if (typeof(div.style.MozTransform) != 'undefined')
vendor_prefix = '-moz-';
else if (typeof(div.style.OTransform) != 'undefined')
vendor_prefix = '-o-';
else if (typeof(div.style.transform) != 'undefined')
vendor_prefix = '';
if (vendor_prefix !== null) {
// есть поддержка CSS Transforms
}
</script>
20. Safari/WebKit
на OS X 10.6 / iPhone
• поддержка 3D transforms
CSS Transforms + CSS Transitions/Animations =
• Аппаратное ускорение
• Субпиксельное сглаживание
• Не относится к Google Chrome
и Safari на Mac OS X 10.5
22. Определяем наличие
3D-трансформаций
<style type="text/css">
#transform3d-beacon {
width: 0;
}
@media screen and (-webkit-transform-3d) {
#transform3d-beacon {
width: 100px;
}
}
</style>
<script type="text/javascript">
var beacon = document.getElementById('transform3d-beacon');
var has_3d_support = beacon.offsetWidth > 0 && !window.opera;
</script>
23. Меняем начальное значение
свойства с CSS Transition
A
-webkit-transition-property: top, left;
B
-webkit-transition-duration: 2s;
C
24. Меняем начальное значение
свойства с CSS Transition
A
// точка B
block.style.left = ‘20px’;
block.style.top = ‘40px’;
B
// точка C
block.style.left = ‘100px’;
C block.style.top = ‘80px’;
25. Меняем начальное значение
свойства с CSS Transition
// точка B
A block.style.left = ‘20px’;
block.style.top = ‘40px’;
block.style.webkitTransitionDuration = ‘0s’;
B
setTimeout(function(){
// точка C
block.style.left = ‘100px’;
C
block.style.top = ‘80px’;
block.style.webkitTransitionDuration = ‘2s’;
}, 1);
26. Останавливаем
СSS Transition
<style type="text/css">
#block {
-webkit-transition: left 5s linear 0s;
}
</style>
<script type="text/javascript">
function getCSS(elem, property) {
var cs = window.getComputedStyle(elem, null);
return cs.getPropertyValue(property);
}
var block = document.getElementById('block');
// запуск анимации
block.style.left = ‘500px’;
// останавка анимации
block.style.left = getCSS(block, ‘left’);
</script>
27. Останавливаем
СSS Transition
...но технически анимация не остановится
-webkit-transition: left 5s linear 0s;
block.style.left = ‘500px’;
setTimeout(function(){
block.style.left = getCSS(block, ‘left’);
}, 2000);
block.addEventListener(‘webkitTransitionEnd’, function(){
// покажет alert через 5 сек. после «остановки»
alert(‘stopped’);
}, false);