super rebuild

This commit is contained in:
2026-05-17 11:03:43 +05:00
parent 14050cbb24
commit 7c8524066b
165 changed files with 3663 additions and 2158 deletions

View File

@@ -0,0 +1,197 @@
<?php
declare(strict_types=1);
namespace kodorvan\site\controllers;
// Files of the project
use kodorvan\site\controllers\core,
kodorvan\site\models\superpack as model;
// Framework for PHP
use mirzaev\minimal\http\enumerations\content,
mirzaev\minimal\http\enumerations\method,
mirzaev\minimal\http\enumerations\status;
// Baza database
use mirzaev\baza\database,
mirzaev\baza\column,
mirzaev\baza\record,
mirzaev\baza\enumerations\encoding,
mirzaev\baza\enumerations\type;
/**
* Offer
*
* @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 article extends core
{
/**
* Errors
*
* @var array $errors Registry of errors
*/
protected array $errors = [
'system' => []
];
/**
* Page: superpack
*
* @return null
*/
public function index(string $urn): null
{
if (str_contains($this->request->headers['accept'] ?? '', content::html->value)) {
// Request for HTML response
// Initializing the superpack
$superpack = new model()->read(filter: fn(record $record) => $record->urn === $urn && $record->active === 1);
if ($superpack instanceof model) {
// Initialized the superpack
// Render page
$page = $this->view->render(
'pages/article.html',
[
'uri' => 'https://' . DOMAIN . "/superpack/$urn",
'article' => [
'urn' => $superpack->urn,
'head' => [
'title' => $superpack->title
],
'body' => [
'html' => $superpack->html
]
],
'smartphone' => $this->request->smartphone,
'tablet' => $this->request->tablet
]
);
} else {
// Not initialized the superpack
}
// 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;
}
/**
* Page: superpack
*
* @return null
*/
public function create(
?string $identifier = null,
?string $urn = null,
?string $title = null,
?string $html = null,
?string $text = null,
string|int|float|null $supercost = null
): null {
if ($this->request->method === method::get) {
// GET
if (str_contains($this->request->headers['accept'] ?? '', content::html->value)) {
// Request for HTML response
// Render page
$page = $this->view->render(
'pages/system/superpack/create.html',
[
'uri' => 'https://' . DOMAIN . "/system/superpack/create",
'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;
}
} else if ($this->request->method === method::put) {
// PUT
// Initializing the superpack
$superpack = new model()->read(filter: fn(record $record) => $record->urn === $urn);
if ($superpack instanceof model) {
// The superpack is already created
} else {
// The superpack is not already created
// Sanitizing
$urn = preg_replace('/[^\w\d\-.]+/', '', $urn);
$title = preg_replace('/[^\w\d\s\-.,!]+/u', '', $title);
$supercost = (float) preg_replace('/[^\d.]+/', '', $supercost);
// Creating the superpack
$superpack = new model()->write(
urn: $urn,
title: $title,
html: $html,
text: $text,
supercost: $supercost
);
if ($superpack instanceof record) {
// Created the superpack
// Sending response
$this->response
->start()
->clean()
->sse()
->json([
'redirect' => "/superpack/$urn"
])
->validate($this->request)
?->body()
->end();
}
}
}
// Exit (fail)
return null;
}
}

View File

@@ -47,143 +47,193 @@ 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 // Initializing superpacks
$this->view->services = [ $this->view->superpacks = [
[ [
'class' => 'telegram voronka', 'class' => 'site direct',
'title' => 'Телеграм воронка',
'icon_left' => '',
/* 'icon_center' => 'import', */
'icon_center' => 'crown', 'icon_center' => 'crown',
'icon_right' => '', 'image' => [
'description' => <<<TXT 'src' => '/themes/' . THEME . '/images/site_example.jpg',
Поступательно запросит данные пользователя, скомпонует, запишет в базу данных и синхронизирует в CRM 'alt' => 'Сайт для рекламы'
<br><br>
Используя иммерсивные технологии и многофакторный сбор обеспечивает максимальное удержание пользователя
TXT,
'howto' => 'Направьте к нему клиентов и ждите новых заказов в вашей CRM, на сайте или в чате',
'buttons' => [
[
'icon' => 'comment',
'href' => 'https://t.me/' . TELEGRAM_ROBOT['domain'] . '?start=telegram voronka'
]
], ],
'theses' => [ 'title' => 'Лендинг',
'description' => 'Сайт для рекламной компании',
'features' => [
[ [
'class' => 'yellow', 'icon' => 'template',
'characteristic' => '-80%', 'text' => 'Авангардный дизайн'
'text' => 'НАГРУЗКА'
], ],
[ [
'class' => 'blue', 'icon' => '',
'colored' => true, 'text' => 'Продумана каждая деталь'
'characteristic' => '+5%',
'text' => 'КОНВЕРСИИ'
], ],
[ [
'class' => 'green', 'icon' => 'list-tree',
'characteristic' => '0₽', 'text' => 'Глубокий SEO'
'text' => 'НИКАКОЙ АРЕНДЫ' ],
/* [
'icon' => 'document',
'text' => 'Юридическая броня'
], */
[
'icon' => 'bell',
'text' => 'Регистрация в Роскомнадзор'
] ]
], ],
'background_image_src' => '/themes/default/images/telegram_voronka.png', 'deal' => [
'background_image_alt' => 'Телеграм воронка КОДОРВАНЬ', 'cost' => '30 000',
'cost' => '2000', 'text' => 'ПОЛНАЯ СТОИМОСТЬ'
'canceled' => 'ЗАБЛОКИРОВАН' ],
'button' => [
'class' => 'request',
'text' => 'ВЫБРАТЬ',
'label' => 'Кнопка для заказа'
]
], ],
[ [
'class' => 'parser', 'class' => 'voronka',
'title' => 'Парсер', 'icon_center' => 'crown',
'icon_left' => '', 'image' => [
'icon_center' => 'search', 'src' => '/themes/' . THEME . '/images/telegram_voronka.png',
'icon_right' => '', 'alt' => 'Воронка в Телеграм'
'description' => <<<TXT
Любая работа за компьютером может быть автоматизирована
<br><br>
Парсер берёт данные с сайтов через API, либо эмулируя пользователя, а так же из excel-документов, CRM и бухгалтерии, затем просчитывает, анализирует и записывает результат
TXT,
'howto' => 'Подключите источники и снизьте нагрузку на операторов, оптимизируйте процессы',
'extra' => [
'Wildberries',
'OZON',
'Yandex Market',
'Avito',
'CDEK',
'1C',
'Bitrix',
'Мой Склад'
], ],
'buttons' => [ 'title' => 'Воронка',
/* 'description' => '', */
'features' => [
[ [
'icon' => 'comment', 'icon' => 'phone',
/* 'href' => 'https://t.me/' . TELEGRAM_ROBOT['domain'] . '?start=parser' */ 'text' => 'Сбор данных'
'href' => 'https://t.me/' . TELEGRAM_ROBOT['domain'] . '?start=parser'
]
],
'theses' => [
[
'class' => 'yellow',
'colored' => true,
'characteristic' => '-100%',
'text' => 'НАГРУЗКА'
], ],
[ [
'class' => 'cyan', 'icon' => 'copy',
'icon' => 'infinity', 'text' => 'Синхронизация с CRM'
'text' => 'ВЕЧНАЯ ПОДДЕРЖКА'
], ],
[ [
'class' => 'green', 'icon' => 'track',
'icon' => 'play forwards', 'text' => 'Аналитика всех этапов'
'text' => 'РЕКОРД СКОРОСТИ' ],
/* [
'icon' => '',
'text' => 'Повышение конверсий'
], */
[
'icon' => 'style',
'text' => 'Иммерсивные техники'
],
[
'icon' => 'smile',
'text' => 'Никакой аренды'
] ]
], ],
'background_image_src' => '/themes/default/images/excel_small_compressed.jpg', 'deal' => [
'background_image_alt' => 'Парсеры КОДОРВАНЬ', 'cost' => '10 000',
'cost' => '3000' 'text' => 'ПОЛНАЯ СТОИМОСТЬ'
],
'button' => [
'class' => 'request',
'text' => 'ВЫБРАТЬ',
'label' => 'Кнопка для заказа'
]
], ],
[ [
'class' => 'calculator', 'class' => 'ai assistent telegram',
'title' => 'Калькулятор', 'icon_center' => '',
'icon_left' => '', 'image' => [
'icon_center' => 'calculator', 'src' => '/themes/' . THEME . '/images/telegram_voronka.png',
'icon_right' => '', 'alt' => 'Воронка в Телеграм'
'description' => <<<TXT
Составление алгоритма обработки большого объёма данных с использованием нейросетей и грамотно выбранной сортировки
<br><br>
Оператор вводит данные, нажимает на кнопки, двигает ползунки и мгновенно получает точный результат вычислений
TXT,
'howto' => 'Настройте параметры в панели управления и в долгосрочной перспективе сэкономьте тысячи часов рабочего времени',
'extra' => [],
'buttons' => [
[
'icon' => 'comment',
'href' => 'https://t.me/' . TELEGRAM_ROBOT['domain'] . '?start=calculator'
]
], ],
'theses' => [ 'title' => 'ИИ-ассистент',
'description' => 'Личный консультант',
'features' => [
[ [
'class' => 'yellow', 'icon' => 'assign',
'characteristic' => '-95%', 'text' => 'Самообучение',
'text' => 'НАГРУЗКА'
], ],
[ [
'class' => 'green', 'icon' => 'performance',
'characteristic' => '-80%', 'text' => 'Индивидуальная настройка'
'text' => 'ОШИБОК ВЫЧИСЛЕНИЙ'
], ],
[ [
'class' => 'red', 'icon' => 'extension',
'colored' => true, 'text' => 'Актуализация базы данных'
'characteristic' => '+20%', ],
'text' => 'ОБУЧАЕМОСТЬ' [
'icon' => '',
'text' => 'Передовая ИИ-модель'
],
[
'icon' => 'smile',
'text' => 'Никакой аренды'
] ]
], ],
'background_image_src' => '/themes/default/images/tordv_compressed.jpg', 'deal' => [
'background_image_alt' => 'Калькулятор КОДОРВАНЬ', 'cost' => '15 000',
'cost' => '10 000' 'text' => 'ПОЛНАЯ СТОИМОСТЬ'
] ],
'button' => [
'class' => 'request',
'text' => 'ВЫБРАТЬ',
'label' => 'Кнопка для заказа'
]
],
[
'class' => 'marketplace',
'icon_center' => 'crown',
'image' => [
'src' => '/themes/' . THEME . '/images/site_example.jpg',
'alt' => 'Сайт для рекламы'
],
'title' => 'Маркетплейс',
'description' => 'Бюджет разработки >2млн',
'features' => [
[
'icon' => 'trophy',
'text' => 'Чистый код, без конструкторов'
],
[
'icon' => 'template',
'text' => 'Индивидуальный дизайн'
],
/* [
'icon' => 'import',
'text' => 'Годовая подписка на обновления'
], */
[
'icon' => 'extension',
'text' => 'Подключение к Мой Склад'
],
[
'icon' => 'performance',
'text' => 'Физический сервер с личным администратором'
]
],
'article' => <<<HTML
Изначально проект создавался как чат-робот Telegram с Web App, где по нажатию на кнопку пользователь попадал в мини-приложение, автоматически авторизовавшись через мессенджер.<br>
<br>
Там он видел весь каталог товаров с категориями, ценами, фильтрами и умным поиском. Всего за 2 минуты он проходил все этапы: наполнял корзину товарами, заполнял адрес доставки (в первый раз) и оплачивал через СБП! Сессия сохраняла данные между устройствами (смартфон и компьютер). Была проведена огромная аналитическая работа с фокус-группами и сбором статистики. Каждый элемент на экране размещён очень обоснованно.<br>
<br>
После оплаты приложение автоматически закрывается и пользователь возвращается в чат с роботом, где он видит список купленных товаров, статус заказа, оплаченный счёт, а так же подтверждение от оператора. Операторам в чат прилетает заказ с кнопкой "написать покупателю" прямо в Telegram!<br>
<br>
Сейчас мы развиваем проект как полноценный сайт, оставляя поддержку версии для мессенджеров.<br>
<br>
В покупку лицензии включена стоимость разработки индивидуального дизайна<br>
<br>
После покупки вам нужно будет оплачивать размещение проекта на наших серверах - так мы гарантируем сохранность нашего кода, а вы экономите сотни тысяч рублей на системном администраторе, бекапах, юридических заморочках с роскомнадзором (берём ответственность на себя) и постоянным масштабированием. Цена небольшая, особенно учитывая, что туда входит наша постоянная тех. поддержка<br>
<br>
Не берём никаких процент с продаж!<br>
<br>
По желанию добавляем или удаляем функции, а критические обновления безопасности устанавливаем бесплатно. В случае проблем, тех.работ или утечек оповещаем моментально.
HTML,
'deal' => [
'cost' => '120 000',
'text' => 'ВЕЧНАЯ ЛИЦЕНЗИЯ НА КОД'
],
'button' => [
'class' => 'deal blue',
'text' => 'ВЫБРАТЬ',
'label' => 'Кнопка выбора суперпака для калькулятора'
]
],
]; ];
// Sending the cookie with the team workload (1800 = 30min) // Sending the cookie with the team workload (1800 = 30min)

View File

@@ -41,11 +41,11 @@ final class project extends core
]; ];
/** /**
* Page: calculator * Page: constructor
* *
* @return null * @return null
*/ */
public function calculator(): null public function constructor(): null
{ {
if ($this->request->method === method::get) { if ($this->request->method === method::get) {
// GET // GET
@@ -243,6 +243,7 @@ final class project extends core
->start() ->start()
->clean() ->clean()
->sse() ->sse()
->json(['errors' => []])
->validate($this->request) ->validate($this->request)
?->body() ?->body()
->end(); ->end();

View File

@@ -0,0 +1,31 @@
@charset "UTF-8";
@font-face {
font-family: 'ALS Schlange';
src: url("/fonts/als_schlange/alsschlangesans-thin.otf");
font-weight: 100;
}
@font-face {
font-family: 'ALS Schlange';
src: url("/fonts/als_schlange/alsschlangesans-light.otf");
font-weight: 200;
}
@font-face {
font-family: 'ALS Schlange';
src: url("/fonts/als_schlange/alsschlangesans.otf");
font-weight: 400;
}
@font-face {
font-family: 'ALS Schlange';
src: url("/fonts/als_schlange/alsschlangesans-bold.otf");
font-weight: 600;
}
@font-face {
font-family: 'ALS Schlange';
src: url("/fonts/als_schlange/alsschlangesans-black.otf");
font-weight: 800;
}

View File

@@ -0,0 +1,37 @@
@charset "UTF-8";
@font-face {
font-family: 'Golos';
src: url("/fonts/golos/Golos-Text_VF.ttf");
font-weight: 400 900;
}
/* @font-face {
font-family: 'Golos';
src: url("/fonts/golos/Golos-Text_Regular.ttf");
font-weight: 400;
}
@font-face {
font-family: 'Golos';
src: url("/fonts/golos/Golos-Text_Medium.ttf");
font-weight: 500;
}
@font-face {
font-family: 'Golos';
src: url("/fonts/golos/Golos-Text_DemiBold");
font-weight: 600;
}
@font-face {
font-family: 'Golos';
src: url("/fonts/golos/Golos-Text_Bold");
font-weight: 700;
}
@font-face {
font-family: 'Golos';
src: url("/fonts/golos/Golos-Text_Black.ttf");
font-weight: 800;
} */

View File

@@ -0,0 +1,6 @@
@charset "UTF-8";
@font-face {
font-family: 'Strogo';
src: url("/fonts/strogo/Strogo-Regular.ttf");
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -43,7 +43,7 @@ $core->router
->write('/superpack/$urn', new route('superpack', 'index'), 'GET') ->write('/superpack/$urn', new route('superpack', 'index'), 'GET')
->write('/project/calculator', new route('project', 'calculator'), 'GET') ->write('/project/constructor', new route('project', 'constructor'), 'GET')
->write('/project/request', new route('project', 'request'), 'PUT') ->write('/project/request', new route('project', 'request'), 'PUT')
->write('/system/superpack/create', new route('superpack', 'create'), 'GET') ->write('/system/superpack/create', new route('superpack', 'create'), 'GET')

View File

@@ -8,6 +8,11 @@
* @description * @description
* Module for creating projects * Module for creating projects
* *
* @todo
* 1. Удалить полностью `this.#elements` и перенести всё управление HTML-элементами
* в систему слушателей событий `EventListener`, для управления извне и разделения логики
* 2. После первого пункта можно будет наконец очистить ебучий конструктор с его аргументами
*
* @class * @class
* @public * @public
* *
@@ -1065,6 +1070,64 @@ export default class project {
return this.#purpose; return this.#purpose;
} }
/**
* @name Superpack
*
* @description
* The project superpack
*
* @type {string}
*
* @protected
*/
#superpack;
/**
* @name Superpack (set)
*
* @public
*/
set superpack(value) {
if (typeof value === 'string' && value.length > 0) {
// String
// Writing the property
this.#superpack = value;
// Deleting from the stages registry
this.stages.delete('superpack');
} else {
// Undefined
// Deleting the property
this.#superpack = undefined;
// Writing into the stages registry
this.stages.add('superpack');
}
// Dispatching event: "project.write"
this.shell.dispatchEvent(
new CustomEvent("project.write", {
detail: { name: 'superpack', value: this.#superpack }
})
);
// Reinitializing guide HTML-elements
this.guide();
};
/**
* @name Superpack (get)
*
* @return {string}
*
* @public
*/
get superpack() {
return this.#superpack;
}
/** /**
* @name Project * @name Project
* *
@@ -1729,6 +1792,7 @@ export default class project {
payment_output, payment_output,
prepayment, prepayment,
prepayment_output, prepayment_output,
superpack,
project_name, project_name,
project_description, project_description,
project_files, project_files,
@@ -1775,6 +1839,8 @@ export default class project {
if (prepayment instanceof HTMLElement) this.#elements.set('prepayment', prepayment); if (prepayment instanceof HTMLElement) this.#elements.set('prepayment', prepayment);
if (prepayment_output instanceof HTMLElement) this.#elements.set('prepayment_output', prepayment_output); if (prepayment_output instanceof HTMLElement) this.#elements.set('prepayment_output', prepayment_output);
if (superpack instanceof HTMLElement) this.#elements.set('superpack', superpack);
if (project_name instanceof HTMLElement) this.#elements.set('project_name', project_name); if (project_name instanceof HTMLElement) this.#elements.set('project_name', project_name);
if (project_description instanceof HTMLElement) this.#elements.set('project_description', project_description); if (project_description instanceof HTMLElement) this.#elements.set('project_description', project_description);
if (project_files instanceof HTMLElement) this.#elements.set('project_files', project_files); if (project_files instanceof HTMLElement) this.#elements.set('project_files', project_files);
@@ -2367,6 +2433,7 @@ export default class project {
// Exit (success) // Exit (success)
return JSON.stringify({ return JSON.stringify({
identifier: new Date().valueOf(), identifier: new Date().valueOf(),
superpack: this.#superpack,
calculator: { calculator: {
architecture: this.#architecture?.symbol.description, architecture: this.#architecture?.symbol.description,
purpose: this.#purpose?.symbol.description, purpose: this.#purpose?.symbol.description,

View File

@@ -9,6 +9,10 @@ core.modules.connect(["damper", "project"]).then((connected) => {
// Initializing the files input wrap HTML-element // Initializing the files input wrap HTML-element
const files = document.getElementById("project_files"); const files = document.getElementById("project_files");
// Initializing the superpack HTML-elements
const superpack = document.getElementById("superpack");
const superpack_value = superpack.querySelector('span.value');
// Initializing the instance of the project.mjs // Initializing the instance of the project.mjs
core.global.project = new connected.global.project( core.global.project = new connected.global.project(
document.querySelector('section[data-paginator-page="2"]'), document.querySelector('section[data-paginator-page="2"]'),
@@ -32,6 +36,7 @@ core.modules.connect(["damper", "project"]).then((connected) => {
undefined, undefined,
undefined, undefined,
undefined, undefined,
superpack,
document.getElementById("project_name"), document.getElementById("project_name"),
document.getElementById("project_description"), document.getElementById("project_description"),
files, files,
@@ -96,14 +101,38 @@ core.modules.connect(["damper", "project"]).then((connected) => {
// Initializing the page buttons menu // Initializing the page buttons menu
core.global.paginator.shell.addEventListener("paginator.page.opened", function (event) { core.global.paginator.shell.addEventListener("paginator.page.opened", function (event) {
// Scrolling to the introdution HTML-element // Scrolling to the introdution HTML-element
introdution?.scrollIntoView({ behavior: 'smooth' }); // introdution?.scrollIntoView({ behavior: 'smooth' });
// Сделать для мобилок 300 а для пк 0
window.scrollTo({ top: window.innerHeight > 1500 ? 0 : 300, behavior: 'smooth' });
// Initializing the page buttons menu // Initializing the page buttons menu
menu(event.detail.identifier); menu(event.detail.identifier);
}); });
// Connecting event listener for project calculation // Connecting event listener for project parameters writings
core.global.project.shell.addEventListener("project.write", function() { core.global.project.shell.addEventListener("project.write", function(event) {
if (event.detail.name === 'superpack') {
// Superpack
if (superpack_value instanceof HTMLElement) {
// Initialized the superpack value HTML-element
// Writing the superpack value
superpack_value.innerText = event.detail.value ?? '';
if (superpack_value.innerText.length > 1) {
// Has a value
// Showing the superpack HTML-element
superpack.style.removeProperty('display');
} else {
// Has no value
// Hiding the sueprpack HTML-element
superpack.style.setProperty('display', 'none');
}
}
}
// Initializing the "project" page button HTML-element // Initializing the "project" page button HTML-element
const project = core.global.paginator.shell.querySelector('button[data-paginator-page-button="2"]'); const project = core.global.paginator.shell.querySelector('button[data-paginator-page-button="2"]');
@@ -146,7 +175,10 @@ core.modules.connect(["damper", "project"]).then((connected) => {
// Initializing the page buttons menu // Initializing the page buttons menu
core.global.paginator.shell.addEventListener("paginator.page.opened", function (event) { core.global.paginator.shell.addEventListener("paginator.page.opened", function (event) {
// Scrolling to the introdution HTML-element // Scrolling to the introdution HTML-element
introdution?.scrollIntoView({ behavior: 'smooth' }); // introdution?.scrollIntoView({ behavior: 'smooth' });
// window.scrollTo({ top: 300, behavior: 'smooth' });
// Сделать для мобилок 300 а для пк 0
window.scrollTo({ top: window.innerHeight > 1500 ? 0 : 300, behavior: 'smooth' });
// Initializing the page buttons menu // Initializing the page buttons menu
menu(event.detail.identifier); menu(event.detail.identifier);

View File

@@ -4,9 +4,9 @@
:root { :root {
--text-color: #fff; --text-color: #fff;
--text-color-inverted: #000; --text-color-inverted: #000;
--link-color: #475bf9; --link-color: #6a6cff;
--link-hover-color: #6375ff; --link-hover-color: #7aa0fb;
--link-active-color: #3d53f6; --link-active-color: #5c53c9;
--button-background-color: #fff; --button-background-color: #fff;
--button-background-color-inverted: #000; --button-background-color-inverted: #000;
--button-hover-background-color: #abc7c6; --button-hover-background-color: #abc7c6;
@@ -58,9 +58,9 @@
:root { :root {
--text-color: #fff; --text-color: #fff;
--text-color-inverted: #000; --text-color-inverted: #000;
--link-color: #475bf9; --link-color: #6a6cff;
--link-hover-color: #6375ff; --link-hover-color: #7aa0fb;
--link-active-color: #3d53f6; --link-active-color: #5c53c9;
--button-background-color: #fff; --button-background-color: #fff;
--button-background-color-inverted: #000; --button-background-color-inverted: #000;
--button-hover-background-color: #abc7c6; --button-hover-background-color: #abc7c6;

View File

@@ -2,65 +2,67 @@
article#companies { article#companies {
z-index: 50; z-index: 50;
margin-bottom: 5.5rem;
width: 100vw; width: 100vw;
height: 70px; height: 70px;
padding-bottom: 4rem;
display: inline-flex; display: inline-flex;
flex-direction: row; flex-direction: row;
gap: 2rem; gap: 2em;
font-size: 1rem;
pointer-events: none; pointer-events: none;
>img { >img {
box-sizing: border-box; box-sizing: border-box;
padding: 0.8rem 1.2rem; padding: 0.8em 1.2em;
border-radius: 1.25rem; border-radius: 1.25em;
/* border-top: 1px solid #e6efff45; /* border-top: 1px solid #e6efff45;
border-left: 1px solid #e5edff38; border-left: 1px solid #e5edff38;
background: #d7f9ff2b; background: #d7f9ff2b;
backdrop-filter: blur(1.6px); */ backdrop-filter: blur(1.6px); */
color: #fff; color: #fff;
&:is(.bitrix24) { &.bitrix24 {
padding-top: 1.3rem; padding-top: 1.3rem;
padding-bottom: 0.5rem; padding-bottom: 0.5rem;
} }
&:is(.moy_sklad) { &.moy_sklad {
padding-top: 0.1rem; padding-top: 0.1rem;
padding-bottom: 0.4rem; padding-bottom: 0.4rem;
} }
&:is(.wildberries) { &.wildberries {
padding-top: 0.7rem; padding-top: 0.7rem;
padding-bottom: 1.1rem; padding-bottom: 1.1rem;
} }
&:is(.ozon) { &.ozon {
padding-top: 0.8rem; padding-top: 0.8rem;
padding-bottom: 1.1rem; padding-bottom: 1.1rem;
} }
&:is(.yandex_market) { &.yandex_market {
padding-bottom: 0.8rem; padding-bottom: 0.8rem;
} }
&:is(.vk) { &.vk {
padding-bottom: 0.4rem; padding-bottom: 0.4rem;
} }
&:is(.max) { &.max {
padding-bottom: 0.5rem; padding-bottom: 0.5rem;
} }
&:is(.avito) { &.avito {
padding-bottom: 1rem; padding-bottom: 1rem;
} }
} }
} }
@media (width < 800px) { @media (width < 800px) {
section#companies { article#companies {
height: 50px; margin-bottom: 4.5rem;
padding-bottom: 2.5rem; height: max(50px, min(9vw, 70px));
font-size: min(2vw, 1rem);
} }
} }

