Skip to content
Snippets Groups Projects
typography.sass 6.74 KiB
Newer Older
Arnaud Levy's avatar
Arnaud Levy committed
// https://developers.osuny.org/docs/theme/architecture/typographie/

body
    font-family: $body-font-family
    -moz-osx-font-smoothing: grayscale
    -webkit-font-smoothing: antialiased
    font-size: $body-size
    font-variant-ligatures: common-ligatures
    text-rendering: optimizelegibility
alexisben's avatar
alexisben committed
    line-height: $body-line-height
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $body-size-desktop
Arnaud Levy's avatar
Arnaud Levy committed

// Experimental, not implemented yet
p, h1, h2, h3, h4, h5, h6, li, a, th, td, span
    text-edge: cap alphabetic
    leading-trim: both

alexisben's avatar
alexisben committed
h1, h2, h3, h4, h5, h6
alexisben's avatar
alexisben committed
    margin-top: 0
alexisben's avatar
alexisben committed
    margin-bottom: 0
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
@mixin h1
Arnaud Levy's avatar
Arnaud Levy committed
    font-family: $h1-font-family
alexisben's avatar
alexisben committed
    font-size: $h1-size
alexisben's avatar
alexisben committed
    font-weight: $h1-weight
alexisben's avatar
alexisben committed
    line-height: $h1-line-height
Arnaud Levy's avatar
Arnaud Levy committed
    text-transform: $h1-text-transform
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $h1-size-desktop
alexisben's avatar
alexisben committed

h1, .h1
    @include h1
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
@mixin h2
Arnaud Levy's avatar
Arnaud Levy committed
    font-family: $h2-font-family
alexisben's avatar
alexisben committed
    font-size: $h2-size
alexisben's avatar
alexisben committed
    font-weight: $h2-weight
alexisben's avatar
alexisben committed
    line-height: $h2-line-height
Arnaud Levy's avatar
Arnaud Levy committed
    text-transform: $h2-text-transform
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $h2-size-desktop
alexisben's avatar
alexisben committed

h2, .h2
    @include h2
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
@mixin h3
Arnaud Levy's avatar
Arnaud Levy committed
    font-family: $h3-font-family
alexisben's avatar
alexisben committed
    font-size: $h3-size
alexisben's avatar
alexisben committed
    font-weight: $h3-weight
alexisben's avatar
alexisben committed
    line-height: $h3-line-height
Arnaud Levy's avatar
Arnaud Levy committed
    text-transform: $h3-text-transform
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $h3-size-desktop
alexisben's avatar
alexisben committed

h3, .h3
    @include h3
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
@mixin h4
Arnaud Levy's avatar
Arnaud Levy committed
    font-family: $h4-font-family
alexisben's avatar
alexisben committed
    font-size: $h4-size
alexisben's avatar
alexisben committed
    font-weight: $h4-weight
alexisben's avatar
alexisben committed
    line-height: $h4-line-height
Arnaud Levy's avatar
Arnaud Levy committed
    text-transform: $h4-text-transform
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $h4-size-desktop
alexisben's avatar
alexisben committed

h4, .h4
    @include h4
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
@mixin h5
Arnaud Levy's avatar
Arnaud Levy committed
    font-family: $h5-font-family
alexisben's avatar
alexisben committed
    font-size: $h5-size
alexisben's avatar
alexisben committed
    font-weight: $h5-weight
alexisben's avatar
alexisben committed
    line-height: $h5-line-height
Arnaud Levy's avatar
Arnaud Levy committed
    text-transform: $h5-text-transform
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $h5-size-desktop
alexisben's avatar
alexisben committed
    a
        text-decoration: none
alexisben's avatar
alexisben committed

h5, .h5
    @include h5
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
@mixin h6
Arnaud Levy's avatar
Arnaud Levy committed
    font-family: $h6-font-family
alexisben's avatar
alexisben committed
    font-size: $h6-size
alexisben's avatar
alexisben committed
    font-weight: $h6-weight
alexisben's avatar
alexisben committed
    line-height: $h6-line-height
Arnaud Levy's avatar
Arnaud Levy committed
    text-transform: $h6-text-transform
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $h6-size-desktop
alexisben's avatar
alexisben committed

h6, .h6
    @include h6
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
h1, .h1,
h2, .h2
    a
        text-decoration-thickness: 0
        &:hover
            text-decoration-thickness: 1px

alexisben's avatar
alexisben committed
@mixin lead($handle-sidebar: true)
    font-family: $lead-font-family
    font-size: $lead-size
    font-weight: $lead-weight
    line-height: $lead-line-height
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $lead-size-desktop
alexisben's avatar
alexisben committed
    @if $handle-sidebar
        @include in-page-with-sidebar
            font-family: $lead-sidebar-font-family
            font-size: $lead-sidebar-size-desktop
            font-weight: $lead-sidebar-weight
            line-height: $lead-sidebar-line-height
alexisben's avatar
alexisben committed

.lead
    @include lead
@mixin lead-hero
    font-family: $lead-hero-font-family
    font-size: $lead-hero-size
    font-weight: $lead-hero-weight
    line-height: $lead-hero-line-height
    @include media-breakpoint-up(desktop)
        font-size: $lead-hero-size-desktop


alexisben's avatar
alexisben committed
@mixin body-text
    font-family: $body-font-family
alexisben's avatar
alexisben committed
    font-size: $body-size
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $body-size-desktop
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
.p,
.li
    @include body-text

