Compare commits

..

2 Commits
main ... step_1

  1. 1
      .gitignore
  2. 5
      .idea/.gitignore
  3. 12
      .idea/craft_site.iml
  4. 8
      .idea/modules.xml
  5. 6
      .idea/vcs.xml
  6. 1
      fonts/COPYRIGHT.txt
  7. BIN
      fonts/Minecraftia-Regular.ttf
  8. 7
      fonts/readme.txt
  9. 44
      index.html
  10. 4
      install.sh
  11. 54
      nether/conf.ini
  12. 237
      nether/lang.ini
  13. 1
      nether/textolite.css
  14. 1
      nether/textolite.js
  15. 1
      nether/textolite.php
  16. 5062
      package-lock.json
  17. 25
      package.json
  18. 0
      src/blocks/buttons.css
  19. 349
      src/blocks/normalize.css
  20. 0
      src/blocks/root.css
  21. 1
      src/blocks/styleComposer.css
  22. 0
      src/img/background.gif
  23. BIN
      src/img/background__dirt.jpg
  24. 0
      src/img/button.png
  25. 0
      src/img/lang.png
  26. 0
      src/img/logo.png
  27. BIN
      src/img/popup__button_close.png
  28. 59
      src/index.html
  29. 55
      src/index.js
  30. 307
      src/style.css
  31. 133
      style.css
  32. 50
      webpack.config.js

1
.gitignore vendored

@ -0,0 +1 @@
/node_modules

5
.idea/.gitignore vendored

@ -0,0 +1,5 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/craft_site.iml" filepath="$PROJECT_DIR$/.idea/craft_site.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -1 +0,0 @@
Copyright Andrew Tyler 2014

Binary file not shown.

@ -1,7 +0,0 @@
The font file in this archive was created by Andrew Tyler www.AndrewTyler.net and font@andrewtyler.net
Use at 12 or 24 px size with anti-alising off for best results.

@ -1,44 +0,0 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<title>FumoCraft</title>
<link rel="stylesheet" href="style.css">
</head>
<body translate="no">
<div id="header">
<div class="logo1">
<img src="p/logo1.png" width="702" height="84" alt="FumoCraft">
</div>
</div>
<!--//- Menu-->
<div class="mc-menu">
<div class="mc-button full">
<div class="title">Новости</div>
</div>
<div class="mc-button full">
<div class="title">WIKI</div>
</div>
<div class="mc-button full">
<div class="title" onclick="window.open('http://discord.gg/z2TC5TE'); return false;">Discord сервер</div>
</div>
<div class="double">
<div class="mc-button full">
<div class="title" onclick="window.open('https://minecraftrating.ru/server/fumocraft/'); return false;">Мониторинг</div>
</div>
<div class="mc-button full">
<div class="title">О сервере</div>
</div>
</div>
<div class="mc-button full lang">
<div class="title" onclick="window.open('https://craft.cirnovarenie.com/map/'); return false;"><img src="p/lang.png" alt=" Lang"></div>
</div>
</div>
</body>
<footer>
<p>© 2024 Cirno</p>
</footer>
</html>

@ -1,4 +0,0 @@
#!/bin/sh
cd /srv/www/
chown -R nginx: craft/

@ -1,54 +0,0 @@
lang = en,ru
password = 7869793fdc0363798c43631c3ba77958a518fe3b
session =
pass_complexity = 500000
pass_complexity_js = 14999
auth_time = 1709935551
auth_error_time =
auth_error_list =
auth_error_limit = 5
auth_lockout_duration = 1
auth_session_reset = 60
auth_bot_filter = 1
logout_to_site = 0
site_scripts = 1
site_styles = 1
code_redraw_delay = 200
code_undo_limit = 50
code_highlighting = 1
allowed_ext =
visual_ext = html,htm,shtml,shtm,stm,php
editable_ext = html,htm,shtml,shtm,stm,php,css,js,xml,txt
default_file = index.html
folder_size = 1
document_root =
update_final = 1
update_beta = 0
cache =

