diff --git a/src/assets/css/creation.css b/src/assets/css/creation.css
index 07ffcf0..6fae9ea 100644
--- a/src/assets/css/creation.css
+++ b/src/assets/css/creation.css
@@ -31,6 +31,7 @@ body {
height: 100%;
background-color: var(--body-color);
color: var(--text-color);
+ padding: 0 64px;
}
html {
@@ -50,7 +51,7 @@ html {
max-width: 100%;
width: max-content;
display: flex;
- margin: 44px 0 56px;
+ margin: auto;
}
.matrix {
@@ -158,6 +159,7 @@ html {
text-align: center;
font-family: "Formular";
}
+
.number input[type="number"]::-webkit-outer-spin-button,
.number input[type="number"]::-webkit-inner-spin-button {
display: none;
@@ -221,4 +223,4 @@ html {
.disabled-button {
opacity: 0.2;
cursor: auto;
-}
+}
\ No newline at end of file
diff --git a/src/assets/css/graph.css b/src/assets/css/graph.css
index e42e218..4a240b8 100644
--- a/src/assets/css/graph.css
+++ b/src/assets/css/graph.css
@@ -1,5 +1,3 @@
-@charset "UTF-8";
-
:root {
--main-color: rgb(97 196 189);
--complement-color: rgb(46 105 120);
@@ -15,7 +13,7 @@
background-color: var(--body-color);
}
-body > #app {
+body>#app {
margin: 0;
font-family: "Formular";
height: 100%;
@@ -31,6 +29,7 @@ html {
.wrapper {
display: flex;
flex: 1;
+ padding: 0;
padding-right: 32px;
padding-left: 32px;
flex-direction: column;
@@ -43,6 +42,7 @@ html {
flex-direction: column;
align-items: center;
justify-content: center;
+ position: relative;
}
.graph-cont,
@@ -52,16 +52,17 @@ html {
header {
width: 100%;
- padding: 48px 0;
+ height: 60px;
+ margin: 48px 0 24px;
display: flex;
- justify-content: space-between;
+ justify-content: center;
+ position: relative;
}
.header-step-cont {
display: flex;
flex-direction: column;
align-items: center;
- margin-left: 48px;
}
.header-step-description {
@@ -80,33 +81,35 @@ header {
width: 48px;
height: 20px;
margin: 0 12px;
- background-image: url("~@/assets/icons/vector.svg");
+ background-image: url(~@/assets/icons/vector.svg);
}
.control-cont {
- padding: 48px 0;
+ padding: 36px 0 48px;
display: flex;
justify-content: center;
align-items: center;
}
-.menu-cont {
- padding: 48px 64px;
+.addition-cont {
+ padding: 48px 0;
+ width: -webkit-max-content;
+ width: -moz-max-content;
width: max-content;
- overflow-y: auto;
display: flex;
+ width: 34px;
+ overflow-y: auto;
}
-.menu-cont__left {
- padding-right: 0;
-}
-
-.menu-cont__right {
- padding-left: 0;
+.menu {
+ overflow-y: visible;
}
.step-cont,
-.btn-cont {
+.btn-cont,
+.menu-cont {
+ height: -webkit-max-content;
+ height: -moz-max-content;
height: max-content;
margin: auto;
}
@@ -130,15 +133,6 @@ header {
margin-bottom: 0;
}
-.header-close-button {
- width: 32px;
- height: 32px;
- cursor: pointer;
- transition: opacity 0.2s;
- opacity: 0.4;
- background-image: url("~@/assets/icons/close.svg");
-}
-
.step::after {
content: "";
position: absolute;
@@ -168,15 +162,29 @@ header {
}
.dynamic-active-step::after {
+ -webkit-animation-name: next;
animation-name: next;
+ -webkit-animation-duration: 4s;
animation-duration: 4s;
+ -webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
+@-webkit-keyframes next {
+ from {
+ background: #c1c1c1;
+ }
+
+ to {
+ background: #ff5c8e;
+ }
+}
+
@keyframes next {
from {
background: #c1c1c1;
}
+
to {
background: #ff5c8e;
}
@@ -194,6 +202,7 @@ header {
cursor: pointer;
transition: 0.2s;
opacity: 0.6;
+ position: relative;
}
.main-control-button {
@@ -202,19 +211,19 @@ header {
}
#previous-step {
- background-image: url("~@/assets/icons/previous-step.svg");
+ background-image: url(~@/assets/icons/previous-step.svg);
}
#next-step {
- background-image: url("~@/assets/icons/next-step.svg");
+ background-image: url(~@/assets/icons/next-step.svg);
}
#play {
- background-image: url("~@/assets/icons/play.svg");
+ background-image: url(~@/assets/icons/play.svg);
}
#pause {
- background-image: url("~@/assets/icons/pause.svg");
+ background-image: url(~@/assets/icons/pause.svg);
}
.control-button:hover {
@@ -225,3 +234,274 @@ header {
opacity: 0.1;
cursor: auto;
}
+
+.empty-graph-cont {
+ position: absolute;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ z-index: 0;
+ color: gray;
+}
+
+.render-area {
+ z-index: 1;
+}
+
+.inaccessible {
+ opacity: 0;
+}
+
+.adjacency_matrix-cont {
+ position: absolute;
+ background-color: #f3f3f3;
+ width: 100%;
+ height: 100%;
+ overflow-y: auto;
+ top: 0;
+ left: 0;
+ z-index: 4;
+ display: flex;
+ justify-content: center;
+}
+
+.adjacency_matrix {
+ padding: 48px 64px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ height: -webkit-max-content;
+ height: -moz-max-content;
+ height: max-content;
+}
+
+.menu-icon {
+ background-size: contain;
+ background-position: center;
+ background-repeat: no-repeat;
+ width: 32px;
+ height: 32px;
+ margin-bottom: 20px;
+ cursor: pointer;
+ position: relative;
+}
+
+.menu-icon:hover {
+ opacity: 1;
+}
+
+.matrix-icon {
+ background-image: url(~@/assets/icons/matrix.svg);
+}
+
+.info-icon {
+ background-image: url(~@/assets/icons/info.svg);
+}
+
+.help-icon {
+ background-image: url(~@/assets/icons/help.svg);
+}
+
+.close-icon {
+ background-image: url(~@/assets/icons/close.svg);
+ width: 20px;
+ height: 20px;
+ opacity: 0.6;
+ transition: .2s;
+}
+
+.menu-icon:last-child {
+ margin-bottom: 0;
+}
+
+.adjacency_matrix-menu {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 52px;
+}
+
+.header {
+ font-size: 18px;
+ font-weight: 700;
+ margin-right: 36px;
+}
+
+.header-matrix {
+ margin-right: 12px;
+}
+
+.popup-cont {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ z-index: 10;
+ box-sizing: border-box;
+ overflow-y: auto;
+ display: flex;
+ padding: 48px 64px;
+ background: rgb(0 0 0 / 60%);
+}
+
+.popup-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.version {
+ color: gray;
+ font-size: 12px;
+ font-weight: 300;
+ margin-left: 4px;
+}
+
+.popup {
+ margin: auto;
+ padding: 32px 28px;
+ background: white;
+ border-radius: 6px;
+ height: -webkit-max-content;
+ height: -moz-max-content;
+ height: max-content;
+ width: 480px;
+}
+
+.popup-text {
+ font-size: 14px;
+ line-height: 20px;
+}
+
+.popup-el {
+ margin-bottom: 20px;
+}
+
+p {
+ margin: 0;
+ margin-bottom: 8px;
+}
+
+.popup-el:last-child {
+ margin-bottom: 0;
+}
+
+.gray {
+ color: #b8b8b8;
+ font-weight: 500;
+}
+
+.menu-prompt, .prompt {
+ left: 100%;
+ position: absolute;
+ z-index: 6;
+ visibility: hidden;
+ height: 12px;
+ /* margin-top: -2px; */
+ line-height: 1;
+ font-size: 12px;
+ padding: 8px 12px;
+ color: rgb(255 255 255);
+ font-weight: 500;
+ background: rgb(56 58 63);
+ border-radius: 4px;
+ opacity: 0;
+ box-shadow: 0px 1px 5px 1px 0px 1px 5px 1px rgb(56 58 63 / 35%);
+ transition: .2s;
+ display: block;
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.menu-prompt {
+ margin-left: 8px;
+ margin-top: 2px;
+}
+
+.menu-prompt::before {
+ content: "";
+ position: absolute;
+ display: block;
+ left: -14px;
+ top: 7px;
+ border: 8px solid;
+ border-color: transparent rgb(56 58 63) transparent transparent;
+}
+
+.prompt {
+ width: -webkit-max-content;
+ width: -moz-max-content;
+ width: max-content;
+ transform: translate(-50%, 0);
+ left: 50%;
+ top: -100%;
+ margin: -6px auto;
+}
+
+.prompt::after {
+ content: "";
+ position: absolute;
+ display: block;
+ top: 100%;
+ left: 50%;
+ border: 8px solid;
+ border-color: rgb(56 58 63) transparent transparent transparent;
+ transform: translate(-50%, 0);
+}
+
+.menu-icon:hover .menu-prompt, .control-button:hover .prompt {
+ opacity: 1;
+ visibility: visible;
+ transition-delay: .5s;
+}
+
+.error {
+ background: rgb(255, 58, 58);
+ color: white;
+ display: flex;
+ padding: 12px 16px;
+ border-radius: 6px;
+ width: max-content;
+ align-items: center;
+ position: absolute;
+ z-index: 5;
+ box-shadow: 0px 1px 5px 1px rgb(56 58 63 / 15%);
+}
+
+.popup-el.popup-button-cont {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ padding-top: 8px;
+}
+
+.popup-button {
+ padding: 6px 12px;
+ margin-right: 8px;
+ font-weight: 500;
+ font-size: 14px;
+ cursor: pointer;
+}
+
+.main-popup-button {
+ padding: 10px 14px;
+ border: 1px solid;
+ border-radius: 28px;
+ font-size: 14px;
+ cursor: pointer;
+}
+
+.hints {
+ user-select: none;
+ z-index: 0;
+ color: gray;
+ font-size: 14px;
+}
\ No newline at end of file
diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg
index dab4455..fac385c 100644
--- a/src/assets/icons/close.svg
+++ b/src/assets/icons/close.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/icons/help.svg b/src/assets/icons/help.svg
new file mode 100644
index 0000000..3c3abd4
--- /dev/null
+++ b/src/assets/icons/help.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/info.svg b/src/assets/icons/info.svg
new file mode 100644
index 0000000..fcca45c
--- /dev/null
+++ b/src/assets/icons/info.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/matrix.svg b/src/assets/icons/matrix.svg
new file mode 100644
index 0000000..802a083
--- /dev/null
+++ b/src/assets/icons/matrix.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/icons/next-step.svg b/src/assets/icons/next-step.svg
index 2e2cd9d..e3ec937 100644
--- a/src/assets/icons/next-step.svg
+++ b/src/assets/icons/next-step.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/icons/pause.svg b/src/assets/icons/pause.svg
index b2f537f..35e4df5 100644
--- a/src/assets/icons/pause.svg
+++ b/src/assets/icons/pause.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/icons/play.svg b/src/assets/icons/play.svg
index 22664d2..a780281 100644
--- a/src/assets/icons/play.svg
+++ b/src/assets/icons/play.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/icons/previous-step.svg b/src/assets/icons/previous-step.svg
index 1d38059..91950fc 100644
--- a/src/assets/icons/previous-step.svg
+++ b/src/assets/icons/previous-step.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/views/View.vue b/src/views/View.vue
index c3b6cb6..3884bc7 100644
--- a/src/views/View.vue
+++ b/src/views/View.vue
@@ -1,5 +1,129 @@
-