index-main/assets/css/components/_dropdown.scss
Julie Blanc 2f7473be0a
All checks were successful
Deploy / Deploy to Production (push) Successful in 12s
dropdown, automatique positionning
2026-01-21 16:43:10 +01:00

91 lines
2 KiB
SCSS

.dropdown {
position: relative;
display: inline-block;
&__trigger {
cursor: pointer;
}
&__content {
position: absolute;
top: 100%;
left: 0;
min-width: 180px;
margin-top: var(--padding-inner);
background-color: var(--color-bg);
border: var(--border);
border-radius: var(--radius-btn);
opacity: 0;
visibility: hidden;
transform: translateY(-4px);
transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
z-index: 100;
&::before{
content: "";
transform: rotate(90deg);
font-size: 14px;
position: absolute;
top: -13px;
left: 16px;
}
ul {
list-style: none;
margin: 0;
padding: var(--padding-inner);
}
a, button {
display: block;
width: 100%;
padding: 0.75em 1ch;
font-size: var(--fs-small);
text-align: left;
text-decoration: none;
color: var(--color-txt);
background: none;
border: none;
cursor: pointer;
&:hover {
background-color: var(--grey-800);
}
}
}
// Positionnement par défaut : sous le bouton, aligné à gauche
// Variante : aligné à droite
&--align-right .dropdown__content {
left: auto;
right: 0;
&::before{
left: auto;
right: 16px;
}
}
// Variante : dropdown à droite du bouton
&--position-right .dropdown__content {
top: 0;
left: 100%;
margin-top: 0;
margin-left: 4px;
}
&.is-open {
.dropdown__content {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
}
&--position-right.is-open {
.dropdown__content {
transform: translateX(0);
}
}
}