@ -1,237 +0,0 @@
[ru]
404 = "Страница не найдена"
307 = "Временное перенаправление"
403 = "Доступ запрещен"
auth = "Авторизация"
login = "Войти"
password = "Пароль"
show_password = "Показать пароль"
hide_password = "Скрыть пароль"
files = "Файлы"
settings = "Настройки"
logout = "Выход"
save = "Сохранить"
not_save = "Не сохранять"
file_name = "Имя"
file_size = "Размер"
file_changed = "Изменён"
file_menu = "Меню"
add_file = "Добавить файл"
delete_file = "Удалить файл"
deletion_confirm = "Подтверждение удаления"
deletion_cancel = "Отменить удаление"
request_rejected = "Запрос отклонён"
request_blocked = "Настройки сервера блокируют запрос"
no_response = "Сервер не отвечает"
old_browser = "Нужен новый браузер"
requires_javascript = "Нужен JavaScript"
not_writable = "Нет прав на запись в файл"
document_root_error = "Проблема с DOCUMENT_ROOT"
no_frames = "Не работает iframe"
password_hashing = "Создание хеша"
password_checking = "Проверка пароля"
access_granted = "Доступ разрешен"
access_denied = "Доступ запрещен"
saving = "Сохранение"
saved = "Изменения сохранены"
not_saved = "Изменения не сохранены"
reset_session = "Сброс сессии"
access_closed = "Доступ закрыт"
login_again = "Войти снова"
uploading = "Загрузка файлов"
uploading_complete = "Загрузка файлов завершена"
uploading_error = "Сбой в загрузке файлов"
extension_error = "Файл имеет недопустимое расширение"
count_limit = "Лимит сервера на количество файлов за раз"
size_limit = "Лимит сервера на размер файла"
file_deletion = "Удаление файла"
file_deleted = "Файл успешно удалён"
deletion_error = "Сбой в удалении файла"
unknown_relation = "Элемент имеет неизвестные зависимости"
element_busy = "Элемент используется скриптами"
disable_script = "Отключить скрипты сайта"
disable = "отключить"
disabling_scripts = "Отключение скриптов сайта"
scripts_disabled = "Скрипты сайта отключены"
new_version = "Доступна новая версия"
need_update = "Необходимо установить новую версию"
install = "установить"
not_install = "Не устанавливать"
download_installer = "Загрузка установочных файлов"
system_update = "Обновление системных файлов"
update_error = "Не удалось перезаписать системные файлы"
install_complete = "Установка завершена"
no_connect = "Нет соединения с сервером"
attachment_domain = "Привязка кода активации к домену"
attachment_notice = "Процедура привязки необратима, изменить домен в будущем будет невозможно. Убедитесь, что система установлена на правильном домене и подтвердите свои действия."
attach = "Привязать"
cancel = "Отмена"
new_password = "Новый пароль"
login_attempts = "Попыток авторизации с неверным паролем"
lockout_duration = "Длительность блокировки в часах"
session_autoreset = "Завершение сессии после бездействия в минутах"
redirect_to_site = "Перенаправлять на сайт после выхода из системы"
source_editor = "Редактор исходного кода"
visual_editor = "Визуальный редактор"
file_manager = "Файловый менеджер"
enable_scripts = "Включить скрипты сайта во время редактирования"
enable_styles = "Включить стили сайта во время редактирования"
redraw_delay = "Обновлять код после бездействия в миллисекундах"
steps_for_undo = "Количество шагов для отката изменений через Ctrl+Z"
enable_highlighting = "Включить подсветку синтаксиса и нумерацию строк"
display_catalog_size = "Отображать размер каталогов в файловом менеджере"
main_page_or_file = "Главная страница или файл сайта"
new_version_notify = "Сообщать о появлении новых версий системы"
beta_version_notify = "Сообщать о появлении новых бета-версий системы"
restore_settings="Восстановить настройки по умолчанию"
language = "Язык интерфейса"
standard = "Стандартная версия"
extended = "Расширенная версия"
activate = "Код активации"
system = "Система"
auth_error_limit_desc = "Ограничивает максимально допустимое количество ошибок при введении пароля. Если количество ошибок с одного IP-адреса превышает это значение, пользователь блокируется на период, который можно настроить в следующем параметре."
auth_lockout_duration_desc = "Отвечает за длительность блокировки пользователей, превысивших максимально допустимое количество ошибок при введении пароля. После истечения указанного периода пользователь получает одну дополнительную попытку авторизации."
auth_session_reset_desc = "Ограничивает время жизни сессии после потери системой возможности поддерживать соединение с сервером."
logout_to_site_desc = "В случае включения выход из системы будет сопровождаться перенаправлением пользователя на сайт по адресу последней редактируемой страницы или файла."
site_scripts_desc = "Скрипты сайта могут мешать редактированию некоторых элементов в визуальном редакторе. Отключение скриптов может сделать такие элементы доступными для визуального редактирования."
site_styles_desc = "Стили сайта могут мешать редактированию некоторых элементов в визуальном редакторе. Отключение стилей может помочь добраться до таких элементов в визуальном редакторе."
code_redraw_delay_desc = "Когда пользователь вводит новый код в редакторе исходного кода, система ждет паузу в процессе ввода, чтобы проверить и оформить новый код. Данный параметр определяет, какой должна быть пауза, чтобы система могла начать переоформление. Чем меньше его значение, тем чаще будет переоформляться новый код в процессе ввода. Увеличение значения может заметно снизить нагрузку на браузер."
code_undo_limit_desc = "Определяет максимальную глубину отката изменений в редакторе исходного кода через Ctrl+Z."
folder_size_desc = "Получение данных о размере каталогов может замедлять работу файлового менеджера на больших сайтах со сложными структурами. На таких сайтах можно отключить отображение размера каталогов."
code_highlighting_desc = "Подсветка синтаксиса и нумерация строк облегчает редактирование кода. Отключение может заметно снизить нагрузку на браузер."
default_file_desc = "Значение должно содержать имя реально существующего в корне сайта файла. Система будет открывать в редакторе этот файл в качестве главной страницы сайта, а также во всех случаях, когда файл для редактирования не выбран или не может быть открыт"
ru = "Русский"
en = "Английский"
[en]
404 = "Page not found"
307 = "Temporary redirect"
403 = "Forbidden"
auth = "Authorization"
login = "Log in"
password = "Password"
show_password = "Show password"
hide_password = "Hide password"
files = "Files"
settings = "Settings"
logout = "Logout"
save = "Save"
not_save = "Do not save"
file_name = "Name"
file_size = "Size"
file_changed = "Changed"
file_menu = "Menu"
add_file = "Add file"
delete_file = "Delete file"
deletion_confirm = "Confirm"
deletion_cancel = "Cancel"
request_rejected = "The request was rejected"
request_blocked = "Server settings blocked the request"
no_response = "Server is not responding"
old_browser = "Requires a newer browser"
requires_javascript = "Requires JavaScript"
not_writable = "No permissions to write to file"
document_root_error = "The problem with DOCUMENT_ROOT"
no_frames = "Iframe is not working"
password_hashing = "Password hashing"
password_checking = "Password checking"
access_granted = "Access granted"
access_denied = "Access denied"
saving = "Saving"
saved = "The changes have been saved"
not_saved = "The changes are not saved"
reset_session = "Reset session"
access_closed = "Access is closed"
login_again = "Login again"
uploading = "Uploading files"
uploading_complete = "Files uploaded"
uploading_error = "Failure in file uploading"
extension_error = "Forbidden extension"
count_limit = "Number of files exceeds server limit"
size_limit = "File size exceeds server limit"
file_deletion = "File deletion"
file_deleted = "File is deleted"
deletion_error = "Failure in file deletion"
unknown_relation = "The element has unknown relations"
element_busy = "The element is used by scripts"
disable_script = "Disable website scripts"
disable = "disable"
disabling_scripts = "Disabling website scripts"
scripts_disabled = "Website scripts is disabled"
new_version = "A new version is available"
need_update = "Requires a newer version"
install = "install"
not_install = "Do not install"
download_installer = "Download installation files"
system_update = "System files update"
update_error = "Unable to overwrite system files"
install_complete = "Installation complete"
no_connect = "Could not connect to server"
attachment_domain = "Attachment of an activation code to the domain name"
attachment_notice = "The procedure of an attachment is irreversible, changing the domain name in the future will be impossible. Make sure that the system is installed on the correct domain name and confirm your actions."
attach = "Attach"
cancel = "Cancel"
new_password = "New password"
login_attempts = "Login attempts with an incorrect password"
lockout_duration = "Lockout duration in hours"
session_autoreset = "Completion of session after inaction in minutes"
redirect_to_site = "Redirect to website after logout"
source_editor = "Source editor"
visual_editor = "Visual editor"
file_manager = "File manager"
enable_scripts = "Enable website scripts during editing"
enable_styles = "Enable website styles during editing"
redraw_delay = "Redraw a code after inactivity in milliseconds"
steps_for_undo = "Quantity of steps for rollback of changes through Ctrl+Z"
enable_highlighting = "Enable syntax highlighting and line numbering"
display_catalog_size = "Display the size of catalogs in the file manager"
main_page_or_file = "Main page or file of website"
new_version_notify = "Notify when new versions are available"
beta_version_notify = "Notify when new beta versions are available"
restore_settings="Restore the default settings"
language = "Interface language"
standard = "Standard version"
extended = "Extended version"
activate = "Activation code"
system = "System"
auth_error_limit_desc = "Login attempts with an incorrect password"
auth_lockout_duration_desc = "Lockout duration in hours"
auth_session_reset_desc = "Completion of session after inaction in minutes"
logout_to_site_desc = "Redirect to website after logout"
site_scripts_desc = "Enable website scripts during editing"
site_styles_desc = "Enable website styles during editing"
code_redraw_delay_desc = "Redraw a code after inactivity in milliseconds"
code_undo_limit_desc = "Quantity of steps for rollback of changes through Ctrl+Z"
code_highlighting_desc = "Enable syntax highlighting and line numbering"
folder_size_desc = "Display the size of catalogs in the file manager"
default_file_desc = "Main page or file of website"
ru = "Russian"
en = "English"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

