Call to Action

Free consultation

Transform your online presence

We design and build fast, accessible websites tailored to your goals. Tell us about your project and get a quote within two business days.

Start your 14-day free trial

No credit card required. Cancel anytime.

@use 'sprucecss/scss/spruce' as *;

.call-to-action {
  border-block-start: config('border-width-base', $display) solid color('border');
  display: grid;
  gap: spacer('s') spacer-clamp('m', 'xl');
  padding-block: spacer-clamp('l', 'xl');

  @include breakpoint('md') {
    align-items: start;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  &__heading {
    @include layout-stack('xs');
  }

  &__eyebrow {
    color: color('primary');
    font-size: config('font-size-sm', $typography);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  &__title {
    font-size: font-size('h1');
  }

  &__caption {
    @include layout-stack('m');
  }

  &__description {
    color: color('muted');
    font-size: config('font-size-lead', $typography);
  }

  &__btns {
    display: flex;
    flex-wrap: wrap;
    gap: spacer('s');
  }

  // A highlighted card version, for the end of a page or between sections.
  &--boxed {
    align-items: center;
    background-color: color-alpha('primary', 0.06);
    border: config('border-width-base', $display) solid color-alpha('primary', 0.2);
    border-radius: radius('lg');
    margin-block-start: spacer('l');
    padding: spacer-clamp('m', 'l');

    .call-to-action__btns {
      @include breakpoint('md') {
        justify-content: end;
      }
    }

    .call-to-action__caption {
      @include breakpoint('md') {
        text-align: end;
      }
    }
  }
}
<section class="call-to-action" aria-labelledby="cta-title">
    <div class="call-to-action__heading">
        <p class="call-to-action__eyebrow">Free consultation</p>
        <h2 class="call-to-action__title" id="cta-title">Transform your online presence</h2>
    </div>
    <div class="call-to-action__caption">
        <p class="call-to-action__description">We design and build fast, accessible websites tailored to your goals. Tell us about your project and get a quote within two business days.</p>
        <div class="call-to-action__btns">
            <a class="btn btn--primary btn--lg" href="#">Get a quote</a>
            <a class="btn btn--outline-primary btn--lg" href="#">Book a call</a>
        </div>
    </div>
</section>
<section class="call-to-action call-to-action--boxed" aria-labelledby="cta-boxed-title">
    <div class="call-to-action__heading">
        <h2 class="call-to-action__title" id="cta-boxed-title">Start your 14-day free trial</h2>
    </div>
    <div class="call-to-action__caption">
        <p class="call-to-action__description">No credit card required. Cancel anytime.</p>
        <div class="call-to-action__btns">
            <a class="btn btn--primary btn--lg" href="#">Start free trial</a>
        </div>
    </div>
</section>

Call to Action

A closing call to action: a short, specific headline, one supporting sentence and one or two buttons. It comes as a plain split section and a highlighted, boxed version.

Anatomy

  • .call-to-action is a section named by its title (aria-labelledby), so it shows up as a landmark region.
  • .call-to-action__heading holds an optional eyebrow (.call-to-action__eyebrow) and the title.
  • .call-to-action__caption holds the description and the buttons (.call-to-action__btns).
  • .call-to-action--boxed puts it into a tinted card, with the actions aligned to the end on wide screens.

Writing Tips

  • Keep one primary action; a second, outlined button is for the softer option ("Book a call" next to "Get a quote").
  • Use verbs in the button labels that say what happens next. "Get a quote" beats "Submit" or "Learn more".
  • Answer the main objection in the description (price, effort, commitment): "No credit card required."

Technical Details

  • The layout is a two-column grid from the md breakpoint and a single column below.
  • Use links (a.btn) when the action goes to another page and button elements only for actions on the page.
  • For a full-width page section with a container, use the CTA block.

Documentation

Learn about Spruce CSS through our extensive documentation.

Components

Explore our UI library of accessible components built with Spruce CSS.

Blocks and Pages

Full-width page blocks and complete page templates, ready to copy.

Find us on GitHub

Did you find a bug? Have an idea or a question? Please open an issue to help us develop the project.