images fixed

This commit is contained in:
2024-09-16 15:35:31 +05:00
parent 521ed7a609
commit da1240ad0f
80 changed files with 104 additions and 109 deletions
+1 -1
View File
@@ -27,7 +27,7 @@
<meta property="og:url" content="https://graff.training" />
<meta
property="og:image"
content="https://graff.training/src/assets/decreasing/effect.jpg"
content="https://graff.training//decreasing/effect.jpg"
/>
<meta property="og:image:width" content="300" />
<meta property="og:image:height" content="200" />

Before

Width:  |  Height:  |  Size: 2.3 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB

Before

Width:  |  Height:  |  Size: 879 KiB

After

Width:  |  Height:  |  Size: 879 KiB

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Before

Width:  |  Height:  |  Size: 1.7 MiB

After

Width:  |  Height:  |  Size: 1.7 MiB

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

Before

Width:  |  Height:  |  Size: 317 KiB

After

Width:  |  Height:  |  Size: 317 KiB

Before

Width:  |  Height:  |  Size: 663 B

After

Width:  |  Height:  |  Size: 663 B

Before

Width:  |  Height:  |  Size: 394 B

After

Width:  |  Height:  |  Size: 394 B

Before

Width:  |  Height:  |  Size: 295 KiB

After

Width:  |  Height:  |  Size: 295 KiB

Before

Width:  |  Height:  |  Size: 370 B

After

Width:  |  Height:  |  Size: 370 B

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 213 KiB

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 233 KiB

Before

Width:  |  Height:  |  Size: 780 KiB

After

Width:  |  Height:  |  Size: 780 KiB

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Before

Width:  |  Height:  |  Size: 383 KiB

After

Width:  |  Height:  |  Size: 383 KiB

Before

Width:  |  Height:  |  Size: 3.9 MiB

After

Width:  |  Height:  |  Size: 3.9 MiB

Before

Width:  |  Height:  |  Size: 776 KiB

After

Width:  |  Height:  |  Size: 776 KiB

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Before

Width:  |  Height:  |  Size: 197 KiB

After

Width:  |  Height:  |  Size: 197 KiB

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Before

Width:  |  Height:  |  Size: 1.0 MiB

After

Width:  |  Height:  |  Size: 1.0 MiB

Before

Width:  |  Height:  |  Size: 551 KiB

After

Width:  |  Height:  |  Size: 551 KiB

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Before

Width:  |  Height:  |  Size: 1.3 MiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Before

Width:  |  Height:  |  Size: 578 KiB

After

Width:  |  Height:  |  Size: 578 KiB

Before

Width:  |  Height:  |  Size: 1022 KiB

After

Width:  |  Height:  |  Size: 1022 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Before

Width:  |  Height:  |  Size: 276 KiB

After

Width:  |  Height:  |  Size: 276 KiB

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 239 KiB

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 167 KiB

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Before

Width:  |  Height:  |  Size: 307 KiB

After

Width:  |  Height:  |  Size: 307 KiB

