Init git.
This commit is contained in:
BIN
app/application/resources/site/images/favicons/favicon-120.png
Normal file
BIN
app/application/resources/site/images/favicons/favicon-120.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
BIN
app/application/resources/site/images/favicons/favicon-16.png
Normal file
BIN
app/application/resources/site/images/favicons/favicon-16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.5 KiB |
BIN
app/application/resources/site/images/favicons/favicon-32.png
Normal file
BIN
app/application/resources/site/images/favicons/favicon-32.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
BIN
app/application/resources/site/images/favicons/favicon-96.png
Normal file
BIN
app/application/resources/site/images/favicons/favicon-96.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
BIN
app/application/resources/site/images/logo.png
Normal file
BIN
app/application/resources/site/images/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.5 KiB |
8
app/application/resources/site/js/_menu.js
Normal file
8
app/application/resources/site/js/_menu.js
Normal file
@@ -0,0 +1,8 @@
|
||||
let body = document.querySelector('body');
|
||||
document.querySelector('#mobile-menu').addEventListener('click', (e) => {
|
||||
if (body.classList.contains('mobile-menu-open')) {
|
||||
body.classList.remove('mobile-menu-open');
|
||||
} else {
|
||||
body.classList.add('mobile-menu-open');
|
||||
}
|
||||
});
|
5
app/application/resources/site/js/app.js
Normal file
5
app/application/resources/site/js/app.js
Normal file
@@ -0,0 +1,5 @@
|
||||
import.meta.glob([
|
||||
'../images/**',
|
||||
]);
|
||||
import './bootstrap';
|
||||
import './_menu.js';
|
4
app/application/resources/site/js/bootstrap.js
vendored
Normal file
4
app/application/resources/site/js/bootstrap.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import axios from 'axios';
|
||||
window.axios = axios;
|
||||
|
||||
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
|
6
app/application/resources/site/scss/app.scss
Normal file
6
app/application/resources/site/scss/app.scss
Normal file
@@ -0,0 +1,6 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap');
|
||||
@import "reset";
|
||||
@import "layout";
|
||||
@import "forms";
|
||||
@import "header";
|
||||
@import "footer";
|
17
app/application/resources/site/scss/footer.scss
Normal file
17
app/application/resources/site/scss/footer.scss
Normal file
@@ -0,0 +1,17 @@
|
||||
.footer {
|
||||
padding-top: 25px;
|
||||
padding-bottom: 20px;
|
||||
|
||||
background: rgba(36,48,40,0.81);
|
||||
}
|
||||
.footer__powered {
|
||||
|
||||
a {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
87
app/application/resources/site/scss/forms.scss
Normal file
87
app/application/resources/site/scss/forms.scss
Normal file
@@ -0,0 +1,87 @@
|
||||
.form-block {
|
||||
padding: 10px 0;
|
||||
|
||||
label {
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
padding-bottom: 7px;
|
||||
color: #000;
|
||||
|
||||
span {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #f00;
|
||||
}
|
||||
}
|
||||
|
||||
.form-control {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 6px 12px;
|
||||
border-radius: 6px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.form-control.is-invalid {
|
||||
border-color: #dc3545;
|
||||
}
|
||||
|
||||
.form-control:focus,
|
||||
.form-control:focus-visible {
|
||||
outline: 2px solid #006ce7;
|
||||
}
|
||||
|
||||
.invalid-feedback {
|
||||
display: block;
|
||||
padding: 7px 10px;
|
||||
color: #dc3545;
|
||||
font-size: 14px;
|
||||
border: 1px solid #dc3545;
|
||||
border-radius: 6px;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.button {
|
||||
background: #006400;
|
||||
border: 1px solid #002452;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
padding: 12px 30px;
|
||||
color: #fff;
|
||||
transition: opacity 0.2s ease-out;
|
||||
}
|
||||
.button:hover {
|
||||
opacity: 0.8;
|
||||
border-color: #006ce7;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.captcha-service-kor-elf {
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.alert {
|
||||
border-radius: 6px;
|
||||
font-size: 16px;
|
||||
padding: 14px 24px;
|
||||
|
||||
ul {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
}
|
||||
}
|
||||
.alert.alert-success {
|
||||
border: 1px solid #0a6f4d;
|
||||
color: #0a6f4d;
|
||||
}
|
||||
.alert.alert-danger {
|
||||
border: 1px solid #dc3545;
|
||||
color: #dc3545;
|
||||
}
|
160
app/application/resources/site/scss/header.scss
Normal file
160
app/application/resources/site/scss/header.scss
Normal file
@@ -0,0 +1,160 @@
|
||||
.header {
|
||||
background: #006400;
|
||||
}
|
||||
.header__content {
|
||||
display: grid;
|
||||
grid-template-rows: 1fr;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-areas: "header-logo header-menu";
|
||||
min-height: 75px;
|
||||
}
|
||||
.header__logo {
|
||||
grid-area: header-logo;
|
||||
height: 50px;
|
||||
margin-top: 12px;
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
img {
|
||||
max-height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#mobile-menu {
|
||||
grid-area: header-menu;
|
||||
border: 0;
|
||||
background: none;
|
||||
color: #ffffff;
|
||||
margin-left: auto;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
z-index: 110;
|
||||
|
||||
.open {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.close {
|
||||
display: none;
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
body.mobile-menu-open {
|
||||
overflow: hidden;
|
||||
|
||||
#mobile-menu {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 15px;
|
||||
height: 67px;
|
||||
|
||||
.open {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.close {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
#menu {
|
||||
background: #4a6a47;
|
||||
display: block;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 100;
|
||||
color: #fff;
|
||||
overflow: auto;
|
||||
|
||||
.menu__profile__logout {
|
||||
color: #e19191;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
.menu__title {
|
||||
background: #006400;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
padding-top: 20px;
|
||||
padding-left: 15px;
|
||||
padding-bottom: 20px;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
}
|
||||
.header__right {
|
||||
display: none;
|
||||
}
|
||||
@media (min-width: 1000px) {
|
||||
.header__logo {
|
||||
margin-left: 20px;
|
||||
}
|
||||
.header__content {
|
||||
grid-template-areas: "header-logo header-right";
|
||||
}
|
||||
.header__right {
|
||||
display: block;
|
||||
grid-area: header-right;
|
||||
text-align: right;
|
||||
padding-top: 15px;
|
||||
}
|
||||
#mobile-menu {
|
||||
display: none;
|
||||
}
|
||||
.header__right__login {
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
border-radius: 5px;
|
||||
padding: 10px 20px;
|
||||
color: #fff;
|
||||
transition: background 0.2s ease-out;
|
||||
}
|
||||
.header__right__login:hover {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.header__right__logout {
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
background: rgba(143, 28, 28, 0.7);
|
||||
border-radius: 5px;
|
||||
padding: 10px 20px;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s ease-out;
|
||||
white-space: nowrap;
|
||||
border: 0;
|
||||
font-size: 14px;
|
||||
|
||||
svg {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
}
|
||||
.header__right__logout:hover {
|
||||
background: rgba(143, 28, 28, 0.3);
|
||||
}
|
||||
.header__right__profile {
|
||||
text-decoration: none;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.header__right__profile,
|
||||
.header__right__logout-form {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
126
app/application/resources/site/scss/layout.scss
Normal file
126
app/application/resources/site/scss/layout.scss
Normal file
@@ -0,0 +1,126 @@
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Roboto", sans-serif;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
background: #eee;
|
||||
height: 1px;
|
||||
border: 0;
|
||||
margin-top: 15px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
#main-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: none;
|
||||
|
||||
ul {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
|
||||
li {
|
||||
padding-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
display: block;
|
||||
text-decoration: none;
|
||||
font-size: 16px;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
color: #0a0e17;
|
||||
transition: opacity 0.2s ease-out;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
opacity: 0.65;
|
||||
}
|
||||
|
||||
a.active {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.menu__profile {
|
||||
padding-top: 0;
|
||||
padding-left: 0;
|
||||
border-bottom: 1px solid rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.menu__profile__logout {
|
||||
color: rgba(143, 28, 28, 100);
|
||||
cursor: pointer;
|
||||
border: 0;
|
||||
background: none;
|
||||
transition: color 0.2s ease-out;
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 10px;
|
||||
padding-left: 0;
|
||||
}
|
||||
.menu__profile__logout:hover {
|
||||
color: rgba(143, 28, 28, 0.65);
|
||||
}
|
||||
}
|
||||
|
||||
.container-width {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
.section-content {
|
||||
h1 {
|
||||
font-size: 27px;
|
||||
font-weight: bold;
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 10px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1000px) {
|
||||
.container-width {
|
||||
max-width: 1200px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
}
|
||||
.section-content {
|
||||
display: grid;
|
||||
grid-template-rows: 1fr;
|
||||
grid-template-columns: 200px 1fr;
|
||||
grid-template-areas: "section-menu section-content";
|
||||
}
|
||||
#menu {
|
||||
background: none;
|
||||
grid-area: section-menu;
|
||||
display: block;
|
||||
padding-right: 20px;
|
||||
padding-top: 14px;
|
||||
|
||||
ul {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
.menu__title {
|
||||
display: none;
|
||||
}
|
||||
#content {
|
||||
grid-area: section-content;
|
||||
}
|
||||
}
|
73
app/application/resources/site/scss/reset.scss
Normal file
73
app/application/resources/site/scss/reset.scss
Normal file
@@ -0,0 +1,73 @@
|
||||
/* Box sizing rules */
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* Prevent font size inflation */
|
||||
html {
|
||||
-moz-text-size-adjust: none;
|
||||
-webkit-text-size-adjust: none;
|
||||
text-size-adjust: none;
|
||||
}
|
||||
|
||||
/* Remove default margin in favour of better control in authored CSS */
|
||||
body, h1, h2, h3, h4, p,
|
||||
figure, blockquote, dl, dd {
|
||||
margin-block-end: 0;
|
||||
}
|
||||
|
||||
/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
|
||||
ul[role='list'],
|
||||
ol[role='list'] {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
/* Set core body defaults */
|
||||
body {
|
||||
min-height: 100vh;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
/* Set shorter line heights on headings and interactive elements */
|
||||
h1, h2, h3, h4,
|
||||
button, input, label {
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
/* Balance text wrapping on headings */
|
||||
h1, h2,
|
||||
h3, h4 {
|
||||
text-wrap: balance;
|
||||
}
|
||||
|
||||
/* A elements that don't have a class get default styles */
|
||||
a:not([class]) {
|
||||
text-decoration-skip-ink: auto;
|
||||
color: currentColor;
|
||||
}
|
||||
|
||||
/* Make images easier to work with */
|
||||
img,
|
||||
picture {
|
||||
max-width: 100%;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Inherit fonts for inputs and buttons */
|
||||
input, button,
|
||||
textarea, select {
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
/* Make sure textareas without a rows attribute are not tiny */
|
||||
textarea:not([rows]) {
|
||||
min-height: 10em;
|
||||
}
|
||||
|
||||
/* Anything that has been anchored to should have extra scroll margin */
|
||||
:target {
|
||||
scroll-margin-block: 5ex;
|
||||
}
|
Reference in New Issue
Block a user