This media is not supported in your browser
VIEW IN TELEGRAM
❄️ Снежинка
Продолжаю развивать код отсюда, почти вышло реализовать гексагональные тайлы Труше. Которые можно соединять как угодно и получится узор
https://codepen.io/lekzd/pen/xbVKKKe
Продолжаю развивать код отсюда, почти вышло реализовать гексагональные тайлы Труше. Которые можно соединять как угодно и получится узор
https://codepen.io/lekzd/pen/xbVKKKe
🔥11❤8👍1💘1
Operation ForumTroll: Как фишинговая ссылка превращала WebGPU в оружие для взлома ОС
Кажется, что песочница браузера — это надёжная крепость. Но недавно обнародованная атака от марта этого года показала, что достаточно одной уязвимости в коде, чтобы эта крепость пала. Как фронтенд-разработчикам нам особенно интересно, что ключевую роль здесь сыграли WebGPU и безобидный на первый взгляд
Нас постоянно учат: нигде ничего не вводи ценного если не уверен в сохранности данных, но здесь бы это не помогло...
Разбираем цепочку взлома по косточкам:
1. Валидация (наш фронтенд-стек):
Жертва переходит по ссылке. Запускается JavaScript-валидатор.
WebGPU используется не по назначению — для вычисления SHA-256. Это не просто "быстрее", это сигнал для злоумышленников, что они в настоящем браузере с нужной конфигурацией.
Что в .woff2? В этом файле, который браузер по доверию загружает как шрифт, лежал не CSS-глиф, а зашифрованный бинарный код следующей стадии атаки — бутстраппер и сам эксплойт.
2. Взлом песочницы (CVE-2025-2783 — магия и ужас):
Здесь в игру вступает уязвимость, связанная с механизмом памяти Mojo/ipcz (межпроцессное взаимодействие в Chrome).
Корень проблемы: Эксплойт абузил pseudo-handle (-2) в системном вызове DuplicateHandle. Если очень упростить, это как получить права на запись в память ядра ОС, имея доступ только к памяти пользовательского процесса.
Use-After-Free и Race Condition. Эксплойт, манипулируя хендлами, создавал ситуацию, когда система пыталась использовать уже освобождённый участок памяти как валидный дескриптор, но с правами выше песочницы.
Результат: Через хук в v8_inspector::V8Console::Debug и SetThreadContext злоумышленник получал возможность выполнить свой shellcode уже в процессе браузера (а не в песочнице рендерера), получая тем самым доступ к ОС.
3. Что происходит после взлома (это уже не наш фронтенд, но важно понимать масштаб):
Loader через COM Hijacking (подмена легальной DLL twinapi.dll в реестре HKCU) обеспечивает загрузку библиотеки при старте ОС.
Вывод для нас, как разработчиков:
WebGPU — это мощный, но низкоуровневый API. Его использование для криптографии (не по прямому назначению) может быть маркером для атак.
Динамический импорт любых ресурсов (шрифты, WASM, Web Workers) — это потенциальный вектор. Браузер доверяет этим ресурсам, и если в них вшит вредоносный код, последствия могут быть катастрофическими.
Песочница — не панацея. Одна ошибка в движке (V8) или в системных бинарниках Chrome (Mojo) — и цепочка доверия рушится.
Это одна из тех уязвимостей, которая не была найдена никем кроме злоумышленников, которые успешно продали ее для адресного взлома работников СМИ, которым поставили на компы кейлогеры.
Кажется, что песочница браузера — это надёжная крепость. Но недавно обнародованная атака от марта этого года показала, что достаточно одной уязвимости в коде, чтобы эта крепость пала. Как фронтенд-разработчикам нам особенно интересно, что ключевую роль здесь сыграли WebGPU и безобидный на первый взгляд
.woff2 файл.Нас постоянно учат: нигде ничего не вводи ценного если не уверен в сохранности данных, но здесь бы это не помогло...
Разбираем цепочку взлома по косточкам:
1. Валидация (наш фронтенд-стек):
Жертва переходит по ссылке. Запускается JavaScript-валидатор.
WebGPU используется не по назначению — для вычисления SHA-256. Это не просто "быстрее", это сигнал для злоумышленников, что они в настоящем браузере с нужной конфигурацией.
Что в .woff2? В этом файле, который браузер по доверию загружает как шрифт, лежал не CSS-глиф, а зашифрованный бинарный код следующей стадии атаки — бутстраппер и сам эксплойт.
2. Взлом песочницы (CVE-2025-2783 — магия и ужас):
Здесь в игру вступает уязвимость, связанная с механизмом памяти Mojo/ipcz (межпроцессное взаимодействие в Chrome).
Корень проблемы: Эксплойт абузил pseudo-handle (-2) в системном вызове DuplicateHandle. Если очень упростить, это как получить права на запись в память ядра ОС, имея доступ только к памяти пользовательского процесса.
Use-After-Free и Race Condition. Эксплойт, манипулируя хендлами, создавал ситуацию, когда система пыталась использовать уже освобождённый участок памяти как валидный дескриптор, но с правами выше песочницы.
Результат: Через хук в v8_inspector::V8Console::Debug и SetThreadContext злоумышленник получал возможность выполнить свой shellcode уже в процессе браузера (а не в песочнице рендерера), получая тем самым доступ к ОС.
3. Что происходит после взлома (это уже не наш фронтенд, но важно понимать масштаб):
Loader через COM Hijacking (подмена легальной DLL twinapi.dll в реестре HKCU) обеспечивает загрузку библиотеки при старте ОС.
Вывод для нас, как разработчиков:
WebGPU — это мощный, но низкоуровневый API. Его использование для криптографии (не по прямому назначению) может быть маркером для атак.
Динамический импорт любых ресурсов (шрифты, WASM, Web Workers) — это потенциальный вектор. Браузер доверяет этим ресурсам, и если в них вшит вредоносный код, последствия могут быть катастрофическими.
Песочница — не панацея. Одна ошибка в движке (V8) или в системных бинарниках Chrome (Mojo) — и цепочка доверия рушится.
Это одна из тех уязвимостей, которая не была найдена никем кроме злоумышленников, которые успешно продали ее для адресного взлома работников СМИ, которым поставили на компы кейлогеры.
🔥7👍4😱4❤3💘1
Наконец-то выложили доклад с HolyJS про то как писать шейдеры нодами в Threejs https://youtu.be/EQ5m0Jhz-qs?si=UMiHjKQtbb2zb4vP
YouTube
Павел Мажуга — Three.js Shading Language: как устроена нодовая система в Three.js
Подробнее о конференции HolyJS: https://jrg.su/EM4wwV
— —
Скачать презентацию с сайта HolyJS — https://jrg.su/Kk7uKG
Павел рассказал, что в данный момент не так с материалами в Three.js, зачем придумали Three.js Shading Language (TSL) и как он работает.…
— —
Скачать презентацию с сайта HolyJS — https://jrg.su/Kk7uKG
Павел рассказал, что в данный момент не так с материалами в Three.js, зачем придумали Three.js Shading Language (TSL) и как он работает.…
🔥16💘4❤2👍1
Forwarded from Стой под стрелой (Nikita Prokopov)
В английском языке есть термин “needy person”, что примерно переводится как несамостоятельный плюс навязчивый. Типа, человек, который постоянно пристает с какими-то вопросами и просьбами, которые вполне мог бы порешать сам, полностью перекладывает все решения на другого человека и не видит личных границ.
Ну вот, а я вижу это в программах. Раньше программы были инструментами — тебе что-то нужно сделать, ты ее взял, сделал и забыл. Она лежит себе, помалкивает, до следующего раза.
А сегодня шагу не ступишь, как программы до тебя не доебутся. Сначала создай аккаунт — куда без него. У меня уже столько аккаунтов, что на поселок городского типа хватит. Раньше были мемы про то, как тупо заряжать очки, книгу или сигарету, а сейчас можно делать про логины в стиральную машину и зубную щетку. Серьезно, это НЕ смешно уже.
(Понятно, что если ты уступишь и создашь аккаунт, то до тебя все равно доебутся — или 2FA включи, или пароль поменяй, или почту проверь, или разлогинят тебя просто чтобы не расслаблялся)
Дальше идут обновления, они же апдейты. Я во всем виню Хром (вроде он это начал), но сегодня каждая программа постоянно проверяет, не вышла ли новая версия, и если вышла, всю душу из тебя вынет, пока не обновишься.
Заметьте, что обновиться — не мое желание, не моя потребность. Если бы мне было нужно — баг там какой критический, нехватка функций — я бы пошел и сам нашел все нужные патчи и апдейты. Но мне НЕ НУЖНО. Если бы я не знал про новую версию, если бы меня не заебывали этими попапами, я бы сидел на старой и горя бы не знал. От того, что я обновлюсь, в моей жизни не изменится НИ. ЧЕ. ГО. Так и кому это нужно? Мне? Или программе?
Наконец, нотификации. Это вообще рак. Идея была светлая — ну, иногда пользователю реально нужно что-то сообщить. Рендер там закончился, загрузка, не знаю. Что-то в мире пользователя, про его задачи.
Но вместо этого нотификации — пакет кокаина, который выдали торчку и попросили использовать только по делу. Их засунули в каждую дыру, от ебучих красных точек везде уже рябит в глазах, а попапы закрываются на автомате даже не читая.
Ведь нотификация это что такое? Это что-то, что я не просил, но с чем мне нужно разобраться. Это буквально проблема программы, с которой она пришла ко мне. У меня есть скриншот свежеустановленной какой-то Джетбрейновской ИДЕ. Я запускаю ее в первый и раз и тут же получаю в рожу ТРИ нотификации. Я еще ничего не сделал. Мне от тебя еще ничего не нужно. Но я уже тебе что-то должен. Как минимум, закрыть нотификации. Are you охуели там, как говорится? VS Code не лучше, кстати, и нотификации одна из основных причин, почему я сбежал.
На одном конце спектра условный
На другом — Гугл Хром. Опять же, заглядываю как-то в ноут жены, она там какую-то страничку открывает, а хром ей: проверь аккаунт! что-то не так (что, блядь, может быть не так, всю жизнь было так, с чего бы вдруг сейчас что-то пошло не так?), а еще обновись! И нотификацию в рожу. Жену я бесконечно уважаю, потому что она четко видит, где ее проблемы (нужно что-то посмотреть на сайте), а где проблемы программы (обновления, аккаунт). И абсолютно хладнокровно игнорирует вторые.
Ощущение от needy программ — я решаю не свои проблемы, а проблемы программы. Обнови ее, залогинь, нотификации закрой. Ну и нафига мне такой тамагочи?
Будь как
Ну вот, а я вижу это в программах. Раньше программы были инструментами — тебе что-то нужно сделать, ты ее взял, сделал и забыл. Она лежит себе, помалкивает, до следующего раза.
А сегодня шагу не ступишь, как программы до тебя не доебутся. Сначала создай аккаунт — куда без него. У меня уже столько аккаунтов, что на поселок городского типа хватит. Раньше были мемы про то, как тупо заряжать очки, книгу или сигарету, а сейчас можно делать про логины в стиральную машину и зубную щетку. Серьезно, это НЕ смешно уже.
(Понятно, что если ты уступишь и создашь аккаунт, то до тебя все равно доебутся — или 2FA включи, или пароль поменяй, или почту проверь, или разлогинят тебя просто чтобы не расслаблялся)
Дальше идут обновления, они же апдейты. Я во всем виню Хром (вроде он это начал), но сегодня каждая программа постоянно проверяет, не вышла ли новая версия, и если вышла, всю душу из тебя вынет, пока не обновишься.
Заметьте, что обновиться — не мое желание, не моя потребность. Если бы мне было нужно — баг там какой критический, нехватка функций — я бы пошел и сам нашел все нужные патчи и апдейты. Но мне НЕ НУЖНО. Если бы я не знал про новую версию, если бы меня не заебывали этими попапами, я бы сидел на старой и горя бы не знал. От того, что я обновлюсь, в моей жизни не изменится НИ. ЧЕ. ГО. Так и кому это нужно? Мне? Или программе?
Наконец, нотификации. Это вообще рак. Идея была светлая — ну, иногда пользователю реально нужно что-то сообщить. Рендер там закончился, загрузка, не знаю. Что-то в мире пользователя, про его задачи.
Но вместо этого нотификации — пакет кокаина, который выдали торчку и попросили использовать только по делу. Их засунули в каждую дыру, от ебучих красных точек везде уже рябит в глазах, а попапы закрываются на автомате даже не читая.
Ведь нотификация это что такое? Это что-то, что я не просил, но с чем мне нужно разобраться. Это буквально проблема программы, с которой она пришла ко мне. У меня есть скриншот свежеустановленной какой-то Джетбрейновской ИДЕ. Я запускаю ее в первый и раз и тут же получаю в рожу ТРИ нотификации. Я еще ничего не сделал. Мне от тебя еще ничего не нужно. Но я уже тебе что-то должен. Как минимум, закрыть нотификации. Are you охуели там, как говорится? VS Code не лучше, кстати, и нотификации одна из основных причин, почему я сбежал.
На одном конце спектра условный
ls: тоже программа, но никогда не попросит тебя создать аккаунт или обновиться. Это спокойный, уверенный в себе инструмент. Или, если нужен пример посложнее, Syncthing: программа для синка файлов между машинами, в которой нет аккаунтов, нотификаций, которой можно сразу начинать пользоваться, а про апдейт которой я недавно случайно узнал от друга. И не стал обновляться! (потому что зачем)На другом — Гугл Хром. Опять же, заглядываю как-то в ноут жены, она там какую-то страничку открывает, а хром ей: проверь аккаунт! что-то не так (что, блядь, может быть не так, всю жизнь было так, с чего бы вдруг сейчас что-то пошло не так?), а еще обновись! И нотификацию в рожу. Жену я бесконечно уважаю, потому что она четко видит, где ее проблемы (нужно что-то посмотреть на сайте), а где проблемы программы (обновления, аккаунт). И абсолютно хладнокровно игнорирует вторые.
Ощущение от needy программ — я решаю не свои проблемы, а проблемы программы. Обнови ее, залогинь, нотификации закрой. Ну и нафига мне такой тамагочи?
Будь как
ls. Не будь как Хром. Проблем у нас всех своих хватает.💯18🔥7❤4👍1😁1💘1
This media is not supported in your browser
VIEW IN TELEGRAM
Башкирский орнамент
Выступал на Ufa dev conf, и понравились этнические башкирские ковры с орнаментом в виде рогов оленя.
Спасибо всем кто был на докладе и пришел сюда)
https://codepen.io/lekzd/pen/JoXRjOM
Выступал на Ufa dev conf, и понравились этнические башкирские ковры с орнаментом в виде рогов оленя.
Спасибо всем кто был на докладе и пришел сюда)
https://codepen.io/lekzd/pen/JoXRjOM
❤18🔥14❤🔥4💘1
This media is not supported in your browser
VIEW IN TELEGRAM
Повторил анимацию из брендинга HolyJS, но продолжил делать ее дальше
Стоял на сцене, сказал, что тут буквально 2 алгоритма: SDF кружки и smoothMin и запилил.
Кстати, в этом сезоне на конференции был доклад про выше описанные алгоритмы, надеюсь его будет не очень долго ждать в открытом доступе и я смогу им тут поделиться)
https://codepen.io/lekzd/pen/emZeRmd
Стоял на сцене, сказал, что тут буквально 2 алгоритма: SDF кружки и smoothMin и запилил.
Кстати, в этом сезоне на конференции был доклад про выше описанные алгоритмы, надеюсь его будет не очень долго ждать в открытом доступе и я смогу им тут поделиться)
https://codepen.io/lekzd/pen/emZeRmd
🔥15❤3💘3
Media is too big
VIEW IN TELEGRAM
Больше всего на свете люблю нажимать на крестики
Каждый раз, когда кто-то решил что мне срочно надо что-то показать на том месте, где ранее ничего не было. Я сразу ищу крестик, большинство размещают его справа, некоторые, подглядев что у меня Mac OS, ставят его слева (а еще я читаю справа налево, да).
Я сам как разработчик много раз ставил всякие промо-окна с крестиками, однажды о таком промо-окне даже писали в новостях...а потом я ехал в такси и о нем говорили по радио!
Крестики со временем превращают любое локальное хранилище на устройстве в помойку с кучей переменных вроде "isJuneSalePromoClosed" и никогда не удаляются, отчего при старте приложения у новых пользователей иногда может случиться взрыв из 5 модалок, уведомлений, баннеров и онбординга поверх всего этого.
Но сегодня я искал крестик дольше обычного, в начале я думал что это шутка, крестик нарисован, но на него нельзя нажать, ну за что?
PS: поделитесь с теми кто до сих пор ищет крестик
Каждый раз, когда кто-то решил что мне срочно надо что-то показать на том месте, где ранее ничего не было. Я сразу ищу крестик, большинство размещают его справа, некоторые, подглядев что у меня Mac OS, ставят его слева (а еще я читаю справа налево, да).
Я сам как разработчик много раз ставил всякие промо-окна с крестиками, однажды о таком промо-окне даже писали в новостях...а потом я ехал в такси и о нем говорили по радио!
Крестики со временем превращают любое локальное хранилище на устройстве в помойку с кучей переменных вроде "isJuneSalePromoClosed" и никогда не удаляются, отчего при старте приложения у новых пользователей иногда может случиться взрыв из 5 модалок, уведомлений, баннеров и онбординга поверх всего этого.
Но сегодня я искал крестик дольше обычного, в начале я думал что это шутка, крестик нарисован, но на него нельзя нажать, ну за что?
PS: поделитесь с теми кто до сих пор ищет крестик
😁22👏3💘1
Forwarded from Stage multimedia
Вчера было мероприятие для застройщика ЭНКО в Золотых воротах Сибири, хореографический номер с Кинектом и флюидами, которые потом заменялись масляной картиной моря. Видео не смог снять, попрошу у кого-нибудь. Пока посмотрите подготовку и то, как красиво сам экран светится от движения вихря
🔥19❤6💘1
YouTube
MoscowJS 50 — Меняем стул под пользователем — Александр Коротаев
Хотите страшных историй на ночь? Миллионы активных пользователей сидят в социальной сети, многие из них прямо сейчас смотрят видосики, слушают музыку и чатятся, а разрабам очень нужно обновить фронтенд. Тысячи коллбеков ждут своего часа, сотни обработчиков…
Вайбы разработки старого ВКонтакте
Посте про крестики я упоминал про модалку, которую нельзя было закрыть, о которой писали в новостях, рассказали по радио и даже в баре знакомые спрашивали. Притом это был не баг, это была довольно спорная фича.
А потом в комментариях к посту Зара про его опыт работы в ВК вспомнил как ломал один из некогда самых посещаемых сайтов рунета. Только представьте, ваша задача — просто переложить файлы статики в одну папку, чтобы упростить сборку...да что вообще может пойти не так и причем тут поезда?
История (с 25 минуты) в докладе, который я рассказал 4 года назад: https://youtu.be/W5YXcI3ov4w?si=epuc7PUr9IhJM-Jj
Посте про крестики я упоминал про модалку, которую нельзя было закрыть, о которой писали в новостях, рассказали по радио и даже в баре знакомые спрашивали. Притом это был не баг, это была довольно спорная фича.
А потом в комментариях к посту Зара про его опыт работы в ВК вспомнил как ломал один из некогда самых посещаемых сайтов рунета. Только представьте, ваша задача — просто переложить файлы статики в одну папку, чтобы упростить сборку...да что вообще может пойти не так и причем тут поезда?
История (с 25 минуты) в докладе, который я рассказал 4 года назад: https://youtu.be/W5YXcI3ov4w?si=epuc7PUr9IhJM-Jj
👍6🔥5🤡2💘2
Media is too big
VIEW IN TELEGRAM
Гугл не смог смириться с тем, что Cursor выпустили не они...
И они сделали копию — Antigravity. К сожалению с аккаунтами зарегистрированными в России, Беларуси и, внезапно, Молдове зайти в приложение не получится. Но хоть на сайт посмотрим. Там на заднем плане реализовали простую и красивую композицию из летающих частиц, при выборе пунктов меню они плавно выстраиваются в контуры иконки выбранного пункта.
Я уже пару раз делал такой эффект: все возможные позиции уже переданы в шейдер и между ними запускается функция интерполяции значений по времени. Делается просто, за то как эффектно.
И они сделали копию — Antigravity. К сожалению с аккаунтами зарегистрированными в России, Беларуси и, внезапно, Молдове зайти в приложение не получится. Но хоть на сайт посмотрим. Там на заднем плане реализовали простую и красивую композицию из летающих частиц, при выборе пунктов меню они плавно выстраиваются в контуры иконки выбранного пункта.
Я уже пару раз делал такой эффект: все возможные позиции уже переданы в шейдер и между ними запускается функция интерполяции значений по времени. Делается просто, за то как эффектно.
❤🔥13😁2🔥1💘1
Через час жена продолжит делиться тем как она научилась делать 3D визуализации интерьеров при помощи Chat GPT, казалось бы, что такого. А вы пробовали добиться от него визуализации чего-то сложнее мемасика?
🔥4💘1
Forwarded from GPT интерьеры🤖Bornatalia.design (Nataliia Borisenkova)
Друзья, напоминаю, что уже завтра 2 декабря в 12:00 состоится второй вебинар по работе в ИИ: « Метод точного рендера в GPT» приходите , буду рада всех видеть и ждать 🙌🤗
Ссылка на вебинарную комнату:
https://us06web.zoom.us/j/82679146906?pwd=8IYGcuuOnx1oczF7ASv2VlOZwH8WDR.1
Ссылка на вебинарную комнату:
https://us06web.zoom.us/j/82679146906?pwd=8IYGcuuOnx1oczF7ASv2VlOZwH8WDR.1
🔥7💘2😁1
Forwarded from Вольница. Учим полезному
3Dекабря - всемирный день компьютерной графики.
Поздравляем всех причастных!
Поздравляем всех причастных!
❤20😁12🌚1💘1
Забытое искусство формовки текста
Уже 4-й день в Генклубе обсуждают обтекание текстом разных форм, все началось с работ, выложенных @Yan_LS, который взял и просто на чистом C написал отбивание текста пробелами, рисуя текстом абстрактные формы и самостоятельно реализовав всю математику. Завязалось горячее обсуждение, где другие участники чата начали брать InDesign, Pages (аналог Word в MacOS) и сравнивать результаты, но все они были мягко говоря не очень по сравнению с тем, что я и многие мои сверстники помнили из детства: журнальную верстку.
О ней — далее
Уже 4-й день в Генклубе обсуждают обтекание текстом разных форм, все началось с работ, выложенных @Yan_LS, который взял и просто на чистом C написал отбивание текста пробелами, рисуя текстом абстрактные формы и самостоятельно реализовав всю математику. Завязалось горячее обсуждение, где другие участники чата начали брать InDesign, Pages (аналог Word в MacOS) и сравнивать результаты, но все они были мягко говоря не очень по сравнению с тем, что я и многие мои сверстники помнили из детства: журнальную верстку.
О ней — далее
🔥8💘2
Забытое искусство обтекания текстом: журналы
Когда-то давно я любил вглядываться в микрокартинки вставленные между текстовых столбцов, где буквы плавно обтекали контуры чего угодно: от ромбика-врезки с цитатой до обтравленного фото героя заметки. Место в журнале/газете тогда стоило денег, потому использовали буквально каждый квадратный сантиметр. Когда я еще искал кем мне стать, я взял InDesign и попробовал сверстать страницу журнала и как раз столкнулся с тем, что готовый текст и иллюстрации просто так не вставить, надо и текст подкоротить или удлинить, картинку покрутить чтобы не осталось пустого места, а еще не забыть по переносы, И использовать верные спецсимволы, дизайнеры-верстальщики те еще душнилы когда дело касается разницы между
Как это делалось в «докомпьютерную» и раннюю компьютерную эпоху
В металлической верстке — физически перемещали строки текста, подгоняя их вокруг клише.
С появлением настольных издательских систем (как Adobe PageMaker, QuarkXPress, а затем InDesign) — дизайнер создавал контур обтекания вокруг изображения, часто вручную расставляя точки, чтобы текст огибал именно нужные части рисунка (например, волосы модели или сложный предмет).
Почему сейчас это реже встречается
— Сложность чтения: Сильно «рваный» правый край ухудшает читаемость, особенно для больших объемов текста.
— Адаптивный дизайн: Техника плохо масштабируется для мобильных экранов и веб-верстки. Ранее каждый такой текстовый блок создавался вручную, теперь разработчики скорее делают системы разметки любого контента, а не штучные страницы.
— Минимализм: Современный дизайн склоняется к более простым, строгим сеткам с четким разделением текстовых и графических блоков.
А вам вак?
Когда-то давно я любил вглядываться в микрокартинки вставленные между текстовых столбцов, где буквы плавно обтекали контуры чего угодно: от ромбика-врезки с цитатой до обтравленного фото героя заметки. Место в журнале/газете тогда стоило денег, потому использовали буквально каждый квадратный сантиметр. Когда я еще искал кем мне стать, я взял InDesign и попробовал сверстать страницу журнала и как раз столкнулся с тем, что готовый текст и иллюстрации просто так не вставить, надо и текст подкоротить или удлинить, картинку покрутить чтобы не осталось пустого места, а еще не забыть по переносы, И использовать верные спецсимволы, дизайнеры-верстальщики те еще душнилы когда дело касается разницы между
x и × (да, да, говорили "кого это ты там на Х послал?").Как это делалось в «докомпьютерную» и раннюю компьютерную эпоху
В металлической верстке — физически перемещали строки текста, подгоняя их вокруг клише.
С появлением настольных издательских систем (как Adobe PageMaker, QuarkXPress, а затем InDesign) — дизайнер создавал контур обтекания вокруг изображения, часто вручную расставляя точки, чтобы текст огибал именно нужные части рисунка (например, волосы модели или сложный предмет).
Почему сейчас это реже встречается
— Сложность чтения: Сильно «рваный» правый край ухудшает читаемость, особенно для больших объемов текста.
— Адаптивный дизайн: Техника плохо масштабируется для мобильных экранов и веб-верстки. Ранее каждый такой текстовый блок создавался вручную, теперь разработчики скорее делают системы разметки любого контента, а не штучные страницы.
— Минимализм: Современный дизайн склоняется к более простым, строгим сеткам с четким разделением текстовых и графических блоков.
А вам вак?
🔥7✍2💘2