Services

Services

Ways to work together

Fixed scope, fixed price. You always know what you get and when.

  1. Product sprint

    Two weeks to go from a fuzzy idea to a tested prototype.

    • User interviews
    • Clickable prototype
    • Test report
    Duration
    2 weeks
    From
    €8,000
  2. Product design

    A dedicated designer for your team, from flows to polished screens.

    • Flows and wireframes
    • UI design
    • Design QA
    Duration
    3 months+
    From
    €12,000 / month
  3. Design system

    Tokens, components and documentation your developers will love.

    • Audit
    • Component library
    • Documentation
    Duration
    6–10 weeks
    From
    €24,000
  4. Workshop

    A hands-on day to align product, design and engineering.

    • Preparation call
    • On-site day
    • Summary
    Duration
    1 day
    From
    €3,500

Prices exclude VAT. Non-profits get 30% off.

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

.services-block {
  padding-block: spacer-clamp('xl', 'xxl');

  &__inner {
    display: flex;
    flex-direction: column;
    gap: spacer('l');
  }

  &__list {
    border-block-start: config('border-width-base', $display) solid color('heading');
    list-style: none;
    margin: 0;
    padding: 0;
  }

  &__service {
    border-block-end: config('border-width-base', $display) solid color('border');
    display: grid;
    gap: spacer('s') spacer('l');
    grid-template-columns: auto minmax(0, 1fr);
    padding-block: spacer('l');

    @include breakpoint('lg') {
      align-items: start;
      grid-template-columns: 4rem minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 1fr);
    }
  }

  &__number {
    color: color('primary');
    font-family: config('font-family-heading', $typography);
    font-size: font-size('h4');
    font-variant-numeric: tabular-nums;
    font-weight: config('font-weight-heading', $typography);
    line-height: 1.3;
  }

  &__body {
    @include layout-stack('xs'); // title, text
  }

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

  &__text {
    color: color('muted');
  }

  &__deliverables,
  &__terms {
    grid-column: 2;

    @include breakpoint('lg') {
      grid-column: auto;
    }
  }

  &__deliverables {
    list-style: none;
    margin: 0;
    padding: 0;
    @include layout-stack('xxs');

    li {
      align-items: center;
      display: flex;
      gap: spacer('xs');

      &::before {
        background-color: color('primary');
        block-size: 0.35rem;
        border-radius: 50%;
        content: '';
        flex-shrink: 0;
        inline-size: 0.35rem;
      }
    }
  }

  &__terms {
    display: grid;
    gap: spacer('xs');
    margin-block: 0;
  }

  &__term {
    display: flex;
    gap: spacer('xs');
    justify-content: space-between;

    @include breakpoint('lg') {
      flex-direction: column;
      gap: 0;
      justify-content: flex-start;
    }

    dt {
      color: color('muted');
      font-size: config('font-size-sm', $typography);
      font-weight: 400;
    }

    dd {
      color: color('heading');
      font-weight: 700;
      margin: 0;
    }
  }

  &__note {
    color: color('muted');
    font-size: config('font-size-sm', $typography);
    margin-block: 0;
  }
}
<section class="services-block" id="services" aria-labelledby="services-title">
    <div class="container">
        <div class="services-block__inner">
            <header class="block-heading block-heading--start">
                <p class="block-heading__eyebrow">Services</p>
                <h2 class="block-heading__title" id="services-title">Ways to work together</h2>
                <p class="block-heading__text">Fixed scope, fixed price. You always know what you get and when.</p>
            </header>
            <ol class="services-block__list" role="list">
                <li class="services-block__service">
                    <span class="services-block__number" aria-hidden="true">01</span>
                    <div class="services-block__body">
                        <h3 class="services-block__title">Product sprint</h3>
                        <p class="services-block__text">Two weeks to go from a fuzzy idea to a tested prototype.</p>
                    </div>
                    <ul class="services-block__deliverables" role="list" aria-label="Deliverables">
                        <li>User interviews</li>
                        <li>Clickable prototype</li>
                        <li>Test report</li>
                    </ul>
                    <dl class="services-block__terms">
                        <div class="services-block__term">
                            <dt>Duration</dt>
                            <dd>2 weeks</dd>
                        </div>
                        <div class="services-block__term">
                            <dt>From</dt>
                            <dd>€8,000</dd>
                        </div>
                    </dl>
                </li>
                <li class="services-block__service">
                    <span class="services-block__number" aria-hidden="true">02</span>
                    <div class="services-block__body">
                        <h3 class="services-block__title">Product design</h3>
                        <p class="services-block__text">A dedicated designer for your team, from flows to polished screens.</p>
                    </div>
                    <ul class="services-block__deliverables" role="list" aria-label="Deliverables">
                        <li>Flows and wireframes</li>
                        <li>UI design</li>
                        <li>Design QA</li>
                    </ul>
                    <dl class="services-block__terms">
                        <div class="services-block__term">
                            <dt>Duration</dt>
                            <dd>3 months+</dd>
                        </div>
                        <div class="services-block__term">
                            <dt>From</dt>
                            <dd>€12,000 / month</dd>
                        </div>
                    </dl>
                </li>
                <li class="services-block__service">
                    <span class="services-block__number" aria-hidden="true">03</span>
                    <div class="services-block__body">
                        <h3 class="services-block__title">Design system</h3>
                        <p class="services-block__text">Tokens, components and documentation your developers will love.</p>
                    </div>
                    <ul class="services-block__deliverables" role="list" aria-label="Deliverables">
                        <li>Audit</li>
                        <li>Component library</li>
                        <li>Documentation</li>
                    </ul>
                    <dl class="services-block__terms">
                        <div class="services-block__term">
                            <dt>Duration</dt>
                            <dd>6–10 weeks</dd>
                        </div>
                        <div class="services-block__term">
                            <dt>From</dt>
                            <dd>€24,000</dd>
                        </div>
                    </dl>
                </li>
                <li class="services-block__service">
                    <span class="services-block__number" aria-hidden="true">04</span>
                    <div class="services-block__body">
                        <h3 class="services-block__title">Workshop</h3>
                        <p class="services-block__text">A hands-on day to align product, design and engineering.</p>
                    </div>
                    <ul class="services-block__deliverables" role="list" aria-label="Deliverables">
                        <li>Preparation call</li>
                        <li>On-site day</li>
                        <li>Summary</li>
                    </ul>
                    <dl class="services-block__terms">
                        <div class="services-block__term">
                            <dt>Duration</dt>
                            <dd>1 day</dd>
                        </div>
                        <div class="services-block__term">
                            <dt>From</dt>
                            <dd>€3,500</dd>
                        </div>
                    </dl>
                </li>
            </ol>
            <p class="services-block__note">Prices exclude VAT. Non-profits get 30% off.</p>
        </div>
    </div>
</section>

Services

On this page

A freelancer's or studio's services as a clear, numbered price list: what each service is, what you get, how long it takes and where the price starts.

Technical Details

  • The services are an ordered list; the big numbers are decorative (aria-hidden), the list itself carries the order.
  • Every service has an h3, a deliverables list labelled "Deliverables" and a description list for the duration and the starting price.
  • On wide screens a service is one row with four columns; on narrow screens the details move under the title.
  • The block has id="services", so the navigation can link to it.
  • Override the content with servicesBlock.

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.