Initial commit
This commit is contained in:
557
scss/_category.scss
Normal file
557
scss/_category.scss
Normal file
@@ -0,0 +1,557 @@
|
||||
// Category archive pages
|
||||
|
||||
.category-archive {
|
||||
margin-top: 0;
|
||||
.category-header-top {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-direction: column;
|
||||
align-items: start;
|
||||
.breadcrumb {
|
||||
font-size: 0.85rem;
|
||||
margin-bottom: 1.5rem;
|
||||
text-transform: uppercase;
|
||||
line-height: 1.3;
|
||||
|
||||
&__separator {
|
||||
margin: 0 0.4rem;
|
||||
}
|
||||
}
|
||||
@media ($tablet) {
|
||||
flex-direction: row;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-family: Gelasio;
|
||||
font-weight: normal;
|
||||
font-size: 1.8rem;
|
||||
position: relative;
|
||||
margin-top: 2rem;
|
||||
display: inline-block;
|
||||
&::after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
height: 6px;
|
||||
width: 100%;
|
||||
bottom: -1.2rem;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
}
|
||||
@media ($tablet) {
|
||||
font-size: 2.6rem;
|
||||
&::after {
|
||||
bottom: -0.4rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.category--le-laboratoire h1::after {
|
||||
background: linear-gradient(to bottom, transparent 0%, $laboratoire 50%);
|
||||
}
|
||||
|
||||
.category--manifestations-scientifiques h1::after {
|
||||
background: linear-gradient(to bottom, transparent 0%, $manifestations 50%);
|
||||
}
|
||||
|
||||
.category--publications-et-productions h1::after {
|
||||
background: linear-gradient(to bottom, transparent 0%, $publications 50%);
|
||||
}
|
||||
|
||||
.category--mediation-scientifique h1::after {
|
||||
background: linear-gradient(to bottom, transparent 0%, $mediations 50%);
|
||||
}
|
||||
|
||||
.category--ressources h1::after {
|
||||
background: linear-gradient(to bottom, transparent 0%, $ressources 50%);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Breadcrumb: non-category links (Accueil, etc.) underlined in muted gray
|
||||
.breadcrumb a:not(.breadcrumb__cat) { text-decoration: underline; text-decoration-color: $less-light-gray; text-underline-offset: 3px; }
|
||||
|
||||
// Breadcrumb category color underlines — links and current page indicator
|
||||
.category--le-laboratoire .breadcrumb__cat,
|
||||
.category--le-laboratoire .breadcrumb__current { text-decoration: underline; text-decoration-color: $laboratoire; text-underline-offset: 3px; }
|
||||
.category--manifestations-scientifiques .breadcrumb__cat,
|
||||
.category--manifestations-scientifiques .breadcrumb__current { text-decoration: underline; text-decoration-color: $manifestations; text-underline-offset: 3px; }
|
||||
.category--publications-et-productions .breadcrumb__cat,
|
||||
.category--publications-et-productions .breadcrumb__current { text-decoration: underline; text-decoration-color: $publications; text-underline-offset: 3px; }
|
||||
.category--mediation-scientifique .breadcrumb__cat,
|
||||
.category--mediation-scientifique .breadcrumb__current { text-decoration: underline; text-decoration-color: $mediations; text-underline-offset: 3px; }
|
||||
.category--ressources .breadcrumb__cat,
|
||||
.category--ressources .breadcrumb__current { text-decoration: underline; text-decoration-color: $ressources; text-underline-offset: 3px; }
|
||||
|
||||
.category-archive {
|
||||
|
||||
.taxonomy-description {
|
||||
font-family: $font-primary;
|
||||
margin-top: 2rem;
|
||||
line-height: 1.6;
|
||||
max-width: 70ch;
|
||||
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 1rem;
|
||||
line-height: 1.6;
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
&:first-child {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
line-height: 1.6;
|
||||
padding-left: 0.8rem;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: inside "· ";
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style: inside decimal;
|
||||
}
|
||||
|
||||
blockquote{
|
||||
padding-left: 1rem;
|
||||
margin-left: 1.5rem;
|
||||
border-left: solid 1px $light-gray;
|
||||
}
|
||||
}
|
||||
|
||||
.subcategory-section {
|
||||
margin-top: 5rem;
|
||||
&:first-of-type {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
.subcategory-section__title {
|
||||
font-family: NewsCycle;
|
||||
text-transform: uppercase;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin-bottom: 2rem;
|
||||
font-size: 1.2rem;
|
||||
|
||||
&::after {
|
||||
@include yellow-gradient-after(10px);
|
||||
bottom: -10px;
|
||||
}
|
||||
}
|
||||
|
||||
.post-grid {
|
||||
display: grid;
|
||||
align-items: start;
|
||||
grid-template-columns: 1fr;
|
||||
gap: 2rem;
|
||||
width: 100%;
|
||||
|
||||
.post-card {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
@media ($tablet) {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
@media ($desktop) {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
.category-section-footer {
|
||||
margin-top: 3rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
.category-header {
|
||||
width: 100%;
|
||||
margin-bottom: 3vh;
|
||||
|
||||
&__back {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.3rem;
|
||||
font-size: 0.9rem;
|
||||
text-decoration: none;
|
||||
margin-bottom: 1rem;
|
||||
|
||||
i {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: 2rem;
|
||||
margin-bottom: 0.5rem;
|
||||
|
||||
@media ($tablet) {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
&__description {
|
||||
color: $less-dark-gray;
|
||||
}
|
||||
}
|
||||
|
||||
// Sub-category sections on parent category page
|
||||
.subcategory-section {
|
||||
width: 100%;
|
||||
margin-bottom: 4vh;
|
||||
|
||||
&__header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
margin-bottom: 2vh;
|
||||
border-bottom: 2px solid $publications;
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: 1.5rem;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
&__see-all {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.3rem;
|
||||
font-size: 0.9rem;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
&__empty {
|
||||
color: $less-less-light-gray;
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
// Post grid
|
||||
.post-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
gap: 2rem;
|
||||
width: 100%;
|
||||
|
||||
@media ($tablet) {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
@media ($desktop) {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
// Post card
|
||||
.post-card {
|
||||
background-color: white;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
|
||||
&__image {
|
||||
width: 100%;
|
||||
aspect-ratio: 4 / 3;
|
||||
overflow: hidden;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
padding: 1rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.4rem;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-size: 1.1rem;
|
||||
line-height: 1.3;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
&__subtitle {
|
||||
font-size: 0.9rem;
|
||||
color: $less-dark-gray;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
&__date {
|
||||
font-size: 0.8rem;
|
||||
color: $less-less-light-gray;
|
||||
}
|
||||
|
||||
&__authors {
|
||||
font-size: 0.9rem;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.2rem;
|
||||
|
||||
.post-card__author {
|
||||
&:not(:last-child)::after {
|
||||
content: ',';
|
||||
}
|
||||
}
|
||||
|
||||
&--external {
|
||||
color: $less-dark-gray;
|
||||
}
|
||||
}
|
||||
|
||||
&__role,
|
||||
&__publisher,
|
||||
&__journal {
|
||||
font-size: 0.85rem;
|
||||
color: $less-dark-gray;
|
||||
}
|
||||
|
||||
&__axes,
|
||||
&__tags {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.3rem;
|
||||
}
|
||||
|
||||
&__axe,
|
||||
&__tag {
|
||||
font-size: 0.75rem;
|
||||
background-color: $light-gray;
|
||||
padding: 0.15rem 0.5rem;
|
||||
}
|
||||
|
||||
&__axe {
|
||||
border-left: 2px solid $publications;
|
||||
}
|
||||
|
||||
&__links {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
margin-top: 0.3rem;
|
||||
}
|
||||
|
||||
&__link {
|
||||
font-size: 0.8rem;
|
||||
|
||||
&--hal {
|
||||
color: $publications;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Infinite scroll spinner
|
||||
.scroll-spinner {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 0.4rem;
|
||||
padding: 2rem 0;
|
||||
|
||||
&__dot {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 50%;
|
||||
background-color: $publications;
|
||||
animation: scroll-spinner-bounce 1.2s infinite ease-in-out;
|
||||
|
||||
&:nth-child(2) {
|
||||
animation-delay: 0.2s;
|
||||
}
|
||||
|
||||
&:nth-child(3) {
|
||||
animation-delay: 0.4s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes scroll-spinner-bounce {
|
||||
0%, 80%, 100% {
|
||||
transform: scale(0.6);
|
||||
opacity: 0.4;
|
||||
}
|
||||
40% {
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// ── Agenda slider view ────────────────────────────────────────────────────────
|
||||
|
||||
.agenda-view-container {
|
||||
display: none;
|
||||
margin-top: 3rem;
|
||||
&.is-active { display: block; }
|
||||
}
|
||||
|
||||
.agenda-view-title {
|
||||
font-family: NewsCycle;
|
||||
text-transform: uppercase;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin-bottom: 2rem;
|
||||
font-size: 1.2rem;
|
||||
|
||||
&::after {
|
||||
@include yellow-gradient-after(10px);
|
||||
bottom: -10px;
|
||||
}
|
||||
}
|
||||
|
||||
.agenda-swiper-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.8rem;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.agenda-swiper {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.agenda-swiper-prev,
|
||||
.agenda-swiper-next {
|
||||
flex-shrink: 0;
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
font-size: 1.2rem;
|
||||
padding: 0.4rem;
|
||||
color: $dark-gray;
|
||||
line-height: 1;
|
||||
|
||||
&:hover { color: black; }
|
||||
|
||||
&.swiper-button-disabled {
|
||||
opacity: 0.25;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
.agenda-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
padding-bottom: 1.5rem;
|
||||
border-bottom: 1px solid $light-gray;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
transition: transform 0.2s ease-out;
|
||||
margin-right: 0 !important;
|
||||
|
||||
// Timeline line running through the center of the date boxes
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 1.7rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 1px;
|
||||
background-color: $less-light-gray;
|
||||
z-index: 0;
|
||||
width: calc(100% + 20px);
|
||||
@media ($tablet) {
|
||||
width: calc(100% + 24px);
|
||||
}
|
||||
@media ($desktop) {
|
||||
width: calc(100% + 32px);
|
||||
}
|
||||
}
|
||||
|
||||
&:hover { transform: scale(0.98); }
|
||||
|
||||
&__dates {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
&__body { flex: 1; }
|
||||
|
||||
&__meta {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.3rem 0.8rem;
|
||||
font-family: $font-primary;
|
||||
font-size: 0.75rem;
|
||||
text-transform: uppercase;
|
||||
opacity: 0.65;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
&__title {
|
||||
font-family: $font-heading;
|
||||
font-size: 1rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
}
|
||||
|
||||
// Category-specific accent color on agenda card border + date box gradient
|
||||
.category--manifestations-scientifiques .agenda-card { border-bottom-color: $manifestations; }
|
||||
.category--le-laboratoire .agenda-card { border-bottom-color: $laboratoire; }
|
||||
.category--publications-et-productions .agenda-card { border-bottom-color: $publications; }
|
||||
.category--mediation-scientifique .agenda-card { border-bottom-color: $mediations; }
|
||||
.category--ressources .agenda-card { border-bottom-color: $ressources; }
|
||||
|
||||
.category--manifestations-scientifiques .agenda-date-box { @include category-gradient($manifestations); }
|
||||
.category--le-laboratoire .agenda-date-box { @include category-gradient($laboratoire); }
|
||||
.category--publications-et-productions .agenda-date-box { @include category-gradient($publications); }
|
||||
.category--mediation-scientifique .agenda-date-box { @include category-gradient($mediations); }
|
||||
.category--ressources .agenda-date-box { @include category-gradient($ressources); }
|
||||
|
||||
.agenda-date-box {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background-color: $light-gray;
|
||||
font-family: $font-primary;
|
||||
text-transform: uppercase;
|
||||
text-align: center;
|
||||
padding: 0.4rem 0.55rem;
|
||||
flex-shrink: 0;
|
||||
min-width: 2.6rem;
|
||||
|
||||
.agenda-date-day { display: block; font-size: 1.3rem; line-height: 1; }
|
||||
.agenda-date-month { display: block; font-size: 0.65rem; margin-top: 2px; }
|
||||
.agenda-date-year { display: block; font-size: 0.6rem; opacity: 0.65; }
|
||||
|
||||
sup {
|
||||
font-size: 0.7rem;
|
||||
}
|
||||
}
|
||||
|
||||
.agenda-date-arrow {
|
||||
font-size: 0.85rem;
|
||||
opacity: 0.5;
|
||||
}
|
||||
Reference in New Issue
Block a user