add webpack, decompose, add template for popups
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/node_modules
|
||||
41
index.html
@@ -1,41 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<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" />
|
||||
</div>
|
||||
</div>
|
||||
<!--//- Menu-->
|
||||
<div class="mc-menu">
|
||||
<div class="mc-button full">
|
||||
<div class="title">Singleplayer</div>
|
||||
</div>
|
||||
<div class="mc-button full">
|
||||
<div class="title">Multiplayer</div>
|
||||
</div>
|
||||
<div class="mc-button full">
|
||||
<div class="title">Minecraft Realms</div>
|
||||
</div>
|
||||
<div class="double">
|
||||
<div class="mc-button full">
|
||||
<div class="title">Options</div>
|
||||
</div>
|
||||
<div class="mc-button full">
|
||||
<div class="title">Quit Game</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mc-button full lang">
|
||||
<a href="https://craft.cirnovarenie.com/map/">
|
||||
<div class="title"><img src="p/lang.png" alt=" Lang"></div>
|
||||
<!-- <div class="title"><img src="https://i.ibb.co/99187Lk/lang.png" alt=" Lang"></div> -->
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
0
src/blocks/buttons.css
Normal file
349
src/blocks/normalize.css
vendored
Normal file
@@ -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
src/blocks/root.css
Normal file
1
src/blocks/styleComposer.css
Normal file
@@ -0,0 +1 @@
|
||||
@import url(normalize.css);
|
||||
|
Before Width: | Height: | Size: 3.2 MiB After Width: | Height: | Size: 3.2 MiB |
|
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 |
BIN
src/img/popup__button_close.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
59
src/index.html
Normal file
@@ -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>
|
||||
55
src/index.js
Normal file
@@ -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')
|
||||
}
|
||||
50
webpack.config.js
Normal file
@@ -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()
|
||||
]
|
||||
}
|
||||