#новость дня
Краудфандинг давно и прочно закрепился в мире как средство набрать денег на то, что сложно оценить обычным бизнес-планом. Гики всех мастей получают то, что иначе получить сложно. Стартуют новые бизнесы, успешные и не очень.
8 лет назад мимо меня почему-то прошла тема, что ребята из Font Awesome собрали миллион долларов на разработку пятой версии своих иконочных шрифтов. Миллион, вместо планируемых 30 000. Этот рекорд, кстати, до сих пор держится.
Не в смысле рекорд кикстартера вообще, а в смысле рекорд среди поддержки софтовых проектов.
В чём отличие подобного сбора средств от простого инвестирования или бизнес-планов? Это свобода не только произвести некий платный продукт, но и вернуть что-то сообществу. И уж Font Awesome сложно упрекнуть в том, что они жадные.
Ну ладно, разве что чуток.
Так вот, к чему это я. Они вернулись!
Пару лет назад ребята взяли под своё крыло открытый проект UI-кита, основанного на веб-компонентах — Shoelace. И потихоньку его пилили. Почему потихоньку? Потому что путь веб-компонентов ко всеобщей поддержке и стандартизации весьма тернист. Одни только битвы YouTube с Firefox чего стоят.
И вот они решили повторить свой успех и резко собрать денег на выпуск третьей версии набора, превратив его в полновесную и конкурентоспособную дизайн-систему! Под таким скучным названием Web Awesome.
Естественно, обещан достаточно жирный бесплатный пакет, а в платном — плюшки вроде конструктора раскладок, тем, шаблонов... Причём, на каждые собранные 50к увеличивается число бесплатных плюшек.
Я это пишу в тот момент, когда сбор кончается. Как и 8 лет назад, прошло мимо моих радаров. Рекорда не случилось, но 700 000 собранных — это потрясающий результат.
Ну что, веб-компоненты захватят мир, или как обычно? :)
#ui #design #awesome
Краудфандинг давно и прочно закрепился в мире как средство набрать денег на то, что сложно оценить обычным бизнес-планом. Гики всех мастей получают то, что иначе получить сложно. Стартуют новые бизнесы, успешные и не очень.
8 лет назад мимо меня почему-то прошла тема, что ребята из Font Awesome собрали миллион долларов на разработку пятой версии своих иконочных шрифтов. Миллион, вместо планируемых 30 000. Этот рекорд, кстати, до сих пор держится.
Не в смысле рекорд кикстартера вообще, а в смысле рекорд среди поддержки софтовых проектов.
В чём отличие подобного сбора средств от простого инвестирования или бизнес-планов? Это свобода не только произвести некий платный продукт, но и вернуть что-то сообществу. И уж Font Awesome сложно упрекнуть в том, что они жадные.
Ну ладно, разве что чуток.
Так вот, к чему это я. Они вернулись!
Пару лет назад ребята взяли под своё крыло открытый проект UI-кита, основанного на веб-компонентах — Shoelace. И потихоньку его пилили. Почему потихоньку? Потому что путь веб-компонентов ко всеобщей поддержке и стандартизации весьма тернист. Одни только битвы YouTube с Firefox чего стоят.
И вот они решили повторить свой успех и резко собрать денег на выпуск третьей версии набора, превратив его в полновесную и конкурентоспособную дизайн-систему! Под таким скучным названием Web Awesome.
Естественно, обещан достаточно жирный бесплатный пакет, а в платном — плюшки вроде конструктора раскладок, тем, шаблонов... Причём, на каждые собранные 50к увеличивается число бесплатных плюшек.
Я это пишу в тот момент, когда сбор кончается. Как и 8 лет назад, прошло мимо моих радаров. Рекорда не случилось, но 700 000 собранных — это потрясающий результат.
Ну что, веб-компоненты захватят мир, или как обычно? :)
#ui #design #awesome
👍12
This media is not supported in your browser
VIEW IN TELEGRAM
#инструмент дня
Давайте в продолжение топика про современные методы реализации фигур, посмотрим на очередной их генератор.
Напомню, мы уже знаем как правильно рисовать треугольники и звёзды. Пришло время всего остального.
Встречайте: https://css-shape.com/
Их там какое-то невероятное количество, некоторые, с вырезами, даже конфигурируются!
Меня особенно Stamp и Grid Lines восхитили. Просто и элегантно.
#css #shape #clip
Давайте в продолжение топика про современные методы реализации фигур, посмотрим на очередной их генератор.
Напомню, мы уже знаем как правильно рисовать треугольники и звёзды. Пришло время всего остального.
Встречайте: https://css-shape.com/
Их там какое-то невероятное количество, некоторые, с вырезами, даже конфигурируются!
Меня особенно Stamp и Grid Lines восхитили. Просто и элегантно.
#css #shape #clip
👍14❤3
#фишка дня
Как сделать вывод консоли красивеньким?
Очень просто, использовать спецификаторы преобразования!
Прямо как sprintf в Си, ну как вы можете этого не знать?
Короче, всё внимание на иллюстрацию. Adobe настолько оборзели, что свой логотип даже вам в консоль пихают, если у вас получится открыть девтулзы на веб-версии Фотошопа.
А делается это буквально так: https://codepen.io/alinaki/pen/PoXrejX
Для тех, кто по ссылкам не ходит, сокращённая версия:
Как можно догадаться, %c это спецификатор, указывающий, что сюда надо подставить CSS, переданный соответствующим аргументом.
Полный список спецификаторов есть на MDN.
Красота спасёт мир, котаны!
#console #js #sprintf #бородач
Как сделать вывод консоли красивеньким?
Очень просто, использовать спецификаторы преобразования!
Прямо как sprintf в Си, ну как вы можете этого не знать?
Короче, всё внимание на иллюстрацию. Adobe настолько оборзели, что свой логотип даже вам в консоль пихают, если у вас получится открыть девтулзы на веб-версии Фотошопа.
А делается это буквально так: https://codepen.io/alinaki/pen/PoXrejX
Для тех, кто по ссылкам не ходит, сокращённая версия:
console.info(
"%c %cAdobe %cPhotoshop Web%c %c2023.20.0.0%c %c1bba617e276",
"padding-left: 36px; line-height: 36px; background-image: url('data:image/gif;base64,R0lGODlhIAAgAPEBAAAAAPw==');"
)
Как можно догадаться, %c это спецификатор, указывающий, что сюда надо подставить CSS, переданный соответствующим аргументом.
Полный список спецификаторов есть на MDN.
Красота спасёт мир, котаны!
#console #js #sprintf #бородач
👍15❤4
#video дня
В продукте, с которым я работаю, в качестве решения для стора используется Effector: https://effector.dev/
И, честно говоря, под него надо немного ломать мозг. То есть, базовые атомарные сторы с событиями на нем делаются так же просто, как и в этих ваших модных Reatom, Jotai, Zustand и так далее. Но когда ты открываешь для себя мир гардов, сэмплов и, какая неожиданность, эффектов — вот тут начинается всё самое интересное. Хотя и не без проблем, о них в соответствующем посте.
Так вот, автор Эффектора — Дмитрий Болдырев — очень много времени уделяет попыткам визуализировать архитектуру приложения и логики всех связей внутри него. Конечная цель — получить самые крутые девтулзы для отладки сторов на свете.
А пока результатом этого стала презентация на HolyJS в этом году. Посвященная, собственно, визуализации архитектуры приложения вообще. Кто, как, когда пытался. Инструменты и результаты:
https://www.youtube.com/watch?v=fWwC45TYxkA
#effector #conference #architecture
В продукте, с которым я работаю, в качестве решения для стора используется Effector: https://effector.dev/
И, честно говоря, под него надо немного ломать мозг. То есть, базовые атомарные сторы с событиями на нем делаются так же просто, как и в этих ваших модных Reatom, Jotai, Zustand и так далее. Но когда ты открываешь для себя мир гардов, сэмплов и, какая неожиданность, эффектов — вот тут начинается всё самое интересное. Хотя и не без проблем, о них в соответствующем посте.
Так вот, автор Эффектора — Дмитрий Болдырев — очень много времени уделяет попыткам визуализировать архитектуру приложения и логики всех связей внутри него. Конечная цель — получить самые крутые девтулзы для отладки сторов на свете.
А пока результатом этого стала презентация на HolyJS в этом году. Посвященная, собственно, визуализации архитектуры приложения вообще. Кто, как, когда пытался. Инструменты и результаты:
https://www.youtube.com/watch?v=fWwC45TYxkA
#effector #conference #architecture
👍10
#фишка дня
Щас открою секрет. Чтобы не страдать от разработки, надо научиться отлаживать программы? Филологи — молчать!
Поднимите руку те, кто дебажит через console.log(var) 🙋
А надо не так.
Надо открыть девтулзы, в них — исходный код. И там просто нажать «Add logpoint…» на строке. Вуаля. Никаких тебе ожиданий сборки.
#debug #devtools
Щас открою секрет. Чтобы не страдать от разработки, надо научиться отлаживать программы? Филологи — молчать!
Поднимите руку те, кто дебажит через console.log(var) 🙋
А надо не так.
Надо открыть девтулзы, в них — исходный код. И там просто нажать «Add logpoint…» на строке. Вуаля. Никаких тебе ожиданий сборки.
#debug #devtools
👍27
#фишка дня
Я всегда считал карту кода достаточно бестолковой фишкой. С другой стороны, TODO-комментарии и ошибки достаточно легко распознаваемы и перемещаться по ним удобно.
А сегодня я узнал, что блоки кода можно ещё и помечать комментарием
В идеале, конечно, не стоит развозить свой код на несколько экранов, но прежде чем разбивать — надо ж распознать, верно? :)
#vscode #minimap
Я всегда считал карту кода достаточно бестолковой фишкой. С другой стороны, TODO-комментарии и ошибки достаточно легко распознаваемы и перемещаться по ним удобно.
А сегодня я узнал, что блоки кода можно ещё и помечать комментарием
// MARK: Something, и этот самый Something будет виден на карте.В идеале, конечно, не стоит развозить свой код на несколько экранов, но прежде чем разбивать — надо ж распознать, верно? :)
#vscode #minimap
👍22👎1
#til дня
Нечасто использую этот тег, TIL aka Today I Learned (сегодня я узнал).
Не потому что я всё знаю, а потому что такие штуки обычно или в заметки уходят, или в фишке. Редко что прямо шокирует сходу.
Итак, тема дня: CSS paint-order, порядок отрисовки.
И предназначено это самое правило для управления порядком применения заливки, обводки (контура) и маркеров в SVG и HTML.
Под маркерами подразумеваются всякие там стрелочки, вдоль SVG контура.
По-умолчанию, обводка контура рисуется после заливки, но можно установить наоборот и получить эффект, как на иллюстрации: https://codepen.io/argyleink/pen/MWoeoKV
Итого, контуры останутся только снаружи, а внутри всё будет залито.
Казалось бы, такая простая штука, а как забавно.
Поддержка очень хорошая: https://caniuse.com/mdn-css_properties_paint-order
Правда, как всегда, есть нюанс с Safari. Его алгоритмы теней чуть-чуть отличаются, но добиться нужного эффекта всё ещё можно, чуть-чуть поиграв с тенью.
#css #paint #order
Нечасто использую этот тег, TIL aka Today I Learned (сегодня я узнал).
Не потому что я всё знаю, а потому что такие штуки обычно или в заметки уходят, или в фишке. Редко что прямо шокирует сходу.
Итак, тема дня: CSS paint-order, порядок отрисовки.
И предназначено это самое правило для управления порядком применения заливки, обводки (контура) и маркеров в SVG и HTML.
Под маркерами подразумеваются всякие там стрелочки, вдоль SVG контура.
По-умолчанию, обводка контура рисуется после заливки, но можно установить наоборот и получить эффект, как на иллюстрации: https://codepen.io/argyleink/pen/MWoeoKV
.paint-order {
paint-order: stroke fill;
}Итого, контуры останутся только снаружи, а внутри всё будет залито.
Казалось бы, такая простая штука, а как забавно.
Поддержка очень хорошая: https://caniuse.com/mdn-css_properties_paint-order
Правда, как всегда, есть нюанс с Safari. Его алгоритмы теней чуть-чуть отличаются, но добиться нужного эффекта всё ещё можно, чуть-чуть поиграв с тенью.
#css #paint #order
👍18🤩1
#такое дня
Есть тут те, кто настолько погружён в интернациональные проекты, что приходится работать с вертикальным написанием?
Чтож, с Safari версии 17.4 вертикальным может быть не только текст (writing-mode), но и элементы управления!
Я понимаю, что абсолютному большинству это и в жизни не пригодится, но какая красота!
Статья от разработчиков WebKit: https://webkit.org/blog/15190/implementing-vertical-form-controls/
Кстати, так-то поддержка набирает обороты. В WebKit просто решили добить все элементы разом: https://caniuse.com/mdn-css_properties_writing-mode_vertical_oriented_form_controls
#css #cjk
Есть тут те, кто настолько погружён в интернациональные проекты, что приходится работать с вертикальным написанием?
Чтож, с Safari версии 17.4 вертикальным может быть не только текст (writing-mode), но и элементы управления!
Я понимаю, что абсолютному большинству это и в жизни не пригодится, но какая красота!
Статья от разработчиков WebKit: https://webkit.org/blog/15190/implementing-vertical-form-controls/
Кстати, так-то поддержка набирает обороты. В WebKit просто решили добить все элементы разом: https://caniuse.com/mdn-css_properties_writing-mode_vertical_oriented_form_controls
#css #cjk
👍15
#новость дня
Я не то чтобы люблю постить новость о выходе очередной версии какого-нибудь там React, но тут столько сразу всего, что давайте попробуем.
Итак, какой-то никакой-то React 19 Beta!
Вокруг этого релиза было слишком много разговоров. И причина проста: React Compiler.
TL;DR: React Compiler это особый инструмент сборки кода на React, автоматически мемоизирующий нужные данные в нужный момент. Никаких больше раздражающих useCallback, useMemo и memo не требовалось бы.
Собственно, блог разработчиков: https://react.dev/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024
И нет, этого в релизе React 19 не будет. Почему-то все кругом решили наоборот.
А что будет? Да много всего: https://react.dev/blog/2024/04/25/react-19
Наборы хуков и API для Suspense это нечто потрясающее. Я крайне рекомендую посмотреть хотя бы на use и useOptimistic. С такими нововведениями, можно даже думать об отказе от React Query.
И давайте пройдёмся по руководству к обновлению:
0. react-test-renderer объявлен устаревшим! Теперь официально: используйте React Testing Library.
1. ref как проперти. Дождались!
2. Возможность обрабатывать ошибки разных категорий: пойманные ErrorBoundary и пропущенные им же.
3. Наконец-то удалены propTypes и defaultProps. Висели с 2017 года как Deprecated.
4. Удалён ReactDOM.render. Вот тут мне стало больно, но я выживу: я абьюзил эту штуку чтобы рендерить реакт-виджеты в легаси-части кода.
5. Удалён ReactDOM.findDOMNode (кому-то тоже будет больно, да)
6. Сборок UMD больше нет. Если вам очень нужно работать без сборки прямо в браузере — используйте сервисы вроде esm.sh. На канале был пост об этом сервисе.
В общем, изменений достаточно. Но сначала надо обновиться до 18.3.0 хотя бы 🙂
#react #javanoscript
Я не то чтобы люблю постить новость о выходе очередной версии какого-нибудь там React, но тут столько сразу всего, что давайте попробуем.
Итак, какой-то никакой-то React 19 Beta!
Вокруг этого релиза было слишком много разговоров. И причина проста: React Compiler.
TL;DR: React Compiler это особый инструмент сборки кода на React, автоматически мемоизирующий нужные данные в нужный момент. Никаких больше раздражающих useCallback, useMemo и memo не требовалось бы.
Собственно, блог разработчиков: https://react.dev/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024
И нет, этого в релизе React 19 не будет. Почему-то все кругом решили наоборот.
А что будет? Да много всего: https://react.dev/blog/2024/04/25/react-19
Наборы хуков и API для Suspense это нечто потрясающее. Я крайне рекомендую посмотреть хотя бы на use и useOptimistic. С такими нововведениями, можно даже думать об отказе от React Query.
И давайте пройдёмся по руководству к обновлению:
0. react-test-renderer объявлен устаревшим! Теперь официально: используйте React Testing Library.
1. ref как проперти. Дождались!
2. Возможность обрабатывать ошибки разных категорий: пойманные ErrorBoundary и пропущенные им же.
3. Наконец-то удалены propTypes и defaultProps. Висели с 2017 года как Deprecated.
4. Удалён ReactDOM.render. Вот тут мне стало больно, но я выживу: я абьюзил эту штуку чтобы рендерить реакт-виджеты в легаси-части кода.
5. Удалён ReactDOM.findDOMNode (кому-то тоже будет больно, да)
6. Сборок UMD больше нет. Если вам очень нужно работать без сборки прямо в браузере — используйте сервисы вроде esm.sh. На канале был пост об этом сервисе.
В общем, изменений достаточно. Но сначала надо обновиться до 18.3.0 хотя бы 🙂
#react #javanoscript
🤩10👍2
This media is not supported in your browser
VIEW IN TELEGRAM
#codepen дня
Если doomscrolling — то только такой!
https://codepen.io/cobra_winfrey/pen/oNOMRav
Работает только в браузерах, поддерживающих Scroll Timeline API. Это пока только Chrome, Canary и за флагом. Ну и полифиллы.
#css #scroll #animation
Если doomscrolling — то только такой!
https://codepen.io/cobra_winfrey/pen/oNOMRav
Работает только в браузерах, поддерживающих Scroll Timeline API. Это пока только Chrome, Canary и за флагом. Ну и полифиллы.
#css #scroll #animation
👍18🤩3
#инструмент дня
Ладно, мы все можем согласиться, что у TypeScript замечательный офсайт, прекрасная документация и удобная песочница, но в мире есть сотни тысяч JS-библиотек и десятки тысяч из них либо написаны на TS, либо имеют выделенные типы.
А единой документации по этим типам нет!
Точнее, не было, но теперь вышел https://tsdocs.dev/
Это система поиска по существующим пакетам с типами. Она установит нужный пакет, распарсит типы и JSDoc и отобразит в удобном формате.
К слову, котаны, что вы предпочитаете по cmd- (ctrl)-click в редакторе? Прыгать к имплементации, или к типам?
Я вот — к имплементации, прыгать к типам меня раздражает.
#typenoscript #dts #types #doc #бородач
Ладно, мы все можем согласиться, что у TypeScript замечательный офсайт, прекрасная документация и удобная песочница, но в мире есть сотни тысяч JS-библиотек и десятки тысяч из них либо написаны на TS, либо имеют выделенные типы.
А единой документации по этим типам нет!
Точнее, не было, но теперь вышел https://tsdocs.dev/
Это система поиска по существующим пакетам с типами. Она установит нужный пакет, распарсит типы и JSDoc и отобразит в удобном формате.
К слову, котаны, что вы предпочитаете по cmd- (ctrl)-click в редакторе? Прыгать к имплементации, или к типам?
Я вот — к имплементации, прыгать к типам меня раздражает.
#typenoscript #dts #types #doc #бородач
🤩11❤1👍1
#инструмент дня
Вы, конечно, все в курсе, что порядок подключения ресурсов сильно влияет на скорость отображения страницы, на TTI — время от начала загрузки до возможности работы со страницей. Но как конкретно? Как точно выяснить, в каком порядке и что загружать?
И вот тут нам поможет сниппет для DevTools под названием Capo.js: https://github.com/rviscomi/capo.js
Порядок применения:
1. Берёте capo.js, значит
2.Солите его блять Загружаете как сниппет в девтулзы: https://developer.chrome.com/docs/devtools/javanoscript/snippets/
4. ...
5. Наблюдаете диаграмму в консоли! Она отобразит текущее и желаемое положение вещей.
А кому охота подробностей, тому вот сюда, на эту презентацию Виталия Фридмана: https://youtu.be/uqLl-Yew2o8
#css #js #performance #бородач
Вы, конечно, все в курсе, что порядок подключения ресурсов сильно влияет на скорость отображения страницы, на TTI — время от начала загрузки до возможности работы со страницей. Но как конкретно? Как точно выяснить, в каком порядке и что загружать?
И вот тут нам поможет сниппет для DevTools под названием Capo.js: https://github.com/rviscomi/capo.js
Порядок применения:
1. Берёте capo.js, значит
2.
4. ...
5. Наблюдаете диаграмму в консоли! Она отобразит текущее и желаемое положение вещей.
А кому охота подробностей, тому вот сюда, на эту презентацию Виталия Фридмана: https://youtu.be/uqLl-Yew2o8
#css #js #performance #бородач
👍13🤬2
This media is not supported in your browser
VIEW IN TELEGRAM
#codepen дня
Маскинг зашёл слишком далеко! Вы только посмотрите, что можно сделать при помощи небольшого количества геометрии и градиентов!
И всё это на единственном теге img, без обёрток!
Сразу будет сказано: в Safari пока сам цветной кружочек не работает, даже в Technology Preview :( но это не значит, что нам нечего почерпнуть! Исправлено!
Ссылка: https://codepen.io/alinaki/pen/xxeoXjN (это форк пена от t_afif, но с более универсальным сдвигом аутлайна)
Небольшой разбор:
1. clip-path требуется только для ограничения области ховера, можно и без него
2. чтобы чётко расположить кружочек на окружности, требуется немного геометрии с извлечением квадратного корня из радиуса.
3. Оказывается, аутлайн можно двигать. К сожалению, в Safari пока не прокатило. Суть перемещения outline — как раз в том, чтобы разместить квадратик, обозначающий статус пользователя, на окружности.
Буду пробовать починить это дело в Safari, посмотрим, что к чему :)
Upd. я нашёл способ починить в Safari, сейчас подбираю значения. Потому основная ссылка сломана, смотрите оригинальную :)
Upd. 2 Я починил в Safari! Осталось понять аналитическое решение :)
#css #hack #mask
Маскинг зашёл слишком далеко! Вы только посмотрите, что можно сделать при помощи небольшого количества геометрии и градиентов!
И всё это на единственном теге img, без обёрток!
Ссылка: https://codepen.io/alinaki/pen/xxeoXjN (это форк пена от t_afif, но с более универсальным сдвигом аутлайна)
Небольшой разбор:
1. clip-path требуется только для ограничения области ховера, можно и без него
2. чтобы чётко расположить кружочек на окружности, требуется немного геометрии с извлечением квадратного корня из радиуса.
3. Оказывается, аутлайн можно двигать. К сожалению, в Safari пока не прокатило. Суть перемещения outline — как раз в том, чтобы разместить квадратик, обозначающий статус пользователя, на окружности.
Буду пробовать починить это дело в Safari, посмотрим, что к чему :)
Upd. я нашёл способ починить в Safari, сейчас подбираю значения. Потому основная ссылка сломана, смотрите оригинальную :)
Upd. 2 Я починил в Safari! Осталось понять аналитическое решение :)
#css #hack #mask
👍21❤2
This media is not supported in your browser
VIEW IN TELEGRAM
#фишка дня
А приходилось ли вам, котаны, плавно менять текст?
Тогда вы не могли не заметить раздражающее мерцание, особенно заметное на одинаковых частях текста.
Причина, по которой это происходит, не уложится в один пост: это много-много математики цвета и режимов смешивания. Для такого у меня подготовлена вам целая статья: https://jakearchibald.com/2021/dom-cross-fade/
А фишкой же дня будет простое решение проблемы:
И мерцания как не бывало. Особенно заметно на больших объёмах текста.
Пример: https://codepen.io/alinaki/pen/zYeVdgX
#css #blend #mix #color #бородач
А приходилось ли вам, котаны, плавно менять текст?
Тогда вы не могли не заметить раздражающее мерцание, особенно заметное на одинаковых частях текста.
Причина, по которой это происходит, не уложится в один пост: это много-много математики цвета и режимов смешивания. Для такого у меня подготовлена вам целая статья: https://jakearchibald.com/2021/dom-cross-fade/
А фишкой же дня будет простое решение проблемы:
mix-blend-mode: plus-lighter;
И мерцания как не бывало. Особенно заметно на больших объёмах текста.
Пример: https://codepen.io/alinaki/pen/zYeVdgX
#css #blend #mix #color #бородач
❤8👍3🤩2
This media is not supported in your browser
VIEW IN TELEGRAM
#фишка дня
Итак, встала задача расширить элемент при наведении. Да ещё с каким-нибудь пружинящимдефектом эффектом. Что делать?
На самом деле, элемент мы физически не расширяем. Такова задача.
Один из первых вариантов, помимо манипуляции непосредственно размерами (что довольно тяжело при отрисовке) — это box-shadow. Но вот градиенты таким способом не нарисовать...
Потому у нас есть два варианта! Первый, от Adam Argyle (осторожно, видео из его твиттера и содержит крики на его же детей 😃) и от Temani Afif.
Итак, первый способ: использовать border-image и анимировать свойство border-image-outset.
Пример: https://codepen.io/argyleink/pen/abxgPKE?editors=1100
Второй, более очевидный, на самом деле — анимация clip-path, а точнее параметров функции inset.
Пример: https://codepen.io/t_afif/pen/BaEgEGa?editors=1100
Разница, кстати, имеется. В первом случае градиент нарисован border-image и прыгает вместе с ним, а во втором — буквально, обрезается.
Так что выбирайте тот, что вам по душе :)
#css #border #clip #animation
Итак, встала задача расширить элемент при наведении. Да ещё с каким-нибудь пружинящим
На самом деле, элемент мы физически не расширяем. Такова задача.
Один из первых вариантов, помимо манипуляции непосредственно размерами (что довольно тяжело при отрисовке) — это box-shadow. Но вот градиенты таким способом не нарисовать...
Потому у нас есть два варианта! Первый, от Adam Argyle (осторожно, видео из его твиттера и содержит крики на его же детей 😃) и от Temani Afif.
Итак, первый способ: использовать border-image и анимировать свойство border-image-outset.
Пример: https://codepen.io/argyleink/pen/abxgPKE?editors=1100
Второй, более очевидный, на самом деле — анимация clip-path, а точнее параметров функции inset.
Пример: https://codepen.io/t_afif/pen/BaEgEGa?editors=1100
Разница, кстати, имеется. В первом случае градиент нарисован border-image и прыгает вместе с ним, а во втором — буквально, обрезается.
Так что выбирайте тот, что вам по душе :)
#css #border #clip #animation
👍15
This media is not supported in your browser
VIEW IN TELEGRAM
#статья дня
Моя любимая дизайн-система и набор компонентов React Aria получила очередное обновление!
1. Наконец-то появились подменю (submenu)! И как раз мы недавно рассматривали статью о том, как добиться стабильного открытия меню по ховеру, что движения мыши будут напоминать треугольник, вот всё учтено: https://react-spectrum.adobe.com/blog/creating-a-pointer-friendly-submenu-experience.html
2. 7 (семь!) разных виджетов для выбора цвета
3. Виджет для построения дерева (поддиректорий, например)
4. DropZone для перетаскивания файлов
5. Улучшенный тришейкинг — размер бандла сильно снизится.
В общем, крутейший выпуск. Ребятам из React Aria респект, работаем дальше :)
#react #ui #kit #aria
Моя любимая дизайн-система и набор компонентов React Aria получила очередное обновление!
1. Наконец-то появились подменю (submenu)! И как раз мы недавно рассматривали статью о том, как добиться стабильного открытия меню по ховеру, что движения мыши будут напоминать треугольник, вот всё учтено: https://react-spectrum.adobe.com/blog/creating-a-pointer-friendly-submenu-experience.html
2. 7 (семь!) разных виджетов для выбора цвета
3. Виджет для построения дерева (поддиректорий, например)
4. DropZone для перетаскивания файлов
5. Улучшенный тришейкинг — размер бандла сильно снизится.
В общем, крутейший выпуск. Ребятам из React Aria респект, работаем дальше :)
#react #ui #kit #aria
👍16🤩3
#шпаргалка дня
Уникальное предложение!
Берёте короче эту пирамиду код-ревью и ваши пулл-реквесты станут не только вкусными, но и полезными: https://www.morling.dev/images/code_review_pyramid.noscript
Такая себе пирамида Маслоу, но для обсуждения качества кода. От базовых вещей (но не опускаясь до того, что можно сделать автоматически) до того, что сделает ваш код действительно красивым.
#pr #process #work #бородач
Уникальное предложение!
Берёте короче эту пирамиду код-ревью и ваши пулл-реквесты станут не только вкусными, но и полезными: https://www.morling.dev/images/code_review_pyramid.noscript
Такая себе пирамида Маслоу, но для обсуждения качества кода. От базовых вещей (но не опускаясь до того, что можно сделать автоматически) до того, что сделает ваш код действительно красивым.
#pr #process #work #бородач
👍7
#статья дня
Из разряда прекрасного!
Чтобы понять как работает движок Flex в браузере можно попробовать его... написать :)
Не, кроме шуток. Я не знаю, как проходит сейчас обучение в школах, но у нас был Turbo Pascal и многим так и осталось более понятным рисование на холсте, нежели вёрстка.
Такие люди называются бакендеры.
Потому, давайте взглянем на пример реализации: https://tchayen.com/how-to-write-a-flexbox-layout-engine
Кстати, я объяснял своей жене недавно принципы работы Flexbox как раз практически картинкой с иллюстрации :)
Как бусы нанизать на нитку.
#flex
Из разряда прекрасного!
Чтобы понять как работает движок Flex в браузере можно попробовать его... написать :)
Не, кроме шуток. Я не знаю, как проходит сейчас обучение в школах, но у нас был Turbo Pascal и многим так и осталось более понятным рисование на холсте, нежели вёрстка.
Такие люди называются бакендеры.
Потому, давайте взглянем на пример реализации: https://tchayen.com/how-to-write-a-flexbox-layout-engine
Кстати, я объяснял своей жене недавно принципы работы Flexbox как раз практически картинкой с иллюстрации :)
Как бусы нанизать на нитку.
#flex
❤13
#видео дня
Вдогонку к посту про алгоритмы работы движка Flex-раскладки, позволю себе обнаглеть и приложить ещё и это видео: https://www.youtube.com/watch?v=RVnARGhhs9w
Называется буквально "How to render in WebKit".
Да, ему 10 лет, но 10 лет назад Flex уже был сформирован и даже прошли споры по первой версии Grid. Там определённо есть что почерпнуть.
На правах закладки, ага :)
#render #webkit
Вдогонку к посту про алгоритмы работы движка Flex-раскладки, позволю себе обнаглеть и приложить ещё и это видео: https://www.youtube.com/watch?v=RVnARGhhs9w
Называется буквально "How to render in WebKit".
Да, ему 10 лет, но 10 лет назад Flex уже был сформирован и даже прошли споры по первой версии Grid. Там определённо есть что почерпнуть.
На правах закладки, ага :)
#render #webkit
❤7
#инструмент дня
Товарищ прислал невероятное признание: он перешёл с комбинации ESLint и Prettier на... Biome!
Вот на этот вот: https://biomejs.dev/
Для тех кто не в курсе, Biome это реинкарнация самого амбициозного в истории тулчейнов проекта, Rome.js, целью которого было всё и сразу.
Затея Rome увенчалась своеобразным успехом: ребята собрали инвестиций и... всё. Почитайте, там очень интересно.
Так вот, давайте перейдём к Biome. Сразу слово моему товарищу, вы его уже знаете по проекту extended-fetch. Мои комментарии, как всегда, курсивом.
«Преимущества Biome:
- нет таких серьезных ломающих изменений как в ESLint (например сейчас, чтобы перейти на 9-ю версию с 8-й нужно проверить работу всех используемых плагинов и перенести вручную конфигурацию на новый формат)
Я не согласен, что это преимущество. Невозможно развивать ESLint без того, чтобы не разбить пару яиц. Никто не заставляет лезть сразу на 9.
- существенно выше производительность
Предстоит узнать, какой ценой.
- форматирование и проверка кода в одном инструменте (выигрыш как в производительности, так и в поддержке одного инструмента вместо двух)
- нет необходимости использовать другой инструмент для проверки только измененных файлов, Biome сам умеет определять с флагом
- Лучшая поддержка сообщества
Как у Rome? :)
- JSON схема для описания конфигурации (не нужно лезть в документацию и изучать доступные параметры или их измененное именование)
- Отдельная команда
Меня пока устраивает скорость, единый тулинг, простая миграция с еслинта и преттира, жисон схема для конфига».
Ваши мысли, котаны?
P. S. сегодня мы попали в список, вручную отобранный Виталием Зюзиным по критерию авторской подачи: https://news.1rj.ru/str/addlist/Z6Efi4jXwe9lODcy
Всем новоприбывшим привет, располагайтесь поудобнее.
Товарищ прислал невероятное признание: он перешёл с комбинации ESLint и Prettier на... Biome!
Вот на этот вот: https://biomejs.dev/
Для тех кто не в курсе, Biome это реинкарнация самого амбициозного в истории тулчейнов проекта, Rome.js, целью которого было всё и сразу.
Затея Rome увенчалась своеобразным успехом: ребята собрали инвестиций и... всё. Почитайте, там очень интересно.
Так вот, давайте перейдём к Biome. Сразу слово моему товарищу, вы его уже знаете по проекту extended-fetch. Мои комментарии, как всегда, курсивом.
«Преимущества Biome:
- нет таких серьезных ломающих изменений как в ESLint (например сейчас, чтобы перейти на 9-ю версию с 8-й нужно проверить работу всех используемых плагинов и перенести вручную конфигурацию на новый формат)
Я не согласен, что это преимущество. Невозможно развивать ESLint без того, чтобы не разбить пару яиц. Никто не заставляет лезть сразу на 9.
- существенно выше производительность
Предстоит узнать, какой ценой.
- форматирование и проверка кода в одном инструменте (выигрыш как в производительности, так и в поддержке одного инструмента вместо двух)
- нет необходимости использовать другой инструмент для проверки только измененных файлов, Biome сам умеет определять с флагом
- Лучшая поддержка сообщества
Как у Rome? :)
- JSON схема для описания конфигурации (не нужно лезть в документацию и изучать доступные параметры или их измененное именование)
- Отдельная команда
biome ci для CI/CD процессовМеня пока устраивает скорость, единый тулинг, простая миграция с еслинта и преттира, жисон схема для конфига».
Ваши мысли, котаны?
P. S. сегодня мы попали в список, вручную отобранный Виталием Зюзиным по критерию авторской подачи: https://news.1rj.ru/str/addlist/Z6Efi4jXwe9lODcy
Всем новоприбывшим привет, располагайтесь поудобнее.
👍17❤3🤩1
#фишка дня
Лет так 15-20 назад, когда Интернет ещё был про документы и будущее веб-приложений только начинало формироваться, все кругом были озабочены темой типографики. Если ты не использовал один из множества инструментов-типографов — ты и не верстальщиком был вовсе.
Не то, чтобы сейчас на неё как-то совсем забили, но ажиотаж уже не тот. Выровняли вертикальный ритм, заменили кавычки с тире и поехали.
И одной из модных тем, над которыми любили заморачиваться, была висячая пунктуация (вики и ководство). Она придавала, да и придаёт, текстам некий шарм.
И уровень детализации может быть разный, от кавычек до точек и запятых. Кавычки, впрочем, очень сильно заметны. История висячей пунктуации, кстати, своими корнями идёт глубже, чем даже первая печатная книга, но мы пока углубляться в это не будем.
А вот куда будем — так это в способы реализации.
Первый и очевидный, которым пользовались много лет назад и по сей день — это реализация на JavaScript: https://codepen.io/alinaki/pen/BaeBOBr
Рассчитываем положение строк, смотрим, нужно ли подвесить ту же кавычку и подвешиваем.
Второй способ — для выделения цитат или набоков-стайл прямой речи — это text-indent, идеально подходит, просто свешиваем первую строку на ширину символа: https://codepen.io/alinaki/pen/vYwBzBm
И самый современный вариант — это использование CSS-правила hanging-punctuation. Которое, к сожалению, поддерживается пока только в Safari (смотрим предыдущий пример, секцию supports).
Правда, Safari не будь Safari если бы не накосячили в текстовых полях, поэтому, если применяете правило глобально — отключайте его на формах.
Ну и, конечно, не стоит забывать о том, что висячая пунктуация на самом деле не очень прижилась в советской и пост-советской типографской среде, и сместилась в сторону оптического выравнивания. В таком случае, text-indent или JS-решение вполне себе ваш выбор.
#css #typography
Лет так 15-20 назад, когда Интернет ещё был про документы и будущее веб-приложений только начинало формироваться, все кругом были озабочены темой типографики. Если ты не использовал один из множества инструментов-типографов — ты и не верстальщиком был вовсе.
Не то, чтобы сейчас на неё как-то совсем забили, но ажиотаж уже не тот. Выровняли вертикальный ритм, заменили кавычки с тире и поехали.
И одной из модных тем, над которыми любили заморачиваться, была висячая пунктуация (вики и ководство). Она придавала, да и придаёт, текстам некий шарм.
И уровень детализации может быть разный, от кавычек до точек и запятых. Кавычки, впрочем, очень сильно заметны. История висячей пунктуации, кстати, своими корнями идёт глубже, чем даже первая печатная книга, но мы пока углубляться в это не будем.
А вот куда будем — так это в способы реализации.
Первый и очевидный, которым пользовались много лет назад и по сей день — это реализация на JavaScript: https://codepen.io/alinaki/pen/BaeBOBr
Рассчитываем положение строк, смотрим, нужно ли подвесить ту же кавычку и подвешиваем.
Второй способ — для выделения цитат или набоков-стайл прямой речи — это text-indent, идеально подходит, просто свешиваем первую строку на ширину символа: https://codepen.io/alinaki/pen/vYwBzBm
И самый современный вариант — это использование CSS-правила hanging-punctuation. Которое, к сожалению, поддерживается пока только в Safari (смотрим предыдущий пример, секцию supports).
Правда, Safari не будь Safari если бы не накосячили в текстовых полях, поэтому, если применяете правило глобально — отключайте его на формах.
Ну и, конечно, не стоит забывать о том, что висячая пунктуация на самом деле не очень прижилась в советской и пост-советской типографской среде, и сместилась в сторону оптического выравнивания. В таком случае, text-indent или JS-решение вполне себе ваш выбор.
#css #typography
👍10❤1🤩1