5062
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -0,0 +1,25 @@
{
"name": "craft_site",
"version": "1.0.0",
"description": "",
"main": "src/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack --mode production",
"dev": "webpack serve --mode development"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"clean-webpack-plugin": "^4.0.0",
"css-loader": "^6.10.0",
"html-loader": "^5.0.0",
"html-webpack-plugin": "^5.6.0",
"mini-css-extract-plugin": "^2.8.1",
"style-loader": "^3.3.4",
"webpack": "^5.90.3",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^5.0.4"
}
}

@ -0,0 +1,349 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on img inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}

@ -0,0 +1 @@
@import url(normalize.css);

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 321 B

After

Width:  |  Height:  |  Size: 321 B

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -0,0 +1,59 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>FumoCraft</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body translate="no">
<div class="page">
<header class="header" id="header">
<div class="logo">
<img class="logo__img" src="img/logo.png"/>
</div>
</header>
<nav class="menu">
<a class="button full">
<button id="menuSinglePlayer" datatype="popupSinglePlayer" class="title">Singleplayer</button>
</a>
<a class="button full">
<button class="title">Multiplayer</button>
</a>
<a class="button full">
<button class="title">Minecraft Realms</button>
</a>
<div class="menu__wrapper">
<a class="button full lang" href="https://craft.cirnovarenie.com/map/">
<div class=" title"><img src="img/lang.png" alt=" Lang"></div>
</a>
<a class="button full">
<button class="title">Options</button>
</a>
<a class="button full">
<button class="title">Quit Game</button>
</a>
</div>
</nav>
<div class="overlay hidden">
<div class="popup hidden" id="popupSinglePlayer">
<div class="popup-inner">
<div class="popup__content">
<div class="popup__background_dirt"></div>
<div class = "popup__text">singleplayersingleplayersingleplay ersingleplayers ingleplayersingleplayersingleplayersing leplayersingleplayersi ngleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersin gleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayersingleplayer</div>
</div>
</div>
<button class="popup__close"></button>
</div>
<!-- <div class="popup" id="multiplayer">-->
<!-- multiplayer-->
<!-- </div>-->
<!-- <div class="popup" id="realms">-->
<!-- realms-->
<!-- </div>-->
<!-- <div class="popup" id="options">-->
<!-- options-->
<!-- </div>-->
</div>
</div>
</body>

