From 8653542a0728900e55150f6c8e9ea97c804218de Mon Sep 17 00:00:00 2001 From: Aliaksei Karzhou Date: Sun, 30 Jun 2024 00:11:55 +0300 Subject: [PATCH] feat: added header --- .gitignore | 133 +++++++++++++++++++++++++++ README.md | 35 ++++++- assets/css/gp-style-core.css | 11 +++ assets/css/gp-style-desktop.css | 4 + assets/css/gp-style-mobile.css | 5 + assets/css/gp-style-tablet.css | 5 + assets/css/gp-style-ultra.css | 2 + assets/css/index.css | 157 ++++++++++++++++++++++++++++++++ assets/img/favicon.ico | Bin 0 -> 194719 bytes assets/img/icons/phone.svg | 12 +++ assets/img/icons/telegram.svg | 10 ++ assets/img/icons/vk.svg | 10 ++ assets/img/icons/whatsapp.svg | 3 + assets/img/icons/youtube.svg | 10 ++ assets/img/logo.svg | 5 + assets/js/main.js | 0 assets/scss/_b-mixins.scss | 29 ++++++ assets/scss/_b-reset.scss | 44 +++++++++ assets/scss/_b-vars.scss | 9 ++ assets/scss/_l-footer.scss | 2 + assets/scss/_l-header.scss | 28 ++++++ assets/scss/_l-main.scss | 2 + assets/scss/_m-button.scss | 15 +++ assets/scss/_m-container.scss | 7 ++ assets/scss/_m-logo.scss | 42 +++++++++ assets/scss/_m-social-link.scss | 35 +++++++ assets/scss/index.scss | 18 ++++ index.html | 49 ++++++++++ ui_kit.html | 37 ++++++++ 29 files changed, 718 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 assets/css/gp-style-core.css create mode 100644 assets/css/gp-style-desktop.css create mode 100644 assets/css/gp-style-mobile.css create mode 100644 assets/css/gp-style-tablet.css create mode 100644 assets/css/gp-style-ultra.css create mode 100644 assets/css/index.css create mode 100644 assets/img/favicon.ico create mode 100644 assets/img/icons/phone.svg create mode 100644 assets/img/icons/telegram.svg create mode 100644 assets/img/icons/vk.svg create mode 100644 assets/img/icons/whatsapp.svg create mode 100644 assets/img/icons/youtube.svg create mode 100644 assets/img/logo.svg create mode 100644 assets/js/main.js create mode 100644 assets/scss/_b-mixins.scss create mode 100644 assets/scss/_b-reset.scss create mode 100644 assets/scss/_b-vars.scss create mode 100644 assets/scss/_l-footer.scss create mode 100644 assets/scss/_l-header.scss create mode 100644 assets/scss/_l-main.scss create mode 100644 assets/scss/_m-button.scss create mode 100644 assets/scss/_m-container.scss create mode 100644 assets/scss/_m-logo.scss create mode 100644 assets/scss/_m-social-link.scss create mode 100644 assets/scss/index.scss create mode 100644 index.html create mode 100644 ui_kit.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eabfe7e --- /dev/null +++ b/.gitignore @@ -0,0 +1,133 @@ +# Logs +logs +*.log + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# Nuxt generate +dist + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless + +# IDE +.idea +.vscode +config.js +/yarn-error.log +package-lock.json +jsconfig.json + + +# GP | Files ext +*.sql +*.tgz +*.tar.gz +*.tar +*.rar +*.zip +*.wav +*.flv +*.db +*.psd +*.pdf +*.doc +*.docx +*.txt +*.text +*.log +*.config +*.xml +*.tbk +*.csv +*.json + +# GP | Dirs & files +/bower_components/ +/node_modules/ +/nbproject/ +/cache/ +.cache/ +/phpMyAdmin-* +/timthumb_cache/ +/webstat/ +/.idea/ +/.csscomb.json +/.htaccess +/sitemap*.xml +/sftp-config.json +/robots.txt +/bower.json +/.bowerrc +/backup_rsync/ +.bash_history +.idea/ +.fleet/ +.DS_Store +.config/ +.bash* +.vim* +test*.php +gp-test*.php \ No newline at end of file diff --git a/README.md b/README.md index 678af0c..8b1d9c2 100644 --- a/README.md +++ b/README.md @@ -1 +1,34 @@ -# triumph-clinic \ No newline at end of file +# Требования к верстке + + +## С точки зрения веб-разработки: +* верстаем на чистом HTML/CSS с использованием flex и grid (без подключение библиотек типа bootstrap и т.п.) +* при именовании блоков используем методологию **БЭМ в стиле "Two Dashes"**: + `block-name__elem-name--mod-name--mod-val` + + имена записываются латиницей в нижнем регистре + + для разделения слов в именах БЭМ-сущностей используется дефис (-) + + имя элемента отделяется от имени блока двумя подчеркиваниями (__) + + модификаторы отделяются от имения блока или элемента двумя дефисами (--) + + значение модификатора отделяется от его имени двумя дефисами (--) +* из конечного HTML-файла убрать все комментарии, если такие имеются + + + +## С точки зрения SEO: +* все теги использовать строго по назначению! Текстовые (strong, b, i, em, h1-h6… p) используем только в текстовых блоках и заголовках. Для дизайна используем div и span. Например не нужно втыкать в подвал, шапку или формы захвата h4 или закрывать просто крупный текст, который не является заголовком в h2. +* на странице должен быть только один заголовок первого уровня (h1) +* должны присутствовать все основные теги и атрибуты — html, head, body, title, description, lang=ru, content=html, charset=utf8 +* для кнопок, нажатие на которые не требует редиректа используем тег \, а не \ +* для \ самостоятельно проставляем атрибут alt="", со значением описывающим того что изображено на картинке + + +## Оптимальный порядок действий +1. Сначала определить CSS-переменные для основных цветов/градиентов, начертаний шрифтов (толщина, размер, модификация, межтрочный интервал) и занести в специально подгтовленный CSS-файл style-core.css +2. Все шрифты выкачать и сохранить локально в директорию /assets/fonts/ и подключить их в файле style-core.css +3. Далее начинать стоит с верстки UI kit (должен быть предоставлен в макете дизайнером), для того чтобы переиспользовать готовые элементы по ходу верстки макетов. Для удобства подготовлен файл "ui_kit.html" +3. Как UI kit будет готов, можно смело переходить к верстке основных листов макета "*.html" + + +### Примечания + +Для работы с Figma рекомендуем использовать плагин ["Inspect Styles"](https://www.figma.com/community/plugin/1254262542670221199) для инспевтирования CSS-свойсв. \ No newline at end of file diff --git a/assets/css/gp-style-core.css b/assets/css/gp-style-core.css new file mode 100644 index 0000000..17b7034 --- /dev/null +++ b/assets/css/gp-style-core.css @@ -0,0 +1,11 @@ +/* + +ШАБЛОН использования глобальных переменных: + +:root { + --main-text: #e1667c; + --main-color: #8da6cb; + --font-family: "Craftwork Grotesk", sans-serif; +} + +*/ diff --git a/assets/css/gp-style-desktop.css b/assets/css/gp-style-desktop.css new file mode 100644 index 0000000..1c11a4e --- /dev/null +++ b/assets/css/gp-style-desktop.css @@ -0,0 +1,4 @@ +/* Стили для лептопов */ +@media only screen and (max-width: 1720px) { + +} \ No newline at end of file diff --git a/assets/css/gp-style-mobile.css b/assets/css/gp-style-mobile.css new file mode 100644 index 0000000..ca8d1c6 --- /dev/null +++ b/assets/css/gp-style-mobile.css @@ -0,0 +1,5 @@ +/* Стили для мобильных устройств */ +@media only screen and (max-width: 480px) { + + +} \ No newline at end of file diff --git a/assets/css/gp-style-tablet.css b/assets/css/gp-style-tablet.css new file mode 100644 index 0000000..b6835e3 --- /dev/null +++ b/assets/css/gp-style-tablet.css @@ -0,0 +1,5 @@ +/* Стили для планшетов */ +@media only screen and (max-width: 1024px) { + + +} \ No newline at end of file diff --git a/assets/css/gp-style-ultra.css b/assets/css/gp-style-ultra.css new file mode 100644 index 0000000..60aa1f7 --- /dev/null +++ b/assets/css/gp-style-ultra.css @@ -0,0 +1,2 @@ +/* Стили для ультрашироких экранов */ +@media only screen and (min-width: 1720px) {} \ No newline at end of file diff --git a/assets/css/index.css b/assets/css/index.css new file mode 100644 index 0000000..66735ad --- /dev/null +++ b/assets/css/index.css @@ -0,0 +1,157 @@ +html { + font-size: 16px; + font-family: "Montserrat", sans-serif; + font-weight: 400; + font-style: normal; + scroll-behavior: smooth; +} + +body { + position: relative; + margin: 0; + overflow-y: scroll; + color: #2d2d2d; + background-color: #ededed; +} + +a, +button, +input, +textarea { + font-family: "Montserrat", sans-serif; + text-decoration: none; +} + +a { + transition: all ease-in-out 0.1s; +} +a:hover { + color: #609eff; +} +a:active { + color: #3081ff; +} + +figure { + margin: 0; +} + +img { + max-width: 100%; + height: auto; +} + +.container { + max-width: 1236px; + width: 100%; + margin: 0 auto; + padding: 0 15px; + box-sizing: border-box; +} + +.logo__link { + display: flex; + align-items: center; + gap: 22px; +} +.logo__figure { + display: flex; + align-items: center; + justify-content: center; +} +.logo__figure-image { + display: block; + max-width: 100%; + width: 35px; + height: auto; +} +.logo__text { + display: flex; + flex-direction: column; + gap: 5px; +} +.logo__text-name { + font-weight: 600; + font-size: 26px; + letter-spacing: 0.04em; + text-transform: uppercase; + color: #2d2d2d; +} +.logo__text-slogan { + font-weight: 400; + font-size: 9px; + letter-spacing: 0.05em; + text-transform: uppercase; + color: #878787; +} + +.social-link { + display: inline-block; + height: 29px; + width: 29px; + border-radius: 32px; + background-position: center; + background-repeat: no-repeat; +} +.social-link--whatsapp { + background-image: url(../img/icons/whatsapp.svg); + background-color: #2aa81a; +} +.social-link--whatsapp:active { + background-color: #42d030; +} +.social-link--tg { + background-image: url(../img/icons/telegram.svg); + background-color: #178ec9; +} +.social-link--tg:active { + background-color: #45b3ea; +} +.social-link--phone { + width: auto; + height: auto; + margin-left: 17px; + font-weight: 600; + font-size: 24px; + color: #2d2d2d; +} + +.button { + border-radius: 100px; + background-color: #ffffff; + transition: all ease-in-out 0.1s; + cursor: pointer; +} +.button--order { + display: inline-block; + padding: 14px 29px; + font-weight: 500; + font-size: 14px; + letter-spacing: 0.01em; + border: 1px solid #cacaca; +} + +.header { + padding: 26px 0 29px; +} +.header .container { + display: flex; + align-items: center; + justify-content: space-between; + gap: 24px; +} +.header__nav { + display: flex; + align-items: center; + gap: 36px; + padding: 0 30px 0 35px; +} +.header__nav-link { + font-weight: 400; + font-size: 15px; +} +.header__social { + display: flex; + align-items: center; + gap: 17px; +} \ No newline at end of file diff --git a/assets/img/favicon.ico b/assets/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5517fde5500a48190ef78dc3da835d3fc9c87274 GIT binary patch literal 194719 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⁢Uld%&#?wP`l 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 literal 0 HcmV?d00001 diff --git a/assets/img/icons/phone.svg b/assets/img/icons/phone.svg new file mode 100644 index 0000000..90d8501 --- /dev/null +++ b/assets/img/icons/phone.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/assets/img/icons/telegram.svg b/assets/img/icons/telegram.svg new file mode 100644 index 0000000..beb94db --- /dev/null +++ b/assets/img/icons/telegram.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/img/icons/vk.svg b/assets/img/icons/vk.svg new file mode 100644 index 0000000..47642ff --- /dev/null +++ b/assets/img/icons/vk.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/img/icons/whatsapp.svg b/assets/img/icons/whatsapp.svg new file mode 100644 index 0000000..3cba046 --- /dev/null +++ b/assets/img/icons/whatsapp.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/img/icons/youtube.svg b/assets/img/icons/youtube.svg new file mode 100644 index 0000000..b06b196 --- /dev/null +++ b/assets/img/icons/youtube.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/img/logo.svg b/assets/img/logo.svg new file mode 100644 index 0000000..ba84a88 --- /dev/null +++ b/assets/img/logo.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..e69de29 diff --git a/assets/scss/_b-mixins.scss b/assets/scss/_b-mixins.scss new file mode 100644 index 0000000..bbc61ca --- /dev/null +++ b/assets/scss/_b-mixins.scss @@ -0,0 +1,29 @@ +@mixin desktop { + @media (max-width: 1240px) { + @content; + } +} + +@mixin laptop { + @media (max-width: 992px) { + @content; + } +} + +@mixin tablet { + @media (max-width: 768px) { + @content; + } +} + +@mixin mobile { + @media (max-width: 576px) { + @content; + } +} + +@mixin mobilesm { + @media (max-width: 400px) { + @content; + } +} diff --git a/assets/scss/_b-reset.scss b/assets/scss/_b-reset.scss new file mode 100644 index 0000000..f7363c1 --- /dev/null +++ b/assets/scss/_b-reset.scss @@ -0,0 +1,44 @@ +html { + font-size: 16px; + font-family: 'Montserrat', sans-serif; + font-weight: 400; + font-style: normal; + scroll-behavior: smooth; +} + +body { + position: relative; + margin: 0; + overflow-y: scroll; + color: $black; + background-color: $greybg; +} + +a, +button, +input, +textarea { + font-family: 'Montserrat', sans-serif; + text-decoration: none; +} + +a { + transition: all ease-in-out 0.1s; + + &:hover { + color: $blue; + } + + &:active { + color: $darkblue; + } +} + +figure { + margin: 0; +} + +img { + max-width: 100%; + height: auto; +} diff --git a/assets/scss/_b-vars.scss b/assets/scss/_b-vars.scss new file mode 100644 index 0000000..31184ad --- /dev/null +++ b/assets/scss/_b-vars.scss @@ -0,0 +1,9 @@ +// colors + +$black: #2d2d2d; +$grey: #878787; +$lightgrey: #cacaca; +$blue: #609eff; +$darkblue: #3081ff; +$greybg: #ededed; +$white: #ffffff; diff --git a/assets/scss/_l-footer.scss b/assets/scss/_l-footer.scss new file mode 100644 index 0000000..ee9fb41 --- /dev/null +++ b/assets/scss/_l-footer.scss @@ -0,0 +1,2 @@ +.footer { +} diff --git a/assets/scss/_l-header.scss b/assets/scss/_l-header.scss new file mode 100644 index 0000000..1cf76a4 --- /dev/null +++ b/assets/scss/_l-header.scss @@ -0,0 +1,28 @@ +.header { + padding: 26px 0 29px; + + & .container { + display: flex; + align-items: center; + justify-content: space-between; + gap: 24px; + } + + &__nav { + display: flex; + align-items: center; + gap: 36px; + padding: 0 30px 0 35px; + + &-link { + font-weight: 400; + font-size: 15px; + } + } + + &__social { + display: flex; + align-items: center; + gap: 17px; + } +} diff --git a/assets/scss/_l-main.scss b/assets/scss/_l-main.scss new file mode 100644 index 0000000..662ecf8 --- /dev/null +++ b/assets/scss/_l-main.scss @@ -0,0 +1,2 @@ +.main { +} diff --git a/assets/scss/_m-button.scss b/assets/scss/_m-button.scss new file mode 100644 index 0000000..189e428 --- /dev/null +++ b/assets/scss/_m-button.scss @@ -0,0 +1,15 @@ +.button { + border-radius: 100px; + background-color: $white; + transition: all ease-in-out 0.1s; + cursor: pointer; + + &--order { + display: inline-block; + padding: 14px 29px; + font-weight: 500; + font-size: 14px; + letter-spacing: 0.01em; + border: 1px solid #cacaca; + } +} diff --git a/assets/scss/_m-container.scss b/assets/scss/_m-container.scss new file mode 100644 index 0000000..d9fc9a4 --- /dev/null +++ b/assets/scss/_m-container.scss @@ -0,0 +1,7 @@ +.container { + max-width: 1236px; + width: 100%; + margin: 0 auto; + padding: 0 15px; + box-sizing: border-box; +} diff --git a/assets/scss/_m-logo.scss b/assets/scss/_m-logo.scss new file mode 100644 index 0000000..bc6e177 --- /dev/null +++ b/assets/scss/_m-logo.scss @@ -0,0 +1,42 @@ +.logo { + &__link { + display: flex; + align-items: center; + gap: 22px; + } + + &__figure { + display: flex; + align-items: center; + justify-content: center; + + &-image { + display: block; + max-width: 100%; + width: 35px; + height: auto; + } + } + + &__text { + display: flex; + flex-direction: column; + gap: 5px; + + &-name { + font-weight: 600; + font-size: 26px; + letter-spacing: 0.04em; + text-transform: uppercase; + color: $black; + } + + &-slogan { + font-weight: 400; + font-size: 9px; + letter-spacing: 0.05em; + text-transform: uppercase; + color: $grey; + } + } +} diff --git a/assets/scss/_m-social-link.scss b/assets/scss/_m-social-link.scss new file mode 100644 index 0000000..f32d879 --- /dev/null +++ b/assets/scss/_m-social-link.scss @@ -0,0 +1,35 @@ +.social-link { + display: inline-block; + height: 29px; + width: 29px; + border-radius: 32px; + background-position: center; + background-repeat: no-repeat; + + &--whatsapp { + background-image: url(../img/icons/whatsapp.svg); + background-color: #2aa81a; + + &:active { + background-color: #42d030; + } + } + + &--tg { + background-image: url(../img/icons/telegram.svg); + background-color: #178ec9; + + &:active { + background-color: #45b3ea; + } + } + + &--phone { + width: auto; + height: auto; + margin-left: 17px; + font-weight: 600; + font-size: 24px; + color: $black; + } +} diff --git a/assets/scss/index.scss b/assets/scss/index.scss new file mode 100644 index 0000000..efc8707 --- /dev/null +++ b/assets/scss/index.scss @@ -0,0 +1,18 @@ +// Base + +@import './b-vars'; +@import './b-mixins'; +@import './b-reset'; + +// Modules + +@import './m-container'; +@import './m-logo'; +@import './m-social-link'; +@import './m-button'; + +// Layouts + +@import './l-header'; +@import './l-main'; +@import './l-footer'; diff --git a/index.html b/index.html new file mode 100644 index 0000000..956cd23 --- /dev/null +++ b/index.html @@ -0,0 +1,49 @@ + + + + + + + Триумф + + + + + + +
+ +
+ + + + diff --git a/ui_kit.html b/ui_kit.html new file mode 100644 index 0000000..9ecea8f --- /dev/null +++ b/ui_kit.html @@ -0,0 +1,37 @@ + + + + + + + UI kit + + + + +
+
+
+
+ +
+
+ + \ No newline at end of file