Полезный сайт, на котором есть различные инструменты для веб разработки
Например, для создания
#tool #css
Например, для создания
CSS
анимаций или флексбокс генератор#tool #css
Angrytools
AngryTools.com - Angry Web Tools
Angrytools offer free online tools for web development and mobile application. online gradient generator for browser and android devices
Про
Целью их является стилизация элементов в зависимости от контекста родительского контейнера.
Они позволяют создавать правила, которые применяются только при выполнении определенных условий относительно стиля контейнера.
Это дает возможность создавать более адаптивные и контекстно-зависимые стили и стилизовать компоненты в зависимости от их окружения.
В планах поддержка проверки функцией
#css
Container size queries
уже все знают. но про Container style queries
еще далеко не всеЦелью их является стилизация элементов в зависимости от контекста родительского контейнера.
Они позволяют создавать правила, которые применяются только при выполнении определенных условий относительно стиля контейнера.
Это дает возможность создавать более адаптивные и контекстно-зависимые стили и стилизовать компоненты в зависимости от их окружения.
.card {
/* ...стили для карточки... */
}
@container style(--background-color: #333) {
.card {
/* Стили для карточки, когда у ее родителя темный фон */
color: white;
}
}
В планах поддержка проверки функцией
style()
не только CSS
custom properties
, но и простых - style(color: green)
.Caniuse
везде, кроме Firefox
#css
CSS
свойство clamp()
позволяет создавать адаптивные элементы, которые масштабируются в зависимости от размера экрана, но при этом не выходят за заданные границы.h1 {
font-size: clamp(24px, 4vw, 48px);
}
.container {
width: clamp(300px, 50%, 900px);
}
.element {
padding: clamp(10px, 2vw, 1.5rem);
}
- адаптивные элементы без использования медиазапросов.
- различные единицы измерения для каждого значения.
- можно использовать для любых свойств CSS, которые поддерживают числовые значения.
#css
Интересное решение на
https://codepen.io/robinrendle/pen/MWRxNJr
#css
CSS
определить, что содержимое блока не помещается в нем и сделать что-то - через определение появления скролла и установку CSS кастомного свойства
https://codepen.io/robinrendle/pen/MWRxNJr
#css
codepen.io
Detect scroll with CSS
...
Если работаете с
CSS Variable Autocomplete
#css #tip
CSS properties
в VS Code
, то вот полезное расширениеCSS Variable Autocomplete
#css #tip
Visualstudio
CSS Variable Autocomplete - Visual Studio Marketplace
Extension for Visual Studio Code - Autocomplete CSS Variable support CSS, SCSS, LESS, PostCSS, VueJS, ReactJS and more
Ответ к вопросу в прошлом посте
Реализация
1. Находим абсолютные координаты target element.
2. Создаем прозрачный модальный элемент с такими же абсолютными координатными.
3. Ставим ему...
Это первая половина гениальности. Вторая состоит в том, что теперь анимация перехода подсветки это тоже одна
Ну и копирование исходного
В итоге весь визуал туринга занимает меньше 20 строк по сути, и можно сосредоточиться на логике.
На таких велосипедах я готов всю жизнь кататься. А антивелосипедисты могут использовать
#tour #css
Реализация
tour
:1. Находим абсолютные координаты target element.
2. Создаем прозрачный модальный элемент с такими же абсолютными координатными.
3. Ставим ему...
boxShadow: 0 0 0 9999px rgba(0, 0, 0, 0.7)
Это первая половина гениальности. Вторая состоит в том, что теперь анимация перехода подсветки это тоже одна
CSS
строка: transition
.Ну и копирование исходного
border-radius
даст в большинстве случаев ту же самую форму.В итоге весь визуал туринга занимает меньше 20 строк по сути, и можно сосредоточиться на логике.
На таких велосипедах я готов всю жизнь кататься. А антивелосипедисты могут использовать
VueUse
, svg
маски и прочие достижения контемпорари фронтенда.#tour #css
This media is not supported in your browser
VIEW IN TELEGRAM
Дожили
В
Теперь сайт Аэроэкспреса пофиксят...
#chrome #css
В
Chrome 135
появилась возможность стилизовать нативный <select>
Теперь сайт Аэроэкспреса пофиксят...
#chrome #css
В
Однако полной замены
Но для ванильных случаев это полезное нововведение
#css
CSS
есть @scope
функция, ограничивающая область применения стилей:<template>
<div class="box">
<button class="button">Click me</button>
</div>
</template>
<style>
@scope (.box) {
.button {
color: red;
}
}
</style>
Однако полной замены
Vue scoped
она не может дать. Например, потому, что если компонент выше вывести списком, то во Vue
у каждого будет свой data
атрибут и своя область видимости стилей, а у @scope
всё смешаетсяНо для ванильных случаев это полезное нововведение
#css
Контейнерные запросы (
Что такое Scroll States?
Пример:
Где это можно использовать?
- Индикация прокрутки — визуально показывать, что есть ещё контент ниже
- "Липкие" заголовки — автоматически делать заголовки
- Изменение навигации — например, показывать кнопку "Наверх" при прокрутке
- Оптимизация интерфейса — скрывать второстепенные элементы при прокрутке
Документация
#chrome #css
Container Queries
) — это инструмент в CSS, который позволяет стилизовать элементы на основе размеров их родительского контейнера, а не всего окна браузера. В Chrome 133 появилась новая фича — scroll states
для контейнерных запросов, которая добавляет ещё больше контроля над поведением элементов.Что такое Scroll States?
scrollable
, stuck
и snapped
- это новые условия свойства scroll-state
, которые можно использовать внутри @container
, чтобы применять стили в зависимости от состояния прокрутки контейнера:Пример:
.stuck-top {
container-type: scroll-state;
position: sticky;
top: 0px;
> nav {
@container scroll-state(stuck: top) {
background: _Highlight;
color: _HighlightText;
}
}
}
Где это можно использовать?
- Индикация прокрутки — визуально показывать, что есть ещё контент ниже
- "Липкие" заголовки — автоматически делать заголовки
sticky
при прокрутке- Изменение навигации — например, показывать кнопку "Наверх" при прокрутке
- Оптимизация интерфейса — скрывать второстепенные элементы при прокрутке
Документация
#chrome #css
В последних версиях
Сейчас для процессинга
Экспериментально lightningcss был в
#vite #css
Vite
активно доделывают поддержку lightningcssСейчас для процессинга
CSS
используется ESBuild
, но с переходом на Rolldown
нужно что-то другое. Экспериментально lightningcss был в
Vite
с 4 версии.#vite #css
This media is not supported in your browser
VIEW IN TELEGRAM
:hover > :not(:hover)
#css #tip
hover
обычно используется, чтобы выделить какой-то элемент. Но иногда красивей что-то сделать с остальнымиul {
@media (hover) and (prefers-reduced-motion: no-preference) {
& > li {
transform-origin: left center;
transition: transform 1s var(--ease-spring-3), opacity 0.3s var(--ease-3);
}
&:hover > li:not(:hover) {
opacity: 0.25;
transform: scale(0.8);
}
}
}
#css #tip