diff --git a/composer.lock b/composer.lock index 281a9c8..da28734 100644 --- a/composer.lock +++ b/composer.lock @@ -93,11 +93,11 @@ }, { "name": "mirzaev/minimal", - "version": "3.8.5", + "version": "3.8.6", "source": { "type": "git", "url": "https://git.svoboda.works/mirzaev/minimal", - "reference": "ed2a41a13973802e884513e1357807dc4d44a04a" + "reference": "584285b92ce84dd219891639f065a0c55bda7d41" }, "require": { "php": "~8.4" @@ -138,7 +138,7 @@ "docs": "https://git.svoboda.works/mirzaev/minimal/wiki", "issues": "https://git.svoboda.works/mirzaev/minimal/issues" }, - "time": "2025-11-03T19:42:27+00:00" + "time": "2025-11-04T09:27:54+00:00" }, { "name": "psr/cache", @@ -344,16 +344,16 @@ }, { "name": "symfony/cache", - "version": "v7.3.5", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "4a55feb59664f49042a0824c0f955e2f4c1412ad" + "reference": "1277a1ec61c8d93ea61b2a59738f1deb9bfb6701" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/4a55feb59664f49042a0824c0f955e2f4c1412ad", - "reference": "4a55feb59664f49042a0824c0f955e2f4c1412ad", + "url": "https://api.github.com/repos/symfony/cache/zipball/1277a1ec61c8d93ea61b2a59738f1deb9bfb6701", + "reference": "1277a1ec61c8d93ea61b2a59738f1deb9bfb6701", "shasum": "" }, "require": { @@ -422,7 +422,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.3.5" + "source": "https://github.com/symfony/cache/tree/v7.3.6" }, "funding": [ { @@ -442,7 +442,7 @@ "type": "tidelift" } ], - "time": "2025-10-16T13:55:38+00:00" + "time": "2025-10-30T13:22:58+00:00" }, { "name": "symfony/cache-contracts", @@ -522,16 +522,16 @@ }, { "name": "symfony/config", - "version": "v7.3.4", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "8a09223170046d2cfda3d2e11af01df2c641e961" + "reference": "9d18eba95655a3152ae4c1d53c6cc34eb4d4a0b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/8a09223170046d2cfda3d2e11af01df2c641e961", - "reference": "8a09223170046d2cfda3d2e11af01df2c641e961", + "url": "https://api.github.com/repos/symfony/config/zipball/9d18eba95655a3152ae4c1d53c6cc34eb4d4a0b7", + "reference": "9d18eba95655a3152ae4c1d53c6cc34eb4d4a0b7", "shasum": "" }, "require": { @@ -577,7 +577,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.3.4" + "source": "https://github.com/symfony/config/tree/v7.3.6" }, "funding": [ { @@ -597,20 +597,20 @@ "type": "tidelift" } ], - "time": "2025-09-22T12:46:16+00:00" + "time": "2025-11-02T08:04:43+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.3.4", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "82119812ab0bf3425c1234d413efd1b19bb92ae4" + "reference": "98af8bb46c56aedd9dd5a7f0414fc72bf2dcfe69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/82119812ab0bf3425c1234d413efd1b19bb92ae4", - "reference": "82119812ab0bf3425c1234d413efd1b19bb92ae4", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/98af8bb46c56aedd9dd5a7f0414fc72bf2dcfe69", + "reference": "98af8bb46c56aedd9dd5a7f0414fc72bf2dcfe69", "shasum": "" }, "require": { @@ -661,7 +661,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.3.4" + "source": "https://github.com/symfony/dependency-injection/tree/v7.3.6" }, "funding": [ { @@ -681,7 +681,7 @@ "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2025-10-31T10:11:11+00:00" }, { "name": "symfony/deprecation-contracts", @@ -752,16 +752,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.3.4", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4" + "reference": "bbe40bfab84323d99dab491b716ff142410a92a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", - "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/bbe40bfab84323d99dab491b716ff142410a92a8", + "reference": "bbe40bfab84323d99dab491b716ff142410a92a8", "shasum": "" }, "require": { @@ -809,7 +809,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.3.4" + "source": "https://github.com/symfony/error-handler/tree/v7.3.6" }, "funding": [ { @@ -829,7 +829,7 @@ "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2025-10-31T19:12:50+00:00" }, { "name": "symfony/event-dispatcher", @@ -993,16 +993,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.3.2", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd" + "reference": "e9bcfd7837928ab656276fe00464092cc9e1826a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/edcbb768a186b5c3f25d0643159a787d3e63b7fd", - "reference": "edcbb768a186b5c3f25d0643159a787d3e63b7fd", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e9bcfd7837928ab656276fe00464092cc9e1826a", + "reference": "e9bcfd7837928ab656276fe00464092cc9e1826a", "shasum": "" }, "require": { @@ -1039,7 +1039,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.3.2" + "source": "https://github.com/symfony/filesystem/tree/v7.3.6" }, "funding": [ { @@ -1059,7 +1059,7 @@ "type": "tidelift" } ], - "time": "2025-07-07T08:17:47+00:00" + "time": "2025-11-05T09:52:27+00:00" }, { "name": "symfony/finder", @@ -1131,16 +1131,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v7.3.5", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "ebd42b1fc2652b96d33520195ea0f6e55c36f09d" + "reference": "cabfdfa82bc4f75d693a329fe263d96937636b77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/ebd42b1fc2652b96d33520195ea0f6e55c36f09d", - "reference": "ebd42b1fc2652b96d33520195ea0f6e55c36f09d", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/cabfdfa82bc4f75d693a329fe263d96937636b77", + "reference": "cabfdfa82bc4f75d693a329fe263d96937636b77", "shasum": "" }, "require": { @@ -1265,7 +1265,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v7.3.5" + "source": "https://github.com/symfony/framework-bundle/tree/v7.3.6" }, "funding": [ { @@ -1285,20 +1285,20 @@ "type": "tidelift" } ], - "time": "2025-10-16T16:16:53+00:00" + "time": "2025-10-30T09:42:24+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.3.5", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ce31218c7cac92eab280762c4375fb70a6f4f897" + "reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ce31218c7cac92eab280762c4375fb70a6f4f897", - "reference": "ce31218c7cac92eab280762c4375fb70a6f4f897", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6379e490d6ecfc5c4224ff3a754b90495ecd135c", + "reference": "6379e490d6ecfc5c4224ff3a754b90495ecd135c", "shasum": "" }, "require": { @@ -1348,7 +1348,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.3.5" + "source": "https://github.com/symfony/http-foundation/tree/v7.3.6" }, "funding": [ { @@ -1368,20 +1368,20 @@ "type": "tidelift" } ], - "time": "2025-10-24T21:42:11+00:00" + "time": "2025-11-06T11:05:57+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.3.5", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "24fd3f123532e26025f49f1abefcc01a69ef15ab" + "reference": "f9a34dc0196677250e3609c2fac9de9e1551a262" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/24fd3f123532e26025f49f1abefcc01a69ef15ab", - "reference": "24fd3f123532e26025f49f1abefcc01a69ef15ab", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9a34dc0196677250e3609c2fac9de9e1551a262", + "reference": "f9a34dc0196677250e3609c2fac9de9e1551a262", "shasum": "" }, "require": { @@ -1466,7 +1466,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.3.5" + "source": "https://github.com/symfony/http-kernel/tree/v7.3.6" }, "funding": [ { @@ -1486,7 +1486,7 @@ "type": "tidelift" } ], - "time": "2025-10-28T10:19:01+00:00" + "time": "2025-11-06T20:58:12+00:00" }, { "name": "symfony/intl", @@ -1828,16 +1828,16 @@ }, { "name": "symfony/routing", - "version": "v7.3.4", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c" + "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/8dc648e159e9bac02b703b9fbd937f19ba13d07c", - "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c", + "url": "https://api.github.com/repos/symfony/routing/zipball/c97abe725f2a1a858deca629a6488c8fc20c3091", + "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091", "shasum": "" }, "require": { @@ -1889,7 +1889,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.3.4" + "source": "https://github.com/symfony/routing/tree/v7.3.6" }, "funding": [ { @@ -1909,20 +1909,20 @@ "type": "tidelift" } ], - "time": "2025-09-11T10:12:26+00:00" + "time": "2025-11-05T07:57:47+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4" + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4", - "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", "shasum": "" }, "require": { @@ -1976,7 +1976,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" }, "funding": [ { @@ -1987,25 +1987,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-25T09:37:31+00:00" + "time": "2025-07-15T11:30:57+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.6.0", + "version": "v3.6.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d" + "reference": "65a8bc82080447fae78373aa10f8d13b38338977" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/df210c7a2573f1913b2d17cc95f90f53a73d8f7d", - "reference": "df210c7a2573f1913b2d17cc95f90f53a73d8f7d", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977", "shasum": "" }, "require": { @@ -2054,7 +2058,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.6.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1" }, "funding": [ { @@ -2065,25 +2069,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-27T08:32:26+00:00" + "time": "2025-07-15T13:41:35+00:00" }, { "name": "symfony/twig-bridge", - "version": "v7.3.3", + "version": "v7.3.6", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "33558f013b7f6ed72805527c8405cae0062e47c5" + "reference": "d1aaec8eee1f5591f56b9efe00194d73a8e38319" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/33558f013b7f6ed72805527c8405cae0062e47c5", - "reference": "33558f013b7f6ed72805527c8405cae0062e47c5", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d1aaec8eee1f5591f56b9efe00194d73a8e38319", + "reference": "d1aaec8eee1f5591f56b9efe00194d73a8e38319", "shasum": "" }, "require": { @@ -2165,7 +2173,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v7.3.3" + "source": "https://github.com/symfony/twig-bridge/tree/v7.3.6" }, "funding": [ { @@ -2185,7 +2193,7 @@ "type": "tidelift" } ], - "time": "2025-08-18T13:10:53+00:00" + "time": "2025-11-04T15:37:51+00:00" }, { "name": "symfony/twig-bundle", diff --git a/hotline.mjs b/hotline.mjs new file mode 160000 index 0000000..01e8ddf --- /dev/null +++ b/hotline.mjs @@ -0,0 +1 @@ +Subproject commit 01e8ddf50202afedc4d0b74ba2bc2f01d360d9ac diff --git a/install.sh b/install.sh index b356308..df8328c 100755 --- a/install.sh +++ b/install.sh @@ -13,3 +13,11 @@ if [ -e kodorvan/perm/system/settings/*.sample ]; then cp "$i" "${i/.sample/}"; done fi + +if ! [ -d kodorvan/perm/system/public/js/modules ]; then + mkdir kodorvan/perm/system/public/js/modules -p +fi + +if ! [ -L kodorvan/perm/system/public/js/modules/hotline.mjs ]; then + ln -s ../../../../../../hotline.mjs/hotline.mjs kodorvan/perm/system/public/js/modules/hotline.mjs; +fi diff --git a/kodorvan/perm/system/controllers/index.php b/kodorvan/perm/system/controllers/index.php index 4858f90..16ba32b 100755 --- a/kodorvan/perm/system/controllers/index.php +++ b/kodorvan/perm/system/controllers/index.php @@ -45,7 +45,7 @@ final class index extends core // Request for HTML response // Render page - $page = $this->view->render('index.html'); + $page = $this->view->render('main/index.html'); // Sending response $this->response diff --git a/kodorvan/perm/system/public/js/modules/advantages.js b/kodorvan/perm/system/public/js/modules/advantages.js new file mode 100644 index 0000000..f1c2ff5 --- /dev/null +++ b/kodorvan/perm/system/public/js/modules/advantages.js @@ -0,0 +1,15 @@ +const items = document.querySelectorAll(".accordion button"); + +function toggleAccordion() { + const itemToggle = this.getAttribute('aria-expanded'); + + for (i = 0; i < items.length; i++) { + items[i].setAttribute('aria-expanded', 'false'); + } + + if (itemToggle == 'false') { + this.setAttribute('aria-expanded', 'true'); + } +} + +items.forEach(item => item.addEventListener('click', toggleAccordion)); \ No newline at end of file diff --git a/kodorvan/perm/system/public/js/modules/hotline.mjs b/kodorvan/perm/system/public/js/modules/hotline.mjs new file mode 120000 index 0000000..2eecd90 --- /dev/null +++ b/kodorvan/perm/system/public/js/modules/hotline.mjs @@ -0,0 +1 @@ +../../../../../../hotline.mjs/hotline.mjs \ No newline at end of file diff --git a/kodorvan/perm/system/public/js/modules/service.js b/kodorvan/perm/system/public/js/modules/service.js new file mode 100644 index 0000000..6411720 --- /dev/null +++ b/kodorvan/perm/system/public/js/modules/service.js @@ -0,0 +1,19 @@ +document.addEventListener('DOMContentLoaded', function() { + const blocks = document.querySelectorAll('.block'); + + blocks.forEach(block => { + const question = block.querySelector('.question'); + const answerCont = block.querySelector('.answercont'); + + question.addEventListener('click', function() { + // Просто переключаем текущий блок без влияния на другие + if (block.classList.contains('active')) { + answerCont.style.maxHeight = '0'; + block.classList.remove('active'); + } else { + answerCont.style.maxHeight = answerCont.scrollHeight + 'px'; + block.classList.add('active'); + } + }); + }); +}); \ No newline at end of file diff --git a/kodorvan/perm/system/public/js/pages/main.js b/kodorvan/perm/system/public/js/pages/main.js new file mode 100644 index 0000000..00d44dc --- /dev/null +++ b/kodorvan/perm/system/public/js/pages/main.js @@ -0,0 +1,21 @@ +"use strict"; + +import("../modules/hotline.mjs").then((module) => { + // Imported the hotline.mjs module + + // Initializing an instance of the hotline.mjs + const instance = new module.hotline(document.getElementById("wrap")); + + // Initializing settings of the hotline instance + instance.alive = true; + instance.wheel = false; + instance.delta = 3; + + // Starting the hotline instance + instance.start(); +}); + + document.addEventListener('dragstart', function(event) { + event.preventDefault(); + return false; + }); \ No newline at end of file diff --git a/kodorvan/perm/system/public/themes/default/css/colorscheme.css b/kodorvan/perm/system/public/themes/default/css/colorscheme.css index 49b480d..6da50c3 100644 --- a/kodorvan/perm/system/public/themes/default/css/colorscheme.css +++ b/kodorvan/perm/system/public/themes/default/css/colorscheme.css @@ -1,45 +1,67 @@ @charset "UTF-8"; +@media (prefers-color-scheme: default) { + :root { + --text-color: #fff; + --text-color-inverted: #000; + --button-background-color-inverted: #fff; + --button-background-color: #000; + --section-background-color-inverted: #fff; + --section-background-color: #000; + --background-color: #000; + --background-color-inverted: #fff; + + --interface-top-background-color: var(--background-color, #000); + --interface-background-color: var(--background-color, #000); + --interface-bottom-background-color: var(--background-color, #000); + + --red: red; + --white: #fff; + --blue: #0ea5e9; + + --paper: var(--white); + } +} @media (prefers-color-scheme: dark) { - :root { - --text-color: #fff; - --text-color-inverted: #000; - --button-background-color-inverted: #fff; - --button-background-color: #000; - --section-background-color-inverted: #fff; - --section-background-color: #000; - --background-color: #000; - --background-color-inverted: #fff; + :root { + --text-color: #fff; + --text-color-inverted: #000; + --button-background-color-inverted: #fff; + --button-background-color: #000; + --section-background-color-inverted: #fff; + --section-background-color: #fff; + --background-color: #000; + --background-color-inverted: #fff; - --interface-top-background-color: var(--background-color, #000); - --interface-background-color: var(--background-color, #000); - --interface-bottom-background-color: var(--background-color, #000); + --interface-top-background-color: var(--background-color, #000); + --interface-background-color: var(--background-color, #000); + --interface-bottom-background-color: var(--background-color, #000); - --red: red; - --white: #fff; + --red: red; + --white: #fff; - --paper: var(--white); - } + --paper: var(--white); + } } @media (prefers-color-scheme: light) { - :root { - --text-color: #fff; - --text-color-inverted: #000; - --button-background-color-inverted: #fff; - --button-background-color: #000; - --section-background-color-inverted: #fff; - --section-background-color: #000; - --background-color: #000; - --background-color-inverted: #fff; + :root { + --text-color: #fff; + --text-color-inverted: #000; + --button-background-color-inverted: #fff; + --button-background-color: #000; + --section-background-color-inverted: #fff; + --section-background-color: #000; + --background-color: #000; + --background-color-inverted: #fff; - --interface-top-background-color: var(--background-color, #000); - --interface-background-color: var(--background-color, #000); - --interface-bottom-background-color: var(--background-color, #000); + --interface-top-background-color: var(--background-color, #000); + --interface-background-color: var(--background-color, #000); + --interface-bottom-background-color: var(--background-color, #000); - --red: red; - --white: #fff; + --red: red; + --white: #fff; - --paper: var(--white); - } + --paper: var(--white); + } } diff --git a/kodorvan/perm/system/public/themes/default/css/footer.css b/kodorvan/perm/system/public/themes/default/css/footer.css index 5e5e484..996cafa 100644 --- a/kodorvan/perm/system/public/themes/default/css/footer.css +++ b/kodorvan/perm/system/public/themes/default/css/footer.css @@ -1,7 +1,42 @@ @charset "UTF-8"; footer { - &:not(:has(*)) { - display: none; + box-sizing: border-box; + padding: 0 20%; + display: flex; + flex-direction: column; + justify-content: center; + text-align: center; + gap: 0.5rem; + margin: 2rem 0 1rem 0; + + &:not(:has(*)) { + display: none; + } + + > p#description { + text-align: center; + font-size: 1rem; + font-family: "Bahnschrift"; + font-weight: 400; + margin: unset; + color: rgb(0, 0, 0, 0.6); + } + > div#link { + display: inline-flex; + justify-content: center; + gap: 1rem; + + > a { + text-decoration: none; + font-size: 1rem; + font-family: "Bahnschrift"; + font-weight: 400; + color: rgb(160, 160, 160); + transition: ease 0.2s; + &:hover { + color: #000; + } } -} \ No newline at end of file + } +} diff --git a/kodorvan/perm/system/public/themes/default/css/header.css b/kodorvan/perm/system/public/themes/default/css/header.css index 491b4eb..8b159e4 100644 --- a/kodorvan/perm/system/public/themes/default/css/header.css +++ b/kodorvan/perm/system/public/themes/default/css/header.css @@ -1,68 +1,84 @@ @charset "UTF-8"; header { - top: 0; - left: 0; - position: fixed; - width: 100vw; - height: 70px; - box-sizing: border-box; - padding: 0 20%; - display: flex; - justify-content: space-between; - background-color: #931919; + top: 0; + left: 0; + position: fixed; + width: 100vw; + height: 70px; + box-sizing: border-box; + padding: 0 20%; + display: grid; + grid-template-columns: 1fr 2fr 1fr; - &:not(:has(*)) { - display: none; - } + justify-items: center; + align-items: center; + background-color: #f7fafc; + z-index: 1000; - >span#logotype { - display: flex; - flex-direction: column; - font-size: 1.1rem; + &:not(:has(*)) { + display: none; + } - >h4:only-of-type:first-child { - margin: unset; - font-family: "Cascadia Code"; - font-size: 2.8em; - } + > span#logotype { + display: flex; + flex-direction: column; + font-size: 1.1rem; - >small:only-of-type:last-child { - justify-self: end; - align-self: end; - margin-top: -0.8em; - font-family: 'Bahnschrift'; - font-size: 0.7em; - font-weight: 800; - text-transform: uppercase; - } - } + > h4:only-of-type:first-child { + margin: unset; + font-family: "Cascadia Code"; + font-size: 2.5em; + } - >nav#menu { - display: flex; - justify-content: center; - align-items: center; - gap: 1rem; - font-family: 'Geologica'; + > small:only-of-type:last-child { + justify-self: end; + align-self: end; + margin-top: -0.8em; + font-family: "Bahnschrift"; + font-size: 0.62em; + font-weight: 800; + text-transform: uppercase; + } + } - >a { - text-decoration: none; - font-weight: 600; - font-size: 1rem; - text-transform: uppercase; - color: #fff; - } - } + > nav#menu { + display: flex; + justify-content: center; + align-items: center; + gap: 1rem; + font-family: "Geologica"; - >a#order { - align-self: center; - background-color: #660909; - padding: 0.5em 1.3em; - border-radius: 1.125em; - color: #fff; - font-family: 'Cascadia Code'; - font-weight: 400; - text-decoration: none; - border: 2px solid; - } + > a { + text-decoration: none; + font-weight: 500; + font-size: 1rem; + text-transform: uppercase; + color: rgb(0, 0, 0, 0.5); + transition: ease 0.2s; + + &:hover { + color: #000; + } + } + } + + > a#order { + display: flex; + gap: 5px; + align-items: center; + padding: 0.5em 1.3em; + border-radius: 1.125em; + + font-family: "Cascadia Code"; + font-weight: 400; + text-decoration: none; + background-color: #0ea5e9; + color: #fff; + transition: 0.2s; + + &:hover { + transform: scale(1.05); + } + } } diff --git a/kodorvan/perm/system/public/themes/default/css/hotline.css b/kodorvan/perm/system/public/themes/default/css/hotline.css new file mode 100644 index 0000000..9cb03f7 --- /dev/null +++ b/kodorvan/perm/system/public/themes/default/css/hotline.css @@ -0,0 +1,31 @@ +section.hotline { + + max-width: 100vw; + max-height: 360px; + height: max(16vw, 16vh); + display: inline-flex; + gap: 15px; + + > :is(article, div) { + position: relative; + display: flex; + justify-content: center; + align-items: center; + text-align: centr; + + min-width: 200px; + height: 100%; + border-radius: 1.125rem; + overflow: hidden; + background: rgb(0, 0, 0); + + p { + font-family: "Cascadia Code"; + font-size: 1.8rem; + font-weight: bold; + color: #ffffff; + text-shadow: 5px 5px 2px rgba(14, 165, 2335, 0.7); + text-align: center; + } + } +} diff --git a/kodorvan/perm/system/public/themes/default/css/icons/code_slash.css b/kodorvan/perm/system/public/themes/default/css/icons/code_slash.css new file mode 100644 index 0000000..a83352d --- /dev/null +++ b/kodorvan/perm/system/public/themes/default/css/icons/code_slash.css @@ -0,0 +1,36 @@ +@charset "UTF-8"; + +i.icon.code.slash { + position: relative; + width: 2px; + height: 16px; + box-sizing: border-box; + display: block; + transform: rotate(15deg); + background: currentColor; + + &::after, + &::before { + position: absolute; + content: ""; + width: 8px; + height: 8px; + box-sizing: border-box; + display: block; + transform: rotate(-60deg); + } + + &::before { + top: 5px; + left: -8px; + border-top: 2px solid; + border-left: 2px solid; + } + + &::after { + top: 3px; + right: -8px; + border-right: 2px solid; + border-bottom: 2px solid; + } +} diff --git a/kodorvan/perm/system/public/themes/default/css/icons/telegram.css b/kodorvan/perm/system/public/themes/default/css/icons/telegram.css new file mode 100644 index 0000000..4451b88 --- /dev/null +++ b/kodorvan/perm/system/public/themes/default/css/icons/telegram.css @@ -0,0 +1,31 @@ +i.icon.telegram { + width: 24px; + height: 24px; + background: transparent; + position: relative; +} + +i.icon.telegram::before { + content: ""; + position: absolute; + width: 20px; + height: 20px; + background: white; + border-radius: 50%; + top: 2px; + left: 2px; +} + +i.icon.telegram::after { + content: ""; + position: absolute; + width: 0; + height: 0; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 8px solid currentColor; + transform: rotate(-30deg); + top: 7px; + left: 9px; + color: #ffffff; /* Цвет бумажного самолетика */ +} diff --git a/kodorvan/perm/system/public/themes/default/css/main.css b/kodorvan/perm/system/public/themes/default/css/main.css index 1314602..bbce4f1 100755 --- a/kodorvan/perm/system/public/themes/default/css/main.css +++ b/kodorvan/perm/system/public/themes/default/css/main.css @@ -6,16 +6,137 @@ @import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@900&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Geologica:wght@100..900&family=Pochaevsk&display=swap"); - body { - margin: unset; + margin: unset; + background-color: #f7fafc; } main { - flex-grow: 1; - display: flex; - flex-direction: column; - align-items: center; - gap: var(--gap); - transition: 0s; + flex-grow: 1; + display: flex; + flex-direction: column; + align-items: center; + gap: 2rem; + transition: 0s; + margin-top: 6rem; + /* overflow-x: hidden; */ + + &:not(:has(*)) { + display: none; + } + > div.container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: auto; + + > span#shape { + display: flex; + justify-content: center; + align-items: center; + gap: 20px; + padding: 0.3em 1em; + border-radius: 1.125rem; + font-family: "Bahnschrift"; + font-size: 1.2rem; + font-weight: 400; + color: #0ea5e9; + background: linear-gradient( + 90deg, + rgba(227, 242, 249, 1) 0%, + rgba(14, 165, 233, 0.2) 50%, + rgba(227, 242, 249, 1) 100% + ); + } + + > h2#title { + font-size: 2.4rem; + font-family: "Bahnschrift"; + margin: 0.1em 0 0.2em 0; + + > span { + color: #0ea5e9; + } + } + + > p#description { + text-align: center; + font-size: 1.2rem; + font-family: "Bahnschrift"; + font-weight: 400; + + margin: unset; + color: rgb(0, 0, 0, 0.6); + } + > p.description { + width: 40%; + } + + > div#team { + display: inline-flex; + justify-content: center; + align-items: center; + gap: 1rem; + margin-top: 1rem; + + > div#card { + display: flex; + flex-direction: column; + justify-content: start; + padding: 0.6em 0.8em; + border-radius: 1.125rem; + box-shadow: 0px 0px 15px 0px rgba(14, 165, 233, 0.1); + background-color: #fff; + transition: ease 0.2s; + + &:hover { + transform: scaleY(1.03); + } + > img { + object-fit: cover; + width: 250px; + height: 270px; + margin: 0 auto; + border-radius: 1.125rem; + } + > p { + font-size: 1.5em; + font-weight: 900; + font-family: "Cascadia Code"; + color: #000000; + margin: 15px 0 0; + } + > span { + font-size: 1em; + font-family: "Cascadia Code"; + font-weight: 400; + color: #0ea5e9; + } + } + } + > a#telegram { + display: flex; + gap: 5px; + align-items: center; + padding: 0.5em 1.3em; + margin-top: 1rem; + border-radius: 1.125em; + font-size: 1em; + font-family: "Cascadia Code"; + font-weight: 400; + text-decoration: none; + background-color: #0ea5e9; + color: #fff; + transition: 0.2s; + + &:hover { + transform: scale(1.05); + } + > img { + width: 20px; + height: 20px; + } + } + } } diff --git a/kodorvan/perm/system/public/themes/default/images/avatar/algiz.png b/kodorvan/perm/system/public/themes/default/images/avatar/algiz.png new file mode 100644 index 0000000..9e832a4 Binary files /dev/null and b/kodorvan/perm/system/public/themes/default/images/avatar/algiz.png differ diff --git a/kodorvan/perm/system/public/themes/default/images/avatar/arsen.jpg b/kodorvan/perm/system/public/themes/default/images/avatar/arsen.jpg new file mode 100644 index 0000000..5d4dd13 Binary files /dev/null and b/kodorvan/perm/system/public/themes/default/images/avatar/arsen.jpg differ diff --git a/kodorvan/perm/system/public/themes/default/images/avatar/hollspae.png b/kodorvan/perm/system/public/themes/default/images/avatar/hollspae.png new file mode 100644 index 0000000..78fd4e9 Binary files /dev/null and b/kodorvan/perm/system/public/themes/default/images/avatar/hollspae.png differ diff --git a/kodorvan/perm/system/public/themes/default/images/avatar/seva.jpg b/kodorvan/perm/system/public/themes/default/images/avatar/seva.jpg new file mode 100644 index 0000000..4c94944 Binary files /dev/null and b/kodorvan/perm/system/public/themes/default/images/avatar/seva.jpg differ diff --git a/kodorvan/perm/system/public/themes/default/images/icons/telegram.svg b/kodorvan/perm/system/public/themes/default/images/icons/telegram.svg new file mode 100644 index 0000000..f5b505e --- /dev/null +++ b/kodorvan/perm/system/public/themes/default/images/icons/telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/kodorvan/perm/system/public/themes/test/css/aside.css b/kodorvan/perm/system/public/themes/test/css/aside.css new file mode 100644 index 0000000..7ba2c94 --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/aside.css @@ -0,0 +1,7 @@ +@charset "UTF-8"; + +aside { + &:not(:has(*)) { + display: none; + } +} diff --git a/kodorvan/perm/system/public/themes/test/css/blocks/advantages.css b/kodorvan/perm/system/public/themes/test/css/blocks/advantages.css new file mode 100644 index 0000000..ec8b3e0 --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/blocks/advantages.css @@ -0,0 +1,116 @@ +.advantages { + margin: 0 auto; + + width: 48rem; + + > h2.title { + text-align: center; + font-size: 2.4rem; + font-family: "Bahnschrift"; + margin: 0.1em 0 0.2em 0; + } + + .accordion { + .accordion-item { + border-bottom: 1px solid #4d5974; + + button[aria-expanded="true"] { + border-bottom: 1px solid #0ea5e9; + } + + &:last-child { + border: none; + } + } + button { + position: relative; + display: block; + text-align: left; + width: 100%; + padding: 1em 0; + color: #7288a2; + font-size: 1.2rem; + font-family: "Bahnschrift"; + font-weight: 400; + border: none; + background: none; + outline: none; + + &:hover, + &:focus { + cursor: pointer; + color: #0ea5e9; + + &::after { + cursor: pointer; + color: #0ea5e9; + border: 1px solid #0ea5e9; + } + } + .title { + padding: 1em 1.5em 1em 0; + } + .icon { + display: inline-block; + position: absolute; + top: 18px; + right: 0; + width: 22px; + height: 22px; + border: 1px solid; + border-radius: 22px; + + &::before { + display: block; + position: absolute; + content: ""; + top: 11px; + left: 6px; + width: 10px; + height: 2px; + background: currentColor; + } + &::after { + display: block; + position: absolute; + content: ""; + top: 7px; + left: 10px; + width: 2px; + height: 10px; + background: currentColor; + } + } + } + } + + button[aria-expanded="true"] { + color: #0ea5e9; + .icon { + &::after { + width: 0; + } + } + + .accordion-content { + opacity: 1; + max-height: 9em; + transition: all 200ms linear; + will-change: opacity, max-height; + } + } + .accordion-content { + opacity: 0; + max-height: 0; + overflow: hidden; + transition: opacity 200ms linear, max-height 200ms linear; + will-change: opacity, max-height; + + p { + align-items: left; + font-size: 1.05rem; + font-weight: 300; + font-family: "Bahnschrift"; + margin: 2em 0; + } + } +} diff --git a/kodorvan/perm/system/public/themes/test/css/blocks/hotline.css b/kodorvan/perm/system/public/themes/test/css/blocks/hotline.css new file mode 100644 index 0000000..489fe18 --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/blocks/hotline.css @@ -0,0 +1,38 @@ +section#projects { + > h2.title { + font-size: 2.4rem; + font-family: "Bahnschrift"; + margin: 0.1em 0 0.2em 0; + } + + div.hotline { + max-width: 100vw; + max-height: 360px; + height: max(16vw, 16vh); + display: inline-flex; + gap: 15px; + + > :is(article, div) { + position: relative; + display: flex; + justify-content: center; + align-items: center; + text-align: centr; + + min-width: 200px; + height: 100%; + border-radius: 1.125rem; + overflow: hidden; + background: rgb(0, 0, 0); + + p { + font-family: "Bahnschrift"; + font-size: 1.8rem; + font-weight: bold; + color: #ffffff; + text-shadow: 5px 5px 2px rgba(14, 165, 2335, 0.7); + text-align: center; + } + } + } +} diff --git a/kodorvan/perm/system/public/themes/test/css/blocks/introdution.css b/kodorvan/perm/system/public/themes/test/css/blocks/introdution.css new file mode 100644 index 0000000..8255f54 --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/blocks/introdution.css @@ -0,0 +1,126 @@ +section#introdution { + position: relative; + width: 100%; + height: min(500px, 45vh); + overflow: hidden; + + >div.dots { + --dot-bg: black; + --dot-color: red; + --dot-size: 3px; + --dot-space: 8px; + z-index: -50; + position: absolute; + width: 100%; + height: 100%; + background: + linear-gradient(90deg, var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), + linear-gradient(var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), var(--dot-color); + mix-blend-mode: color-burn; + filter: blur(1px); + } + + >video:only-of-type { + z-index: -100; + position: absolute; + width: 100%; + height: 100%; + object-fit: cover; + object-position: center; + scale: 1.1; + filter: blur(5px); + } + + >div { + position: relative; + width: 30vw; + display: flex; + flex-direction: column; + align-items: center; + cursor: default; + + >span#label { + margin-top: -60px; + margin-bottom: 20px; + width: 320px; + padding: 0.3em .5em 0.3em 1em; + display: flex; + justify-content: center; + align-items: center; + gap: 20px; + font-size: 1.2rem; + font-family: "Bahnschrift"; + font-weight: 400; + border-radius: 1.125rem; + border: 1px solid #8080803d; + color: #ffe0e0; + border: 1px solid #eeeeee1c; + background-color: #dadada30; + backdrop-filter: blur(2px); + } + + >h2#title { + margin: unset; + width: max-content; + padding: 0.2em 0.5em 0em; + font-family: 'Bahnschrift'; + font-size: 2.6rem; + font-weight: 600; + border-radius: 0 0.75rem 0 0; + color: #241fd3; + background-color: #fff; + } + + >p#team { + margin: unset; + width: 650px; + height: 70px; + box-sizing: border-box; + padding: 0.6em 1.2em; + text-align: center; + font-size: 1.2rem; + font-family: "Geologica"; + font-weight: 400; + border-radius: 0.75rem; + background-color: #fff; + + >span { + color: #0ea5e9; + font-weight: 800; + } + } + + >span { + position: absolute; + display: flex; + padding: 0.4em 0.8rem 0.3em; + font-size: 1.2rem; + font-family: 'Bahnschrift'; + font-weight: 400; + border-radius: 0.75rem; + background-color: #fff; + + &:is(#experience) { + bottom: -3.4rem; + left: 0px; + font-size: 1.4rem; + font-weight: 600; + } + + &:is(#anything) { + right: -10px; + bottom: -30px; + font-weight: 200; + border-radius: 0 0 0.75rem 0.75rem; + } + + &:is(#technology) { + left: -70px; + top: -1.5rem; + font-size: 1rem; + font-weight: 600; + border-bottom-right-radius: 0; + } + } + } +} diff --git a/kodorvan/perm/system/public/themes/test/css/blocks/service.css b/kodorvan/perm/system/public/themes/test/css/blocks/service.css new file mode 100644 index 0000000..b03305d --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/blocks/service.css @@ -0,0 +1,60 @@ +section#services { + margin: unset; + display: flex; + gap: 5px; + + > div#service { + display: inline-flex; + gap: 20px; + + > div#card { + width: 270px; + height: 300px; + padding: 1rem 0.8rem; + flex-direction: column; + border-radius: 1.125rem; + background-color: #fff; + box-shadow: 0px 0px 15px 0px rgba(14, 165, 233, 0.1); + + > div.text { + height: 82%; + margin-bottom: 1em; + display: flex; + flex-direction: column; + + > p.title { + margin: 0 auto; + font-size: 1.2rem; + font-family: "Geologica"; + font-weight: 800; + color: #0ea5e9; + } + + > span.discription { + margin: 1em 0; + font-size: 1rem; + font-family: "Geologica"; + font-weight: 200; + } + } + + > a { + max-width: 250px; + padding: 0.6em 0.8em; + text-decoration: none; + font-size: 1rem; + font-family: "Geologica"; + font-weight: 300; + border: 0.15em solid #0ea5e9; + border-radius: 1.125rem; + color: #0ea5e9; + transition: ease 0.2s; + + &:hover { + background-color: #0ea5e9; + color: #fff; + } + } + } + } +} diff --git a/kodorvan/perm/system/public/themes/test/css/colorscheme.css b/kodorvan/perm/system/public/themes/test/css/colorscheme.css new file mode 100644 index 0000000..6da50c3 --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/colorscheme.css @@ -0,0 +1,67 @@ +@charset "UTF-8"; + +@media (prefers-color-scheme: default) { + :root { + --text-color: #fff; + --text-color-inverted: #000; + --button-background-color-inverted: #fff; + --button-background-color: #000; + --section-background-color-inverted: #fff; + --section-background-color: #000; + --background-color: #000; + --background-color-inverted: #fff; + + --interface-top-background-color: var(--background-color, #000); + --interface-background-color: var(--background-color, #000); + --interface-bottom-background-color: var(--background-color, #000); + + --red: red; + --white: #fff; + --blue: #0ea5e9; + + --paper: var(--white); + } +} +@media (prefers-color-scheme: dark) { + :root { + --text-color: #fff; + --text-color-inverted: #000; + --button-background-color-inverted: #fff; + --button-background-color: #000; + --section-background-color-inverted: #fff; + --section-background-color: #fff; + --background-color: #000; + --background-color-inverted: #fff; + + --interface-top-background-color: var(--background-color, #000); + --interface-background-color: var(--background-color, #000); + --interface-bottom-background-color: var(--background-color, #000); + + --red: red; + --white: #fff; + + --paper: var(--white); + } +} + +@media (prefers-color-scheme: light) { + :root { + --text-color: #fff; + --text-color-inverted: #000; + --button-background-color-inverted: #fff; + --button-background-color: #000; + --section-background-color-inverted: #fff; + --section-background-color: #000; + --background-color: #000; + --background-color-inverted: #fff; + + --interface-top-background-color: var(--background-color, #000); + --interface-background-color: var(--background-color, #000); + --interface-bottom-background-color: var(--background-color, #000); + + --red: red; + --white: #fff; + + --paper: var(--white); + } +} diff --git a/kodorvan/perm/system/public/themes/test/css/fonts.css b/kodorvan/perm/system/public/themes/test/css/fonts.css new file mode 100644 index 0000000..114da44 --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/fonts.css @@ -0,0 +1,10 @@ +@import url('/css/fonts/fira.css'); +@import url('/css/fonts/hack.css'); +@import url('/css/fonts/dejavu.css'); +@import url('/css/fonts/bahnschrift.css'); + +@font-face { + font-family: 'Commissioner'; + src: url('/fonts/commissioner.ttf'); + font-weight: 400; +} diff --git a/kodorvan/perm/system/public/themes/test/css/footer.css b/kodorvan/perm/system/public/themes/test/css/footer.css new file mode 100644 index 0000000..485723c --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/footer.css @@ -0,0 +1,42 @@ +@charset "UTF-8"; + +footer { + box-sizing: border-box; + padding: 0 20%; + display: flex; + flex-direction: column; + justify-content: center; + text-align: center; + gap: 0.5rem; + margin: 2rem 0 1rem 0; + + &:not(:has(*)) { + display: none; + } + + > p#description { + text-align: center; + font-size: 1rem; + font-family: "Geologica"; + font-weight: 400; + margin: unset; + color: rgb(0, 0, 0, 0.6); + } + > div#link { + display: inline-flex; + justify-content: center; + gap: 1rem; + + > a { + text-decoration: none; + font-size: 1rem; + font-family: "Geologica"; + font-weight: 400; + color: rgb(160, 160, 160); + transition: ease 0.2s; + &:hover { + color: #000; + } + } + } +} diff --git a/kodorvan/perm/system/public/themes/test/css/header.css b/kodorvan/perm/system/public/themes/test/css/header.css new file mode 100644 index 0000000..5fe56b2 --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/header.css @@ -0,0 +1,68 @@ +@charset "UTF-8"; + +header { + top: 0; + left: 0; + position: fixed; + width: 100vw; + height: var(--menu-height); + box-sizing: border-box; + padding: 0 20%; + display: flex; + justify-content: space-between; + + align-items: center; + background-color: #f7fafc; + z-index: 1000; + + &:not(:has(*)) { + display: none; + } + + > a#logotype { + display: flex; + flex-direction: column; + font-size: 1.1rem; + text-decoration: none; + color: #000; + + > h4:only-of-type:first-child { + margin: unset; + font-family: "Cascadia Code"; + font-size: 2.5em; + } + + > small:only-of-type:last-child { + justify-self: end; + align-self: end; + margin-top: -0.8em; + font-family: "Bahnschrift"; + font-size: 0.62em; + font-weight: 800; + text-transform: uppercase; + } + } + + > nav#menu { + display: flex; + justify-content: center; + align-items: center; + gap: 1rem; + font-family: "Geologica"; + + > a { + text-decoration: none; + font-weight: 500; + font-size: 1rem; + text-transform: uppercase; + color: rgb(0, 0, 0, 0.5); + transition: ease 0.2s; + + &:hover { + color: #000; + } + } + } + + +} diff --git a/kodorvan/perm/system/public/themes/test/css/icons/code_slash.css b/kodorvan/perm/system/public/themes/test/css/icons/code_slash.css new file mode 100644 index 0000000..a83352d --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/icons/code_slash.css @@ -0,0 +1,36 @@ +@charset "UTF-8"; + +i.icon.code.slash { + position: relative; + width: 2px; + height: 16px; + box-sizing: border-box; + display: block; + transform: rotate(15deg); + background: currentColor; + + &::after, + &::before { + position: absolute; + content: ""; + width: 8px; + height: 8px; + box-sizing: border-box; + display: block; + transform: rotate(-60deg); + } + + &::before { + top: 5px; + left: -8px; + border-top: 2px solid; + border-left: 2px solid; + } + + &::after { + top: 3px; + right: -8px; + border-right: 2px solid; + border-bottom: 2px solid; + } +} diff --git a/kodorvan/perm/system/public/themes/test/css/icons/telegram.css b/kodorvan/perm/system/public/themes/test/css/icons/telegram.css new file mode 100644 index 0000000..4451b88 --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/icons/telegram.css @@ -0,0 +1,31 @@ +i.icon.telegram { + width: 24px; + height: 24px; + background: transparent; + position: relative; +} + +i.icon.telegram::before { + content: ""; + position: absolute; + width: 20px; + height: 20px; + background: white; + border-radius: 50%; + top: 2px; + left: 2px; +} + +i.icon.telegram::after { + content: ""; + position: absolute; + width: 0; + height: 0; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 8px solid currentColor; + transform: rotate(-30deg); + top: 7px; + left: 9px; + color: #ffffff; /* Цвет бумажного самолетика */ +} diff --git a/kodorvan/perm/system/public/themes/test/css/main.css b/kodorvan/perm/system/public/themes/test/css/main.css new file mode 100644 index 0000000..645d64c --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/main.css @@ -0,0 +1,163 @@ +@charset "UTF-8"; + +@import url("https://fonts.googleapis.com/css2?family=Commissioner:wght@100;200;300;400;500;600;700;800;900&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=Cascadia+Code:ital,wght@0,200..700;1,200..700&family=Rubik:ital,wght@0,300..900;1,300..900&family=Wix+Madefor+Display:wght@400..800&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@900&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=Geologica:wght@100..900&family=Pochaevsk&display=swap"); + +body { + margin: unset; + /* overflow-x: hidden; */ + background-color: #f7fafc; +} + +.unselectable { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + outline: none; +} + +main { + margin-top: var(--menu-height); + display: flex; + flex-direction: column; + flex-grow: 1; + align-items: center; + gap: 2rem; + transition: 0s; + overflow-x: hidden; + + &:not(:has(*)) { + display: none; + } + + > section.container { + height: auto; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + > h2#title { + font-size: 2.4rem; + font-family: "Bahnschrift"; + margin: 0.1em 0 0.2em 0; + + > span { + color: #0ea5e9; + } + } + + > p#description { + margin: unset; + text-align: center; + font-size: 1.2rem; + font-family: "Geologica"; + font-weight: 400; + color: rgb(0, 0, 0, 0.6); + + > span { + color: #0ea5e9; + font-weight: 800; + } + } + + > p.description { + width: 40%; + } + + > a#order { + padding: 0.5em 1.3em; + margin-top: 1rem; + display: flex; + align-items: center; + gap: 5px; + border-radius: 1.125em; + font-size: 1em; + font-family: "Geologica"; + font-weight: 400; + text-decoration: none; + background-color: #0ea5e9; + color: #fff; + transition: 0.2s; + + &:hover { + transform: scale(1.05); + } + } + > div#team { + margin-top: 1rem; + display: inline-flex; + justify-content: center; + align-items: center; + gap: 1rem; + + > div#card { + padding: 0.6em 0.8em; + width: 180px; + height: 220px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + border-radius: 1.125rem; + box-shadow: 0px 0px 15px 0px rgba(14, 165, 233, 0.1); + background-color: #fff; + transition: ease 0.2s; + + > img { + object-fit: cover; + width: 140px; + height: 140px; + border-radius: 100%; + } + + > p { + margin: 1em 0 0; + font-size: 1.2em; + font-family: "Geologica"; + font-weight: 900; + color: #000000; + } + + > span { + font-size: 1em; + font-family: "Geologica"; + font-weight: 400; + color: #0ea5e9; + } + } + } + + > a#telegram { + padding: 0.5em 1.3em; + margin-top: 1rem; + display: flex; + align-items: center; + gap: 5px; + border-radius: 1.125em; + font-size: 1em; + font-family: "Geologica"; + font-weight: 400; + text-decoration: none; + background-color: #0ea5e9; + color: #fff; + transition: 0.2s; + + &:hover { + transform: scale(1.05); + } + + > img { + width: 20px; + height: 20px; + } + } + } +} diff --git a/kodorvan/perm/system/public/themes/test/css/system.css b/kodorvan/perm/system/public/themes/test/css/system.css new file mode 100644 index 0000000..4020bee --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/css/system.css @@ -0,0 +1,35 @@ +@charset "UTF-8"; + +:root { + --menu-height: 70px; + --gap: min(12px, 1rem); + + /* font-family: , system-ui, sans-serif; */ + font-family: "dejavu"; + text-decoration: none; + outline: none; + border: none; + transition: 0.1s ease-out; +} + +/* Selection */ +::selection { + color: var(--text-selected-color); + background: var(--text-selected-background-color); +} + +::-moz-selection { + color: var(--text-selected-color); + background: var(--text-selected-background-color); +} + + +.unselectable { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + diff --git a/kodorvan/perm/system/public/themes/test/images/avatar/123.jpg b/kodorvan/perm/system/public/themes/test/images/avatar/123.jpg new file mode 100644 index 0000000..3939e05 Binary files /dev/null and b/kodorvan/perm/system/public/themes/test/images/avatar/123.jpg differ diff --git a/kodorvan/perm/system/public/themes/test/images/avatar/algiz.png b/kodorvan/perm/system/public/themes/test/images/avatar/algiz.png new file mode 100644 index 0000000..9e832a4 Binary files /dev/null and b/kodorvan/perm/system/public/themes/test/images/avatar/algiz.png differ diff --git a/kodorvan/perm/system/public/themes/test/images/avatar/arsen.jpg b/kodorvan/perm/system/public/themes/test/images/avatar/arsen.jpg new file mode 100644 index 0000000..5d4dd13 Binary files /dev/null and b/kodorvan/perm/system/public/themes/test/images/avatar/arsen.jpg differ diff --git a/kodorvan/perm/system/public/themes/test/images/avatar/hollspae.png b/kodorvan/perm/system/public/themes/test/images/avatar/hollspae.png new file mode 100644 index 0000000..78fd4e9 Binary files /dev/null and b/kodorvan/perm/system/public/themes/test/images/avatar/hollspae.png differ diff --git a/kodorvan/perm/system/public/themes/test/images/avatar/seva.jpg b/kodorvan/perm/system/public/themes/test/images/avatar/seva.jpg new file mode 100644 index 0000000..4c94944 Binary files /dev/null and b/kodorvan/perm/system/public/themes/test/images/avatar/seva.jpg differ diff --git a/kodorvan/perm/system/public/themes/test/images/icons/telegram.svg b/kodorvan/perm/system/public/themes/test/images/icons/telegram.svg new file mode 100644 index 0000000..f5b505e --- /dev/null +++ b/kodorvan/perm/system/public/themes/test/images/icons/telegram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/kodorvan/perm/system/public/themes/test/videos/cover.mp4 b/kodorvan/perm/system/public/themes/test/videos/cover.mp4 new file mode 100644 index 0000000..b1f73b4 Binary files /dev/null and b/kodorvan/perm/system/public/themes/test/videos/cover.mp4 differ diff --git a/kodorvan/perm/system/views/templater.php b/kodorvan/perm/system/views/templater.php index a169b4f..70c9a34 100755 --- a/kodorvan/perm/system/views/templater.php +++ b/kodorvan/perm/system/views/templater.php @@ -62,7 +62,7 @@ final class templater extends controller implements array_access $this->twig = new twig(new FilesystemLoader(VIEWS)); // Initializing global variables - $this->twig->addGlobal('theme', 'default'); + $this->twig->addGlobal('theme', 'test'); $this->twig->addGlobal('server', $_SERVER); $this->twig->addGlobal('cookies', $_COOKIE); $this->twig->addGlobal('language', $language = $session?->buffer['language'] ?? language::en); diff --git a/kodorvan/perm/system/views/themes/default/aside.html b/kodorvan/perm/system/views/themes/default/aside.html index afb2aa1..1de7b19 100644 --- a/kodorvan/perm/system/views/themes/default/aside.html +++ b/kodorvan/perm/system/views/themes/default/aside.html @@ -2,8 +2,7 @@ {% endblock %} {% block body %} - + {% endblock %} {% block js %} diff --git a/kodorvan/perm/system/views/themes/default/core.html b/kodorvan/perm/system/views/themes/default/core.html index 1bb43a7..f97c420 100755 --- a/kodorvan/perm/system/views/themes/default/core.html +++ b/kodorvan/perm/system/views/themes/default/core.html @@ -27,5 +27,4 @@ {% endblock %} - - + \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/default/footer.html b/kodorvan/perm/system/views/themes/default/footer.html index 8322f33..9e84c32 100755 --- a/kodorvan/perm/system/views/themes/default/footer.html +++ b/kodorvan/perm/system/views/themes/default/footer.html @@ -3,8 +3,14 @@ {% block body %} {% endblock %} {% block js %} -{% endblock %} +{% endblock %} \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/default/head.html b/kodorvan/perm/system/views/themes/default/head.html index d584418..711124e 100755 --- a/kodorvan/perm/system/views/themes/default/head.html +++ b/kodorvan/perm/system/views/themes/default/head.html @@ -1,26 +1,26 @@ {% block title %} -{% if head.title != empty %}{{ head.title }}{% else %}perm by kodorvan{% endif %} + {% if head.title != empty %}{{ head.title }}{% else %}perm by kodorvan{% endif %} {% endblock %} {% block meta %} - - -{% for meta in head.metas %} - -{% endfor %} + + + {% for meta in head.metas %} + + {% endfor %} {% endblock %} {% block css %} -{% for element in css %} - -{% endfor %} - - - - - - - + {% endblock %} diff --git a/kodorvan/perm/system/views/themes/default/header.html b/kodorvan/perm/system/views/themes/default/header.html index 41e5e94..39c9957 100755 --- a/kodorvan/perm/system/views/themes/default/header.html +++ b/kodorvan/perm/system/views/themes/default/header.html @@ -1,7 +1,4 @@ -{% block css %} -{% endblock %} - -{% block body %} +{% block css %} {% endblock %} {% block body %}

КОДОРВАНЬ

@@ -10,13 +7,10 @@ - Заказать + Заказать
-{% endblock %} - -{% block js %} -{% endblock %} +{% endblock %} {% block js %} {% endblock %} diff --git a/kodorvan/perm/system/views/themes/default/index.html b/kodorvan/perm/system/views/themes/default/index.html index be72f70..11b7187 100755 --- a/kodorvan/perm/system/views/themes/default/index.html +++ b/kodorvan/perm/system/views/themes/default/index.html @@ -5,27 +5,26 @@ {% use "/themes/default/footer.html" with css as footer_css, body as footer, js as footer_js %} {% block css %} - {{ block('header_css') }} - {{ block('aside_css') }} - {{ block('footer_css') }} + {{ block('header_css') }} + {{ block('aside_css') }} + {{ block('footer_css') }} {% endblock %} {% block body %} - {{ block('header') }} + {{ block('header') }} + {{ block('aside') }} - {{ block('aside') }} +
+ {% block main %} + {{main|raw}} + {% endblock %} +
-
- {% block main %} - {{ main|raw }} - {% endblock %} -
- - {{ block('footer') }} + {{ block('footer') }} {% endblock %} {% block js %} - {{ block('header_js') }} - {{ block('aside_js') }} - {{ block('footer_js') }} + {{ block('header_js') }} + {{ block('aside_js') }} + {{ block('footer_js') }} {% endblock %} diff --git a/kodorvan/perm/system/views/themes/default/js.html b/kodorvan/perm/system/views/themes/default/js.html index 784e58d..0dfd14f 100755 --- a/kodorvan/perm/system/views/themes/default/js.html +++ b/kodorvan/perm/system/views/themes/default/js.html @@ -1,5 +1,9 @@ {% block js %} -{% for element in js %} - -{% endfor %} + {% for element in js %} + + {% endfor %} {% endblock %} diff --git a/kodorvan/perm/system/views/themes/default/main/blocks/comand.html b/kodorvan/perm/system/views/themes/default/main/blocks/comand.html new file mode 100644 index 0000000..c24f3cf --- /dev/null +++ b/kodorvan/perm/system/views/themes/default/main/blocks/comand.html @@ -0,0 +1,27 @@ +
+

Наша команда

+

+ Познакомьтесь с профессионалами, которые воплотят ваши идеи в жизнь +

+
+
+ Арсен +

Арсен

+ Программист +
+
+ Ксения +

Ксения

+ Coder +
+
+ Альгиз +

Альгиз

+ Нeйроcетка и крипта +
+
+
+ + \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/default/main/blocks/contacts.html b/kodorvan/perm/system/views/themes/default/main/blocks/contacts.html new file mode 100644 index 0000000..436dd34 --- /dev/null +++ b/kodorvan/perm/system/views/themes/default/main/blocks/contacts.html @@ -0,0 +1,17 @@ +
+

Связатьcя с нами

+

Готовы обсудить ваш проект? Напишите нам!

+ + + + + TELEGRAM + +
+ + \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/default/main/blocks/introdution.html b/kodorvan/perm/system/views/themes/default/main/blocks/introdution.html new file mode 100644 index 0000000..7deed67 --- /dev/null +++ b/kodorvan/perm/system/views/themes/default/main/blocks/introdution.html @@ -0,0 +1,20 @@ +
+ + + Профессиональная разработка + + +

+ Ваша идея — наша реализация +

+

+ Команда из опытных разработчиков, специализирующихся на создании + современных веб-приложений, чат-ботов, приложений, видеоигр для малого + бизнеса +

+
+ + + + + \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/default/main/blocks/projects.html b/kodorvan/perm/system/views/themes/default/main/blocks/projects.html new file mode 100644 index 0000000..4d5c726 --- /dev/null +++ b/kodorvan/perm/system/views/themes/default/main/blocks/projects.html @@ -0,0 +1,36 @@ +
+
+

ZHARKO

+
+
+

STCS

+
+
+

BRAINROT

+
+ +
+

ZHARKO

+
+
+

STCS

+
+
+

BRAINROT

+
+ +
+

ZHARKO

+
+
+

STCS

+
+
+

BRAINROT

+
+
+

ZHARKO

+
+ +
\ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/default/main/index.html b/kodorvan/perm/system/views/themes/default/main/index.html new file mode 100644 index 0000000..1c9e214 --- /dev/null +++ b/kodorvan/perm/system/views/themes/default/main/index.html @@ -0,0 +1,19 @@ +{% extends "/themes/default/index.html" %} + +{% block css %} + + + +{% endblock %} + +{% block main %} +{% include '/themes/default/main/blocks/introdution.html' %} +{% include '/themes/default/main/blocks/projects.html' %} +{% include '/themes/default/main/blocks/comand.html' %} +{% include '/themes/default/main/blocks/contacts.html' %} +{% endblock %} + +{% block js %} + + +{% endblock %} \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/aside.html b/kodorvan/perm/system/views/themes/test/aside.html new file mode 100644 index 0000000..1de7b19 --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/aside.html @@ -0,0 +1,9 @@ +{% block css %} +{% endblock %} + +{% block body %} + +{% endblock %} + +{% block js %} +{% endblock %} \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/core.html b/kodorvan/perm/system/views/themes/test/core.html new file mode 100644 index 0000000..549943d --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/core.html @@ -0,0 +1,30 @@ + + + + + + {% use '/themes/test/head.html' with title as head_title, meta as head_meta, css as head_css %} + + {% block title %} + {{ block('head_title') }} + {% endblock %} + + {% block meta %} + {{ block('head_meta') }} + {% endblock %} + + {{ block('head_css') }} + {% block css %} + {% endblock %} + + + + {% block body %} + {% endblock %} + + {% include '/themes/default/js.html' %} + {% block js %} + {% endblock %} + + + \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/footer.html b/kodorvan/perm/system/views/themes/test/footer.html new file mode 100644 index 0000000..c31597a --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/footer.html @@ -0,0 +1,16 @@ +{% block css %} +{% endblock %} + +{% block body %} + +{% endblock %} + +{% block js %} +{% endblock %} \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/head.html b/kodorvan/perm/system/views/themes/test/head.html new file mode 100644 index 0000000..71778cb --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/head.html @@ -0,0 +1,26 @@ +{% block title %} +{% if head.title != empty %}{{ head.title }}{% else %}perm by kodorvan{% endif %} +{% endblock %} + +{% block meta %} + + +{% for meta in head.metas %} + +{% endfor %} +{% endblock %} + +{% block css %} +{% for element in css %} + +{% endfor %} + + + + + + + +{% endblock %} \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/header.html b/kodorvan/perm/system/views/themes/test/header.html new file mode 100644 index 0000000..227d4c2 --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/header.html @@ -0,0 +1,16 @@ +{% block css %} {% endblock %} {% block body %} +
+ +

КОДОРВАНЬ

+ реальных программистов + + +
+ + +
+{% endblock %} {% block js %} {% endblock %} \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/index.html b/kodorvan/perm/system/views/themes/test/index.html new file mode 100644 index 0000000..bacff3a --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/index.html @@ -0,0 +1,30 @@ +{% extends "/themes/test/core.html" %} + +{% use "/themes/test/header.html" with css as header_css, body as header, js as header_js %} +{% use "/themes/test/aside.html" with css as aside_css, body as aside, js as aside_js %} +{% use "/themes/test/footer.html" with css as footer_css, body as footer, js as footer_js %} + +{% block css %} + {{ block('header_css') }} + {{ block('aside_css') }} + {{ block('footer_css') }} +{% endblock %} + +{% block body %} + {{ block('header') }} + {{ block('aside') }} + +
+ {% block main %} + {{main|raw}} + {% endblock %} +
+ + {{ block('footer') }} +{% endblock %} + +{% block js %} + {{ block('header_js') }} + {{ block('aside_js') }} + {{ block('footer_js') }} +{% endblock %} diff --git a/kodorvan/perm/system/views/themes/test/js.html b/kodorvan/perm/system/views/themes/test/js.html new file mode 100644 index 0000000..0dfd14f --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/js.html @@ -0,0 +1,9 @@ +{% block js %} + {% for element in js %} + + {% endfor %} +{% endblock %} diff --git a/kodorvan/perm/system/views/themes/test/main/blocks/advantages.html b/kodorvan/perm/system/views/themes/test/main/blocks/advantages.html new file mode 100644 index 0000000..bf499d4 --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/main/blocks/advantages.html @@ -0,0 +1,62 @@ +
+

Преимущества

+ +
+ +
+ + +
+

Четкое описание всех требований и функционала проекта.

+
+
+ +
+ + +
+

Проект может быть размещен на нашем сервере или перенесен на другой по желанию клиента.

+
+
+ +
+ + +
+

Код зашифрован, проект полностью приватный и защищен от несанкционированного доступа.

+
+
+ +
+ + +
+

Помощь и консультация после запуска проекта.

+
+
+ +
+ + +
+

Учет уникальных потребностей и пожеланий клиента.

+
+
+ +
+
\ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/main/blocks/comand.html b/kodorvan/perm/system/views/themes/test/main/blocks/comand.html new file mode 100644 index 0000000..0af6457 --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/main/blocks/comand.html @@ -0,0 +1,24 @@ +
+

Разработчики

+

+ Более 12 лет разработки в различных IT сферах +

+ +
+
+ Арсен +

Арсен

+ Программист +
+
+ Ксения +

Ксения

+ Coder +
+
+ Альгиз +

Альгиз

+ Нeйроcетка и крипта +
+
+
diff --git a/kodorvan/perm/system/views/themes/test/main/blocks/contacts.html b/kodorvan/perm/system/views/themes/test/main/blocks/contacts.html new file mode 100644 index 0000000..abf9603 --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/main/blocks/contacts.html @@ -0,0 +1,17 @@ +
+

Связатьcя с нами

+

Готовы обсудить ваш проект? Напишите нам!

+ + + + + Telegram + +
+ + \ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/main/blocks/introdution.html b/kodorvan/perm/system/views/themes/test/main/blocks/introdution.html new file mode 100644 index 0000000..158a3e0 --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/main/blocks/introdution.html @@ -0,0 +1,29 @@ +
+
+ + +

ПЕРМСКИЕ РАЗРАБОТЧИКИ

+ +

Разработка с нуля командой профессионалов
ответственно и без лапши - работа на результат

+ + БОЛЕЕ 12 ЛЕТ ОПЫТА + + УМЕЕМ ВСЁ + + УНИКАЛЬНЫЕ ТЕХНОЛОГИИ +
+ +
+ +
+ + + + + + diff --git a/kodorvan/perm/system/views/themes/test/main/blocks/projects.html b/kodorvan/perm/system/views/themes/test/main/blocks/projects.html new file mode 100644 index 0000000..9e76e10 --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/main/blocks/projects.html @@ -0,0 +1,48 @@ +
+ +

Проекты

+
+ +
+

ZHARKO

+
+
+

STCS

+
+
+

BRAINROT

+
+ +
+

ZHARKO

+
+
+

STCS

+
+
+

BRAINROT

+
+ +
+

ZHARKO

+
+
+

STCS

+
+
+

BRAINROT

+
+ +
+

ZHARKO

+
+
+

STCS

+
+
+

BRAINROT

+
+ +
+
\ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/main/blocks/service.html b/kodorvan/perm/system/views/themes/test/main/blocks/service.html new file mode 100644 index 0000000..d9607c3 --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/main/blocks/service.html @@ -0,0 +1,35 @@ +
+

Предоставляемые услуги

+ +
+
+
+

Телеграм-боты под ключ

+ Создаем Telegram-ботов для продаж, поддержки клиентов и автоматизации + бизнес-процессов. Рассматриваем разработку мини-приложений в Telegram: магазин, сервисы, игры и полноценные + платформы +
+ + Запустить бота за 7 дней +
+ +
+
+

Разработка сайта

+ Разработаем сайт любой сложности — от одностраничных лендингов до многофункциональных интернет-магазинов и представительных корпоративных сайтов. Каждый + проект будет современным и адаптивным +
+ + Заказать сайт +
+ +
+
+

API-интеграции под ключ

+ Настраиваем надежное и безопасное взаимодействие вашего сайта или бота с любыми внешними сервисами. Интеграция с платежными системами, CRM, Telegram, базами данных и другими системами, чтобы автоматизировать бизнес-процессы. +
+ + Подключить +
+
+
\ No newline at end of file diff --git a/kodorvan/perm/system/views/themes/test/main/index.html b/kodorvan/perm/system/views/themes/test/main/index.html new file mode 100644 index 0000000..0c96687 --- /dev/null +++ b/kodorvan/perm/system/views/themes/test/main/index.html @@ -0,0 +1,27 @@ +{% extends "/themes/test/index.html" %} + +{% block css %} + + + + + + +{% endblock %} + +{% block main %} + {% include '/themes/test/main/blocks/introdution.html' %} + {% include '/themes/test/main/blocks/projects.html' %} + {% include '/themes/test/main/blocks/service.html' %} + {% include '/themes/test/main/blocks/advantages.html' %} + {% include '/themes/test/main/blocks/comand.html' %} + + {% include '/themes/test/main/blocks/contacts.html' %} +{% endblock %} + +{% block js %} + + + + +{% endblock %}