diff --git a/.idea/php.xml b/.idea/php.xml
new file mode 100644
index 0000000..f324872
--- /dev/null
+++ b/.idea/php.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/client/package.json b/client/package.json
index 9c614b0..0215ee3 100644
--- a/client/package.json
+++ b/client/package.json
@@ -29,7 +29,6 @@
"scrolltrigger": "^1.0.1",
"swiper": "^11.1.3",
"vue": "^3.3.13",
- "vue-content-loader": "^2.0.1",
"vue-final-modal": "^4.5.4",
"vue-router": "^4.0.0",
"vuex": "^4.0.1",
diff --git a/client/src/assets/css/module/app-header.scss b/client/src/assets/css/module/app-header.scss
index afb120d..c5b3cfb 100644
--- a/client/src/assets/css/module/app-header.scss
+++ b/client/src/assets/css/module/app-header.scss
@@ -7,6 +7,7 @@
@mixin responsive-l {
top: 0;
}
+
&__wrapper {
padding: 40px 20px 10px;
width: 100%;
@@ -39,7 +40,6 @@
&__menu {
display: flex;
align-items: center;
- gap: 50px;
transition: transform .3s ease;
@mixin responsive-xl {
gap: 20px;
@@ -64,6 +64,21 @@
&-item {
+ margin: 0 25px;
+
+ &.m--tools {
+ margin: 0 10px 0 25px;
+ }
+
+ @mixin responsive-xl {
+ margin: 0 10px;
+ &.m--tools {
+ margin: 0 5px 0 10px;
+ }
+ }
+ @mixin responsive-l {
+
+ }
}
&-link {
@@ -75,6 +90,31 @@
background-image: var(--linear-gradient);
}
}
+
+ &-icon {
+ background: none;
+ border: none;
+ width: 24px;
+ height: 24px;
+ cursor: url("./assets/img/icon/cursor.svg"), auto;
+ transition: all .3s ease;
+
+ &.m--profile {
+ background: svg-load('./assets/img/icon/user-icon.svg', stroke=$color-primary) no-repeat 100%;
+
+ &:hover {
+ background: svg-load('./assets/img/icon/user-icon.svg', stroke=$color-white) no-repeat 100%;
+ }
+ }
+
+ &.m--exit {
+ background: svg-load('./assets/img/icon/exit-icon.svg', fill=$color-primary) no-repeat 100%;
+
+ &:hover {
+ background: svg-load('./assets/img/icon/exit-icon.svg', fill=$color-white) no-repeat 100%;
+ }
+ }
+ }
}
&__btn {
@@ -89,14 +129,17 @@
height: 24px;
position: relative;
display: none;
+
&:hover {
cursor: url("./assets/img/icon/cursor.svg"), auto;
}
- &.m--menu{
+
+ &.m--menu {
position: absolute;
right: 15px;
top: 15px;
}
+
&.m--active {
span {
display: none;
diff --git a/client/src/assets/css/module/player.scss b/client/src/assets/css/module/player.scss
index bf8cd4f..9f12c8b 100644
--- a/client/src/assets/css/module/player.scss
+++ b/client/src/assets/css/module/player.scss
@@ -30,7 +30,8 @@
display: flex;
flex-direction: column;
margin-left: 20px;
-
+ min-width: 135px;
+ gap: 0.25rem;
span {
color: var(--color-white-opacity);
}
@@ -41,6 +42,9 @@
height: 27px;
background: svg-load('./assets/img/icon/favorites.svg', fill=#404145FF) no-repeat 100%;
margin-left: var(--space-between-block);
+ &.m--skeleton{
+ background: none;
+ }
&:hover {
cursor: url("./assets/img/icon/cursor.svg"), auto;
}
@@ -60,7 +64,7 @@
color: var(--color-white-opacity);
font-weight: 500;
position: relative;
-
+ min-width: 105px;
&.m--ether {
padding-right: 10px;
@@ -68,7 +72,7 @@
content: '';
position: absolute;
border-radius: 50%;
- right: 0;
+ left: 40px;
top: 0;
width: 5px;
height: 5px;
@@ -81,6 +85,9 @@
gap: var(--space-between-block);
align-items: center;
margin-left: auto;
+ &.m--skeleton{
+ min-width: 200px;
+ }
}
&__volume{
display: flex;
@@ -192,5 +199,9 @@
background-size: contain;
}
}
+
+ &.m--skeleton{
+ background: none;
+ }
}
}
diff --git a/client/src/assets/css/module/song.scss b/client/src/assets/css/module/song.scss
index 3046873..a1b99a9 100644
--- a/client/src/assets/css/module/song.scss
+++ b/client/src/assets/css/module/song.scss
@@ -67,6 +67,7 @@
margin: auto;
background: svg-load('./assets/img/icon/favorites.svg', fill=$color-primary) no-repeat 100%;
background-size: contain;
+ transition: all .3s ease;
}
&:hover:after {
@@ -83,6 +84,7 @@
margin: auto;
background: svg-load('./assets/img/icon/add-icon.svg', fill=$color-primary) no-repeat 100%;
background-size: contain;
+ transition: all .3s ease;
}
&:hover:after {
@@ -99,6 +101,7 @@
margin: auto;
background: svg-load('./assets/img/icon/play.svg', fill=#FFFF) no-repeat 100%;
background-size: contain;
+ transition: all .3s ease;
}
&:hover:after {
@@ -116,6 +119,7 @@
margin: auto;
background: svg-load('./assets/img/icon/pause.svg', fill=#FFFF) no-repeat 100%;
background-size: contain;
+ transition: all .3s ease;
}
&:hover:after {
diff --git a/client/src/assets/css/setting.scss b/client/src/assets/css/setting.scss
index d92b786..d16d478 100644
--- a/client/src/assets/css/setting.scss
+++ b/client/src/assets/css/setting.scss
@@ -5,9 +5,10 @@ $document-width-s: 730px;
$document-width-xs: 640px;
$document-width-xxs: 480px;
$color-primary: #5E5BFC;
+$color-white: #FFFFFF;
:root {
--color-black: #232323;
- --color-white: #FFFFFF;
+ --color-white: $color-white;
--color-white-darker: #E7E7E7;
--color-white-opacity: #BBB9CA;
--bg-wrapper-modal: #000000E5;
diff --git a/client/src/assets/img/icon/exit-icon.svg b/client/src/assets/img/icon/exit-icon.svg
new file mode 100644
index 0000000..8d7d7ca
--- /dev/null
+++ b/client/src/assets/img/icon/exit-icon.svg
@@ -0,0 +1,10 @@
+
diff --git a/client/src/assets/img/icon/user-icon.svg b/client/src/assets/img/icon/user-icon.svg
new file mode 100644
index 0000000..78c55d2
--- /dev/null
+++ b/client/src/assets/img/icon/user-icon.svg
@@ -0,0 +1,4 @@
+
diff --git a/client/src/components/app-header.vue b/client/src/components/app-header.vue
index 8231164..c757501 100644
--- a/client/src/components/app-header.vue
+++ b/client/src/components/app-header.vue
@@ -24,7 +24,7 @@
{{ item.title }}
-
+
@@ -97,6 +97,14 @@ export default {
changeTab(tab) {
this.currentTabsItem = tab;
this.$router.push({name: this.$route.name, hash: `#${tab}`});
+ },
+ removeFavorites(song){
+ app.removeFavorites(song).then(() => {
+ this.getSongList();
+ }).catch(err => {
+ this.showLoader = false;
+ console.error(err)
+ })
}
}
}