Skip to main content

Font Families

Proyecto Neptuno uses two Google Fonts that complement each other:
  1. Playfair Display (Serif) - For elegant headings
  2. Montserrat (Sans-serif) - For body text and UI

Font Import

Fonts are imported at the top of style.css:
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap');
This import includes all font weights (100-900) and italic variations for both families, loaded with display=swap for better performance.

Base Typography

Body Font

Montserrat is set as the default font for the entire site:
body {
    font-family: 'Montserrat';
}
This applies to all text unless specifically overridden.

Heading Styles

h1 {
    font-family: 'Playfair Display', serif;
    font-weight: 800;
}
H1 uses Playfair Display with extra bold weight (800) for maximum impact on hero sections and page titles.

Hero H1 Example:

#hero h1 {
    font-size: 6rem; 
    color: var(--texto-claro);
    margin: 2rem 0;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7); 
    letter-spacing: 2px;
    line-height: 1.2;
}

Page Hero H1:

.page-hero h1 {
    font-size: 4.5rem;
    color: var(--texto-oscuro);
    line-height: 1;
    margin-bottom: 1.5rem;
}

Typography Scale

The project uses a consistent typography scale across components:
ElementFont FamilySizeWeightUsage
Hero H1Playfair Display6rem800Landing hero
Page H1Playfair Display4.5rem800Interior page titles
Ocio H2Playfair Display2.8rem700Section headings
Project H2Playfair Display2.2rem700Project sections
Landing H2Playfair Display1.8rem700Landing cards
Body TextMontserrat0.9-1rem400Paragraphs
LabelsMontserrat0.72-0.8rem700Uppercase labels

Typography Examples

Hero Section Typography

The landing page hero combines large display text with decorative subtitle:
#hero h1 {
    font-size: 6rem; 
    color: var(--texto-claro);
    margin: 2rem 0;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7); 
    letter-spacing: 2px;
    line-height: 1.2;
}

#hero h2 {
    color: var(--color-secundario-claro);
    font-size: 1.1rem;
    margin: 0 auto;
    max-width: 60%;
    text-transform: uppercase;
    letter-spacing: 2px;
    line-height: 1.6;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7);
}
Text shadows enhance legibility on image backgrounds. Both headings use increased letter-spacing for elegance.

Label Typography Pattern

Uppercase labels appear throughout the design:
.landing-card__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--color-secundario);
}

.page-hero__label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--color-secundario);
    margin-bottom: 1rem;
}

Body Text Typography

Body text uses Montserrat with comfortable line-height:
.landing-card p {
    font-size: 0.9rem;
    color: var(--texto-muted);
    line-height: 1.7;
    max-width: 380px;
}

.page-hero p {
    color: var(--texto-muted);
    font-size: 1rem;
    line-height: 1.7;
    max-width: 520px;
}

Responsive Typography

Typography scales down on mobile devices:
@media (max-width: 576px) {
    #hero h1 {
        font-size: 2.5rem;  /* Down from 6rem */
    }
    #hero h2 {
        max-width: 90%;
        font-size: 0.9rem;
    }
    .page-hero h1 {
        font-size: 2.5rem;  /* Down from 4.5rem */
    }
}

@media (max-width: 768px) {
    .proyecto-intro h2 {
        font-size: 1.7rem;  /* Down from 2.2rem */
    }
}

@media (max-width: 992px) {
    .ocio-bloque__texto h2 {
        font-size: 2rem;    /* Down from 2.8rem */
    }
}
Large display text must scale significantly on mobile to maintain readability and prevent awkward line breaks.

Typography Best Practices

Playfair for Impact

Use Playfair Display for H1 and prominent H2 headings that need elegance

Montserrat for UI

Use Montserrat for body text, labels, buttons, and all UI elements

Line Height Matters

Body text: 1.7-1.8, Headings: 1.0-1.2 for optimal readability

Letter Spacing

Add letter-spacing to uppercase labels (2-3px) for sophistication

Text Decorative Effects

Text Shadows

Text shadows improve contrast on image backgrounds:
#hero h1,
#hero h2 {
    text-shadow: 2px 2px 4px rgba(0,0,0,0.7);
}

Transitions

Smooth transitions on interactive text:
.landing-card__cta {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-primario);
    letter-spacing: 1px;
    transition: var(--transicion-suave);
}

.landing-card:hover .landing-card__cta {
    letter-spacing: 2px;  /* Expands on hover */
}

Build docs developers (and LLMs) love