Files
FreshRSS/p/themes/Ansum/_mobile.css
polybjorn 3f134bce88 fix(themes): scope Mapco and Ansum aside transition to width (#8785)
Mapco and Ansum apply `transition: all 0.2s ease-in-out` to `.aside`
in their narrow `@media`. When the viewport crosses 840px with the
sidebar open, the resulting `.aside` position change (`static` to
`fixed`) gets animated alongside width, producing a visible artefact
where the X button slides down then scrolls back up before settling.

Limit the transition to the property that should actually animate
(`width`), matching base-theme's existing
`transition: width 200ms linear`.

The artefact only manifests when the drawer stays open across the
840px boundary, which is the behaviour introduced by #8775. On current
edge, `init_nav_menu`'s `media.onchange` toggles the aside off when
crossing the breakpoint, hiding the bug.

Co-authored-by: Bjørn A. Andersen <polybjorn@users.noreply.github.com>
2026-05-04 12:43:17 +02:00

169 lines
2.1 KiB
CSS

/*=== MOBILE */
/*===========*/
@media (max-width: 840px) {
.aside {
transition: width 0.2s ease-in-out;
&.aside_feed {
padding: 0;
}
.tree .tree-folder .tree-folder-items .item a {
padding: 0.5rem 1rem;
}
}
.aside .toggle_aside,
#overlay .close,
.dropdown-menu .toggle_aside,
#slider .toggle_aside {
background-color: var(--main-first);
&:hover {
background-color: var(--main-first-alt);
}
.icon {
filter: grayscale(100%) brightness(2.5);
}
}
.header {
.item {
&.search {
display: none;
}
&.configure {
position: absolute;
top: 0;
right: 0;
}
}
}
#global {
height: calc(100% - 8rem);
}
#panel {
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.post {
padding-left: 1rem;
padding-right: 1rem;
}
.nav_menu {
padding-left: 0;
.btn {
margin: 0;
padding: 0.85rem 1.25rem;
}
.stick,
.group {
margin: 0.5rem 0.5rem;
.btn {
margin: 0;
padding: 0.85rem 1.25rem;
&.read_all {
padding: 0.85rem 1.25rem;
}
}
}
.search {
.input {
max-width: 97%;
width: 90px;
&:focus {
width: 400px;
}
}
}
}
#nav_menu_read_all #nav_menu_read .dropdown-toggle.btn {
background-image: none;
}
.nav_menu .stick #mark-read-menu .dropdown-toggle.btn {
border-left-width: 0;
border-radius: 5px;
}
#stream {
.flux {
.flux_header {
padding: 0.5rem 0;
}
}
}
.dropdown-target:target {
& ~ .dropdown-toggle::after {
background-color: var(--grey-lighter);
border-top: 1px solid var(--grey-light);
border-left: 1px solid var(--grey-light);
right: 21px;
bottom: -14px;
}
& ~ a.dropdown-toggle {
&:not(.btn) {
&::after {
bottom: -17px;
}
}
}
}
.transition {
text-align: center;
padding: 1rem 0;
.name {
padding: 0;
display: block;
width: 100%;
line-height: 1.5rem;
margin-bottom: 1rem;
}
}
#nav_entries button {
height: 4.5rem;
}
.notification {
border-radius: 0;
a.close {
background: transparent;
display: block;
left: 0;
}
a.close:hover {
opacity: 0.5;
}
a.close .icon {
display: none;
}
}
}