Благоустраиваем Firefox: встроенный VPN

Продолжаем серию заметок по улучшению UI нашего любимого браузера. На этот раз поменяем кнопку включения VPN на тулбаре.

Продолжаем серию заметок по улучшению UI нашего любимого браузера. На этот раз поменяем кнопку включения VPN на тулбаре.

В первой части я рассказывал об основах CSS-препроцессора LESS: переменных, миксинах, и некоторых полезных приёмах. Во второй — про автоматическую проверку файлов с картинками и генерацию CSS из них же прямо в процессе компиляции, про то, как сделать изображения адаптивными, про миксины в роли функций и про основы написания LESS-плагинов на Javascript'е (они сильно расширяют базовые возможности LESS).
Cегодня же мы погрузимся в тему плагинов достаточно глубоко и добавим в CSS… ни много ни мало — статическую типизацию с валидацией! Которая, как и полагается системе статических типов, позволит отлавливать семантические ошибки ещё на уровне компиляции, а значит — писать более безопасный CSS-код с меньшим количеством сюрпризов. Кроме того, мы попробуем сделать систему разрешения потенциальных конфликтов, связанных с глобальностью таких элементов CSS, как анимации. Полный код плагина ищите в конце статьи.
В процессе же поговорим о разных тонкостях написания миксинов, которые могут быть полезны.
Добро пожаловать под кат!

В первой части я рассказывал об основах LESS: переменных, миксинах, и некоторых приёмах. А сегодня мы поговорим о вещах, оставшихся в прошлый раз нераскрытыми...

В силу личной специфики (я чаще работаю не над веб-страницами, а над интерфейсами для десктопных и мобильных приложений, которые пишу на HTML/CSS), я долго избегал рабочие процессы сложнее, чем «отредактировал CSS-файл и сохранил его», и открыл для себя CSS-препроцессинг довольно поздно, но… В наши дни он, в общем-то, ничуть не устарел, и актуален не меньше, чем раньше. Так что, если вы пишете CSS (а не генерируете его) для чего угодно (SPA, приложения, лендинги, веб-аппы и т.д.), но до сих пор не пользуетесь LESS или SASS — приглашаю под кат, где я, стараясь не опускаться до уровня «очередной-пересказ-учебника», немного расскажу о принципах LESS, инструментах, его текущем состоянии и поделюсь своими техниками и приёмами (с примерами). А если вы не пишете CSS, но знакомы с традиционными языками программирования, всё равно добро пожаловать: я провожу параллели между ними и LESS, а заодно рассказываю об очень полезных принципах проектирования от Алана Кея.
Предыдущая часть тут.
Когда коту нечего делать… Когда нечего делать разработчикам Firefox, они что-нибудь меняют в дизайне стартовой страницы. Некоторые такие изменения — однозначно в правильном направлении (например, возможность установить фоны с видами природы), хотя и сделаны тяп-ляп (если уж делать фотобэкграунды, так с автоматической сменой). Но, к сожалению, далеко не все изменения.
После очередного, 139-ого, обновления дизайнеры из Мозиллы порадовали вот такой картинкой:


Дисклеймер: хотел создать скромный пост, а не статью, но не справился с управлением новым редактором. А старый редактор не поддерживает посты.
Допустим, у нас есть блок (скажем, бутстраповская ячейка <div class="col-12">) и мы хотим её схлопывать (скажем, по клику на кнопке).


Вообще-то я не люблю смотреть видео. Я люблю читать. Но человек так устроен, что стоит только ему что-то запретить, как он сразу захочет этого так, что кушать не сможет. При этом он будет очень злиться в адрес тех, кто ему мешает. Поздравляю с таким эффектом всем причастных.
На десктопе эта проблема была мною решена достаточно давно, спасибо Валдику. Пошли Господь этому человеку сибирского здоровья, кавказского долголетия и яхту из чистого золота. А вот на Андроиде в ночь на прошлый понедельник, вероломно, без объявления войны обход блокировок работать вдруг перестал.
Выбор инструмента для обхода на этой ОС был невелик: из списка на Гитхабе Валдика есть ровно три Андроид-решения: PowerTunnel, SpoofDPI и ByeDPI. Два последних у меня изначально не заработали, а первый заработал из коробки так хорошо, что я даже не узнал, что под капотом у него целый набор плагинов, в том числе LibertyTunnel, который и обеспечивает обход.
После того, как в понедельник PowerTunnel перестал справляться, я потыкался в настройки, но безуспешно. К сожалению, на Гитхабе автор проекта ничем не смог мне помочь, но я всё равно хочу выразить ему благодарность за два месяца работы мобильного интернета! (А не пародии на него).
Но мир не без добрых людей, и они помогли мне заставить работать ByeDPI. Этими настройками я и хочу поделиться с теми, у кого, как и у меня, недавно перестали работать прежние инструменты.