Skip to content
Snippets Groups Projects
posts.sass 11.5 KiB
Newer Older
alexisben's avatar
alexisben committed
.block-posts
alexisben's avatar
alexisben committed
    .top
alexisben's avatar
alexisben committed
        a
alexisben's avatar
alexisben committed
            @include icon(arrow-right, after, true)
            @include hover-translate-icon
alexisben's avatar
alexisben committed
            text-decoration: none
alexisben's avatar
alexisben committed
    .posts
        @include grid(1)
alexisben's avatar
alexisben committed
        @include grid($block-posts-grid-columns, desktop)
alexisben's avatar
alexisben committed
    article
alexisben's avatar
alexisben committed
        @include author-and-time-side-to-side
alexisben's avatar
alexisben committed
        .post-title
alexisben's avatar
alexisben committed
            a
                @include stretched-link
                text-decoration: none
        .post-content
            > * + * 
alexisben's avatar
alexisben committed
            .media
                margin-top: 0
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
    &--grid
        @include media-breakpoint-down(desktop)
alexisben's avatar
alexisben committed
            article + article
alexisben's avatar
alexisben committed
        @include in-page-with-sidebar
            .grid
Arnaud Levy's avatar
Arnaud Levy committed
                @include grid(2)
        @include in-page-without-sidebar
            .grid
                @include grid($block-posts-grid-columns)
                .media picture img
                    width: 100%
    &--large
        .post
            .more
                @include icon(arrow-right, after, true)
alexisben's avatar
alexisben committed

            // Masquer le point entre l'auteur et la date (mixin author-and-time-side-to-side)
            .post-author
Olivia206's avatar
Olivia206 committed
                p::before
                    display: none
alexisben's avatar
alexisben committed

            // Permet d'aligner correctement les différents line-height des différents composants du post meta
            .post-meta
                display: block
alexisben's avatar
alexisben committed
                line-height: 0 // Hack pour que les enfants de post-meta soient correctement 
Olivia206's avatar
Olivia206 committed
                > *
                    margin-right: $spacing-3
                time
                    vertical-align: baseline
                .post-author
                    display: inline
                    p
                        display: inline
            .post-categories 
                display: inline
Olivia206's avatar
Olivia206 committed
                *
                    display: inline-block
                li
                    margin-right: $spacing-2
            // Désactiver le ratio forcé de la configuration $article-media-aspect-ratio
alexisben's avatar
alexisben committed
            .media
                &, img
                    aspect-ratio: auto
        @include media-breakpoint-down(desktop)
            .post
Olivia206's avatar
Olivia206 committed
                + .post
Olivia206's avatar
Olivia206 committed
                p[itemprop="articleBody"]
                    margin-top: 0
        @include media-breakpoint-up(desktop)
            .large
                .post
                    flex-direction: row
Arnaud Levy's avatar
Arnaud Levy committed
                    gap: var(--grid-gutter)
alexisben's avatar
alexisben committed
                    .post-title
                        @include h2
Olivia206's avatar
Olivia206 committed
                    p[itemprop="articleBody"]
Olivia206's avatar
Olivia206 committed
                    .post-categories
                        li
                            a
                                display: inline

        @include in-page-with-sidebar
            .large
                .post
Olivia206's avatar
Olivia206 committed
                    @include media-breakpoint-down(xl)
                        flex-direction: column
                        gap: unset
Olivia206's avatar
Olivia206 committed
                        p[itemprop="articleBody"]
Olivia206's avatar
Olivia206 committed
                    @include media-breakpoint-up(xl)
                        .media,
                        .post-content
Arnaud Levy's avatar
Arnaud Levy committed
                            width: columns(4)
                @include media-breakpoint-up(xl)
                    &.without-images
                        .post
                            .post-content
                                width: columns(8)
        @include in-page-without-sidebar
            .large
                .post
                    gap: var(--grid-gutter)
alexisben's avatar
alexisben committed
                        width: columns(6)