+39 -41
View File
@@ -1,9 +1,9 @@
import { AnimatePresence, motion } from 'framer-motion';
import { motion } from 'framer-motion';
import { PropsWithChildren, useRef, useState } from 'react';
import { AnchorLink } from '../../ui/AnchorLink';
import { Link } from 'react-router-dom';
import { Lang, useLanguageStore } from '../../store/languageStore';
import { useHover, useOnClickOutside } from 'usehooks-ts';
import { useLanguageStore } from '../../store/languageStore';
import { useOnClickOutside } from 'usehooks-ts';
import { useModalStore } from '../../store/modalStore';
import { ModalWithForm } from '../Main/ModalWithForm';
import { Button } from '../../ui/Button';
@@ -13,11 +13,9 @@ import { BurgerIcon } from '../icons/BurgerIcon';
import { CloseIcon } from '../icons/CloseIcon';
import { CubeIcon } from '../icons/CubeIcon';
import { useWindowWidth } from '../../hooks/useWindowWidth';
import { ChevronDownIcon } from '../icons/ChevronDownIcon';
export function Header() {
const [menuOpen, setMenuOpen] = useState(false);
// const { lang } = useLanguageStore();
const setModal = useModalStore(state => state.setModal);
const menuRef = useRef<HTMLDivElement>(null);
@@ -127,40 +125,40 @@ function ChooseLang({ currentLang }: { currentLang: 'RU' | 'EN' }) {
);
}
function LangToggler({ lang }: { lang: Lang }) {
const [open, setOpen] = useState(false);
const langTogglerRef = useRef<HTMLButtonElement>(null);
useOnClickOutside(langTogglerRef, () => setOpen(false));
const hovered = useHover(langTogglerRef);
// function LangToggler({ lang }: { lang: Lang }) {
// const [open, setOpen] = useState(false);
// const langTogglerRef = useRef<HTMLButtonElement>(null);
// useOnClickOutside(langTogglerRef, () => setOpen(false));
// const hovered = useHover(langTogglerRef);
return (
<div
className="max-w-[101px]s max-xl:hidden relative"
style={{ backgroundColor: hovered ? '#3D425C' : 'transparent' }}
>
<button
ref={langTogglerRef}
onClick={() => setOpen(prev => !prev)}
className="flex items-center h-full mx-6 font-semibold outline-none gap-x-1 btn-text"
>
{lang}
<ChevronDownIcon />
</button>
<AnimatePresence>
<motion.div
className="absolute z-20 grid grid-cols-2 min-w-[101px]s w-full"
onClick={() => setOpen(false)}
initial={{ visibility: 'hidden', opacity: 0 }}
animate={{
visibility: open ? 'visible' : 'hidden',
opacity: +open,
}}
exit={{ visibility: 'hidden', opacity: 0 }}
>
<ChooseLang currentLang={'RU'} />
<ChooseLang currentLang={'EN'} />
</motion.div>
</AnimatePresence>
</div>
);
}
// return (
// <div
// className="max-w-[101px]s max-xl:hidden relative"
// style={{ backgroundColor: hovered ? '#3D425C' : 'transparent' }}
// >
// <button
// ref={langTogglerRef}
// onClick={() => setOpen(prev => !prev)}
// className="flex items-center h-full mx-6 font-semibold outline-none gap-x-1 btn-text"
// >
// {lang}
// <ChevronDownIcon />
// </button>
// <AnimatePresence>
// <motion.div
// className="absolute z-20 grid grid-cols-2 min-w-[101px]s w-full"
// onClick={() => setOpen(false)}
// initial={{ visibility: 'hidden', opacity: 0 }}
// animate={{
// visibility: open ? 'visible' : 'hidden',
// opacity: +open,
// }}
// exit={{ visibility: 'hidden', opacity: 0 }}
// >
// <ChooseLang currentLang={'RU'} />
// <ChooseLang currentLang={'EN'} />
// </motion.div>
// </AnimatePresence>
// </div>
// );
// }
+1 -1
View File
@@ -47,7 +47,7 @@ export function Decreasing() {
</div>
<div className="xl:col-start-2 col-span-full">
<video
src="src/assets/decreasing/decreasing.mp4"
src="/decreasing/decreasing.mp4"
autoPlay
playsInline
muted
+2 -2
View File
@@ -19,12 +19,12 @@ export function Distance() {
необходимости установки дополнительного ПО.
</p>
<img
src="src/assets/distance/datamining_2.jpg"
src="/distance/datamining_2.jpg"
alt="дистанционное обучение с любого устройства"
className="self-stretch object-cover col-span-6 row-start-2 lg:col-start-1 max-sm:mb-4"
/>
<img
src="src/assets/distance/datamining_1.jpg"
src="/distance/datamining_1.jpg"
alt="дистанционное обучение с любого устройства"
className="self-stretch object-cover h-full col-span-3 row-start-2 lg:col-start-7 lg:col-span-6"
/>
+1 -1
View File
@@ -84,7 +84,7 @@ function Figure({
<motion.div
ref={root}
initial={{
background: `bottom right / 45% url(src/assets/efficiency/${type}.png) no-repeat, bottom right / 0% url(src/assets/efficiency/efficiency_backlight.svg) no-repeat`,
background: `bottom right / 45% url(/efficiency/${type}.png) no-repeat, bottom right / 0% url(/efficiency/efficiency_backlight.svg) no-repeat`,
}}
whileHover={{
backgroundSize: '45%,100%',
+1 -1
View File
@@ -36,7 +36,7 @@ export function Ellipse() {
<div
ref={ref}
style={{ top: mousePos[1], left: mousePos[0] }}
className="fixed -z-[9] bg-[url('src/assets/Ellipse.png')] bg-cover bg-no-repeat bg-center -translate-y-[50%] -translate-x-[50%] aspect-[348.75/262.77] w-[21.75vw]"
className="fixed -z-[9] bg-[url('/Ellipse.png')] bg-cover bg-no-repeat bg-center -translate-y-[50%] -translate-x-[50%] aspect-[348.75/262.77] w-[21.75vw]"
/>
);
}
+3 -3
View File
@@ -17,7 +17,7 @@ export function MultiUser() {
<br className="lg:hidden" />
режим обучения
</Title>
<div className="max-lg:hidden lg:col-span-6 col-start-1 lg:row-span-2 sm:col-span-3 lg:row-start-2 sm:row-start-3 sm:row-span-1 bg-[url(src/assets/availables/image.png)] bg-cover bg-no-repeat bg-left-top" />
<div className="max-lg:hidden lg:col-span-6 col-start-1 lg:row-span-2 sm:col-span-3 lg:row-start-2 sm:row-start-3 sm:row-span-1 bg-[url(/availables/image.png)] bg-cover bg-no-repeat bg-left-top" />
<div
itemProp="multiUserFeatures"
itemScope
@@ -37,7 +37,7 @@ export function MultiUser() {
text="координация действий между несколькими сотрудниками"
/>
</div>
<div className="lg:hidden lg:col-span-6 col-start-1 lg:row-span-2 sm:col-span-3 lg:row-start-2 sm:row-start-3 sm:row-span-1 bg-[url(src/assets/availables/image.png)] bg-cover bg-no-repeat bg-center sm:aspect-[728/356] aspect-[3/2] max-sm:-mx-6" />
<div className="lg:hidden lg:col-span-6 col-start-1 lg:row-span-2 sm:col-span-3 lg:row-start-2 sm:row-start-3 sm:row-span-1 bg-[url(/availables/image.png)] bg-cover bg-no-repeat bg-center sm:aspect-[728/356] aspect-[3/2] max-sm:-mx-6" />
<AppearanceText
className="col-span-7 col-start-1 mt-8 lg:col-span-6 max-lg:mt-6"
splits={[
@@ -74,7 +74,7 @@ function MultiUserFeature({
<div
itemProp={type}
ref={ref}
className="max-sm:border-t max-sm:last:border-b sm:max-lg:border-y max-h-60 sm:max-lg:[&:not(:last-child)]:border-r bg-right-bottom bg-no-repeat flex flex-col bg-[url(src/assets/availables/highlight.png)] bg-[length:0%_0%] hover:bg-[length:100%_100%] transition-all sm:min-h-[280px] duration-300 w-full justify-between items-start px-10 py-6 lg:border-t lg:first:border-r lg:last:border-b border-[#3D425C] col-span-1 lg:last:col-span-2 max-sm:aspect-[3/2]"
className="max-sm:border-t max-sm:last:border-b sm:max-lg:border-y max-h-60 sm:max-lg:[&:not(:last-child)]:border-r bg-right-bottom bg-no-repeat flex flex-col bg-[url(/availables/highlight.png)] bg-[length:0%_0%] hover:bg-[length:100%_100%] transition-all sm:min-h-[280px] duration-300 w-full justify-between items-start px-10 py-6 lg:border-t lg:first:border-r lg:last:border-b border-[#3D425C] col-span-1 lg:last:col-span-2 max-sm:aspect-[3/2]"
>
<div className="max-lg:hidden">
{getIcon(type, hovered, 'mb-4 max-lg:hidden w-14 h-14')}
@@ -41,12 +41,12 @@ export const ForTeachingTab = forwardRef<HTMLDivElement>((_, ref) => (
</div>
</div>
<img
src="src/assets/products/teaching/teaching.png"
src="/products/teaching/teaching.png"
className="max-sm:hidden w-[calc(685/1600*100vw)] sm:self-start"
alt="обучение"
/>
<img
src="src/assets/products/teaching/teaching_mobile.png"
src="/products/teaching/teaching_mobile.png"
className="mt-5 -mx-6 sm:hidden"
alt="обучение"
/>
@@ -82,7 +82,7 @@ export const IndustrialTab = forwardRef<HTMLDivElement, { sticked: boolean }>(
</div>
</div>
<img
src="src/assets/products/trainings/trainings_desktop.png"
src="/products/trainings/trainings_desktop.png"
className={
'absolute right-0 top-[121px] object-cover lg:w-[calc(1000/1600*100vw)] xl:w-[calc(1152/1600*100vw)] max-lg:hidden ' +
(sticked ? 'transition-opacity opacity-0' : 'opacity-100')
@@ -90,7 +90,7 @@ export const IndustrialTab = forwardRef<HTMLDivElement, { sticked: boolean }>(
alt="тренажеры"
/>
<img
src="src/assets/products/trainings/trainings_tablet.png"
src="/products/trainings/trainings_tablet.png"
className={
'absolute right-0 top-[120px] object-cover w-[calc(438/768*100vw)] hidden sm:max-lg:block ' +
(sticked ? 'transition-opacity opacity-0' : 'opacity-100')
@@ -98,7 +98,7 @@ export const IndustrialTab = forwardRef<HTMLDivElement, { sticked: boolean }>(
alt="тренажеры"
/>
<img
src="src/assets/products/trainings/trainings_mobile.png"
src="/products/trainings/trainings_mobile.png"
className="object-cover object-center sm:hidden"
alt="тренажеры"
/>
@@ -53,7 +53,7 @@ export const SimulatorsTab = forwardRef<HTMLDivElement, { sticked: boolean }>(
>
<div className="space-y-[10px] lg:w-[calc(498.5/1600*100vw)] sm:w-[calc(331/768*100vw)]">
<img
src="src/assets/products/simulators/rzhd2.jpg"
src="/products/simulators/rzhd2.jpg"
className="object-cover sm:max-lg:aspect-[331/292] max-sm:aspect-[328/172]"
alt="ржд"
/>
@@ -64,7 +64,7 @@ export const SimulatorsTab = forwardRef<HTMLDivElement, { sticked: boolean }>(
</div>
<div className="space-y-[10px] lg:w-[calc(498.5/1600*100vw)] sm:w-[calc(331/768*100vw)]">
<img
src="src/assets/products/simulators/rzhd.jpg"
src="/products/simulators/rzhd.jpg"
className="object-cover sm:max-lg:aspect-[331/292] max-sm:aspect-[328/172]"
alt="ржд"
/>
+2 -2
View File
@@ -18,7 +18,7 @@ export function Showreel() {
return (
<div className="lg:mb-[100px] sm:mb-[70px] mb-14 w-full relative aspect-[1551/616] flex justify-center items-center group">
<video
src="/src/assets/video/showreel.mp4"
src="/video/showreel.mp4"
autoPlay
loop
muted
@@ -28,7 +28,7 @@ export function Showreel() {
<button
className="absolute z-10 lg:p-8 sm:p-6 p-4 rounded-full border group-hover:block hidden bg-[#14161F33]"
onClick={() => {
setModal(<VideoModal link={'/src/assets/video/showreel.mp4'} />);
setModal(<VideoModal link={'/video/showreel.mp4'} />);
}}
>
<Fullscreen />
+22 -22
View File
@@ -30,7 +30,7 @@ function TeachingFeaturesForDesktop() {
<div
itemProp="processManagment"
itemType="https://schema.org/ProcessManagment"
className="p-10 relative aspect-[752/400] border border-[#3D425C] bg-[url(src/assets/teaching/highlight_desktop.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-right-top transition-all overflow-hidden flex justify-between"
className="p-10 relative aspect-[752/400] border border-[#3D425C] bg-[url(/teaching/highlight_desktop.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-right-top transition-all overflow-hidden flex justify-between"
>
<div className="space-y-2 max-w-[calc(380/1600*100vw)]">
<TeachingFeatureTitle>Управление процессом</TeachingFeatureTitle>
@@ -41,12 +41,12 @@ function TeachingFeaturesForDesktop() {
</TeachingFeatureDescription>
</div>
<img
src="src/assets/teaching/master_card.jpg"
src="/teaching/master_card.jpg"
className="rounded-lg absolute max-w-[calc(198/1600*100vw)] left-[calc(321/1600*100vw)] bottom-10 z-10"
alt="Управление процессом"
/>
<img
src="src/assets/teaching/schedule_mini.jpg"
src="/teaching/schedule_mini.jpg"
className="rounded-tl-2xl max-w-[calc(406/1600*100vw)] absolute top-[calc(69/400*100%)] left-[calc(475/1600*100vw)]"
alt="Управление процессом"
/>
@@ -55,7 +55,7 @@ function TeachingFeaturesForDesktop() {
<div
itemProp="usersManagment"
itemType="https://schema.org/UsersManagment"
className="p-10 relative aspect-[752/400] border border-[#3D425C] bg-[url(src/assets/teaching/highlight_desktop.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-right-top transition-all flex justify-between gap-x-3 overflow-hidden"
className="p-10 relative aspect-[752/400] border border-[#3D425C] bg-[url(/teaching/highlight_desktop.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-right-top transition-all flex justify-between gap-x-3 overflow-hidden"
>
<div className="space-y-2 max-w-[calc(380/752*100%)]">
<TeachingFeatureTitle>Управление пользователями</TeachingFeatureTitle>
@@ -65,7 +65,7 @@ function TeachingFeaturesForDesktop() {
</TeachingFeatureDescription>
</div>
<img
src="src/assets/teaching/modal.png"
src="/teaching/modal.png"
className="-mr-10 rounded-lg"
alt="Управление пользователями"
/>
@@ -74,7 +74,7 @@ function TeachingFeaturesForDesktop() {
<div
itemProp="teachingVideoRecording"
itemType="https://schema.org/TeachingVideoRecording"
className="p-10 relative border border-[#3D425C] aspect-[752/400] bg-[url(src/assets/teaching/highlight_desktop.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-right-top transition-all flex justify-between overflow-hidden"
className="p-10 relative border border-[#3D425C] aspect-[752/400] bg-[url(/teaching/highlight_desktop.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-right-top transition-all flex justify-between overflow-hidden"
>
<div className="space-y-2 max-w-[calc(410/752*100%)]">
<TeachingFeatureTitle>Видеозапись обучения</TeachingFeatureTitle>
@@ -84,12 +84,12 @@ function TeachingFeaturesForDesktop() {
</TeachingFeatureDescription>
</div>
<img
src="src/assets/teaching/manage_video.jpg"
src="/teaching/manage_video.jpg"
className="rounded-lg absolute z-30 max-w-[calc(174.75/1600*100vw)] right-[calc(183/752*100%)] top-[calc(256/400*100%)]"
alt="Видеозапись обучения"
/>
<img
src="src/assets/teaching/pinned_windows.jpg"
src="/teaching/pinned_windows.jpg"
className="rounded-tl-lg absolute max-w-[calc(281/752*100%)] right-0 bottom-0 z-10"
alt="Видеозапись обучения"
/>
@@ -98,7 +98,7 @@ function TeachingFeaturesForDesktop() {
<div
itemProp="teachingStats"
itemType="https://schema.org/TeachingStats"
className="p-10 relative aspect-[752/400] border border-[#3D425C] bg-[url(src/assets/teaching/highlight_desktop.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-right-top transition-all flex justify-between overflow-hidden"
className="p-10 relative aspect-[752/400] border border-[#3D425C] bg-[url(/teaching/highlight_desktop.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-right-top transition-all flex justify-between overflow-hidden"
>
<div className="space-y-2 max-w-[calc(350/752*100%)]">
<TeachingFeatureTitle>Статистика обучения</TeachingFeatureTitle>
@@ -109,12 +109,12 @@ function TeachingFeaturesForDesktop() {
</TeachingFeatureDescription>
</div>
<img
src="src/assets/teaching/current_schedule.jpg"
src="/teaching/current_schedule.jpg"
className="rounded-lg absolute max-w-[calc(222/1600*100vw)] right-[calc(225/1600*100vw)] top-[calc(198/400*100%)]"
alt="Расписание"
/>
<img
src="src/assets/teaching/stats.jpg"
src="/teaching/stats.jpg"
className="rounded-lg absolute max-w-[calc(222/1600*100vw)] right-[calc(34/1600*100vw)] top-[calc(88/400*100%)]"
alt="Статистика"
/>
@@ -129,7 +129,7 @@ function TeachingFeaturesForOtherScreens() {
<div
itemProp="processManagment"
itemType="https://schema.org/ProcessManagment"
className="sm:flex justify-between max-sm:relative sm:aspect-[768/240] aspect-[6/5] order-1 border-t border-[#3D425C] sm:bg-[url(src/assets/teaching/highlight_tablet.png)] bg-[url(src/assets/teaching/highlight_mobile.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-bottom transition-all sm:pt-6 sm:px-6 pt-5 px-5 overflow-hidden"
className="sm:flex justify-between max-sm:relative sm:aspect-[768/240] aspect-[6/5] order-1 border-t border-[#3D425C] sm:bg-[url(/teaching/highlight_tablet.png)] bg-[url(/teaching/highlight_mobile.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-bottom transition-all sm:pt-6 sm:px-6 pt-5 px-5 overflow-hidden"
>
<div className="space-y-1">
<TeachingFeatureTitle>
@@ -141,7 +141,7 @@ function TeachingFeaturesForOtherScreens() {
</TeachingFeatureDescription>
</div>
<img
src="src/assets/teaching/modal.png"
src="/teaching/modal.png"
className="rounded-md max-sm:absolute sm:-bottom-1 max-sm:left-[calc(101/360*100vw)] top-[calc(97/300*100%)]"
alt="Управление пользователями"
/>
@@ -150,7 +150,7 @@ function TeachingFeaturesForOtherScreens() {
<div
itemProp="usersManagment"
itemType="https://schema.org/UsersManagment"
className="overflow-hidden relative flex sm:aspect-[768/240] aspect-[36/30] sm:order-2 order-3 border-t border-[#3D425C] sm:bg-[url(src/assets/teaching/highlight_tablet.png)] bg-[url(src/assets/teaching/highlight_mobile.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-bottom transition-all sm:pt-6 sm:px-6 pt-5 px-5"
className="overflow-hidden relative flex sm:aspect-[768/240] aspect-[36/30] sm:order-2 order-3 border-t border-[#3D425C] sm:bg-[url(/teaching/highlight_tablet.png)] bg-[url(/teaching/highlight_mobile.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-bottom transition-all sm:pt-6 sm:px-6 pt-5 px-5"
>
<div className="space-y-1">
<TeachingFeatureTitle>Видеозапись обучения</TeachingFeatureTitle>
@@ -160,12 +160,12 @@ function TeachingFeaturesForOtherScreens() {
</TeachingFeatureDescription>
</div>
<img
src="src/assets/teaching/pinned_windows_mini.jpg"
src="/teaching/pinned_windows_mini.jpg"
className="rounded-md absolute sm:max-w-[50vw] sm:left-[calc(417/768*100vw)] left-[calc(83/360*100vw)] max-sm:top-[calc(119/300*100%)] sm:mt-3"
alt="Видеозапись обучения"
/>
<img
src="src/assets/teaching/manage_video.jpg"
src="/teaching/manage_video.jpg"
className="rounded-lg absolute sm:max-w-[calc(130/768*100vw)] max-w-[calc(130/360*100vw)] bottom-5 sm:bottom-[calc(1/12*100%)] sm:left-[calc(350/768*100vw)]"
alt="Видеозапись обучения"
/>
@@ -174,7 +174,7 @@ function TeachingFeaturesForOtherScreens() {
<div
itemProp="teachingVideoRecording"
itemType="https://schema.org/TeachingVideoRecording"
className="flex relative sm:aspect-[768/240] aspect-[6/5] border-t border-[#3D425C] order-2 sm:order-3 sm:bg-[url(src/assets/teaching/highlight_tablet.png)] bg-[url(src/assets/teaching/highlight_mobile.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-bottom transition-all sm:pt-6 sm:px-6 pt-5 px-5 overflow-hidden"
className="flex relative sm:aspect-[768/240] aspect-[6/5] border-t border-[#3D425C] order-2 sm:order-3 sm:bg-[url(/teaching/highlight_tablet.png)] bg-[url(/teaching/highlight_mobile.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-bottom transition-all sm:pt-6 sm:px-6 pt-5 px-5 overflow-hidden"
>
<div className="space-y-1">
<TeachingFeatureTitle>Управление процессом</TeachingFeatureTitle>
@@ -185,12 +185,12 @@ function TeachingFeaturesForOtherScreens() {
</TeachingFeatureDescription>
</div>
<img
src="src/assets/teaching/schedule.jpg"
src="/teaching/schedule.jpg"
className="rounded-tl-xl absolute sm:max-w-[calc(351/768*100vw)] max-w-[calc(304.5/360*100vw)] max-sm:left-[calc(132/360*100vw)] sm:right-0 max-sm:top-[calc(119/300*100%)]"
alt="Расписание"
/>
<img
src="src/assets/teaching/master_card.jpg"
src="/teaching/master_card.jpg"
className="rounded-md absolute sm:max-w-[calc(148/768*100vw)] max-w-[calc(148/360*100vw)] sm:bottom-[calc(17/240*100%)] sm:left-[calc(306/768*100vw)] max-sm:bottom-5"
alt="Управление процессом"
/>
@@ -199,7 +199,7 @@ function TeachingFeaturesForOtherScreens() {
<div
itemProp="teachingStats"
itemType="https://schema.org/TeachingStats"
className="flex justify-between items-start relative sm:aspect-[768/240] aspect-[36/30] border-y order-4 border-[#3D425C] sm:bg-[url(src/assets/teaching/highlight_tablet.png)] bg-[url(src/assets/teaching/highlight_mobile.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-bottom transition-all sm:py-6 sm:px-6 py-5 px-5 overflow-hidden"
className="flex justify-between items-start relative sm:aspect-[768/240] aspect-[36/30] border-y order-4 border-[#3D425C] sm:bg-[url(/teaching/highlight_tablet.png)] bg-[url(/teaching/highlight_mobile.png)] bg-[length:0%] hover:bg-[length:100%] bg-no-repeat bg-bottom transition-all sm:py-6 sm:px-6 py-5 px-5 overflow-hidden"
>
<div className="space-y-1">
<TeachingFeatureTitle>Статистика обучения</TeachingFeatureTitle>
@@ -209,12 +209,12 @@ function TeachingFeaturesForOtherScreens() {
</TeachingFeatureDescription>
</div>
<img
src="src/assets/teaching/stats.jpg"
src="/teaching/stats.jpg"
className="rounded-lg absolute sm:right-6 sm:max-w-[calc(166/768*100vw)] max-w-[calc(166/360*100vw)] max-sm:left-[calc(142/360*100vw)] max-sm:bottom-[calc(34/320*100%)]"
alt="Статистика обучения"
/>
<img
src="src/assets/teaching/current_schedule.jpg"
src="/teaching/current_schedule.jpg"
className="rounded-lg absolute sm:bottom-6 sm:right-[calc(162.5/768*100vw)] sm:max-w-[calc(166.5/768*100vw)] max-w-[calc(166/360*100vw)] bottom-5"
alt="Расписание"
/>
+3 -3
View File
@@ -26,19 +26,19 @@ export function Trainings() {
>
<TrainingsFeature
order={1}
src="src/assets/trainings/vr.png"
src="/trainings/vr.png"
title="VR - тренажеры"
text="Обучение навыкам работы с инструментами и оборудованием. Пешее хождение по территории или между оборудованием"
/>
<TrainingsFeature
order={2}
src="src/assets/trainings/stand.png"
src="/trainings/stand.png"
title="Cтенды"
text="Отработки навыков вождение и управления техникой. Работа с панелями управления"
/>
<TrainingsFeature
order={3}
src="src/assets/trainings/classroom.png"
src="/trainings/classroom.png"
title="Учебные классы"
text="Оснащение учебных классов и центров всем необходимым для современного обучения и профессиональной подготовки кадров"
/>
+15 -15
View File
@@ -2,39 +2,39 @@ import { IClient } from '../types/IClient';
export const clients: IClient[] = [
{
src: '/src/assets/clients/aircraft_industries.png',
src: '/clients/aircraft_industries.png',
title: 'Aircraft Industries',
},
{
src: '/src/assets/clients/mintrans.png',
src: '/clients/mintrans.png',
title: 'Министерство транспорта Российской Федерации',
},
{
src: '/src/assets/clients/moscow_government.png',
src: '/clients/moscow_government.png',
title: 'Правительство Москвы',
},
{ src: '/src/assets/clients/npoa.png', title: 'НПО Автоматики' },
{ src: '/src/assets/clients/elem.png', title: 'Elem' },
{ src: '/clients/npoa.png', title: 'НПО Автоматики' },
{ src: '/clients/elem.png', title: 'Elem' },
{
src: '/src/assets/clients/RussianRailways.png',
src: '/clients/RussianRailways.png',
title: 'Российские железные дороги',
},
{ src: '/src/assets/clients/uralvagonzavod.png', title: 'Уралвагонзавод' },
{ src: '/clients/uralvagonzavod.png', title: 'Уралвагонзавод' },
{
src: '/src/assets/clients/electro_him_pribor.png',
src: '/clients/electro_him_pribor.png',
title: 'комбинат Электрозимприбор',
},
{ src: '/src/assets/clients/rosatom.png', title: 'Росатом' },
{ src: '/src/assets/clients/croc.png', title: 'Croc' },
{ src: '/src/assets/clients/uralhimmash.png', title: 'Уралхиммаш' },
{ src: '/clients/rosatom.png', title: 'Росатом' },
{ src: '/clients/croc.png', title: 'Croc' },
{ src: '/clients/uralhimmash.png', title: 'Уралхиммаш' },
{
src: '/src/assets/clients/urfu.png',
src: '/clients/urfu.png',
title: 'Уральский федеральный университет',
},
{
src: '/src/assets/clients/uztm.png',
src: '/clients/uztm.png',
title: 'Уральский завод тяжелого машиностроения',
},
{ src: '/src/assets/clients/dubai_police.png', title: 'Dubai Police' },
{ src: '/src/assets/clients/ugmk.png', title: 'УГМК' },
{ src: '/clients/dubai_police.png', title: 'Dubai Police' },
{ src: '/clients/ugmk.png', title: 'УГМК' },
];
+7 -10
View File
@@ -2,7 +2,7 @@ import { IProject, Media } from '../types/IProject';
export const projects: IProject<Media>[] = [
{
src: 'src/assets/projects/loader.png',
src: '/projects/loader.png',
tags: ['Симулятор'],
title: 'Симулятор погрузчика',
media: Media.img,
@@ -11,43 +11,40 @@ export const projects: IProject<Media>[] = [
{
year: '2024',
media: Media.video,
src: [
'src/assets/projects/operator.mp4',
'src/assets/projects/operator.png',
],
src: ['/projects/operator.mp4', '/projects/operator.png'],
tags: ['Симулятор', 'VR-приложение'],
title: 'Обучение работе с системой водоочистки',
} as IProject<Media.video>,
{
src: 'src/assets/projects/plane.png',
src: '/projects/plane.png',
tags: ['Симулятор', 'VR-приложение'],
title: 'L 410 NG Aircraft',
year: '2024',
media: Media.img,
},
{
src: 'src/assets/projects/hangar.png',
src: '/projects/hangar.png',
year: '2024',
tags: ['Симулятор', 'VR-приложение'],
title: 'Сборка-разборка вертолётного двигателя',
media: Media.img,
},
{
src: 'src/assets/projects/trains.png',
src: '/projects/trains.png',
year: '2024',
tags: ['Симулятор', 'VR-приложение'],
title: 'Тренажер РЖД: ЭП2Д, Иволга, ЭП20, ТЭ33А, ТЭМ2',
media: Media.img,
},
{
src: 'src/assets/projects/laboratory.png',
src: '/projects/laboratory.png',
tags: ['Симулятор', 'VR-приложение'],
title: 'Учебная лаборатория определения жирности молока',
year: '2024',
media: Media.img,
},
{
src: 'src/assets/projects/train_big.jpg',
src: '/projects/train_big.jpg',
year: '2024',
tags: ['Симулятор'],
title: 'Симулятор машиниста',