Template Services Update.

Verze:

12. 12. 2025

Zodpovědná osoba:

Dominik Šlechta

Poslední aktualizace:

12. 12. 2025, rafael.quinterosv@gmail.com

Overview

This document describes all CSS/SCSS changes applied to the Demoweb template_services update. Each section corresponds to a specific UI component and includes the relevant SCSS snippet to apply.

1. Contact Box — Hours Display

Adds styling to the working hours text inside the contact card, ensuring it appears in a lighter gray color on its own line.

File: styles/components/_contact-card.scss

.contact-card__hours {
  font-size: 13px;
  color: $color__gray-lighter;
  display: block;
}

2. Mobile Menu — Item Button

Adjusts padding on the menu item button for xlarge breakpoints and controls visibility based on screen size. On large screens and above the button is hidden; on smaller screens it displays as inline-flex.

File: styles/components/_menu.scss

.menu__item-button {
  @include media($xlarge) {
    padding-left: 33px;
  }

  .header__menu & {
    display: inline-flex;

    @include media($large) {
      display: none;
    }
  }
}

3. Blog Page — Author Role

Styles the author role label on blog detail pages so it renders as a block-level element with appropriate text color and font size.

File: styles/components/_author.scss

.author__role {
  color: $color__text;
  display: block;
  font-size: 13px;
}

4. Blog Author Component

Defines the layout of the author component used in blog listings. Uses flex-row layout with gap, highlights the author name on hover, and adds a top margin on mobile.

File: styles/components/_author.scss

.author {
  flex-direction: row;
  align-items: center;
  flex-wrap: nowrap;
  gap: 10px;

  &:hover,
  &:focus {
    .author__name {
      color: $color__primary;
    }
  }

  @media (max-width: $small) {
    margin-top: 15px;
  }
}

5. Category Box — Standard Version

Styles the category box card including hover effects for the figure and title. The image variant uses min-height and aspect ratio while also stretching to full height.

File: styles/components/_category.scss

.category__box {
  position: relative;
  align-items: center;
  width: 100%;
  z-index: 1;
  padding: 15px 20px;
  background: $color__bg-dark;
  transition: $ease;
  height: 100%;

  &:hover,
  &:focus {
    .category__figure {
      opacity: 0.5;
    }

    .category__title {
      color: $color__primary;
    }
  }

  .category__item--image & {
    min-height: 190px;
    aspect-ratio: 16/9;
  }
}

6. Category Box — Image Variant with Banner

Extended category box definition that includes banner content alignment and spec component gap styles. This variant aligns image items to the bottom and applies a 16:9 aspect ratio.

File: styles/components/_category.scss + _banner.scss + _spec.scss

.category__box {
  position: relative;
  align-items: center;
  width: 100%;
  z-index: 1;
  padding: 15px 20px;
  background: $color__bg-dark;
  transition: $ease;

  &:hover,
  &:focus {
    .category__figure {
      opacity: 0.5;
    }

    .category__title {
      color: $color__primary;
    }
  }

  .category__item--image & {
    min-height: 190px;
    aspect-ratio: 16/9;
    height: 100%;
    align-items: end;
  }
}

.banner__content {
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;

  @include media($medium) {
    flex-direction: row;
    justify-content: space-between;
    align-items: end;
  }
}

.spec {
  margin: 0 0 15px 0;
  gap: 10px;

  @include media($medium) {
    gap: 10px 20px;
  }
}

7. Poptávka Form — Mobile Checkbox

Styles the form checkbox wrapper for the inquiry (poptávka) form. Includes the checkmark indicator using a pseudo element and adds vertical margins on mobile breakpoints.

File: styles/components/_message-form.scss

.message-form__checkbox-wrapper {
  display: flex;
  justify-content: flex-start;
  align-items: center;

  input:checked + .message-form__checkbox::before {
    @include pseudo();
    width: 0.8rem;
    height: 1.4rem;
    border-right: 2px solid $color__text;
    border-bottom: 2px solid $color__text;
    transform: rotate(45deg);
    top: 3px;
    bottom: 8px;
    left: 5px;
    right: 5px;
    margin: auto;
  }

  @media (max-width: $small) {
    margin-top: 10px;
    margin-bottom: 10px;
  }
}

8. Contact Card — No-Photo Design

Per the task description: if there is no photo available for a contact person, no placeholder icon should be shown. The card should display only the contact details (name, phone, email) without any image element. A recolored icon is not an acceptable fallback.

Expected result:

Contact name rendered as bold heading.
Phone number with icon.
Working hours in lighter gray text (13px, block).
Email address with icon.
No avatar/photo element rendered in the DOM when no image is set.

9. Content Links — Primary Color Styling

Adds color styling to all links (<a> tags) inside the .content rich-text area. Links display in the primary brand color with an underline, and transition to the primary light color on hover/focus.

File: resources/sass/front/components/content.scss

.content a {
  text-decoration: underline;
  color: $color__primary;
  transition: $ease;

  &:hover, &:focus {
    color: $color__primary_light;
  }
}

Variables used: $color__primary — #FAB702 (default link color), $color__primary_light — #FAB207 (hover/focus color).

Note: Currently $color__primary and $color__primary_light are nearly identical hex values. If a more visible hover effect is desired, update $color__primary_light in resources/sass/front/_variable.scss to a noticeably lighter value (e.g. #FCC93D).

Summary of Files Modified

File Changes
_contact-card.scss .contact-card__hours — font, color, display
_menu.scss .menu__item-button — padding & visibility per breakpoint
_author.scss .author__role, .author — layout, hover, mobile margin
_category.scss .category__box — two variants (standard & image with banner)
_message-form.scss .message-form__checkbox-wrapper — flex & mobile margins
_banner.scss .banner__content — flex layout & responsive alignment
_spec.scss .spec — gap values for medium breakpoint
content.scss .content a — primary color, underline, hover transition