Брендбук

Single source of truth for designers, developers, and AI contributors. This document describes the existing design system.

1. Brand

Positioning

Estismail is infrastructure for business communications. The brand positions itself as a reliable, long-standing technology partner — not a flashy startup.

Brand Philosophy

  • Professional and trustworthy
  • Technical but approachable
  • Focused on business outcomes (connecting businesses with customers)
  • Established (since 2013)

Mission

Build and operate infrastructure that helps companies connect, communicate, and grow.

Tone of Voice

  • Confident — speaks with authority, not uncertainty
  • Concise — no filler words, no marketing fluff
  • Professional — business-appropriate, not casual
  • Direct — states facts and value clearly

Key Messaging

  • Infrastructure and reliability
  • Business communications expertise
  • Long-term partnership (since 2013)
  • Connecting businesses with customers

2. Logo

Usage

  • Logo file: /assets/images/logo/39х39.png
  • Displayed in the header navbar as the brand mark
  • Three variants loaded: default-logo, alt-logo, mobile-logo (same file currently)

Clear Space

  • Navbar brand padding: 14px top/bottom
  • Logo max-height: 39px

Minimum Size

  • Logo renders at 39×39px
  • Should not be displayed smaller than 27px

3. Colors

CSS Variables (Estismail)

:root {
    --alt-font: 'Plus Jakarta Sans', sans-serif;
    --primary-font: 'Golos Text', sans-serif;
    --dark-gray: #15161d;
    --dark-slate-blue: #1e1e28;
    --medium-gray: #7a7a83;
    --light-medium-gray: #f0f2f8;
    --very-light-gray: #f4f5fa;
    --red: #e75050;
    --light-red: #ffeded;
    --green: #1b855d;
    --crusoe-green: #dbf2e7;
}

Primary Colors

TokenHEXUsage
--dark-gray#15161dPrimary text, headings, hero title
--medium-gray#7a7a83Body text, secondary content

Background Colors

TokenHEXUsage
--very-light-gray#f4f5faPage backgrounds
--light-medium-gray#f0f2f8Section backgrounds
--white#ffffffCard backgrounds, header

Accent Colors

TokenHEXUsage
--green#1b855dSuccess states
--crusoe-green#dbf2e7Success backgrounds
--red#e75050Error states, alerts
--light-red#ffededError backgrounds

Hero Background

.estismail-hero {
    background:
        radial-gradient(circle at 50% 45%, rgba(255,255,255,.70) 0%, rgba(255,255,255,.24) 35%, transparent 65%),
        linear-gradient(135deg, #dde0e3 0%, #d3d6da 50%, #c9ced4 100%);
}

Signal / Accent Glow

ElementColor
Signal dot#ffffff with glow rgba(255,255,255,.9)
Status dot (hero)--dark-gray (#15161d)
Accent green glow#58DDBA

4. Typography

Font Families

TokenFamilyUsage
--primary-font'Golos Text', sans-serifBody text (default)
--alt-font'Plus Jakarta Sans', sans-serifHeadings, buttons, labels
--font-latin'Archivo', sans-serifLatin-script body (en, es, pt)
--font-cyrillic'Golos Text', sans-serifCyrillic body (ru, ua, kz)

Font Weights

WeightValueUsage
Light100Nav links, button labels
Regular400Body text
Medium500Button text, labels
Semibold600Emphasis, status text
Bold700Strong emphasis

Heading Sizes

LevelSizeLine Height
h14.375rem (70px)4.375rem
h23.438rem (55px)3.438rem
h32.813rem (45px)3.125rem
h42.375rem (38px)2.7rem
h52rem (32px)2.2rem
h61.75rem (28px)1.95rem

Body Text

body {
    font-size: 16px;
    line-height: 25px;
    font-weight: 400;
    color: var(--medium-gray);
}

5. Layout

Container

.container { max-width: 1220px; } /* at ≥1400px */
.container-fluid { width: 100%; padding: 0 15px; }

Grid

Bootstrap 5 grid with 12 columns. Custom gutter classes:

ClassGutter
.g-00px
.gutter-very-small5px
.gutter-small10px
Default15px

Section Spacing

BreakpointDefault.half-section.big-section
≥1601px110px70px130px
≤1600px90px70px120px
≤991px75px50px95px
≤767px50px40px50px

Breakpoints

NameWidthPrefix
xs<576pxsm-
sm≥576pxsm-
md≥768pxmd-
lg≥992pxlg-
xl≥1200pxxl-
xxl≥1400pxxxl-

6. Components

Header

  • Fixed/floating navbar with rounded corners (border-radius-50px)
  • Semi-transparent white background: rgba(255,255,255,.5) with backdrop-filter: blur(10px)
  • Box shadow bottom: 0 10px 20px rgba(0, 0, 0, 0.08)
  • Logo: 39×39px
  • Nav links: font-weight: 100, font-size: 16px
  • Dropdown menus: background #eff0f2, border-radius-15px

Buttons

.btn {
    display: inline-block;
    border: 2px solid transparent;
    font-family: var(--alt-font);
    font-weight: 500;
    transition: all 300ms ease-in-out;
}

Sizes

SizeFont SizePadding
.btn-very-small11px10px 20px
.btn-small12px13px 26px
.btn-medium13px16px 30px
.btn-large14px18px 34px
.btn-extra-large16px24px 46px

Color Variants

ClassBackgroundHover
.btn-dark-grayvar(--dark-gray)Transparent + border
.btn-blackvar(--black)Transparent + border
.btn-whitevar(--white)Transparent + border
.btn-transparent-whiteTransparentWhite fill

Status Dot

.status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--dark-gray);
    margin-right: 18px;
}

