This media is not supported in your browser
VIEW IN TELEGRAM
Совет по CSS 💡
Я недавно обнаружил, что мы можем изменять размеры любого блочного элемента, а не только textarea!
Я недавно обнаружил, что мы можем изменять размеры любого блочного элемента, а не только textarea!
❤19👍13🔥9
Anthropic вместе с Frontend Masters выкатили бесплатный курс по Claude Code.
И это не поверхностный обзор, а нормальный разбор инструмента для тех, кто хочет реально прокачать вайбкодинг и работу с AI-агентами.
Курс ведёт Lydia Hallie из Anthropic.
Внутри:
• основы Claude Code
• skills
• hooks
• sub-agents
• MCP
• плагины
• Agent SDK
• продвинутые сценарии работы
Хороший вход для тех, кто хочет не просто “просить ИИ написать код”, а собирать нормальный рабочий процесс вокруг Claude Code.
Ссылка:
http://frontendmasters.com/courses/claude-code
И это не поверхностный обзор, а нормальный разбор инструмента для тех, кто хочет реально прокачать вайбкодинг и работу с AI-агентами.
Курс ведёт Lydia Hallie из Anthropic.
Внутри:
• основы Claude Code
• skills
• hooks
• sub-agents
• MCP
• плагины
• Agent SDK
• продвинутые сценарии работы
Хороший вход для тех, кто хочет не просто “просить ИИ написать код”, а собирать нормальный рабочий процесс вокруг Claude Code.
Ссылка:
http://frontendmasters.com/courses/claude-code
👍5❤2👎2🔥1
AnyCrawl превращает сайты в структурированные данные, готовые для LLM.
Инструмент берёт любой сайт и быстро приводит его к чистому JSON, который можно сразу использовать в AI-пайплайнах, RAG, агентах и автоматизации.
Что умеет:
• извлекать данные из поисковой выдачи Google, Bing и Baidu
• краулить сайт целиком
• парсить страницы в несколько потоков
• доставать нужные данные с помощью AI
По сути, это способ быстро превратить хаотичный веб в нормальные данные для языковых моделей.
GitHub: https://github.com/any4ai/AnyCrawl
Инструмент берёт любой сайт и быстро приводит его к чистому JSON, который можно сразу использовать в AI-пайплайнах, RAG, агентах и автоматизации.
Что умеет:
• извлекать данные из поисковой выдачи Google, Bing и Baidu
• краулить сайт целиком
• парсить страницы в несколько потоков
• доставать нужные данные с помощью AI
По сути, это способ быстро превратить хаотичный веб в нормальные данные для языковых моделей.
GitHub: https://github.com/any4ai/AnyCrawl
❤4👍4🔥1
Идём на AI Hardcore Day в офис Авито на Лесной 11 июля! 🤩
Будем слушать доклады о Spec-Driven Development, разработке и тестировании MCP, атаках на GenAI-агентов.
А после — нетворкать на террасе.
⚡ Регистрация и подробности — по ссылке.
Кстати, доклады будут не под запись — советуем не пропускать!
Будем слушать доклады о Spec-Driven Development, разработке и тестировании MCP, атаках на GenAI-агентов.
А после — нетворкать на террасе.
Кстати, доклады будут не под запись — советуем не пропускать!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Image gallery with flex-grow
Пример галереи изображений на CSS + HTML с эффектом наведения.
https://codepen.io/ahmadghoniem/pen/QWJdMMe
Пример галереи изображений на CSS + HTML с эффектом наведения.
https://codepen.io/ahmadghoniem/pen/QWJdMMe
👍9👎2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Знаете ли вы, что в CSS можно определить поворот с помощью блока
turn? 🤩❤14👍6🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
VoCSSels - Easily create 3D CSS & HTML Voxel Models
Это JavaScript-приложение, разработанное для упрощения создания трехмерных воксельных моделей с использованием CSS и HTML. Это приложение использует библиотеку dom-to-image для преобразования ваших творческих идей в потрясающие изображения, делая его неотъемлемым инструментом для дизайнеров и разработчиков.
🌐 Ссылка на код
Это JavaScript-приложение, разработанное для упрощения создания трехмерных воксельных моделей с использованием CSS и HTML. Это приложение использует библиотеку dom-to-image для преобразования ваших творческих идей в потрясающие изображения, делая его неотъемлемым инструментом для дизайнеров и разработчиков.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Node.js CLI можно запускать быстрее одной встроенной фичей.
В Node.js 22.8+ есть
Пример из бенчмарка:
Особенно полезно для CLI, которые грузят много кода при запуске.
Мелочь, но для тяжёлых Node.js CLI такие миллисекунды быстро складываются.
В Node.js 22.8+ есть
enableCompileCache() из node:module. Он включает on-disk V8 code cache, чтобы повторные запуски быстрее поднимали большие CLI.Пример из бенчмарка:
typescript.js стартует примерно 130ms → 80ms.Особенно полезно для CLI, которые грузят много кода при запуске.
import nodeModule from 'node:module';
const { enableCompileCache } = nodeModule;
if (enableCompileCache) {
try {
enableCompileCache();
} catch {}
}
const { runCLI } = await import('./cli.js');
await runCLI();
Мелочь, но для тяжёлых Node.js CLI такие миллисекунды быстро складываются.
👍3❤1
9 июля(в четверг!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Frontend-разработчика.
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Frontend-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_front_bot
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Всплывающие скроллеры изображений с анимацией, управляемой прокруткой CSS 🤙
https://codepen.io/jh3y/pen/abPgrGR
.pop {
view-timeline-name: --pop;
}
img {
animation: slide both;
animation-timeline: --pop;
animation-range: entry 100% cover 50%;
}
.skateboarder {
--x: 0;
--y: -45%;
}
@ keyframes slide {
to { translate: var(--x) var(--y); }
}
https://codepen.io/jh3y/pen/abPgrGR
👍7
⚡️ Microsoft выпустила TypeScript 7.0 - самый большой апдейт TypeScript за последние годы.
Главное: TypeScript теперь получил нативный порт на Go, который даёт почти порядок прироста скорости. По данным команды, полные сборки обычно ускоряются примерно в 8–12 раз, а на крупных проектах вроде VS Code, Sentry, Bluesky и Playwright разница доходит до 7.7x–11.9x.
Что это меняет на практике:
* быстрее открываются большие проекты
* быстрее работают diagnostics, autocomplete и find references
* tsc и --watch дают короче feedback loop
* редакторы через LSP тоже получают прирост
* крупные монорепы меньше страдают от ожидания type-checking
Отдельно завезли параллелизацию: TypeScript 7 умеет распараллеливать parsing, type-checking и emit. Для тонкой настройки появились флаги --checkers, --builders и --singleThreaded.
--watch тоже переписали: теперь он построен на новом файловом watcher’е, портированном на Go, чтобы лучше работать на больших проектах без дорогого polling.
Но есть важный нюанс: TypeScript 7.0 пока не поставляется с API. Новый API ожидается в 7.1, а для переходного периода Microsoft предлагает запускать TypeScript 7 рядом с TypeScript 6 через совместимость и aliases.
Установка обычная:
По сути, TypeScript 7 - это не косметический релиз, а серьёзная пересборка фундамента: тот же TypeScript-опыт, но с нативной скоростью, многопоточностью и шансом наконец-то перестать ждать type-checking на больших кодовых базах.
https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/
Главное: TypeScript теперь получил нативный порт на Go, который даёт почти порядок прироста скорости. По данным команды, полные сборки обычно ускоряются примерно в 8–12 раз, а на крупных проектах вроде VS Code, Sentry, Bluesky и Playwright разница доходит до 7.7x–11.9x.
Что это меняет на практике:
* быстрее открываются большие проекты
* быстрее работают diagnostics, autocomplete и find references
* tsc и --watch дают короче feedback loop
* редакторы через LSP тоже получают прирост
* крупные монорепы меньше страдают от ожидания type-checking
Отдельно завезли параллелизацию: TypeScript 7 умеет распараллеливать parsing, type-checking и emit. Для тонкой настройки появились флаги --checkers, --builders и --singleThreaded.
--watch тоже переписали: теперь он построен на новом файловом watcher’е, портированном на Go, чтобы лучше работать на больших проектах без дорогого polling.
Но есть важный нюанс: TypeScript 7.0 пока не поставляется с API. Новый API ожидается в 7.1, а для переходного периода Microsoft предлагает запускать TypeScript 7 рядом с TypeScript 6 через совместимость и aliases.
Установка обычная:
npm install -D typescript
По сути, TypeScript 7 - это не косметический релиз, а серьёзная пересборка фундамента: тот же TypeScript-опыт, но с нативной скоростью, многопоточностью и шансом наконец-то перестать ждать type-checking на больших кодовых базах.
https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/
🔥6❤4👍3😁1
16 июля встречаемся с JS‑сообществом SberProfi в Сбер.Среде.
AI уже меняет JavaScript‑разработку. Вопрос не в том, заменит ли он инженеров, а в том, кто освоит его быстрее и качественнее.
🔥 Обсудим изменения на реальных кейсах от Сбера, Cloud․ru и Mish. Очные участники увидят спецформат от блогеров и пообщаются с экспертами GigaCode и GitVerse.
⏳ Начало в 17:00, встреча очных гостей - в 16:00.
Количество очных мест ограничено – успейте зарегистрироваться!
AI уже меняет JavaScript‑разработку. Вопрос не в том, заменит ли он инженеров, а в том, кто освоит его быстрее и качественнее.
⏳ Начало в 17:00, встреча очных гостей - в 16:00.
Количество очных мест ограничено – успейте зарегистрироваться!
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3❤2👎2👍1
PhantomLoop - визуализация BCI-декодеров прямо в браузере
Небольшая, но интересная находка для тех, кто работает с нейроданными, EEG/BCI и real-time интерфейсами.
PhantomLoop показывает поток данных от BCI-декодера в браузере: сигналы, предсказания модели, качество декодирования и разные визуализации.
Что умеет:
* подключение к EEG/BCI-источникам через WebSocket
* поддержка OpenBCI, Muse, Emotiv, NeuroSky, PiEEG, LSL и других устройств
* real-time streaming до 40 Hz
* декодеры на TensorFlow.js
* ускорение через WebGPU/WebGL
* встроенный Monaco Editor для кастомных декодеров
* визуализации вроде neural waterfall, spectral analysis и center-out arena
Важный момент: браузер не может напрямую работать с BLE, Serial, TCP и железом, поэтому PhantomLoop использует Python WebSocket bridge.
github.com/yelabb/PhantomLoop
Небольшая, но интересная находка для тех, кто работает с нейроданными, EEG/BCI и real-time интерфейсами.
PhantomLoop показывает поток данных от BCI-декодера в браузере: сигналы, предсказания модели, качество декодирования и разные визуализации.
Что умеет:
* подключение к EEG/BCI-источникам через WebSocket
* поддержка OpenBCI, Muse, Emotiv, NeuroSky, PiEEG, LSL и других устройств
* real-time streaming до 40 Hz
* декодеры на TensorFlow.js
* ускорение через WebGPU/WebGL
* встроенный Monaco Editor для кастомных декодеров
* визуализации вроде neural waterfall, spectral analysis и center-out arena
Важный момент: браузер не может напрямую работать с BLE, Serial, TCP и железом, поэтому PhantomLoop использует Python WebSocket bridge.
github.com/yelabb/PhantomLoop
❤2👍2
Держать 16 разных API-ключей только ради тестов разных LLM - то ещё удовольствие.
freellmapi решает это проще: один OpenAI-compatible endpoint для бесплатных tier’ов от Google, Groq, Cerebras, NVIDIA и ещё 14 провайдеров.
Что внутри:
* около 1.7B токенов в месяц суммарно
* роутер выбирает лучшую модель под запрос
* при rate limit автоматически переключается на другого провайдера
* ключи хранятся в зашифрованном виде
* интерфейс совместим с OpenAI API
По сути, это единая точка входа для экспериментов с разными LLM без ручного жонглирования ключами и лимитами.
15.9K звёзд на GitHub, а я почему-то наткнулся только вчера.
https://github.com/tashfeenahmed/freellmapi
⭐ 15.9K
#OpenSource #DevTools
freellmapi решает это проще: один OpenAI-compatible endpoint для бесплатных tier’ов от Google, Groq, Cerebras, NVIDIA и ещё 14 провайдеров.
Что внутри:
* около 1.7B токенов в месяц суммарно
* роутер выбирает лучшую модель под запрос
* при rate limit автоматически переключается на другого провайдера
* ключи хранятся в зашифрованном виде
* интерфейс совместим с OpenAI API
По сути, это единая точка входа для экспериментов с разными LLM без ручного жонглирования ключами и лимитами.
15.9K звёзд на GitHub, а я почему-то наткнулся только вчера.
https://github.com/tashfeenahmed/freellmapi
⭐ 15.9K
#OpenSource #DevTools
👍5
3 новых уровня для вашей карьеры
Рынок кибербезопасности меняется каждый месяц, и мы меняемся вместе с ним. Теперь наши флагманские программы выстроены в четкую систему из 3 уровней, которые идеально подойдут для специалиста на любом этапе карьеры.
Трек для тех, кто готов освоить одну из самых высокооплачиваемых и востребованных профессий в IT с полного нуля, без воды и иллюзий.
Длительность: 11 месяцев
Итог: Диплом установленного образца + помощь с трудоустройством
Стоимость: от 5 015 ₽/мес
Полное погружение в конкретную специальность. Идеально для студентов, у которых уже есть базовые знания в ИБ, и которым нужно стать профи в узкой нише.
Длительность: 9 месяцев
Итог: Удостоверение + помощь с трудоустройством
Стоимость: от 4 763 ₽/мес
Курсы для действующих специалистов в сфере ИБ, которым необходимо расширить свой боевой арсенал и пробить карьерный потолок.
Длительность: 6 месяцев
Итог: Удостоверение + подготовка к сертификации
Стоимость: от 5 821 ₽/мес
Неважно, делаете ли вы первые шаги или уже давно работаете - у нас есть инструменты, чтобы кратно усилить ваши скиллы.
👉 Подобрать программу и записаться на курс: @cyacademy_support
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👎2
Один skill-файл для AI-агента собрал больше 100K звёзд.
Не просто “сделай красиво”, а правила, почему один экран выглядит как шаблон из нейросети, а другой похож на нормальный продукт.
Внутри:
* 161 reasoning rules под разные индустрии
* 84 UI styles
* 192 product types
* палитры, typography pairings и UX-гайдлайны
* рекомендации по React, Next.js, Vue, Tailwind, SwiftUI, Flutter и другим стекам
Skill помогает агенту выбирать структуру лендинга, стиль, цвета, шрифты, эффекты и сразу подсвечивать анти-паттерны. Например, где градиент выглядит дешево, где не хватает контраста, почему spacing ломает ощущение премиальности и какие элементы лучше не использовать в конкретной нише.
https://github.com/nextlevelbuilder/ui-ux-pro-max-skill
#AI #Design
ui-ux-pro-max-skill добавляет агенту то, чего обычно не хватает при генерации интерфейсов: дизайнерское суждение.Не просто “сделай красиво”, а правила, почему один экран выглядит как шаблон из нейросети, а другой похож на нормальный продукт.
Внутри:
* 161 reasoning rules под разные индустрии
* 84 UI styles
* 192 product types
* палитры, typography pairings и UX-гайдлайны
* рекомендации по React, Next.js, Vue, Tailwind, SwiftUI, Flutter и другим стекам
Skill помогает агенту выбирать структуру лендинга, стиль, цвета, шрифты, эффекты и сразу подсвечивать анти-паттерны. Например, где градиент выглядит дешево, где не хватает контраста, почему spacing ломает ощущение премиальности и какие элементы лучше не использовать в конкретной нише.
https://github.com/nextlevelbuilder/ui-ux-pro-max-skill
#AI #Design
❤10👍1🔥1🤔1
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
В IT прокачивается тот, кто каждый день видит сильные идеи, новые инструменты, реальные задачи, вакансии и разборы.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/java_library
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Пока кто-то листает шум, ты будешь видеть инструменты, задачи и идеи, которые помогают расти в профессии.
В IT прокачивается тот, кто каждый день видит сильные идеи, новые инструменты, реальные задачи, вакансии и разборы.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/java_library
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Пока кто-то листает шум, ты будешь видеть инструменты, задачи и идеи, которые помогают расти в профессии.
👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Серый взрыв
Этот код использует HTML, CSS и JavaScript для создания анимированного графического эффекта. Он не использует никаких фреймворков, только чистый ванильный код. Вот что он делает:
Определяет функцию getRandomInt, которая возвращает случайное целое число в заданном диапазоне.
Определяет константу NUM_LINES, которая равна 69 и означает количество линий, которые будут нарисованы на SVG-элементе.
Получает ссылку на SVG-элемент с помощью document.querySelector и сохраняет ее в переменной svg.
Определяет функцию doArt, которая делает следующее:
Удаляет все старые линии с SVG-элемента, если они есть.
Создает новые линии с помощью цикла for и шаблонной строки. Каждая линия имеет атрибуты x1, y1, x2, y2, stroke, stroke-linecap и stroke-width. Значения этих атрибутов генерируются случайным образом с помощью функции getRandomInt. Например, x2 и y2 определяют конечную точку линии в процентах от ширины и высоты SVG-элемента. Stroke определяет цвет линии в формате RGBA, где последний компонент - это прозрачность. Stroke-width определяет толщину линии в пикселях.
Добавляет новые линии в начало SVG-элемента с помощью метода insertAdjacentHTML.
Вызывает функцию doArt один раз при загрузке страницы.
Добавляет обработчик события click на window, который вызывает функцию doArt каждый раз, когда пользователь кликает по экрану.
Определяет стили для SVG-элемента, body и line с помощью CSS. Например, он задает ширину и высоту SVG-элемента в 100%, фоновый цвет в #eee, отступ body в 0 и высоту body в 100vh (100% от высоты окна). Он также добавляет анимацию для line с помощью ключевых кадров и свойства transform. Анимация состоит из изменения масштаба линии от 1 до 0.69 за 4 секунды в бесконечном цикле с чередованием направления. Анимация также имеет разные задержки для разных линий с помощью псевдокласса nth-child.
🌐Ссылка на код
Этот код использует HTML, CSS и JavaScript для создания анимированного графического эффекта. Он не использует никаких фреймворков, только чистый ванильный код. Вот что он делает:
Определяет функцию getRandomInt, которая возвращает случайное целое число в заданном диапазоне.
Определяет константу NUM_LINES, которая равна 69 и означает количество линий, которые будут нарисованы на SVG-элементе.
Получает ссылку на SVG-элемент с помощью document.querySelector и сохраняет ее в переменной svg.
Определяет функцию doArt, которая делает следующее:
Удаляет все старые линии с SVG-элемента, если они есть.
Создает новые линии с помощью цикла for и шаблонной строки. Каждая линия имеет атрибуты x1, y1, x2, y2, stroke, stroke-linecap и stroke-width. Значения этих атрибутов генерируются случайным образом с помощью функции getRandomInt. Например, x2 и y2 определяют конечную точку линии в процентах от ширины и высоты SVG-элемента. Stroke определяет цвет линии в формате RGBA, где последний компонент - это прозрачность. Stroke-width определяет толщину линии в пикселях.
Добавляет новые линии в начало SVG-элемента с помощью метода insertAdjacentHTML.
Вызывает функцию doArt один раз при загрузке страницы.
Добавляет обработчик события click на window, который вызывает функцию doArt каждый раз, когда пользователь кликает по экрану.
Определяет стили для SVG-элемента, body и line с помощью CSS. Например, он задает ширину и высоту SVG-элемента в 100%, фоновый цвет в #eee, отступ body в 0 и высоту body в 100vh (100% от высоты окна). Он также добавляет анимацию для line с помощью ключевых кадров и свойства transform. Анимация состоит из изменения масштаба линии от 1 до 0.69 за 4 секунды в бесконечном цикле с чередованием направления. Анимация также имеет разные задержки для разных линий с помощью псевдокласса nth-child.
🌐Ссылка на код
👍8❤1🔥1