@ -0,0 +1,55 @@
import './style.css';
import './blocks/normalize.css';
const closePopupButtonSelector = '.popup__close';
const overlayPopupSelector = '.overlay';
const popupIDs = {
singleplayer: '#popupSinglePlayer',
multiplayer: '#multiplayer',
realms: '#realms',
options: '#options'
}
const buttonsIDs = {
singleplayer: '#menuSinglePlayer',
multiplayer: '#multiplayer',
realms: '#realms',
options: '#options'
}
document.addEventListener("DOMContentLoaded", () => {
setCloseClickListiner(popupIDs, clickCloseHandler)
setClickListiner(buttonsIDs, clickShowHandler)
});
function setClickListiner(ids, func) {
for (const id in ids) {
document.querySelector(ids[id])?.addEventListener('click', func)
}
}
function setCloseClickListiner(ids, func) {
for (const id in ids) {
document.querySelector(`${ids[id]} ${closePopupButtonSelector}`)?.addEventListener('click', func)
}
}
function clickCloseHandler(event) {
const {target} = event
const popupContainer = target.parentElement
const overlay = document.querySelector(overlayPopupSelector)
popupContainer.classList.toggle('hidden')
overlay.classList.toggle('hidden')
}
function clickShowHandler(event) {
const {target} = event
const popupId = target.attributes.datatype.value
const popupContainer = document.querySelector(`#${popupId}`)
const overlay = document.querySelector(overlayPopupSelector)
popupContainer.classList.toggle('hidden')
overlay.classList.toggle('hidden')
}

