diff --git a/src/assets/images/ico/comment.svg b/src/assets/images/ico/comment.svg
new file mode 100644
index 0000000..4815d45
--- /dev/null
+++ b/src/assets/images/ico/comment.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/images/ico/play-fill-black.svg b/src/assets/images/ico/play-fill-black.svg
new file mode 100644
index 0000000..83508bc
--- /dev/null
+++ b/src/assets/images/ico/play-fill-black.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/assets/styles/_variables.scss b/src/assets/styles/_variables.scss
index eae59e8..cee05a7 100644
--- a/src/assets/styles/_variables.scss
+++ b/src/assets/styles/_variables.scss
@@ -18,6 +18,8 @@ $DARK_GRAY: #4a4954;
$M_GRAY: #6c6a78;
$GRAY_96: #969696;
$GRAY_C2: #c2c2c2;
+$GRAY_DB: #dbdbdb;
+$GARY_BC: #bcbcbc;
$GARY_32: #323232;
$BORDER_COLOR: #232323;
@@ -26,8 +28,7 @@ $DIMMBER_BACK: #00000050;
$BLUE_2A6F: #2a66ff;
$BLUE_2461: #2461ff;
$BLUE_1472: #1472ff;
-$WHITE_FF: #ffffff;
-
+$BLUE_5887: #5887ff;
$BLUE_2A6F: #2a66ff;
$YELLOW_FFC9: #ffc93e;
diff --git a/src/components/Common/CircleList/CircleList.scss b/src/components/Common/CircleList/CircleList.scss
new file mode 100644
index 0000000..729e451
--- /dev/null
+++ b/src/components/Common/CircleList/CircleList.scss
@@ -0,0 +1,89 @@
+@for $i from 0 to 7 {
+ .circle-list-ul__li#{$i} {
+ position: absolute;
+ width: vw(74px);
+ height: vw(74px);
+ border-radius: 50%;
+ transform: translateX(vw($i * 50px));
+ }
+}
+@for $i from 7 to 13 {
+ .circle-list-ul__li#{$i} {
+ display: none;
+ }
+}
+.circle-list {
+ margin: vw(38px) 0 vw(59px) vw(28px);
+
+ &-header {
+ margin-bottom: vw(39px);
+ &__more-btn {
+ margin-right: vw(20px);
+ }
+ }
+ &__empty {
+ height: vw(74px);
+ }
+}
+
+@media screen and (max-width: $TABLET_CRITERIA) {
+ @for $i from 0 to 13 {
+ .circle-list-ul__li#{$i} {
+ position: absolute;
+ left: vw-t(67px);
+ width: vw-t(74px);
+ height: vw-t(74px);
+ border-radius: 50%;
+ transform: translateX(vw-t($i * 50px));
+ }
+ }
+
+ .circle-list {
+ margin: vw-t(46px) 0 vw-t(59px) vw-t(28px);
+
+ &-header {
+ margin-bottom: vw-t(39px);
+ &__more-btn {
+ margin-right: vw-t(20px);
+ }
+ }
+ &__empty {
+ height: vw-t(74px);
+ }
+ }
+}
+
+@media screen and (max-width: $PHONE_CRITERIA) {
+ @for $i from 0 to 7 {
+ .circle-list-ul__li#{$i} {
+ left: vw-p(20px);
+ width: vw-p(71px);
+ height: vw-p(71px);
+ transform: translateX(vw-p($i * 45px));
+ }
+ }
+ @for $i from 7 to 13 {
+ .circle-list-ul__li#{$i} {
+ display: none;
+ }
+ }
+
+ .circle-list {
+ margin: vw-p(54px) vw-p(20px) vw-p(65px) vw-p(20px);
+
+ &-header {
+ margin-bottom: vw-p(25px);
+ &__title {
+ font-size: vw-p(16px);
+ }
+ &__more-btn {
+ margin-right: 0;
+
+ font-size: vw-p(14px);
+ }
+ }
+ &__empty {
+ height: vw-p(71px);
+ }
+ }
+}
diff --git a/src/components/Common/CircleList/CircleList.tsx b/src/components/Common/CircleList/CircleList.tsx
new file mode 100644
index 0000000..30d399f
--- /dev/null
+++ b/src/components/Common/CircleList/CircleList.tsx
@@ -0,0 +1,59 @@
+import "./CircleList.scss";
+import { v4 as uuidv4 } from "uuid";
+import dummyImg1 from "@images/dummys/dummy-album-art-big.png";
+import dummyImg2 from "@images/dummys/dummy-album-art.png";
+import dummyImg3 from "@images/dummys/dummy-playlist.png";
+import dummyImg4 from "@images/dummys/dummy-profile.jpeg";
+import { Link } from "react-router-dom";
+import getCounts from "@utils/getCounts";
+const CircleList = ({ title }: any) => {
+ let dummys = [
+ { id: 1, img: dummyImg1 },
+ { id: 2, img: dummyImg2 },
+ { id: 3, img: dummyImg3 },
+ { id: 4, img: dummyImg4 },
+ { id: 1, img: dummyImg1 },
+ { id: 2, img: dummyImg2 },
+ { id: 3, img: dummyImg3 },
+ { id: 4, img: dummyImg4 },
+ { id: 1, img: dummyImg1 },
+ { id: 2, img: dummyImg2 },
+ { id: 3, img: dummyImg3 },
+ { id: 4, img: dummyImg4 },
+ { id: 1, img: dummyImg1 },
+ { id: 2, img: dummyImg2 },
+ { id: 3, img: dummyImg3 },
+ { id: 4, img: dummyImg4 }
+ ].splice(0, 13);
+ //최대 13개
+
+ return (
+
+
+
+ {`${getCounts(300)} ${title}`}
+
+
+
+
+ {dummys.map((dummy, index) => (
+ // index 부분 차후 유저 id나 특정값으로 변경
+
+
+
+ ))}
+
+
+
+ );
+};
+
+export default CircleList;
diff --git a/src/components/Common/CircleList/index.ts b/src/components/Common/CircleList/index.ts
new file mode 100644
index 0000000..80c1230
--- /dev/null
+++ b/src/components/Common/CircleList/index.ts
@@ -0,0 +1,3 @@
+import CircleList from "./CircleList";
+
+export default CircleList;
diff --git a/src/components/Common/InPlayLIst/InPlayList.tsx b/src/components/Common/InPlayLIst/InPlayList.tsx
index 8c50859..64f5a14 100644
--- a/src/components/Common/InPlayLIst/InPlayList.tsx
+++ b/src/components/Common/InPlayLIst/InPlayList.tsx
@@ -1,6 +1,8 @@
import React from "react";
import "./InPlayList.scss";
import MiniPlayList from "@components/Common/MiniPlayList";
+import { v4 as uuidv4 } from "uuid";
+
const InPlayList = () => {
return (
@@ -13,7 +15,7 @@ const InPlayList = () => {
{[1, 2, 3].map(list => {
return (
- -
+
-
);
diff --git a/src/components/Common/InlinePlayLists/InlinePlayLists.tsx b/src/components/Common/InlinePlayLists/InlinePlayLists.tsx
index c712dbc..4cee4a2 100644
--- a/src/components/Common/InlinePlayLists/InlinePlayLists.tsx
+++ b/src/components/Common/InlinePlayLists/InlinePlayLists.tsx
@@ -1,12 +1,14 @@
import React from "react";
import InlinePlayList from "./InlinePlayLIst";
import "./InlinePlayLists.scss";
+import { v4 as uuidv4 } from "uuid";
+
const InlinePlayLists = () => {
return (
{[1, 2, 3, 4, 5].map(() => {
return (
- -
+
-
);
diff --git a/src/components/Common/MiniPlayList/MiniPlayList.tsx b/src/components/Common/MiniPlayList/MiniPlayList.tsx
index 12c04d7..a6c56e6 100644
--- a/src/components/Common/MiniPlayList/MiniPlayList.tsx
+++ b/src/components/Common/MiniPlayList/MiniPlayList.tsx
@@ -1,7 +1,7 @@
-import React from "react";
import "./MiniPlayList.scss";
import testImg from "@images/background.png";
import emptyHeartIcon from "@ico/heart.svg";
+import getCounts from "@utils/getCounts";
const MiniPlayList = () => {
return (
@@ -26,7 +26,9 @@ const MiniPlayList = () => {
className="mini-play-list-info__icon"
/>
- 102
+
+ {getCounts(1239999)}
+
diff --git a/src/components/Common/MiniTrack/MiniTrack.tsx b/src/components/Common/MiniTrack/MiniTrack.tsx
index d74a1b9..b2663f3 100644
--- a/src/components/Common/MiniTrack/MiniTrack.tsx
+++ b/src/components/Common/MiniTrack/MiniTrack.tsx
@@ -1,9 +1,9 @@
-import React from "react";
import "./MiniTrack.scss";
import testImg from "@images/background.png";
import emptyPlayIcon from "@ico/play.svg";
import emptyHeartIcon from "@ico/heart.svg";
import fullPlayIcon from "@ico/play-fill.svg";
+import getCounts from "@utils/getCounts";
const MiniTrack = () => {
return (
@@ -29,7 +29,9 @@ const MiniTrack = () => {
className="mini-track-info__icon"
/>
- 102
+
+ {getCounts(123)}
+
- 102
+
+ {getCounts(1239999)}
+
-