alexisben's avatar
alexisben committed
                        width: columns(5)
alexisben's avatar
alexisben committed
                    .post-title
                        @include lead
                &.without-images
                    .post
                        @include media-breakpoint-up(xl)
                            margin-left: offset(4)
                            .post-content
                                width: columns(6)
                        @include media-breakpoint-down(xl)
                            .post-content
                                width: columns(8)
alexisben's avatar
alexisben committed
    &--list
        article
alexisben's avatar
alexisben committed
            border-bottom: 1px solid var(--color-border)
alexisben's avatar
alexisben committed
            .media
                background: none
                margin: 0
                &, img
                    aspect-ratio: auto
        @include media-breakpoint-down(desktop)
alexisben's avatar
alexisben committed
            article
                position: relative
Arnaud Levy's avatar
Arnaud Levy committed
                padding-bottom: $spacing-3
alexisben's avatar
alexisben committed
                + article
Arnaud Levy's avatar
Arnaud Levy committed
                    margin-top: $spacing-3
alexisben's avatar
alexisben committed
                .post-content
                    display: flex
                    flex-direction: column
alexisben's avatar
alexisben committed
                    .post-title
alexisben's avatar
alexisben committed
                        margin-bottom: 0
alexisben's avatar
alexisben committed
                    .post-categories
                        margin-bottom: 0
                    p[itemprop="articleBody"]
alexisben's avatar
alexisben committed
                .media
alexisben's avatar
alexisben committed
                    order: -1
                    max-width: 33%
        @include media-breakpoint-up(desktop)
            article
                display: flex
                flex-direction: row

alexisben's avatar
alexisben committed
        @include in-page-with-sidebar
            article
Olivia206's avatar
Olivia206 committed
                gap: var(--grid-gutter) // gap plutôt que marge pour l'affichage avec ou sans image
alexisben's avatar
alexisben committed
                + article
alexisben's avatar
alexisben committed
                .media
Arnaud Levy's avatar
Arnaud Levy committed
                    width: columns(2)
alexisben's avatar
alexisben committed
                .post-content
alexisben's avatar
alexisben committed
                    width: columns(6)
        @include in-page-without-sidebar
alexisben's avatar
alexisben committed
            article
alexisben's avatar
alexisben committed
                border-bottom: 1px solid var(--color-border)
                gap: var(--grid-gutter)
alexisben's avatar
alexisben committed
                    width: columns(3)
alexisben's avatar
alexisben committed
                    width: columns(6)
                .post-meta
                    position: absolute
                    right: 0
                    top: 0
                    margin-top: 0.3em
alexisben's avatar
alexisben committed

    &--highlight
        .highlight-post
alexisben's avatar
alexisben committed
            .post-title
alexisben's avatar
alexisben committed
            .media
alexisben's avatar
alexisben committed
                background: none
        .list
Arnaud Levy's avatar
Arnaud Levy committed
            margin-top: $spacing-3
alexisben's avatar
alexisben committed
            border-top: 1px solid var(--color-border)
alexisben's avatar
alexisben committed
            article
alexisben's avatar
alexisben committed
                border-bottom: 1px solid var(--color-border)
alexisben's avatar
alexisben committed
                position: relative
Arnaud Levy's avatar
Arnaud Levy committed
                padding-bottom: $spacing-3
                margin-top: $spacing-3
alexisben's avatar
alexisben committed
        article
            > * + * 
alexisben's avatar
alexisben committed
            .media
                margin-top: 0

        @include media-breakpoint-down(desktop)
            .list
alexisben's avatar
alexisben committed
                border-top: 1px solid var(--color-border)
                p[itemprop="articleBody"]
                    margin-top: 0

        @include media-breakpoint-up(desktop)
            .highlight
alexisben's avatar
alexisben committed
                .post-title
alexisben's avatar
alexisben committed
                    .post-title