File diff suppressed because one or more lines are too long

@ -1,133 +0,0 @@
/* /////////////////////////////////////////////////////////////////// */
*, ::before, ::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
@font-face {
font-family: "Minecraftia";
src: url("../fonts/Minecraftia-Regular.ttf") format("truetype");
font-style: normal;
font-weight: normal;
}
/* /////////////////////////////////////////////////////////////////// */
html {
font: 18px "Minecraftia", Regular;
}
body {
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-color: #fff;
/** background-image: url("https://i.ibb.co/bH3JY30/IE1G7Lr.png"); **/
background-image: url(../p/background.gif);
backdrop-filter: blur(3px);
background-size: cover;
background-position: center;
position: relative;
}
.logo1 {
display: grid;
margin-left: auto;
margin-right: auto;
margin-bottom: 10%;
}
/* Minecraft Style Menu */
.mc-menu {
--btn-size: 30pt;
display: grid;
grid-template-columns: var(--btn-size) calc(var(--btn-size) * 10) var(--btn-size);
grid-template-rows: repeat(3, var(--btn-size)) 16px var(--btn-size);
grid-template-areas: ". first ." ". second ." ". third ." ". . ." "lang fourth .";
grid-gap: 8px;
}
.mc-menu .mc-button:nth-child(1) {
grid-area: first;
}
.mc-menu .mc-button:nth-child(2) {
grid-area: second;
}
.mc-menu .mc-button:nth-child(3) {
grid-area: third;
}
.mc-menu .double {
grid-area: fourth;
}
.mc-menu .double .mc-button:nth-child(1) {
grid-area: left;
}
.mc-menu .double .mc-button:nth-child(2) {
grid-area: right;
}
.mc-menu .mc-button:nth-child(5) {
grid-area: lang;
}
.mc-menu .double {
width: 100%;
height: 100%;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr;
grid-template-areas: "left right";
grid-gap: 8px;
}
/* Minecraft Style Button */
.mc-button {
height: var(--btn-size);
width: calc(var(--btn-size) * 10);
cursor: pointer;
overflow: hidden;
white-space: nowrap;
user-select: none;
/** background: #999 url("https://i.ibb.co/rb2TWXL/bgbtn.png") center/cover; **/
background: #999 url(../p/mc-button.png);
image-rendering: pixelated;
border: 2px solid #000;
/* Mouse over */
/* Button title */
/* Others */
}
.mc-button:hover .title {
background-color: rgba(100, 100, 255, 0.45);
text-shadow: 2px 2px #202013CC;
color: #FFFFA0;
}
.mc-button:active .title {
box-shadow: inset -2px -4px #0004, inset 2px 2px #FFF5;
}
.mc-button .title {
width: 100%;
height: 100%;
padding-bottom: 0px;
display: flex;
justify-content: center;
align-items: center;
color: #DDD;
text-shadow: 2px 2px #000A;
box-shadow: inset -2px -4px #0006, inset 2px 2px #FFF7;
}
.mc-button.full {
width: 100%;
height: 100%;
}
.mc-button.lang img {
width: 26px;
height: 26px;
}
.mc-button.lang .title {
padding-bottom: 0;
}
footer {
position: absolute;
bottom: 0;
text-align: center;
}

@ -0,0 +1,50 @@
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin') // Импортируем плагин
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const {CleanWebpackPlugin} = require('clean-webpack-plugin')
module.exports = {
mode: 'development', // Режим сборки ('development' или 'production')
entry: './src/index.js', // Точка входа (исходный файл)
output: {
path: path.resolve(__dirname, 'dist'), // Папка для собранных файлов
filename: 'bundle.js', // Имя собранного файла,
clean: true
},
devServer: {
compress: true,
port: 8081,
open: true
},
module: {
rules: [
{
// регулярное выражение, которое ищет все файлы с такими расширениями
test: /\.(png|svg|jpg|gif|woff(2)?|eot|ttf|otf)$/,
type: 'asset/resource'
},
{
// применять это правило только к CSS-файлам
test: /\.css$/,
// при обработке этих файлов нужно использовать
// MiniCssExtractPlugin.loader и css-loader
use: [MiniCssExtractPlugin.loader, {
loader: 'css-loader'
}]
},
{
test: /\.html$/,
loader: 'html-loader'
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html' // Путь к шаблону HTML
}),
new MiniCssExtractPlugin({
filename: '[name].css' // Настройка имени выходного файла CSS
}),
new CleanWebpackPlugin()
]
}
Loading…
Cancel
Save