diff --git a/angular.json b/angular.json index cd120e1..eb10364 100644 --- a/angular.json +++ b/angular.json @@ -28,11 +28,13 @@ "assets": [ { "glob": "**/*", - "input": "public" + "input": "src/assets/", + "output": "/assets/" } ], "styles": [ - "src/styles.scss" + "src/styles.scss", + "src/fonts.scss" ], "scripts": [], "server": "src/main.server.ts", @@ -60,7 +62,13 @@ "development": { "optimization": false, "extractLicenses": false, - "sourceMap": true + "sourceMap": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.development.ts" + } + ] } }, "defaultConfiguration": "production" @@ -92,7 +100,8 @@ "assets": [ { "glob": "**/*", - "input": "public" + "input": "src/assets/", + "output": "/assets/" } ], "styles": [ @@ -103,5 +112,8 @@ } } } + }, + "cli": { + "analytics": false } } diff --git a/package-lock.json b/package-lock.json index 0a36ec9..3cb20f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "@angular/ssr": "^18.0.0", "express": "^4.18.2", "rxjs": "~7.8.0", + "swiper": "^11.1.3", "tslib": "^2.3.0", "zone.js": "~0.14.3" }, @@ -11199,6 +11200,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swiper": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.1.3.tgz", + "integrity": "sha512-80MSxonyTxrGcaWj9YgvvhD8OG0B9/9IVZP33vhIEvyWvmKjnQDBieO+29wKvMx285sAtvZyrWBdkxaw6+D3aw==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "engines": { + "node": ">= 4.7.0" + } + }, "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", diff --git a/package.json b/package.json index 1c924af..9a404c9 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@angular/ssr": "^18.0.0", "express": "^4.18.2", "rxjs": "~7.8.0", + "swiper": "^11.1.3", "tslib": "^2.3.0", "zone.js": "~0.14.3" }, @@ -41,4 +42,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.4.2" } -} \ No newline at end of file +} diff --git a/src/app/_services/forms.service.ts b/src/app/_services/forms.service.ts new file mode 100644 index 0000000..4c7ece2 --- /dev/null +++ b/src/app/_services/forms.service.ts @@ -0,0 +1,16 @@ +import {Injectable} from '@angular/core'; +import {HttpClient} from '@angular/common/http'; +import { environment } from '../../environments/environment'; +import {Observable} from "rxjs"; +import {Router} from "@angular/router"; + +@Injectable({providedIn: 'root'}) +export class FormsService { + constructor(private http: HttpClient, private router: Router) { + } + + save(target: string, type: string, id?: string, data?: any): Observable { + let url = `${environment.apiUrl}/api/forms/${target}/${type}`; + return this.http.post(url,data); + } +} diff --git a/src/app/_services/seo.service.ts b/src/app/_services/seo.service.ts new file mode 100644 index 0000000..97d3c6a --- /dev/null +++ b/src/app/_services/seo.service.ts @@ -0,0 +1,111 @@ +import {Injectable} from '@angular/core'; +import { Meta, Title } from '@angular/platform-browser'; +import { environment } from 'src/environments/environment'; +import { Router } from '@angular/router'; +import { filter } from "rxjs/operators"; + + +@Injectable({ + providedIn: 'root' +}) +export class SEOService { + constructor(private title: Title, private meta: Meta, router:Router) { + router.events + .pipe( + filter((event:any)=>{return event.routerEvent}) + ) + .subscribe( + (event)=>{ + console.log(event.routerEvent.url); + let data = this.seoData[event.routerEvent.url] + if(data){ + this.updateTitle(data.title); + this.updateDescription(data.description); + this.updateImage(data.image); + } + } + ) + } + + updateTitle(title: string) { + this.title.setTitle(title); + this.meta.updateTag({ name: 'og:title', content: title}); + } + + updateDescription(desc: string) { + this.meta.updateTag({ name: 'description', content: desc }) + this.meta.updateTag({ name: 'og:description', content: desc }) + } + + updateImage(url:string){ + this.meta.updateTag({ name: 'og:image', content: environment.domenUrl + '/' + url }) + } + + seoData = { + '/':{ + title: 'НИР Груп – создаем ИТ-инструменты под ваши задачи', + description: 'Мы беремся за самые амбициозные проекты и выполняем их точно в срок. Разработка ПО, Автоматизация бизнес-процессов, Создание нагруженных сайтов.', + image:'assets/img/home.jpg' + }, + "/about":{ + title: 'О Нас | НИР Груп', + description:'ООО «НИР» — российская ИТ-компания, специализирующаяся на разработке импортонезависимого ПО и автоматизации сложных процессов.', + image:'assets/img/about.jpg' + }, + "/automatization":{ + title: 'Автоматизация бизнес-процессов любой сложности', + description:'Мгновенная сквозная аналитика, Повышение эффективности документооборота, Прозрачность процессов, Ускорение принятия решений, Избавление от рутины.', + image:'assets/img/automatization.jpg' + }, + "/development":{ + title: 'Разработка программного обеспечения (ПО) на заказ', + description:'Разработка ПО любой сложности под любые задачи. Помогаем автоматизировать бизнес-процессы, избавляем от рутинных задач, находим новые решения.', + image:'assets/img/development.jpg' + }, + "/contacts":{ + title: 'Контакты | НИР Груп', + description:'Тел: +7 (499) 490-04-65; E-mail: info@nirgroup.ru; Адрес: 121170, г. Москва, Кутузовский проспект, д. 36, стр. 3, офис 222', + image:'assets/img/contacts.jpg' + }, + "/sites":{ + title: 'Создание и Разработка официальных сайтов', + description:'Удобный и безопасный сайт для работы с массивными данными и документами. Любой функционал и дизайн, простой интерфейс, данные на вашем сервере.', + image:'assets/img/sites.jpg' + }, + "/projects":{ + title: 'Наши проекты | НИР Груп', + description:'Нашими решениями ежедневно пользуются представители крупнейших компаний и государственных учреждений. Ознакомьтесь с нашими проектами.', + image:'assets/img/projects.jpg' + }, + '/projects/vniigaz':{ + title: 'Проект "ВНИИГАЗ-Сертификат" | НИР Груп', + description:'Создание корпоративного портал "ВНИИГАЗ-Сертификат"', + image:'assets/img/vniigaz/vniigaz-top.svg' + }, + '/projects/faufcs':{ + title: 'Проект "ФАУ "ФЦС" | НИР Груп', + description:'Создание корпоративного сайта ФАУ "ФЦС"', + image:'assets/img/faufcs/faufcs-top.svg' + }, + '/projects/tk023':{ + title: 'Проект "ТК-023" | НИР Груп', + description:'Создание интернет-портала с АИС "ТК-023"', + image:'assets/img/tk023/tk023-top.png' + }, + '/projects/tk465':{ + title: 'Проект "ТК-465" | НИР Груп', + description:'Создание автоматизированной информационной системы "ТК-465"', + image:'assets/img/tk465/tk465-top.svg' + }, + '/projects/scvg':{ + title: 'Проект "ЧУ СЦ «ВНИИГАЗ-Сертификат»" | НИР Груп', + description:'Создание автоматизированной платформы допуска продукции "ЧУ СЦ «ВНИИГАЗ-Сертификат»"', + image:'assets/img/scvg/scvg-top.svg' + }, + '/projects/intergaz':{ + title: 'Проект "ИНТЕРГАЗСЕРТ" | НИР Груп', + description:'Создание информационной системы «Интергазсерт»', + image:'assets/img/intergaz/intergaz-top.svg' + }, + } +} \ No newline at end of file diff --git a/src/app/app.component.html b/src/app/app.component.html index 36093e1..23cda4d 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,336 +1,105 @@ - - - - - - - - +
+
- - -
- -
+ +7 (499) 490-04-65 + - - - - - - - + +
+ +
+
+ +
+
+ + diff --git a/src/app/app.component.scss b/src/app/app.component.scss index e69de29..669bf31 100644 --- a/src/app/app.component.scss +++ b/src/app/app.component.scss @@ -0,0 +1,243 @@ +header{ + position: fixed; + width: 100%; + padding-inline: calc((100% - 1380px) / 2); + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + height: 80px; + background-color: #FFF; + z-index: 20; + border-bottom: 1px solid var(--clr-gr); + box-shadow: 0px 20px 40px 0px rgba(255, 255, 255, 0.5); + box-sizing: border-box; + font-size: 16px; + font-weight: 400; + line-height: 24px; + >.header-burger{ + display: none; + } + + a{ + text-decoration: none; + } + + nav{ + display: flex; + align-items: center; + a{ + color: var(--clr-black-lt); + text-decoration: none; + padding: 29px 10px; + &.active{ + // padding-bottom: 26px; + margin-bottom: -1px; + border-bottom: 2px solid var(--clr-primary); + } + &.tel{ + display: none; + } + &.top-logo{ + margin-right: 30px; + padding: 0; + display: inline-flex; + align-items: center; + } + } + } + + .right{ + + display: flex; + align-items: center; + gap: 10px; + color: var(--clr-black); + font-variant-numeric: lining-nums tabular-nums; + line-height: 24px; + margin-right: 30px; + }; +} + +router-outlet{ + margin-top: 80px; +} + +.banner{ + display: flex; + padding-block: 30px; + + >div{ + flex: 1 1 0; + display: flex; + flex-direction: column; + gap: 20px; + align-items: flex-start; + >*{ box-sizing: border-box;} + + } + .banner-img{ + border-radius: 16px; + background-image: url("../assets/img/banner.jpg"); + background-size: cover; + background-position: center; + } +} + +footer{ + display: flex; + flex-direction: column; + background-color: var(--clr-gr-lt); + padding-block: 60px; + margin-top: 60px; + .footer-main{ + display: flex; + flex-direction: row; + font-size: 16px; + line-height: 24px; + a{ + color: var(--clr-black); + text-decoration: none; + display: flex; + gap: 16px; + svg{ + flex-shrink: 0; + color: var(--clr-black-lt); + } + } + >div{ + flex: 1 1 0; + display: flex; + flex-direction: column; + gap: 16px; + } + .logo img{ + width: 152px; + height: 152px; + } + } + .copyright{ + border-top: 1px solid var(--clr-gr); + margin-top: 30px; + padding-top: 30px; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + } + +} + +@media screen and (min-width: 1025px){ + header{ + .top-logo{ + margin-left: 30px; + } + } + .banner{ + .banner-img{ + max-height: calc(50vw - 30px); + } + } +} + +@media screen and (max-width: 1024px) { + + header{ + padding-inline: 48px 55px; + .header-shadow{ + width: 100vw; + height: calc(100vh - 80px); + position:fixed; + top: 80px; + left: 0; + background-color: var(--clr-black-lt); + } + >.header-burger{ + display: block; + border: none; + background-color: transparent; + color: var(--clr-black-lt); + cursor: pointer; + } + nav{ + .nav-items{ + display: flex; + flex-direction: column; + position: absolute; + top: 79px; + left:0; + gap: 24px; + background-color: #FFF; + width: 100vw; + align-items: flex-start; + padding: 30px 24px 30px; + border-bottom: 1px solid var(--clr-gr); + a{ + padding: 0px; + &.tel{ + display: flex; + margin-top: 30px; + } + } + } + .nav-hide{ + display: none + } + + } + .right{ + display: none; + } + } + + .banner{ + display: flex; + flex-direction: column-reverse; + padding: 0; + + .banner-text{ + margin-block: 40px 20px; + + } + .banner-img{ + flex:auto; + aspect-ratio: 21/16; + margin-left: -20px; + margin-top: -15px; + width: calc(100% + 40px); + height: calc(50vw - 30px); + background-image: url("../assets/img/banner.jpg"); + background-size: cover; + background-position: center; + border-radius: 0; + } + } + + footer{ + + .footer-main{ + flex-direction: column; + gap: 30px; + .footer-info{ + padding-inline: 30px 15px; + } + .logo{ + margin-left: 15px; + } + .footer-nav{ + display: none; + } + } + .copyright{ + padding-inline: 15px; + } + + } +} + +@media screen and (max-width: 768px) { + header{ + padding-inline: 4px 10px; + } + } \ No newline at end of file diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 513613c..09f9560 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,13 +1,33 @@ import { Component } from '@angular/core'; -import { RouterOutlet } from '@angular/router'; +import { DatePipe, ViewportScroller } from '@angular/common'; +import { RouterOutlet, NavigationEnd, Router } from '@angular/router'; @Component({ selector: 'app-root', standalone: true, - imports: [RouterOutlet], + imports: [RouterOutlet, DatePipe], templateUrl: './app.component.html', styleUrl: './app.component.scss' }) export class AppComponent { - title = 'render'; + + + title = 'NIR'; + dateNow?: Date; + navShow = false; + + ngOnInit(){ + this.dateNow = new Date; + } + + constructor( + readonly router: Router, + readonly viewportScroller: ViewportScroller, + ) { + + router.events.subscribe((event) => { + if (event instanceof NavigationEnd) this.viewportScroller.scrollToPosition([0, 0]); + }); + + } } diff --git a/src/app/app.config.ts b/src/app/app.config.ts index 52cd710..2cb958a 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -1,9 +1,14 @@ import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; import { provideRouter } from '@angular/router'; - +import { provideHttpClient } from '@angular/common/http'; import { routes } from './app.routes'; import { provideClientHydration } from '@angular/platform-browser'; export const appConfig: ApplicationConfig = { - providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes), provideClientHydration()] + providers: [ + provideZoneChangeDetection({ eventCoalescing: true }), + provideRouter(routes), + provideClientHydration(), + provideHttpClient(), + ] }; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index dc39edb..3504b77 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,3 +1,6 @@ import { Routes } from '@angular/router'; +import { HomeComponent } from './home/home.component'; -export const routes: Routes = []; +export const routes: Routes = [ + {path: "", component: HomeComponent}, +]; diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html new file mode 100644 index 0000000..67cf734 --- /dev/null +++ b/src/app/home/home.component.html @@ -0,0 +1,135 @@ +
+
+

Создаем
ИТ‑инструменты под Ваши задачи

+
+ ​ +
+ + + +
+
+ +
+
+ +
+
+

Кто мы

+
+
+ ООО «НИР» — российская ИТ-компания, специализирующаяся на разработке импортонезависимого ПО и автоматизации сложных процессов. С 2016 года мы беремся за самые амбициозные проекты и выполняем их точно в срок. +
+
+ +
+
+

Наши преимущества

+
+
+ Мы верим, что рабочие программы и сайты могут быть удобными, красивыми и полностью выполнять стоящие перед ними задачи. Поэтому мы создаем их именно такими. +
+
+
+

8 лет

+ на рынке +
+
+

100+

+ реализованных проектов +
+
+

500+

+ компаний-пользователей +
+
+

№ 12571

+ Аккредитация в Минцифры +
+
+
+ +
+
+

Наши услуги

+
+
+

Автоматизация

+
Автоматизируем рутину, любые процессы и задачи
+ Подробнее +
+
+

Заказная разработка

+
Создание ПО любой сложности
+ Подробнее +
+
+

Нагруженные сайты

+
Специализированные сайты для работы с большим количеством информации и документов
+ Подробнее +
+
+ +
+
+

Проекты и рекомендации

+
Нашими решениями ежедневно пользуются представители крупнейших компаний и государственных учреждений
+ Перейти +
+ + + +
+ +
+
+
+
+
+
+
+
+
+
+

Как мы работаем

+
+
{{item.number}}
+
+
{{item.header}}
+
{{item.caption}}
+
{{item.timing}}
+
+
+
+ +
+ + + +
+ + + +
diff --git a/src/app/home/home.component.scss b/src/app/home/home.component.scss new file mode 100644 index 0000000..5ca6b98 --- /dev/null +++ b/src/app/home/home.component.scss @@ -0,0 +1,150 @@ +.facts{ + margin-top: 30px; +} +.card-sm{ + margin-top: 30px; +} +.facts-logo div{ + display: flex; + align-items: center; +} + + +.howork{ + .howork-left{ + border-radius: 16px; + background-size: cover; + background-position: center; + background-image: url("/assets/img/about-howork.jpg"); + aspect-ratio: 582 / 642; + height: 642px; + display: flex; + flex-direction: column-reverse; + flex-wrap: wrap; + gap: 30px; + >div{ + width: calc(50% - 15px); + box-shadow: 0 0 0 30px var(--clr-gr-lt); + border-radius: 16px; + aspect-ratio: 1; + &:first-child, &:last-child{ + width: auto; + margin-bottom: auto; + background-color: var(--clr-gr-lt); + aspect-ratio: none; + flex-grow: 1; + flex-shrink: 1; + } + } + } + .howork-right{ + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 60px; + .howork-item{ + display: flex; + flex-direction: row; + gap: 30px; + cursor: pointer; + .howork-caption{ + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 10px; + .timing{ + color: var(--Primary-1D45F0, #1D45F0); + font-size: 20px; + font-weight: 600; + line-height: 28px; + } + } + } + } +} + +@media screen and (max-width: 1240px){ + .howork{ + .howork-left{ + height: 135%; + width: 100%; + } + .howork-right{ + gap: 30px; + h5{ + margin-block: 10px; + } + } + } + +} + +@media screen and (max-width: 1024px){ + .jumb-slogan{ + margin-block: 0; + } + + .facts{ + margin-top: 10px; + } + + .howork{ + .howork-left{ + height: 105vw; + width: 100%; + + } + .howork-right{ + gap: 30px; + .howork-item{ + display: flex; + flex-direction: row; + gap: 30px; + cursor: pointer; + h5{ + margin: 0; + } + } + } + } +} + + + + +.container { + max-width: 800px; + margin: 32px auto; + + h1 { + text-align: center; + + } + + swiper-slide { + text-align: center; + font-size: 24px; + border-radius: 24px; + padding: 16px 0; + height: 400px; + + + &:nth-of-type(1) { + background-color: #780000; + color: white + } + + &:nth-of-type(2) { + background-color: #fdf0d5; + } + + &:nth-of-type(3) { + background-color: #003049; + color: white; + } + + &:nth-of-type(4) { + background-color: #669bbc; + } + } +} \ No newline at end of file diff --git a/src/app/home/home.component.spec.ts b/src/app/home/home.component.spec.ts new file mode 100644 index 0000000..60c47c4 --- /dev/null +++ b/src/app/home/home.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomeComponent } from './home.component'; + +describe('HomeComponent', () => { + let component: HomeComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [HomeComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(HomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts new file mode 100644 index 0000000..1c95741 --- /dev/null +++ b/src/app/home/home.component.ts @@ -0,0 +1,63 @@ +import { NgFor } from '@angular/common'; +import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { RequestComponent } from '../request/request.component'; +import { ReviewsComponent } from '../reviews/reviews.component'; + +@Component({ + selector: 'home', + standalone: true, + imports: [NgFor, RequestComponent, ReviewsComponent], + templateUrl: './home.component.html', + styleUrl: './home.component.scss', + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class HomeComponent { + // constructor(private seo:SEOService){} + + public act: number = 1; + + public menu = [ + { + number: 1, + header:'Знакомство', + caption:'Мы встречаемся с Вами, обсуждаем задачи, визуализируем процессы и готовим КП', + timing:'2 недели' + }, + { + number: 2, + header:'Погружение в детали', + caption:'Составление ТЗ и договора, согласование и подписание', + timing:'1–2 недели' + }, + { + number: 3, + header:'Внутренние работы', + caption:'Нашу работу не видно. Проектирование и создание архитектуры системы, оцифровка процессов, создание технического интерфейса.', + timing:'4–10 недель' + }, + { + number: 4, + header:'Внешние работы', + caption:'Нашу работу уже можно посмотреть. Создание пользовательского интерфейса, предоставление системы для тестирования, внесение правок после теста.', + timing:'2–5 недель' + }, + { + number: 5, + header:'Завершение работ', + caption:'Сдаем готовый продукт, помогаем с его вводом в эксплуатацию, отвечаем на возникающие вопросы', + timing:'до 2 недель' + }, + ] + + select(i:number){ + if (i==this.act) { + this.act = 0 + } else { + this.act = i + } + } + + hide(i:number){ + return i!=this.act + } +} diff --git a/src/app/request/request.component.html b/src/app/request/request.component.html new file mode 100644 index 0000000..7533b5e --- /dev/null +++ b/src/app/request/request.component.html @@ -0,0 +1,43 @@ +
+ +
+ +
+
+
+

Обратная связь

+ +
Расскажите о своем проекте. Мы ответим в течение одного рабочего дня.
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+
+
diff --git a/src/app/request/request.component.scss b/src/app/request/request.component.scss new file mode 100644 index 0000000..8071531 --- /dev/null +++ b/src/app/request/request.component.scss @@ -0,0 +1,82 @@ + + +.activator{ + cursor: pointer; +} + +.block{ + width: 100vw; + height: 100vh; + position:fixed; + top: 0; + left: 0; + background-color: var(--clr-black-lt); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; + + .card{ + color: var(--neutrals-black-88, rgba(0, 0, 0, 0.88)); + font-size: 16px; + font-weight: 400; + line-height: 24px; + text-transform: none; + padding: 30px; + background-color: #FFF; + width: 600px; + display: flex; + flex-wrap: wrap; + gap:20px; + .submit{ + flex: 1 1 40%; + margin-top: 10px; + } + } + .field{ + flex: 1 1 100%; + display: flex; + flex-direction: column; + gap: 4px; + label{ + color: var(--clr-black-lt); + } + input, textarea{ + padding: 20px; + border-radius: 4px; + border: 1px solid var(--clr-gr); + resize: none; + &.ng-untouched.ng-invalid{ + box-shadow: 0px 0px 0px 2px var(--clr-warning); + } + &.ng-touched.ng-invalid{ + box-shadow: 0px 0px 0px 2px var(--clr-danger); + } + } + } + .tel{ + flex-basis: 40%; + } + .close{ + background-color: transparent; + border: none; + margin-left: auto; + color: var(--clr-black-lt); + cursor: pointer; + } + +} + +@media screen and (max-width: 1024px){ + .block{ + overflow-y: scroll; + display: block; + .card{ + width: auto; + border-radius: 0; + max-width: 600px; + margin: auto; + } + } + +} \ No newline at end of file diff --git a/src/app/request/request.component.spec.ts b/src/app/request/request.component.spec.ts new file mode 100644 index 0000000..5f2fc17 --- /dev/null +++ b/src/app/request/request.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RequestComponent } from './request.component'; + +describe('RequestComponent', () => { + let component: RequestComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [RequestComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(RequestComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/request/request.component.ts b/src/app/request/request.component.ts new file mode 100644 index 0000000..316b705 --- /dev/null +++ b/src/app/request/request.component.ts @@ -0,0 +1,49 @@ +import { Component, OnInit } from '@angular/core'; +import { FormsService } from '../_services/forms.service'; +import {FormGroup, ReactiveFormsModule, FormBuilder, Validators} from "@angular/forms"; + +@Component({ + selector: 'request', + standalone: true, + imports: [ReactiveFormsModule], + templateUrl: './request.component.html', + styleUrl: './request.component.scss' +}) +export class RequestComponent implements OnInit { + public hidden = true; + public feedbackForm: FormGroup; + + constructor(private formBuilder:FormBuilder, private formsService: FormsService) { + } + + ngOnInit():void{ + this.feedbackForm = this.formBuilder.group({ + 'feedback-name':['',Validators.required], + 'feedback-email':['',[Validators.required,Validators.email]], + 'feedback-number':[''], + 'feedback-add-number':[''], + 'feedback-message':['',Validators.required], + mailto:['test@nirgroup.ru'], + type:['feedback-form-support'] + }); + } + + open(){ + this.hidden = false; + this.ngOnInit() + } + + close(){ + this.feedbackForm.reset(); + this.hidden = true; + } + + onSubmit(){ + this.feedbackForm.markAllAsTouched(); + if (this.feedbackForm.valid) this.formsService.save('model', 'feedback-form-support', null, this.feedbackForm.value).subscribe(res => { + this.close() + }, error => { + console.log(error); + }); + } +} diff --git a/src/app/reviews/reviews.component.html b/src/app/reviews/reviews.component.html new file mode 100644 index 0000000..2d06d7e --- /dev/null +++ b/src/app/reviews/reviews.component.html @@ -0,0 +1,63 @@ +
+

Благодарности

+
+ + + +
+
+ +
+
+
{{rev.header}}
+
{{rev.txt}}
+
{{rev.name}}
+
{{rev.post}}
+
+
+
+
+ + + +
+
+ +
+
+
+
+
+
+ + +
+ +
+ +
+ + + +
+
+
{{rev.header}}
+
{{rev.txt}}
+
{{rev.name}}
+
{{rev.post}}
+
+
+
+
+ +
+ +
\ No newline at end of file diff --git a/src/app/reviews/reviews.component.scss b/src/app/reviews/reviews.component.scss new file mode 100644 index 0000000..9283d8e --- /dev/null +++ b/src/app/reviews/reviews.component.scss @@ -0,0 +1,140 @@ +:host{ + width: 100%; + display: block; +} + +.reviews-header{ + margin-bottom: 60px; +} + +swiper{ + cursor: w-resize; + width: 1194px; +} + +.reviews{ + + + display: flex; + gap: 30px; + .reviews-img{ + img{ + width: 120px; + cursor: pointer; + } + } + .reviews-text{ + h5{ + margin-block: 0 10px; + } + .reviews-author{ + margin-top: 30px; + font-size: 16px; + font-weight: 600; + line-height: 24px; + } + .reviews-post{ + font-size: 16px; + font-weight: 400; + line-height: 24px; + } + } +} + +.reviews-select{ + width: 100vw; + height: 100vh; + position:fixed; + top: 0; + left: 0; + background-color: var(--clr-black-lt); + display: flex; + justify-content: center; + align-items: center; + z-index: 20; + cursor: pointer; + img{ + max-width: calc(100% - 30px); + max-height: calc(100% - 30px); + } +} + +.reviews-navigation{ + display: flex; + justify-content: center; + gap: 20px; + margin-top: 10px; + .reviews-navigation-counter{ + width: auto; + top: auto; + } + button{ + position: relative; + border: none !important; + background-color: transparent !important; + color: var(--clr-primary); + cursor: pointer; + left: auto; + right: auto; + padding: 0; + &::after{ + content: none !important; + } + } + } + +.mobile{ + display: none; +} + +@media screen and (max-width: 1240px){ + swiper{ + width: 100%; + } +} + + +@media screen and (max-width: 1024px) { + .mobile{ + display: block; + width: 100%; + } + .desktop{ + display: none; + } + .reviews-header{ + margin-bottom: 30px; + } + .reviews-navigation{ + margin-bottom: 15px; + } + + .reviews{ + + + display: flex; + flex-direction: column; + gap: 15px; + .reviews-img{ + display: flex; + justify-content: center; + img{ + cursor: pointer; + } + } + .reviews-text{ + cursor: default; + h5{ + margin-bottom: 10px; + margin-top: 0px; + } + .reviews-author{ + margin-top: 15px; + } + .reviews-post{ + font-size: 16px; + line-height: 20px; + } + } + } +} \ No newline at end of file diff --git a/src/app/reviews/reviews.component.spec.ts b/src/app/reviews/reviews.component.spec.ts new file mode 100644 index 0000000..25eeba9 --- /dev/null +++ b/src/app/reviews/reviews.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ReviewsComponent } from './reviews.component'; + +describe('ReviewsComponent', () => { + let component: ReviewsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ReviewsComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(ReviewsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/reviews/reviews.component.ts b/src/app/reviews/reviews.component.ts new file mode 100644 index 0000000..04de1fd --- /dev/null +++ b/src/app/reviews/reviews.component.ts @@ -0,0 +1,119 @@ +import { NgFor, NgIf } from '@angular/common'; +import { Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, ViewChild } from '@angular/core'; + +@Component({ + selector: 'reviews', + standalone: true, + imports: [NgFor, NgIf], + templateUrl: './reviews.component.html', + styleUrl: './reviews.component.scss', + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) + +export class ReviewsComponent { + img?:string|null; + num = 0; + init?:boolean; + + @ViewChild('mobileText') mobileText; + @ViewChild('mobileSwiper') mobileSwiper; + @ViewChild('desktopSwiper') desktopSwiper; + + + public config = { + slidesPerView: 2, + initialSlide: 1, + spaceBetween: 30, + centeredSlides: false, + loop: true, + pagination:{ + enabled: true, + type: 'fraction', + el:'.reviews-navigation-counter' + }, + navigation: { + nextEl: '.reviews-button-next', + prevEl: '.reviews-button-prev', + }, + keyboard: true, + mousewheel: true + }; + + public mobileConfig = { + slidesPerView: 1, + initialSlide: 0, + spaceBetween: 30, + centeredSlides: false, + loop: true, + pagination:{ + enabled: true, + type: 'fraction', + el:'.reviews-navigation-counter' + }, + navigation: { + nextEl: '.reviews-button-next', + prevEl: '.reviews-button-prev', + }, + keyboard: true, + mousewheel: true, + speed:500, + autoplay: { + delay: 2500, + disableOnInteraction: true, + }, + }; + + event(event){ + console.log('swiper',event) + } + + ngAfterViewInit(){ + console.log(this.desktopSwiper.nativeElement.swiper) + console.log(this.config) + // this.desktopSwiper.nativeElement.swiperParams=Object.assign( + // this.desktopSwiper.nativeElement.swiperParams, + // this.config + // ) + } + + onSwiperInit(){ + this.mobileText?.swiperRef?.slideTo(1); + this.init = true + } + + onSlideChange(event:any) { + setTimeout( + ()=>this.mobileText.nativeElement.swiper.slideTo(event.detail[0].realIndex),300 + ); + } + + select(img:string){ + this.img = img; + } + + reviews = [ + { + img:'assets/img/reviews/review-01.jpg', + header:'Технический комитет по стандартизации ТК 023 «Нефтяная и газовая промышленность»', + txt: 'Разработанный совместными силами ЧУ СЦ «ВНИИГАЗ-Сертификат», ООО «Газпром ВНИИГАЗ» и Вашего Общества и внедренный в практическую деятельность технического комитета по стандартизации ТК 023 «Нефтяная и газовая промышленность» Интернет-портал ТК 023 содействует достижению целей ТК 023 при разработке проектов национальных, межгосударственных стандартов, предварительных национальных стандартов и изменений к ним, а также выполнения других работ по стандартизации в соответствии с ГОСТ Р 1.- 2020.', + name: 'Елфимов А.В.', + post: 'Ответственный секретарь TK 023/MT 523' + }, + { + img:'assets/img/reviews/review-02.jpg', + header:'ЧУ «Сертификационный Центр «ВНИИГАЗ-Сертификат»', + txt: 'Ваш профессионализм, тщательное планирование и техническое мастерство отразились в качестве разработанной системы. Благодаря вашей работе, наша организация теперь обладает эффективным и современным инструментом, который значительно улучшает наши рабочие процессы и способствует повышению производительности.', + name: 'Гоготишвили Д.М.', + post: 'Генеральный директор ЧУ СЦ «ВНИИГАЗ – Сертификат»' + }, + { + img:'assets/img/reviews/review-03.jpg', + header:'Испытательный центр ООО «Газпром ВНИИГАЗ»', + txt: 'Мы высоко ценим ваш профессионализм, опыт и знания, которые были вложены в разработку и внедрение этого проекта. Ваше умение находить оптимальные решения и внимание к деталям позволили создать систему, отвечающую самым высоким стандартам качества. Особенно хотелось бы отметить Ваши оперативность в решении возникающих вопросов и открытость к обратной связи.', + name: 'Солдатов В.А.', + post: 'Руководитель Испытательного центра «ВНИИГАЗ»' + }, + ] + + +} diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/fonts/montserrat/Montserrat-Black.ttf b/src/assets/fonts/montserrat/Montserrat-Black.ttf new file mode 100644 index 0000000..7af9fb4 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-Black.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-BlackItalic.ttf b/src/assets/fonts/montserrat/Montserrat-BlackItalic.ttf new file mode 100644 index 0000000..c608366 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-BlackItalic.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-Bold.ttf b/src/assets/fonts/montserrat/Montserrat-Bold.ttf new file mode 100644 index 0000000..0927b81 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-Bold.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-BoldItalic.ttf b/src/assets/fonts/montserrat/Montserrat-BoldItalic.ttf new file mode 100644 index 0000000..02f5784 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-BoldItalic.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-ExtraBold.ttf b/src/assets/fonts/montserrat/Montserrat-ExtraBold.ttf new file mode 100644 index 0000000..e33afd4 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-ExtraBold.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf b/src/assets/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf new file mode 100644 index 0000000..92fc301 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-ExtraLight.ttf b/src/assets/fonts/montserrat/Montserrat-ExtraLight.ttf new file mode 100644 index 0000000..8aa56c1 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-ExtraLight.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-ExtraLightItalic.ttf b/src/assets/fonts/montserrat/Montserrat-ExtraLightItalic.ttf new file mode 100644 index 0000000..98c10f1 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-ExtraLightItalic.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-Italic.ttf b/src/assets/fonts/montserrat/Montserrat-Italic.ttf new file mode 100644 index 0000000..cff3ceb Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-Italic.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-Light.ttf b/src/assets/fonts/montserrat/Montserrat-Light.ttf new file mode 100644 index 0000000..fd787a8 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-Light.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-LightItalic.ttf b/src/assets/fonts/montserrat/Montserrat-LightItalic.ttf new file mode 100644 index 0000000..6a2c9d4 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-LightItalic.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-Medium.ttf b/src/assets/fonts/montserrat/Montserrat-Medium.ttf new file mode 100644 index 0000000..4012225 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-Medium.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-MediumItalic.ttf b/src/assets/fonts/montserrat/Montserrat-MediumItalic.ttf new file mode 100644 index 0000000..84b2539 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-MediumItalic.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-Regular.ttf b/src/assets/fonts/montserrat/Montserrat-Regular.ttf new file mode 100644 index 0000000..f4a266d Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-Regular.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-SemiBold.ttf b/src/assets/fonts/montserrat/Montserrat-SemiBold.ttf new file mode 100644 index 0000000..189ce9d Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-SemiBold.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-SemiBoldItalic.ttf b/src/assets/fonts/montserrat/Montserrat-SemiBoldItalic.ttf new file mode 100644 index 0000000..4c59d86 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-SemiBoldItalic.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-Thin.ttf b/src/assets/fonts/montserrat/Montserrat-Thin.ttf new file mode 100644 index 0000000..7d085bb Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-Thin.ttf differ diff --git a/src/assets/fonts/montserrat/Montserrat-ThinItalic.ttf b/src/assets/fonts/montserrat/Montserrat-ThinItalic.ttf new file mode 100644 index 0000000..6fbfad1 Binary files /dev/null and b/src/assets/fonts/montserrat/Montserrat-ThinItalic.ttf differ diff --git a/src/assets/ico/arrow_forward_24.svg b/src/assets/ico/arrow_forward_24.svg new file mode 100644 index 0000000..b3b0ce3 --- /dev/null +++ b/src/assets/ico/arrow_forward_24.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/ico/burger_24.svg b/src/assets/ico/burger_24.svg new file mode 100644 index 0000000..3914a55 --- /dev/null +++ b/src/assets/ico/burger_24.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/ico/call_24.svg b/src/assets/ico/call_24.svg new file mode 100644 index 0000000..c57a4ab --- /dev/null +++ b/src/assets/ico/call_24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/ico/chevron_left_big_24.svg b/src/assets/ico/chevron_left_big_24.svg new file mode 100644 index 0000000..241c91b --- /dev/null +++ b/src/assets/ico/chevron_left_big_24.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/ico/chevron_right_big_24.svg b/src/assets/ico/chevron_right_big_24.svg new file mode 100644 index 0000000..6e12d76 --- /dev/null +++ b/src/assets/ico/chevron_right_big_24.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/ico/close_24.svg b/src/assets/ico/close_24.svg new file mode 100644 index 0000000..0853533 --- /dev/null +++ b/src/assets/ico/close_24.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/ico/mail_24.svg b/src/assets/ico/mail_24.svg new file mode 100644 index 0000000..3f6c4b3 --- /dev/null +++ b/src/assets/ico/mail_24.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/ico/pin_drop_24.svg b/src/assets/ico/pin_drop_24.svg new file mode 100644 index 0000000..8f9c442 --- /dev/null +++ b/src/assets/ico/pin_drop_24.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/ico/webpage_24.svg b/src/assets/ico/webpage_24.svg new file mode 100644 index 0000000..65a2d64 --- /dev/null +++ b/src/assets/ico/webpage_24.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/img/about-howork.jpg b/src/assets/img/about-howork.jpg new file mode 100644 index 0000000..0680376 Binary files /dev/null and b/src/assets/img/about-howork.jpg differ diff --git a/src/assets/img/about-mission.jpg b/src/assets/img/about-mission.jpg new file mode 100644 index 0000000..848df4e Binary files /dev/null and b/src/assets/img/about-mission.jpg differ diff --git a/src/assets/img/about-thanks-romashka.svg b/src/assets/img/about-thanks-romashka.svg new file mode 100644 index 0000000..34c1eda --- /dev/null +++ b/src/assets/img/about-thanks-romashka.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/about-thanks-vniigaz.png b/src/assets/img/about-thanks-vniigaz.png new file mode 100644 index 0000000..2dce460 Binary files /dev/null and b/src/assets/img/about-thanks-vniigaz.png differ diff --git a/src/assets/img/about.jpg b/src/assets/img/about.jpg new file mode 100644 index 0000000..8d7291d Binary files /dev/null and b/src/assets/img/about.jpg differ diff --git a/src/assets/img/automatization-advantage.jpg b/src/assets/img/automatization-advantage.jpg new file mode 100644 index 0000000..ad25b72 Binary files /dev/null and b/src/assets/img/automatization-advantage.jpg differ diff --git a/src/assets/img/automatization-solution.png b/src/assets/img/automatization-solution.png new file mode 100644 index 0000000..7f157bb Binary files /dev/null and b/src/assets/img/automatization-solution.png differ diff --git a/src/assets/img/automatization.jpg b/src/assets/img/automatization.jpg new file mode 100644 index 0000000..02efc93 Binary files /dev/null and b/src/assets/img/automatization.jpg differ diff --git a/src/assets/img/banner.jpg b/src/assets/img/banner.jpg new file mode 100644 index 0000000..3df15b0 Binary files /dev/null and b/src/assets/img/banner.jpg differ diff --git a/src/assets/img/carusel-01.png b/src/assets/img/carusel-01.png new file mode 100644 index 0000000..567933c Binary files /dev/null and b/src/assets/img/carusel-01.png differ diff --git a/src/assets/img/carusel-02.png b/src/assets/img/carusel-02.png new file mode 100644 index 0000000..0ced6e6 Binary files /dev/null and b/src/assets/img/carusel-02.png differ diff --git a/src/assets/img/carusel-03.png b/src/assets/img/carusel-03.png new file mode 100644 index 0000000..7bd1f9c Binary files /dev/null and b/src/assets/img/carusel-03.png differ diff --git a/src/assets/img/carusel-04.png b/src/assets/img/carusel-04.png new file mode 100644 index 0000000..feaea33 Binary files /dev/null and b/src/assets/img/carusel-04.png differ diff --git a/src/assets/img/carusel-05.png b/src/assets/img/carusel-05.png new file mode 100644 index 0000000..6f8f406 Binary files /dev/null and b/src/assets/img/carusel-05.png differ diff --git a/src/assets/img/carusel-faufcs.png b/src/assets/img/carusel-faufcs.png new file mode 100644 index 0000000..7bd1f9c Binary files /dev/null and b/src/assets/img/carusel-faufcs.png differ diff --git a/src/assets/img/carusel-intergaz.png b/src/assets/img/carusel-intergaz.png new file mode 100644 index 0000000..bc477ca Binary files /dev/null and b/src/assets/img/carusel-intergaz.png differ diff --git a/src/assets/img/carusel-scvg.png b/src/assets/img/carusel-scvg.png new file mode 100644 index 0000000..1997d96 Binary files /dev/null and b/src/assets/img/carusel-scvg.png differ diff --git a/src/assets/img/carusel-tk023.png b/src/assets/img/carusel-tk023.png new file mode 100644 index 0000000..84983ac Binary files /dev/null and b/src/assets/img/carusel-tk023.png differ diff --git a/src/assets/img/carusel-tk465.png b/src/assets/img/carusel-tk465.png new file mode 100644 index 0000000..8fe2bd5 Binary files /dev/null and b/src/assets/img/carusel-tk465.png differ diff --git a/src/assets/img/carusel-vniigaz.png b/src/assets/img/carusel-vniigaz.png new file mode 100644 index 0000000..e26b010 Binary files /dev/null and b/src/assets/img/carusel-vniigaz.png differ diff --git a/src/assets/img/carusel/carusel-01.jpg b/src/assets/img/carusel/carusel-01.jpg new file mode 100644 index 0000000..290e81e Binary files /dev/null and b/src/assets/img/carusel/carusel-01.jpg differ diff --git a/src/assets/img/carusel/carusel-01.png b/src/assets/img/carusel/carusel-01.png new file mode 100644 index 0000000..16a57e9 Binary files /dev/null and b/src/assets/img/carusel/carusel-01.png differ diff --git a/src/assets/img/carusel/carusel-02.jpg b/src/assets/img/carusel/carusel-02.jpg new file mode 100644 index 0000000..c30a779 Binary files /dev/null and b/src/assets/img/carusel/carusel-02.jpg differ diff --git a/src/assets/img/carusel/carusel-03.jpg b/src/assets/img/carusel/carusel-03.jpg new file mode 100644 index 0000000..8fed86e Binary files /dev/null and b/src/assets/img/carusel/carusel-03.jpg differ diff --git a/src/assets/img/carusel/carusel-04.jpg b/src/assets/img/carusel/carusel-04.jpg new file mode 100644 index 0000000..b2b761f Binary files /dev/null and b/src/assets/img/carusel/carusel-04.jpg differ diff --git a/src/assets/img/carusel/carusel-05.jpg b/src/assets/img/carusel/carusel-05.jpg new file mode 100644 index 0000000..567933c Binary files /dev/null and b/src/assets/img/carusel/carusel-05.jpg differ diff --git a/src/assets/img/carusel/carusel-06.jpg b/src/assets/img/carusel/carusel-06.jpg new file mode 100644 index 0000000..be9daee Binary files /dev/null and b/src/assets/img/carusel/carusel-06.jpg differ diff --git a/src/assets/img/carusel/carusel-07.jpg b/src/assets/img/carusel/carusel-07.jpg new file mode 100644 index 0000000..aece707 Binary files /dev/null and b/src/assets/img/carusel/carusel-07.jpg differ diff --git a/src/assets/img/carusel/carusel-08.jpg b/src/assets/img/carusel/carusel-08.jpg new file mode 100644 index 0000000..83eea84 Binary files /dev/null and b/src/assets/img/carusel/carusel-08.jpg differ diff --git a/src/assets/img/carusel/carusel-09.jpg b/src/assets/img/carusel/carusel-09.jpg new file mode 100644 index 0000000..6aa6537 Binary files /dev/null and b/src/assets/img/carusel/carusel-09.jpg differ diff --git a/src/assets/img/carusel/carusel-10.jpg b/src/assets/img/carusel/carusel-10.jpg new file mode 100644 index 0000000..1bdbc40 Binary files /dev/null and b/src/assets/img/carusel/carusel-10.jpg differ diff --git a/src/assets/img/carusel/carusel-11.jpg b/src/assets/img/carusel/carusel-11.jpg new file mode 100644 index 0000000..459cb47 Binary files /dev/null and b/src/assets/img/carusel/carusel-11.jpg differ diff --git a/src/assets/img/carusel/carusel-12.jpg b/src/assets/img/carusel/carusel-12.jpg new file mode 100644 index 0000000..2468434 Binary files /dev/null and b/src/assets/img/carusel/carusel-12.jpg differ diff --git a/src/assets/img/carusel/carusel-13.jpg b/src/assets/img/carusel/carusel-13.jpg new file mode 100644 index 0000000..1492f90 Binary files /dev/null and b/src/assets/img/carusel/carusel-13.jpg differ diff --git a/src/assets/img/contacts.jpg b/src/assets/img/contacts.jpg new file mode 100644 index 0000000..cb0f7f7 Binary files /dev/null and b/src/assets/img/contacts.jpg differ diff --git a/src/assets/img/development-advantage.jpg b/src/assets/img/development-advantage.jpg new file mode 100644 index 0000000..ccee9b0 Binary files /dev/null and b/src/assets/img/development-advantage.jpg differ diff --git a/src/assets/img/development.jpg b/src/assets/img/development.jpg new file mode 100644 index 0000000..56028f1 Binary files /dev/null and b/src/assets/img/development.jpg differ diff --git a/src/assets/img/faufcs/faufcs-top.png b/src/assets/img/faufcs/faufcs-top.png new file mode 100644 index 0000000..b9eadfc Binary files /dev/null and b/src/assets/img/faufcs/faufcs-top.png differ diff --git a/src/assets/img/faufcs/faufcs-top.svg b/src/assets/img/faufcs/faufcs-top.svg new file mode 100644 index 0000000..7ee3b64 --- /dev/null +++ b/src/assets/img/faufcs/faufcs-top.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/faufcs/faufcs01.png b/src/assets/img/faufcs/faufcs01.png new file mode 100644 index 0000000..27c5432 Binary files /dev/null and b/src/assets/img/faufcs/faufcs01.png differ diff --git a/src/assets/img/faufcs/faufcs02.png b/src/assets/img/faufcs/faufcs02.png new file mode 100644 index 0000000..b667e9a Binary files /dev/null and b/src/assets/img/faufcs/faufcs02.png differ diff --git a/src/assets/img/faufcs/faufcs03.png b/src/assets/img/faufcs/faufcs03.png new file mode 100644 index 0000000..279f17f Binary files /dev/null and b/src/assets/img/faufcs/faufcs03.png differ diff --git a/src/assets/img/faufcs/faufcs04.png b/src/assets/img/faufcs/faufcs04.png new file mode 100644 index 0000000..844aea8 Binary files /dev/null and b/src/assets/img/faufcs/faufcs04.png differ diff --git a/src/assets/img/faufcs/faufcs05.png b/src/assets/img/faufcs/faufcs05.png new file mode 100644 index 0000000..074cfac Binary files /dev/null and b/src/assets/img/faufcs/faufcs05.png differ diff --git a/src/assets/img/home.jpg b/src/assets/img/home.jpg new file mode 100644 index 0000000..5ad8c09 Binary files /dev/null and b/src/assets/img/home.jpg differ diff --git a/src/assets/img/intergaz/intergaz-top.png b/src/assets/img/intergaz/intergaz-top.png new file mode 100644 index 0000000..fc4def4 Binary files /dev/null and b/src/assets/img/intergaz/intergaz-top.png differ diff --git a/src/assets/img/intergaz/intergaz-top.svg b/src/assets/img/intergaz/intergaz-top.svg new file mode 100644 index 0000000..23ddc62 --- /dev/null +++ b/src/assets/img/intergaz/intergaz-top.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/intergaz/intergaz01.png b/src/assets/img/intergaz/intergaz01.png new file mode 100644 index 0000000..71a56d4 Binary files /dev/null and b/src/assets/img/intergaz/intergaz01.png differ diff --git a/src/assets/img/intergaz/intergaz02.png b/src/assets/img/intergaz/intergaz02.png new file mode 100644 index 0000000..53e0f8b Binary files /dev/null and b/src/assets/img/intergaz/intergaz02.png differ diff --git a/src/assets/img/intergaz/intergaz03.png b/src/assets/img/intergaz/intergaz03.png new file mode 100644 index 0000000..1095adb Binary files /dev/null and b/src/assets/img/intergaz/intergaz03.png differ diff --git a/src/assets/img/intergaz/intergaz04.png b/src/assets/img/intergaz/intergaz04.png new file mode 100644 index 0000000..9150558 Binary files /dev/null and b/src/assets/img/intergaz/intergaz04.png differ diff --git a/src/assets/img/logo_fcns.svg b/src/assets/img/logo_fcns.svg new file mode 100644 index 0000000..ab73ff2 --- /dev/null +++ b/src/assets/img/logo_fcns.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/logo_gazprom.svg b/src/assets/img/logo_gazprom.svg new file mode 100644 index 0000000..009f417 --- /dev/null +++ b/src/assets/img/logo_gazprom.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/img/logo_igc.png b/src/assets/img/logo_igc.png new file mode 100644 index 0000000..5622027 Binary files /dev/null and b/src/assets/img/logo_igc.png differ diff --git a/src/assets/img/logo_tk23.svg b/src/assets/img/logo_tk23.svg new file mode 100644 index 0000000..8b8cd7b --- /dev/null +++ b/src/assets/img/logo_tk23.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/logo_tk465.png b/src/assets/img/logo_tk465.png new file mode 100644 index 0000000..50c101e Binary files /dev/null and b/src/assets/img/logo_tk465.png differ diff --git a/src/assets/img/logo_vniigazcert.svg b/src/assets/img/logo_vniigazcert.svg new file mode 100644 index 0000000..9e32e4f --- /dev/null +++ b/src/assets/img/logo_vniigazcert.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/nir_logo_favicon.png b/src/assets/img/nir_logo_favicon.png new file mode 100644 index 0000000..d5a29f3 Binary files /dev/null and b/src/assets/img/nir_logo_favicon.png differ diff --git a/src/assets/img/nir_logo_favicon.svg b/src/assets/img/nir_logo_favicon.svg new file mode 100644 index 0000000..2cac451 --- /dev/null +++ b/src/assets/img/nir_logo_favicon.svg @@ -0,0 +1,17 @@ + + + + + + + + Layer 1 + + + + + + + + + \ No newline at end of file diff --git a/src/assets/img/nir_logo_footer.svg b/src/assets/img/nir_logo_footer.svg new file mode 100644 index 0000000..69a34b0 --- /dev/null +++ b/src/assets/img/nir_logo_footer.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/nir_logo_top.svg b/src/assets/img/nir_logo_top.svg new file mode 100644 index 0000000..641133b --- /dev/null +++ b/src/assets/img/nir_logo_top.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/img/projects.jpg b/src/assets/img/projects.jpg new file mode 100644 index 0000000..ff485c8 Binary files /dev/null and b/src/assets/img/projects.jpg differ diff --git a/src/assets/img/reviews/review-01.jpg b/src/assets/img/reviews/review-01.jpg new file mode 100644 index 0000000..220b4db Binary files /dev/null and b/src/assets/img/reviews/review-01.jpg differ diff --git a/src/assets/img/reviews/review-01.pdf b/src/assets/img/reviews/review-01.pdf new file mode 100644 index 0000000..91e759d Binary files /dev/null and b/src/assets/img/reviews/review-01.pdf differ diff --git a/src/assets/img/reviews/review-02.jpg b/src/assets/img/reviews/review-02.jpg new file mode 100644 index 0000000..a620e52 Binary files /dev/null and b/src/assets/img/reviews/review-02.jpg differ diff --git a/src/assets/img/reviews/review-02.pdf b/src/assets/img/reviews/review-02.pdf new file mode 100644 index 0000000..1869d5c Binary files /dev/null and b/src/assets/img/reviews/review-02.pdf differ diff --git a/src/assets/img/reviews/review-03.jpg b/src/assets/img/reviews/review-03.jpg new file mode 100644 index 0000000..3553711 Binary files /dev/null and b/src/assets/img/reviews/review-03.jpg differ diff --git a/src/assets/img/reviews/review-03.pdf b/src/assets/img/reviews/review-03.pdf new file mode 100644 index 0000000..6c6a906 Binary files /dev/null and b/src/assets/img/reviews/review-03.pdf differ diff --git a/src/assets/img/scvg/scvg-top.png b/src/assets/img/scvg/scvg-top.png new file mode 100644 index 0000000..7389e82 Binary files /dev/null and b/src/assets/img/scvg/scvg-top.png differ diff --git a/src/assets/img/scvg/scvg-top.svg b/src/assets/img/scvg/scvg-top.svg new file mode 100644 index 0000000..9ef1f67 --- /dev/null +++ b/src/assets/img/scvg/scvg-top.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/scvg/scvg01.png b/src/assets/img/scvg/scvg01.png new file mode 100644 index 0000000..0e11061 Binary files /dev/null and b/src/assets/img/scvg/scvg01.png differ diff --git a/src/assets/img/scvg/scvg02.png b/src/assets/img/scvg/scvg02.png new file mode 100644 index 0000000..ba48969 Binary files /dev/null and b/src/assets/img/scvg/scvg02.png differ diff --git a/src/assets/img/scvg/scvg03.png b/src/assets/img/scvg/scvg03.png new file mode 100644 index 0000000..5446330 Binary files /dev/null and b/src/assets/img/scvg/scvg03.png differ diff --git a/src/assets/img/scvg/scvg04.png b/src/assets/img/scvg/scvg04.png new file mode 100644 index 0000000..1e07261 Binary files /dev/null and b/src/assets/img/scvg/scvg04.png differ diff --git a/src/assets/img/scvg/scvg05.png b/src/assets/img/scvg/scvg05.png new file mode 100644 index 0000000..afc6ff8 Binary files /dev/null and b/src/assets/img/scvg/scvg05.png differ diff --git a/src/assets/img/sites-features.jpg b/src/assets/img/sites-features.jpg new file mode 100644 index 0000000..0bbd6af Binary files /dev/null and b/src/assets/img/sites-features.jpg differ diff --git a/src/assets/img/sites-functions.jpg b/src/assets/img/sites-functions.jpg new file mode 100644 index 0000000..2e42edc Binary files /dev/null and b/src/assets/img/sites-functions.jpg differ diff --git a/src/assets/img/sites.jpg b/src/assets/img/sites.jpg new file mode 100644 index 0000000..d98fb25 Binary files /dev/null and b/src/assets/img/sites.jpg differ diff --git a/src/assets/img/tk023/tk023-top.png b/src/assets/img/tk023/tk023-top.png new file mode 100644 index 0000000..451b8c5 Binary files /dev/null and b/src/assets/img/tk023/tk023-top.png differ diff --git a/src/assets/img/tk023/tk023-top.svg b/src/assets/img/tk023/tk023-top.svg new file mode 100644 index 0000000..5352edb --- /dev/null +++ b/src/assets/img/tk023/tk023-top.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/tk023/tk02301.png b/src/assets/img/tk023/tk02301.png new file mode 100644 index 0000000..a63c5d5 Binary files /dev/null and b/src/assets/img/tk023/tk02301.png differ diff --git a/src/assets/img/tk023/tk02302.png b/src/assets/img/tk023/tk02302.png new file mode 100644 index 0000000..33b3c7c Binary files /dev/null and b/src/assets/img/tk023/tk02302.png differ diff --git a/src/assets/img/tk023/tk02303.png b/src/assets/img/tk023/tk02303.png new file mode 100644 index 0000000..b80535e Binary files /dev/null and b/src/assets/img/tk023/tk02303.png differ diff --git a/src/assets/img/tk023/tk02304.png b/src/assets/img/tk023/tk02304.png new file mode 100644 index 0000000..d30b829 Binary files /dev/null and b/src/assets/img/tk023/tk02304.png differ diff --git a/src/assets/img/tk023/tk02305.png b/src/assets/img/tk023/tk02305.png new file mode 100644 index 0000000..d260a6c Binary files /dev/null and b/src/assets/img/tk023/tk02305.png differ diff --git a/src/assets/img/tk465/tk465-top.png b/src/assets/img/tk465/tk465-top.png new file mode 100644 index 0000000..69ca690 Binary files /dev/null and b/src/assets/img/tk465/tk465-top.png differ diff --git a/src/assets/img/tk465/tk465-top.svg b/src/assets/img/tk465/tk465-top.svg new file mode 100644 index 0000000..08c0d97 --- /dev/null +++ b/src/assets/img/tk465/tk465-top.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/tk465/tk46501.png b/src/assets/img/tk465/tk46501.png new file mode 100644 index 0000000..8d18d6d Binary files /dev/null and b/src/assets/img/tk465/tk46501.png differ diff --git a/src/assets/img/tk465/tk46502.png b/src/assets/img/tk465/tk46502.png new file mode 100644 index 0000000..aad741b Binary files /dev/null and b/src/assets/img/tk465/tk46502.png differ diff --git a/src/assets/img/tk465/tk46503.png b/src/assets/img/tk465/tk46503.png new file mode 100644 index 0000000..e2b1585 Binary files /dev/null and b/src/assets/img/tk465/tk46503.png differ diff --git a/src/assets/img/tk465/tk46504.png b/src/assets/img/tk465/tk46504.png new file mode 100644 index 0000000..f0b9d5b Binary files /dev/null and b/src/assets/img/tk465/tk46504.png differ diff --git a/src/assets/img/tk465/tk46505.png b/src/assets/img/tk465/tk46505.png new file mode 100644 index 0000000..d9f69fc Binary files /dev/null and b/src/assets/img/tk465/tk46505.png differ diff --git a/src/assets/img/vniigaz/vniigaz-top.png b/src/assets/img/vniigaz/vniigaz-top.png new file mode 100644 index 0000000..fc4def4 Binary files /dev/null and b/src/assets/img/vniigaz/vniigaz-top.png differ diff --git a/src/assets/img/vniigaz/vniigaz-top.svg b/src/assets/img/vniigaz/vniigaz-top.svg new file mode 100644 index 0000000..9ced007 --- /dev/null +++ b/src/assets/img/vniigaz/vniigaz-top.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/img/vniigaz/vniigaz01.png b/src/assets/img/vniigaz/vniigaz01.png new file mode 100644 index 0000000..d2d2670 Binary files /dev/null and b/src/assets/img/vniigaz/vniigaz01.png differ diff --git a/src/assets/img/vniigaz/vniigaz02.png b/src/assets/img/vniigaz/vniigaz02.png new file mode 100644 index 0000000..d2bebaa Binary files /dev/null and b/src/assets/img/vniigaz/vniigaz02.png differ diff --git a/src/assets/img/vniigaz/vniigaz03.png b/src/assets/img/vniigaz/vniigaz03.png new file mode 100644 index 0000000..7da8e96 Binary files /dev/null and b/src/assets/img/vniigaz/vniigaz03.png differ diff --git a/src/assets/img/vniigaz/vniigaz04.png b/src/assets/img/vniigaz/vniigaz04.png new file mode 100644 index 0000000..f872514 Binary files /dev/null and b/src/assets/img/vniigaz/vniigaz04.png differ diff --git a/src/environments/environment.development.ts b/src/environments/environment.development.ts new file mode 100644 index 0000000..f56418b --- /dev/null +++ b/src/environments/environment.development.ts @@ -0,0 +1,7 @@ +export const environment = { + production: false, + apiUrl: 'http://api.nirgroup.lc', + clientId: 2, + clientSecret: 'YllFbaRHMP0kCJLb0UdCcOfpTzA23ea3AOdIfRMj', + domenUrl: 'http://localhost:4200', + }; \ No newline at end of file diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 0000000..31f1a6f --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,7 @@ +export const environment = { + production: true, + apiUrl: 'http://api.andrey-nirgroup.testnir.ru', + clientId: 2, + clientSecret: 'DeZDnKSlldUPTjT0z9nq21C7zWnWwQ497HJ0eK3u', + domenUrl: 'https://nirgroup.testnir.ru', +}; diff --git a/src/fonts.scss b/src/fonts.scss new file mode 100644 index 0000000..688da21 --- /dev/null +++ b/src/fonts.scss @@ -0,0 +1,125 @@ +@font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-Black.ttf'); + font-weight: 900; + font-style: normal; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-BlackItalic.ttf'); + font-weight: 900; + font-style: italic; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf'); + font-weight: 800; + font-style: normal; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-ExtraBoldItalic.ttf'); + font-weight: 800; + font-style: italic; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-Bold.ttf'); + font-weight: 700; + font-style: normal; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-BoldItalic.ttf'); + font-weight: 700; + font-style: italic; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-SemiBold.ttf'); + font-weight: 600; + font-style: normal; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-SemiBoldItalic.ttf'); + font-weight: 600; + font-style: italic; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-Medium.ttf'); + font-weight: 500; + font-style: normal; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-MediumItalic.ttf'); + font-weight: 500; + font-style: italic; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-Regular.ttf'); + font-weight: 400; + font-style: normal; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-Italic.ttf'); + font-weight: 400; + font-style: italic; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-Light.ttf'); + font-weight: 300; + font-style: normal; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-LightItalic.ttf'); + font-weight: 300; + font-style: italic; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-ExtraLight.ttf'); + font-weight: 200; + font-style: normal; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-ExtraLightItalic.ttf'); + font-weight: 200; + font-style: italic; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-Thin.ttf'); + font-weight: 100; + font-style: normal; + } + + @font-face { + font-family: "Montserrat"; + src: url('assets/fonts/montserrat/Montserrat-ThinItalic.ttf'); + font-weight: 100; + font-style: italic; + } \ No newline at end of file diff --git a/src/main.server.ts b/src/main.server.ts index 4b9d4d1..412b65e 100644 --- a/src/main.server.ts +++ b/src/main.server.ts @@ -2,6 +2,7 @@ import { bootstrapApplication } from '@angular/platform-browser'; import { AppComponent } from './app/app.component'; import { config } from './app/app.config.server'; + const bootstrap = () => bootstrapApplication(AppComponent, config); export default bootstrap; diff --git a/src/main.ts b/src/main.ts index 35b00f3..2ce5d6e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,8 @@ import { bootstrapApplication } from '@angular/platform-browser'; import { appConfig } from './app/app.config'; import { AppComponent } from './app/app.component'; +import { register as registerSwiperElements } from 'swiper/element/bundle'; +registerSwiperElements() bootstrapApplication(AppComponent, appConfig) .catch((err) => console.error(err)); diff --git a/src/styles.scss b/src/styles.scss index 90d4ee0..063af90 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1 +1,457 @@ /* You can add global styles to this file, and also import other style files */ +body{ + margin: 0; + box-sizing: border-box; + app-root{ + display: flex; + flex-direction: column; + width: 100%; + overflow: hidden; + >*{ + display: flex; + flex-direction: column; + + } + + } + color: var(--clr-black); + font-variant-numeric: lining-nums tabular-nums; + font-family: Montserrat; + font-size: 20px; + font-style: normal; + font-weight: 400; + line-height: 28px; +} + +:root { + --clr-gr-lt:#F2F2F2; + --clr-gr:#D8D8D8; + --clr-black:rgba(0, 0, 0, 0.88); + --clr-black-lt:rgba(0, 0, 0, 0.63); + --clr-primary:#1D45F0; + --clr-danger: #af001d; + --clr-warning: #d1a837; + } + +h1{ + font-size: 60px; + font-weight: 600; + line-height: 72px; /* 120% */ + letter-spacing: -0.6px; + margin: 0; +} + + h2{ + font-size: 45px; + font-weight: 600; + line-height: 54px; + margin: 0; + } + h3{ + font-size: 30px; + font-weight: 600; + line-height: 40px; + margin: 0; + } + + h4{ + font-size: 20px; + font-weight: 600; + line-height: 28px; + margin: 0; + } + + .h5{ + font-size: 24px; + line-height: 32px; + margin: 0; + } + + a{ + text-decoration: none; + color: var(--clr-primary); + } + + .breadcrumbs{ + display: flex; + align-items: center; + gap: 16px; + margin-bottom: 60px; + } + + .btn{ + padding: 18px 30px; + border-radius: 8px; + font-family: Montserrat; + font-size: 16px; + font-weight: 600; + line-height: 24px; + letter-spacing: 0.64px; + text-transform: uppercase; + border: none; + cursor: pointer; + text-decoration: none; + &.primary{ + background-color: var(--clr-primary); + color: #FFF; + + } + &.white{ + background-color: #FFF; + color: var(--clr-primary); + border: solid 1px var(--clr-primary); + } + + &:disabled{ + opacity: 0.3; + cursor: not-allowed; + } + } + + .row{ + display: flex; + justify-content: space-between; + flex-wrap: wrap; + gap: 30px; + padding-block: 60px; + padding-inline: calc((100% - 1194px)/2 ); + .col,.col-2{ + flex: 0 0 0; + display: flex; + flex-direction: column; + gap: 30px; + align-items: baseline; + } + .col-2{ + box-sizing: border-box; + flex-basis: calc((100% + 30px) / 12 * 2 - 30px); + } + .col-12{ + box-sizing: border-box; + flex-basis: 100%; + } + .col-9{ + box-sizing: border-box; + flex-basis: calc((100% + 30px) / 12 * 9 - 30.5px); + } + .col-4{ + box-sizing: border-box; + flex-basis: calc((100% + 30px) / 12 * 4 - 30.5px); + } + .col-8{ + box-sizing: border-box; + flex-basis: calc((100% + 30px) / 12 * 8 - 30.5px); + } + .col-6{ + box-sizing: border-box; + flex-basis: calc((100% + 30px) / 12 * 6 - 30.5px); + } + } + .wide{ + padding-inline: calc((100% - 1380px)/2 ); +} +.center{ + display: flex; + justify-content: center; + align-items: center; +} + + + + .primary{ + color: var(--clr-primary); + } + .bg-primary{ + background-color: var(--clr-primary); + color: #FFF; + } + .bg-black-lt{ + background-color: var(--clr-black-lt); + color: #FFF; + } + .bg-light{ + background-color: var(--clr-gr-lt); + } + .bg-white{ + background-color: #FFF; + } + + .card{ + border-radius: 32px; + padding: 30px 60px; + overflow: hidden; + } + + .col.card-sm{ + border-radius: 16px; + padding: 60px 30px; + display: flex; + flex-direction: column; + align-items: center; + gap: 20px; + text-align: center; + a, button{ + margin-top: auto; + } + } + + .jumb{ + >div{ + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: center; + } + + .jumb-slogan{ + font-size: 24px; + font-weight: 400; + line-height: 32px; + + margin-block: 20px 30px; + } + } + + .jumb-card{ + width: 100%; + aspect-ratio: 582/466; + border-radius: 32px; + object-fit: cover; + } + + .fit-contain{ + object-fit: contain; + } + + .facts{ + display: flex; + flex-direction: row; + >div{ + flex: 1 1 0; + text-align: center; + border-left: 1px solid var(--clr-gr); + padding-inline:30px ; + + h2{ + margin-bottom: 10px; + } + } + >div:first-child{ + border: none; + padding-left: 0; + } + >div:last-child{ + padding-right: 0; + } + } + + .nowrap{ + flex-wrap: nowrap; + } + + + svg{ + width: 24px; + height: 24px; + display: inline-block; + } + + + ul{ + margin: 0; + padding-inline-start: 0; + li{ + list-style-type: none; + margin-inline-start: 40px; + margin-bottom: 20px; + &:last-child{ + margin-bottom: 0; + } + } + ::before{ + content: ""; + width: 40px; + height: 24px; + display: inline-block; + background: url("assets/ico/arrow_forward_24.svg") no-repeat; + margin-inline-start: -40px; + vertical-align: -6px; + } + } + + .anchor-menu{ + font-size: 16px; + font-weight: 400; + line-height: 24px; + display: flex; + justify-content: flex-start; + align-items: center; + gap: 0; + a{ + text-decoration: none; + color: var(--clr-black-lt); + border-bottom: 1px solid var(--clr-gr-lt); + padding: 14px; + cursor: pointer; + &:hover{ + border-bottom: 3px solid var(--clr-primary); + padding-bottom: 12px; + } + } + + } + + .longread{ + display: flex; + flex-wrap: wrap; + gap:30px; + align-items: center; + p{ + flex: 1 0 calc(50% - 15px); + max-width: calc(75% - 15px); + margin: 0; + } + .br{ + margin-right: calc(25% - 15px); + } + img{ + flex: 0 0 calc(49% - 15px); + width: calc(49% - 15px); + border-radius: 16px; + } + br{ + margin-bottom: 30px; + } +} + +@media screen and (max-width: 1240px){ + + h1{ + font-size: 48px; + font-weight: 600; + line-height: 64px; /* 120% */ + letter-spacing: -0.4px; + margin: 0; + } + + h2{ + font-size: 39px; + font-weight: 600; + line-height: 42px; + margin: 0; + } + h3{ + font-size: 27px; + font-weight: 600; + line-height: 32px; + margin: 0; + } + + h4{ + font-size: 20px; + font-weight: 600; + line-height: 28px; + margin: 0; + } + + .h5{ + font-size: 24px; + line-height: 32px; + margin: 0; + } + + + + .row{ + padding-inline: 30px; + } +} + +@media screen and (max-width: 1024px) { + body{ + font-size: 18px; + } + + h1{ + font-size: 36px; + line-height: 48px; + } + h2{ + font-size: 27px; + line-height: 36px; + } + h3{ + font-size: 21px; + line-height: 28px; + } + h4{ + font-size: 18px; + line-height: 26px; + } + h5{ + font-size: 20px; + line-height: 28px; + } + + .row{ + padding-inline: 60px; + padding-block: 40px; + .col-2, .col-4, .col-6, .col-8, .col-9, .col-12{ + flex-basis: 100%; + } + + } + + .jumb{ + flex-direction: column-reverse; + padding-top: 40px; + .jumb-card{ + border-radius: 24px; + + } + } + + .card{ + border-radius: 24px; + padding: 15px 20px; + } + + .facts{ + display: flex; + flex-direction: column; + >div{ + justify-content: center; + text-align: center; + border-left: none; + padding:30px; + border-bottom: 1px solid var(--clr-gr); + + + h2{ + margin-bottom: 10px; + } + } + >div:first-child{ + padding-left: 30px; + border-bottom: 1px solid var(--clr-gr); + } + >div:last-child{ + padding-right: 30px; + border-bottom: none; + } + } + + .anchor-menu{ + display: none; + } + + + +} + + +@media screen and (max-width: 768px) { + .row{ + padding-inline: 15px; + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 56b644d..008d7d9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,7 +3,7 @@ "compileOnSave": false, "compilerOptions": { "outDir": "./dist/out-tsc", - "strict": true, + "strict": false, "noImplicitOverride": true, "noPropertyAccessFromIndexSignature": true, "noImplicitReturns": true,