@mixin meta
alexisben's avatar
alexisben committed
    font-family: $meta-font-family
    font-size: $meta-size
    font-weight: $meta-weight
    line-height: $meta-line-height
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $meta-size-desktop
alexisben's avatar
alexisben committed

.meta
    @include meta

@mixin signature
alexisben's avatar
alexisben committed
    font-family: $signature-font-family
    font-size: $signature-size
    font-weight: $signature-weight
    line-height: $signature-line-height
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $signature-size-desktop

.signature
    @include signature

@mixin small
alexisben's avatar
alexisben committed
    font-family: $small-font-family
    font-size: $small-size
    font-weight: $small-weight
    line-height: $small-line-height
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $small-size-desktop
alexisben's avatar
alexisben committed

small, .small
    @include small
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
@mixin rich-text
alexisben's avatar
alexisben committed
    word-break: break-word
alexisben's avatar
alexisben committed
    h1, h2, h3, h4, h5, h6, p, ul
alexisben's avatar
alexisben committed
        margin-top: 2em
alexisben's avatar
alexisben committed
        &:first-child, meta + &
            margin-top: 0
alexisben's avatar
alexisben committed

.rich-text
    @include rich-text

alexisben's avatar
alexisben committed
@mixin inherit-text
    font-family: inherit
    font-weight: inherit
    font-style: inherit
    font-size: inherit
    line-height: inherit

alexisben's avatar
alexisben committed
[itemprop="articleBody"]
alexisben's avatar
alexisben committed
    @include rich-text
alexisben's avatar
alexisben committed

@mixin blockquote
alexisben's avatar
alexisben committed
    margin: 0
alexisben's avatar
alexisben committed
    font-family: $quote-font-family
    font-size: $quote-size
    font-weight: $quote-weight
    font-style: $quote-style
    line-height: $quote-line-height
    @include media-breakpoint-up(desktop)
        font-size: $quote-size-desktop-long
alexisben's avatar
alexisben committed
    cite
        font-size: px2rem(18)
        font-style: normal

blockquote, .blockquote
    @include blockquote
alexisben's avatar
alexisben committed
    font-style: italic
alexisben's avatar
alexisben committed
p
    margin-top: 0
    margin-bottom: 0
    + p
        margin-top: $spacing0
alexisben's avatar
alexisben committed

p:empty
    display: none

Arnaud Levy's avatar
Arnaud Levy committed
p + ul,
p + ol
alexisben's avatar
alexisben committed
    margin-top: 0

figcaption
    a
        color: inherit

sebousan's avatar
sebousan committed
address
    font-style: normal

alexisben's avatar
alexisben committed
a,
.link
    @include link
    overflow-wrap: break-word
alexisben's avatar
alexisben committed
    &[target="_blank"]:not(.icon)
alexisben's avatar
alexisben committed
        @include icon(link-blank, after, true)
alexisben's avatar
alexisben committed
            vertical-align: baseline
alexisben's avatar
alexisben committed
    &[href^="mailto"]
        &::after
            content: none
alexisben's avatar
alexisben committed
    &.glightbox
        text-decoration: none
alexisben's avatar
alexisben committed

@mixin btn
alexisben's avatar
alexisben committed
    font-size: $btn-font-size
    padding: $btn-padding-y $btn-padding-x
    text-decoration: none
    display: inline-block
alexisben's avatar
alexisben committed
    border-radius: $btn-border-radius
    @include media-breakpoint-up(desktop)
alexisben's avatar
alexisben committed
        font-size: $btn-font-size-desktop
        padding: $btn-padding-y-desktop $btn-padding-x-desktop
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
.link-more
alexisben's avatar
alexisben committed
    @include link
alexisben's avatar
alexisben committed
    @include icon(arrow, before)
alexisben's avatar
alexisben committed
    &::before
        font-size: px2rem(10)
        margin-right: px2rem(5)

alexisben's avatar
alexisben committed
dd
    margin-bottom: 0.5rem
    margin-left: 0

alexisben's avatar
alexisben committed
abbr, abbr[title]
    @include text-underline
    text-decoration-style: dotted

alexisben's avatar
alexisben committed
::selection
alexisben's avatar
alexisben committed
    background: rgba($color-text, .7)
    color: $color-background
alexisben's avatar
alexisben committed
    text-shadow: none

Arnaud Levy's avatar
Arnaud Levy committed
sub,
sup
    font-size: 60%
    margin-left: px2rem(2)

alexisben's avatar
alexisben committed
*:focus-visible
    outline-color: inherit
alexisben's avatar
alexisben committed
    outline-offset: 5px
    outline-style: dashed
    outline-width: 1px

@media (prefers-reduced-motion: no-preference)
    *:focus-visible
        transition: outline-offset .3s ease

// ICONS
@font-face
    font-display: block
    font-family: 'Icon'
    font-style: normal
    font-weight: 400
alexisben's avatar
alexisben committed
    src: url('../fonts/fonticons/IconFont.woff') format("woff")
alexisben's avatar
alexisben committed

alexisben's avatar
alexisben committed
@each $name, $glyph in $icons
alexisben's avatar
alexisben committed
    .icon-#{$name}
alexisben's avatar
alexisben committed
        @include icon($name, before)
alexisben's avatar
alexisben committed
    .icon-block-#{$name}
        @include icon-block($name, before)
alexisben's avatar
alexisben committed
    .btn-#{$name}
        @include icon($name)
        &::before
            margin-inline-end: px2rem(5)
alexisben's avatar
alexisben committed