generated from mirzaev/pot-php
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e6c0c57b1f | |||
| 60884ab2ed | |||
| 16b0361268 | |||
| 5a7edafee2 | |||
| c631428699 | |||
| d26b0ca9ea | |||
| 7fb037d155 | |||
| db3a515aaa | |||
| 1ee70ba8d6 | |||
| d70791aff2 |
16
.gitmodules
vendored
Executable file
16
.gitmodules
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
[submodule "hotline.mjs"]
|
||||
path = hotline.mjs
|
||||
url = https://git.svoboda.works/mirzaev/hotline.mjs
|
||||
branch = stable
|
||||
[submodule "damper.mjs"]
|
||||
path = damper.mjs
|
||||
url = https://git.svoboda.works/mirzaev/damper.mjs.git
|
||||
branch = stable
|
||||
[submodule "icons"]
|
||||
path = icons
|
||||
url = https://git.svoboda.works/mirzaev/icons
|
||||
branch = stable
|
||||
[submodule "womb3-simplex.mjs"]
|
||||
path = womb3-simplex.mjs
|
||||
url = https://git.svoboda.works/mirzaev/womb3-simplex.mjs
|
||||
branch = stable
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"name": "kodorvan/perm",
|
||||
"description": "Лендинг для Перми от Ксении",
|
||||
"homepage": "https://git.svoboda.works/kodorvan/perm",
|
||||
"name": "kodorvan/site",
|
||||
"description": "The kodorvan team main site",
|
||||
"homepage": "https://git.svoboda.works/kodorvan/site",
|
||||
"type": "site",
|
||||
"keywords": [
|
||||
"minimal",
|
||||
"baza",
|
||||
"landing",
|
||||
"perm"
|
||||
"site"
|
||||
],
|
||||
"readme": "README.md",
|
||||
"license": "WTFPL",
|
||||
@@ -17,25 +17,22 @@
|
||||
"email": "arsen@mirzaev.sexy",
|
||||
"homepage": "https://mirzaev.sexy",
|
||||
"role": "Programmer"
|
||||
},
|
||||
{
|
||||
"name": "Hollspae",
|
||||
"email": "ksena.vilkova79@gmail.om",
|
||||
"role": "Creator-Programmer"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"wiki": "https://git.svoboda.works/kodorvan/perm/wiki",
|
||||
"issues": "https://git.svoboda.works/kodorvan/perm/issues"
|
||||
"wiki": "https://git.svoboda.works/kodorvan/site/wiki",
|
||||
"issues": "https://git.svoboda.works/kodorvan/site/issues"
|
||||
},
|
||||
"require": {
|
||||
"php": "^8.4",
|
||||
"php": "^8.5",
|
||||
"ext-blake3": "^0.1",
|
||||
"mirzaev/minimal": "^3.8",
|
||||
"mirzaev/baza": "^3.4",
|
||||
"mirzaev/languages": "^1",
|
||||
"twig/twig": "^3.2",
|
||||
"twig/extra-bundle": "^3.7",
|
||||
"twig/intl-extra": "^3.10"
|
||||
"twig/intl-extra": "^3.10",
|
||||
"phpmailer/phpmailer": "^7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"mirzaev/files": "Easy working with files",
|
||||
@@ -44,12 +41,12 @@
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"kodorvan\\perm\\": "kodorvan/perm/system"
|
||||
"kodorvan\\site\\": "kodorvan/site/system"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"kodorvan\\perm\\tests\\": "kodorvan/perm/tests"
|
||||
"kodorvan\\site\\tests\\": "kodorvan/site/tests"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
1000
composer.lock
generated
Normal file → Executable file
1000
composer.lock
generated
Normal file → Executable file
File diff suppressed because it is too large
Load Diff
1
damper.mjs
Submodule
1
damper.mjs
Submodule
Submodule damper.mjs added at 81d208b964
Submodule hotline.mjs updated: 01e8ddf502...c25963fca8
1
icons
Submodule
1
icons
Submodule
Submodule icons added at c4dedad538
36
install.sh
36
install.sh
@@ -1,23 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
git submodule update --init --recursive
|
||||
|
||||
if [ -d author/project ]; then
|
||||
mv author/project author/perm
|
||||
mv author/project author/site
|
||||
fi
|
||||
|
||||
if [ -d author ]; then
|
||||
mv author kodorvan
|
||||
fi
|
||||
|
||||
if [ -e kodorvan/perm/system/settings/*.sample ]; then
|
||||
for i in kodorvan/perm/system/settings/*.sample; do
|
||||
cp "$i" "${i/.sample/}";
|
||||
for i in kodorvan/site/system/settings/*.sample; do
|
||||
echo $i;
|
||||
if [ ! -f "${i/.sample/}" ]; then
|
||||
cp -n "$i" "${i/.sample/}";
|
||||
echo ${i/.sample/};
|
||||
fi
|
||||
done
|
||||
|
||||
if ! [ -d kodorvan/site/system/public/js/modules ]; then
|
||||
mkdir kodorvan/site/system/public/js/modules -p
|
||||
fi
|
||||
|
||||
if ! [ -d kodorvan/perm/system/public/js/modules ]; then
|
||||
mkdir kodorvan/perm/system/public/js/modules -p
|
||||
if ! [ -L kodorvan/site/system/public/js/modules/damper.mjs ]; then
|
||||
ln -s ../../../../../../damper.mjs/damper.mjs kodorvan/site/system/public/js/modules/damper.mjs;
|
||||
fi
|
||||
|
||||
if ! [ -L kodorvan/perm/system/public/js/modules/hotline.mjs ]; then
|
||||
ln -s ../../../../../../hotline.mjs/hotline.mjs kodorvan/perm/system/public/js/modules/hotline.mjs;
|
||||
if ! [ -L kodorvan/site/system/public/js/modules/hotline.mjs ]; then
|
||||
ln -s ../../../../../../hotline.mjs/hotline.mjs kodorvan/site/system/public/js/modules/hotline.mjs;
|
||||
fi
|
||||
|
||||
if ! [ -L kodorvan/site/system/public/js/modules/womb3-simplex.mjs ]; then
|
||||
ln -s ../../../../../../womb3-simplex.mjs/womb3-simplex.mjs kodorvan/site/system/public/js/modules/womb3-simplex.mjs;
|
||||
fi
|
||||
|
||||
if ! [ -L kodorvan/site/system/public/js/modules/simplex-noise.mjs ]; then
|
||||
ln -s ../../../../../../womb3-simplex.mjs/simplex-noise.mjs kodorvan/site/system/public/js/modules/simplex-noise.mjs;
|
||||
fi
|
||||
|
||||
if ! [ -L kodorvan/site/system/public/css/icons ]; then
|
||||
ln -s ../../../../../icons/css kodorvan/site/system/public/css/icons;
|
||||
fi
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
const items = document.querySelectorAll(".accordion button");
|
||||
|
||||
function toggleAccordion() {
|
||||
const itemToggle = this.getAttribute('aria-expanded');
|
||||
|
||||
for (i = 0; i < items.length; i++) {
|
||||
items[i].setAttribute('aria-expanded', 'false');
|
||||
}
|
||||
|
||||
if (itemToggle == 'false') {
|
||||
this.setAttribute('aria-expanded', 'true');
|
||||
}
|
||||
}
|
||||
|
||||
items.forEach(item => item.addEventListener('click', toggleAccordion));
|
||||
@@ -1,19 +0,0 @@
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const blocks = document.querySelectorAll('.block');
|
||||
|
||||
blocks.forEach(block => {
|
||||
const question = block.querySelector('.question');
|
||||
const answerCont = block.querySelector('.answercont');
|
||||
|
||||
question.addEventListener('click', function() {
|
||||
// Просто переключаем текущий блок без влияния на другие
|
||||
if (block.classList.contains('active')) {
|
||||
answerCont.style.maxHeight = '0';
|
||||
block.classList.remove('active');
|
||||
} else {
|
||||
answerCont.style.maxHeight = answerCont.scrollHeight + 'px';
|
||||
block.classList.add('active');
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -1,21 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
import("../modules/hotline.mjs").then((module) => {
|
||||
// Imported the hotline.mjs module
|
||||
|
||||
// Initializing an instance of the hotline.mjs
|
||||
const instance = new module.hotline(document.getElementById("wrap"));
|
||||
|
||||
// Initializing settings of the hotline instance
|
||||
instance.alive = true;
|
||||
instance.wheel = false;
|
||||
instance.delta = 3;
|
||||
|
||||
// Starting the hotline instance
|
||||
instance.start();
|
||||
});
|
||||
|
||||
document.addEventListener('dragstart', function(event) {
|
||||
event.preventDefault();
|
||||
return false;
|
||||
});
|
||||
@@ -1,7 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
aside {
|
||||
&:not(:has(*)) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@media (prefers-color-scheme: default) {
|
||||
:root {
|
||||
--text-color: #fff;
|
||||
--text-color-inverted: #000;
|
||||
--button-background-color-inverted: #fff;
|
||||
--button-background-color: #000;
|
||||
--section-background-color-inverted: #fff;
|
||||
--section-background-color: #000;
|
||||
--background-color: #000;
|
||||
--background-color-inverted: #fff;
|
||||
|
||||
--interface-top-background-color: var(--background-color, #000);
|
||||
--interface-background-color: var(--background-color, #000);
|
||||
--interface-bottom-background-color: var(--background-color, #000);
|
||||
|
||||
--red: red;
|
||||
--white: #fff;
|
||||
--blue: #0ea5e9;
|
||||
|
||||
--paper: var(--white);
|
||||
}
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--text-color: #fff;
|
||||
--text-color-inverted: #000;
|
||||
--button-background-color-inverted: #fff;
|
||||
--button-background-color: #000;
|
||||
--section-background-color-inverted: #fff;
|
||||
--section-background-color: #fff;
|
||||
--background-color: #000;
|
||||
--background-color-inverted: #fff;
|
||||
|
||||
--interface-top-background-color: var(--background-color, #000);
|
||||
--interface-background-color: var(--background-color, #000);
|
||||
--interface-bottom-background-color: var(--background-color, #000);
|
||||
|
||||
--red: red;
|
||||
--white: #fff;
|
||||
|
||||
--paper: var(--white);
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
:root {
|
||||
--text-color: #fff;
|
||||
--text-color-inverted: #000;
|
||||
--button-background-color-inverted: #fff;
|
||||
--button-background-color: #000;
|
||||
--section-background-color-inverted: #fff;
|
||||
--section-background-color: #000;
|
||||
--background-color: #000;
|
||||
--background-color-inverted: #fff;
|
||||
|
||||
--interface-top-background-color: var(--background-color, #000);
|
||||
--interface-background-color: var(--background-color, #000);
|
||||
--interface-bottom-background-color: var(--background-color, #000);
|
||||
|
||||
--red: red;
|
||||
--white: #fff;
|
||||
|
||||
--paper: var(--white);
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
@import url('/css/fonts/fira.css');
|
||||
@import url('/css/fonts/hack.css');
|
||||
@import url('/css/fonts/dejavu.css');
|
||||
@import url('/css/fonts/bahnschrift.css');
|
||||
|
||||
@font-face {
|
||||
font-family: 'Commissioner';
|
||||
src: url('/fonts/commissioner.ttf');
|
||||
font-weight: 400;
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
footer {
|
||||
box-sizing: border-box;
|
||||
padding: 0 20%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
gap: 0.5rem;
|
||||
margin: 2rem 0 1rem 0;
|
||||
|
||||
&:not(:has(*)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
> p#description {
|
||||
text-align: center;
|
||||
font-size: 1rem;
|
||||
font-family: "Bahnschrift";
|
||||
font-weight: 400;
|
||||
margin: unset;
|
||||
color: rgb(0, 0, 0, 0.6);
|
||||
}
|
||||
> div#link {
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
|
||||
> a {
|
||||
text-decoration: none;
|
||||
font-size: 1rem;
|
||||
font-family: "Bahnschrift";
|
||||
font-weight: 400;
|
||||
color: rgb(160, 160, 160);
|
||||
transition: ease 0.2s;
|
||||
&:hover {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
header {
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
width: 100vw;
|
||||
height: 70px;
|
||||
box-sizing: border-box;
|
||||
padding: 0 20%;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 2fr 1fr;
|
||||
|
||||
justify-items: center;
|
||||
align-items: center;
|
||||
background-color: #f7fafc;
|
||||
z-index: 1000;
|
||||
|
||||
&:not(:has(*)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
> span#logotype {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 1.1rem;
|
||||
|
||||
> h4:only-of-type:first-child {
|
||||
margin: unset;
|
||||
font-family: "Cascadia Code";
|
||||
font-size: 2.5em;
|
||||
}
|
||||
|
||||
> small:only-of-type:last-child {
|
||||
justify-self: end;
|
||||
align-self: end;
|
||||
margin-top: -0.8em;
|
||||
font-family: "Bahnschrift";
|
||||
font-size: 0.62em;
|
||||
font-weight: 800;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
}
|
||||
|
||||
> nav#menu {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
font-family: "Geologica";
|
||||
|
||||
> a {
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
font-size: 1rem;
|
||||
text-transform: uppercase;
|
||||
color: rgb(0, 0, 0, 0.5);
|
||||
transition: ease 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> a#order {
|
||||
display: flex;
|
||||
gap: 5px;
|
||||
align-items: center;
|
||||
padding: 0.5em 1.3em;
|
||||
border-radius: 1.125em;
|
||||
|
||||
font-family: "Cascadia Code";
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
background-color: #0ea5e9;
|
||||
color: #fff;
|
||||
transition: 0.2s;
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
section.hotline {
|
||||
|
||||
max-width: 100vw;
|
||||
max-height: 360px;
|
||||
height: max(16vw, 16vh);
|
||||
display: inline-flex;
|
||||
gap: 15px;
|
||||
|
||||
> :is(article, div) {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: centr;
|
||||
|
||||
min-width: 200px;
|
||||
height: 100%;
|
||||
border-radius: 1.125rem;
|
||||
overflow: hidden;
|
||||
background: rgb(0, 0, 0);
|
||||
|
||||
p {
|
||||
font-family: "Cascadia Code";
|
||||
font-size: 1.8rem;
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
text-shadow: 5px 5px 2px rgba(14, 165, 2335, 0.7);
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
i.icon.code.slash {
|
||||
position: relative;
|
||||
width: 2px;
|
||||
height: 16px;
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
transform: rotate(15deg);
|
||||
background: currentColor;
|
||||
|
||||
&::after,
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
transform: rotate(-60deg);
|
||||
}
|
||||
|
||||
&::before {
|
||||
top: 5px;
|
||||
left: -8px;
|
||||
border-top: 2px solid;
|
||||
border-left: 2px solid;
|
||||
}
|
||||
|
||||
&::after {
|
||||
top: 3px;
|
||||
right: -8px;
|
||||
border-right: 2px solid;
|
||||
border-bottom: 2px solid;
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
i.icon.telegram {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: transparent;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
i.icon.telegram::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: white;
|
||||
border-radius: 50%;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
}
|
||||
|
||||
i.icon.telegram::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 5px solid transparent;
|
||||
border-right: 5px solid transparent;
|
||||
border-bottom: 8px solid currentColor;
|
||||
transform: rotate(-30deg);
|
||||
top: 7px;
|
||||
left: 9px;
|
||||
color: #ffffff; /* Цвет бумажного самолетика */
|
||||
}
|
||||
@@ -1,142 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@import url("https://fonts.googleapis.com/css2?family=Commissioner:wght@100;200;300;400;500;600;700;800;900&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Cascadia+Code:ital,wght@0,200..700;1,200..700&family=Rubik:ital,wght@0,300..900;1,300..900&family=Wix+Madefor+Display:wght@400..800&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@900&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Geologica:wght@100..900&family=Pochaevsk&display=swap");
|
||||
|
||||
body {
|
||||
margin: unset;
|
||||
background-color: #f7fafc;
|
||||
}
|
||||
|
||||
main {
|
||||
flex-grow: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 2rem;
|
||||
transition: 0s;
|
||||
margin-top: 6rem;
|
||||
/* overflow-x: hidden; */
|
||||
|
||||
&:not(:has(*)) {
|
||||
display: none;
|
||||
}
|
||||
> div.container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: auto;
|
||||
|
||||
> span#shape {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
padding: 0.3em 1em;
|
||||
border-radius: 1.125rem;
|
||||
font-family: "Bahnschrift";
|
||||
font-size: 1.2rem;
|
||||
font-weight: 400;
|
||||
color: #0ea5e9;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
rgba(227, 242, 249, 1) 0%,
|
||||
rgba(14, 165, 233, 0.2) 50%,
|
||||
rgba(227, 242, 249, 1) 100%
|
||||
);
|
||||
}
|
||||
|
||||
> h2#title {
|
||||
font-size: 2.4rem;
|
||||
font-family: "Bahnschrift";
|
||||
margin: 0.1em 0 0.2em 0;
|
||||
|
||||
> span {
|
||||
color: #0ea5e9;
|
||||
}
|
||||
}
|
||||
|
||||
> p#description {
|
||||
text-align: center;
|
||||
font-size: 1.2rem;
|
||||
font-family: "Bahnschrift";
|
||||
font-weight: 400;
|
||||
|
||||
margin: unset;
|
||||
color: rgb(0, 0, 0, 0.6);
|
||||
}
|
||||
> p.description {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
> div#team {
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
margin-top: 1rem;
|
||||
|
||||
> div#card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
padding: 0.6em 0.8em;
|
||||
border-radius: 1.125rem;
|
||||
box-shadow: 0px 0px 15px 0px rgba(14, 165, 233, 0.1);
|
||||
background-color: #fff;
|
||||
transition: ease 0.2s;
|
||||
|
||||
&:hover {
|
||||
transform: scaleY(1.03);
|
||||
}
|
||||
> img {
|
||||
object-fit: cover;
|
||||
width: 250px;
|
||||
height: 270px;
|
||||
margin: 0 auto;
|
||||
border-radius: 1.125rem;
|
||||
}
|
||||
> p {
|
||||
font-size: 1.5em;
|
||||
font-weight: 900;
|
||||
font-family: "Cascadia Code";
|
||||
color: #000000;
|
||||
margin: 15px 0 0;
|
||||
}
|
||||
> span {
|
||||
font-size: 1em;
|
||||
font-family: "Cascadia Code";
|
||||
font-weight: 400;
|
||||
color: #0ea5e9;
|
||||
}
|
||||
}
|
||||
}
|
||||
> a#telegram {
|
||||
display: flex;
|
||||
gap: 5px;
|
||||
align-items: center;
|
||||
padding: 0.5em 1.3em;
|
||||
margin-top: 1rem;
|
||||
border-radius: 1.125em;
|
||||
font-size: 1em;
|
||||
font-family: "Cascadia Code";
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
background-color: #0ea5e9;
|
||||
color: #fff;
|
||||
transition: 0.2s;
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
> img {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
:root {
|
||||
--gap: min(12px, 1rem);
|
||||
|
||||
/* font-family: , system-ui, sans-serif; */
|
||||
font-family: "dejavu";
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
border: none;
|
||||
transition: 0.1s ease-out;
|
||||
}
|
||||
|
||||
/* Selection */
|
||||
::selection {
|
||||
color: var(--text-selected-color);
|
||||
background: var(--text-selected-background-color);
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
color: var(--text-selected-color);
|
||||
background: var(--text-selected-background-color);
|
||||
}
|
||||
|
||||
|
||||
.unselectable {
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
<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>
|
||||
|
Before Width: | Height: | Size: 631 B |
@@ -1,7 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
aside {
|
||||
&:not(:has(*)) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
@@ -1,116 +0,0 @@
|
||||
.advantages {
|
||||
margin: 0 auto;
|
||||
|
||||
width: 48rem;
|
||||
|
||||
> h2.title {
|
||||
text-align: center;
|
||||
font-size: 2.4rem;
|
||||
font-family: "Bahnschrift";
|
||||
margin: 0.1em 0 0.2em 0;
|
||||
}
|
||||
|
||||
.accordion {
|
||||
.accordion-item {
|
||||
border-bottom: 1px solid #4d5974;
|
||||
|
||||
button[aria-expanded="true"] {
|
||||
border-bottom: 1px solid #0ea5e9;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
button {
|
||||
position: relative;
|
||||
display: block;
|
||||
text-align: left;
|
||||
width: 100%;
|
||||
padding: 1em 0;
|
||||
color: #7288a2;
|
||||
font-size: 1.2rem;
|
||||
font-family: "Bahnschrift";
|
||||
font-weight: 400;
|
||||
border: none;
|
||||
background: none;
|
||||
outline: none;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
cursor: pointer;
|
||||
color: #0ea5e9;
|
||||
|
||||
&::after {
|
||||
cursor: pointer;
|
||||
color: #0ea5e9;
|
||||
border: 1px solid #0ea5e9;
|
||||
}
|
||||
}
|
||||
.title {
|
||||
padding: 1em 1.5em 1em 0;
|
||||
}
|
||||
.icon {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 18px;
|
||||
right: 0;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
border: 1px solid;
|
||||
border-radius: 22px;
|
||||
|
||||
&::before {
|
||||
display: block;
|
||||
position: absolute;
|
||||
content: "";
|
||||
top: 11px;
|
||||
left: 6px;
|
||||
width: 10px;
|
||||
height: 2px;
|
||||
background: currentColor;
|
||||
}
|
||||
&::after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
content: "";
|
||||
top: 7px;
|
||||
left: 10px;
|
||||
width: 2px;
|
||||
height: 10px;
|
||||
background: currentColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
button[aria-expanded="true"] {
|
||||
color: #0ea5e9;
|
||||
.icon {
|
||||
&::after {
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
+ .accordion-content {
|
||||
opacity: 1;
|
||||
max-height: 9em;
|
||||
transition: all 200ms linear;
|
||||
will-change: opacity, max-height;
|
||||
}
|
||||
}
|
||||
.accordion-content {
|
||||
opacity: 0;
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
transition: opacity 200ms linear, max-height 200ms linear;
|
||||
will-change: opacity, max-height;
|
||||
|
||||
p {
|
||||
align-items: left;
|
||||
font-size: 1.05rem;
|
||||
font-weight: 300;
|
||||
font-family: "Bahnschrift";
|
||||
margin: 2em 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
section#projects {
|
||||
> h2.title {
|
||||
font-size: 2.4rem;
|
||||
font-family: "Bahnschrift";
|
||||
margin: 0.1em 0 0.2em 0;
|
||||
}
|
||||
|
||||
div.hotline {
|
||||
max-width: 100vw;
|
||||
max-height: 360px;
|
||||
height: max(16vw, 16vh);
|
||||
display: inline-flex;
|
||||
gap: 15px;
|
||||
|
||||
> :is(article, div) {
|
||||
position: relative;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: centr;
|
||||
|
||||
min-width: 200px;
|
||||
height: 100%;
|
||||
border-radius: 1.125rem;
|
||||
overflow: hidden;
|
||||
background: rgb(0, 0, 0);
|
||||
|
||||
p {
|
||||
font-family: "Bahnschrift";
|
||||
font-size: 1.8rem;
|
||||
font-weight: bold;
|
||||
color: #ffffff;
|
||||
text-shadow: 5px 5px 2px rgba(14, 165, 2335, 0.7);
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,126 +0,0 @@
|
||||
section#introdution {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: min(500px, 45vh);
|
||||
overflow: hidden;
|
||||
|
||||
>div.dots {
|
||||
--dot-bg: black;
|
||||
--dot-color: red;
|
||||
--dot-size: 3px;
|
||||
--dot-space: 8px;
|
||||
z-index: -50;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background:
|
||||
linear-gradient(90deg, var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space),
|
||||
linear-gradient(var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space), var(--dot-color);
|
||||
mix-blend-mode: color-burn;
|
||||
filter: blur(1px);
|
||||
}
|
||||
|
||||
>video:only-of-type {
|
||||
z-index: -100;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
object-position: center;
|
||||
scale: 1.1;
|
||||
filter: blur(5px);
|
||||
}
|
||||
|
||||
>div {
|
||||
position: relative;
|
||||
width: 30vw;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
cursor: default;
|
||||
|
||||
>span#label {
|
||||
margin-top: -60px;
|
||||
margin-bottom: 20px;
|
||||
width: 320px;
|
||||
padding: 0.3em .5em 0.3em 1em;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
font-size: 1.2rem;
|
||||
font-family: "Bahnschrift";
|
||||
font-weight: 400;
|
||||
border-radius: 1.125rem;
|
||||
border: 1px solid #8080803d;
|
||||
color: #ffe0e0;
|
||||
border: 1px solid #eeeeee1c;
|
||||
background-color: #dadada30;
|
||||
backdrop-filter: blur(2px);
|
||||
}
|
||||
|
||||
>h2#title {
|
||||
margin: unset;
|
||||
width: max-content;
|
||||
padding: 0.2em 0.5em 0em;
|
||||
font-family: 'Bahnschrift';
|
||||
font-size: 2.6rem;
|
||||
font-weight: 600;
|
||||
border-radius: 0 0.75rem 0 0;
|
||||
color: #241fd3;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
>p#team {
|
||||
margin: unset;
|
||||
width: 650px;
|
||||
height: 70px;
|
||||
box-sizing: border-box;
|
||||
padding: 0.6em 1.2em;
|
||||
text-align: center;
|
||||
font-size: 1.2rem;
|
||||
font-family: "Geologica";
|
||||
font-weight: 400;
|
||||
border-radius: 0.75rem;
|
||||
background-color: #fff;
|
||||
|
||||
>span {
|
||||
color: #0ea5e9;
|
||||
font-weight: 800;
|
||||
}
|
||||
}
|
||||
|
||||
>span {
|
||||
position: absolute;
|
||||
display: flex;
|
||||
padding: 0.4em 0.8rem 0.3em;
|
||||
font-size: 1.2rem;
|
||||
font-family: 'Bahnschrift';
|
||||
font-weight: 400;
|
||||
border-radius: 0.75rem;
|
||||
background-color: #fff;
|
||||
|
||||
&:is(#experience) {
|
||||
bottom: -3.4rem;
|
||||
left: 0px;
|
||||
font-size: 1.4rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
&:is(#anything) {
|
||||
right: -10px;
|
||||
bottom: -30px;
|
||||
font-weight: 200;
|
||||
border-radius: 0 0 0.75rem 0.75rem;
|
||||
}
|
||||
|
||||
&:is(#technology) {
|
||||
left: -70px;
|
||||
top: -1.5rem;
|
||||
font-size: 1rem;
|
||||
font-weight: 600;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@media (prefers-color-scheme: default) {
|
||||
:root {
|
||||
--text-color: #fff;
|
||||
--text-color-inverted: #000;
|
||||
--button-background-color-inverted: #fff;
|
||||
--button-background-color: #000;
|
||||
--section-background-color-inverted: #fff;
|
||||
--section-background-color: #000;
|
||||
--background-color: #000;
|
||||
--background-color-inverted: #fff;
|
||||
|
||||
--interface-top-background-color: var(--background-color, #000);
|
||||
--interface-background-color: var(--background-color, #000);
|
||||
--interface-bottom-background-color: var(--background-color, #000);
|
||||
|
||||
--red: red;
|
||||
--white: #fff;
|
||||
--blue: #0ea5e9;
|
||||
|
||||
--paper: var(--white);
|
||||
}
|
||||
}
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--text-color: #fff;
|
||||
--text-color-inverted: #000;
|
||||
--button-background-color-inverted: #fff;
|
||||
--button-background-color: #000;
|
||||
--section-background-color-inverted: #fff;
|
||||
--section-background-color: #fff;
|
||||
--background-color: #000;
|
||||
--background-color-inverted: #fff;
|
||||
|
||||
--interface-top-background-color: var(--background-color, #000);
|
||||
--interface-background-color: var(--background-color, #000);
|
||||
--interface-bottom-background-color: var(--background-color, #000);
|
||||
|
||||
--red: red;
|
||||
--white: #fff;
|
||||
|
||||
--paper: var(--white);
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: light) {
|
||||
:root {
|
||||
--text-color: #fff;
|
||||
--text-color-inverted: #000;
|
||||
--button-background-color-inverted: #fff;
|
||||
--button-background-color: #000;
|
||||
--section-background-color-inverted: #fff;
|
||||
--section-background-color: #000;
|
||||
--background-color: #000;
|
||||
--background-color-inverted: #fff;
|
||||
|
||||
--interface-top-background-color: var(--background-color, #000);
|
||||
--interface-background-color: var(--background-color, #000);
|
||||
--interface-bottom-background-color: var(--background-color, #000);
|
||||
|
||||
--red: red;
|
||||
--white: #fff;
|
||||
|
||||
--paper: var(--white);
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
@import url('/css/fonts/fira.css');
|
||||
@import url('/css/fonts/hack.css');
|
||||
@import url('/css/fonts/dejavu.css');
|
||||
@import url('/css/fonts/bahnschrift.css');
|
||||
|
||||
@font-face {
|
||||
font-family: 'Commissioner';
|
||||
src: url('/fonts/commissioner.ttf');
|
||||
font-weight: 400;
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
footer {
|
||||
box-sizing: border-box;
|
||||
padding: 0 20%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
gap: 0.5rem;
|
||||
margin: 2rem 0 1rem 0;
|
||||
|
||||
&:not(:has(*)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
> p#description {
|
||||
text-align: center;
|
||||
font-size: 1rem;
|
||||
font-family: "Geologica";
|
||||
font-weight: 400;
|
||||
margin: unset;
|
||||
color: rgb(0, 0, 0, 0.6);
|
||||
}
|
||||
> div#link {
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
|
||||
> a {
|
||||
text-decoration: none;
|
||||
font-size: 1rem;
|
||||
font-family: "Geologica";
|
||||
font-weight: 400;
|
||||
color: rgb(160, 160, 160);
|
||||
transition: ease 0.2s;
|
||||
&:hover {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
header {
|
||||
top: 0;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
width: 100vw;
|
||||
height: var(--menu-height);
|
||||
box-sizing: border-box;
|
||||
padding: 0 20%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
align-items: center;
|
||||
background-color: #f7fafc;
|
||||
z-index: 1000;
|
||||
|
||||
&:not(:has(*)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
> a#logotype {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 1.1rem;
|
||||
text-decoration: none;
|
||||
color: #000;
|
||||
|
||||
> h4:only-of-type:first-child {
|
||||
margin: unset;
|
||||
font-family: "Cascadia Code";
|
||||
font-size: 2.5em;
|
||||
}
|
||||
|
||||
> small:only-of-type:last-child {
|
||||
justify-self: end;
|
||||
align-self: end;
|
||||
margin-top: -0.8em;
|
||||
font-family: "Bahnschrift";
|
||||
font-size: 0.62em;
|
||||
font-weight: 800;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
}
|
||||
|
||||
> nav#menu {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
font-family: "Geologica";
|
||||
|
||||
> a {
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
font-size: 1rem;
|
||||
text-transform: uppercase;
|
||||
color: rgb(0, 0, 0, 0.5);
|
||||
transition: ease 0.2s;
|
||||
|
||||
&:hover {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
i.icon.code.slash {
|
||||
position: relative;
|
||||
width: 2px;
|
||||
height: 16px;
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
transform: rotate(15deg);
|
||||
background: currentColor;
|
||||
|
||||
&::after,
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
transform: rotate(-60deg);
|
||||
}
|
||||
|
||||
&::before {
|
||||
top: 5px;
|
||||
left: -8px;
|
||||
border-top: 2px solid;
|
||||
border-left: 2px solid;
|
||||
}
|
||||
|
||||
&::after {
|
||||
top: 3px;
|
||||
right: -8px;
|
||||
border-right: 2px solid;
|
||||
border-bottom: 2px solid;
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
i.icon.telegram {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: transparent;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
i.icon.telegram::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background: white;
|
||||
border-radius: 50%;
|
||||
top: 2px;
|
||||
left: 2px;
|
||||
}
|
||||
|
||||
i.icon.telegram::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 5px solid transparent;
|
||||
border-right: 5px solid transparent;
|
||||
border-bottom: 8px solid currentColor;
|
||||
transform: rotate(-30deg);
|
||||
top: 7px;
|
||||
left: 9px;
|
||||
color: #ffffff; /* Цвет бумажного самолетика */
|
||||
}
|
||||
@@ -1,163 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@import url("https://fonts.googleapis.com/css2?family=Commissioner:wght@100;200;300;400;500;600;700;800;900&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Cascadia+Code:ital,wght@0,200..700;1,200..700&family=Rubik:ital,wght@0,300..900;1,300..900&family=Wix+Madefor+Display:wght@400..800&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@900&display=swap");
|
||||
@import url("https://fonts.googleapis.com/css2?family=Geologica:wght@100..900&family=Pochaevsk&display=swap");
|
||||
|
||||
body {
|
||||
margin: unset;
|
||||
/* overflow-x: hidden; */
|
||||
background-color: #f7fafc;
|
||||
}
|
||||
|
||||
.unselectable {
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
main {
|
||||
margin-top: var(--menu-height);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-grow: 1;
|
||||
align-items: center;
|
||||
gap: 2rem;
|
||||
transition: 0s;
|
||||
overflow-x: hidden;
|
||||
|
||||
&:not(:has(*)) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
> section.container {
|
||||
height: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
> h2#title {
|
||||
font-size: 2.4rem;
|
||||
font-family: "Bahnschrift";
|
||||
margin: 0.1em 0 0.2em 0;
|
||||
|
||||
> span {
|
||||
color: #0ea5e9;
|
||||
}
|
||||
}
|
||||
|
||||
> p#description {
|
||||
margin: unset;
|
||||
text-align: center;
|
||||
font-size: 1.2rem;
|
||||
font-family: "Geologica";
|
||||
font-weight: 400;
|
||||
color: rgb(0, 0, 0, 0.6);
|
||||
|
||||
> span {
|
||||
color: #0ea5e9;
|
||||
font-weight: 800;
|
||||
}
|
||||
}
|
||||
|
||||
> p.description {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
> a#order {
|
||||
padding: 0.5em 1.3em;
|
||||
margin-top: 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
border-radius: 1.125em;
|
||||
font-size: 1em;
|
||||
font-family: "Geologica";
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
background-color: #0ea5e9;
|
||||
color: #fff;
|
||||
transition: 0.2s;
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
}
|
||||
> div#team {
|
||||
margin-top: 1rem;
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 1rem;
|
||||
|
||||
> div#card {
|
||||
padding: 0.6em 0.8em;
|
||||
width: 180px;
|
||||
height: 220px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
border-radius: 1.125rem;
|
||||
box-shadow: 0px 0px 15px 0px rgba(14, 165, 233, 0.1);
|
||||
background-color: #fff;
|
||||
transition: ease 0.2s;
|
||||
|
||||
> img {
|
||||
object-fit: cover;
|
||||
width: 140px;
|
||||
height: 140px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
> p {
|
||||
margin: 1em 0 0;
|
||||
font-size: 1.2em;
|
||||
font-family: "Geologica";
|
||||
font-weight: 900;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
> span {
|
||||
font-size: 1em;
|
||||
font-family: "Geologica";
|
||||
font-weight: 400;
|
||||
color: #0ea5e9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> a#telegram {
|
||||
padding: 0.5em 1.3em;
|
||||
margin-top: 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
border-radius: 1.125em;
|
||||
font-size: 1em;
|
||||
font-family: "Geologica";
|
||||
font-weight: 400;
|
||||
text-decoration: none;
|
||||
background-color: #0ea5e9;
|
||||
color: #fff;
|
||||
transition: 0.2s;
|
||||
|
||||
&:hover {
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
> img {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
:root {
|
||||
--menu-height: 70px;
|
||||
--gap: min(12px, 1rem);
|
||||
|
||||
/* font-family: , system-ui, sans-serif; */
|
||||
font-family: "dejavu";
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
border: none;
|
||||
transition: 0.1s ease-out;
|
||||
}
|
||||
|
||||
/* Selection */
|
||||
::selection {
|
||||
color: var(--text-selected-color);
|
||||
background: var(--text-selected-background-color);
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
color: var(--text-selected-color);
|
||||
background: var(--text-selected-background-color);
|
||||
}
|
||||
|
||||
|
||||
.unselectable {
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 447 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 96 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 762 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB |
@@ -1 +0,0 @@
|
||||
<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>
|
||||
|
Before Width: | Height: | Size: 631 B |
@@ -1,4 +0,0 @@
|
||||
<?php
|
||||
|
||||
// Initializing default theme for the views templater
|
||||
define('THEME', 'default');
|
||||
@@ -1,9 +0,0 @@
|
||||
{% block css %}
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
{% endblock %}
|
||||
@@ -1,30 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
{% use '/themes/default/head.html' with title as head_title, meta as head_meta, css as head_css %}
|
||||
|
||||
{% block title %}
|
||||
{{ block('head_title') }}
|
||||
{% endblock %}
|
||||
|
||||
{% block meta %}
|
||||
{{ block('head_meta') }}
|
||||
{% endblock %}
|
||||
|
||||
{{ block('head_css') }}
|
||||
{% block css %}
|
||||
{% endblock %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{% block body %}
|
||||
{% endblock %}
|
||||
|
||||
{% include '/themes/default/js.html' %}
|
||||
{% block js %}
|
||||
{% endblock %}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,16 +0,0 @@
|
||||
{% block css %}
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<footer>
|
||||
<p id="description">Профессиональная разработка ваших проектов</p>
|
||||
<div id="link">
|
||||
<a href="https://t.me/kodorvan?direct">КОДОРВАНЬ</a>
|
||||
<a href="https://git.svoboda.works/kodorvan">РЕПОЗИТОРИИ</a>
|
||||
<a href="https://ru.wikipedia.org/wiki/WTFPL">WTFPL</a>
|
||||
</div>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
{% endblock %}
|
||||
@@ -1,26 +0,0 @@
|
||||
{% block title %}
|
||||
<title>{% if head.title != empty %}{{ head.title }}{% else %}perm by kodorvan{% endif %}</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block meta %}
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
{% for meta in head.metas %}
|
||||
<meta {% for name, value in meta.attributes %}{{ name }}="{{ value }}" {% endfor %}>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
||||
{% block css %}
|
||||
{% for element in css %}
|
||||
<link type="text/css" rel="stylesheet" {% if element.href %} href="{{ element.href }}" {% endif %} />
|
||||
{% endfor %}
|
||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/fonts.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/system.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/header.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/main.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/aside.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/footer.css" />
|
||||
<style id="theme">
|
||||
@import url('/themes/default/css/themes/default/colorscheme.css');
|
||||
</style>
|
||||
{% endblock %}
|
||||
@@ -1,16 +0,0 @@
|
||||
{% block css %} {% endblock %} {% block body %}
|
||||
<header>
|
||||
<span id="logotype" class="unselectable">
|
||||
<h4>КОДОРВАНЬ</h4>
|
||||
<small>реальных программистов</small>
|
||||
</span>
|
||||
|
||||
<nav id="menu" class="unselectable">
|
||||
<a href="/project">Проекты</a>
|
||||
<a href="#contacts">Контакты</a>
|
||||
<a href="#comand">Команда</a>
|
||||
</nav>
|
||||
|
||||
<a id="order" class="unselectable" href="https://t.me/kodorvan?direct">Заказать</a>
|
||||
</header>
|
||||
{% endblock %} {% block js %} {% endblock %}
|
||||
@@ -1,9 +0,0 @@
|
||||
{% block js %}
|
||||
{% for element in js %}
|
||||
<script
|
||||
{% if element.src %}src="{{ element.src }}" {% endif %}
|
||||
{% if element.type %}type="{{ element.type }}" {% endif %}>
|
||||
{{ element.innerText }}
|
||||
</script>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
@@ -1,27 +0,0 @@
|
||||
<div id="comand" class="container">
|
||||
<h2 id="title">Наша команда</h2>
|
||||
<p id="description">
|
||||
Познакомьтесь с профессионалами, которые воплотят ваши идеи в жизнь
|
||||
</p>
|
||||
<div id="team">
|
||||
<div id="card">
|
||||
<img src="themes/default/images/avatar/arsen.jpg" alt="Арсен" />
|
||||
<p>Арсен</p>
|
||||
<span>Программист</span>
|
||||
</div>
|
||||
<div id="card">
|
||||
<img src="themes/default/images/avatar/hollspae.png" alt="Ксения" />
|
||||
<p>Ксения</p>
|
||||
<span>Coder</span>
|
||||
</div>
|
||||
<div id="card">
|
||||
<img src="themes/default/images/avatar/algiz.png" alt="Альгиз" />
|
||||
<p>Альгиз</p>
|
||||
<span>Нeйроcетка и крипта</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- познакомьтесь что-то там никто читать на хуй не будет
|
||||
заменяем на
|
||||
Более 12 лет опыта в разных IT направлениях -->
|
||||
@@ -1,17 +0,0 @@
|
||||
<div id="contacts" class="container unselectable">
|
||||
<h2 id="title">Связатьcя с нами</h2>
|
||||
<p id="description">Готовы обсудить ваш проект? Напишите нам!</p>
|
||||
|
||||
<a id="telegram" class="unselectable" href="https://t.me/kodorvan?direct">
|
||||
<img src="themes/default/images/icons/telegram.svg" alt="">
|
||||
|
||||
<span>TELEGRAM</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Готовы обсудить проект
|
||||
заменить на
|
||||
что-то связанное с конструктором заказа
|
||||
написать о том что будет посчитана цена, составлено ТЗ, сроки
|
||||
влепить что есть рассрочка, оплата по СБП, работа с юр лицами
|
||||
поэтапная оплата и возможность индивидуального чего-нибудь -->
|
||||
@@ -1,20 +0,0 @@
|
||||
<div id="description" class="container">
|
||||
<span id="shape">
|
||||
<i class="icon code slash"></i>
|
||||
<span>Профессиональная разработка</span>
|
||||
</span>
|
||||
|
||||
<h2 id="title">
|
||||
Ваша идея — наша <span>реализация</span>
|
||||
</h2>
|
||||
<p id="description" class="description">
|
||||
Команда из опытных разработчиков, специализирующихся на создании
|
||||
современных веб-приложений, чат-ботов, приложений, видеоигр для малого
|
||||
бизнеса
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- IDEA -->
|
||||
<!-- Создаем решения будущего -->
|
||||
<!-- Ваш рост - наш код -->
|
||||
<!-- От идеи до работающего бизнеса -->
|
||||
@@ -1,36 +0,0 @@
|
||||
<section id="wrap" class="hotline unselectable" data-hotline="true" data-hotline-step="-3"
|
||||
data-hotline-magnetic="center" data-hotline-interval="10">
|
||||
<article>
|
||||
<p>ZHARKO</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>STCS</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>BRAINROT</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<p>ZHARKO</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>STCS</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>BRAINROT</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<p>ZHARKO</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>STCS</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>BRAINROT</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>ZHARKO</p>
|
||||
</article>
|
||||
|
||||
</section>
|
||||
@@ -1,19 +0,0 @@
|
||||
{% extends "/themes/default/index.html" %}
|
||||
|
||||
{% block css %}
|
||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/icons/code_slash.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/icons/telegram.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/default/css/hotline.css" />
|
||||
{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{% include '/themes/default/main/blocks/introdution.html' %}
|
||||
{% include '/themes/default/main/blocks/projects.html' %}
|
||||
{% include '/themes/default/main/blocks/comand.html' %}
|
||||
{% include '/themes/default/main/blocks/contacts.html' %}
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="/js/modules/hotline.mjs" type="module"></script>
|
||||
<script src="/js/pages/main.js" defer></script>
|
||||
{% endblock %}
|
||||
@@ -1,16 +0,0 @@
|
||||
{% block css %}
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<footer class="unselectable">
|
||||
<p id="description">Профессиональная разработка ваших проектов</p>
|
||||
<div id="link" class="unselectable" >
|
||||
<a href="https://t.me/kodorvan?direct" > КОДОРВАНЬ</a>
|
||||
<a href="https://git.svoboda.works/kodorvan">РЕПОЗИТОРИИ</a>
|
||||
<a href="https://ru.wikipedia.org/wiki/WTFPL">WTFPL</a>
|
||||
</div>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
{% endblock %}
|
||||
@@ -1,26 +0,0 @@
|
||||
{% block title %}
|
||||
<title>{% if head.title != empty %}{{ head.title }}{% else %}perm by kodorvan{% endif %}</title>
|
||||
{% endblock %}
|
||||
|
||||
{% block meta %}
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
{% for meta in head.metas %}
|
||||
<meta {% for name, value in meta.attributes %}{{ name }}="{{ value }}" {% endfor %}>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
||||
{% block css %}
|
||||
{% for element in css %}
|
||||
<link type="text/css" rel="stylesheet" {% if element.href %} href="{{ element.href }}" {% endif %} />
|
||||
{% endfor %}
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/fonts.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/system.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/header.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/main.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/aside.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/footer.css" />
|
||||
<style id="theme">
|
||||
@import url('/themes/test/css/themes/test/colorscheme.css');
|
||||
</style>
|
||||
{% endblock %}
|
||||
@@ -1,16 +0,0 @@
|
||||
{% block css %} {% endblock %} {% block body %}
|
||||
<header>
|
||||
<a href="https://perm.kodorvan.tech" id="logotype" class="unselectable">
|
||||
<h4>КОДОРВАНЬ</h4>
|
||||
<small>реальных программистов</small>
|
||||
</ф>
|
||||
|
||||
<nav id="menu" class="unselectable">
|
||||
<a href="https://git.svoboda.works/kodorvan">Проекты</a>
|
||||
<a href="#contacts">Контакты</a>
|
||||
<a href="#services">Услуги</a>
|
||||
</nav>
|
||||
|
||||
|
||||
</header>
|
||||
{% endblock %} {% block js %} {% endblock %}
|
||||
@@ -1,30 +0,0 @@
|
||||
{% extends "/themes/test/core.html" %}
|
||||
|
||||
{% use "/themes/test/header.html" with css as header_css, body as header, js as header_js %}
|
||||
{% use "/themes/test/aside.html" with css as aside_css, body as aside, js as aside_js %}
|
||||
{% use "/themes/test/footer.html" with css as footer_css, body as footer, js as footer_js %}
|
||||
|
||||
{% block css %}
|
||||
{{ block('header_css') }}
|
||||
{{ block('aside_css') }}
|
||||
{{ block('footer_css') }}
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
{{ block('header') }}
|
||||
{{ block('aside') }}
|
||||
|
||||
<main>
|
||||
{% block main %}
|
||||
{{main|raw}}
|
||||
{% endblock %}
|
||||
</main>
|
||||
|
||||
{{ block('footer') }}
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
{{ block('header_js') }}
|
||||
{{ block('aside_js') }}
|
||||
{{ block('footer_js') }}
|
||||
{% endblock %}
|
||||
@@ -1,9 +0,0 @@
|
||||
{% block js %}
|
||||
{% for element in js %}
|
||||
<script
|
||||
{% if element.src %}src="{{ element.src }}" {% endif %}
|
||||
{% if element.type %}type="{{ element.type }}" {% endif %}>
|
||||
{{ element.innerText }}
|
||||
</script>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
@@ -1,62 +0,0 @@
|
||||
<section class="advantages">
|
||||
<h2 class="title unselectable">Преимущества</h2>
|
||||
|
||||
<div class="accordion">
|
||||
|
||||
<div class="accordion-item">
|
||||
<button id="accordion-button-1" aria-expanded="false">
|
||||
<span class="title ">Техническое задание</span>
|
||||
<span class="icon" aria-hidden="true"></span>
|
||||
</button>
|
||||
|
||||
<div class="accordion-content">
|
||||
<p>Четкое описание всех требований и функционала проекта.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="accordion-item">
|
||||
<button id="accordion-button-2" aria-expanded="false">
|
||||
<span class="title">Хостинг на нашем сервере</span>
|
||||
<span class="icon" aria-hidden="true"></span>
|
||||
</button>
|
||||
|
||||
<div class="accordion-content">
|
||||
<p>Проект может быть размещен на нашем сервере или перенесен на другой по желанию клиента.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="accordion-item">
|
||||
<button id="accordion-button-3" aria-expanded="false">
|
||||
<span class="title">Безопасность и приватность</span>
|
||||
<span class="icon" aria-hidden="true"></span>
|
||||
</button>
|
||||
|
||||
<div class="accordion-content">
|
||||
<p>Код зашифрован, проект полностью приватный и защищен от несанкционированного доступа.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="accordion-item">
|
||||
<button id="accordion-button-4" aria-expanded="false">
|
||||
<span class="title">Бесплатная поддержка</span>
|
||||
<span class="icon" aria-hidden="true"></span>
|
||||
</button>
|
||||
|
||||
<div class="accordion-content">
|
||||
<p>Помощь и консультация после запуска проекта.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="accordion-item">
|
||||
<button id="accordion-button-5" aria-expanded="false">
|
||||
<span class="title">Персонализированный подход</span>
|
||||
<span class="icon" aria-hidden="true"></span>
|
||||
</button>
|
||||
|
||||
<div class="accordion-content">
|
||||
<p>Учет уникальных потребностей и пожеланий клиента.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,24 +0,0 @@
|
||||
<section id="comand" class="container">
|
||||
<h2 id="title" class="unselectable">Разработчики</h2>
|
||||
<p id="description" class="unselectable">
|
||||
Более <span>12 лет</span> разработки в различных IT сферах
|
||||
</p>
|
||||
|
||||
<div id="team">
|
||||
<div id="card">
|
||||
<img src="themes/test/images/avatar/123.jpg" alt="Арсен" />
|
||||
<p class="unselectable">Арсен</p>
|
||||
<span class="unselectable">Программист</span>
|
||||
</div>
|
||||
<div id="card">
|
||||
<img src="themes/test/images/avatar/123.jpg" alt="Ксения" />
|
||||
<p class="unselectable">Ксения</p>
|
||||
<span class="unselectable">Coder</span>
|
||||
</div>
|
||||
<div id="card">
|
||||
<img src="themes/test/images/avatar/123.jpg" alt="Альгиз" />
|
||||
<p class="unselectable">Альгиз</p>
|
||||
<span class="unselectable">Нeйроcетка и крипта</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,17 +0,0 @@
|
||||
<section id="contacts" class="container unselectable">
|
||||
<h2 id="title">Связатьcя с нами</h2>
|
||||
<p id="description">Готовы обсудить ваш проект? Напишите нам!</p>
|
||||
|
||||
<a id="telegram" class="unselectable" href="https://t.me/kodorvan?direct">
|
||||
<img src="themes/default/images/icons/telegram.svg" alt="">
|
||||
|
||||
<span>Telegram</span>
|
||||
</a>
|
||||
</section>
|
||||
|
||||
<!-- Готовы обсудить проект
|
||||
заменить на
|
||||
что-то связанное с конструктором заказа
|
||||
написать о том что будет посчитана цена, составлено ТЗ, сроки
|
||||
влепить что есть рассрочка, оплата по СБП, работа с юр лицами
|
||||
поэтапная оплата и возможность индивидуального чего-нибудь -->
|
||||
@@ -1,29 +0,0 @@
|
||||
<section id="introdution" class="container">
|
||||
<div>
|
||||
<!-- <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">Разработка с нуля командой профессионалов<br />ответственно и без лапши - работа на результат</p>
|
||||
|
||||
<span id="experience">БОЛЕЕ 12 ЛЕТ ОПЫТА</span>
|
||||
|
||||
<span id="anything">УМЕЕМ ВСЁ</span>
|
||||
|
||||
<span id="technology">УНИКАЛЬНЫЕ ТЕХНОЛОГИИ</span>
|
||||
</div>
|
||||
|
||||
<div class="dots"></div>
|
||||
<video autoplay loop muted>
|
||||
<source src="/themes/test/videos/cover.mp4" type="video/mp4">
|
||||
</video>
|
||||
</section>
|
||||
|
||||
<!-- IDEA -->
|
||||
<!-- Создаем решения будущего -->
|
||||
<!-- Ваш рост - наш код -->
|
||||
<!-- От идеи до работающего бизнеса -->
|
||||
<!-- Ваша идея - наша реализация -->
|
||||
@@ -1,48 +0,0 @@
|
||||
<section id="projects" class="container unselectable">
|
||||
|
||||
<h2 class="title">Проекты</h2>
|
||||
<div id="wrap" class="hotline unselectable" data-hotline="true" data-hotline-step="-3" data-hotline-magnetic="center"
|
||||
data-hotline-interval="10">
|
||||
|
||||
<article>
|
||||
<p>ZHARKO</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>STCS</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>BRAINROT</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<p>ZHARKO</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>STCS</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>BRAINROT</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<p>ZHARKO</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>STCS</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>BRAINROT</p>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<p>ZHARKO</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>STCS</p>
|
||||
</article>
|
||||
<article>
|
||||
<p>BRAINROT</p>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,35 +0,0 @@
|
||||
<section id="services" class="container ">
|
||||
<h2 id="title">Предоставляемые услуги</h2>
|
||||
|
||||
<div id="service">
|
||||
<div id="card">
|
||||
<div class="text">
|
||||
<p class="title">Телеграм-боты под ключ</p>
|
||||
<span class="discription">Создаем Telegram-ботов для продаж, поддержки клиентов и автоматизации
|
||||
бизнес-процессов. Рассматриваем разработку мини-приложений в Telegram: магазин, сервисы, игры и полноценные
|
||||
платформы</span>
|
||||
</div>
|
||||
|
||||
<a href="https://t.me/kodorvan?direct">Запустить бота за 7 дней</a>
|
||||
</div>
|
||||
|
||||
<div id="card">
|
||||
<div class="text">
|
||||
<p class="title">Разработка сайта</p>
|
||||
<span class="discription">Разработаем сайт любой сложности — от одностраничных лендингов до многофункциональных интернет-магазинов и представительных корпоративных сайтов. Каждый
|
||||
проект будет современным и адаптивным</span>
|
||||
</div>
|
||||
|
||||
<a href="https://t.me/kodorvan?direct">Заказать сайт</a>
|
||||
</div>
|
||||
|
||||
<div id="card">
|
||||
<div class="text">
|
||||
<p class="title"> API-интеграции под ключ</p>
|
||||
<span class="discription">Настраиваем надежное и безопасное взаимодействие вашего сайта или бота с любыми внешними сервисами. Интеграция с платежными системами, CRM, Telegram, базами данных и другими системами, чтобы автоматизировать бизнес-процессы.</span>
|
||||
</div>
|
||||
|
||||
<a href="https://t.me/kodorvan?direct">Подключить</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -1,27 +0,0 @@
|
||||
{% extends "/themes/test/index.html" %}
|
||||
|
||||
{% block css %}
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/icons/code_slash.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/icons/telegram.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/blocks/introdution.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/blocks/hotline.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/blocks/service.css" />
|
||||
<link type="text/css" rel="stylesheet" href="/themes/test/css/blocks/advantages.css" />
|
||||
{% endblock %}
|
||||
|
||||
{% block main %}
|
||||
{% include '/themes/test/main/blocks/introdution.html' %}
|
||||
{% include '/themes/test/main/blocks/projects.html' %}
|
||||
{% include '/themes/test/main/blocks/service.html' %}
|
||||
{% include '/themes/test/main/blocks/advantages.html' %}
|
||||
{% include '/themes/test/main/blocks/comand.html' %}
|
||||
|
||||
{% include '/themes/test/main/blocks/contacts.html' %}
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="/js/modules/hotline.mjs" type="module"></script>
|
||||
<script src="/js/pages/main.js" defer></script>
|
||||
<script src="/js/modules/service.js" defer></script>
|
||||
<script src="/js/modules/advantages.js" defer></script>
|
||||
{% endblock %}
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\perm\controllers;
|
||||
namespace kodorvan\site\controllers;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\perm\views\templater,
|
||||
kodorvan\perm\models\core as models;
|
||||
use kodorvan\site\views\templater,
|
||||
kodorvan\site\models\core as models;
|
||||
|
||||
// Library for languages support
|
||||
use mirzaev\languages\language;
|
||||
@@ -20,7 +20,7 @@ use mirzaev\minimal\core as minimal,
|
||||
/**
|
||||
* Controllers core
|
||||
*
|
||||
* @package kodorvan\perm\controllers
|
||||
* @package kodorvan\site\controllers
|
||||
*
|
||||
* @param language $language Language
|
||||
* @param response $response Response
|
||||
294
kodorvan/site/system/controllers/index.php
Executable file
294
kodorvan/site/system/controllers/index.php
Executable file
@@ -0,0 +1,294 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\site\controllers;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\site\controllers\core;
|
||||
|
||||
// Framework for PHP
|
||||
use mirzaev\minimal\http\enumerations\content,
|
||||
mirzaev\minimal\http\enumerations\status;
|
||||
|
||||
/**
|
||||
* Index
|
||||
*
|
||||
* @package kodorvan\site\controllers
|
||||
*
|
||||
* @param array $errors Registry of errors
|
||||
*
|
||||
* @method null index() Main page
|
||||
*
|
||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
*/
|
||||
final class index extends core
|
||||
{
|
||||
/**
|
||||
* Errors
|
||||
*
|
||||
* @var array $errors Registry of errors
|
||||
*/
|
||||
protected array $errors = [
|
||||
'system' => []
|
||||
];
|
||||
|
||||
/**
|
||||
* Main page
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
public function index(): null
|
||||
{
|
||||
if (str_contains($this->request->headers['accept'] ?? '', content::html->value)) {
|
||||
// Request for HTML response
|
||||
|
||||
// Initializing the team workload
|
||||
$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',
|
||||
'href' => 'https://t.me/' . TELEGRAM_ROBOT['domain'] . '?start=telegram voronka'
|
||||
]
|
||||
],
|
||||
'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',
|
||||
'canceled' => 'ЗАБЛОКИРОВАН'
|
||||
],
|
||||
[
|
||||
'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',
|
||||
/* 'href' => 'https://t.me/' . TELEGRAM_ROBOT['domain'] . '?start=parser' */
|
||||
'href' => 'https://t.me/' . TELEGRAM_ROBOT['domain'] . '?start=parser'
|
||||
]
|
||||
],
|
||||
'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',
|
||||
'href' => 'https://t.me/' . TELEGRAM_ROBOT['domain'] . '?start=calculator'
|
||||
]
|
||||
],
|
||||
'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)
|
||||
setcookie('workload', $this->view->workload, time() + 1800, '/');
|
||||
|
||||
// Initializing the project constructor data
|
||||
$this->view->project = [
|
||||
'architectures' => [
|
||||
'site' => 'Сайт',
|
||||
'chat_robot' => 'Чат-робот',
|
||||
'program' => 'Программа',
|
||||
'game' => 'Видеоигра',
|
||||
'script' => 'Скрипт, парсер, макрос',
|
||||
'module' => 'Модуль, плагин, расширение',
|
||||
],
|
||||
'purposes' => [
|
||||
'funnel' => 'Воронка (обработка пользователя)',
|
||||
'contacts' => 'Контакты (сбор данных)',
|
||||
'ai' => 'Внедрение ИИ',
|
||||
'archive' => 'Архив (галерея, библиотека, реестр)',
|
||||
'crm' => 'Индивидуальная CRM',
|
||||
'landing' => 'Лендинг (посадочная страница)',
|
||||
'marketplace' => 'Маркетплейс, магазин, витрина',
|
||||
'saas' => 'SaaS проект',
|
||||
'search' => 'Поиск и анализ',
|
||||
'calculate' => 'Автоматизированное вычисление (калькулятор)',
|
||||
'individual' => 'Индивидуальная разработка',
|
||||
],
|
||||
'integrations' => [
|
||||
'one_c' => '1C',
|
||||
'bitrix24' => 'Битрикс24',
|
||||
'moy_sklad' => 'Мой Склад',
|
||||
'mail' => 'Почта',
|
||||
'excel' => 'Excel',
|
||||
'ozon' => 'OZON',
|
||||
'wildberries' => 'Wildberries',
|
||||
'yandex_market' => 'Яндекс Маркет',
|
||||
'avito' => 'Авито',
|
||||
'vk' => 'ВКонтакте',
|
||||
'max' => 'МАКС',
|
||||
'telegram' => 'Телеграм',
|
||||
'neural_networks' => 'Нейросети'
|
||||
]
|
||||
];
|
||||
|
||||
// Initializing contacts data
|
||||
$this->view->contacts = [
|
||||
'sim' => [
|
||||
'requests' => [
|
||||
'full' => PROJECT_CONTACTS_SIM_REQUESTS ?? 'Ошибка',
|
||||
'country' => PROJECT_CONTACTS_SIM_REQUESTS_COUNTRY ?? 'Ошибка',
|
||||
'operator' => PROJECT_CONTACTS_SIM_REQUESTS_OPERATOR ?? 'Ошибка',
|
||||
'number' => [
|
||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_1 ?? 'Ошибка',
|
||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_2 ?? 'Ошибка',
|
||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_3 ?? 'Ошибка'
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
// Initializing contacts data
|
||||
$this->view->integrations = [
|
||||
'Вайлдберриз' => 'wildberries',
|
||||
'ОЗОН' => 'ozon',
|
||||
'Мой Склад' => 'moy_sklad',
|
||||
'1С Предприятие' => '1c',
|
||||
'Битрикс 24' => 'bitrix24',
|
||||
'ВКонтакте' => 'vk',
|
||||
'МАКС' => 'max',
|
||||
'Авито' => 'avito',
|
||||
'YClients' => 'yclients',
|
||||
'ЮКасса' => 'yookassa',
|
||||
'OpenAI' => 'openai',
|
||||
/* 'yandex_direct', */
|
||||
'Яндекс Директ' => 'yandex_market',
|
||||
];
|
||||
|
||||
// Render page
|
||||
$page = $this->view->render(
|
||||
'main/index.html',
|
||||
[
|
||||
'smartphone' => $this->request->smartphone,
|
||||
'tablet' => $this->request->tablet
|
||||
]
|
||||
);
|
||||
|
||||
// Sending response
|
||||
$this->response
|
||||
->start()
|
||||
->clean()
|
||||
->sse()
|
||||
->write($page)
|
||||
->validate($this->request)
|
||||
?->body()
|
||||
->end();
|
||||
|
||||
// Deinitializing rendered page
|
||||
unset($page);
|
||||
|
||||
// Exit (success)
|
||||
return null;
|
||||
}
|
||||
|
||||
// Exit (fail)
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -2,19 +2,19 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\perm\controllers;
|
||||
namespace kodorvan\site\controllers;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\perm\controllers\core;
|
||||
use kodorvan\site\controllers\core;
|
||||
|
||||
// Framework for PHP
|
||||
use mirzaev\minimal\http\enumerations\content,
|
||||
mirzaev\minimal\http\enumerations\status;
|
||||
|
||||
/**
|
||||
* Index
|
||||
* Offer
|
||||
*
|
||||
* @package kodorvan\perm\controllers
|
||||
* @package kodorvan\site\controllers
|
||||
*
|
||||
* @param array $errors Registry of errors
|
||||
*
|
||||
@@ -23,7 +23,7 @@ use mirzaev\minimal\http\enumerations\content,
|
||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
*/
|
||||
final class index extends core
|
||||
final class offer extends core
|
||||
{
|
||||
/**
|
||||
* Errors
|
||||
@@ -35,7 +35,7 @@ final class index extends core
|
||||
];
|
||||
|
||||
/**
|
||||
* Main page
|
||||
* Page: offer
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
@@ -44,8 +44,30 @@ final class index extends core
|
||||
if (str_contains($this->request->headers['accept'] ?? '', content::html->value)) {
|
||||
// Request for HTML response
|
||||
|
||||
// Initializing contacts data
|
||||
$this->view->contacts = [
|
||||
'sim' => [
|
||||
'requests' => [
|
||||
'full' => PROJECT_CONTACTS_SIM_REQUESTS ?? 'Ошибка',
|
||||
'country' => PROJECT_CONTACTS_SIM_REQUESTS_COUNTRY ?? 'Ошибка',
|
||||
'operator' => PROJECT_CONTACTS_SIM_REQUESTS_OPERATOR ?? 'Ошибка',
|
||||
'number' => [
|
||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_1 ?? 'Ошибка',
|
||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_2 ?? 'Ошибка',
|
||||
PROJECT_CONTACTS_SIM_REQUESTS_NUMBER_3 ?? 'Ошибка'
|
||||
]
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
// Render page
|
||||
$page = $this->view->render('main/index.html');
|
||||
$page = $this->view->render(
|
||||
'main/offer.html',
|
||||
[
|
||||
'smartphone' => $this->request->smartphone,
|
||||
'tablet' => $this->request->tablet
|
||||
]
|
||||
);
|
||||
|
||||
// Sending response
|
||||
$this->response
|
||||
126
kodorvan/site/system/controllers/project.php
Executable file
126
kodorvan/site/system/controllers/project.php
Executable file
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\site\controllers;
|
||||
|
||||
// Files of the project
|
||||
use kodorvan\site\controllers\core;
|
||||
|
||||
// PHP framework
|
||||
use mirzaev\minimal\http\enumerations\content,
|
||||
mirzaev\minimal\http\enumerations\status;
|
||||
|
||||
// Mail server
|
||||
use PHPMailer\PHPMailer\PHPMailer as mail,
|
||||
PHPMailer\PHPMailer\SMTP as smtp,
|
||||
PHPMailer\PHPMailer\Exception as mail_exception;
|
||||
|
||||
/**
|
||||
* Index
|
||||
*
|
||||
* @package kodorvan\site\controllers
|
||||
*
|
||||
* @param array $errors Registry of errors
|
||||
*
|
||||
* @method null index() Main page
|
||||
*
|
||||
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||
*/
|
||||
final class project extends core
|
||||
{
|
||||
/**
|
||||
* Errors
|
||||
*
|
||||
* @var array $errors Registry of errors
|
||||
*/
|
||||
protected array $errors = [
|
||||
'system' => []
|
||||
];
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @return null
|
||||
*/
|
||||
public function request(string $request): null
|
||||
{
|
||||
// Initializing the project identifier (temporary solution)
|
||||
$identifier = blake3($request, 20);
|
||||
|
||||
// Initializing the project storage path
|
||||
$path = STORAGE . DIRECTORY_SEPARATOR . 'projects' . DIRECTORY_SEPARATOR . $identifier;
|
||||
|
||||
// Initializing the project storage directory in the storage
|
||||
if (!file_exists($path)) mkdir($path, 0775, true);
|
||||
|
||||
// Declaring the project storage files registry
|
||||
$files = [];
|
||||
|
||||
foreach ($this->request->files as $file) {
|
||||
// Iterating over files
|
||||
|
||||
// Initializing the file destination path
|
||||
$destination = $path . DIRECTORY_SEPARATOR . $file['name'];
|
||||
|
||||
// Writing the file into the project storage
|
||||
copy($file['tmp_name'], $destination);
|
||||
|
||||
// Writing the file destination path into the project storage files registry
|
||||
$files[$file['name']] = $destination;
|
||||
}
|
||||
|
||||
// Decoding the request JSON argument
|
||||
$request = json_decode(json: $request, associative: true, depth: 5);
|
||||
|
||||
// Initializing the mail server
|
||||
$mail = new mail(true);
|
||||
|
||||
try {
|
||||
// Writing the mail server parameters
|
||||
/* $mail->SMTPDebug = smtp::DEBUG_SERVER; */
|
||||
$mail->setLanguage('ru');
|
||||
$mail->CharSet = mail::CHARSET_UTF8;
|
||||
$mail->isSMTP();
|
||||
$mail->Host = MAIL_SERVER['host'];
|
||||
$mail->SMTPAuth = true;
|
||||
$mail->Username = MAIL_SERVER['sender']['mail'];
|
||||
$mail->Password = MAIL_SERVER['password'];
|
||||
$mail->SMTPSecure = mail::ENCRYPTION_SMTPS;
|
||||
$mail->Port = 465;
|
||||
$mail->setFrom(MAIL_SERVER['sender']['mail'], MAIL_SERVER['sender']['name']);
|
||||
$mail->addAddress(MAIL_SERVER['receiver']['mail'], MAIL_SERVER['receiver']['name']);
|
||||
|
||||
// The message
|
||||
$mail->isHTML(true);
|
||||
$mail->Subject = empty($request['project']['name']) ? 'Заказ' : 'Заказ: ' . $request['project']['name'];
|
||||
$mail->Body = $this->view->render('messages/request.html', $request);
|
||||
/* $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; */
|
||||
|
||||
// Attachments
|
||||
foreach ($files as $name => $file) {
|
||||
// Iterating of project storage files registry
|
||||
|
||||
// Writing the attachment into the message
|
||||
$mail->addAttachment($file, $name);
|
||||
}
|
||||
|
||||
// Sending the message
|
||||
$mail->send();
|
||||
} catch (mail_exception $exception) {
|
||||
}
|
||||
|
||||
// Sending response
|
||||
$this->response
|
||||
->start()
|
||||
->clean()
|
||||
->sse()
|
||||
->validate($this->request)
|
||||
?->body()
|
||||
->end();
|
||||
|
||||
// Exit (fail)
|
||||
return null;
|
||||
}
|
||||
}
|
||||
0
kodorvan/perm/system/databases/.gitignore → kodorvan/site/system/databases/.gitignore
vendored
Normal file → Executable file
0
kodorvan/perm/system/databases/.gitignore → kodorvan/site/system/databases/.gitignore
vendored
Normal file → Executable file
0
kodorvan/perm/system/localizations/english.php → kodorvan/site/system/localizations/english.php
Normal file → Executable file
0
kodorvan/perm/system/localizations/english.php → kodorvan/site/system/localizations/english.php
Normal file → Executable file
0
kodorvan/perm/system/localizations/russian.php → kodorvan/site/system/localizations/russian.php
Normal file → Executable file
0
kodorvan/perm/system/localizations/russian.php → kodorvan/site/system/localizations/russian.php
Normal file → Executable file
@@ -2,7 +2,7 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace kodorvan\perm\models;
|
||||
namespace kodorvan\site\models;
|
||||
|
||||
// Framework for PHP
|
||||
use mirzaev\minimal\model,
|
||||
@@ -14,7 +14,7 @@ use exception;
|
||||
/**
|
||||
* Models core
|
||||
*
|
||||
* @package kodorvan\perm\models
|
||||
* @package kodorvan\site\models
|
||||
*
|
||||
* @method void __construct() Constructor
|
||||
*
|
||||
8
kodorvan/site/system/public/css/fonts/akony.css
Executable file
8
kodorvan/site/system/public/css/fonts/akony.css
Executable file
@@ -0,0 +1,8 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Akony';
|
||||
src: url("/fonts/akony/AKONY.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
50
kodorvan/site/system/public/css/fonts/cascadia_code.css
Executable file
50
kodorvan/site/system/public/css/fonts/cascadia_code.css
Executable file
@@ -0,0 +1,50 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Cascadia Code';
|
||||
src: url("/fonts/cascadia_code/CascadiaCode-ExtraLight.woff2");
|
||||
font-weight: 100;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Cascadia Code';
|
||||
src: url("/fonts/cascadia_code/CascadiaCode-Light.woff2");
|
||||
font-weight: 200;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Cascadia Code';
|
||||
src: url("/fonts/cascadia_code/CascadiaCode-SemiLight.woff2");
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Cascadia Code';
|
||||
src: url("/fonts/cascadia_code/CascadiaCode-Regular.woff2");
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Cascadia Code';
|
||||
src: url("/fonts/cascadia_code/CascadiaCode-Regular.woff2");
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Cascadia Code';
|
||||
src: url("/fonts/cascadia_code/CascadiaCode-SemiBold.woff2");
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Cascadia Code';
|
||||
src: url("/fonts/cascadia_code/CascadiaCode-Bold.woff2");
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
}
|
||||
6
kodorvan/site/system/public/css/fonts/commissioner.css
Executable file
6
kodorvan/site/system/public/css/fonts/commissioner.css
Executable file
@@ -0,0 +1,6 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Commissioner';
|
||||
src: url('/fonts/commissioner.ttf');
|
||||
}
|
||||
6
kodorvan/site/system/public/css/fonts/compacta.css
Executable file
6
kodorvan/site/system/public/css/fonts/compacta.css
Executable file
@@ -0,0 +1,6 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Compacta';
|
||||
src: url("/fonts/compacta/compacta_lt_light_compress.otf");
|
||||
}
|
||||
8
kodorvan/site/system/public/css/fonts/eitai.css
Executable file
8
kodorvan/site/system/public/css/fonts/eitai.css
Executable file
@@ -0,0 +1,8 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Eitai';
|
||||
src: url("/fonts/eitai/eitai.otf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
15
kodorvan/site/system/public/css/fonts/gost.css
Executable file
15
kodorvan/site/system/public/css/fonts/gost.css
Executable file
@@ -0,0 +1,15 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'GOST';
|
||||
src: url("/fonts/gost/GOST 2.304-81 type A.ttf");
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'GOST';
|
||||
src: url("/fonts/gost/GOST 2.304-81 type B.ttf");
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
8
kodorvan/site/system/public/css/fonts/industry.css
Executable file
8
kodorvan/site/system/public/css/fonts/industry.css
Executable file
@@ -0,0 +1,8 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Industry';
|
||||
src: url("/fonts/industry/Industry-Bold_RUS.ttf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
63
kodorvan/site/system/public/css/fonts/mt_sans.css
Executable file
63
kodorvan/site/system/public/css/fonts/mt_sans.css
Executable file
@@ -0,0 +1,63 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'MT Sans';
|
||||
src: url("/fonts/mt_sans/MTSans-LightCondensed.ttf");
|
||||
font-weight: 100;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'MT Sans';
|
||||
src: url("/fonts/mt_sans/MTSans-LightCondensed.ttf");
|
||||
font-weight: 200;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'MT Sans';
|
||||
src: url("/fonts/mt_sans/MTSans-LightCondensed.ttf");
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'MT Sans';
|
||||
src: url("/fonts/mt_sans/MTSans-RegularCondensed.ttf");
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'MT Sans';
|
||||
src: url("/fonts/mt_sans/MTSans-RegularCondensed.ttf");
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'MT Sans';
|
||||
src: url("/fonts/mt_sans/MTSans-Bold.ttf");
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'MT Sans';
|
||||
src: url("/fonts/mt_sans/MTSans-BoldCondensed.ttf");
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'MT Sans';
|
||||
src: url("/fonts/mt_sans/MTSans-BlackCondensed.ttf");
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'MT Sans';
|
||||
src: url("/fonts/mt_sans/MTSans-BlackExtended.ttf");
|
||||
font-weight: 900;
|
||||
font-style: normal;
|
||||
}
|
||||
64
kodorvan/site/system/public/css/fonts/nunito.css
Executable file
64
kodorvan/site/system/public/css/fonts/nunito.css
Executable file
@@ -0,0 +1,64 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url("/fonts/nunito/Nunito-ExtraLight.ttf");
|
||||
font-weight: 100;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url("/fonts/nunito/Nunito-Light.ttf");
|
||||
font-weight: 200;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url("/fonts/nunito/Nunito-Regular.ttf");
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url("/fonts/nunito/Nunito-Regular.ttf");
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url("/fonts/nunito/Nunito-Medium.ttf");
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url("/fonts/nunito/Nunito-Bold.ttf");
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url("/fonts/nunito/Nunito-ExtraBold.ttf");
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url("/fonts/nunito/Nunito-Black.ttf");
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
src: url("/fonts/nunito/Nunito-Black.ttf");
|
||||
font-weight: 900;
|
||||
font-style: normal;
|
||||
}
|
||||
8
kodorvan/site/system/public/css/fonts/palui.css
Executable file
8
kodorvan/site/system/public/css/fonts/palui.css
Executable file
@@ -0,0 +1,8 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Palui';
|
||||
src: url("/fonts/palui/PaluiSPDemo-Bold.otf");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
6
kodorvan/site/system/public/css/fonts/slifted.css
Executable file
6
kodorvan/site/system/public/css/fonts/slifted.css
Executable file
@@ -0,0 +1,6 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Slifted';
|
||||
src: url("/fonts/slifted/slifted.otf");
|
||||
}
|
||||
6
kodorvan/site/system/public/css/fonts/urban_slavic.css
Executable file
6
kodorvan/site/system/public/css/fonts/urban_slavic.css
Executable file
@@ -0,0 +1,6 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Urban Slavic';
|
||||
src: url("/fonts/urban_slavic/UrbanSlavic.otf");
|
||||
}
|
||||
6
kodorvan/site/system/public/css/fonts/vredina.css
Executable file
6
kodorvan/site/system/public/css/fonts/vredina.css
Executable file
@@ -0,0 +1,6 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
@font-face {
|
||||
font-family: 'Vredina';
|
||||
src: url("/fonts/vredina/SAVredina-ThinUltraCondensed.woff");
|
||||
}
|
||||
1
kodorvan/site/system/public/css/icons
Symbolic link
1
kodorvan/site/system/public/css/icons
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../../icons/css
|
||||
BIN
kodorvan/site/system/public/fonts/akony/AKONY.ttf
Normal file
BIN
kodorvan/site/system/public/fonts/akony/AKONY.ttf
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user