Design Specification — Hamkorbank — Официальный сайт банка в Узбекистане, кредиты, карты и микрозаймы
| Field | Value |
| Site / Project | https://hamkorbank.uz/ |
| Analyzed on | 2026-08-05 |
| Analysis mode | Automated code extraction (no AI) |
Overview
This design system was extracted programmatically from the source page. It is built on a light canvas (#FFFFFF), ink text (#000000), a vivid accent (#003EFF). Display headings use a distinct face (Icons,serif!important) over the body stack (Golos Text,sans-serif). Detected font weights: 400, 500, 600, 700. Detected style signatures: technical / mono accents.
Logo asset(s): https://hamkorbank.uz/assets/images/static/logo.svg
Color System
Detected palette (by frequency)
| Hex | RGB | HSL | Count |
#FFFFFF | 255, 255, 255 | 0° 0% 100% | 26 |
#000000 | 0, 0, 0 | 0° 0% 0% | 12 |
#333333 | 51, 51, 51 | 0° 0% 20% | 7 |
#AAAAAA | 170, 170, 170 | 0° 0% 67% | 6 |
#222222 | 34, 34, 34 | 0° 0% 13% | 5 |
#212121 | 33, 33, 33 | 0° 0% 13% | 5 |
#CCCCCC | 204, 204, 204 | 0° 0% 80% | 4 |
#999999 | 153, 153, 153 | 0° 0% 60% | 4 |
#DDDDDD | 221, 221, 221 | 0° 0% 87% | 4 |
#666666 | 102, 102, 102 | 0° 0% 40% | 3 |
#202020 | 32, 32, 32 | 0° 0% 13% | 3 |
#B2DED2 | 178, 222, 210 | 164° 40% 78% | 3 |
#5C5C6A | 92, 92, 106 | 240° 7% 39% | 3 |
#3898EC | 56, 152, 236 | 208° 83% 57% | 2 |
#C8C8C8 | 200, 200, 200 | 0° 0% 78% | 2 |
#C5C5C5 | 197, 197, 197 | 0° 0% 77% | 2 |
#454545 | 69, 69, 69 | 0° 0% 27% | 2 |
#2B2B2B | 43, 43, 43 | 0° 0% 17% | 2 |
#003EFF | 0, 62, 255 | 225° 100% 50% | 2 |
#DAD55E | 218, 213, 94 | 58° 63% 61% | 2 |
Assigned roles
Roles are taken from the page's own semantic CSS custom properties when present, otherwise inferred from usage frequency + luminance/saturation.
| Token | Hex | RGB | HSL |
--color-primary | #333333 | 51, 51, 51 | 0° 0% 20% |
--color-accent | #003EFF | 0, 62, 255 | 225° 100% 50% |
--color-background | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-surface | #FFFA90 | 255, 250, 144 | 57° 100% 78% |
--color-text-primary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-secondary | #000000 | 0, 0, 0 | 0° 0% 0% |
--color-text-secondary | #333333 | 51, 51, 51 | 0° 0% 20% |
--color-border | #AAAAAA | 170, 170, 170 | 0° 0% 67% |
--color-on-primary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-secondary | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
--color-on-accent | #FFFFFF | 255, 255, 255 | 0° 0% 100% |
Surface ramp (derived from detected light neutrals)
| Token | Hex |
--color-surface-container-lowest | #FFFFFF |
--color-surface-container-low | #F6F6F6 |
--color-surface-container | #F5F5F5 |
--color-surface-container-high | #EFEFEF |
--color-surface-container-highest | #EBEFF4 |
Gradients
linear-gradient(262.46deg, #B2DED2 49.62%, #8DCEBC 105.8%), linear-gradient(94.43deg, rgba(178, 222, 210, .2) -4.63%, rgba(105, 191, 167, .2) 102.04%)
linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)
Typography
Primary typeface: Golos Text — stack: Golos Text,sans-serif
Display / heading typeface: Icons,serif!important (used for large headings; body uses the primary stack)
Font stacks (most used first)
Golos Text,sans-serif
Montserrat,sans-serif
Arial,Helvetica,sans-serif
Verdana,Arial,sans-serif
Golos Text
Montserrat
Icons
Icons,serif!important
sans-serif
monospace,monospace
Derived type scale
| Token | Size |
| display | 51.2px |
| headline-lg | 38px |
| headline-md | 25.6px |
| body-lg | 18px |
| body-md | 16px |
| label-md | 14px |
| label-sm | 12px |
Font sizes (by frequency)
| Size | Count |
| 1.6rem | 6 |
| 1em | 5 |
| 2rem | 4 |
| 14px | 3 |
| 10px | 3 |
| 18px | 2 |
| 8.5px | 2 |
| 9px | 2 |
| 2em | 1 |
| 38px | 1 |
| 32px | 1 |
| 24px | 1 |
| 12px | 1 |
| .1px | 1 |
| 1.1em | 1 |
| 9.5px | 1 |
| 7.5px | 1 |
| 6px | 1 |
| 3.2rem | 1 |
| 2.8rem | 1 |
Weights in use: 400, 500, 600, 700
Line heights (by frequency)
| Value | Count |
| 1.2 | 5 |
| 1.25 | 4 |
| 1 | 3 |
| 1.143 | 3 |
| 1.14286 | 3 |
| 1.33333 | 2 |
| 1.333 | 2 |
| 0 | 1 |
| 20px | 1 |
| 44px | 1 |
Letter spacing (by frequency)
Spacing
Derived spacing scale
| Token | Value |
| xs | 3.2px |
| sm | 8px |
| md | 16px |
| lg | 32px |
Raw values (by frequency)
| Value | Count |
| 1.6rem | 6 |
| 1.2rem | 5 |
| .5em | 4 |
| .4rem | 4 |
| 1em | 3 |
| .2em | 3 |
| .8rem | 3 |
| 2rem | 3 |
| 9px | 2 |
| 8px | 2 |
| .4em | 2 |
| 1px | 2 |
| 2.8rem | 2 |
| 1.8rem | 2 |
| .7rem | 2 |
| .6rem | 2 |
Borders & Radius
Derived radius tokens
| Token | Value |
| sm | 1.92px |
| md | 7px |
| lg | 38.4px |
| pill | 50% |
Raw values (resolved, by frequency)
| Radius | Count |
.8rem | 7 |
0 | 3 |
1.6rem | 3 |
50% | 2 |
.12em | 1 |
7px | 1 |
.6rem | 1 |
1rem | 1 |
1.2rem | 1 |
2rem | 1 |
2.4rem | 1 |
4rem | 1 |
Shadows
Derived elevation
| Token | Value |
| sm | 0 0 5px #666 |
| md | 0 .3rem 1rem #5c5c6a1c,-.2rem 1.4rem 3.7rem #5c5c6a12,-.4rem 3.6rem 11.5rem #5c5c6a0a |
| lg | -8px -8px 8px #aaa |
All detected shadows
0 0 5px #666
-8px -8px 8px #aaa
inset 1px 1px 1px #ccc
0 0 #0000,0 0 #0000,0 0px 20px 0px rgba(0, 0, 0, .16)
0 .3rem 1rem #5c5c6a1c,-.2rem 1.4rem 3.7rem #5c5c6a12,-.4rem 3.6rem 11.5rem #5c5c6a0a
Layout
Container max-width: 768px
Grid columns (largest detected grid): 6
Breakpoints
- 479px
- 640px
- 767px
- 768px
- 991px
- 1100px
- 1280px
- 1440px
Animation & Motion
Transitions
.3s opacity
opacity .2s .5s linear
background-color .3s ease,opacity .3s ease
height .4s
transform .4s,opacity .4s
transform .4s
none
opacity .3s
all .25s
.4s ease
all .3s ease
opacity .3s ease,visibility .3s ease,transform .3s ease
Easing curves
var(--swiper-wrapper-transition-timing-function, initial)
ease-out,ease-out
cubic-bezier(0,0,.2,1)
Keyframes
@keyframes swiper-preloader-spin { 0%{transform:rotate(0)}to{transform:rotate(360deg)} }
@keyframes spin { 0%{transform:rotate(0)}to{transform:rotate(360deg)} }
@keyframes remodal-opening-keyframes { 0%{-webkit-transform:translateY(2rem);transform:translateY(2rem);opacity:0}to{-webkit-transform:translateY(0rem);transform:translateY(0);opacity:1} }
@keyframes remodal-closing-keyframes { 0%{-webkit-transform:translateY(0rem);transform:translateY(0);opacity:1}to{-webkit-transform:translateY(2rem);transform:translateY(2rem);opacity:0} }
@keyframes remodal-overlay-opening-keyframes { 0%{opacity:0}to{opacity:1} }
@keyframes remodal-overlay-closing-keyframes { 0%{opacity:1}to{opacity:0} }
@keyframes loadingAnimation { 0%,to{transform:scale(1)}50%{transform:scale(1.5)} }
@keyframes donutAppear { to{opacity:1;transform:scale(1) rotate(0)} }
@keyframes barGrow { to{transform:scaleY(1)} }
@keyframes shake { 0%,to{transform:translate(0)}12.5%{transform:translate(-.1rem)}25%{transform:translate(.1rem)}37.5%{transform:translate(-.1rem)}50%{transform:translate(.1rem)}62.5%{transform:translate(-.1rem)}75%{transform:translate(.1rem)}87.5%{transform:translate(-.05rem)} }
@keyframes mmfadeIn { 0%{opacity:0}to{opacity:1} }
@keyframes mmfadeOut { 0%{opacity:1}to{opacity:0} }
@keyframes mmslideIn { 0%{transform:translateY(3rem);opacity:0}to{transform:translateY(0);opacity:1} }
@keyframes mmslideOut { 0%{transform:translateY(0);opacity:1}to{transform:translateY(3rem);opacity:0} }
@keyframes loading { 0%{transform:translate(-100%)}50%{transform:translate(100%)}to{transform:translate(100%)} }
Animations
shake .5s ease-in-out
mmfadeIn .3s cubic-bezier(0,0,.2,1)
mmslideIn .3s cubic-bezier(0,0,.2,1)
mmfadeOut .3s cubic-bezier(0,0,.2,1)
mmslideOut .3s cubic-bezier(0,0,.2,1)
loading 1.5s infinite
Components
Extracted from the page's own interactive elements (classes → resolved CSS values).
button-primary — sample text: “Онлайн-кредит Получите деньги за 1 минуту”
| Property | Value |
| backgroundColor | #FFFFFF |
| textColor | #000000 |
| padding | 64px 48px |
CTA labels found on page
- Онлайн-заявки
- Версия для слабовидящих
- Отделения и банкоматы
- Oʻzb
- Для бизнеса
- Акционерам и инвесторам
Source Design Tokens (CSS custom properties)
:root {
--remSize: 10;
--tabbar-height: 0px;
--cookie-height: 0px;
--lc-right-bottom-offset: 0px;
--lc-center-bottom-offset: 0px;
--sizeFactor: 1;
--fontSizeH1: calc(var(--sizeFactor) * 4rem);
--fontSizeH2: calc(var(--sizeFactor) * 3.2rem);
--fontSizeH3: calc(var(--sizeFactor) * 2.4rem);
--fontSizeH4: calc(var(--sizeFactor) * 2rem);
--fontSizeL: calc(var(--sizeFactor) * 1.8rem);
--fontSizeM: calc(var(--sizeFactor) * 1.6rem);
--fontSizeS: calc(var(--sizeFactor) * 1.4rem);
--fontSizeXS: calc(var(--sizeFactor) * 1.4rem);
--fontSizeXXS: calc(var(--sizeFactor) * 1.2rem);
--fontSize3XS: calc(var(--sizeFactor) * 1rem);
--bg--gray-light: #f0f2f5;
--bg--green-dark: #D4E9EA;
--text--main: #202020;
--text--secondary: #7c858d;
--bg--white: #fff;
--main--green-common: #1cca59;
--main--gray-common: #5e666e;
--bg--blue-medium: #dce2eb;
--main--dark-green: #12873c;
--main--green-light: #A6D9CB;
--main--green-secondary: #568c96;
--main--green-medium: #54a38f;
--main--green-dark: #2f6c5c;
--main--blue-secondary: #ebeff4;
--main--dark-gray: #464c53;
--bg--blue-light: #e5eaf0;
--bg--green-light: #ecf9f5;
--bg--green-medium: #b2ded2;
--text--disabled: #a8aeb3;
--main--red: #ed4949;
--label--green: #dcf9f9;
--label--blue: #dceff9;
--other--gray-light: #ebebeb;
--other--gray: #c3cdd2;
--main--red-light: #FEE2E2;
--text--red: #dc2626;
--bg--red: #dc2626;
--bg--gradient--summer--green: linear-gradient(262.46deg, #B2DED2 49.62%, #8DCEBC 105.8%), linear-gradient(94.43deg, rgba(178, 222, 210, .2) -4.63%, rgba(105, 191, 167, .2) 102.04%);
--button: hover,.is--touch .button:hover;
--primary: hover;
--button-sec: hover,.is--touch .button.is--secondary:hover;
--flat: hover;
--text-black: hover;
--small: hover,.is--touch .button.is--flat-gray:hover,.is--touch .navbar__inner-link:hover,.is--touch .button.is--flat.is--flat-primary:hover,.is--touch .text-black.hover--text-green:hover;
--bg-green: hover;
--text-white: hover;
--secondary: active;
--lineHeight: 1.25;
--wf-translate-x: 0;
--wf-translate-y: 0;
--wf-rotate: 0;
--wf-skew-x: 0;
--wf-skew-y: 0;
--wf-scale-x: 1;
}
Do's and Don'ts
Do
- Do reserve the accent
#003EFF for interactive highlights and key moments — it is used sparingly on the source page.
- Do keep the canvas at
#FFFFFF; surfaces should stay within the detected neutral ramp.
- Do set large headings in
Icons,serif!important with tight tracking (-.03em), and body copy in the primary stack.
- Do stick to the detected font weight(s): 400, 500, 600, 700.
Don't
- Don't introduce colors outside the detected palette — every hue above was found in the source.
Design Tokens (copy-paste)
:root {
--color-primary: #333333;
--color-accent: #003EFF;
--color-background: #FFFFFF;
--color-surface: #FFFA90;
--color-text-primary: #000000;
--color-secondary: #000000;
--color-text-secondary: #333333;
--color-border: #AAAAAA;
--color-on-primary: #FFFFFF;
--color-on-secondary: #FFFFFF;
--color-on-accent: #FFFFFF;
--color-surface-container-lowest: #FFFFFF;
--color-surface-container-low: #F6F6F6;
--color-surface-container: #F5F5F5;
--color-surface-container-high: #EFEFEF;
--color-surface-container-highest: #EBEFF4;
--font-sans: Golos Text,sans-serif;
--font-size-display: 51.2px;
--font-size-headline-lg: 38px;
--font-size-headline-md: 25.6px;
--font-size-body-lg: 18px;
--font-size-body-md: 16px;
--font-size-label-md: 14px;
--font-size-label-sm: 12px;
--radius-sm: 1.92px;
--radius-md: 7px;
--radius-lg: 38.4px;
--radius-pill: 50%;
--shadow-sm: 0 0 5px #666;
--shadow-md: 0 .3rem 1rem #5c5c6a1c,-.2rem 1.4rem 3.7rem #5c5c6a12,-.4rem 3.6rem 11.5rem #5c5c6a0a;
--shadow-lg: -8px -8px 8px #aaa;
--space-xs: 3.2px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 32px;
--font-display: Icons,serif!important;
--tracking-display: -.03em;
--container-max: 768px;
}