View File

@@ -0,0 +1,46 @@
@charset "UTF-8";
div#ender {
z-index: 500;
margin-bottom: var(--main-gap, 2em);
padding: 1.2em;
display: flex;
flex-direction: column;
gap: max(1.5rem, 0.3em);
font-size: 4.5rem;
text-align: center;
color: #fff;
rotate: 2deg;
>button {
--diameter: 7em;
margin: auto;
width: var(--diameter);
height: var(--diameter);
padding: 0.8em;
border-radius: 100%;
border: calc(var(--diameter) * 0.06) solid #fff;
rotate: -2deg;
background: unset;
backdrop-filter: blur(2px);
&:is(:hover, :focus) {
background: unset;
filter: brightness(0.7);
}
&:active {
filter: brightness(0.5);
}
>img.icon {
width: 100%;
height: 100%;
}
}
}
/* @media (width < 800px) {
div#ender {
}
} */

View File

@@ -0,0 +1,479 @@
@charset "UTF-8";
section#facer {
--aside-width: 18em;
--button-height: 3.3em;
--button-padding: 1em;
position: relative;
display: grid;
grid-template-columns: var(--aside-width, 10vw) max(24vw, 22em) var(--aside-width, 10vw);
grid-template-rows: repeat(6, auto);
justify-content: center;
column-gap: 3em;
row-gap: 1em;
>header {
display: flex;
flex-direction: column;
justify-content: center;
>h1 {
margin: unset;
padding: unset;
text-align: center;
font-family: "MT Sans";
font-weight: 400;
color: #fff;
text-shadow: 0px 0px 5px #000B, 0px 2px 2px #000B;
&:not(+small) {
margin-bottom: 0.5em;
}
&+span {
margin-top: 0.2em;
margin-bottom: 1em;
text-align: center;
color: #e9e8e2;
text-shadow: 0px 1px 3px #000C, 0px 1px 1px #000B;
}
&+small {
margin-bottom: 1em;
text-align: center;
color: #fff;
text-shadow: 0px 1px 3px #000C, 0px 1px 1px #000B;
}
}
}
>p.promotion {
margin: unset;
margin: 0 0rem 0.4rem 0rem;
padding: 0.5rem 0.7rem;
text-align: center;
font-size: 1.1rem;
font-weight: 600;
color: #45ff01;
border-radius: 1.25rem;
border: 2px solid #45ff01;
text-shadow: 0px 1px 3px #000C, 0px 1px 1px #000B;
backdrop-filter: blur(1.2px);
}
>noscript {
display: flex;
flex-direction: column;
* {
color: #fff;
}
}
ul.window {
display: flex;
flex-direction: column;
list-style: none;
background: #557d8d42;
>li {
padding: 0.8em 0;
border-bottom: 2px solid #61ffe117;
&:first-of-type {
padding-top: unset;
}
&:last-of-type {
padding-bottom: unset;
border-bottom: unset;
}
>:is(strong, b) {
color: #cfeee5;
font-weight: 600;
/* &.important {
color: #87d089;
} */
}
}
}
small.window {
background: #557d8d42;
}
:is(ul, small).window {
/* padding: 0.6em 1em; */
padding: 1em 1.2em;
text-align: left;
font-family: "Golos";
font-size: 0.9em;
font-weight: 500;
color: #98adb1;
border-radius: 1.25rem;
border-top: 1px solid #84d1d52e;
backdrop-filter: blur(2px) contrast(1.14);
/* text-shadow: 0px 1px 3px #000C, 0px 1px 1px #000B; */
text-shadow: unset;
>img.icon {
margin-right: 0.5em;
height: 1.6ch;
vertical-align: baseline;
margin-bottom: -2px;
&.thunder {
margin-top: -0.2em;
margin-right: 0.3em;
height: 2ch;
vertical-align: top;
}
}
>:is(strong, b) {
/* display: block; */
font-weight: 600;
color: #ebdada;
&.red {
color: #f44;
}
&.green {
color: #44ff50;
}
&.blue {
color: #457cff;
}
&.yellow {
color: #faff50;
}
&.cyan {
color: #01e8ff;
}
}
/* >li {
color: #99bc99;
filter: brightness(0.9);
>:is(strong, b) {
color: #dbf0db;
&.important {
color: #87d089;
}
}
&:nth-of-type(2n) {
color: #9fc8d4;
>:is(strong, b) {
color: #f0d4ff;
&.important {
color: #6bb9fd;
}
}
}
} */
}
>div.partners {
margin-top: 1rem;
padding: 0 1em;
display: flex;
flex-direction: column;
>div.icon {
height: 24px;
scale: 1.2;
background: linear-gradient(#ffe24c 30%, #b89301 80%);
mask: var(--mask-image) no-repeat center bottom;
}
>b {
text-align: center;
font-family: Bahnschrift;
font-weight: 600;
font-size: 1.2em;
color: #d6d327;
text-shadow: 0px 0px 5px #FFB54147, 0px 0px 2px #FFAF313D;
}
}
>small.offer {
margin-top: 1.2rem;
padding: 0 1.5em;
text-align: center;
font-size: 0.8em;
color: #fff;
text-shadow: 0px 1px 3px #000C, 0px 1px 1px #000B;
>b {
display: block;
}
}
>div#contacts_shortcut {
margin-top: 1rem;
display: flex;
flex-direction: column;
align-items: center;
gap: 0.1em;
color: #fff;
>span {
font-family: Bahnschrift;
font-weight: 600;
}
>div.sim {
a.number {
margin: unset;
color: #fff;
text-shadow: 0px 1px 3px #000C, 0px 1px 1px #000B;
>span {
font-weight: 400;
}
+small {
font-family: "Bahnschrift";
font-weight: 100;
text-shadow: 0px 1px 3px #000C, 0px 1px 1px #000B;
}
}
}
}
>div.mega {
--border-radius: 1.25rem;
--border-width: 4px;
height: var(--button-height, 60px);
display: flex;
flex-direction: row;
&:is(:first-child) {
margin-bottom: 1rem;
}
&:has(>button.delete:is(:hover, :focus)) {
>div.content {
border-color: var(--button-hover-background-color);
}
}
&:has(>button.delete:active) {
>div.content {
border-color: var(--button-active-background-color);
}
}
>div.content {
z-index: 100;
flex-grow: 1;
padding: 0.52em 0.6em;
display: flex;
align-items: center;
gap: 0.6em;
border-radius: var(--border-radius, 1.25rem);
border: var(--border-width, 4px) solid #fff;
background: #000;
>img.icon {
width: auto;
max-height: 3rem;
height: 100%;
}
>span.value {
font-family: "Golos";
font-size: 1em;
font-weight: 500;
color: #fff;
}
}
>button.delete {
--offset-left: calc(var(--border-radius, 1.25rem) + var(--border-width, 4px));
z-index: 50;
margin-left: calc(var(--offset-left) * -1);
width: calc(var(--button-height, 70px) * 1.3 + var(--button-padding, 1em) + var(--offset-left, 0px));
height: max(var(--button-height, 70px), 100%);
padding: var(--button-padding, 1em);
padding-left: calc(var(--offset-left) + var(--border-width));
display: flex;
justify-content: center;
align-items: center;
border-radius: 0 var(--border-radius, 1.25rem) var(--border-radius, 1.25rem) 0;
border: unset;
background: #fff;
&:is(:hover, :focus) {
background: var(--button-hover-background-color);
}
&:active {
background: var(--button-active-background-color);
}
>img.icon {
scale: 1.2;
}
}
}
>div.adaptive {
/* display: contents; */
display: flex;
flex-direction: row;
gap: 1rem;
>* {
width: 100%;
}
>button#back {
--diameter: 7ch;
--radius: calc(var(--diameter, 4ch) / 2);
width: var(--button-height, 30%);
display: flex;
justify-content: center;
align-items: center;
border: unset;
background-color: var(--button-background-color, #fff);
position: relative;
left: unset;
top: unset;
margin: unset;
min-width: var(--diameter, 4ch);
width: 30%;
height: auto;
border-radius: 1.25rem;
&:is(:hover, :focus) {
background-color: var(--button-hover-background-color, #abc7c6);
}
&:active {
background-color: var(--button-active-background-color, #8fa3a2);
}
>img {
padding-bottom: 0.15em;
scale: 1.4;
}
}
>div#buttons {
/* margin-bottom: var(--margin-bottom, 0.8rem); */
margin-bottom: unset;
flex-direction: row;
justify-content: center;
>button {
min-width: 100%;
height: var(--button-height, 30%);
/* padding: 1.05em 1.3em 1em;
border-radius: 0.75rem; */
box-sizing: border-box;
padding: 0 var(--button-padding);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-family: "Golos";
font-size: 1em;
font-weight: 500;
border-radius: 1.25rem;
border: unset;
background-color: var(--button-background-color, #fff);
&:is(:hover, :focus) {
background-color: var(--button-hover-background-color, #abc7c6);
}
&:active {
background-color: var(--button-active-background-color, #8fa3a2);
}
&#send {
--shadow: 0 4px 5px -4px rgba(0, 0, 0, 0.5);
/* padding: 2.3ch 4.5ch 2.5ch; */
font-weight: 500;
color: #fff;
text-shadow: 0 0px 0.4em #0004, 0 0 1.7em #000;
border: unset;
background: hsl(var(--button-send-background-color, 120deg) 40% 50%);
box-shadow: var(--shadow);
-webkit-box-shadow: var(--shadow);
-moz-box-shadow: var(--shadow);
transition: background 1.2s ease-out;
&:not(:disabled) {
filter: contrast(1.1);
&:is(:hover, :focus) {
>div.color {
filter: brightness(0.6);
}
}
&:active {
>div.color {
filter: brightness(0.45);
}
}
/* >div.color {
filter: brightness(0.85);
} */
}
&:disabled {
>div.color {
filter: grayscale(1) brightness(0.8);
}
}
}
&:disabled {
>div.color {
filter: grayscale(1) brightness(0.8);
}
>small.disabled {
display: initial;
}
}
>small.disabled {
display: none;
font-size: 0.7em;
}
}
&:is(#paginator) {
flex-direction: row;
justify-content: center;
>button {
flex-grow: 1;
}
}
}
}
}
@media (width < 500px) {
section#facer {
--button-height: 4.5em;
}
}

View File

View File

@@ -1,11 +1,14 @@
/* @import url('/css/fonts/fira.css'); */ /* @import url('/css/fonts/fira.css'); */
/* @import url('/css/fonts/hack.css'); */ /* @import url('/css/fonts/hack.css'); */
/* @import url('/css/fonts/dejavu.css'); */ /* @import url('/css/fonts/dejavu.css'); */
@import url('/css/fonts/nunito.css'); /* @import url('/css/fonts/nunito.css'); */
/* @import url('/css/fonts/als_schlange.css'); */
@import url('/css/fonts/golos.css');
@import url('/css/fonts/cascadia_code.css'); @import url('/css/fonts/cascadia_code.css');
@import url('/css/fonts/geologica.css'); @import url('/css/fonts/geologica.css');
/* @import url('/css/fonts/commissioner.css'); */ /* @import url('/css/fonts/commissioner.css'); */
@import url('/css/fonts/mt_sans.css'); @import url('/css/fonts/mt_sans.css');
/* @import url('/css/fonts/strogo.css'); */
/* @import url('/css/fonts/vredina.css'); */ /* @import url('/css/fonts/vredina.css'); */
@import url('/css/fonts/gost.css'); @import url('/css/fonts/gost.css');
@import url('/css/fonts/bahnschrift.css'); @import url('/css/fonts/bahnschrift.css');

View File

@@ -87,16 +87,6 @@ footer {
font-size: 0.8rem; font-size: 0.8rem;
color: #a3a396; color: #a3a396;
::selection {
color: #000;
background: #F22;
}
::-moz-selection {
color: #000;
background: #F22;
}
>span.row { >span.row {
display: inline-flex; display: inline-flex;
justify-content: end; justify-content: end;

View File

@@ -1,6 +1,6 @@
@charset "UTF-8"; @charset "UTF-8";
header { body>header {
z-index: 1000; z-index: 1000;
top: 0; top: 0;
left: 0; left: 0;
@@ -9,7 +9,7 @@ header {
height: calc(var(--menu-height) + var(--introdution-height)); height: calc(var(--menu-height) + var(--introdution-height));
pointer-events: none; pointer-events: none;
> div { >div {
top: 0; top: 0;
position: sticky; position: sticky;
width: 100%; width: 100%;
@@ -26,7 +26,7 @@ header {
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;
@@ -34,13 +34,13 @@ header {
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;
@@ -51,14 +51,14 @@ header {
} }
} }
> 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 { >a {
text-decoration: none; text-decoration: none;
font-weight: 500; font-weight: 500;
font-size: 1rem; font-size: 1rem;

View File

@@ -1,9 +1,10 @@
h1#logotype { h1#logotype {
z-index: 200; z-index: 200;
margin: unset; margin: unset;
margin-top: 6rem; margin-top: 100px;
margin-bottom: 2rem; margin-bottom: unset;
width: max-content; width: max-content;
height: 200px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
text-align: center; text-align: center;

View File

@@ -7,7 +7,7 @@ div.social.media {
gap: 1ch; gap: 1ch;
>a { >a {
display: contents; display: block;
>img { >img {
width: auto; width: auto;

View File

@@ -30,7 +30,7 @@ div.sim {
border: unset; border: unset;
>img.icon { >img.icon {
scale: 0.8; /* scale: 0.8; */
color: #fff; color: #fff;
} }
} }

View File

@@ -4,6 +4,7 @@ main {
--scroll-px-ten: calc(var(--scroll-px) / 10); --scroll-px-ten: calc(var(--scroll-px) / 10);
--scroll-px-hundred: calc(var(--scroll-px-ten) / 10); --scroll-px-hundred: calc(var(--scroll-px-ten) / 10);
--scroll-px-thousand: calc(var(--scroll-px-hundred) / 10); --scroll-px-thousand: calc(var(--scroll-px-hundred) / 10);
--main-gap: 60px;
margin-top: var(--menu-height); margin-top: var(--menu-height);
min-height: 100vh; min-height: 100vh;
display: flex; display: flex;

View File

View File

@@ -2,6 +2,67 @@
body { body {
>main { >main {
>section#facer {
padding: 3rem 0 8rem;
font-size: 1.3rem;
>header {
grid-column: 2;
grid-row: 1;
}
>ul.description {
grid-column: 1;
grid-row: 2;
margin: unset;
height: fit-content;
}
>article#project {
grid-column: 2;
grid-row: 2;
}
>div.other {
grid-column: 3;
grid-row: 2;
display: flex;
flex-direction: column;
gap: 1em;
>small.guarantee {
/* background: #2ea05b3d; */
}
}
>div.mega#superpack {
grid-column: 2;
grid-row: 3;
}
>div.adaptive {
grid-column: 2;
/* grid-row: 4; */
}
>a.full {
grid-column: 2;
/* grid-row: 5; */
text-align: center;
font-size: 0.8em;
}
>div.partners {
grid-column: 2;
/* grid-row: 6; */
}
>div#contacts_shortcut {
grid-column: 2;
/* grid-row: 7; */
}
}
>section.section { >section.section {
z-index: 500; z-index: 500;
width: 100%; width: 100%;
@@ -24,3 +85,53 @@ body {
} }
} }
} }
@media (width < 90rem) {
body {
>main {
section#facer {
grid-template-columns: max(24vw, 22em);
>header,
>article#project,
>div.mega#superpack,
>div.adaptive,
>a.full,
>div.partners,
>div#contacts_shortcut {
grid-column: 1;
}
>ul.description {
display: none;
}
>div.other {
grid-column: 1;
grid-row: unset;
margin-top: 1em;
}
}
}
}
}
@media (width < 800px) {
body {
>main {
section#facer {
grid-template-columns: 70vw;
}
}
}
}
@media (width < 600px) {
body {
>main {
section#facer {
grid-template-columns: 80vw;
}
}
}
}

View File

@@ -20,7 +20,7 @@
--cookies-width: 24rem; --cookies-width: 24rem;
--cookies-height: 4rem; --cookies-height: 4rem;
font-family: "Nunito", "DejaVu", sans-serif; font-family: "Golos", sans-serif;
text-decoration: none; text-decoration: none;
outline: none; outline: none;
border: none; border: none;
@@ -40,6 +40,20 @@
text-shadow: none; text-shadow: none;
} }
.important {
&::selection {
color: #000;
background: #F22;
text-shadow: none;
}
&::-moz-selection {
color: #000;
background: #F22;
text-shadow: none;
}
}
body { body {
margin: unset; margin: unset;
width: 100vw; width: 100vw;
@@ -54,7 +68,7 @@ body {
background-color: #020c13; background-color: #020c13;
>div.vignette { >div.vignette {
z-index: 100; z-index: -100;
position: fixed; position: fixed;
top: 0; top: 0;
width: 100vw; width: 100vw;
@@ -72,7 +86,7 @@ body {
--dot-color: #041825; --dot-color: #041825;
--dot-size: 23px; --dot-size: 23px;
--dot-space: 24px; --dot-space: 24px;
z-index: -50; z-index: -500;
position: fixed; position: fixed;
top: 0; top: 0;
left: min(-30vw, -300px); left: min(-30vw, -300px);
@@ -101,14 +115,14 @@ a {
} }
&::selection { &::selection {
color: #094ef2; color: #00F;
background: #dbd035; background: #FF2;
text-shadow: none; text-shadow: none;
} }
&::-moz-selection { &::-moz-selection {
color: #094ef2; color: #00f;
background: #dbd035; background: #FF2;
text-shadow: none; text-shadow: none;
} }
@@ -148,6 +162,7 @@ input[type="range"] {
input:not([type="range"]) { input:not([type="range"]) {
margin: unset; margin: unset;
margin-right: 0.8em;
padding: 0.2em 0.4em 0.3em; padding: 0.2em 0.4em 0.3em;
box-sizing: border-box; box-sizing: border-box;
font-size: 1em; font-size: 1em;
@@ -186,16 +201,17 @@ select {
textarea { textarea {
margin: unset; margin: unset;
padding: 0.5em 0.7em; padding: 0.8em 1.2em;
box-sizing: border-box; box-sizing: border-box;
font-size: 1em; font-size: 0.8em;
outline: unset; outline: unset;
border: 1px solid; border: 1px solid;
border-bottom: 1px solid; border-bottom: 1px solid;
background: unset; background: unset;
} }
button { button,
a.button {
font-family: Bahnschrift; font-family: Bahnschrift;
font-weight: 400; font-weight: 400;
cursor: pointer; cursor: pointer;

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M18.2426 7.17154L16.8284 5.75732L7.75739 14.8283L7.75739 10.2427H5.75739L5.75739 18.2427H13.7574V16.2427L9.17144 16.2427L18.2426 7.17154Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 296 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M5.75739 7.17154L7.1716 5.75732L16.2426 14.8283L16.2426 10.2427H18.2426L18.2426 18.2427H10.2426V16.2427L14.8285 16.2427L5.75739 7.17154Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 295 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M11.0001 3.67157L13.0001 3.67157L13.0001 16.4999L16.2426 13.2574L17.6568 14.6716L12 20.3284L6.34314 14.6716L7.75735 13.2574L11.0001 16.5001L11.0001 3.67157Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 315 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M13.0125 19.162L14.8246 17.3398L16.2427 18.7501L12.012 23.0046L7.75726 18.7739L9.16751 17.3557L11.0126 19.1905L10.998 0.997021L12.998 0.995422L13.0125 19.162Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 317 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M1.02698 11.9929L5.26242 16.2426L6.67902 14.8308L4.85766 13.0033L22.9731 13.0012L22.9728 11.0012L4.85309 11.0033L6.6886 9.17398L5.27677 7.75739L1.02698 11.9929Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 319 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M23.0677 11.9929L18.818 7.75739L17.4061 9.17398L19.2415 11.0032L0.932469 11.0012L0.932251 13.0012L19.2369 13.0032L17.4155 14.8308L18.8321 16.2426L23.0677 11.9929Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 321 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M12.0321 1.01712L7.75751 5.22761L9.161 6.65246L11.0197 4.82165L10.9644 22.9768L12.9644 22.9829L13.0195 4.86974L14.8177 6.69525L16.2425 5.29175L12.0321 1.01712Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 318 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15.0378 6.34317L13.6269 7.76069L16.8972 11.0157L3.29211 11.0293L3.29413 13.0293L16.8619 13.0157L13.6467 16.2459L15.0643 17.6568L20.7079 11.9868L15.0378 6.34317Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 320 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M13.4747 5.49475L13.4793 7.49475L8.92175 7.50541L18.5253 17.0896L17.1125 18.5052L7.48259 8.89473L7.49339 13.5088L5.49339 13.5134L5.47467 5.51345L13.4747 5.49475Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 320 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M10.5253 5.49475L10.5206 7.49475L15.0782 7.50541L5.47473 17.0896L6.88752 18.5052L16.5173 8.89479L16.5065 13.5088L18.5065 13.5134L18.5253 5.51345L10.5253 5.49475Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 320 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M17.6568 8.96219L16.2393 10.3731L12.9843 7.10285L12.9706 20.7079L10.9706 20.7059L10.9843 7.13806L7.75404 10.3532L6.34314 8.93572L12.0132 3.29211L17.6568 8.96219Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 320 B

View File

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 522 B

View File

@@ -0,0 +1,30 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M11.9389 9.76478C11.7055 10.2653 11.1105 10.4819 10.61 10.2485C10.1094 10.0151 9.89288 9.42008 10.1263 8.91954C10.3597 8.419 10.9547 8.20244 11.4552 8.43585C11.9558 8.66925 12.1723 9.26423 11.9389 9.76478Z"
fill="currentColor"
/>
<path
d="M8.9195 13.8737C9.42004 14.1071 10.015 13.8905 10.2484 13.39C10.4818 12.8895 10.2653 12.2945 9.76474 12.0611C9.2642 11.8277 8.66922 12.0442 8.43581 12.5448C8.20241 13.0453 8.41896 13.6403 8.9195 13.8737Z"
fill="currentColor"
/>
<path
d="M13.8737 15.0805C13.6403 15.581 13.0453 15.7976 12.5447 15.5642C12.0442 15.3308 11.8276 14.7358 12.061 14.2352C12.2944 13.7347 12.8894 13.5181 13.39 13.7516C13.8905 13.985 14.1071 14.5799 13.8737 15.0805Z"
fill="currentColor"
/>
<path
d="M14.2352 11.9389C14.7357 12.1723 15.3307 11.9558 15.5641 11.4552C15.7975 10.9547 15.581 10.3597 15.0804 10.1263C14.5799 9.89292 13.9849 10.1095 13.7515 10.61C13.5181 11.1106 13.7347 11.7055 14.2352 11.9389Z"
fill="currentColor"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M17.0714 1.12432C14.0682 -0.276119 10.4983 1.02321 9.09783 4.02645L4.02641 14.9021C2.62598 17.9054 3.92531 21.4753 6.92855 22.8757C9.93179 24.2761 13.5017 22.9768 14.9021 19.9736L19.9735 9.09787C21.374 6.09463 20.0746 2.52475 17.0714 1.12432ZM13.9347 17.3157L17.3157 10.0653L10.0652 6.6843L6.68427 13.9348L13.9347 17.3157ZM13.0895 19.1283L5.83903 15.7474C4.90541 17.7495 5.77163 20.1295 7.77379 21.0631C9.77595 21.9967 12.1559 21.1305 13.0895 19.1283ZM16.2262 2.93693C18.2283 3.87055 19.0945 6.25047 18.1609 8.25264L10.9104 4.87169C11.8441 2.86953 14.224 2.00331 16.2262 2.93693Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 502 B

After

Width:  |  Height:  |  Size: 502 B

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<path
style="fill:#ffffff;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-miterlimit:5;stroke-dasharray:none;paint-order:stroke fill markers"
d="m 5.5,5.5 13,13"
id="path2" />
<path
style="fill:#ffffff;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:5;stroke-dasharray:none;paint-order:stroke fill markers"
d="m 18.5,5.5 -13,13"
id="path3" />
</svg>

After

Width:  |  Height:  |  Size: 702 B

View File

Before

Width:  |  Height:  |  Size: 198 B

After

Width:  |  Height:  |  Size: 198 B

View File

Before

Width:  |  Height:  |  Size: 590 B

After

Width:  |  Height:  |  Size: 590 B

View File

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 817 B

View File

Before

Width:  |  Height:  |  Size: 433 B

After

Width:  |  Height:  |  Size: 433 B

View File

Before

Width:  |  Height:  |  Size: 583 B

After

Width:  |  Height:  |  Size: 583 B

View File

Before

Width:  |  Height:  |  Size: 592 B

After

Width:  |  Height:  |  Size: 592 B

View File

Before

Width:  |  Height:  |  Size: 662 B

After

Width:  |  Height:  |  Size: 662 B

View File

Before

Width:  |  Height:  |  Size: 418 B

After

Width:  |  Height:  |  Size: 418 B

View File

Before

Width:  |  Height:  |  Size: 429 B

After

Width:  |  Height:  |  Size: 429 B

View File

Before

Width:  |  Height:  |  Size: 558 B

After

Width:  |  Height:  |  Size: 558 B

View File

@@ -0,0 +1,28 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M12 9C10.3431 9 9 10.3431 9 12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12C15 10.3431 13.6569 9 12 9ZM11 12C11 12.5523 11.4477 13 12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12Z"
fill="currentColor"
/>
<path
d="M5 12C5 8.13401 8.13401 5 12 5V7C9.23858 7 7 9.23858 7 12H5Z"
fill="currentColor"
/>
<path
d="M12 17C14.7614 17 17 14.7614 17 12H19C19 15.866 15.866 19 12 19V17Z"
fill="currentColor"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1ZM3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 975 B

View File

Before

Width:  |  Height:  |  Size: 645 B

After

Width:  |  Height:  |  Size: 645 B

View File

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 408 B

View File

@@ -0,0 +1,16 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M15.6396 7.02527H12.0181V5.02527H19.0181V12.0253H17.0181V8.47528L12.1042 13.3892L10.6899 11.975L15.6396 7.02527Z"
fill="currentColor"
/>
<path
d="M10.9819 6.97473H4.98193V18.9747H16.9819V12.9747H14.9819V16.9747H6.98193V8.97473H10.9819V6.97473Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 414 B

View File

Before

Width:  |  Height:  |  Size: 825 B

After

Width:  |  Height:  |  Size: 825 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 893 B

After

Width:  |  Height:  |  Size: 893 B

View File

Before

Width:  |  Height:  |  Size: 398 B

After

Width:  |  Height:  |  Size: 398 B

View File

@@ -0,0 +1,12 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M8.12132 9.87868L10.2044 11.9617L10.2106 11.9555L11.6631 13.408L11.6693 13.4142L13.7907 15.5355C15.7433 17.4882 18.9091 17.4882 20.8617 15.5355C22.8144 13.5829 22.8144 10.4171 20.8617 8.46447C18.9091 6.51184 15.7433 6.51184 13.7907 8.46447L13.0773 9.17786L14.4915 10.5921L15.2049 9.87868C16.3764 8.70711 18.2759 8.70711 19.4475 9.87868C20.6191 11.0503 20.6191 12.9497 19.4475 14.1213C18.2759 15.2929 16.3764 15.2929 15.2049 14.1213L13.1326 12.0491L13.1263 12.0554L9.53553 8.46447C7.58291 6.51184 4.41709 6.51184 2.46447 8.46447C0.511845 10.4171 0.511845 13.5829 2.46447 15.5355C4.41709 17.4882 7.58291 17.4882 9.53553 15.5355L10.2488 14.8222L8.83463 13.408L8.12132 14.1213C6.94975 15.2929 5.05025 15.2929 3.87868 14.1213C2.70711 12.9497 2.70711 11.0503 3.87868 9.87868C5.05025 8.70711 6.94975 8.70711 8.12132 9.87868Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 976 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 303 B

After

Width:  |  Height:  |  Size: 303 B

View File

Before

Width:  |  Height:  |  Size: 646 B

After

Width:  |  Height:  |  Size: 646 B

View File

Before

Width:  |  Height:  |  Size: 662 B

After

Width:  |  Height:  |  Size: 662 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 475 B

After

Width:  |  Height:  |  Size: 475 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 278 B

After

Width:  |  Height:  |  Size: 278 B

View File

Before

Width:  |  Height:  |  Size: 960 B

After

Width:  |  Height:  |  Size: 960 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,26 @@
<svg
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M12 17C14.2091 17 16 15.2091 16 13H8C8 15.2091 9.79086 17 12 17Z"
fill="currentColor"
/>
<path
d="M10 10C10 10.5523 9.55228 11 9 11C8.44772 11 8 10.5523 8 10C8 9.44772 8.44772 9 9 9C9.55228 9 10 9.44772 10 10Z"
fill="currentColor"
/>
<path
d="M15 11C15.5523 11 16 10.5523 16 10C16 9.44772 15.5523 9 15 9C14.4477 9 14 9.44772 14 10C14 10.5523 14.4477 11 15 11Z"
fill="currentColor"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12Z"
fill="currentColor"
/>
</svg>

After

Width:  |  Height:  |  Size: 862 B

View File

Before

Width:  |  Height:  |  Size: 921 B

After

Width:  |  Height:  |  Size: 921 B

View File

Before

Width:  |  Height:  |  Size: 506 B

After

Width:  |  Height:  |  Size: 506 B

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="107.99999mm"
height="107mm"
viewBox="0 0 107.99999 107"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1" /><path
style="fill:#000000;fill-opacity:1;stroke-width:2;paint-order:markers fill stroke"
d="m 41,56 c 13.95488,0 12.979774,21 13.5,21 0.520226,0 -1.809839,-21 13.5,-21 15.52785,0 15.73119,24 0.74927,24 H 40 C 30.077332,80 28,72.125715 28,67 V 62 H 0 v 20 c 0,16.55565 14.36033,25 28,25 h 56 c 31.61709,0 33.1332,-56 -4,-56 H 67 C 53.233991,51 54.805794,30 54.5,30 54.194206,30 55.322182,51 40,51 24.71434,51 23.72026,27 40,27 h 28 c 9.689062,0 12,8.66804 12,13 v 5 h 28 V 25 C 108,13.95094 98.53853,0 84,0 65.07234,0 42.96042,1e-5 28,0 -9.64264,0 -8.81701,56 28,56 Z"
id="path3" /></svg>

After

Width:  |  Height:  |  Size: 952 B

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="107.99999mm"
height="107mm"
viewBox="0 0 107.99999 107"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1"><linearGradient
id="linearGradient1"><stop
style="stop-color:#f8fb44;stop-opacity:0.77336949;"
offset="0"
id="stop3" /><stop
style="stop-color:#1f21bb;stop-opacity:1;"
offset="0.4389132"
id="stop1" /><stop
style="stop-color:#19194e;stop-opacity:1;"
offset="0.81746566"
id="stop2" /></linearGradient><radialGradient
xlink:href="#linearGradient1"
id="radialGradient4"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.2109022,1.276465,-0.7273897,1.259876,-26.47338,-82.832478)"
cx="54"
cy="53.5"
fx="54"
fy="53.5"
r="54" /></defs><path
style="fill:url(#radialGradient4);fill-opacity:1;stroke-width:2;paint-order:markers fill stroke"
d="m 41,56 c 13.95488,0 12.979774,21 13.5,21 0.520226,0 -1.809839,-21 13.5,-21 15.52785,0 15.73119,24 0.74927,24 H 40 C 30.077332,80 28,72.125715 28,67 V 62 H 0 v 20 c 0,16.55565 14.36033,25 28,25 h 56 c 31.61709,0 33.1332,-56 -4,-56 H 67 C 53.233991,51 54.805794,30 54.5,30 54.194206,30 55.322182,51 40,51 24.71434,51 23.72026,27 40,27 h 28 c 9.689062,0 12,8.66804 12,13 v 5 h 28 V 25 C 108,13.95094 98.53853,0 84,0 65.07234,0 42.96042,1e-5 28,0 -9.64264,0 -8.81701,56 28,56 Z"
id="path3" /></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="108mm"
height="107mm"
viewBox="0 0 108 107"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1" /><path
style="fill:#000;fill-opacity:1;stroke-width:2;paint-order:markers fill stroke"
d="M 40,57.6 C 54,57.6 54.5,77 54.5,77 54.5,77 54,57.6 68,57.6 c 15.5,0 15.7,26.3 0.7,26.3 H 40 C 30.6,83.9 28,74.6 28,68.4 H 0 V 82 c 0,16.6 14.4,25 28,25 h 56 c 31.6,0 33.1,-57.6 -4,-57.6 H 68 C 54,49.4 54.5,30 54.5,30 54.5,30 54,49.4 40,49.4 24.7,49.4 23.7,23.1 40,23.1 h 28 c 8.5,0 12,9.8 12,15.5 h 28 V 25 C 108,14 98.5,0 84,0 65.1,0 43,0 28,0 -9.6,0 -8.8,57.6 28,57.6 Z"
id="path3" /></svg>

After

Width:  |  Height:  |  Size: 835 B

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="108mm"
height="107mm"
viewBox="0 0 108 107"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1"><linearGradient
id="linearGradient1"><stop
style="stop-color:#f8fb44;stop-opacity:0.77336949;"
offset="0"
id="stop3" /><stop
style="stop-color:#1f21bb;stop-opacity:1;"
offset="0.4389132"
id="stop1" /><stop
style="stop-color:#19194e;stop-opacity:1;"
offset="0.81746566"
id="stop2" /></linearGradient><radialGradient
xlink:href="#linearGradient1"
id="radialGradient4"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.2109022,1.276465,-0.7273897,1.259876,-26.47338,-82.832478)"
cx="54"
cy="53.5"
fx="54"
fy="53.5"
r="54" /></defs><path
style="fill:url(#radialGradient4);fill-opacity:1;stroke-width:2;paint-order:markers fill stroke"
d="M 40,57.599185 C 54.012705,57.599185 54.5,77 54.5,77 c 0,0 -0.491337,-19.400815 13.5,-19.400815 15.52785,0 15.73119,26.307196 0.74927,26.307196 H 40 c -9.438032,0 -12,-9.277368 -12,-15.538919 H 0 V 82 c 0,16.55565 14.36033,25 28,25 h 56 c 31.61709,0 33.1332,-57.599185 -4,-57.599185 H 68 C 54.009117,49.400815 54.5,30 54.5,30 c 0,0 -0.505517,19.400815 -14.5,19.400815 -15.28566,0 -16.27974,-26.307196 0,-26.307196 h 28 c 8.501613,0 12,9.799217 12,15.538919 h 28 V 25 C 108,13.95094 98.53853,0 84,0 65.07234,0 42.96042,1e-5 28,0 -9.64264,0 -8.81701,57.599185 28,57.599185 Z"
id="path3" /></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="108mm"
height="107mm"
viewBox="0 0 108 107"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1" /><path
style="fill:#fff;fill-opacity:1;stroke-width:2;paint-order:markers fill stroke"
d="M 40,57.6 C 54,57.6 54.5,77 54.5,77 54.5,77 54,57.6 68,57.6 c 15.5,0 15.7,26.3 0.7,26.3 H 40 C 30.6,83.9 28,74.6 28,68.4 H 0 V 82 c 0,16.6 14.4,25 28,25 h 56 c 31.6,0 33.1,-57.6 -4,-57.6 H 68 C 54,49.4 54.5,30 54.5,30 54.5,30 54,49.4 40,49.4 24.7,49.4 23.7,23.1 40,23.1 h 28 c 8.5,0 12,9.8 12,15.5 h 28 V 25 C 108,14 98.5,0 84,0 65.1,0 43,0 28,0 -9.6,0 -8.8,57.6 28,57.6 Z"
id="path3" /></svg>

After

Width:  |  Height:  |  Size: 835 B

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="107.99999mm"
height="107mm"
viewBox="0 0 107.99999 107"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1" /><path
style="fill:#ffffff;fill-opacity:1;stroke-width:2;paint-order:markers fill stroke"
d="m 41,56 c 13.95488,0 12.979774,21 13.5,21 0.520226,0 -1.809839,-21 13.5,-21 15.52785,0 15.73119,24 0.74927,24 H 40 C 30.077332,80 28,72.125715 28,67 V 62 H 0 v 20 c 0,16.55565 14.36033,25 28,25 h 56 c 31.61709,0 33.1332,-56 -4,-56 H 67 C 53.233991,51 54.805794,30 54.5,30 54.194206,30 55.322182,51 40,51 24.71434,51 23.72026,27 40,27 h 28 c 9.689062,0 12,8.66804 12,13 v 5 h 28 V 25 C 108,13.95094 98.53853,0 84,0 65.07234,0 42.96042,1e-5 28,0 -9.64264,0 -8.81701,56 28,56 Z"
id="path3" /></svg>

After

Width:  |  Height:  |  Size: 952 B

View File

Before

Width:  |  Height:  |  Size: 1018 B

After

Width:  |  Height:  |  Size: 1018 B

View File

Before

Width:  |  Height:  |  Size: 528 B

After

Width:  |  Height:  |  Size: 528 B

View File

Before

Width:  |  Height:  |  Size: 560 B

After

Width:  |  Height:  |  Size: 560 B

Some files were not shown because too many files have changed in this diff Show More