Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c631428699 | |||
| d26b0ca9ea | |||
| 7fb037d155 | |||
| db3a515aaa |
3
.gitmodules
vendored
Normal file → Executable file
@@ -10,3 +10,6 @@
|
|||||||
path = icons
|
path = icons
|
||||||
url = https://git.svoboda.works/mirzaev/icons
|
url = https://git.svoboda.works/mirzaev/icons
|
||||||
branch = stable
|
branch = stable
|
||||||
|
[submodule "three.js"]
|
||||||
|
path = three.js
|
||||||
|
url = https://github.com/mrdoob/three.js.git
|
||||||
|
|||||||
@@ -17,11 +17,6 @@
|
|||||||
"email": "arsen@mirzaev.sexy",
|
"email": "arsen@mirzaev.sexy",
|
||||||
"homepage": "https://mirzaev.sexy",
|
"homepage": "https://mirzaev.sexy",
|
||||||
"role": "Programmer"
|
"role": "Programmer"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Hollspae",
|
|
||||||
"email": "ksena.vilkova79@gmail.om",
|
|
||||||
"role": "Creator-Programmer"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
@@ -29,7 +24,7 @@
|
|||||||
"issues": "https://git.svoboda.works/kodorvan/perm/issues"
|
"issues": "https://git.svoboda.works/kodorvan/perm/issues"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.4",
|
"php": "^8.5",
|
||||||
"mirzaev/minimal": "^3.8",
|
"mirzaev/minimal": "^3.8",
|
||||||
"mirzaev/baza": "^3.4",
|
"mirzaev/baza": "^3.4",
|
||||||
"mirzaev/languages": "^1",
|
"mirzaev/languages": "^1",
|
||||||
|
|||||||
732
composer.lock
generated
Normal file → Executable file
2
icons
@@ -9,7 +9,7 @@ use kodorvan\perm\controllers\core;
|
|||||||
|
|
||||||
// Framework for PHP
|
// Framework for PHP
|
||||||
use mirzaev\minimal\http\enumerations\content,
|
use mirzaev\minimal\http\enumerations\content,
|
||||||
mirzaev\minimal\http\enumerations\status;
|
mirzaev\minimal\http\enumerations\status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Index
|
* Index
|
||||||
@@ -47,6 +47,143 @@ final class index extends core
|
|||||||
// Initializing the team workload
|
// Initializing the team workload
|
||||||
$this->view->workload = (string) ($_COOKIE['workload'] ?? rand(20, 80));
|
$this->view->workload = (string) ($_COOKIE['workload'] ?? rand(20, 80));
|
||||||
|
|
||||||
|
// Initializing services
|
||||||
|
$this->view->services = [
|
||||||
|
[
|
||||||
|
'class' => 'telegram voronka',
|
||||||
|
'title' => 'Телеграм воронка',
|
||||||
|
'icon_left' => '',
|
||||||
|
/* 'icon_center' => 'import', */
|
||||||
|
'icon_center' => 'crown',
|
||||||
|
'icon_right' => '',
|
||||||
|
'description' => <<<TXT
|
||||||
|
Поступательно запросит данные пользователя, скомпонует, запишет в базу данных и синхронизирует в CRM
|
||||||
|
<br><br>
|
||||||
|
Используя иммерсивные технологии и многофакторный сбор обеспечивает максимальное удержание пользователя
|
||||||
|
TXT,
|
||||||
|
'howto' => 'Направьте к нему клиентов и ждите новых заказов в вашей CRM, на сайте или в чате',
|
||||||
|
'buttons' => [
|
||||||
|
[
|
||||||
|
'icon' => 'comment',
|
||||||
|
'link' => ''
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'theses' => [
|
||||||
|
[
|
||||||
|
'class' => 'yellow',
|
||||||
|
'characteristic' => '-80%',
|
||||||
|
'text' => 'НАГРУЗКА'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => 'blue',
|
||||||
|
'colored' => true,
|
||||||
|
'characteristic' => '+5%',
|
||||||
|
'text' => 'КОНВЕРСИИ'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => 'green',
|
||||||
|
'characteristic' => '0₽',
|
||||||
|
'text' => 'НИКАКОЙ АРЕНДЫ'
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'background_image_src' => '/themes/default/images/telegram_voronka.png',
|
||||||
|
'background_image_alt' => 'Телеграм воронка КОДОРВАНЬ',
|
||||||
|
'cost' => '2000'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => 'parser',
|
||||||
|
'title' => 'Парсер',
|
||||||
|
'icon_left' => '',
|
||||||
|
'icon_center' => 'search',
|
||||||
|
'icon_right' => '',
|
||||||
|
'description' => <<<TXT
|
||||||
|
Любая работа за компьютером может быть автоматизирована
|
||||||
|
<br><br>
|
||||||
|
Парсер берёт данные с сайтов через API, либо эмулируя пользователя, а так же из excel-документов, CRM и бухгалтерии, затем просчитывает, анализирует и записывает результат
|
||||||
|
TXT,
|
||||||
|
'howto' => 'Подключите источники и снизьте нагрузку на операторов, оптимизируйте процессы',
|
||||||
|
'extra' => [
|
||||||
|
'Wildberries',
|
||||||
|
'OZON',
|
||||||
|
'Yandex Market',
|
||||||
|
'Avito',
|
||||||
|
'CDEK',
|
||||||
|
'1C',
|
||||||
|
'Bitrix',
|
||||||
|
'Мой Склад'
|
||||||
|
],
|
||||||
|
'buttons' => [
|
||||||
|
[
|
||||||
|
'icon' => 'comment',
|
||||||
|
'link' => ''
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'theses' => [
|
||||||
|
[
|
||||||
|
'class' => 'yellow',
|
||||||
|
'colored' => true,
|
||||||
|
'characteristic' => '-100%',
|
||||||
|
'text' => 'НАГРУЗКА'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => 'cyan',
|
||||||
|
'icon' => 'infinity',
|
||||||
|
'text' => 'ВЕЧНАЯ ПОДДЕРЖКА'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => 'green',
|
||||||
|
'icon' => 'play forwards',
|
||||||
|
'text' => 'РЕКОРД СКОРОСТИ'
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'background_image_src' => '/themes/default/images/excel_small_compressed.jpg',
|
||||||
|
'background_image_alt' => 'Парсеры КОДОРВАНЬ',
|
||||||
|
'cost' => '3000'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => 'calculator',
|
||||||
|
'title' => 'Калькулятор',
|
||||||
|
'icon_left' => '',
|
||||||
|
'icon_center' => 'calculator',
|
||||||
|
'icon_right' => '',
|
||||||
|
'description' => <<<TXT
|
||||||
|
Составление алгоритма обработки большого объёма данных с использованием нейросетей и грамотно выбранной сортировки
|
||||||
|
<br><br>
|
||||||
|
Оператор вводит данные, нажимает на кнопки, двигает ползунки и мгновенно получает точный результат вычислений
|
||||||
|
TXT,
|
||||||
|
'howto' => 'Настройте параметры в панели управления и в долгосрочной перспективе сэкономьте тысячи часов рабочего времени',
|
||||||
|
'extra' => [],
|
||||||
|
'buttons' => [
|
||||||
|
[
|
||||||
|
'icon' => 'comment',
|
||||||
|
'link' => ''
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'theses' => [
|
||||||
|
[
|
||||||
|
'class' => 'yellow',
|
||||||
|
'characteristic' => '-95%',
|
||||||
|
'text' => 'НАГРУЗКА'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => 'green',
|
||||||
|
'characteristic' => '-80%',
|
||||||
|
'text' => 'ОШИБОК ВЫЧИСЛЕНИЙ'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'class' => 'red',
|
||||||
|
'colored' => true,
|
||||||
|
'characteristic' => '+20%',
|
||||||
|
'text' => 'ОБУЧАЕМОСТЬ'
|
||||||
|
]
|
||||||
|
],
|
||||||
|
'background_image_src' => '/themes/default/images/tordv_compressed.jpg',
|
||||||
|
'background_image_alt' => 'Калькулятор КОДОРВАНЬ',
|
||||||
|
'cost' => '10 000'
|
||||||
|
]
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
// Sending the cookie with the team workload (1800 = 30min)
|
// Sending the cookie with the team workload (1800 = 30min)
|
||||||
setcookie('workload', $this->view->workload, time() + 1800, '/');
|
setcookie('workload', $this->view->workload, time() + 1800, '/');
|
||||||
|
|
||||||
|
|||||||
0
kodorvan/perm/system/databases/.gitignore
vendored
Normal file → Executable file
0
kodorvan/perm/system/localizations/english.php
Normal file → Executable file
0
kodorvan/perm/system/localizations/russian.php
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 1.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 10.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 11.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 12.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 13.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 14.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 2.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 3.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 4.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 5.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 6.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 7.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 8.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT 9.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/fonts/bahnschrift/BAHNSCHRIFT.TTF
Normal file → Executable file
0
kodorvan/perm/system/public/js/modules/advantages.js
Normal file → Executable file
0
kodorvan/perm/system/public/js/modules/service.js
Normal file → Executable file
203
kodorvan/perm/system/public/js/pages/main.js
Normal file → Executable file
@@ -1,5 +1,176 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
import * as THREE from 'three';
|
||||||
|
|
||||||
|
|
||||||
|
const fragmentShaderCode = `
|
||||||
|
precision highp float;
|
||||||
|
uniform vec2 u_resolution;
|
||||||
|
uniform float u_time;
|
||||||
|
varying vec2 vUv;
|
||||||
|
|
||||||
|
#define EPSILON 1e-6
|
||||||
|
#define PI 3.14159265359
|
||||||
|
#define ITERATIONS 18.0
|
||||||
|
|
||||||
|
mat2 rotate2d(float angle){
|
||||||
|
return mat2(cos(angle), -sin(angle),
|
||||||
|
sin(angle), cos(angle));
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec2 uv = (vUv * 2.0 - 1.0) * (u_resolution / max(u_resolution.x, u_resolution.y));
|
||||||
|
vec2 u = uv * 0.25;
|
||||||
|
vec4 o = vec4(0.5, 1.0, 1.5, 0.0);
|
||||||
|
vec4 z = o;
|
||||||
|
vec2 v_internal = vec2(0.0);
|
||||||
|
float a = 0.6;
|
||||||
|
float t = u_time * 0.8;
|
||||||
|
|
||||||
|
for (float i = 0.0; i < ITERATIONS; i++)
|
||||||
|
{
|
||||||
|
float u_dot = dot(u, u);
|
||||||
|
float denom_u = 0.6 - u_dot;
|
||||||
|
denom_u += sign(denom_u) * EPSILON;
|
||||||
|
|
||||||
|
vec2 sin_arg = (1.4 * u / denom_u) - (7.0 * u.yx * cos(t*0.2)) + t * 1.1 + v_internal * 0.3;
|
||||||
|
vec2 length_arg = (1.0 + i * 0.1 + a * 0.2) * sin(sin_arg);
|
||||||
|
float len = length(length_arg);
|
||||||
|
float safe_len_divisor = max(len, EPSILON);
|
||||||
|
// float safe_len_divisor = 1.0;
|
||||||
|
|
||||||
|
o += (1.0 + sin(z * 0.9 + t * 1.2 + i * 0.1)) / safe_len_divisor * (1.0 + i*0.02);
|
||||||
|
|
||||||
|
v_internal = 0.9 * v_internal + 0.15 * sin(t * 1.5 + u * 4.0 - o.xy * 0.2);
|
||||||
|
v_internal = clamp(v_internal, -1.0, 1.0);
|
||||||
|
|
||||||
|
a += 0.035;
|
||||||
|
float angle = i * 0.1 + t * 0.05 + a * 0.2;
|
||||||
|
mat2 rot_mat = rotate2d(angle);
|
||||||
|
u *= rot_mat;
|
||||||
|
|
||||||
|
float o_dot = dot(o.xyz, o.xyz);
|
||||||
|
float feedback_scale = 0.5 + 0.5 * sin(o_dot * 0.02 + t * 0.3);
|
||||||
|
|
||||||
|
u += sin(60.0 * dot(u,u) * cos(80.0 * u.yx + t * 1.2)) / 2.5e2
|
||||||
|
+ 0.15 * a * u * feedback_scale
|
||||||
|
+ cos(o.xy * 0.5 + t * 1.1 + v_internal * 0.8) / 3.5e2;
|
||||||
|
|
||||||
|
u += rotate2d(v_internal.x * 0.01) * vec2(0.0001, 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 base_color = 0.5 + 0.5 * cos(o.xyz * 0.8 + t * 0.15 + vec3(0.0, PI * 0.66, PI * 1.33));
|
||||||
|
vec2 detail_coord = u * 5.0 + v_internal * 1.0;
|
||||||
|
float detail_pattern = smoothstep(0.3, 0.7, fract(detail_coord.x * cos(t*0.1) + detail_coord.y * sin(t*0.1)));
|
||||||
|
vec3 detail_color = vec3(detail_pattern * 0.8 + 0.2);
|
||||||
|
float mix_factor = clamp(length(o.xyz) * 0.1 - 0.1, 0.0, 1.0);
|
||||||
|
vec3 final_color = mix(base_color, detail_color * base_color, mix_factor);
|
||||||
|
final_color.rg += u.xy * 0.05;
|
||||||
|
// float dist_from_center = length(vUv - 0.5);
|
||||||
|
float dist_from_center = 0.0;
|
||||||
|
final_color *= pow(1.0 - dist_from_center * 1.2, 2.0);
|
||||||
|
gl_FragColor = vec4(clamp(final_color, 0.0, 1.0), 1.0);
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const vertexShaderCode = `
|
||||||
|
varying vec2 vUv;
|
||||||
|
void main() {
|
||||||
|
vUv = uv;
|
||||||
|
gl_Position = vec4( position, 1.0 );
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
let scene, camera, renderer, mesh, material, clock;
|
||||||
|
let container;
|
||||||
|
|
||||||
|
const uniforms = {
|
||||||
|
u_time: { value: 0.0 },
|
||||||
|
u_resolution: { value: new THREE.Vector2() },
|
||||||
|
};
|
||||||
|
|
||||||
|
function init() {
|
||||||
|
container = document.getElementById("ebashilovo");
|
||||||
|
clock = new THREE.Clock();
|
||||||
|
|
||||||
|
renderer = new THREE.WebGLRenderer();
|
||||||
|
renderer.setSize(container.offsetWidth, container.offsetHeight);
|
||||||
|
renderer.setPixelRatio(window.devicePixelRatio);
|
||||||
|
container.appendChild(renderer.domElement);
|
||||||
|
|
||||||
|
scene = new THREE.Scene();
|
||||||
|
|
||||||
|
camera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1);
|
||||||
|
|
||||||
|
const geometry = new THREE.PlaneGeometry(2, 2);
|
||||||
|
|
||||||
|
material = new THREE.ShaderMaterial({
|
||||||
|
uniforms: uniforms,
|
||||||
|
vertexShader: vertexShaderCode,
|
||||||
|
fragmentShader: fragmentShaderCode,
|
||||||
|
});
|
||||||
|
|
||||||
|
mesh = new THREE.Mesh(geometry, material);
|
||||||
|
scene.add(mesh);
|
||||||
|
|
||||||
|
uniforms.u_resolution.value.x = container.offsetWidth;
|
||||||
|
uniforms.u_resolution.value.y = container.offsetHeight;
|
||||||
|
|
||||||
|
window.addEventListener("resize", onWindowResize);
|
||||||
|
|
||||||
|
renderer.setAnimationLoop(animate);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onWindowResize() {
|
||||||
|
renderer.setSize(container.offsetWidth, container.offsetHeight);
|
||||||
|
uniforms.u_resolution.value.x = container.offsetWidth;
|
||||||
|
uniforms.u_resolution.value.y = container.offsetHeight;
|
||||||
|
material.uniforms.u_resolution.value.set(
|
||||||
|
container.offsetWidth,
|
||||||
|
container.offsetHeight
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
function animate() {
|
||||||
|
uniforms.u_time.value = clock.getElapsedTime();
|
||||||
|
renderer.render(scene, camera);
|
||||||
|
}
|
||||||
|
|
||||||
|
init();
|
||||||
|
|
||||||
|
|
||||||
|
/* import("../modules/womb3-simplex.mjs").then((module) => {
|
||||||
|
// Initializing the instance
|
||||||
|
const womb = new module.womb(document.getElementById("introdution_animation"));
|
||||||
|
womb.block = {
|
||||||
|
width: 40,
|
||||||
|
height: 40,
|
||||||
|
};
|
||||||
|
womb.init();
|
||||||
|
womb.generate(undefined, '#000');
|
||||||
|
|
||||||
|
// Initializing the process registers
|
||||||
|
let offset = 0;
|
||||||
|
let speed = 0.01;
|
||||||
|
|
||||||
|
// Starting the process
|
||||||
|
setInterval(function () {
|
||||||
|
womb.dump();
|
||||||
|
womb.generate((offset += speed), '#000');
|
||||||
|
}, 60);
|
||||||
|
|
||||||
|
// Initializing the resizing event processor
|
||||||
|
window.addEventListener(
|
||||||
|
"resize",
|
||||||
|
function (e) {
|
||||||
|
womb.init();
|
||||||
|
womb.dump();
|
||||||
|
womb.generate((offset += speed), '#000');
|
||||||
|
},
|
||||||
|
true
|
||||||
|
);
|
||||||
|
}); */
|
||||||
|
|
||||||
import("../modules/hotline.mjs").then((module) => {
|
import("../modules/hotline.mjs").then((module) => {
|
||||||
// Imported the hotline.mjs module
|
// Imported the hotline.mjs module
|
||||||
|
|
||||||
@@ -15,35 +186,3 @@ import("../modules/hotline.mjs").then((module) => {
|
|||||||
// Starting the hotline instance
|
// Starting the hotline instance
|
||||||
instance.start();
|
instance.start();
|
||||||
});
|
});
|
||||||
|
|
||||||
import("../modules/womb3-simplex.mjs").then((module) => {
|
|
||||||
// Initializing the instance
|
|
||||||
const womb = new module.womb(document.getElementById("introdution_animation"));
|
|
||||||
womb.block = {
|
|
||||||
width: 40,
|
|
||||||
height: 40,
|
|
||||||
};
|
|
||||||
womb.init();
|
|
||||||
womb.generate(undefined, '#000');
|
|
||||||
|
|
||||||
// Initializing the process registers
|
|
||||||
let offset = 0;
|
|
||||||
let speed = 0.003;
|
|
||||||
|
|
||||||
// Starting the process
|
|
||||||
setInterval(function () {
|
|
||||||
womb.dump();
|
|
||||||
womb.generate((offset += speed), '#000');
|
|
||||||
}, 20);
|
|
||||||
|
|
||||||
// Initializing the resizing event processor
|
|
||||||
window.addEventListener(
|
|
||||||
"resize",
|
|
||||||
function (e) {
|
|
||||||
womb.init();
|
|
||||||
womb.dump();
|
|
||||||
womb.generate((offset += speed), '#000');
|
|
||||||
},
|
|
||||||
true
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|||||||
1
kodorvan/perm/system/public/js/three.core.js
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../../../three.js/build/three.core.js
|
||||||
1
kodorvan/perm/system/public/js/three.module.js
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../../../three.js/build/three.module.js
|
||||||
6
kodorvan/perm/system/public/themes/default/css/aside.css
Normal file → Executable file
@@ -1,7 +1,7 @@
|
|||||||
@charset "UTF-8";
|
@charset "UTF-8";
|
||||||
|
|
||||||
aside {
|
aside {
|
||||||
&:not(:has(*)) {
|
&:not(:has(*)) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
section#description {
|
|
||||||
padding-top: 1.5rem;
|
|
||||||
gap: 1rem;
|
|
||||||
|
|
||||||
> p {
|
|
||||||
margin: unset;
|
|
||||||
width: var(--width);
|
|
||||||
font-family: "Cascadia Code";
|
|
||||||
font-weight: 300;
|
|
||||||
font-size: 0.8rem;
|
|
||||||
|
|
||||||
> span {
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ small {
|
|
||||||
font-family: "Bahnschrift";
|
|
||||||
font-weight: 100;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> div.lists {
|
|
||||||
margin-top: 1rem;
|
|
||||||
display: flex;
|
|
||||||
width: var(--width);
|
|
||||||
|
|
||||||
> ul {
|
|
||||||
margin: unset;
|
|
||||||
padding: unset;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 0.4em;
|
|
||||||
font-family: "Bahnschrift";
|
|
||||||
font-size: 0.7rem;
|
|
||||||
font-weight: 300;
|
|
||||||
list-style: none;
|
|
||||||
|
|
||||||
&:is(.bad) {
|
|
||||||
width: 45%;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:is(.good) {
|
|
||||||
margin-left: auto;
|
|
||||||
width: 70%;
|
|
||||||
|
|
||||||
> li {
|
|
||||||
gap: 0.4em;
|
|
||||||
|
|
||||||
> i.icon.check {
|
|
||||||
min-width: var(--width);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> li {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
section#introdution {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
height: min(350px, 35vh);
|
|
||||||
overflow: hidden;
|
|
||||||
|
|
||||||
> div.information {
|
|
||||||
z-index: 200;
|
|
||||||
position: fixed;
|
|
||||||
width: 30vw;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
cursor: default;
|
|
||||||
|
|
||||||
> span#label {
|
|
||||||
margin-top: -2em;
|
|
||||||
padding: 0.4em 0.8em 0.2em 1.2em;
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
gap: 1em;
|
|
||||||
font-size: 1.2rem;
|
|
||||||
font-family: "Bahnschrift";
|
|
||||||
font-weight: 400;
|
|
||||||
border-radius: 1.125rem;
|
|
||||||
color: #aeb629;
|
|
||||||
border: 1px solid #bababa1c;
|
|
||||||
background-color: #6262623b;
|
|
||||||
backdrop-filter: blur(1.3px);
|
|
||||||
|
|
||||||
> i.icon.code {
|
|
||||||
margin-bottom: 3px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> h2#title {
|
|
||||||
margin: unset;
|
|
||||||
width: max-content;
|
|
||||||
padding: 0.2em 0.5em 0em;
|
|
||||||
font-family: Bahnschrift;
|
|
||||||
font-size: 2.6rem;
|
|
||||||
font-weight: 400;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
> p#team {
|
|
||||||
margin: unset;
|
|
||||||
width: 100%;
|
|
||||||
/* height: 70px; */
|
|
||||||
box-sizing: border-box;
|
|
||||||
padding: 0.6em 1em;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 1.2rem;
|
|
||||||
font-family: "Bahnschrift";
|
|
||||||
font-weight: 400;
|
|
||||||
border-radius: 0.75rem;
|
|
||||||
background-color: #fff;
|
|
||||||
|
|
||||||
> b {
|
|
||||||
color: #152bcb;
|
|
||||||
}
|
|
||||||
|
|
||||||
> strong {
|
|
||||||
color: #de1111;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> div.background {
|
|
||||||
z-index: 100;
|
|
||||||
top: -5%;
|
|
||||||
left: -5%;
|
|
||||||
position: absolute;
|
|
||||||
width: 110%;
|
|
||||||
height: 110%;
|
|
||||||
filter: blur(1.8px) contrast(50);
|
|
||||||
|
|
||||||
> div.dots {
|
|
||||||
--dot-bg: black;
|
|
||||||
--dot-color: #00ff00;
|
|
||||||
--dot-size: 4px;
|
|
||||||
--dot-space: 7px;
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
> canvas#introdution_animation {
|
|
||||||
z-index: -100;
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
scale: 1.2;
|
|
||||||
filter: url(#blob) contrast(var(--contrast, 30));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0
kodorvan/perm/system/public/themes/default/css/colorscheme.css
Normal file → Executable file
@@ -1,3 +1,5 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
.advantages {
|
.advantages {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
|
||||||
54
kodorvan/perm/system/public/themes/default/css/elements/company.css
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
section#company {
|
||||||
|
justify-self: end;
|
||||||
|
width: 160px;
|
||||||
|
padding: 1rem;
|
||||||
|
padding-bottom: unset;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.5rem;
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
|
||||||
|
> h4.name {
|
||||||
|
margin: unset;
|
||||||
|
display: block;
|
||||||
|
text-align: right;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
> p.column {
|
||||||
|
margin: unset;
|
||||||
|
display: inline-flex;
|
||||||
|
flex-direction: column;
|
||||||
|
text-align: right;
|
||||||
|
gap: 0.2em;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
color: grey;
|
||||||
|
|
||||||
|
> span.row {
|
||||||
|
display: inline-flex;
|
||||||
|
justify-content: end;
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
margin-right: auto;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> span.tax {
|
||||||
|
&:before {
|
||||||
|
content: var(--company-tax) ":";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> span.identifier {
|
||||||
|
&:before {
|
||||||
|
content: var(--company-identifier) ":";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
54
kodorvan/perm/system/public/themes/default/css/elements/cookies.css
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
section#cookies {
|
||||||
|
--shadow: 4px 4px 10px 0px rgb(0 0 0 / 45%);
|
||||||
|
z-index: 3100;
|
||||||
|
right: var(--fixed-right, 2rem);
|
||||||
|
bottom: var(--fixed-bottom, 2rem);
|
||||||
|
position: fixed;
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
/* border: 1px solid #a8a8a847; */
|
||||||
|
border: 1px solid #fff;
|
||||||
|
/* border-right: unset;
|
||||||
|
border-bottom: unset; */
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #000000b8;
|
||||||
|
background-color: #000000;
|
||||||
|
/* backdrop-filter: blur(3px); */
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
-webkit-box-shadow: var(--shadow);
|
||||||
|
-moz-box-shadow: var(--shadow);
|
||||||
|
transition: opacity 0.1s ease-out;
|
||||||
|
|
||||||
|
> div {
|
||||||
|
padding: 0.8rem 1.2rem 0.7rem;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
> p {
|
||||||
|
margin: unset;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
> small {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
font-weight: 200;
|
||||||
|
color: #a6a69d;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> button {
|
||||||
|
top: -0.4rem;
|
||||||
|
right: -2rem;
|
||||||
|
position: absolute;
|
||||||
|
padding: unset;
|
||||||
|
padding-right: 0.1em;
|
||||||
|
cursor: pointer;
|
||||||
|
border: unset;
|
||||||
|
color: #f00;
|
||||||
|
background: unset;
|
||||||
|
}
|
||||||
|
}
|
||||||
70
kodorvan/perm/system/public/themes/default/css/elements/cookies_glass.css
Executable file
@@ -0,0 +1,70 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
section#cookies {
|
||||||
|
--shadow: 4px 4px 10px 0px rgb(0 0 0 / 45%);
|
||||||
|
z-index: var(--cookies-z-index, 6000);
|
||||||
|
right: var(--cookies-right, 2rem);
|
||||||
|
bottom: var(--cookies-bottom, 2rem);
|
||||||
|
position: fixed;
|
||||||
|
width: var(--cookies-width, 400px);
|
||||||
|
height: var(--cookies-height, 40px);
|
||||||
|
/* padding: 0.8rem 1.2rem 0.7rem; */
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
color: #fff;
|
||||||
|
transition: opacity 0.1s ease-out;
|
||||||
|
|
||||||
|
:is(> label[for="cookies"]:focus) {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ div.cookies.background {
|
||||||
|
z-index: calc(var(--cookies-z-index, 6000) - 1);
|
||||||
|
right: var(--cookies-right, 2rem);
|
||||||
|
bottom: var(--cookies-bottom, 2rem);
|
||||||
|
position: fixed;
|
||||||
|
width: var(--cookies-width, 400px);
|
||||||
|
height: var(--cookies-height, 40px);
|
||||||
|
border: 1px solid #a8a8a847;
|
||||||
|
border-right: unset;
|
||||||
|
border-bottom: unset;
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
background-color: #33323691;
|
||||||
|
backdrop-filter: blur(3px);
|
||||||
|
mix-blend-mode: screen;
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
-webkit-box-shadow: var(--shadow);
|
||||||
|
-moz-box-shadow: var(--shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
> div {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
> p {
|
||||||
|
margin: unset;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
> small {
|
||||||
|
font-size: 0.8rem;
|
||||||
|
font-weight: 200;
|
||||||
|
color: #a6a69d;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> label {
|
||||||
|
right: -20px;
|
||||||
|
top: -20px;
|
||||||
|
position: absolute;
|
||||||
|
padding: unset;
|
||||||
|
padding-right: 0.1em;
|
||||||
|
cursor: pointer;
|
||||||
|
border: unset;
|
||||||
|
color: #f00;
|
||||||
|
background: unset;
|
||||||
|
}
|
||||||
|
}
|
||||||
95
kodorvan/perm/system/public/themes/default/css/elements/description.css
Executable file
@@ -0,0 +1,95 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
section#description {
|
||||||
|
padding-top: 2rem;
|
||||||
|
padding-bottom: 1.5rem;
|
||||||
|
gap: 1rem;
|
||||||
|
|
||||||
|
> p {
|
||||||
|
margin: unset;
|
||||||
|
width: var(--width);
|
||||||
|
font-family: "Cascadia Code";
|
||||||
|
font-weight: 300;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
|
||||||
|
> span {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ small {
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
font-weight: 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> ul.table {
|
||||||
|
/* --border-color: #000; */
|
||||||
|
--border-color: unset;
|
||||||
|
margin: unset;
|
||||||
|
margin-top: 1rem;
|
||||||
|
width: var(--width);
|
||||||
|
padding: unset;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
font-size: 0.8rem;
|
||||||
|
font-weight: 400;
|
||||||
|
list-style: none;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
border: 1px solid var(--border-color);
|
||||||
|
|
||||||
|
> li {
|
||||||
|
height: 3rem;
|
||||||
|
display: flex;
|
||||||
|
border-bottom: 1px dashed var(--border-color);
|
||||||
|
|
||||||
|
&:is(:last-of-type) {
|
||||||
|
border-bottom: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
> span {
|
||||||
|
padding: 0.25rem 0.45rem;
|
||||||
|
display: inline;
|
||||||
|
align-content: center;
|
||||||
|
|
||||||
|
&:is(.bad) {
|
||||||
|
width: 45%;
|
||||||
|
opacity: 0.6;
|
||||||
|
border-right: 1px solid var(--border-color);
|
||||||
|
/* background-color: #ffe1e1; */
|
||||||
|
|
||||||
|
> i.icon.close {
|
||||||
|
margin-top: -0.4em;
|
||||||
|
color: #c64d4d;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.good) {
|
||||||
|
width: 70%;
|
||||||
|
/* background-color: #e0ffd5; */
|
||||||
|
|
||||||
|
> i.icon.check {
|
||||||
|
min-width: var(--width);
|
||||||
|
color: #77b81b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> i.icon {
|
||||||
|
float: left;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> strong.partners {
|
||||||
|
font-family: "Geologica";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
|
||||||
|
> span {
|
||||||
|
color: #1e1df2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
158
kodorvan/perm/system/public/themes/default/css/elements/introdution.css
Executable file
@@ -0,0 +1,158 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
section#introdution {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: var(--introdution-height, 350px);
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: #000;
|
||||||
|
|
||||||
|
+section.row {
|
||||||
|
--shadow: 0px -10px 60px 30px rgba(0, 0, 0, 0.6);
|
||||||
|
padding-top: 1rem;
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
-webkit-box-shadow: var(--shadow);
|
||||||
|
-moz-box-shadow: var(--shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.information {
|
||||||
|
z-index: 200;
|
||||||
|
position: fixed;
|
||||||
|
width: 33rem;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
cursor: default;
|
||||||
|
/* transform: perspective(35px) rotatex(1deg); */
|
||||||
|
|
||||||
|
>span#label {
|
||||||
|
--shadow: 0px 9px 8px 0px rgb(0 0 0 / 40%);
|
||||||
|
margin-top: -2em;
|
||||||
|
padding: 0.4em 0.8em 0.2em 1.2em;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
gap: 1em;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
font-weight: 400;
|
||||||
|
border-radius: 1.125rem;
|
||||||
|
color: #aeb629;
|
||||||
|
border: 1px solid #e06a6a6e;
|
||||||
|
border-bottom: unset;
|
||||||
|
background-color: #472929a8;
|
||||||
|
backdrop-filter: blur(1.3px);
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
-webkit-box-shadow: var(--shadow);
|
||||||
|
-moz-box-shadow: var(--shadow);
|
||||||
|
/* transform: perspective(25px) rotatex(-1deg); */
|
||||||
|
|
||||||
|
>i.icon.code {
|
||||||
|
margin-bottom: 3px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>h2#title {
|
||||||
|
margin: unset;
|
||||||
|
width: max-content;
|
||||||
|
padding: 0.2em 0.5em 0em;
|
||||||
|
font-family: Bahnschrift;
|
||||||
|
font-size: 2.6rem;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #fff;
|
||||||
|
text-shadow:
|
||||||
|
0px 0px 4px #ffffff85,
|
||||||
|
0px 0px 9px #ffffff47;
|
||||||
|
|
||||||
|
>span.kodorvan {
|
||||||
|
color: #ffff00;
|
||||||
|
text-shadow:
|
||||||
|
0px 0px 4px #ffff00b5,
|
||||||
|
0px 0px 11px #ffff008a
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>p#team {
|
||||||
|
margin: unset;
|
||||||
|
width: 100%;
|
||||||
|
/* height: 70px; */
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0.6em 1em;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
font-weight: 400;
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
>b {
|
||||||
|
color: #152bcb;
|
||||||
|
}
|
||||||
|
|
||||||
|
>strong {
|
||||||
|
color: #de1111;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.background {
|
||||||
|
z-index: 100;
|
||||||
|
position: absolute;
|
||||||
|
top: 0%;
|
||||||
|
left: 0%;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
filter: brightness(0.4);
|
||||||
|
animation-name: appearance;
|
||||||
|
animation-fill-mode: forwards;
|
||||||
|
animation-duration: 0.2s;
|
||||||
|
animation-delay: 1s;
|
||||||
|
animation-timing-function: ease-in;
|
||||||
|
|
||||||
|
>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#ebashilovo {
|
||||||
|
z-index: 1000;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
>canvas {
|
||||||
|
width: 200%;
|
||||||
|
height: 100%;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes appearance {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
27
kodorvan/perm/system/public/themes/default/css/elements/links.css
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
nav#links {
|
||||||
|
flex-grow: 1;
|
||||||
|
display: inline-flex;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 1rem;
|
||||||
|
|
||||||
|
> a {
|
||||||
|
text-decoration: none;
|
||||||
|
font-family: "Geologica";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 0.85rem;
|
||||||
|
color: #807f7f;
|
||||||
|
transition: color 0.1s ease-out;
|
||||||
|
|
||||||
|
&:is(:hover, :focus) {
|
||||||
|
color: #d5d5d5;
|
||||||
|
transition: color 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
color: #4b4b4b;
|
||||||
|
transition: color 0s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
41
kodorvan/perm/system/public/themes/default/css/elements/office.css
Executable file
@@ -0,0 +1,41 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
section#office {
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
> div.map {
|
||||||
|
width: 250px;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
background-color: #0c110c;
|
||||||
|
|
||||||
|
> div.loading {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
filter: brigtless(0.8) blur(1px);
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
margin-top: 50px;
|
||||||
|
position: absolute;
|
||||||
|
content: var(--map-loading, "Loading");
|
||||||
|
width: max-content;
|
||||||
|
text-align: center;
|
||||||
|
font-family: "Geologica";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 0.6rem;
|
||||||
|
color: #533a3a;
|
||||||
|
}
|
||||||
|
|
||||||
|
> i.icon.loading.spinner {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
482
kodorvan/perm/system/public/themes/default/css/elements/popular.css
Executable file
@@ -0,0 +1,482 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
section#popular {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
>div.title {
|
||||||
|
margin-top: 1rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
width: var(--width);
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
>div.column {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
&:is(.display) {
|
||||||
|
margin-top: auto;
|
||||||
|
height: min-content;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
border-radius: 1.125rem;
|
||||||
|
border: 2px solid #000;
|
||||||
|
background-color: #fff;
|
||||||
|
/* color: #fff;
|
||||||
|
background-color: #000; */
|
||||||
|
|
||||||
|
>span.amount {
|
||||||
|
margin-bottom: 0.1em;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-family: "Cascadia Code";
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
>button {
|
||||||
|
--padding: 1rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: var(--padding, 1rem);
|
||||||
|
cursor: pointer;
|
||||||
|
border: unset;
|
||||||
|
/* color: #fff; */
|
||||||
|
background: unset;
|
||||||
|
|
||||||
|
/* &:first-of-type:not(:only-of-type) {
|
||||||
|
padding-right: calc(var(--padding, 1rem) / 1.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-of-type:not(:only-of-type) {
|
||||||
|
padding-left: calc(var(--padding, 1rem) / 1.5);
|
||||||
|
} */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-of-type:not(:only-of-type) {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
>h3 {
|
||||||
|
margin: unset;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.services {
|
||||||
|
--row-amount: 3;
|
||||||
|
--row-amount-protected: min(max(1, var(--row-amount, 1)), 4);
|
||||||
|
--gap: 1rem;
|
||||||
|
width: var(--width);
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
gap: var(--gap);
|
||||||
|
|
||||||
|
>article.service {
|
||||||
|
--service-width: max(250px, calc(var(--width) / var(--row-amount-protected, 2) - (var(--gap, 0px) * 0.5 * (var(--row-amount-protected, 2) - 1))));
|
||||||
|
--icon-background-color: #261d1b;
|
||||||
|
--background-color: #3f312e;
|
||||||
|
position: relative;
|
||||||
|
min-width: 250px;
|
||||||
|
width: var(--service-width);
|
||||||
|
min-height: 450px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 1.2rem 0 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
transition: width 0.2s cubic-bezier(0.5, 0, 0, 1);
|
||||||
|
|
||||||
|
&:is(.telegram.voronka) {
|
||||||
|
--icon-background-color: #1a82b6;
|
||||||
|
--background-color: #27a6e6;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.parser) {
|
||||||
|
--icon-background-color: #996405;
|
||||||
|
/* --background-color: #fcfd1e; */
|
||||||
|
--background-color: #e58523;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.calculator) {
|
||||||
|
--icon-background-color: #a93737;
|
||||||
|
--background-color: #d24545;
|
||||||
|
}
|
||||||
|
|
||||||
|
>i.icon {
|
||||||
|
position: absolute;
|
||||||
|
margin-top: -1rem;
|
||||||
|
color: #000;
|
||||||
|
|
||||||
|
&:is(.left) {
|
||||||
|
justify-self: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.center) {
|
||||||
|
justify-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.right) {
|
||||||
|
justify-self: end;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.crown) {
|
||||||
|
top: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.search) {
|
||||||
|
top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.file.document) {
|
||||||
|
top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.calculator) {
|
||||||
|
top: 0.8em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.head {
|
||||||
|
--border-height: 20px;
|
||||||
|
--border-gap: 0.4em;
|
||||||
|
z-index: 50;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: calc(2.6em + var(--border-height, 0px) - 0.75rem + var(--border-gap, 0px));
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: start;
|
||||||
|
/* text-shadow: 0px -0.03em 0.24em #000000b3, 0px -0.03em 1em #00000087; */
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
z-index: -100;
|
||||||
|
position: absolute;
|
||||||
|
bottom: -0.75rem;
|
||||||
|
left: 0;
|
||||||
|
content: '';
|
||||||
|
width: 100%;
|
||||||
|
height: var(--border-height);
|
||||||
|
border-radius: 0.75rem 0.75rem 0 0;
|
||||||
|
background-color: var(--background-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
>h4 {
|
||||||
|
z-index: 200;
|
||||||
|
margin: unset;
|
||||||
|
display: flex;
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
font-size: 1.4rem;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.body {
|
||||||
|
--service-body-padding: 1rem;
|
||||||
|
/* --shadow: 0px 0.8em 40px 1.7em rgba(0, 0, 0, 0.4); */
|
||||||
|
z-index: 100;
|
||||||
|
position: relative;
|
||||||
|
flex-grow: 1;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: var(--service-body-padding, 1rem);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 1em;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
background-color: #130d0d;
|
||||||
|
/* box-shadow: var(--shadow);
|
||||||
|
-webkit-box-shadow: var(--shadow);
|
||||||
|
-moz-box-shadow: var(--shadow); */
|
||||||
|
|
||||||
|
>div.icon {
|
||||||
|
--diameter: 60px;
|
||||||
|
z-index: 500;
|
||||||
|
position: absolute;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
left: calc(var(--diameter) / -2.5);
|
||||||
|
margin-top: calc(var(--diameter) / -2.5);
|
||||||
|
width: var(--diameter);
|
||||||
|
height: var(--diameter);
|
||||||
|
display: flex;
|
||||||
|
border-radius: 100%;
|
||||||
|
background-color: var(--background-color);
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
--border-size: 6px;
|
||||||
|
content: '';
|
||||||
|
margin: auto;
|
||||||
|
width: calc(100% - var(--border-size) * 2);
|
||||||
|
height: calc(100% - var(--border-size) * 2);
|
||||||
|
display: block;
|
||||||
|
border-radius: 100%;
|
||||||
|
background-color: var(--icon-background-color, #fff);
|
||||||
|
}
|
||||||
|
|
||||||
|
>i.icon {
|
||||||
|
position: absolute;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
* {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>p {
|
||||||
|
margin: unset;
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
font-size: 0.8rem;
|
||||||
|
font-weight: 200;
|
||||||
|
|
||||||
|
&:is(.description) {
|
||||||
|
margin: unset;
|
||||||
|
flex-grow: 1;
|
||||||
|
font-size: 1rem;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.howto) {
|
||||||
|
font-style: italic;
|
||||||
|
color: #dacfcf;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.extra {
|
||||||
|
--service-extra-gap: 1em;
|
||||||
|
--service-extra-animation-duration: 60s;
|
||||||
|
position: relative;
|
||||||
|
margin: 0 calc(var(--service-body-padding, 1rem) * -1);
|
||||||
|
height: 1em;
|
||||||
|
display: inline-flex;
|
||||||
|
font-family: 'Cascadia Code';
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: #8b8b8bcf;
|
||||||
|
|
||||||
|
>p {
|
||||||
|
position: absolute;
|
||||||
|
margin: unset;
|
||||||
|
min-width: var(--service-width);
|
||||||
|
width: max-content;
|
||||||
|
padding-left: var(--service-extra-gap, 1em);
|
||||||
|
word-break: keep-all;
|
||||||
|
display: inline-flex;
|
||||||
|
gap: var(--service-extra-gap, 1em);
|
||||||
|
animation-name: hotline;
|
||||||
|
animation-duration: var(--service-extra-animation-duration, 10s);
|
||||||
|
animation-iteration-count: infinite;
|
||||||
|
animation-timing-function: linear;
|
||||||
|
|
||||||
|
&:first-of-type {}
|
||||||
|
|
||||||
|
&:last-of-type {
|
||||||
|
animation-delay: calc(var(--service-extra-animation-duration, 10s) / -2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.footer {
|
||||||
|
--service-footer-height: 60px;
|
||||||
|
width: 100%;
|
||||||
|
min-height: var(--service-footer-height, 70px);
|
||||||
|
height: fit-content;
|
||||||
|
display: flex;
|
||||||
|
gap: 1rem;
|
||||||
|
|
||||||
|
>div.buttons {
|
||||||
|
--footer-buttons-gap: 0.4rem;
|
||||||
|
min-width: var(--service-footer-height, 70px);
|
||||||
|
width: var(--service-footer-height, 70px);
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
gap: var(--footer-buttons-gap, 0.4rem);
|
||||||
|
|
||||||
|
>a[type="button"] {
|
||||||
|
flex-grow: 1;
|
||||||
|
width: calc(50% - var(--footer-buttons-gap, 0.4rem) / 2);
|
||||||
|
height: calc(50% - var(--footer-buttons-gap, 0.4rem) / 2);
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0.4rem 0.4rem;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border-radius: 0.75rem;
|
||||||
|
border: 1px solid #a0a0a096;
|
||||||
|
border-right: unset;
|
||||||
|
border-bottom: unset;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #8b8b8b66;
|
||||||
|
backdrop-filter: blur(1px);
|
||||||
|
transition: filter 0.05s ease-in;
|
||||||
|
|
||||||
|
&:is(:only-of-type) {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
filter: brightness(1.3);
|
||||||
|
transition: filter 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
filter: brightness(1) contrast(1.2);
|
||||||
|
transition: filter 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
>i.icon.comment {
|
||||||
|
margin-top: -0.3em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.theses {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0.2em 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 0.2em;
|
||||||
|
font-family: 'Bahnschrift';
|
||||||
|
font-size: 0.9rem;
|
||||||
|
font-weight: 100;
|
||||||
|
|
||||||
|
>p {
|
||||||
|
margin: unset;
|
||||||
|
min-height: 0.9rem;
|
||||||
|
display: inline-flex;
|
||||||
|
gap: 0.4rem;
|
||||||
|
color: #cbcbcb;
|
||||||
|
|
||||||
|
&:is(.blue) {
|
||||||
|
&:is(.colored) {
|
||||||
|
color: #979aff;
|
||||||
|
}
|
||||||
|
|
||||||
|
>span.characteristic {
|
||||||
|
color: #6c7fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.green) {
|
||||||
|
&:is(.colored) {
|
||||||
|
color: #99ff90;
|
||||||
|
}
|
||||||
|
|
||||||
|
>span.characteristic {
|
||||||
|
color: #4bff3d;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.yellow) {
|
||||||
|
&:is(.colored) {
|
||||||
|
color: #fffa7f;
|
||||||
|
}
|
||||||
|
|
||||||
|
>span.characteristic {
|
||||||
|
color: #e0ff35;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.cyan) {
|
||||||
|
&:is(.colored) {
|
||||||
|
color: #caf4ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
>span.characteristic {
|
||||||
|
color: #04efff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.red) {
|
||||||
|
&:is(.colored) {
|
||||||
|
color: #ff6767;
|
||||||
|
}
|
||||||
|
|
||||||
|
>span.characteristic {
|
||||||
|
color: #ff4747;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>span.characteristic {
|
||||||
|
--characteristic-width: 2.5em;
|
||||||
|
position: relative;
|
||||||
|
width: var(--characteristic-width);
|
||||||
|
min-width: var(--characteristic-width);
|
||||||
|
display: flex;
|
||||||
|
justify-content: end;
|
||||||
|
text-align: right;
|
||||||
|
font-weight: 200;
|
||||||
|
|
||||||
|
>i {
|
||||||
|
margin: 0 auto;
|
||||||
|
align-self: center;
|
||||||
|
|
||||||
|
&:is(.infinity) {
|
||||||
|
margin-top: -0.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.play.forwards) {
|
||||||
|
margin-top: -0.2em;
|
||||||
|
margin-left: calc(60% + 0.2em);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>img.background {
|
||||||
|
z-index: -100;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
scale: 1.1;
|
||||||
|
/* filter: blur(1.2px) brightness(0.25); */
|
||||||
|
filter: blur(1px) brightness(0.18) contrast(1.05);
|
||||||
|
|
||||||
|
&:is(.telegram.voronka) {
|
||||||
|
object-position: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>p.cost {
|
||||||
|
margin: unset;
|
||||||
|
margin-top: 0.2rem;
|
||||||
|
margin-right: 0.8rem;
|
||||||
|
width: 100%;
|
||||||
|
text-align: right;
|
||||||
|
font-family: 'Nunito';
|
||||||
|
font-size: 2rem;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes hotline {
|
||||||
|
from {
|
||||||
|
/* transform: translateX(var(--service-width, 100%)); */
|
||||||
|
transform: translateX(100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
transform: translateX(-100%);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,12 @@
|
|||||||
section#projects {
|
@charset "UTF-8";
|
||||||
padding-top: 2.5rem;
|
|
||||||
|
|
||||||
>h2.title {
|
section#projects {
|
||||||
|
z-index: 1000;
|
||||||
|
padding-top: 2.5rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
/* transform: rotate3d(220, -777, -100, 385deg) scale(1.1); */
|
||||||
|
|
||||||
|
> h2.title {
|
||||||
font-size: 2.4rem;
|
font-size: 2.4rem;
|
||||||
font-family: "Bahnschrift";
|
font-family: "Bahnschrift";
|
||||||
margin: 0.1em 0 0.2em 0;
|
margin: 0.1em 0 0.2em 0;
|
||||||
@@ -12,6 +17,11 @@ section#projects {
|
|||||||
height: 250px;
|
height: 250px;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
gap: 15px;
|
gap: 15px;
|
||||||
|
cursor: grab;
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
cursor: grabbing;
|
||||||
|
}
|
||||||
|
|
||||||
> :is(article, div) {
|
> :is(article, div) {
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -21,6 +31,38 @@ section#projects {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-radius: 0.75rem;
|
border-radius: 0.75rem;
|
||||||
|
filter: contrast(1) brightness(1) saturate(1);
|
||||||
|
transition: filter 0.2s ease-out;
|
||||||
|
|
||||||
|
&:is(:hover, :focus) {
|
||||||
|
filter: contrast(1.2) brightness(0.8) saturate(0.6);
|
||||||
|
transition: filter 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
filter: contrast(1.4) brightness(0.7) saturate(0.2);
|
||||||
|
transition: filter 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.pechatalka) {
|
||||||
|
> img.background {
|
||||||
|
filter: blur(1.5px) brightness(0.8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.understyle) {
|
||||||
|
> img.background {
|
||||||
|
object-position: bottom;
|
||||||
|
filter: blur(1px) brightness(0.8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:is(.surikov) {
|
||||||
|
> img.background {
|
||||||
|
object-position: bottom;
|
||||||
|
filter: blur(0.4px) brightness(0.8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
h4 {
|
h4 {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -43,26 +85,6 @@ section#projects {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:is(.pechatalka) {
|
|
||||||
>img.background {
|
|
||||||
filter: blur(1.5px) brightness(0.8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:is(.understyle) {
|
|
||||||
>img.background {
|
|
||||||
object-position: bottom;
|
|
||||||
filter: blur(1px) brightness(0.8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:is(.surikov) {
|
|
||||||
>img.background {
|
|
||||||
object-position: bottom;
|
|
||||||
filter: blur(0.4px) brightness(0.8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
212
kodorvan/perm/system/public/themes/default/css/elements/server.css
Executable file
@@ -0,0 +1,212 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
section#server {
|
||||||
|
--height: 440px;
|
||||||
|
--y-max: min(var(--y, 0px), var(--height, 0px));
|
||||||
|
--offset-left: -5vw;
|
||||||
|
position: relative;
|
||||||
|
height: 440px;
|
||||||
|
overflow: hidden;
|
||||||
|
/* background-color: #000; */
|
||||||
|
background: linear-gradient(127deg, #030308, #0e0202, #180101);
|
||||||
|
|
||||||
|
>div.server {
|
||||||
|
z-index: 100;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
pointer-events: none;
|
||||||
|
|
||||||
|
>img.pc {
|
||||||
|
z-index: 100;
|
||||||
|
position: absolute;
|
||||||
|
top: -225px;
|
||||||
|
/* left: calc(-120px + var(--offset-left) + (var(--y-max, 0px) / 4)); */
|
||||||
|
left: var(--offset-left);
|
||||||
|
height: 290%;
|
||||||
|
clip-path: polygon(0 0, 915px 0, 1065px 100%, 0 100%);
|
||||||
|
transform: perspective(130px) rotateZ(17deg) rotateX(1.3deg) skewX(8deg);
|
||||||
|
filter: contrast(1.1) brightness(1.1);
|
||||||
|
transition: left 0.4s ease-in-out;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.right {
|
||||||
|
position: absolute;
|
||||||
|
display: contents;
|
||||||
|
|
||||||
|
>div.title {
|
||||||
|
z-index: 50;
|
||||||
|
position: absolute;
|
||||||
|
left: calc(var(--offset-left, 0px) + 450px);
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: start;
|
||||||
|
align-items: start;
|
||||||
|
font-family: "Geologica";
|
||||||
|
font-size: 3rem;
|
||||||
|
color: #fff;
|
||||||
|
transform: perspective(135px) rotateY(-4deg) skewY(5.4deg);
|
||||||
|
|
||||||
|
>h3 {
|
||||||
|
margin: unset;
|
||||||
|
margin-left: min(calc(-100% + (var(--y-max, 0px) * 4.35)), 0px);
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: start;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.4em;
|
||||||
|
font-size: 7.6vw;
|
||||||
|
font-weight: 800;
|
||||||
|
color: #ff9400;
|
||||||
|
transition: margin-left 0.4s cubic-bezier(0.55, 0.04, 0.12, 1);
|
||||||
|
|
||||||
|
>i.icon.server {
|
||||||
|
margin-left: 0.3em;
|
||||||
|
scale: 5;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>span {
|
||||||
|
margin-top: -2rem;
|
||||||
|
/* margin-left: 0.1em; */
|
||||||
|
margin-left: min(calc(-100% + 0.1em + (var(--y-max, 0px) * 4.35)), 0px);
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 3.65vw;
|
||||||
|
color: #b81515;
|
||||||
|
color: #fff;
|
||||||
|
transition: margin-left 0.5s cubic-bezier(0.55, 0.04, 0.12, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.bottom {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
>div.column {
|
||||||
|
--margin-bottom: 1.4rem;
|
||||||
|
--height: 105px;
|
||||||
|
z-index: 100;
|
||||||
|
margin: auto 2rem var(--margin-bottom, 1.4rem) auto;
|
||||||
|
margin-bottom: min(calc(var(--height, 100%) * -4 + var(--y-max) / 1),
|
||||||
|
var(--margin-bottom));
|
||||||
|
height: var(--height, fit-content);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
font-family: "Geologica";
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 3rem;
|
||||||
|
color: #fff;
|
||||||
|
transition: margin-bottom 0.3s cubic-bezier(0.55, 0.04, 0.12, 1) 0.2s;
|
||||||
|
|
||||||
|
>span.location {
|
||||||
|
margin-bottom: -0.2em;
|
||||||
|
text-align: end;
|
||||||
|
font-size: 0.85em;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
>strong {
|
||||||
|
margin-left: 0.1em;
|
||||||
|
font-weight: 500;
|
||||||
|
/* color: #f00; */
|
||||||
|
color: #0AF;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>strong.cost {
|
||||||
|
display: flex;
|
||||||
|
justify-content: start;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.2em;
|
||||||
|
font-weight: 400;
|
||||||
|
|
||||||
|
>span {
|
||||||
|
font-weight: 500;
|
||||||
|
color: #00ff08;
|
||||||
|
}
|
||||||
|
|
||||||
|
>i.icon.trend {
|
||||||
|
margin-bottom: 0em;
|
||||||
|
margin-right: 0.45em;
|
||||||
|
scale: 3;
|
||||||
|
rotate: -17deg;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>ul.advantages {
|
||||||
|
--border-color: #fff;
|
||||||
|
z-index: 500;
|
||||||
|
position: relative;
|
||||||
|
margin: unset;
|
||||||
|
margin-top: auto;
|
||||||
|
margin-right: 10vw;
|
||||||
|
height: 150px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 1em 1.2em;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 0.3em;
|
||||||
|
flex-direction: column;
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
font-size: 1.2em;
|
||||||
|
font-weight: 600;
|
||||||
|
list-style: none;
|
||||||
|
border-radius: 0.75rem 0.75rem 0 0;
|
||||||
|
border: 2px solid var(--border-color);
|
||||||
|
border-bottom: unset;
|
||||||
|
color: #000;
|
||||||
|
background-color: #fff;
|
||||||
|
transform-origin: left;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
left: -2.4rem;
|
||||||
|
bottom: 0;
|
||||||
|
height: 2.25rem;
|
||||||
|
width: 2.25rem;
|
||||||
|
pointer-events: none;
|
||||||
|
border-bottom-right-radius: 0.75rem;
|
||||||
|
box-shadow: 0 20px 0 0 #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
right: -2.4rem;
|
||||||
|
bottom: 0;
|
||||||
|
height: 2.25rem;
|
||||||
|
width: 2.25rem;
|
||||||
|
pointer-events: none;
|
||||||
|
border-bottom-left-radius: 0.75rem;
|
||||||
|
box-shadow: 0 20px 0 0 #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
>li {
|
||||||
|
position: relative;
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
padding-left: 1.8em;
|
||||||
|
|
||||||
|
>i.icon {
|
||||||
|
position: absolute !important;
|
||||||
|
left: 0;
|
||||||
|
|
||||||
|
&:is(.trophy) {
|
||||||
|
top: 0.15em;
|
||||||
|
left: 0.6em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
section#services {
|
section#services {
|
||||||
margin: unset;
|
margin: unset;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
section#statistics {
|
@charset "UTF-8";
|
||||||
> div.row {
|
|
||||||
|
section#shortcut {
|
||||||
|
> div {
|
||||||
width: var(--width);
|
width: var(--width);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@@ -8,18 +10,22 @@ section#statistics {
|
|||||||
> div.column {
|
> div.column {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
flex-grow: 1;
|
|
||||||
|
|
||||||
&:is(.statistics) {
|
&:is(.statistics) {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
|
|
||||||
> p {
|
> p {
|
||||||
margin: unset;
|
margin: unset;
|
||||||
|
margin-top: 0.8rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 0.4rem;
|
gap: 0.4rem;
|
||||||
font-family: "Cascadia Code";
|
font-family: "Cascadia Code";
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|
||||||
|
&:is(:first-of-type) {
|
||||||
|
margin-top: unset;
|
||||||
|
}
|
||||||
|
|
||||||
> span {
|
> span {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
76
kodorvan/perm/system/public/themes/default/css/elements/telegram.css
Executable file
@@ -0,0 +1,76 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
section#telegram {
|
||||||
|
--diameter: var(--telegram-diameter, 50px);
|
||||||
|
z-index: 3000;
|
||||||
|
bottom: var(--fixed-bottom);
|
||||||
|
left: var(--fixed-left);
|
||||||
|
position: fixed;
|
||||||
|
width: var(--diameter);
|
||||||
|
height: var(--diameter);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
> a {
|
||||||
|
z-index: 200;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 100%;
|
||||||
|
box-shadow: 0px 0px 8px 0px rgb(0 0 0 / 30%);
|
||||||
|
transition: scale 0.1s ease-out;
|
||||||
|
|
||||||
|
&:is(:hover, :focus) {
|
||||||
|
scale: 1.05;
|
||||||
|
transition: scale 0.1s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
scale: 1;
|
||||||
|
filter: brightness(0.8);
|
||||||
|
transition: scale 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
> img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> div {
|
||||||
|
--half: calc(var(--telegram-diameter, 0) / 2);
|
||||||
|
--border-radius: 10rem;
|
||||||
|
--gap: 1rem;
|
||||||
|
--border: 1px;
|
||||||
|
z-index: 100;
|
||||||
|
left: var(--half);
|
||||||
|
position: absolute;
|
||||||
|
width: max-content;
|
||||||
|
height: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-right: 2rem;
|
||||||
|
padding-left: calc(var(--half, 0) + var(--gap, 1rem));
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
font-family: "Bahnschrift";
|
||||||
|
border-radius: 0 var(--border-radius) var(--border-radius) 0;
|
||||||
|
border: var(--border, 1px) solid #ded9fae6;
|
||||||
|
border-bottom: unset;
|
||||||
|
background-color: #c0bcd6cc;
|
||||||
|
backdrop-filter: blur(2px);
|
||||||
|
|
||||||
|
> span {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #09394e;
|
||||||
|
}
|
||||||
|
|
||||||
|
> small {
|
||||||
|
margin-top: -0.2em;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #415970;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,14 +1,12 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
section#workload {
|
section#workload {
|
||||||
--shadow: 0px -10px 60px 30px rgba(0, 0, 0, 0.6);
|
height: 80px;
|
||||||
height: 100px;
|
padding-top: unset !important;
|
||||||
box-sizing: border-box;
|
|
||||||
padding-bottom: 1rem;
|
padding-bottom: 1rem;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
box-shadow: var(--shadow);
|
|
||||||
-webkit-box-shadow: var(--shadow);
|
|
||||||
-moz-box-shadow: var(--shadow);
|
|
||||||
|
|
||||||
> p {
|
> p {
|
||||||
margin: unset;
|
margin: unset;
|
||||||
0
kodorvan/perm/system/public/themes/default/css/fonts.css
Normal file → Executable file
58
kodorvan/perm/system/public/themes/default/css/footer.css
Normal file → Executable file
@@ -1,42 +1,28 @@
|
|||||||
@charset "UTF-8";
|
@charset "UTF-8";
|
||||||
|
|
||||||
footer {
|
footer {
|
||||||
box-sizing: border-box;
|
z-index: 4000;
|
||||||
padding: 0 20%;
|
position: relative;
|
||||||
display: flex;
|
height: var(--footer-height, 200px);
|
||||||
flex-direction: column;
|
padding: 1rem 10vw;
|
||||||
justify-content: center;
|
display: flex;
|
||||||
text-align: center;
|
align-items: self-end;
|
||||||
gap: 0.5rem;
|
color: #fff;
|
||||||
margin: 2rem 0 1rem 0;
|
background-color: #000;
|
||||||
|
--shadow: 0px 0px 80px 25px rgba(0, 0, 0, 0.4);
|
||||||
|
box-shadow: var(--shadow);
|
||||||
|
-webkit-box-shadow: var(--shadow);
|
||||||
|
-moz-box-shadow: var(--shadow);
|
||||||
|
|
||||||
&:not(:has(*)) {
|
> div.column {
|
||||||
display: none;
|
height: 100%;
|
||||||
}
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: end;
|
||||||
|
gap: 1rem;
|
||||||
|
|
||||||
> p#description {
|
&:is(:last-of-type:last-child) {
|
||||||
text-align: center;
|
margin-left: auto;
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
120
kodorvan/perm/system/public/themes/default/css/header.css
Normal file → Executable file
@@ -1,69 +1,75 @@
|
|||||||
@charset "UTF-8";
|
@charset "UTF-8";
|
||||||
|
|
||||||
header {
|
header {
|
||||||
top: 0;
|
z-index: 1000;
|
||||||
left: 0;
|
top: 0;
|
||||||
position: fixed;
|
left: 0;
|
||||||
width: 100vw;
|
position: absolute;
|
||||||
height: var(--menu-height);
|
width: 100vw;
|
||||||
box-sizing: border-box;
|
height: calc(var(--menu-height) + var(--introdution-height));
|
||||||
padding: 0 20%;
|
pointer-events: none;
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
|
|
||||||
align-items: center;
|
> div {
|
||||||
background-color: #f7fafc;
|
top: 0;
|
||||||
z-index: 1000;
|
position: sticky;
|
||||||
|
width: 100%;
|
||||||
|
height: var(--menu-height);
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0 20%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
pointer-events: all;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
&:not(:has(*)) {
|
&:not(:has(*)) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
> a#logotype {
|
> a#logotype {
|
||||||
margin-top: -0.4rem;
|
margin-top: -0.4rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: #000;
|
color: #000;
|
||||||
|
|
||||||
> h4:only-of-type:first-child {
|
> h4:only-of-type:first-child {
|
||||||
margin: unset;
|
margin: unset;
|
||||||
font-family: "Cascadia Code";
|
font-family: "Cascadia Code";
|
||||||
font-size: 2.5em;
|
font-size: 2.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
> small:only-of-type:last-child {
|
> small:only-of-type:last-child {
|
||||||
justify-self: end;
|
justify-self: end;
|
||||||
align-self: end;
|
align-self: end;
|
||||||
margin-top: -0.8em;
|
margin-top: -0.8em;
|
||||||
font-family: "Bahnschrift";
|
font-family: "Bahnschrift";
|
||||||
font-size: 0.62em;
|
font-size: 0.62em;
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
> nav#menu {
|
> nav#menu {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
font-family: "Geologica";
|
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
> 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
147
kodorvan/perm/system/public/themes/default/css/main.css
Normal file → Executable file
@@ -5,24 +5,12 @@
|
|||||||
@import url("https://fonts.googleapis.com/css2?family=Share+Tech+Mono&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=Montserrat:wght@900&display=swap");
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Geologica:wght@100..900&family=Pochaevsk&display=swap");
|
@import url("https://fonts.googleapis.com/css2?family=Geologica:wght@100..900&family=Pochaevsk&display=swap");
|
||||||
|
@import url('https://fonts.googleapis.com/css2?family=Alumni+Sans+Pinstripe:ital@0;1&family=Nunito:ital,wght@0,200..1000;1,200..1000&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 {
|
main {
|
||||||
|
--scroll-px-ten: calc(var(--scroll-px) / 10);
|
||||||
|
--scroll-px-hundred: calc(var(--scroll-px-ten) / 10);
|
||||||
|
--scroll-px-thousand: calc(var(--scroll-px-hundred) / 10);
|
||||||
margin-top: var(--menu-height);
|
margin-top: var(--menu-height);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -34,131 +22,4 @@ main {
|
|||||||
&:not(:has(*)) {
|
&:not(:has(*)) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
> section {
|
|
||||||
z-index: 500;
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
background-color: #fff;
|
|
||||||
|
|
||||||
> 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
165
kodorvan/perm/system/public/themes/default/css/pages/index.css
Executable file
@@ -0,0 +1,165 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
|
||||||
|
main {
|
||||||
|
>section.row {
|
||||||
|
z-index: 500;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
>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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
>section.wrap {
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: #fff;
|
||||||
|
|
||||||
|
>section.row {
|
||||||
|
z-index: 500;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
>div.net {
|
||||||
|
--dot-bg: #5a645a;
|
||||||
|
--dot-color: transparent;
|
||||||
|
--dot-color: transparent;
|
||||||
|
--dot-size: calc(110px + var(--scroll-px-hundred, 0px) * 2);
|
||||||
|
--dot-space: calc(var(--dot-size) + 1px);
|
||||||
|
z-index: -50;
|
||||||
|
position: absolute;
|
||||||
|
top: -30%;
|
||||||
|
width: 200%;
|
||||||
|
height: 200%;
|
||||||
|
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);
|
||||||
|
mask-image: linear-gradient(transparent, #fff, transparent);
|
||||||
|
transform: perspective(135px) rotateX(calc(6deg + var(--scroll-deg, 0deg) * -0.4)) skewY(6deg) rotateZ(-18deg);
|
||||||
|
transition: transform 0.08s linear, background 0.08s linear;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
39
kodorvan/perm/system/public/themes/default/css/system.css
Normal file → Executable file
@@ -1,30 +1,42 @@
|
|||||||
@charset "UTF-8";
|
@charset "UTF-8";
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--width: max(800px, 40vw);
|
--width: max(1050px, 55vw);
|
||||||
--menu-height: 70px;
|
--menu-height: 70px;
|
||||||
|
--introdution-height: min(350px, 35vh);
|
||||||
--gap: min(12px, 1rem);
|
--gap: min(12px, 1rem);
|
||||||
|
--fixed-right: 3rem;
|
||||||
|
--fixed-bottom: 2rem;
|
||||||
|
--fixed-left: 3rem;
|
||||||
|
--telegram-diameter: 50px;
|
||||||
|
|
||||||
/* font-family: , system-ui, sans-serif; */
|
--cookies-z-index: 6000;
|
||||||
font-family: "dejavu";
|
--cookies-right: var(--fixed-right);
|
||||||
|
--cookies-bottom: var(--fixed-bottom);
|
||||||
|
--cookies-width: 24rem;
|
||||||
|
--cookies-height: 4rem;
|
||||||
|
|
||||||
|
font-family: "Commissioner";
|
||||||
|
font-family: "Share Tech Mono";
|
||||||
|
font-family: "Montserrat";
|
||||||
|
font-family: "Alumni Sans Pinstripe";
|
||||||
|
font-family: "DejaVu";
|
||||||
|
font-family: "Fira";
|
||||||
|
font-family: "Hack";
|
||||||
|
font-family: "Nunito", "DejaVu", sans-serif;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
outline: none;
|
outline: none;
|
||||||
border: none;
|
border: none;
|
||||||
transition: 0.1s ease-out;
|
transition: 0.1s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Selection */
|
body {
|
||||||
::selection {
|
margin: unset;
|
||||||
color: var(--text-selected-color);
|
width: 100vw;
|
||||||
background: var(--text-selected-background-color);
|
overflow-x: hidden;
|
||||||
|
background-color: #f7fafc;
|
||||||
}
|
}
|
||||||
|
|
||||||
::-moz-selection {
|
|
||||||
color: var(--text-selected-color);
|
|
||||||
background: var(--text-selected-background-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.unselectable {
|
.unselectable {
|
||||||
-webkit-touch-callout: none;
|
-webkit-touch-callout: none;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
@@ -33,4 +45,3 @@
|
|||||||
-ms-user-select: none;
|
-ms-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
0
kodorvan/perm/system/public/themes/default/images/avatar/123.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
0
kodorvan/perm/system/public/themes/default/images/avatar/algiz.png
Normal file → Executable file
|
Before Width: | Height: | Size: 447 KiB After Width: | Height: | Size: 447 KiB |
0
kodorvan/perm/system/public/themes/default/images/avatar/arsen.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
0
kodorvan/perm/system/public/themes/default/images/avatar/hollspae.png
Normal file → Executable file
|
Before Width: | Height: | Size: 762 KiB After Width: | Height: | Size: 762 KiB |
0
kodorvan/perm/system/public/themes/default/images/avatar/seva.jpg
Normal file → Executable file
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
BIN
kodorvan/perm/system/public/themes/default/images/excel.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 23 KiB |
17
kodorvan/perm/system/public/themes/default/images/icons/telegram.svg
Normal file → Executable file
@@ -1 +1,16 @@
|
|||||||
<svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50px" height="50px"><path d="M46.137,6.552c-0.75-0.636-1.928-0.727-3.146-0.238l-0.002,0C41.708,6.828,6.728,21.832,5.304,22.445 c-0.259,0.09-2.521,0.934-2.288,2.814c0.208,1.695,2.026,2.397,2.248,2.478l8.893,3.045c0.59,1.964,2.765,9.21,3.246,10.758 c0.3,0.965,0.789,2.233,1.646,2.494c0.752,0.29,1.5,0.025,1.984-0.355l5.437-5.043l8.777,6.845l0.209,0.125 c0.596,0.264,1.167,0.396,1.712,0.396c0.421,0,0.825-0.079,1.211-0.237c1.315-0.54,1.841-1.793,1.896-1.935l6.556-34.077 C47.231,7.933,46.675,7.007,46.137,6.552z M22,32l-3,8l-3-10l23-17L22,32z"/></svg>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg width="1000px" height="1000px" viewBox="0 0 1000 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<!-- Generator: Sketch 53.2 (72643) - https://sketchapp.com -->
|
||||||
|
<title>Artboard</title>
|
||||||
|
<desc>Created with Sketch.</desc>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="50%" y1="0%" x2="50%" y2="99.2583404%" id="linearGradient-1">
|
||||||
|
<stop stop-color="#2AABEE" offset="0%"></stop>
|
||||||
|
<stop stop-color="#229ED9" offset="100%"></stop>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g id="Artboard" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||||
|
<circle id="Oval" fill="url(#linearGradient-1)" cx="500" cy="500" r="500"></circle>
|
||||||
|
<path d="M226.328419,494.722069 C372.088573,431.216685 469.284839,389.350049 517.917216,369.122161 C656.772535,311.36743 685.625481,301.334815 704.431427,301.003532 C708.567621,300.93067 717.815839,301.955743 723.806446,306.816707 C728.864797,310.92121 730.256552,316.46581 730.922551,320.357329 C731.588551,324.248848 732.417879,333.113828 731.758626,340.040666 C724.234007,419.102486 691.675104,610.964674 675.110982,699.515267 C668.10208,736.984342 654.301336,749.547532 640.940618,750.777006 C611.904684,753.448938 589.856115,731.588035 561.733393,713.153237 C517.726886,684.306416 492.866009,666.349181 450.150074,638.200013 C400.78442,605.66878 432.786119,587.789048 460.919462,558.568563 C468.282091,550.921423 596.21508,434.556479 598.691227,424.000355 C599.00091,422.680135 599.288312,417.758981 596.36474,415.160431 C593.441168,412.561881 589.126229,413.450484 586.012448,414.157198 C581.598758,415.158943 511.297793,461.625274 375.109553,553.556189 C355.154858,567.258623 337.080515,573.934908 320.886524,573.585046 C303.033948,573.199351 268.692754,563.490928 243.163606,555.192408 C211.851067,545.013936 186.964484,539.632504 189.131547,522.346309 C190.260287,513.342589 202.659244,504.134509 226.328419,494.722069 Z" id="Path-3" fill="#FFFFFF"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 2.0 KiB |
0
kodorvan/perm/system/public/themes/default/images/projects/pechatalka.gif
Normal file → Executable file
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
0
kodorvan/perm/system/public/themes/default/images/projects/surikov.png
Normal file → Executable file
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
0
kodorvan/perm/system/public/themes/default/images/projects/understyle.png
Normal file → Executable file
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
0
kodorvan/perm/system/public/themes/default/images/projects/understyle_2.png
Normal file → Executable file
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
BIN
kodorvan/perm/system/public/themes/default/images/server.png
Executable file
|
After Width: | Height: | Size: 650 KiB |
BIN
kodorvan/perm/system/public/themes/default/images/telegram_voronka.png
Executable file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
kodorvan/perm/system/public/themes/default/images/tordv.jpg
Normal file
|
After Width: | Height: | Size: 249 KiB |
|
After Width: | Height: | Size: 19 KiB |
0
kodorvan/perm/system/public/themes/default/videos/cover.mp4
Normal file → Executable file
0
kodorvan/perm/system/settings/system.php.sample
Normal file → Executable file
1
kodorvan/perm/system/views/themes/default/aside.html
Normal file → Executable file
@@ -2,7 +2,6 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
|
|||||||
0
kodorvan/perm/system/views/themes/default/core.html
Normal file → Executable file
11
kodorvan/perm/system/views/themes/default/elements/company.html
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--company-identifier: "{{ language.name == 'ru' or true ? 'ОГРН' : 'ID' }}";
|
||||||
|
--company-tax: "{{ language.name == 'ru' or true ? 'ИНН' : 'TAX' }}";
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<section id="company">
|
||||||
|
<h4 class="name">ИП Мирзаев</h4>
|
||||||
|
<p class="column"><span class="tax row">271103176488</span><span class="identifier row">322270000004691</span></p>
|
||||||
|
</section>
|
||||||
7
kodorvan/perm/system/views/themes/default/elements/cookies.html
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
<section id="cookies" class="unselectable">
|
||||||
|
<div>
|
||||||
|
<p>ИСПОЛЬЗУЕТСЯ ТЕХНОЛОГИЯ COOKIES</p>
|
||||||
|
<small>№152-ФЗ «О персональных данных»</small>
|
||||||
|
</div>
|
||||||
|
<button onclick="setTimeout(() => this.parentElement.remove(), 200); this.parentElement.style.opacity = 0"><i class="icon close small"></i></button>
|
||||||
|
</section>
|
||||||
7
kodorvan/perm/system/views/themes/default/elements/links.html
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
<nav id="links" class="unselectable">
|
||||||
|
<a href="/offer">ПУБЛИЧНАЯ ОФЕРТА</a>
|
||||||
|
<a href="https://ru.wikipedia.org/wiki/WTFPL">ЛИЦЕНЗИЯ</a>
|
||||||
|
<a href="https://t.me/kodorvan">КОДОРВАНЬ</a>
|
||||||
|
<a href="https://t.me/blog_mirzaev_sexy">МИРЗАЕВ</a>
|
||||||
|
<a href="https://git.svoboda.works/kodorvan">РЕПОЗИТОРИЙ</a>
|
||||||
|
</nav>
|
||||||
13
kodorvan/perm/system/views/themes/default/elements/office.html
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--map-loading: "Загрузка карты";
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<section id="office">
|
||||||
|
<div class="map">
|
||||||
|
<div class="loading">
|
||||||
|
<i class="icon loading spinner animated"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
10
kodorvan/perm/system/views/themes/default/elements/telegram.html
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
<section id="telegram" class="unselectable">
|
||||||
|
<a href="https://t.me/kodorvan?direct" rel="nofollow">
|
||||||
|
<img src="themes/default/images/icons/telegram.svg" alt="Telegram logotype icon" ondragstart="return false"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<span>Конструктор заказа</span>
|
||||||
|
<small>Получи стоимость за 2 минуты</small>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
17
kodorvan/perm/system/views/themes/default/footer.html
Normal file → Executable file
@@ -1,13 +1,18 @@
|
|||||||
{% block css %}
|
{% block css %}
|
||||||
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/company.css" />
|
||||||
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/links.css" />
|
||||||
|
<link type="text/css" rel="stylesheet" href="/themes/default/css/elements/office.css" />
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<footer class="unselectable">
|
<footer>
|
||||||
<p id="description">Профессиональная разработка ваших проектов</p>
|
<div class="column">
|
||||||
<div id="link" class="unselectable" >
|
{% include '/themes/default/elements/office.html' %}
|
||||||
<a href="https://t.me/kodorvan?direct" > КОДОРВАНЬ</a>
|
{% include '/themes/default/elements/links.html' %}
|
||||||
<a href="https://git.svoboda.works/kodorvan">РЕПОЗИТОРИИ</a>
|
</div>
|
||||||
<a href="https://ru.wikipedia.org/wiki/WTFPL">WTFPL</a>
|
|
||||||
|
<div class="column">
|
||||||
|
{% include '/themes/default/elements/company.html' %}
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
0
kodorvan/perm/system/views/themes/default/head.html
Normal file → Executable file
18
kodorvan/perm/system/views/themes/default/header.html
Normal file → Executable file
@@ -1,14 +1,14 @@
|
|||||||
{% block css %} {% endblock %} {% block body %}
|
{% block css %} {% endblock %} {% block body %}
|
||||||
<header>
|
<header>
|
||||||
<a href="https://perm.kodorvan.tech" id="logotype" class="unselectable">
|
<div>
|
||||||
<h4>КОДОРВАНЬ</h4>
|
<a href="https://perm.kodorvan.tech" id="logotype" class="unselectable">
|
||||||
<small>реальных программистов</small>
|
<h4>КОДОРВАНЬ</h4>
|
||||||
</a>
|
<small>реальных программистов</small>
|
||||||
|
</a>
|
||||||
|
|
||||||
<nav id="menu" class="unselectable">
|
<nav id="menu" class="unselectable">
|
||||||
<a href="https://git.svoboda.works/kodorvan">Проекты</a>
|
<a href="#">лёха не забудь сюда кнопки добавить</a>
|
||||||
<a href="#contacts">Контакты</a>
|
</nav>
|
||||||
<a href="#services">Услуги</a>
|
</div>
|
||||||
</nav>
|
|
||||||
</header>
|
</header>
|
||||||
{% endblock %} {% block js %} {% endblock %}
|
{% endblock %} {% block js %} {% endblock %}
|
||||||
|
|||||||
13
kodorvan/perm/system/views/themes/default/index.html
Normal file → Executable file
@@ -14,9 +14,9 @@
|
|||||||
{{ block('header') }}
|
{{ block('header') }}
|
||||||
{{ block('aside') }}
|
{{ block('aside') }}
|
||||||
|
|
||||||
<main>
|
<main id="main">
|
||||||
{% block main %}
|
{% block main %}
|
||||||
{{main|raw}}
|
{{ main|raw }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
@@ -24,6 +24,15 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block js %}
|
{% block js %}
|
||||||
|
<script>
|
||||||
|
let main = document.getElementById('main');
|
||||||
|
|
||||||
|
setInterval(() => {
|
||||||
|
main.style.setProperty('--scroll-px', window.pageYOffset + 'px');
|
||||||
|
main.style.setProperty('--scroll-deg', window.pageYOffset / 100 + 'deg')
|
||||||
|
}, 60);
|
||||||
|
</script>
|
||||||
|
|
||||||
{{ block('header_js') }}
|
{{ block('header_js') }}
|
||||||
{{ block('aside_js') }}
|
{{ block('aside_js') }}
|
||||||
{{ block('footer_js') }}
|
{{ block('footer_js') }}
|
||||||
|
|||||||
8
kodorvan/perm/system/views/themes/default/js.html
Normal file → Executable file
@@ -1,4 +1,12 @@
|
|||||||
{% block js %}
|
{% block js %}
|
||||||
|
<script type="importmap">
|
||||||
|
{
|
||||||
|
"imports": {
|
||||||
|
"three": "/js/three.module.js"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
{% for element in js %}
|
{% for element in js %}
|
||||||
<script
|
<script
|
||||||
{% if element.src %}src="{{ element.src }}" {% endif %}
|
{% if element.src %}src="{{ element.src }}" {% endif %}
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
<section id="description">
|
|
||||||
<p class="unselectable"><strong>Создание сайта</strong>, <strong>разработка чат-бота телеграм</strong>, <strong>написание парсера</strong>, <strong>подключение воронки</strong>, а так же разработка любой сложности калькулятора, интернет-магазина (маркетплейса) и полноценной CRM с нуля <strong>в Перми</strong></p>
|
|
||||||
|
|
||||||
<div class="lists unselectable">
|
|
||||||
<ul class="bad">
|
|
||||||
<li><i class="icon close small"></i>Не копируем проекты по шаблонам</li>
|
|
||||||
<li><i class="icon close small"></i>Не перепродаём проекты другим заказчикам</li>
|
|
||||||
<li><i class="icon close small"></i>Не навязываем дополнительные услуги</li>
|
|
||||||
<li><i class="icon close small"></i>Не создаём зависимость от нашей команды</li>
|
|
||||||
<li><i class="icon close small"></i>Не вводим в заблуждение сложной терминологией</li>
|
|
||||||
</ul>
|
|
||||||
<ul class="good">
|
|
||||||
<li><i class="icon check small"></i>Пишем код с нуля и используем наши уникальные технологии, проверенные годами практики и имеющие реальные преимущества</li>
|
|
||||||
<li><i class="icon check small"></i>Репозиторий и код проекта полностью передаётся заказчику либо под нашу репутацию, либо под патент или договор о неразглашении (NDA)</li>
|
|
||||||
<li><i class="icon check small"></i>Бесплатный сервер на время разработки и бесплатная установка на сервер заказчика, либо аренда сервера у нас по самой низкой цене на рынке и более оперативной техподдержкой</li>
|
|
||||||
<li><i class="icon check small"></i>Глубоко документируем код, пишем инструкции и вики-страницы в репозитории на английском языке для длительной поддержки проекта, либо комфортной передачи другим разработчикам</li>
|
|
||||||
<li><i class="icon check small"></i>Процесс работы можно наблюдать ежечасно в реальном времени на нашем сайте, чтобы убедиться, что программисты и дизайнеры реально отрабатывают поставленную им задачу</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
<section id="introdution" class="container">
|
|
||||||
<div class="information">
|
|
||||||
<span id="label">
|
|
||||||
<i class="icon code slash"></i>
|
|
||||||
<span class="unselectable">ПРОФЕССИОНАЛЫ С ОПЫТОМ</span>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<h2 id="title" class="unselectable">ПЕРМСКИЕ РАЗРАБОТЧИКИ</h2>
|
|
||||||
|
|
||||||
<p id="team" class="unselectable"><b>Чистый код</b>, реальные сроки и собственные сервера в <strong>Перми</strong><br />по <b>честной цене</b> и с <b>вечной техподдержкой</b></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="background">
|
|
||||||
<div class="dots"></div>
|
|
||||||
|
|
||||||
<canvas id="introdution_animation"></canvas>
|
|
||||||
|
|
||||||
<svg style="position: absolute">
|
|
||||||
<defs>
|
|
||||||
<filter id="blob">
|
|
||||||
<feGaussianBlur in="SourceGraphic" stdDeviation="12" result="blur"></feGaussianBlur>
|
|
||||||
<feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 19 -9" result="blob"></feColorMatrix>
|
|
||||||
</filter>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<section id="statistics">
|
|
||||||
<div class="row">
|
|
||||||
<div class="statistics column">
|
|
||||||
<p>Репозитории:<span>{{ projects ?? 97 }}</span></p>
|
|
||||||
<small>Наши разработки + проекты заказчиков</small>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="office column"></div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
<section id="workload" class="unselectable">
|
|
||||||
<p class=""><i class="icon coffe"></i>Загруженность команды: <span class="{{ workload < 51 ? 'small' : (workload < 71 ? 'medium' : 'heavy')}}">{{ workload }}%<small>Обновлено 5 минут назад</small></span></p>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<section id="contacts" class="container unselectable">
|
<section id="contacts" class="row unselectable">
|
||||||
<h2 id="title">Связатьcя с нами</h2>
|
<h2 id="title">Связатьcя с нами</h2>
|
||||||
<p id="description">Готовы обсудить ваш проект? Напишите нам!</p>
|
<p id="description">Готовы обсудить ваш проект? Напишите нам!</p>
|
||||||
|
|
||||||
30
kodorvan/perm/system/views/themes/default/main/elements/description.html
Executable file
@@ -0,0 +1,30 @@
|
|||||||
|
<section id="description" class="row">
|
||||||
|
<p class="unselectable"><strong>Создание сайта</strong>, <strong>разработка чат-бота телеграм</strong>, <strong>написание парсера</strong>, <strong>подключение воронки</strong>, а так же разработка любой сложности калькулятора, интернет-магазина (маркетплейса) и полноценной CRM с нуля <strong>в Перми</strong></p>
|
||||||
|
|
||||||
|
<ul class="table unselectable">
|
||||||
|
<li>
|
||||||
|
<span class="bad"><i class="icon close small"></i>Не копируем проекты по шаблонам</span>
|
||||||
|
<span class="good"><i class="icon check small"></i><strong>Пишем код с нуля</strong> с использованием наших <strong>уникальных технологий</strong>, которые позволяют сокращать сроки разработки и преумножить качество проекта</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="bad"><i class="icon close small"></i>Не перепродаём проекты другим заказчикам</span>
|
||||||
|
<span class="good"><i class="icon check small"></i><strong>Репозиторий и код проекта полностью передаются заказчику</strong> под нашу публичную репутацию, либо под патент или договор о неразглашении (NDA)</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="bad"><i class="icon close small"></i>Не навязываем дополнительные услуги</span>
|
||||||
|
<span class="good"><i class="icon check small"></i><strong>Бесплатный сервер</strong> на время разработки, <strong>бесплатная установка на сервер заказчика</strong> и <strong>бесплатная техподдержка</strong></span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="bad"><i class="icon close small"></i>Не создаём зависимость от нашей команды</span>
|
||||||
|
<span class="good"><i class="icon check small"></i>Документируем код, пишем инструкции и разрабатываем систему вики-страниц на английском языке для <strong>длительной поддержки проекта</strong></span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<span class="bad"><i class="icon close small"></i>Не вводим в заблуждение сложной терминологией</span>
|
||||||
|
<span class="good"><i class="icon check small"></i>Процесс работы можно наблюдать в реальном времени на нашем сайте, чтобы убедиться, что <strong>мы честно отрабатываем поставленную задачу</strong></span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<!-- <strong class="partners unselectable">Мы мотивированы сотрудничать на <span>постоянной основе</span>, поэтому <span>работаем на результат</span></strong> -->
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- , либо реально выгодная аренда сервера у нас по самой низкой цене на рынке и максимально эффективной техподдержкой с бесплатными бекапами и оперативной установкой критических обновлений безопасности -->
|
||||||
16
kodorvan/perm/system/views/themes/default/main/elements/introdution.html
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
<section id="introdution" class="row">
|
||||||
|
<div class="information">
|
||||||
|
<span id="label">
|
||||||
|
<i class="icon code slash"></i>
|
||||||
|
<span class="unselectable">ПРОФЕССИОНАЛЫ</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<h2 id="title" class="unselectable">КОМАНДА <span class="kodorvan">КОДОРВАНЬ</span></h2>
|
||||||
|
|
||||||
|
<p id="team" class="unselectable"><b>Чистый код</b>, авангардный дизайн, глубокий SEO,</br> безопасность, реальные сроки и свои сервера в <strong>Перми</strong></br>по <b>честной цене</b> и с <b>вечной техподдержкой</b></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="background" style="opacity: 0">
|
||||||
|
<div id="ebashilovo"></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
167
kodorvan/perm/system/views/themes/default/main/elements/popular.html
Executable file
@@ -0,0 +1,167 @@
|
|||||||
|
{% macro service(class, title, icon_left, icon_center, icon_right, description, howto, extra, buttons, theses, background_image_src, background_image_alt, cost) %}
|
||||||
|
<article class="service{% if class is not empty %} {{ class }}{% endif %}">
|
||||||
|
{% if icon_left is not empty %}<i class="icon left {{ icon_left }}"></i>{% endif %}
|
||||||
|
{% if icon_center is not empty %}
|
||||||
|
<link type="text/css" rel="stylesheet" href="/css/icons/{{ icon_center|replace({' ': '_'}) }}.css" />
|
||||||
|
<i class="icon center {{ icon_center }}"></i>
|
||||||
|
{% endif %}
|
||||||
|
{% if icon_right is not empty %}<i class="icon right {{ icon_right }}"></i>{% endif %}
|
||||||
|
|
||||||
|
{% if icon_center2222 is not empty %}
|
||||||
|
<link type="text/css" rel="stylesheet" href="/css/icons/{{ icon_center|replace({' ': '_'}) }}.css" />
|
||||||
|
<div class="icon">
|
||||||
|
<i class="icon center {{ icon_center }}"></i>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="head">
|
||||||
|
<h4>{{ title is empty ? 'Разработка' : title }}</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="body">
|
||||||
|
{% if description is not empty %}
|
||||||
|
<p class="description">{{ description|raw }}</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if howto is not empty %}
|
||||||
|
<p class="howto">{{ howto|raw }}</p>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if extra is not empty %}
|
||||||
|
<div class="extra">
|
||||||
|
<p>
|
||||||
|
{% for text in extra %}
|
||||||
|
<span>{{ text }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{% for text in extra %}
|
||||||
|
<span>{{ text }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
{% if theses is not empty %}
|
||||||
|
<div class="buttons">
|
||||||
|
{% for button in buttons %}
|
||||||
|
{% set icon = button.icon ?? 'close' %}
|
||||||
|
<link type="text/css" rel="stylesheet" href="/css/icons/{{ button.icon|replace({' ': '_'}) }}.css" />
|
||||||
|
<a type="button" href="{{ button.href }}"><i class="icon {{ button.icon }}"></i></a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if theses is not empty %}
|
||||||
|
<div class="theses">
|
||||||
|
{% for thesis in theses %}
|
||||||
|
<p{% if thesis.class is not empty %} class="{{ thesis.class }}{% if thesis.colored is true %} colored{% endif %}"{% endif %}>
|
||||||
|
{% if thesis.icon is not empty %}
|
||||||
|
<span class="characteristic">
|
||||||
|
<link type="text/css" rel="stylesheet" href="/css/icons/{{ thesis.icon|replace({' ': '_'}) }}.css" />
|
||||||
|
<i class="icon {{ thesis.icon }}"></i>
|
||||||
|
</span>
|
||||||
|
{% elseif thesis.characteristic is not empty %}
|
||||||
|
<span class="characteristic">{{ thesis.characteristic }}</span>
|
||||||
|
{% endif %}
|
||||||
|
{{ thesis.text }}
|
||||||
|
</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if background_image_src is not empty and background_image_alt is not empty %}
|
||||||
|
<img class="background" src="{{ background_image_src }}" alt="{{ background_image_alt }}" ondragstart="return false;"/>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if cost is not empty %}
|
||||||
|
<p class="cost">ОТ <span>{{ cost }}₽</span></p>
|
||||||
|
{% endif %}
|
||||||
|
</article>
|
||||||
|
{% endmacro service %}
|
||||||
|
|
||||||
|
<section id="popular" class="row unselectable">
|
||||||
|
<div class="title unselectable">
|
||||||
|
<div class="column">
|
||||||
|
<h3>Популярные заказы</h3>
|
||||||
|
<span>Готовые оптимизированные пакеты услуг со скидками</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="column display">
|
||||||
|
<button class="plus">
|
||||||
|
<i class="icon plus"></i>
|
||||||
|
</button>
|
||||||
|
<span class="amount">3</span>
|
||||||
|
<button class="minus">
|
||||||
|
<i class="icon minus"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="services">
|
||||||
|
{% for service in services %}
|
||||||
|
{{
|
||||||
|
_self.service(
|
||||||
|
class: service.class,
|
||||||
|
title: service.title,
|
||||||
|
icon_left: service.icon_left,
|
||||||
|
icon_center: service.icon_center,
|
||||||
|
icon_right: service.icon_right,
|
||||||
|
description: service.description,
|
||||||
|
howto: service.howto,
|
||||||
|
extra: service.extra,
|
||||||
|
buttons: service.buttons,
|
||||||
|
theses: service.theses,
|
||||||
|
background_image_src: service.background_image_src,
|
||||||
|
background_image_alt: service.background_image_alt,
|
||||||
|
cost: service.cost
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
let popular = document.getElementById("popular");
|
||||||
|
let services = popular?.querySelector('div[class="services"]');
|
||||||
|
let amount = popular.querySelector(
|
||||||
|
'div.title>div[class="column display"]>span[class="amount"]'
|
||||||
|
);
|
||||||
|
|
||||||
|
if (services instanceof HTMLElement) {
|
||||||
|
let plus = popular.querySelector(
|
||||||
|
'div.title>div[class="column display"]>button[class="plus"]'
|
||||||
|
);
|
||||||
|
|
||||||
|
plus.addEventListener("click", (event) => {
|
||||||
|
let old =
|
||||||
|
+getComputedStyle(services).getPropertyValue("--row-amount") || 1;
|
||||||
|
let value = old + 1;
|
||||||
|
|
||||||
|
if (value > 4) value = 4;
|
||||||
|
else if (value < 1) value = 1;
|
||||||
|
|
||||||
|
services.style.setProperty("--row-amount", value);
|
||||||
|
amount.innerText = value;
|
||||||
|
});
|
||||||
|
|
||||||
|
let minus = popular.querySelector(
|
||||||
|
'div.title>div[class="column display"]>button[class="minus"]'
|
||||||
|
);
|
||||||
|
|
||||||
|
minus.addEventListener("click", (event) => {
|
||||||
|
let old =
|
||||||
|
+getComputedStyle(services).getPropertyValue("--row-amount") || 1;
|
||||||
|
let value = old - 1;
|
||||||
|
|
||||||
|
if (value > 4) value = 4;
|
||||||
|
else if (value < 1) value = 1;
|
||||||
|
|
||||||
|
services.style.setProperty("--row-amount", value);
|
||||||
|
amount.innerText = value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</section>
|
||||||
11
kodorvan/perm/system/views/themes/default/main/elements/products.html
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
<section id="products" class="row">
|
||||||
|
<div class="title">
|
||||||
|
<h3>Готовые проекты</h3>
|
||||||
|
<p>Готовые решения для переработки под свою идею</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<article class="product">
|
||||||
|
<div class="image">
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
</section>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<section id="projects" class="container unselectable">
|
<section id="projects" class="row unselectable">
|
||||||
<div id="wrap" class="hotline unselectable">
|
<div id="wrap" class="hotline unselectable">
|
||||||
<article class="pechatalka">
|
<article class="pechatalka">
|
||||||
<h4>ПЕЧАТАЛКА</h4>
|
<h4>ПЕЧАТАЛКА</h4>
|
||||||
39
kodorvan/perm/system/views/themes/default/main/elements/server.html
Executable file
@@ -0,0 +1,39 @@
|
|||||||
|
<section id="server" class="row unselectable">
|
||||||
|
<div class="server">
|
||||||
|
<img
|
||||||
|
src="/themes/default/images/server.png"
|
||||||
|
alt="Kodorvan сервер в Перми"
|
||||||
|
class="pc"
|
||||||
|
ondragstart="return false"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="title">
|
||||||
|
<h3><i class="icon server"></i>НАШИ СЕРВЕРА</h3>
|
||||||
|
<span>ПОЛНЫЙ КОНТРОЛЬ НАД ПРОЕКТОМ</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bottom">
|
||||||
|
<div class="column">
|
||||||
|
<span class="location">ЛОКАЦИЯ: <strong>ПЕРМЬ</strong></span>
|
||||||
|
<strong class="cost">
|
||||||
|
<i class="icon trend"></i>
|
||||||
|
ОТ <span>200₽</span> В МЕСЯЦ
|
||||||
|
</strong>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="advantages">
|
||||||
|
<li><i class="icon list tree"></i>Бесплатно на этапе разработки</li>
|
||||||
|
<li><i class="icon gift"></i>Самые низкие цены</li>
|
||||||
|
<li><i class="icon phone"></i>Адекватная техподдержка</li>
|
||||||
|
<li><i class="icon terminal"></i>Оперативный доступ</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
let server = document.getElementById('server');
|
||||||
|
|
||||||
|
setInterval(() => server.style.setProperty('--y', (window.pageYOffset + window.innerHeight - server.offsetTop) + 'px'), 350);
|
||||||
|
</script>
|
||||||
11
kodorvan/perm/system/views/themes/default/main/elements/shortcut.html
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
<section id="shortcut" class="row">
|
||||||
|
<div class="row">
|
||||||
|
<div class="statistics column">
|
||||||
|
<p>Репозитории:<span>{{ projects ?? 98 }}</span></p>
|
||||||
|
<small class="unselectable">Наши разработки + проекты заказчиков</small>
|
||||||
|
|
||||||
|
<p>Просмотры:<span>{{ month ?? '304 258' }}</span></p>
|
||||||
|
<small class="unselectable">За последние 30 дней</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
3
kodorvan/perm/system/views/themes/default/main/elements/workload.html
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
<section id="workload" class="row">
|
||||||
|
<p><i class="icon coffe"></i>Загруженность команды: <span class="{{ workload < 51 ? 'small' : (workload < 71 ? 'medium' : 'heavy')}}">{{ workload }}%<small class="unselectable">Обновлено 5 минут назад</small></span></p>
|
||||||
|
</section>
|
||||||