This media is not supported in your browser
VIEW IN TELEGRAM
#фишка дня
Как анимировать элемент по клику на чистом CSS?
Ведь псевдокласс
Например, как сделать эффект «копирования» текста, как на видео? Совсем неохота навешивать что-то ещё на
Ответ на самом деле не столь очевиден, как может показаться. И имя ему
Схема работы проста. Навесили конечное состояние перехода на неактивное состояние, а на активное — установили начальное.
Выглядит в итоге как-то так:
https://codepen.io/alinaki/pen/wvEdaWG
И никакого жонглирования классами не надо.
#css #active #click #animation #бородач
Как анимировать элемент по клику на чистом CSS?
Ведь псевдокласс
:active
даётся ровно в тот момент, когда ты нажимаешь кнопку мыши и тут же пропадает, как кнопка была отжата.Например, как сделать эффект «копирования» текста, как на видео? Совсем неохота навешивать что-то ещё на
onmousedown
и onmouseup
...Ответ на самом деле не столь очевиден, как может показаться. И имя ему
:not(:active)
.Схема работы проста. Навесили конечное состояние перехода на неактивное состояние, а на активное — установили начальное.
Выглядит в итоге как-то так:
https://codepen.io/alinaki/pen/wvEdaWG
И никакого жонглирования классами не надо.
#css #active #click #animation #бородач
👍31❤4
#заметка дня
Часто приходится делать таблицы в GitHub Markdown? Тогда лови это знание, пригодится.
Списки и контейнеры не могут и не должны отображаться внутри таблиц, набранных "палочками" (||). Палочки — только для текстового контента, для данных. Точка.
Нужен табличный, кхрм, макет (ну список изменений там запихать) – используй HTML таблицы.
Но есть нюанс.
Чтобы правильно использовать Markdown внутри HTML-таблиц, нужно этот самый контент с двух сторон обложить переводами строки, вот так:
...и будет норм.
#markdown #бородач
Часто приходится делать таблицы в GitHub Markdown? Тогда лови это знание, пригодится.
Списки и контейнеры не могут и не должны отображаться внутри таблиц, набранных "палочками" (||). Палочки — только для текстового контента, для данных. Точка.
Нужен табличный, кхрм, макет (ну список изменений там запихать) – используй HTML таблицы.
Но есть нюанс.
Чтобы правильно использовать Markdown внутри HTML-таблиц, нужно этот самый контент с двух сторон обложить переводами строки, вот так:
<td>
_markdown_ **тут**
</td>
...и будет норм.
#markdown #бородач
👍13❤1
Прошло почти два года. И вы не представляете, на theguardian.com даже после редизайна и перехода на гибридный режим сайта (классический рендеринг плюс SSR), у них всё тот же фронтендер-веган!
Ну или новый. Неважно. Их сейчас много развелось.
Это ли не упорство в работе? :)
Ну или новый. Неважно. Их сейчас много развелось.
<label id="veggie-burger"
aria-label="Toggle main menu" for=
"top-nav-input-checkbox" data-link-name=
"nav3 : veggie-burger : show" tabindex="0" role=
"button" data-testid="
" class=
"dcr-w5ozf4"><span class="dcr-1nvgr5i">Show
More</span></label>
Это ли не упорство в работе? :)
🤩7
#инструмент дня
Как потырить понравившуюся SVG с сайта в учебных, конечно же, целях?
Поставить себе SVG Gobbler!
https://www.svggobbler.com/
Скачать, оптимизировать, посмотреть код — без лишних действий.
#svg #extension #бородач
Как потырить понравившуюся SVG с сайта в учебных, конечно же, целях?
Поставить себе SVG Gobbler!
https://www.svggobbler.com/
Скачать, оптимизировать, посмотреть код — без лишних действий.
#svg #extension #бородач
👍10❤2
Forwarded from Виктор Анферов
На сайте рекомендуют только Chrome, но на самом деле такое-же расширение есть и для Firefox
https://addons.mozilla.org/en-US/firefox/addon/svg-gobbler/
https://addons.mozilla.org/en-US/firefox/addon/svg-gobbler/
addons.mozilla.org
SVG Gobbler – Get this Extension for 🦊 Firefox (en-US)
Download SVG Gobbler for Firefox. Open source browser extension for finding, editing, exporting, optimizing, and managing SVG content.
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
#ссылка дня
Сегодня я подобрал максимально красивый ресурс: набор демок на WebGL: https://ykob.github.io/sketch-threejs/
Эффекты глитча, игры с частицами, огонь, солнце, вода! Огонь, кстати, выглядит пугающе натурально.
Все примеры с исходными кодами, есть и весьма практичные, вроде галереи.
#js #webgl #бородач
Сегодня я подобрал максимально красивый ресурс: набор демок на WebGL: https://ykob.github.io/sketch-threejs/
Эффекты глитча, игры с частицами, огонь, солнце, вода! Огонь, кстати, выглядит пугающе натурально.
Все примеры с исходными кодами, есть и весьма практичные, вроде галереи.
#js #webgl #бородач
🤩10
Media is too big
VIEW IN TELEGRAM
#статья дня
Не так давно в чате канала проскочил вопрос, как правильно делать контейнеры, которые могут вылезать за визуальные границы.
Например, основной контент находится посредине и занимает в ширину 80-120 приятных для чтения глазу символов, а вот картинки хотелось бы разнести до краёв.
Техника называется full bleed. Я не знаю, как точно перевести.
Если посмотрите видео, то виден ещё один вариант использования, когда галерея выходит за пределы экрана лишь с одной стороны, но дальше тем не менее границы игнорирует.
Вот так: https://codepen.io/hexagoncircle/pen/gOWjwme
Альтернативный вариант: https://codepen.io/maartenbruggink/full/eYWjxae
Раньше такое делалось жонглированием полями, теперь же у нас есть гриды.
И у небезызвестного Джоша Комо есть статья как раз об этом: https://www.joshwcomeau.com/css/full-bleed/
Тем не менее, я рекомендую посмотреть приложенные кодпены, поскольку в них зоны грида именуются и становится понятнее, что к чему.
Всем full bleed, котаны!
#css #fullbleed #gallery #бородач
Не так давно в чате канала проскочил вопрос, как правильно делать контейнеры, которые могут вылезать за визуальные границы.
Например, основной контент находится посредине и занимает в ширину 80-120 приятных для чтения глазу символов, а вот картинки хотелось бы разнести до краёв.
Техника называется full bleed. Я не знаю, как точно перевести.
Если посмотрите видео, то виден ещё один вариант использования, когда галерея выходит за пределы экрана лишь с одной стороны, но дальше тем не менее границы игнорирует.
Вот так: https://codepen.io/hexagoncircle/pen/gOWjwme
Альтернативный вариант: https://codepen.io/maartenbruggink/full/eYWjxae
Раньше такое делалось жонглированием полями, теперь же у нас есть гриды.
И у небезызвестного Джоша Комо есть статья как раз об этом: https://www.joshwcomeau.com/css/full-bleed/
Тем не менее, я рекомендую посмотреть приложенные кодпены, поскольку в них зоны грида именуются и становится понятнее, что к чему.
Всем full bleed, котаны!
#css #fullbleed #gallery #бородач
❤23👍9
#такое дня
Если вы не знали или не понимали, что такое "секрет Полишинеля", я вам сейчас всё объясню.
Тут выяснилось, что в браузерах на основе движка Blink (Chrome, Brave, Edge, Яндекс.Браузер сами проверите) есть специальное скрытое расширение, которое предоставляет сайтам Google данные о нагрузке на компьютер по каждой вкладке отдельно.
То есть, если Google определяет, что звонок в Meet слишком нагружает систему, он может что-то с этим сделать, ухудшить качество видео или, наоборот, улучшить, если есть запас.
Казалось бы, ну и что такого? А то, что конкурентам подобное недоступно. Тот же Zoom потребует дополнительных телодвижений.
ID расширения: nkeimhogjdpnpccoofpliimaahmaaome
Название: hangout_services.
Предоставляемые дополнением данные отображаются в сервисе meet.google.com в панели "Troubleshooting".
Ну что, это уже недобросовестная конкуренция, или так и надо? :)
#google #chrome
Если вы не знали или не понимали, что такое "секрет Полишинеля", я вам сейчас всё объясню.
Тут выяснилось, что в браузерах на основе движка Blink (Chrome, Brave, Edge, Яндекс.Браузер сами проверите) есть специальное скрытое расширение, которое предоставляет сайтам Google данные о нагрузке на компьютер по каждой вкладке отдельно.
То есть, если Google определяет, что звонок в Meet слишком нагружает систему, он может что-то с этим сделать, ухудшить качество видео или, наоборот, улучшить, если есть запас.
Казалось бы, ну и что такого? А то, что конкурентам подобное недоступно. Тот же Zoom потребует дополнительных телодвижений.
ID расширения: nkeimhogjdpnpccoofpliimaahmaaome
Название: hangout_services.
Предоставляемые дополнением данные отображаются в сервисе meet.google.com в панели "Troubleshooting".
Ну что, это уже недобросовестная конкуренция, или так и надо? :)
#google #chrome
👍11🤩3🤬2
#расширение дня
Ну что, мы с вами уже наворовали SVG со всего интернета, пришло время воровать кнопки!
Видимо, так подумал Анатолий Зенков, создавая своё расширение с незамысловатым названием Button Stealer.
Механизм работы похож на игры без игрового процесса: просто ходите по сайтам, а коллекция сворованных кнопок автоматически пополняется.
Покажи мне свои кнопки и я скажу, кто ты.
#chrome #button #stealer
Ну что, мы с вами уже наворовали SVG со всего интернета, пришло время воровать кнопки!
Видимо, так подумал Анатолий Зенков, создавая своё расширение с незамысловатым названием Button Stealer.
Механизм работы похож на игры без игрового процесса: просто ходите по сайтам, а коллекция сворованных кнопок автоматически пополняется.
Покажи мне свои кнопки и я скажу, кто ты.
#chrome #button #stealer
🤩19❤4👍1
#статья дня
Итак. Я когда-то вам разгонял про фреймворк RICE. И нет, это не про джаббаскрипт, это про работу. Как сортировать задачи, грубо говоря. Что важно, что менее важно. А что не нужно. Вот тут: https://www.tg-me.com/htmlshit/1249
Думаете, это просто теория? Вот и народ из Shopify тоже так думал, а в итоге стали переводить своё мобильное приложение на React Native согласно приоритетам, рассчитанным по RICE. Золушки, ага.
На самом деле все логично: бахнуть разом огромное приложение на новую технологию невозможно, но и вслепую выбирать экраны для переделки — тоже. Добавление же экранов в новой технологии не решит проблему наличия старых и их поддержки. Так что пришлось подумать.
Собственно, вот оно: https://shopify.engineering/migrating-our-largest-mobile-app-to-react-native
Получилось долго.
#react #native #rice #бородач
Итак. Я когда-то вам разгонял про фреймворк RICE. И нет, это не про джаббаскрипт, это про работу. Как сортировать задачи, грубо говоря. Что важно, что менее важно. А что не нужно. Вот тут: https://www.tg-me.com/htmlshit/1249
Думаете, это просто теория? Вот и народ из Shopify тоже так думал, а в итоге стали переводить своё мобильное приложение на React Native согласно приоритетам, рассчитанным по RICE. Золушки, ага.
На самом деле все логично: бахнуть разом огромное приложение на новую технологию невозможно, но и вслепую выбирать экраны для переделки — тоже. Добавление же экранов в новой технологии не решит проблему наличия старых и их поддержки. Так что пришлось подумать.
Собственно, вот оно: https://shopify.engineering/migrating-our-largest-mobile-app-to-react-native
Получилось долго.
#react #native #rice #бородач
👍8
#инструмент дня
Предположим, тебе заказали разработку Flutter или React Native приложения. Да даже Cordova или Ionic. Предположим, ты даже справился. Настало время собирать под iOS. И тут облом. Нужна macOS.
Можно купить старый мак, можно завести виртуальную машину, обмазавшись ютубом и tonymacx86.
А можно воспользоваться Docker и вот этим прекрасным репозиторием: https://github.com/sickcodes/Docker-OSX
Куча рецептов прямо в Read.me, куча полезных скриптов. В общем, надо брать и пробовать.
Отпишитесь потом о результатах, ок?) Тоже при случае попробую. Прост мак-то есть)
#docker #macos #бородач
Предположим, тебе заказали разработку Flutter или React Native приложения. Да даже Cordova или Ionic. Предположим, ты даже справился. Настало время собирать под iOS. И тут облом. Нужна macOS.
Можно купить старый мак, можно завести виртуальную машину, обмазавшись ютубом и tonymacx86.
А можно воспользоваться Docker и вот этим прекрасным репозиторием: https://github.com/sickcodes/Docker-OSX
Куча рецептов прямо в Read.me, куча полезных скриптов. В общем, надо брать и пробовать.
Отпишитесь потом о результатах, ок?) Тоже при случае попробую. Прост мак-то есть)
#docker #macos #бородач
❤11🤩2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#видео дня
Да, я нашёл это на Reddit (но я хотя бы признаюсь в этом, в отличие от… 😇).
Оригинальное название — как создать визуальный XOR-эффект на одном только CSS filter и mix-blend-mode (инвертирование по маске, короче). Но для этого стоило бы заодно код переписать в кодпен…
Поэтому делаем так: теперь это видео о том, как использовать Emmet будто ты бог вёрстки.
Эффективность 9000, короче.
#emmet #filter #blend #бородач
Да, я нашёл это на Reddit (но я хотя бы признаюсь в этом, в отличие от… 😇).
Оригинальное название — как создать визуальный XOR-эффект на одном только CSS filter и mix-blend-mode (инвертирование по маске, короче). Но для этого стоило бы заодно код переписать в кодпен…
Поэтому делаем так: теперь это видео о том, как использовать Emmet будто ты бог вёрстки.
Эффективность 9000, короче.
#emmet #filter #blend #бородач
👍15🤩4
#новость дня
В node.js появилась экспериментальная нативная поддержка TypeScript!
Крепко же их bun приложил...
Ссылка на PR: https://github.com/nodejs/node/pull/53725
По факту происходит отбрасывание типов, поэтому средства вроде Enum и namespace не поддерживаются. Инициатива предоставления стабильного API поверх TypeScript получила название amaro и в дальнейшем планируется выделение в отдельный обновляемый модуль. Работает (кто бы сомневался) при помощи swc, собранного в WebAssembly!
Так что никаких больше
...и поехали!
#node #typescript #ts
В node.js появилась экспериментальная нативная поддержка TypeScript!
Крепко же их bun приложил...
Ссылка на PR: https://github.com/nodejs/node/pull/53725
По факту происходит отбрасывание типов, поэтому средства вроде Enum и namespace не поддерживаются. Инициатива предоставления стабильного API поверх TypeScript получила название amaro и в дальнейшем планируется выделение в отдельный обновляемый модуль. Работает (кто бы сомневался) при помощи swc, собранного в WebAssembly!
Так что никаких больше
ts-node
!node main.ts
...и поехали!
#node #typescript #ts
GitHub
module: add --experimental-strip-types by marco-ippolito · Pull Request #53725 · nodejs/node
It is possible to execute TypeScript files by setting the experimental flag --experimental-strip-types.
Node.js will transpile TypeScript source code into JavaScript source code.
During the transpi...
Node.js will transpile TypeScript source code into JavaScript source code.
During the transpi...
❤17🤩3👍1🤬1
This media is not supported in your browser
VIEW IN TELEGRAM
#инструмент дня
На моей памяти было два веб-приложения, позволяющих в некой мере понять, как работает SVG:
раз и два.
Суть в том, что иногда недостаточно просто взять и нарисовать SVG в редакторе, хочется понять принцип отрисовки, позиционирования, заливки и контуринга.
И да, пусть эти приложения на фоне настоящих редакторов выглядят смешно, настоящие редакторы не спешат делиться своими секретами рендеринга. Хотя наверняка какие-нибудь расширения для люстры, инкскейпа или фигмы должны иметься... но их реализация сильно зависит от движка проекта. Ладно, мы отвлеклись.
Итак, вашему вниманию проект с говорящим названием svg.wtf от Амелии Ваттенберг.
Предоставляет всё то же наглядное понимание принципов работы SVG, от координат и кривых безье до фильтров. Можно сохранять снэпшоты, чтобы сравнивать состояния работы, есть простейшие скрипты для работы с кривыми (например, выстроить по сетке).
Думаю, надо попробовать заслать ей скрипт для переориентации кривых (из моего любимого editor.method.ac), это когда вместо трансформов кривые возвращаются к простым координатам.
В общем, больше редакторов богу редакторов!
#svg #tool #education
На моей памяти было два веб-приложения, позволяющих в некой мере понять, как работает SVG:
раз и два.
Суть в том, что иногда недостаточно просто взять и нарисовать SVG в редакторе, хочется понять принцип отрисовки, позиционирования, заливки и контуринга.
И да, пусть эти приложения на фоне настоящих редакторов выглядят смешно, настоящие редакторы не спешат делиться своими секретами рендеринга. Хотя наверняка какие-нибудь расширения для люстры, инкскейпа или фигмы должны иметься... но их реализация сильно зависит от движка проекта. Ладно, мы отвлеклись.
Итак, вашему вниманию проект с говорящим названием svg.wtf от Амелии Ваттенберг.
Предоставляет всё то же наглядное понимание принципов работы SVG, от координат и кривых безье до фильтров. Можно сохранять снэпшоты, чтобы сравнивать состояния работы, есть простейшие скрипты для работы с кривыми (например, выстроить по сетке).
Думаю, надо попробовать заслать ей скрипт для переориентации кривых (из моего любимого editor.method.ac), это когда вместо трансформов кривые возвращаются к простым координатам.
В общем, больше редакторов богу редакторов!
#svg #tool #education
👍22❤6🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
#фишка дня
— Криса Койера знаешь?
— Нет
— Дядька мой
Ладно, кроме шуток. Часто CEO вашей компании даёт стримы и уроки по вёрстке? А CEO CodePen — даёт. От скуки, может?
И тема сегодняшнего выпуска — offset-path. Или как заставить объект следовать контуру.
Сразу демо: https://codepen.io/chriscoyier/pen/ZEdpVev
Весь кайф в том, что offset-path принимает не только описание кривой SVG, но и значения боксовой модели вроде border-box, что означает, что в качестве кривой будут границы родителя!
Да, как правило речь почему-то всегда о круге или волне, но, по-моему, следование квадрату не менее эффектно.
Ну и вообще в официальном твиттере компании CodePen много неожиданного вываливают.
#css #path #animation
— Криса Койера знаешь?
— Нет
— Дядька мой
Ладно, кроме шуток. Часто CEO вашей компании даёт стримы и уроки по вёрстке? А CEO CodePen — даёт. От скуки, может?
И тема сегодняшнего выпуска — offset-path. Или как заставить объект следовать контуру.
Сразу демо: https://codepen.io/chriscoyier/pen/ZEdpVev
Весь кайф в том, что offset-path принимает не только описание кривой SVG, но и значения боксовой модели вроде border-box, что означает, что в качестве кривой будут границы родителя!
Да, как правило речь почему-то всегда о круге или волне, но, по-моему, следование квадрату не менее эффектно.
Ну и вообще в официальном твиттере компании CodePen много неожиданного вываливают.
#css #path #animation
👍21🤩7❤2
This media is not supported in your browser
VIEW IN TELEGRAM
#ссылка дня
Да-да, я знаю, знаю, что любить иконочные шрифты нынче не в моде, а в моде дико заморачиваться с SVG, символами...
Но вот типографика же не стоит на месте. Вариативные шрифты — уже реальность. Было бы глупо не применить их для иконок.
И таки да, встречайте, Material Symbols: https://material.io/blog/introducing-symbols
Вариативный иконочный шрифт от Google. Естественно, он есть на Google Fonts: https://fonts.google.com/icons
Естественно, вы можете скачать SVG и PNG.
Ну и куда же без плагина для Figma: https://www.figma.com/community/plugin/1088610476491668236/Material-Symbols, позволяющего настроить и экспортировать иконки как душе угодно.
Меня, правда, забавляет целый ползунок на fill, если вы понимаете, о чём я. Вообще, с ползунками на Google Fonts всё очень плохо... но речь не о них.
К слову, nice touch: там присутствуют специальные символы для iOS, они вариативности не подвластны. Забавный жест.
#fonts #icons #google #material #бородач
Да-да, я знаю, знаю, что любить иконочные шрифты нынче не в моде, а в моде дико заморачиваться с SVG, символами...
Но вот типографика же не стоит на месте. Вариативные шрифты — уже реальность. Было бы глупо не применить их для иконок.
И таки да, встречайте, Material Symbols: https://material.io/blog/introducing-symbols
Вариативный иконочный шрифт от Google. Естественно, он есть на Google Fonts: https://fonts.google.com/icons
Естественно, вы можете скачать SVG и PNG.
Ну и куда же без плагина для Figma: https://www.figma.com/community/plugin/1088610476491668236/Material-Symbols, позволяющего настроить и экспортировать иконки как душе угодно.
Меня, правда, забавляет целый ползунок на fill, если вы понимаете, о чём я. Вообще, с ползунками на Google Fonts всё очень плохо... но речь не о них.
К слову, nice touch: там присутствуют специальные символы для iOS, они вариативности не подвластны. Забавный жест.
#fonts #icons #google #material #бородач
👍6🤩6
#фишка дня
Вот вы знали, что в слушатель события можно передать AbortSignal и не выкаблучиваться с именованными функциями и вообще перестать слушать много событий разом, если надо?
А вот можно! Как в этом примере от Мэтта Покока.
И больше таких приятных современных вещей описано в статье Марка Грабански. Крайне рекомендую к ознакомлению.
#js #event #abortsignal
Вот вы знали, что в слушатель события можно передать AbortSignal и не выкаблучиваться с именованными функциями и вообще перестать слушать много событий разом, если надо?
А вот можно! Как в этом примере от Мэтта Покока.
И больше таких приятных современных вещей описано в статье Марка Грабански. Крайне рекомендую к ознакомлению.
#js #event #abortsignal
👍38❤2🤩2
#фишка дня
Как-то так получилось, что на мобильных устройствах работать с файлами и буфером обмена ну... неудобно.
И ладно iOS, но на Android тоже интерфейсы такие себе. Даже на Windows Mobile и PalmOS было как-то... стандартнее чтоль.
С другой стороны, появилась идея шэринга, aka share. И она на самом деле отвечает запросам людей: перекинуть файл из одного приложения в другое, а что нам ещё нужно-то?
Итак, встречайте: Web Share API.
Пользоваться очень просто:
Но таким образом можно передавать не только текст и ссылки, но и файлы! Включая те, что вы только что сгенерировали на холсте или в приложении вообще.
На десктопе, к сожалению, не работает. Но там у нас иные средства имеются.
#web #share #api
Как-то так получилось, что на мобильных устройствах работать с файлами и буфером обмена ну... неудобно.
И ладно iOS, но на Android тоже интерфейсы такие себе. Даже на Windows Mobile и PalmOS было как-то... стандартнее чтоль.
С другой стороны, появилась идея шэринга, aka share. И она на самом деле отвечает запросам людей: перекинуть файл из одного приложения в другое, а что нам ещё нужно-то?
Итак, встречайте: Web Share API.
Пользоваться очень просто:
navigator.share({
title: "Будни разработчика",
text: "Фронтенд и не только",
url: "https://www.tg-me.com/htmlshit",
});
Но таким образом можно передавать не только текст и ссылки, но и файлы! Включая те, что вы только что сгенерировали на холсте или в приложении вообще.
navigator.share({
files: [file],
title: 'hello.png'
});
На десктопе, к сожалению, не работает. Но там у нас иные средства имеются.
#web #share #api
👍23