Forms

input, select, textarea, .form-control {
    padding: 12px 25px;
    font-size: 16px;
    border: 1px solid var(--extra-medium-gray);
    color: var(--medium-gray);
    transition: 0.3s;
}
input:focus { border: 1px solid #c2c2c2; box-shadow: none; }

Box Shadows

ClassValue
.box-shadow0 0 10px rgba(0,0,0,.08)
.box-shadow-small0 0 15px rgba(0,0,0,.08)
.box-shadow-medium0 0 20px rgba(0,0,0,.08)
.box-shadow-medium-bottom0 10px 20px rgba(0,0,0,.08)
.box-shadow-large0 0 25px rgba(0,0,0,.08)
.box-shadow-extra-large0 0 30px rgba(0,0,0,.08)

Border Radius

Utility classes: .border-radius-0px through .border-radius-100px

7. Visual Style

Backgrounds

  • Hero: Radial + linear gradient (light gray tones)
  • Dropdown menus: #eff0f2
  • Header: Semi-transparent white with blur
  • Sections: White or --very-light-gray

Shadows

  • Header: box-shadow-medium-bottom
  • Cards: box-shadow to box-shadow-quadruple-large
  • Hover lift: translate3d(0, -3px, 0)

Blur Effects

  • Header background: backdrop-filter: blur(10px)
  • Hero glow elements: filter: blur(70px)

Animations

  • Signal dot: requestAnimationFrame loop, position + opacity + scale
  • Button transitions: 300ms ease-in-out
  • Box shadow transitions: 350ms cubic-bezier(0.37, 0, 0.63, 1)

8. Design Principles

Minimalism

  • Clean layouts with generous whitespace
  • No decorative elements without purpose
  • Subtle gradients and glows, never loud

Consistency

  • Unified color palette across all pages
  • Same typography scale everywhere
  • Reusable utility classes

Spacious Layouts

  • Section padding: 110px default (responsive down to 50px)
  • Container max-width: 1220px
  • Generous vertical rhythm

Clean Typography

  • Two font families: one for Latin, one for Cyrillic
  • Clear hierarchy: large headings, readable body text
  • Negative letter-spacing on display headings

9. Writing Guidelines

Heading Style

  • Sentence case for headings
  • No trailing periods on headings
  • Bold or semibold weight

Button Text

  • No text-transform (custom override disables uppercase)
  • Short, action-oriented ("Get started")
  • No trailing punctuation

Tone Rules

  • No exclamation marks in UI text
  • No emoji in content
  • No superlatives without evidence
  • Use "we" for company actions, "you" for user actions

10. CSS Architecture

File Structure

assets/css/
├── vendors.min.css      # Bootstrap 5 + vendor CSS
├── style.css            # Crafto template base styles
├── responsive.css       # Responsive overrides
├── icon.min.css         # Icon font styles
├── fonts.css            # @font-face declarations
├── custom.css           # Estismail-specific overrides
├── flag-icons/          # Country flag icons CSS
└── flags/               # Flag SVG files

Loading Order

vendors.min.css → icon.min.css → style.css → responsive.css → flag-icons.min.css → fonts.css → custom.css

custom.css loads last and overrides framework defaults.

Naming Conventions

  • Utility classes: Bootstrap-style (.fs-16, .mb-30px, .text-dark-gray)
  • Component classes: Kebab-case (.hero-title, .status-dot)
  • Responsive prefixes: sm-, md-, lg-, xl-, xxl-

11. Supported Languages

CodeLanguageFont Family
ruРусскийGolos Text
enEnglishArchivo
uaУкраїнськаGolos Text
kzҚазақшаGolos Text
esEspañolArchivo
ptPortuguêsArchivo

Default language: ru (no URL prefix). Other languages: /{lang}/ prefix.