alexisben's avatar
alexisben committed
        @include in-page-with-sidebar
            .highlight-post
                .post
                    flex-direction: row
Olivia206's avatar
Olivia206 committed
                    gap: var(--grid-gutter) // pour le cas où on masque l'image
alexisben's avatar
alexisben committed
                    .media
Arnaud Levy's avatar
Arnaud Levy committed
                        width: columns(3)
alexisben's avatar
alexisben committed
                        margin-bottom: 0
                    .post-content
alexisben's avatar
alexisben committed
                        width: columns(5)
alexisben's avatar
alexisben committed
            .list
                article
                    @include grid(8, desktop, 0, 0)
alexisben's avatar
alexisben committed
                    .post-title
alexisben's avatar
alexisben committed
                        grid-column: 1 / 7
alexisben's avatar
alexisben committed
                    .post-categories
                        grid-column: 1 / 7
alexisben's avatar
alexisben committed
                    .post-meta
alexisben's avatar
alexisben committed
                        grid-row: 1
alexisben's avatar
alexisben committed
                        grid-column: 7 / 9
                        text-align: right
                        order: 2
alexisben's avatar
alexisben committed
                        display: block
alexisben's avatar
alexisben committed
                        margin-top: 0
alexisben's avatar
alexisben committed
                        .post-author p::before
                            content: ''
                    p[itemprop="articleBody"]
alexisben's avatar
alexisben committed
                        grid-column: 1 / 7
                        order: 3

        @include in-page-without-sidebar
alexisben's avatar
alexisben committed
            .highlight
alexisben's avatar
alexisben committed
            .list
                border-top: 0
                margin-top: 0
                article:first-child
alexisben's avatar
alexisben committed
                    margin-top: 0
    &--alternate .alternate
        @include alternate
        @include media-breakpoint-up(desktop)
Olivia206's avatar
Olivia206 committed
            &.without-images
                .right
                    margin-left: auto
Olivia206's avatar
Olivia206 committed
                .portrait
Olivia206's avatar
Olivia206 committed
                    + .portrait
Olivia206's avatar
Olivia206 committed
                        margin-top: 0
Olivia206's avatar
Olivia206 committed
                    + .square,
                    + .landscape
                        margin-top: -5%
Olivia206's avatar
Olivia206 committed
                    + .post:not(.portrait, .square, .landscape)
                        margin-top: -3%
        @include media-breakpoint-down(desktop)
            .post 
                .post-meta
        @include draggable-block
        .container
            padding-right: 0
            padding-bottom: $spacing-3
            &:hover
                cursor: grab
            &.is-grabbing
                cursor: grabbing
            li
                list-style: none
            .posts
                display: flex
                gap: unset
                .post
                    margin: 0 calc(var(--grid-gutter) / 2)
            .actions-arrows
                justify-content: space-between
        @include media-breakpoint-down(desktop)
                gap: half(var(--grid-gutter))
                .post
                    width: columns(10)
                .grab-item:last-of-type
                    margin-right: half(var(--grid-gutter))
                .actions-arrows
                    margin-right: var(--grid-gutter)
        @include media-breakpoint-up(desktop)
            .next
                margin-right: pxToRem(-27) // Marge négative pour aligner correctement le picto à la colonne
        @include in-page-with-sidebar
            .post
                width: columns(3)
alexisben's avatar
alexisben committed
                .post-title
                    @include h4
            .carousel
                .actions-arrows
                    width: offset(6)
        @include in-page-without-sidebar
            .block-content
                display: flex
                gap: var(--grid-gutter)
                .top
                    width: columns(3)
                    width: columns(9)
                    width: columns(4)
            .carousel
                .actions-arrows
                    width: offset(8)

// Move this part to blocks/categories when categories block is ready
.block-posts
    .categories--grid
        li
alexisben's avatar
alexisben committed
            background: var(--color-background-alt)
            position: relative
            a
                @include h3
                font-weight: bold
                text-decoration: none
                @include stretched-link
            p
                display: block