Explorar o código

230328-1801-Kim

EricKIm hai 1 ano
achega
4f4b24c23b
Modificáronse 100 ficheiros con 4932 adicións e 0 borrados
  1. 2 0
      README.md
  2. 12 0
      assets/css/_common.scss
  3. 41 0
      assets/css/_flicking.scss
  4. 38 0
      assets/css/_lib.scss
  5. 151 0
      assets/css/common.css
  6. 10 0
      assets/img/svg/btn_close.svg
  7. 10 0
      assets/img/svg/btn_delete.svg
  8. 10 0
      assets/img/svg/btn_filter.svg
  9. 4 0
      assets/img/svg/ico_activity.svg
  10. 7 0
      assets/img/svg/ico_activity_bid.svg
  11. 7 0
      assets/img/svg/ico_activity_burn.svg
  12. 9 0
      assets/img/svg/ico_activity_create.svg
  13. 6 0
      assets/img/svg/ico_activity_like.svg
  14. 9 0
      assets/img/svg/ico_activity_purchase.svg
  15. 9 0
      assets/img/svg/ico_activity_sell.svg
  16. 7 0
      assets/img/svg/ico_activity_transfer.svg
  17. 4 0
      assets/img/svg/ico_arr_gray.svg
  18. 4 0
      assets/img/svg/ico_arrow_down.svg
  19. 4 0
      assets/img/svg/ico_auction_gray.svg
  20. 4 0
      assets/img/svg/ico_back.svg
  21. 4 0
      assets/img/svg/ico_buy.svg
  22. 3 0
      assets/img/svg/ico_buy_gray.svg
  23. 4 0
      assets/img/svg/ico_category_gray.svg
  24. 4 0
      assets/img/svg/ico_check.svg
  25. 4 0
      assets/img/svg/ico_check_pink.svg
  26. 3 0
      assets/img/svg/ico_check_pink2.svg
  27. 4 0
      assets/img/svg/ico_check_white.svg
  28. 4 0
      assets/img/svg/ico_close.svg
  29. 6 0
      assets/img/svg/ico_collection_color.svg
  30. 3 0
      assets/img/svg/ico_collection_gray.svg
  31. 4 0
      assets/img/svg/ico_delete_gray.svg
  32. 4 0
      assets/img/svg/ico_discord.svg
  33. 7 0
      assets/img/svg/ico_facebook.svg
  34. 4 0
      assets/img/svg/ico_filter.svg
  35. 4 0
      assets/img/svg/ico_filter_gray.svg
  36. 3 0
      assets/img/svg/ico_heart_gray.svg
  37. 4 0
      assets/img/svg/ico_heart_red.svg
  38. 4 0
      assets/img/svg/ico_insta.svg
  39. 4 0
      assets/img/svg/ico_list_gray.svg
  40. 4 0
      assets/img/svg/ico_menu.svg
  41. 4 0
      assets/img/svg/ico_more_gray.svg
  42. 18 0
      assets/img/svg/ico_multi.svg
  43. 3 0
      assets/img/svg/ico_price_gray.svg
  44. 4 0
      assets/img/svg/ico_sale.svg
  45. 3 0
      assets/img/svg/ico_sale_gray.svg
  46. 4 0
      assets/img/svg/ico_search.svg
  47. 3 0
      assets/img/svg/ico_search_gray.svg
  48. 4 0
      assets/img/svg/ico_send_gray.svg
  49. 4 0
      assets/img/svg/ico_share.svg
  50. 9 0
      assets/img/svg/ico_single.svg
  51. 4 0
      assets/img/svg/ico_twitter.svg
  52. 15 0
      assets/img/svg/logo_bsc.svg
  53. 11 0
      assets/img/svg/logo_ethereum.svg
  54. 1149 0
      assets/img/svg/logo_metafinance.svg
  55. 456 0
      assets/img/svg/logo_metarare.svg
  56. 95 0
      config/webpack.config.common.js
  57. 26 0
      config/webpack.config.dev.js
  58. 26 0
      config/webpack.config.js
  59. 25 0
      config/webpack.config.prod.js
  60. 91 0
      package.json
  61. 28 0
      public/index.html
  62. 312 0
      src/@types/index.d.ts
  63. 7 0
      src/@types/redux.d.ts
  64. 302 0
      src/api/APIs.ts
  65. 57 0
      src/api/index.ts
  66. 75 0
      src/components/common/ActivityCard.scss
  67. 277 0
      src/components/common/ActivityCard.tsx
  68. 86 0
      src/components/common/BannerCard.scss
  69. 39 0
      src/components/common/BannerCard.tsx
  70. 15 0
      src/components/common/ButtonMore.scss
  71. 22 0
      src/components/common/ButtonMore.tsx
  72. 43 0
      src/components/common/ButtonOption.scss
  73. 41 0
      src/components/common/ButtonOption.tsx
  74. 28 0
      src/components/common/CircleThumb.scss
  75. 45 0
      src/components/common/CircleThumb.tsx
  76. 77 0
      src/components/common/CollectionCard.scss
  77. 73 0
      src/components/common/CollectionCard.tsx
  78. 24 0
      src/components/common/CollectionCardList.scss
  79. 46 0
      src/components/common/CollectionCardList.tsx
  80. 15 0
      src/components/common/ContentLoading.scss
  81. 15 0
      src/components/common/ContentLoading.tsx
  82. 26 0
      src/components/common/CreateStatus.scss
  83. 31 0
      src/components/common/CreateStatus.tsx
  84. 4 0
      src/components/common/Feature.scss
  85. 63 0
      src/components/common/Feature.tsx
  86. 118 0
      src/components/common/Footer.scss
  87. 116 0
      src/components/common/Footer.tsx
  88. 18 0
      src/components/common/HashBox.scss
  89. 24 0
      src/components/common/HashBox.tsx
  90. 18 0
      src/components/common/Header.tsx
  91. 76 0
      src/components/common/Img.tsx
  92. 31 0
      src/components/common/Input.scss
  93. 30 0
      src/components/common/Input.tsx
  94. 30 0
      src/components/common/InputImage.scss
  95. 89 0
      src/components/common/InputImage.tsx
  96. 56 0
      src/components/common/InputPrice.scss
  97. 111 0
      src/components/common/InputPrice.tsx
  98. 34 0
      src/components/common/Layer.scss
  99. 31 0
      src/components/common/Layer.tsx
  100. 16 0
      src/components/common/Like.scss

+ 2 - 0
README.md

@@ -0,0 +1,2 @@
+# metarere_front
+metarare_front

+ 12 - 0
assets/css/_common.scss

@@ -0,0 +1,12 @@
+:global(.pc_wrapper) {
+  display: none;
+}
+
+@media all and (min-width:1290px) {
+  :global(.pc_wrapper) {
+    display: block;
+  }
+  :global(.mo_wrapper) {
+    display: none;
+  }
+}

+ 41 - 0
assets/css/_flicking.scss

@@ -0,0 +1,41 @@
+:global(.flicking-arrow-disabled) {
+  display: none;
+}
+
+:global(.flicking-arrow-prev), :global(.flicking-arrow-next) {
+  position: absolute;
+  overflow: hidden;
+  top: 50%;
+  z-index: 2;
+  width: 35px;
+  height: 35px;
+  border: 1px solid #ddd;
+  border-radius: 50%;
+  background-color: #fff;
+  transform: translateY(-50%);
+  cursor: pointer;
+  &:before,
+  &:after {
+    position: absolute;
+    left: 50%;
+    right: 22px;
+    width: 10px;
+    height: 2px;
+    margin: -1px 0 0 -5px;
+    background-color: #000;
+    transform-origin: 100% 50%;
+    content: '';
+  }
+  &:before {
+    top: 50%;
+    transform: rotate(45deg);
+  }
+  &:after {
+    top: calc(50% - 1px);
+    transform: rotate(-45deg);
+  }
+}
+
+:global(.flicking-arrow-prev) {
+  transform: translateY(-50%) rotate(180deg);
+}

+ 38 - 0
assets/css/_lib.scss

@@ -0,0 +1,38 @@
+@mixin ellipsis {
+	overflow: hidden;
+	text-overflow: ellipsis;
+	white-space: nowrap;
+}
+@mixin multi-ellipsis($line-height, $line) {
+	overflow: hidden;
+	display: block;
+	display: -webkit-box;
+	-webkit-box-orient: vertical;
+	-webkit-line-clamp: $line;
+	line-height: $line-height;
+	max-height: $line-height * $line;
+	word-break: break-all;
+	word-wrap: break-word;
+}
+@mixin clear {
+	content: '';
+	display: block;
+	clear: both;
+}
+@mixin mobile {
+	@media all and (max-width: 1289px) {
+		@content;
+	}
+}
+@mixin pc {
+	@media all and (min-width: 1290px) {
+		@content;
+	}
+}
+@mixin pcWidth {
+	max-width: 1480px;
+	min-height: 100%;
+	margin: 0 auto -210px;
+	padding: 74px 20px 210px;
+	box-sizing: border-box;
+}

+ 151 - 0
assets/css/common.css

@@ -0,0 +1,151 @@
+@charset "UTF-8";
+
+html {
+  height: 100%;
+}
+
+body {
+  -webkit-text-size-adjust: none;
+}
+
+body,
+button,
+dd,
+dl,
+dt,
+fieldset,
+form,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+input,
+legend,
+li,
+ol,
+p,
+select,
+table,
+td,
+textarea,
+th,
+ul {
+  margin: 0;
+  padding: 0;
+}
+
+html,
+body,
+#app,
+#root {
+  height: 100%;
+  -webkit-text-size-adjust: none;
+  color: #000;
+  font-family:'Retorica','Barun', '-apple-system', 'AppleSDGothicNeo', 'SFProDisplay', 'BlinkMacSystemFont', 'HelveticaNeue', 'Helvetica', arial, 'sans-serif';
+  font-size: 12px;
+  line-height: 20px;
+}
+
+address,
+em {
+  font-style: normal;
+}
+
+fieldset,
+img {
+  border: 0;
+  vertical-align: top;
+}
+
+table {
+  border-collapse: collapse;
+}
+
+input {
+  -webkit-appearance: none;
+  border-radius: 0;
+  -webkit-border-radius: 0;
+  border: none;
+}
+
+dl,
+ol,
+ul {
+  list-style: none;
+}
+
+a {
+  color: inherit;
+  text-decoration: none;
+}
+
+a[href]:hover,
+a[href]:active,
+a[href]:focus {
+  text-decoration: none;
+}
+
+button {
+  -webkit-appearance: none;
+  border: 0;
+  background: none;
+  outline: none;
+  cursor: pointer;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+  -webkit-tap-highlight-color: transparent;
+  /* For some Androids */
+  font-family: 'Retorica', 'Barun', 'PretendardVariable', 'PretendardVariable-Bold' '-apple-system', 'BlinkMacSystemFont', 'SFProDisplay', 'AppleSDGothicNeo', 'HelveticaNeue', 'Helvetica', arial, 'sans-serif', 나눔고딕, NanumGothic, 'nanumgothic', 'NanumSquareRound', 'Malgun Gothic', Dotum;
+}
+
+.blind {
+  overflow: hidden !important;
+  position: absolute !important;
+  clip: rect(0 0 0 0) !important;
+  width: 1px !important;
+  height: 1px !important;
+  margin: -1px !important;
+}
+
+/* body scroll prevent */
+body.no_scroll {
+	overflow: hidden;
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+
+@font-face { 
+  font-family: "PTMono";
+  src: url("/static/font/PTM55F.ttf");
+  font-weight: normal;
+}
+
+@font-face { 
+  font-family: "PTMono-Bold";
+  src: url("/static/font/PTM75F.ttf");
+  font-weight: bold;
+}
+@font-face { 
+  font-family: "PretendardVariable";
+  src: url("/static/font/PretendardVariable.ttf");
+  font-weight: normal;
+}
+@font-face { 
+  font-family: "PretendardVariable-Bold";
+  src: url("/static/font/PretendardVariable.ttf");
+  font-weight: bold;
+}
+@font-face { 
+  font-family: "Retorica";
+  src: url("/static/font/Retroica.ttf");
+  font-weight: normal;
+}
+@font-face { 
+  font-family: "Barun";
+  src: url("/static/font/Barun.ttf");
+  font-weight: normal;
+}

+ 10 - 0
assets/img/svg/btn_close.svg

@@ -0,0 +1,10 @@
+<svg data-name="btn / icon / close" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36">
+    <g data-name="타원 2" style="fill:#fff;stroke:#ddd">
+        <circle cx="18" cy="18" r="18" style="stroke:none"/>
+        <circle cx="18" cy="18" r="17.5" style="fill:none"/>
+    </g>
+    <g data-name="icon / close">
+        <path data-name="패스 19" d="M0 0h20v20H0z" style="fill:none" transform="translate(8 8)"/>
+        <path data-name="패스 20" d="m18 17.03 3.394-3.394.97.97L18.97 18l3.394 3.394-.97.97L18 18.97l-3.394 3.394-.97-.97L17.03 18l-3.394-3.394.97-.97z"/>
+    </g>
+</svg>

+ 10 - 0
assets/img/svg/btn_delete.svg

@@ -0,0 +1,10 @@
+<svg data-name="btn / icon / close" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36">
+    <g data-name="타원 2" style="fill:#fff;stroke:#ddd">
+        <circle cx="18" cy="18" r="18" style="stroke:none"/>
+        <circle cx="18" cy="18" r="17.5" style="fill:none"/>
+    </g>
+    <g data-name="icon / close">
+        <path data-name="패스 19" d="M0 0h20v20H0z" style="fill:none" transform="translate(8 8)"/>
+        <path data-name="패스 20" d="m18 17.03 3.394-3.394.97.97L18.97 18l3.394 3.394-.97.97L18 18.97l-3.394 3.394-.97-.97L17.03 18l-3.394-3.394.97-.97z"/>
+    </g>
+</svg>

+ 10 - 0
assets/img/svg/btn_filter.svg

@@ -0,0 +1,10 @@
+<svg data-name="btn / icon / filter" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36">
+    <g data-name="타원 9" style="fill:#fff;stroke:#ddd">
+        <circle cx="18" cy="18" r="18" style="stroke:none"/>
+        <circle cx="18" cy="18" r="17.5" style="fill:none"/>
+    </g>
+    <g data-name="icon / filter">
+        <path data-name="패스 31" d="M0 0h24v24H0z" style="fill:none" transform="translate(6 6.75)"/>
+        <path data-name="패스 32" d="M24 12.75v1.333h-.667l-3.333 5v5.667h-4v-5.667l-3.333-5H12V12.75zm-9.731 1.333 3.064 4.6v4.737h1.334v-4.741l3.064-4.6z"/>
+    </g>
+</svg>

+ 4 - 0
assets/img/svg/ico_activity.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / notification" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 43" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 44" d="M22 20H2v-2h1v-6.969a9 9 0 1 1 18 0V18h1zM5 18h14v-6.969a7 7 0 1 0-14 0zm4.5 3h5a2.5 2.5 0 1 1-5 0z"/>
+</svg>

+ 7 - 0
assets/img/svg/ico_activity_bid.svg

@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+    <g data-name="그룹 109" transform="translate(-472 -1756)">
+        <circle data-name="타원 11" cx="10" cy="10" r="10" transform="translate(472 1756)" style="fill:#8816dc"/>
+        <path data-name="패스 52" d="M0 0h14v14H0z" style="fill:none" transform="translate(475 1759)"/>
+        <path data-name="패스 53" d="M8.3 10.938V12H2v-1.062zM8.613.686 12.7 4.815l-.743.752-.557-.189-1.3 1.314 2.972 3-.743.751-2.972-3-1.265 1.275.149.6-.741.752-4.089-4.129.743-.751.594.15L8.055 2l-.185-.563zm.371 1.877L5.269 6.316l1.857 1.877 3.715-3.753z" transform="translate(475 1759)" style="fill:#fff"/>
+    </g>
+</svg>

+ 7 - 0
assets/img/svg/ico_activity_burn.svg

@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+    <g data-name="그룹 105" transform="translate(-472 -1581)">
+        <circle data-name="타원 11" cx="10" cy="10" r="10" transform="translate(472 1581)" style="fill:#bc2222"/>
+        <path data-name="패스 60" d="M0 0h14v14H0z" style="fill:none" transform="translate(475 1584)"/>
+        <path data-name="패스 61" d="M9.5 4H12v1h-1v6.5a.5.5 0 0 1-.5.5h-7a.5.5 0 0 1-.5-.5V5H2V4h2.5V2.5A.5.5 0 0 1 5 2h4a.5.5 0 0 1 .5.5zm.5 1H4v6h6zM5.5 6.5h1v3h-1zm2 0h1v3h-1zM5.5 3v1h3V3z" style="fill:#fff" transform="translate(475 1584)"/>
+    </g>
+</svg>

+ 9 - 0
assets/img/svg/ico_activity_create.svg

@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+    <g data-name="그룹 105" transform="translate(-472 -1581)">
+        <circle data-name="타원 11" cx="10" cy="10" r="10" transform="translate(472 1581)" style="fill:#34bc22"/>
+        <g data-name="list-check (1)">
+            <path data-name="패스 58" d="M0 0h16v16H0z" style="fill:none" transform="translate(474 1583)"/>
+            <path data-name="패스 59" d="M5.778 3.765H13v1.059H5.778zM3 3.5h1.667v1.588H3zm0 3.706h1.667v1.588H3zm0 3.706h1.667V12.5H3zm2.778-3.441H13v1.058H5.778zm0 3.706H13v1.059H5.778z" style="fill:#fff" transform="translate(474 1583)"/>
+        </g>
+    </g>
+</svg>

+ 6 - 0
assets/img/svg/ico_activity_like.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+    <g data-name="그룹 105" transform="translate(-472 -1581)">
+        <circle data-name="타원 11" cx="10" cy="10" r="10" transform="translate(472 1581)" style="fill:#f948a0"/>
+        <path data-name="패스 47" d="M7 3.749a3.045 3.045 0 0 1 4.121.112 2.9 2.9 0 0 1 .118 4.034L7 12.053 2.76 7.894a2.9 2.9 0 0 1 .118-4.034A3.046 3.046 0 0 1 7 3.749z" transform="translate(475 1584)" style="fill:#fff"/>
+    </g>
+</svg>

+ 9 - 0
assets/img/svg/ico_activity_purchase.svg

@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+    <g data-name="그룹 109" transform="translate(-472 -1756)">
+        <circle data-name="타원 11" cx="10" cy="10" r="10" transform="translate(472 1756)" style="fill:#004eff"/>
+        <g data-name="icon / price-range">
+            <path data-name="패스 37" d="M0 0h14v14H0z" style="fill:none" transform="translate(475 1759)"/>
+            <path data-name="패스 38" d="M7 12a5 5 0 1 1 5-5 5 5 0 0 1-5 5zm0-1a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM5.25 8H8a.25.25 0 0 0 0-.5H6A1.25 1.25 0 0 1 6 5h.5V4h1v1h1.25v1H6a.25.25 0 0 0 0 .5h2A1.25 1.25 0 0 1 8 9h-.5v1h-1V9H5.25z" style="fill:#fff" transform="translate(475 1759)"/>
+        </g>
+    </g>
+</svg>

+ 9 - 0
assets/img/svg/ico_activity_sell.svg

@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+    <g data-name="그룹 109" transform="translate(-472 -1756)">
+        <circle data-name="타원 11" cx="10" cy="10" r="10" transform="translate(472 1756)" style="fill:#16dccf"/>
+        <g data-name="icon / sale-type-fill">
+            <path data-name="패스 48" d="M0 0h14v14H0z" style="fill:none" transform="translate(475 1759)"/>
+            <path data-name="패스 49" d="m6.339 2.1 5.14.735.734 5.14-4.773 4.773a.519.519 0 0 1-.734 0l-5.14-5.14a.519.519 0 0 1 0-.734zm1.469 4.406a1.038 1.038 0 1 0 0-1.469 1.038 1.038 0 0 0 0 1.469z" style="fill:#fff" transform="translate(475 1759)"/>
+        </g>
+    </g>
+</svg>

+ 7 - 0
assets/img/svg/ico_activity_transfer.svg

@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+    <g data-name="그룹 109" transform="translate(-472 -1756)">
+        <circle data-name="타원 11" cx="10" cy="10" r="10" transform="translate(472 1756)" style="fill:#ffa700"/>
+        <path data-name="패스 54" d="M0 0h14v14H0z" style="fill:none" transform="translate(475 1759)"/>
+        <path data-name="패스 55" d="M8.778 9V7L11 9.5 8.778 12v-2H3.444V9zM5.222 2v2h5.333v1H5.222v2L3 4.5z" style="fill:#fff" transform="translate(475 1759)"/>
+    </g>
+</svg>

+ 4 - 0
assets/img/svg/ico_arr_gray.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / arrow-down" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 11" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 12" d="m12 13.172 4.95-4.95 1.414 1.414L12 16 5.636 9.636 7.05 8.222z" style="fill:#888;"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_arrow_down.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / arrow-down" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 11" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 12" d="m12 13.172 4.95-4.95 1.414 1.414L12 16 5.636 9.636 7.05 8.222z"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_auction_gray.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+    <path data-name="패스 52" d="M0 0h16v16H0z" style="fill:none"/>
+    <path data-name="패스 53" d="M9.444 12.751V14H2v-1.249zM9.807.686l4.825 4.859-.877.885-.655-.222-1.539 1.545 3.509 3.534-.877.883-3.509-3.533-1.491 1.5.176.707-.878.883L3.666 6.87l.878-.883.7.176 3.9-3.931-.214-.662zm.439 2.209L5.86 7.311 8.052 9.52l4.387-4.42z" />
+</svg>

+ 4 - 0
assets/img/svg/ico_back.svg

@@ -0,0 +1,4 @@
+<svg width="51" height="51" viewBox="0 0 51 51" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <path d="M51 1H1v50" stroke="#fff"/>
+    <path transform="matrix(.70765 .70656 .70765 -.70656 1.571 1)" stroke="#fff" d="M0-.5h69.311"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_buy.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / price-range" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 37" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 38" d="M12 22a10 10 0 1 1 10-10 10 10 0 0 1-10 10zm0-2a8 8 0 1 0-8-8 8 8 0 0 0 8 8zm-3.5-6H14a.5.5 0 0 0 0-1h-4a2.5 2.5 0 1 1 0-5h1V6h2v2h2.5v2H10a.5.5 0 0 0 0 1h4a2.5 2.5 0 0 1 0 5h-1v2h-2v-2H8.5z"/>
+</svg>

+ 3 - 0
assets/img/svg/ico_buy_gray.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <path data-name="패스 38" d="M8 14a6 6 0 1 1 6-6 6 6 0 0 1-6 6zm0-1.2A4.8 4.8 0 1 0 3.2 8 4.8 4.8 0 0 0 8 12.8zM5.9 9.2h3.3a.3.3 0 0 0 0-.6H6.8a1.5 1.5 0 1 1 0-3h.6V4.4h1.2v1.2h1.5v1.2H6.8a.3.3 0 0 0 0 .6h2.4a1.5 1.5 0 1 1 0 3h-.6v1.2H7.4v-1.2H5.9z" transform="translate(-2 -2)"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_category_gray.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / category" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+    <path data-name="패스 13" d="M0 0h16v16H0z" style="fill:none"/>
+    <path data-name="패스 14" d="M4.654 7.711a2.606 2.606 0 1 1 0-5.211 2.606 2.606 0 1 1 0 5.211zm.295 5.789A2.606 2.606 0 1 1 7.6 10.895 2.63 2.63 0 0 1 4.949 13.5zm5.9-5.789A2.606 2.606 0 1 1 13.5 5.105a2.63 2.63 0 0 1-2.654 2.606zm0 5.789a2.606 2.606 0 1 1 2.651-2.605 2.63 2.63 0 0 1-2.654 2.605zM4.654 6.553a1.448 1.448 0 1 0-1.475-1.448 1.461 1.461 0 0 0 1.475 1.448zm.295 5.789a1.448 1.448 0 1 0-1.474-1.447 1.461 1.461 0 0 0 1.474 1.447zm5.9-5.789a1.448 1.448 0 1 0-1.477-1.448 1.461 1.461 0 0 0 1.474 1.448zm0 5.789a1.448 1.448 0 1 0-1.474-1.447 1.461 1.461 0 0 0 1.471 1.447z" style="fill:#888"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_check.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / check" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 29" d="M11.364 12.95 16.314 8l1.414 1.414-6.364 6.364L7 11.414 8.414 10z"/>
+    <path data-name="패스 30" d="M0 0h24v24H0z" style="fill:none"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_check_pink.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / mark" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+    <circle data-name="타원 8" cx="10" cy="10" r="10" style="fill:#f948a0"/>
+    <path data-name="패스 29" d="m12 13.172 4.95-4.95 1.414 1.414L12 16l-4.364-4.364 1.414-1.414z" transform="translate(-2.636 -2.222)" style="fill:#fff"/>
+</svg>

+ 3 - 0
assets/img/svg/ico_check_pink2.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="10.728" height="7.778" viewBox="0 0 10.728 7.778">
+    <path data-name="패스 29" d="m12 13.172 4.95-4.95 1.414 1.414L12 16l-4.364-4.364 1.414-1.414z" transform="translate(-7.636 -8.222)" style="fill:#f948a0"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_check_white.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / check" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 29" d="M11.364 12.95 16.314 8l1.414 1.414-6.364 6.364L7 11.414 8.414 10z" style="fill:#fff"/>
+    <path data-name="패스 30" d="M0 0h24v24H0z" style="fill:none"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_close.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / close" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 19" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 20" d="m12 10.586 4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/>
+</svg>

+ 6 - 0
assets/img/svg/ico_collection_color.svg

@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 50 50">
+    <g data-name="그룹 152" transform="translate(-46 -182)">
+        <circle data-name="타원 13" cx="25" cy="25" r="25" transform="translate(46 182)" style="fill:#f5f5f5"/>
+        <text data-name="🗂" transform="translate(59 215)" style="font-size:24px;font-family:AppleColorEmoji,Apple Color Emoji;letter-spacing:-.03em"><tspan x="0" y="0">🗂</tspan></text>
+    </g>
+</svg>

+ 3 - 0
assets/img/svg/ico_collection_gray.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="10" viewBox="0 0 12 10">
+    <path data-name="패스 34" d="M3.2 4.111v7.778h9.6V5.222H7.752l-1.2-1.111zm5.048 0H13.4a.579.579 0 0 1 .6.556v7.778a.579.579 0 0 1-.6.556H2.6a.579.579 0 0 1-.6-.556V3.556A.579.579 0 0 1 2.6 3h4.448z" transform="translate(-2 -3)" style="fill:#888"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_delete_gray.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+    <path data-name="패스 60" d="M0 0h16v16H0z" style="fill:none"/>
+    <path data-name="패스 61" d="M11 4.4h3v1.2h-1.2v7.8a.6.6 0 0 1-.6.6H3.8a.6.6 0 0 1-.6-.6V5.6H2V4.4h3V2.6a.6.6 0 0 1 .6-.6h4.8a.6.6 0 0 1 .6.6zm.6 1.2H4.4v7.2h7.2zM6.2 7.4h1.2V11H6.2zm2.4 0h1.2V11H8.6zM6.2 3.2v1.2h3.6V3.2z"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_discord.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / discord" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 41" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 42" d="M10.076 11a1 1 0 1 1 0 2 1 1 0 1 1 0-2zm3.848 0a1 1 0 1 1-1.075 1 1.037 1.037 0 0 1 1.075-1zm4.967-9A2.136 2.136 0 0 1 21 4.163V23l-2.211-2-1.245-1.176-1.317-1.25.546 1.943H5.109A2.136 2.136 0 0 1 3 18.359V4.163A2.136 2.136 0 0 1 5.109 2H18.89zm-3.97 13.713a3.747 3.747 0 0 0 3.148-1.6A14.282 14.282 0 0 0 16.587 8a5.02 5.02 0 0 0-2.89-1.1l-.144.168A6.8 6.8 0 0 1 16.114 8.4a8.263 8.263 0 0 0-3.1-1.008 8.527 8.527 0 0 0-2.077.02 1.033 1.033 0 0 0-.175.021 7.6 7.6 0 0 0-2.335.662c-.38.178-.607.305-.607.305a6.9 6.9 0 0 1 2.705-1.376l-.1-.126A5.019 5.019 0 0 0 7.536 8a14.283 14.283 0 0 0-1.481 6.121 3.718 3.718 0 0 0 3.137 1.6s.38-.472.69-.871a3.207 3.207 0 0 1-1.8-1.24 3.37 3.37 0 0 0 .287.179.132.132 0 0 0 .041.031c.031.022.062.032.093.053a6.063 6.063 0 0 0 .75.357 8.542 8.542 0 0 0 1.513.452 7.06 7.06 0 0 0 2.664.01 6.666 6.666 0 0 0 1.491-.451 5.906 5.906 0 0 0 1.183-.62 3.252 3.252 0 0 1-1.862 1.25c.309.4.68.85.68.85z"/>
+</svg>

+ 7 - 0
assets/img/svg/ico_facebook.svg

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
+<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
+<g><g transform="translate(0.000000,442.000000) scale(0.100000,-0.100000)"><path d="M2467.8,4286.2c-220.5-37.9-587.9-155.9-786.1-256.1C868.8,3624.8,283.2,2832.1,138.4,1939.1c-51.2-316.2-51.2-4716.6,0-5032.8c95.8-587.9,369.7-1117.9,801.7-1547.7c334-336.3,668.1-543.4,1113.5-692.6c396.4-131.4,527.8-142.5,1855-142.5h1184.7v1815v1814.9h-612.4h-612.4v779.4v779.4h612.4h612.4V211c0,273.9,11.1,601.3,22.3,728.2c86.9,857.4,516.7,1498.7,1171.4,1748.1c271.7,102.4,427.6,118,1207,120.3H8211v-777.2v-777.2l-461-8.9c-409.7-8.9-476.5-15.6-587.9-57.9c-236.1-93.5-367.5-231.6-445.4-472.1c-40.1-120.3-51.2-213.8-60.1-572.3l-8.9-429.8h777.2h779.4l-155.9-779.4l-155.9-779.4h-619.1h-621.3v-1817.2v-1819.4l418.7,13.3c300.6,8.9,469.9,24.5,605.7,55.7c554.5,131.4,995.4,374.1,1391.8,772.7c396.4,394.2,632.5,819.5,775,1391.8c46.8,184.8,46.8,233.8,53.5,2565.4c8.9,2641.1,8.9,2618.8-135.9,3057.6c-151.4,447.6-358.5,781.7-690.3,1113.5c-434.3,434.2-962,705.9-1549.9,801.7C7220,4335.2,2759.5,4335.2,2467.8,4286.2z"/></g></g>
+</svg>

+ 4 - 0
assets/img/svg/ico_filter.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / filter" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 31" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 32" d="M21 4v2h-1l-5 7.5V22H9v-8.5L4 6H3V4zM6.4 6l4.6 6.894V20h2v-7.106L17.6 6z"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_filter_gray.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / filter" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 31" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 32" d="M21 4v2h-1l-5 7.5V22H9v-8.5L4 6H3V4zM6.4 6l4.6 6.894V20h2v-7.106L17.6 6z" style="fill:#888"/>
+</svg>

+ 3 - 0
assets/img/svg/ico_heart_gray.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="10.485" viewBox="0 0 12 10.485">
+    <path data-name="패스 22" d="M8 3.867A3.751 3.751 0 0 1 12.946 4a3.27 3.27 0 0 1 .142 4.672L8 13.485 2.913 8.668A3.271 3.271 0 0 1 3.054 4 3.753 3.753 0 0 1 8 3.867zm4.1.931a2.5 2.5 0 0 0-3.3-.087l-.8.68-.8-.679a2.5 2.5 0 0 0-3.3.088 2.179 2.179 0 0 0-.115 3.092L8 11.879l4.212-3.988A2.18 2.18 0 0 0 12.1 4.8z" transform="translate(-2 -3)"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_heart_red.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / heart-fill" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+    <path data-name="패스 23" d="M0 0h16v16H0z" style="fill:none"/>
+    <path data-name="패스 24" d="M8 3.867A3.751 3.751 0 0 1 12.946 4a3.27 3.27 0 0 1 .142 4.672L8 13.485 2.913 8.668A3.271 3.271 0 0 1 3.054 4 3.753 3.753 0 0 1 8 3.867z" style="fill:#f948a0"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_insta.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / insta" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 39" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 40" d="M12 2c2.717 0 3.056.01 4.122.06a7.367 7.367 0 0 1 2.428.465 4.876 4.876 0 0 1 1.772 1.153 4.908 4.908 0 0 1 1.153 1.772 7.387 7.387 0 0 1 .465 2.428C21.987 8.944 22 9.283 22 12s-.01 3.056-.06 4.122a7.393 7.393 0 0 1-.465 2.428 5.106 5.106 0 0 1-2.925 2.925 7.387 7.387 0 0 1-2.428.465c-1.066.047-1.4.06-4.122.06s-3.056-.01-4.122-.06a7.393 7.393 0 0 1-2.428-.465 5.106 5.106 0 0 1-2.925-2.925 7.361 7.361 0 0 1-.465-2.428C2.013 15.056 2 14.717 2 12s.01-3.056.06-4.122a7.361 7.361 0 0 1 .465-2.428 4.88 4.88 0 0 1 1.153-1.772A4.9 4.9 0 0 1 5.45 2.525a7.361 7.361 0 0 1 2.428-.465C8.944 2.013 9.283 2 12 2zm0 5a5 5 0 1 0 5 5 5 5 0 0 0-5-5zm6.5-.25A1.25 1.25 0 1 0 17.25 8a1.25 1.25 0 0 0 1.25-1.25zM12 9a3 3 0 1 1-3 3 3 3 0 0 1 3-3z"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_list_gray.svg

@@ -0,0 +1,4 @@
+<svg data-name="list-check (1)" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+    <path data-name="패스 58" d="M0 0h16v16H0z" style="fill:none"/>
+    <path data-name="패스 59" d="M5.778 3.765H13v1.059H5.778zM3 3.5h1.667v1.588H3zm0 3.706h1.667v1.588H3zm0 3.706h1.667V12.5H3zm2.778-3.441H13v1.058H5.778zm0 3.706H13v1.059H5.778z"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_menu.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / menu" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 1" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 2" d="M3 4h18v2H3zm6 7h12v2H9zm-6 7h18v2H3z"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_more_gray.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / more1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 27" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 28" d="M4.5 10.5A1.5 1.5 0 1 0 6 12a1.5 1.5 0 0 0-1.5-1.5zm15 0A1.5 1.5 0 1 0 21 12a1.5 1.5 0 0 0-1.5-1.5zm-7.5 0a1.5 1.5 0 1 0 1.5 1.5 1.5 1.5 0 0 0-1.5-1.5z"/>
+</svg>

+ 18 - 0
assets/img/svg/ico_multi.svg

@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="49.306" height="50" viewBox="0 0 49.306 50">
+    <g data-name="그룹 145">
+        <g data-name="그룹 142" transform="translate(0 3.842)">
+            <g data-name="사각형 52" style="fill:#fff;stroke:#ddd">
+                <rect width="35.263" height="42.315" rx="5" style="stroke:none"/>
+                <rect x=".5" y=".5" width="34.263" height="41.315" rx="4.5" style="fill:none"/>
+            </g>
+            <rect data-name="사각형 53" width="23.979" height="19.747" rx="5" transform="translate(5.642 4.937)" style="fill:#eee"/>
+        </g>
+        <g data-name="그룹 144" transform="rotate(14.98 7.596 57.864)">
+            <g data-name="사각형 52" style="fill:#fff;stroke:#ddd">
+                <rect width="35.263" height="42.315" rx="5" style="stroke:none"/>
+                <rect x=".5" y=".5" width="34.263" height="41.315" rx="4.5" style="fill:none"/>
+            </g>
+            <rect data-name="사각형 53" width="23.979" height="19.747" rx="5" transform="translate(5.642 4.937)" style="fill:#eee"/>
+        </g>
+    </g>
+</svg>

+ 3 - 0
assets/img/svg/ico_price_gray.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12">
+    <path data-name="패스 38" d="M8 14a6 6 0 1 1 6-6 6 6 0 0 1-6 6zm0-1.2A4.8 4.8 0 1 0 3.2 8 4.8 4.8 0 0 0 8 12.8zM5.9 9.2h3.3a.3.3 0 0 0 0-.6H6.8a1.5 1.5 0 1 1 0-3h.6V4.4h1.2v1.2h1.5v1.2H6.8a.3.3 0 0 0 0 .6h2.4a1.5 1.5 0 1 1 0 3h-.6v1.2H7.4v-1.2H5.9z" transform="translate(-2 -2)" style="fill:#888"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_sale.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / sale-type" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 35" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 36" d="m10.9 2.1 9.9 1.415 1.414 9.9-9.192 9.192a1 1 0 0 1-1.414 0l-9.9-9.9a1 1 0 0 1 0-1.414zm.707 2.122L3.828 12l8.486 8.485 7.778-7.778-1.06-7.425-7.425-1.06zm2.12 6.364a2 2 0 1 1 2.829 0 2 2 0 0 1-2.829 0z"/>
+</svg>

+ 3 - 0
assets/img/svg/ico_sale_gray.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="12.799" height="12.8" viewBox="0 0 12.799 12.8">
+    <path data-name="패스 36" d="m7.251 2.1 6.091.871.87 6.092-5.655 5.657a.615.615 0 0 1-.87 0L1.594 8.627a.615.615 0 0 1 0-.87zm.435 1.306L2.9 8.192l5.222 5.222 4.786-4.786-.652-4.569-4.57-.653zm1.3 3.916a1.231 1.231 0 1 1 1.741 0 1.231 1.231 0 0 1-1.736 0z" transform="translate(-1.414 -2.1)"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_search.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / search" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 3" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 4" d="m18.031 16.617 4.283 4.283-1.414 1.414-4.282-4.283a9 9 0 1 1 1.414-1.414zm-2.006-.742a7 7 0 1 0-.15.15l.15-.15z"/>
+</svg>

+ 3 - 0
assets/img/svg/ico_search_gray.svg

@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16.314" height="16.314" viewBox="0 0 16.314 16.314">
+    <path data-name="패스 4" d="m14.874 13.739 3.44 3.439-1.136 1.136-3.439-3.44a7.229 7.229 0 1 1 1.136-1.136zm-1.611-.6a5.619 5.619 0 1 0-.12.12l.12-.12z" transform="translate(-2 -2)" style="fill:#888"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_send_gray.svg

@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
+    <path data-name="패스 54" d="M0 0h16v16H0z" style="fill:none"/>
+    <path data-name="패스 55" d="M10.222 10.4V8L13 11l-2.778 3v-2.4H3.556v-1.2zM5.778 2v2.4h6.667v1.2H5.778V8L3 5z"/>
+</svg>

+ 4 - 0
assets/img/svg/ico_share.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / share" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 45" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 46" d="M10 3v2H5v14h14v-5h2v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm7.586 2H13V3h8v8h-2V6.414l-7 7L10.586 12z"/>
+</svg>

+ 9 - 0
assets/img/svg/ico_single.svg

@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="41.667" height="50" viewBox="0 0 41.667 50">
+    <g data-name="그룹 142" transform="translate(-75 -178)">
+        <g data-name="사각형 52" transform="translate(75 178)" style="fill:#fff;stroke:#ddd">
+            <rect width="41.667" height="50" rx="5" style="stroke:none"/>
+            <rect x=".5" y=".5" width="40.667" height="49" rx="4.5" style="fill:none"/>
+        </g>
+        <rect data-name="사각형 53" width="28.333" height="23.333" rx="5" transform="translate(81.667 183.833)" style="fill:#eee"/>
+    </g>
+</svg>

+ 4 - 0
assets/img/svg/ico_twitter.svg

@@ -0,0 +1,4 @@
+<svg data-name="icon / twitter" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path data-name="패스 17" d="M0 0h24v24H0z" style="fill:none"/>
+    <path data-name="패스 18" d="M22.162 5.656a8.384 8.384 0 0 1-2.4.658A4.2 4.2 0 0 0 21.6 4a8.358 8.358 0 0 1-2.656 1.015 4.182 4.182 0 0 0-7.126 3.814A11.874 11.874 0 0 1 3.2 4.459a4.188 4.188 0 0 0 1.294 5.584A4.168 4.168 0 0 1 2.6 9.52v.052a4.185 4.185 0 0 0 3.354 4.1 4.21 4.21 0 0 1-1.889.072A4.185 4.185 0 0 0 7.97 16.65a8.394 8.394 0 0 1-6.191 1.732 11.83 11.83 0 0 0 6.41 1.88 11.819 11.819 0 0 0 11.9-11.9c0-.18 0-.362-.013-.54a8.5 8.5 0 0 0 2.087-2.165z"/>
+</svg>

+ 15 - 0
assets/img/svg/logo_bsc.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+ "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
+ width="20.000000pt" height="20.000000pt" viewBox="0 0 20.000000 20.000000"
+ preserveAspectRatio="xMidYMid meet">
+<metadata>
+Created by potrace 1.10, written by Peter Selinger 2001-2011
+</metadata>
+<g transform="translate(0.000000,20.000000) scale(0.100000,-0.100000)"
+fill="#00ffff" stroke="none">
+<path d="M72 144 c-26 -18 -30 -65 -6 -88 47 -48 123 23 82 76 -20 25 -51 30
+-76 12z m64 -41 c2 -45 -58 -56 -69 -14 -6 26 12 43 43 39 18 -2 25 -9 26 -25z"/>
+</g>
+</svg>

+ 11 - 0
assets/img/svg/logo_ethereum.svg

@@ -0,0 +1,11 @@
+<svg data-name="icon / ethereum" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <circle cx="12" cy="12" r="12" style="fill:#627eea"/>
+        <path d="M632.2 207.1v6.653l5.623 2.513z" transform="translate(-619.826 -204.102)" style="fill:rgba(255,255,255,.6)"/>
+        <path d="m466.423 207.1-5.623 9.166 5.623-2.513z" transform="translate(-454.049 -204.102)" style="fill:#fff"/>
+        <path d="M632.2 521.664v4.521l5.626-7.785z" transform="translate(-619.826 -505.19)" style="fill:rgba(255,255,255,.6)"/>
+        <path d="M466.423 526.185v-4.521L460.8 518.4z" transform="translate(-454.049 -505.19)" style="fill:#fff"/>
+        <path d="m632.2 415.677 5.623-3.264-5.623-2.513z" transform="translate(-619.826 -400.249)" style="fill:rgba(255,255,255,.2)"/>
+    </g>
+    <path d="m460.8 412.413 5.623 3.264V409.9z" transform="translate(-454.049 -400.249)" style="fill:rgba(255,255,255,.6)"/>
+</svg>

+ 1149 - 0
assets/img/svg/logo_metafinance.svg

@@ -0,0 +1,1149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1000px" height="1000px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">  <image id="image0" width="1000" height="1000" x="0" y="0"
+    href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
+AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAACA
+AElEQVR42uz9a3CU6ZUvev4Nb4pMCVCiGyCBlIDETYBUXATUBSS32267quto77NPnz0RXVj9bWZ2
+XXzOPjMfjsOubXsc8+FMxLbLPnsmJuJEq6jeO05795xW21Xl9qUtQd24VkmAgEJcUkLcdE0BUgop
+oeZDpkCCTCmlfN5cz/M+/19ER7sk0HpXAlKudz3vWgARERERERERERERERERERERERERERERERER
+ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERER
+ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERER
+ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERER
+ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERER
+ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERER
+ERERERERERERERERERERERERERERERERERERERERkTsWS18AERERucPvOCFn0aLvOYsWRWKPHt2W
+vh4iIiIiIiIiq/gdp9HvOP/od5yvpv1fq99xmqSvjYiIiFL7mvQFEBERUeb8jhME0ATgLQChWX5p
+BMDPATSPx2Jh6esmIiKiJ1igExERGczvOLWIF+VNC/jtLQDeHY/FWqTzICIiIhboRERExkl0yxsR
+L8xrFXzJMJ501SPS+REREdmKBToREZEh/I4TwpNuedClMM0Afj4ei7VL50tERGQbFuhERESa8ztO
+I+KFeX0Ww7Yj3lVvYVediIgoO1igExERaShxjP17AL6L2Ye+uS2CJ131sOyrQkRE5G0s0ImIiDTi
+d5x6xIvyJulrSaIN8aFyzdIXQkRE5EUs0ImIiIS5MPTNbWEA74Kr2oiIiJRigU5ERCQkS0Pf3NaM
+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
+R81CesGuXUpJSzNZez7W/3jNJ54VK6+cE95iWV1ezqqyV86J5JEIb12Kx7+LXjnnYqS/s8KsOVxz
+sF/DzydM1pYzWi1gtTjeHAHdu8waR9w0ahYnyZXN4tw6euxxnLvDeuWc8BbL6vJyVpW9ck4kj0T4
+oU48rn975ZyLYRXOJekfHtIcDotHQPeoSOOIgMXaD3r79HhgwOTcpYcOmqw7H7eOHmuL87U5r5wT
+3mNRXbaoKnvlnEgOiTCCLB7/LnrlnIthNfs8EAoqEAqarC0pEAqHm6wWR3wQ0L3N7CdsVs3i0rOy
+tKG4yOrYr3Hz6LF4XpvzyjnhTRbVZYuqslfOieTg9vdmS/G5WeaVcy5U1apsZaesNDnvZ7bVc957
+ngQI6N7WaLXw3UvtmhgdNVnbTSPX3Dx6LJ7/6HvlnPCu5awuW1aVvXJOJAe3v4UpXu/N9so5F+LH
+2TbN4YafT+gr2+ZwjZaLIz4I6B4WaSDRaLH2xOiobhg1i9tSXa30rCyTtWdy8+ixeI5u8co54V3L
+WV22rCp75ZxIDm5/C1O8ppt45Zyxyk5ZqV1rbUbrGndub4yMU0aCI6DD7Jr7VaNr7pJU6JJmcW4e
+PRbPb8K9ck5423JUl91QVV6Oc15qazM/JxKf2/9+j9cPr71yzlh9Lyvf7Kyf2c4+pzlckiCge1wo
+HG6WUbO4kaEhPeizeZ9OmUuaxbl59Fg8K8teOSe8bTmqy//hr//a+pjLcs6//MUvrI+JJHDD5cFV
+ik8DNa+cM1ZW3ds7hwd1f2LEZG1JrZHv6ZEECOiQDBtKWFXRU9LSXFFFd+voMSm+P5H3yjmBpawu
+9/f369+7IKB76ZxIbG2trdZbiCoe/z565ZyxOJKVR3M4JDwCOiTnfehBi4XvXGrXyNCQyaELd9sH
+dLeOHot34zSvnBNYyuqyxZgzr58TiS0RpnTsqK3lnHFkVT0fnBjR2ae3TdaW8z18k9XiiD8COhRp
+KNFktb5Vs7gNRUXKzLVpIiK5e/RYPOeqeuWcwKSlCJhurCp75ZxIXInQx2BbHN6f7ZVzRpOdslJV
+q7JNzmfcub2J5nDJhYCOSZ675i7Zjlzzyugxr5wTmLQU1WU3VpW9ck4kNrePIItXAzWvnHM+/92m
+SrPzGTeH+9hyccQfAR2SpFA43Cqp2WJtZ+TaGZNzb62uVkpamsnabh49Fs/rcl45JzBVPIOmm6vK
+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
+AAAASUVORK5CYII=" />
+</svg>

+ 456 - 0
assets/img/svg/logo_metarare.svg

@@ -0,0 +1,456 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1000px" height="1000px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">  <image id="image0" width="1000" height="1000" x="0" y="0"
+    href="data:image/png;base64,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" />
+</svg>

+ 95 - 0
config/webpack.config.common.js

@@ -0,0 +1,95 @@
+const path = require('path');
+const webpack = require('webpack');
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+const autoprefixer = require('autoprefixer');
+const Dotenv = require('dotenv-webpack');
+
+const commonCSSLoaderOptions = {
+  importLoaders: 2,
+  url: false
+};
+
+const cssLoaderOptions = {
+  ...commonCSSLoaderOptions,
+  modules: false
+};
+
+const scssLoaderOptions = {
+  ...commonCSSLoaderOptions,
+  modules: true,
+  localIdentName: '[name]_[local]--[hash:base64:5]'
+};
+
+const postCSSLoaderOptions = {
+  ident: 'postcss',
+  plugins: () => [autoprefixer(),],
+};
+
+module.exports = {
+  //core-js/features/object: ie 대응
+  entry: ['core-js/features/object', './src/index.tsx', './assets/css/common.css'],
+  output: {
+    filename: 'bundle.[hash].js',
+    publicPath: '/'
+  },
+  resolve: {
+    alias: {
+      '@src': path.resolve('./src'),
+      '@assets': path.resolve('./assets'),
+    },
+    extensions: ['.ts', '.tsx', '.js', '.jsx', '.json', 'scss']
+  },
+  node: {
+    fs: 'empty'
+  },
+  module: {
+    rules: [
+      {
+        test: /\.(js|jsx|ts|tsx)$/,
+        exclude: /node_modules/,
+        use: [{
+          loader: 'babel-loader'
+        },]
+      },
+      {
+        test: /\.(css)$/,
+        use: [
+          { loader: 'style-loader' },
+          { loader: 'css-loader', options: cssLoaderOptions },
+        ],
+      },
+      {
+        test: /\.(scss)$/,
+        use: [
+          { loader: 'style-loader' },
+          { loader: 'css-loader', options: scssLoaderOptions },
+          { loader: 'postcss-loader', options: postCSSLoaderOptions },
+          { loader: 'sass-loader' },
+        ],
+      },
+      {
+        test: /\.svg$/,
+        use: [{
+          loader: '@svgr/webpack',
+          options: {
+            svgoConfig: {
+              plugins: {
+                removeViewBox: false
+              }
+            }
+          }
+        }, 'url-loader'],
+      },
+    ]
+  },
+  plugins: [
+    new HtmlWebpackPlugin({
+      template: './public/index.html',
+    }),
+    new webpack.HotModuleReplacementPlugin(),
+    new Dotenv(),
+    new webpack.DefinePlugin({
+      'process.env': JSON.stringify(process.env)
+    })
+  ],
+};

+ 26 - 0
config/webpack.config.dev.js

@@ -0,0 +1,26 @@
+const webpack = require('webpack');
+
+module.exports = {
+  mode: 'development',
+  devtool: 'inline-source-map',
+  devServer: {
+    port: 3000,
+    hot: true,
+    historyApiFallback: {
+      disableDotRule: true
+    },
+    open: true,
+    disableHostCheck: true,
+    proxy: {
+      '/api/': {
+        target: 'https://jsonplaceholder.typicode.com/',
+        changeOrigin: true,
+      },
+    }
+  },
+  plugins: [
+    new webpack.DefinePlugin({
+      'process.env': JSON.stringify(process.env)
+    })
+  ],
+};

+ 26 - 0
config/webpack.config.js

@@ -0,0 +1,26 @@
+const webpackMerge = require('webpack-merge');
+
+const webpackCommonConfig = require('./webpack.config.common');
+const webpackDevConfig = require('./webpack.config.dev');
+const webpackProdConfig = require('./webpack.config.prod');
+
+const MODE = {
+  DEV: 'development',
+  ALPHA: 'none',
+  PROD: 'production',
+};
+
+module.exports = function (env, argv) {
+  const { mode } = argv;
+
+  switch (mode) {
+    case MODE.DEV:
+      return webpackMerge(webpackCommonConfig, webpackDevConfig);
+
+    case MODE.PROD:
+      return webpackMerge(webpackCommonConfig, webpackProdConfig);
+
+    default:
+      throw new Error('invalid MODE');
+  }
+};

+ 25 - 0
config/webpack.config.prod.js

@@ -0,0 +1,25 @@
+const path = require('path');
+const webpack = require('webpack');
+const CopyWebpackPlugin = require('copy-webpack-plugin');
+const { CleanWebpackPlugin } = require('clean-webpack-plugin');
+
+module.exports = {
+  mode: 'production',
+  output: {
+    filename: 'static/bundle.[hash].js',
+    path: path.resolve('dist'),
+  },
+  plugins: [
+    new CleanWebpackPlugin({
+      cleanAfterEveryBuildPatterns: ['dist']
+    }),
+    new webpack.HotModuleReplacementPlugin(),
+    new CopyWebpackPlugin(
+      [
+        {
+          from: path.resolve(__dirname, '../static'),
+          to: path.resolve(__dirname, '../dist/static')
+        }
+      ]),
+  ],
+};

+ 91 - 0
package.json

@@ -0,0 +1,91 @@
+{
+  "scripts": {
+    "local": "cross-env REACT_APP_STAGE=local webpack-dev-server --config config/webpack.config.js --mode=development",
+    "beta": "webpack-dev-server --config config/webpack.config.js --mode=development --https",
+    "deploy": "webpack --config config/webpack.config.js --mode=production --optimize-minimize"
+  },
+  "name": "metarare",
+  "version": "1.0.0",
+  "main": "index.js",
+  "license": "MIT",
+  "private": true,
+  "devDependencies": {
+    "@babel/core": "^7.8.7",
+    "@babel/plugin-transform-object-assign": "^7.10.4",
+    "@babel/plugin-transform-runtime": "^7.11.0",
+    "@babel/polyfill": "^7.10.4",
+    "@babel/preset-env": "^7.11.0",
+    "@babel/preset-react": "^7.8.3",
+    "@babel/preset-typescript": "7.3.3",
+    "@date-io/date-fns": "^1.3.13",
+    "@egjs/agent": "^2.3.0",
+    "@egjs/flicking-plugins": "^4.2.3",
+    "@egjs/react-flicking": "^4.5.1",
+    "@emotion/react": "^11.7.1",
+    "@emotion/styled": "^11.6.0",
+    "@material-ui/core": "^4.12.3",
+    "@material-ui/pickers": "^3.3.10",
+    "@mui/lab": "^5.0.0-alpha.68",
+    "@mui/material": "^5.4.1",
+    "@reduxjs/toolkit": "^1.4.0",
+    "@svgr/webpack": "^5.5.0",
+    "@tippyjs/react": "^4.2.6",
+    "@types/classnames": "^2.2.9",
+    "@types/js-cookie": "^3.0.1",
+    "@types/node": "^14.0.14",
+    "@types/react": "^16.8.23",
+    "@types/react-dom": "16.8.4",
+    "@types/react-html-parser": "^2.0.1",
+    "@types/react-redux": "^7.1.5",
+    "@types/react-router": "^5.0.3",
+    "@types/react-router-dom": "^5.1.2",
+    "@types/react-router-redux": "^5.0.18",
+    "@types/redux-actions": "^2.6.1",
+    "@types/redux-logger": "^3.0.7",
+    "@types/redux-promise": "^0.5.28",
+    "@typescript-eslint/eslint-plugin": "^2.19.2",
+    "@typescript-eslint/parser": "^2.19.2",
+    "autoprefixer": "^9.7.4",
+    "axios": "^0.19.2",
+    "axios-mock-adapter": "^1.20.0",
+    "babel-loader": "^8.0.6",
+    "classnames": "^2.2.6",
+    "clean-webpack-plugin": "^3.0.0",
+    "copy-webpack-plugin": "^5.1.1",
+    "core-js": "3",
+    "cross-env": "^7.0.3",
+    "crypto": "^1.0.1",
+    "css-loader": "^2.1.1",
+    "date-fns": "^2.28.0",
+    "dotenv-webpack": "^7.1.0",
+    "eslint": "^6.8.0",
+    "eslint-config-react": "^1.1.7",
+    "eslint-plugin-react": "^7.18.0",
+    "fs": "^0.0.1-security",
+    "html-webpack-plugin": "^3.2.0",
+    "intersection-observer": "^0.12.0",
+    "js-cookie": "^3.0.1",
+    "postcss-loader": "^3.0.0",
+    "react": "^16.13.0",
+    "react-dom": "^16.13.0",
+    "react-google-login": "^5.2.2",
+    "react-html-parser": "^2.0.2",
+    "react-kakao-login": "^2.1.0",
+    "react-prop-types": "^0.4.0",
+    "react-redux": "^7.2.0",
+    "react-router-dom": "^5.1.2",
+    "redux-actions": "^2.6.5",
+    "sass": "1.49.0",
+    "sass-loader": "^7.2.0",
+    "style-loader": "^1.0.0",
+    "ts-loader": "^6.0.4",
+    "typescript": "4.3.5",
+    "url-loader": "^4.1.1",
+    "use-callback-await-state-sync": "^1.1.3",
+    "webpack": "^4.42.0",
+    "webpack-cli": "^3.3.11",
+    "webpack-dev-server": "^3.10.3",
+    "webpack-merge": "^4.2.2",
+    "yarn": "^1.22.17"
+  }
+}

+ 28 - 0
public/index.html

@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+
+    <title>Metarare</title>
+    <!-- Google tag (gtag.js) -->
+    <script
+      async
+      src="https://www.googletagmanager.com/gtag/js?id=UA-252752099-1"
+    ></script>
+    <script>
+      window.dataLayer = window.dataLayer || [];
+      function gtag() {
+        dataLayer.push(arguments);
+      }
+      gtag("js", new Date());
+
+      gtag("config", "UA-252752099-1");
+    </script>
+  </head>
+
+  <body>
+    <div id="root"></div>
+  </body>
+</html>

+ 312 - 0
src/@types/index.d.ts

@@ -0,0 +1,312 @@
+declare module 'metarare' {
+    import { ECurrencyType, EItemType, EActivity, ESaleType, ESaleStatus, ENetworkType } from '@src/constants/Enums';
+
+    export interface IHome {
+        collections: ICollection[];
+        curating_list: INFT[];
+        explore: INFT[];
+        hot_bids: INFT[];
+        special_bids: INFT[];
+        time_auctions: INFT[];
+    }
+
+    export interface IActivity {
+        from_address: string;
+        from_user_profile: string;
+        from_user_name: string;
+        is_cancel: boolean;
+        log_relation_id: number;
+        log_type: EActivity;
+        price: string;
+        sale_uid: number;
+        to_address: string;
+        to_user_name: string;
+        to_user_profile: string;
+        token_content_url: string;
+        token_name: string;
+        tx: string;
+        created_at: string;
+        currency: ECurrencyType;
+        sale_id: number;
+        token_id: number;
+        from_user_is_artist: boolean;
+        to_user_is_artist: boolean;
+    }
+
+    export interface ICollection {
+        contract_address: string;
+        cover_image: string;
+        curating_number: number;
+        description: string;
+        highest_sale_price: number;
+        id: number;
+        is_official: boolean;
+        is_owner: boolean;
+        items: number;
+        market_cap: number;
+        name: string;
+        recent_trading_day: string;
+        status: ESaleStatus;
+        symbol: string;
+        thumbnail_image: string;
+        total_like_count: number;
+        total_volume: number;
+        user_name: string;
+        cover_image: string;
+    }
+
+    export interface ICollectionBaseInfo {
+        id: number;
+        name: string;
+        description: string;
+        contract_address: string;
+        thumbnail_image: string;
+        cover_image: string;
+        is_official: boolean;
+        user_name: string;
+        items: number;
+        highest_sale_price: number;
+        market_cap: number;
+        total_volume: number;
+        is_owner: boolean;
+    }
+
+    export interface INFT {
+        collection_id: number;
+        collection_thumbnail_image: string;
+        content_title: string;
+        content_url: string;
+        current_price: number;
+        current_currency: ECurrencyType;
+        item_index: number;
+        lastest_currency: ECurrencyType;
+        lastest_price: number;
+        owner_name: string;
+        owner_thumbnail_image: string;
+        sale_type: ESaleType;
+        total_count: number;
+        user_id: number;
+        sale_id: number;
+        token_id: number;
+        likes: number;
+        is_like: boolean;
+        end_at: string;
+        highest_price: number;
+        start_price: number;
+        created_at: number;
+        collection_name: string;
+        fixed_price: number;
+        sale_status: ESaleStatus;
+    }
+
+    export interface IUserInfo {
+        settings: {
+            network_commission: number;
+            service_commission: number;
+        };
+        simple_profile: {
+            address: string;
+            cover_image: string;
+            description: string;
+            email: string;
+            eth_balance: number;
+            is_artist: boolean;
+            mf_balance: number;
+            mr_balance: number;
+            name: string;
+            thumbnail_image: string;
+            twitter: string;
+            user_id: number;
+            available_eth_balance: number;
+            available_mf_balance: number;
+            available_mr_balance: number;
+        };
+    }
+
+    export interface IProfile {
+        cover_image: string;
+        thumbnail_image: string;
+        is_artist: boolean;
+        name: string;
+        address: string;
+        description: string;
+        twitter: string;
+        id: number;
+        email: string;
+        is_owner: boolean;
+    }
+
+    export interface ITrait {
+        created_at: string;
+        deleted_at: string;
+        id: number;
+        key: string;
+        token_id: number;
+        updated_at: string;
+        value: string;
+    }
+
+    export interface ISaleDetail {
+        id: number;
+        token_id: number;
+        token_type: EItemType;
+        content_url: string;
+        name: string;
+        description: string;
+        sale_type: ESaleType;
+        price: number;
+        highest_price: number;
+        my_bidding_price: number;
+        start_price: number;
+        start_at: string;
+        end_at: string;
+        royalties: number;
+        artist_profile_image: string;
+        artist_name: string;
+        like_count: number;
+        collection_thumbnail_image: string;
+        collection_name: string;
+        user_profile_image: string;
+        user_name: string;
+        network: string;
+        currency: ECurrencyType;
+        is_owner: boolean;
+        is_like: boolean;
+        total_count: number;
+        token_uid: string;
+        index: number;
+        status: ESaleStatus;
+        collection_is_official: boolean;
+        artist_is_official: boolean;
+        owner_is_official: boolean;
+    }
+
+    export interface ISale {
+        sale: ISaleDetail;
+        traits: ITrait[];
+    }
+
+    export interface ITokenDetail {
+        id: number; // tokenId
+        type: EItemType; // token_type
+        content_url: string;
+        name: string;
+        description: string;
+        royalties: number;
+        artist_profile_image: string;
+        artist_name: string;
+        like_count: number;
+        collection_name: string;
+        collection_thumbnail_image: string;
+        collection_is_official: boolean;
+        user_profile_image: string;
+        user_name: string;
+        network: string;
+        is_owner: boolean;
+        is_like: boolean;
+        total_count: number;
+        index: number;
+        artist_is_official: boolean;
+        owner_is_official: boolean;
+        uid: string; // token uid
+    }
+
+    export interface IToken {
+        token: ITokenDetail;
+        traits: ITrait[];
+    }
+
+    export interface ITokenCollection {
+        collection_id: number;
+        is_official: boolean;
+        name: string;
+        thumbnail_image: string;
+    }
+
+    export interface ITokenBaseInfo {
+        collection: ITokenCollection[];
+        commission: number;
+    }
+
+    export interface ILog {
+        from_address: string;
+        from_user_profile: string;
+        from_user_name: string;
+        from_user_is_artist: boolean;
+        is_cancel: boolean;
+        log_relation_id: number;
+        log_type: string;
+        price: string;
+        sale_uid: string;
+        to_address: string;
+        to_user_name: string;
+        to_user_profile: string;
+        token_content_url: string;
+        token_name: string;
+        tx: string;
+        created_at: string;
+        is_official: boolean;
+        currency: ECurrencyType;
+    }
+
+    export interface IOwner {
+        index: number;
+        name: string;
+        thumbnail_image: string;
+        total_count: number;
+        updated_at: string;
+        token_id: number;
+        is_official: boolean;
+    }
+
+    export interface IResaleInfo {
+        token: {
+            collection_id: number;
+            collection_is_official: boolean;
+            collection_name: string;
+            collection_thumbnail_image: string;
+            commission: number;
+            content_url: string;
+            description: string;
+            name: string;
+            network: ENetworkType;
+            royalties: number;
+            token_id: number;
+            total_count: number;
+            type: EItemType;
+        };
+        traits: ITrait[];
+    }
+
+    export interface IFilter {
+        category?: string;
+        collection_name?: string;
+        currency?: ECurrencyType | '';
+        currency_amount_end?: string;
+        currency_amount_start?: string;
+        limit?: number;
+        network?: string;
+        offset?: number;
+        sale_status?: string;
+        sale_type?: string;
+        token_name?: string;
+        authentication_number?: number;
+    }
+
+    export interface IBidHistory {
+        thumbnail_image: string;
+        name: string;
+        price: number;
+        is_cancel: boolean;
+        currency: ECurrencyType;
+        created_at: string;
+        is_official: boolean;
+    }
+}
+
+declare module '*.svg';
+declare module '*.scss';
+declare module '*.module.scss' {
+    const classes: { [key: string]: string };
+    export default classes;
+}

+ 7 - 0
src/@types/redux.d.ts

@@ -0,0 +1,7 @@
+import 'react-redux';
+import { RootState } from '@src/store/store';
+import { LinkHTMLAttributes } from 'react';
+
+declare module 'react-redux' {
+  interface DefaultRootState extends RootState { };
+}

+ 302 - 0
src/api/APIs.ts

@@ -0,0 +1,302 @@
+import { get, patch, post } from '@src/api';
+import { ESNSType } from '@src/constants/Login';
+import { IFilter } from 'metarare';
+import { EItemType, ECurrencyType, ESaleType } from '@src/constants/Enums';
+import { isDev, isLocal, LOCAL_ENDPOINT } from '@src/constants/NodeEnv';
+
+const getHost = () => {
+  if (isLocal) {
+    return LOCAL_ENDPOINT;
+  } else if (isDev) {
+    return 'https://apibeta.meta-rare.net';
+  } else {
+    return 'https://api.meta-rare.net';
+  }
+};
+
+const host = getHost();
+
+// collection
+const addCollection = (formData: FormData) => {
+  const url = `${host}/v1/collection`;
+
+  return post({ url, body: formData });
+};
+
+const updateCollection = (formData: FormData) => {
+  const url = `${host}/v1/collection`;
+
+  return patch({ url, body: formData });
+};
+
+const checkCollectionDuplicate = (name: string) => {
+  const url = `${host}/v1/collection/duplicate/${name}`;
+
+  return get({ url });
+};
+
+const fetchCollectionActivity = (name: string) => {
+  const url = `${host}/v1/collection/activity/${name}`;
+
+  return post({ url });
+};
+
+const fetchCollectionItem = ({ name, filter }: { name: string; filter: IFilter }) => {
+  const url = `${host}/v1/collection/item/${name}`;
+
+  return post({ url, body: filter });
+};
+
+const fetchCollection = (name: string) => {
+  const url = `${host}/v1/collection/${name}`;
+
+  return get({ url });
+};
+
+// explore
+const fetchExploreHome = (filter: IFilter) => {
+  const url = `${host}/v1/explore/home`;
+
+  return post({ url, body: filter });
+};
+
+const fetchExploreSearch = (filter: IFilter) => {
+  const url = `${host}/v1/explore/search`;
+
+  return post({ url, body: filter });
+};
+
+const fetchExploreKeyword = (collectionName: string) => {
+  const url = `${host}/v1/explore/keyword`;
+
+  return post({ url, body: { collection_name: collectionName } });
+};
+
+// home
+const fetchHome = () => {
+  const url = `${host}/v1/home`;
+
+  return get({ url });
+};
+
+
+// sale
+const saleHighestPrice = ({ bid_price, currency, sale_id }: { bid_price: number; currency: ECurrencyType; sale_id: number }) => {
+  const url = `${host}/v1/sale/auction`;
+
+  return post({ url, body: { bid_price, currency, sale_id } });
+};
+
+const saleBid = ({ bid_price, currency, sale_id }: { bid_price: number; currency: ECurrencyType; sale_id: number }) => {
+  const url = `${host}/v1/sale/bid`;
+
+  return post({ url, body: { bid_price, currency, sale_id } });
+};
+
+const cancelBid = (id: number) => {
+  const url = `${host}/v1/sale/bid`;
+
+  return patch({ url, body: { id } });
+};
+
+const fetchBid = (id: number) => {
+  const url = `${host}/v1/sale/bid/${id}`;
+
+  return get({ url });
+};
+
+const saleBuy = ({ bid_price, currency, sale_id }: { bid_price: number; currency: ECurrencyType; sale_id: number }) => {
+  const url = `${host}/v1/sale/buy`;
+
+  return post({ url, body: { bid_price, currency, sale_id } });
+};
+
+const resale = ({ currency, end_at, price, sale_type, start_at, start_price, token_id }: { currency: ECurrencyType; end_at?: string; price?: number; sale_type: ESaleType; start_at?: string; start_price?: number; token_id: number }) => {
+  const url = `${host}/v1/sale/resale`;
+
+  return post({ url, body: { currency, end_at, price, sale_type, start_at, start_price, token_id } });
+};
+
+const changeSaleStatus = (id: number) => {
+  const url = `${host}/v1/sale/status`;
+
+  return patch({ url, body: { id } });
+};
+
+const fetchSale = (id: number) => {
+  const url = `${host}/v1/sale/${id}`;
+
+  return get({ url });
+};
+
+// token
+const fetchToken = (id: number) => {
+  const url = `${host}/v1/token/${id}`;
+
+  return get({ url });
+};
+
+const addToken = (formData: FormData) => {
+  const url = `${host}/v1/token`;
+
+  return post({ url, body: formData });
+};
+
+const fetchBaseInfo = (type: EItemType) => {
+  const url = `${host}/v1/token/baseinfo?type=${type}`;
+
+  return get({ url });
+};
+
+const changeLike = ({ tokenId, isLike }: { tokenId: number; isLike: boolean }) => {
+  const url = `${host}/v1/token/like`;
+
+  return patch({ url, body: { token_id: tokenId, is_like: isLike } });
+};
+
+const fetchLog = (id: number) => {
+  const url = `${host}/v1/token/log/${id}`;
+
+  return get({ url });
+};
+
+const fetchOwner = (id: string) => {
+  const url = `${host}/v1/token/owner?token_uid=${id}`;
+
+  return get({ url });
+};
+
+const fetchResaleInfo = (id: number) => {
+  const url = `${host}/v1/token/resaleinfo/${id}`;
+
+  return get({ url });
+};
+
+// user
+const fetchUserActivity = (name: string) => {
+  const url = `${host}/v1/user/activity/${name}`;
+
+  return get({ url });
+};
+
+const fetchUserBid = (filter: IFilter) => {
+  const url = `${host}/v1/user/bid`;
+
+  return post({ url, body: filter });
+};
+
+const fetchUserCollection = ({ name, filter }: { name: string; filter: IFilter }) => {
+  const url = `${host}/v1/user/collection/${name}`;
+
+  return post({ url, body: filter });
+};
+
+const checkUserDuplicateName = (name: string) => {
+  const url = `${host}/v1/user/duplicate/${name}`;
+
+  return get({ url });
+};
+
+const fetchUserLike = ({ name, filter }: { name: string; filter: IFilter }) => {
+  const url = `${host}/v1/user/like/${name}`;
+
+  return post({ url, body: filter });
+};
+
+const fetchUserOwned = ({ name, filter }: { name: string; filter: IFilter }) => {
+  const url = `${host}/v1/user/owned/${name}`;
+
+  return post({ url, body: filter });
+};
+
+const fetchUserOnSale = ({ name, filter }: { name: string; filter: IFilter }) => {
+  const url = `${host}/v1/user/onsale/${name}`;
+
+  return post({ url, body: filter });
+};
+
+const fetchUserProfile = (name: string) => {
+  const url = `${host}/v1/user/profile/${name}`;
+
+  return get({ url });
+};
+
+const fetchUserInfo = () => {
+  const url = `${host}/v1/user/profile`;
+
+  return get({ url });
+};
+
+const changeUserProfile = (formData: FormData) => {
+  const url = `${host}/v1/user/profile`;
+
+  return patch({ url, body: formData });
+};
+
+const transfer = ({ amount, currency, to_address, code }: { amount: number; currency: ECurrencyType; to_address: string; code: string }) => {
+  const url = `${host}/v1/user/transfer`;
+
+  return post({ url, body: { amount, currency, to_address, code } });
+};
+
+const fetchSNSRedirectUrl = (type: ESNSType) => {
+  const url = `${host}/v1/user/redirect/url?type=${type}`;
+
+  return get({ url });
+};
+
+const signIn = (code: string, type: ESNSType) => {
+  const url = `${host}/v1/user/authenticate`;
+
+  return post({ url, body: { code, type } });
+};
+
+const sendEmail = ({ amount, currency }: { amount: number; currency: ECurrencyType }) => {
+  const url = `${host}/v1/user/certification/code`;
+
+  return post({ url, body: { amount, currency } });
+};
+
+const APIs = {
+  addCollection,
+  updateCollection,
+  checkCollectionDuplicate,
+  fetchCollectionActivity,
+  fetchCollectionItem,
+  fetchCollection,
+  fetchExploreHome,
+  fetchExploreSearch,
+  fetchExploreKeyword,
+  fetchHome,
+  saleHighestPrice,
+  saleBid,
+  cancelBid,
+  saleBuy,
+  resale,
+  changeSaleStatus,
+  fetchSale,
+  fetchBid,
+  fetchToken,
+  addToken,
+  fetchBaseInfo,
+  changeLike,
+  fetchLog,
+  fetchOwner,
+  fetchResaleInfo,
+  fetchUserActivity,
+  fetchUserBid,
+  fetchUserCollection,
+  fetchUserLike,
+  checkUserDuplicateName,
+  fetchUserOwned,
+  fetchUserOnSale,
+  fetchUserProfile,
+  fetchUserInfo,
+  changeUserProfile,
+  transfer,
+  fetchSNSRedirectUrl,
+  signIn,
+  sendEmail
+};
+
+export default APIs;

+ 57 - 0
src/api/index.ts

@@ -0,0 +1,57 @@
+import axios from 'axios';
+import AccessToken from '@src/constants/AccessToken';
+
+const authorizationHeader = {
+  Authorization: `Bearer ${AccessToken.getAccessToken()}`
+};
+
+export const get = async ({ url, params = {}, headers = {} }: { url: string; params?: object; headers?: object }) => {
+  try {
+    const result = await axios.get(url, {
+      ...params,
+      headers: {
+        ...authorizationHeader,
+        ...headers,
+      },
+    });
+    const { data } = result;
+
+    return data;
+  } catch (e) {
+    throw e;
+  }
+};
+
+export const post = async ({ url, body = {}, params = {}, headers = {} }: { url: string; body?: object; params?: object; headers?: object }) => {
+  try {
+    const result = await axios.post(url, body, {
+      ...params,
+      headers: {
+        ...authorizationHeader,
+        ...headers
+      },
+    });
+    const { data } = result;
+
+    return data;
+  } catch (e) {
+    throw e;
+  }
+};
+
+export const patch = async ({ url, body = {}, params = {}, headers = {} }: { url: string; body?: object; params?: object; headers?: object }) => {
+  try {
+    const result = await axios.patch(url, body, {
+      ...params,
+      headers: {
+        ...authorizationHeader,
+        ...headers
+      },
+    });
+    const { data } = result;
+
+    return data;
+  } catch (e) {
+    throw e;
+  }
+};

+ 75 - 0
src/components/common/ActivityCard.scss

@@ -0,0 +1,75 @@
+@import "/assets/css/_lib";
+
+.activity_card {
+    overflow: hidden;
+    display: flex;
+    width: 100%;
+    padding: 15px 16px;
+    align-items: center;
+    border: 1px solid #ddd;
+    border-radius: 16px;
+    box-sizing: border-box;
+    font-size: 12px;
+    line-height: 16px;
+    text-align: left;
+    font-family: 'Retorica', 'Barun';
+    & + .activity_card {
+        margin-top: 20px;
+    }
+}
+.thumb_wrap {
+    position: relative;
+    margin-right: 10px;
+    flex: 0 0 auto;
+    .thumb {
+        width: 70px;
+        height: 70px;
+        border-radius: 50%;
+        object-fit: cover;
+    }
+    .ico_activity {
+        position: absolute;
+        width: 20px;
+        height: 20px;
+        right: 0;
+        bottom: 0;
+    }
+}
+.info_wrap {
+    overflow: hidden;
+    flex: 1 1 auto;
+}
+.title {
+    font-weight: 400;
+    font-size: 14px;
+}
+.guide_text {
+    margin-right: 5px;
+    color: #888;
+}
+.user_info {
+    @include ellipsis;
+    padding: 4px 32px 0 0;
+    line-height: 20px;
+    .type {
+        margin-right: 4px;
+    }
+    .name {
+        margin-left: 3px;
+    }
+}
+.price_info {
+    padding-top: 5px;
+    del.price {
+        color: #888;
+    }
+    .send_address {
+        font-family: 'Retorica', 'Barun';
+    }
+}
+
+.time {
+    padding-top: 12px;
+    color: #888;
+    line-height: 16px;
+}

+ 277 - 0
src/components/common/ActivityCard.tsx

@@ -0,0 +1,277 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+
+import styles from './ActivityCard.scss';
+
+import CircleThumb from '@src/components/common/CircleThumb';
+import { ReactComponent as IconHeart } from '@assets/img/svg/ico_activity_like.svg';
+import { ReactComponent as IconBid } from '@assets/img/svg/ico_activity_bid.svg';
+import { ReactComponent as IconSell } from '@assets/img/svg/ico_activity_sell.svg';
+import { ReactComponent as IconCreate } from '@assets/img/svg/ico_activity_create.svg';
+import { ReactComponent as IconTransfer } from '@assets/img/svg/ico_activity_transfer.svg';
+import { ReactComponent as IconBurn } from '@assets/img/svg/ico_activity_burn.svg';
+import { ReactComponent as IconPurchase } from '@assets/img/svg/ico_activity_purchase.svg';
+import { ECurrencyType, EActivity, ESaleStatus } from '@src/constants/Enums';
+import TimeUtil from '@src/utils/TimeUtil';
+import { useHistory } from 'react-router-dom';
+import URLInfo from '@src/constants/URLInfo';
+import FileUtil from '@src/utils/FileUtil';
+import { selectedCurrency } from '@src/components/common/InputPrice'
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  title: string;
+  thumbUrl: string;
+  fromUserThumbSrc: string;
+  fromUserName: string;
+  toUserThumbSrc: string;
+  toUserName: string;
+  createdAt: string;
+  logType: EActivity;
+  price: string;
+  currency: ECurrencyType;
+  isCancle: boolean;
+  toAddress: string;
+  fromAddress: string;
+  saleId: number;
+  tokenId: number;
+  fromUserIsArtist: boolean;
+  toUserIsArtist: boolean;
+};
+
+const ActivityCard: React.FC<IOwnProps> = ({
+  title,
+  thumbUrl,
+  fromUserThumbSrc,
+  fromUserName,
+  toUserThumbSrc,
+  toUserName,
+  createdAt,
+  logType,
+  price,
+  currency,
+  isCancle,
+  toAddress,
+  fromAddress,
+  saleId,
+  tokenId,
+  fromUserIsArtist,
+  toUserIsArtist
+}) => {
+  const history = useHistory();
+
+  const handleClick = () => {
+    if (saleId) {
+      history.push(URLInfo.getSaleUrl(saleId));
+    } else {
+      history.push(URLInfo.getTokenUrl(tokenId));
+    }
+  };
+
+  return (
+    <button type="button" className={cx('activity_card')} onClick={handleClick}>
+      <div className={cx('thumb_wrap')}>
+        {FileUtil.isVideo(thumbUrl) ? (
+          <video src={thumbUrl} width="70" height="70" className={cx('thumb')} autoPlay muted playsInline />
+        ) : (
+          <CircleThumb thumbSrc={thumbUrl} width={70} height={70} />
+        )}
+        {logType === EActivity.LIKE && (
+          <IconHeart className={cx('ico_activity')} />
+        )}
+        {logType === EActivity.PURCHASE && (
+          <IconPurchase className={cx('ico_activity')} />
+        )}
+        {logType === EActivity.SELL && (
+          <IconSell className={cx('ico_activity')} />
+        )}
+        {logType === EActivity.BID && (
+          <IconBid className={cx('ico_activity')} />
+        )}
+        {logType === EActivity.CREATE && (
+          <IconCreate className={cx('ico_activity')} />
+        )}
+        {logType === EActivity.TRANSFER && (
+          <IconTransfer className={cx('ico_activity')} />
+        )}
+        {logType === EActivity.BURN && (
+          <IconBurn className={cx('ico_activity')} />
+        )}
+      </div>
+      <div className={cx('info_wrap')}>
+        <strong className={cx('title')}>{title}</strong>
+        {logType === EActivity.LIKE && (
+          <div className={cx('user_info')}>
+            <span className={cx('type')}>좋아요</span>
+            <span className={cx('guide_text')}>by</span>
+            <CircleThumb
+              thumbSrc={fromUserThumbSrc}
+              width={20}
+              height={20}
+              isOfficial={fromUserIsArtist}
+              officialWidth={8}
+              officialHeight={8}
+            />
+            <span className={cx('name')}>{fromUserName || fromAddress}</span>
+          </div>
+        )}
+        {logType === EActivity.PURCHASE && (
+          <>
+            <div className={cx('user_info')}>
+              <span className={cx('type')}>구매</span>
+              <span className={cx('guide_text')}>from</span>
+              <CircleThumb
+                thumbSrc={fromUserThumbSrc}
+                width={20}
+                height={20}
+                isOfficial={fromUserIsArtist}
+                officialWidth={8}
+                officialHeight={8}
+              />
+              <span className={cx('name')}>{fromUserName || fromAddress}</span>
+            </div>
+            <div className={cx('user_info')}>
+              <span className={cx('guide_text')}>to</span>
+              {toUserName ? (
+                <>
+                  <CircleThumb
+                    thumbSrc={toUserThumbSrc}
+                    width={20}
+                    height={20}
+                    isOfficial={toUserIsArtist}
+                    officialWidth={8}
+                    officialHeight={8}
+                  />
+                  <span className={cx('name')}>{toUserName}</span>
+                </>
+              ) : (
+                <span className={cx('send_address')}>{toAddress}</span>
+              )}
+            </div>
+          </>
+        )}
+        {logType === EActivity.SELL && (
+          <>
+            <div className={cx('user_info')}>
+              <span className={cx('type')}>판매</span>
+              <span className={cx('guide_text')}>by</span>
+              <CircleThumb
+                thumbSrc={fromUserThumbSrc}
+                width={20}
+                height={20}
+                isOfficial={fromUserIsArtist}
+                officialWidth={8}
+                officialHeight={8}
+              />
+              <span className={cx('name')}>{fromUserName || fromAddress}</span>
+            </div>
+            <div className={cx('price_info')}>
+              <span className={cx('guide_text')}>for</span>
+              {isCancle ? (
+                <del className={cx('price')}>{Number(price)} {selectedCurrency(currency)}</del>
+              ) : (
+                < span className={cx('price')}>{Number(price)} {selectedCurrency(currency)}</span>
+              )}
+            </div>
+          </>
+        )}
+        {logType === EActivity.BID && (
+          <>
+            <div className={cx('user_info')}>
+              <span className={cx('type')}>{isCancle ? '입찰취소' : '입찰'}</span>
+              <span className={cx('guide_text')}>by</span>
+              <CircleThumb
+                thumbSrc={fromUserThumbSrc}
+                width={20}
+                height={20}
+                isOfficial={fromUserIsArtist}
+                officialWidth={8}
+                officialHeight={8}
+              />
+              <span className={cx('name')}>{fromUserName || fromAddress}</span>
+            </div>
+            <div className={cx('price_info')}>
+              <span className={cx('guide_text')}>for</span>
+              {isCancle ? (
+                <del className={cx('price')}>{Number(price)} {selectedCurrency(currency)}</del>
+              ) : (
+                < span className={cx('price')}>{Number(price)} {selectedCurrency(currency)}</span>
+              )}
+            </div>
+          </>
+        )}
+        {logType === EActivity.CREATE && (
+          <div className={cx('user_info')}>
+            <span className={cx('type')}>등록</span>
+            <span className={cx('guide_text')}>by</span>
+            <CircleThumb
+              thumbSrc={fromUserThumbSrc}
+              width={20}
+              height={20}
+              isOfficial={fromUserIsArtist}
+              officialWidth={8}
+              officialHeight={8}
+            />
+            <span className={cx('name')}>{fromUserName || fromAddress}</span>
+          </div>
+        )}
+        {logType === EActivity.TRANSFER && (
+          <>
+            <div className={cx('user_info')}>
+              <span className={cx('type')}>전송</span>
+              <span className={cx('guide_text')}>from</span>
+              <CircleThumb
+                thumbSrc={fromUserThumbSrc}
+                width={20}
+                height={20}
+                isOfficial={fromUserIsArtist}
+                officialWidth={8}
+                officialHeight={8}
+              />
+              <span className={cx('name')}>{fromUserName || fromAddress}</span>
+            </div>
+            <div className={cx('price_info')}>
+              <div className={cx('send_info')}>
+                <span className={cx('guide_text')}>to</span>
+                {toUserName ? (
+                  <>
+                    <CircleThumb
+                      thumbSrc={toUserThumbSrc}
+                      width={20}
+                      height={20}
+                      isOfficial={toUserIsArtist}
+                      officialWidth={8}
+                      officialHeight={8}
+                    />
+                    <span className={cx('name')}>{toUserName}</span>
+                  </>
+                ) : (
+                  <span className={cx('send_address')}>{toAddress}</span>
+                )}
+              </div>
+            </div>
+          </>
+        )}
+        {logType === EActivity.BURN && (
+          <div className={cx('user_info')}>
+            <span className={cx('type')}>삭제</span>
+            <span className={cx('guide_text')}>from</span>
+            <CircleThumb
+              thumbSrc={fromUserThumbSrc}
+              width={20}
+              height={20}
+              isOfficial={fromUserIsArtist}
+              officialWidth={8}
+              officialHeight={8}
+            />
+            <span className={cx('name')}>{fromUserName || fromAddress}</span>
+          </div>
+        )}
+        <div className={cx('time')}>{TimeUtil.getPeriodTimeString(createdAt)}</div>
+      </div>
+    </button >
+  );
+};
+
+export default ActivityCard;

+ 86 - 0
src/components/common/BannerCard.scss

@@ -0,0 +1,86 @@
+@import "/assets/css/_lib";
+
+.banner_card {
+    position: relative;
+    display: inline-block;
+    width: 36vw;
+    vertical-align: top;
+    @include pc {
+        width: 100%;
+        padding: 10px;
+        box-sizing: border-box;
+    }
+    &.main {
+        position: absolute;
+        top: 0;
+        left: 0;
+        right: 0;
+        bottom: 0;
+        padding: 0;
+        width: 100%;
+        height: 100%;
+        animation: fadeIn 0.1s linear;
+        @include pc {
+            padding: 10px;
+        }
+        .title {
+            top: 21px;
+            left: 20px;
+            right: 20px;
+            max-height: 84px;
+            font-size: 32px;
+            line-height: 42px;
+        }
+        @include pc {
+            .title {
+                top: 25px;
+                left: 33px;
+                right: 33px;
+                max-height: 136px;
+                font-size: 52px;
+                line-height: 68px;
+            }
+        }
+    }
+}
+.card_box {
+    overflow: hidden;
+    position: relative;
+    display: block;
+    padding-top: 100%;
+    border-radius: 12px;
+    background-color: #f5f5f5;
+}
+.thumb {
+    position: absolute;
+    top: -100%;
+    left: -100%;
+    right: -100%;
+    bottom: -100%;
+    margin: auto;
+}
+.title {
+    @include multi-ellipsis(18px, 2);
+    position: absolute;
+    top: 16px;
+    left: 16px;
+    right: 16px;
+    color: #fff;
+    font-size: 13px;
+    @include pc {
+        top: 21px;
+        left: 20px;
+        right: 20px;
+        max-height: 50px;
+        font-size: 18px;
+        line-height: 25px;
+    }
+}
+@keyframes fadeIn {
+    from {
+        opacity: 0;
+    }
+    to {
+        opacity: 1;
+    }
+}

+ 39 - 0
src/components/common/BannerCard.tsx

@@ -0,0 +1,39 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+
+import styles from './BannerCard.scss';
+import { Link } from 'react-router-dom';
+import URLInfo from '@src/constants/URLInfo';
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  isMain?: boolean;
+  className?: string;
+  src: string;
+  collectionName: string;
+};
+
+const BannerCard: React.FC<IOwnProps> = ({
+  isMain,
+  className,
+  src,
+  collectionName
+}) => {
+  return (
+    // 배너 카드 종류 big, small
+    <div className={cx('banner_card', isMain && 'main', className)}>
+      <Link to={URLInfo.getProfileCollectionUrl(collectionName)} className={cx('card_box')}>
+        <img
+          width="100%"
+          className={cx('thumb')}
+          src={src}
+          alt={collectionName}
+        />
+        <strong className={cx('title')}>{collectionName}</strong>
+      </Link>
+    </div>
+  );
+};
+
+export default BannerCard;

+ 15 - 0
src/components/common/ButtonMore.scss

@@ -0,0 +1,15 @@
+.more_wrap {
+    padding: 30px 0;
+    text-align: center;
+}
+.btn_more {
+    width: 161px;
+    height: 37px;
+    border: 2px solid #16dccf;
+    border-radius: 19px;
+    color: #16dccf;
+    font-size: 12px;
+    font-weight: 700;
+    line-height: 35px;
+    font-family: 'Retorica', 'Barun';
+}

+ 22 - 0
src/components/common/ButtonMore.tsx

@@ -0,0 +1,22 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+
+import styles from './ButtonMore.scss';
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  onClickMore: () => void;
+};
+
+const ButtonMore: React.FC<IOwnProps> = ({ onClickMore }) => {
+  return (
+    <div className={cx('more_wrap')}>
+      <button type="button" className={cx('btn_more')} onClick={onClickMore}>
+        더보기
+      </button>
+    </div>
+  );
+};
+
+export default ButtonMore;

+ 43 - 0
src/components/common/ButtonOption.scss

@@ -0,0 +1,43 @@
+@import "/assets/css/_lib";
+
+.btn_option {
+    overflow: hidden;
+    flex: 1 1 0;
+    min-width: 109px;
+    padding: 20px 16px 12px;
+    border: 1px solid #ddd;
+    border-radius: 16px;
+    font-size: 12px;
+    line-height: 18px;
+    font-family: 'Retorica', 'Barun';
+    &:disabled {
+        cursor: initial;
+    }
+    @include pc {
+        min-width: 149px;
+    }
+    & + .btn_option {
+        margin-left: 8px;
+    }
+    &:first-child {
+        margin-left: 16px;
+    }
+    &:last-child {
+        margin-right: 16px;
+    }
+    .thumb {
+        padding-bottom: 11px;
+        svg {
+            width: auto;
+            height: 50px;
+            vertical-align: top;
+        }
+    }
+    .title {
+        @include ellipsis;
+    }
+    .desc {
+        color: #888;
+        padding: 7px 17px 0;
+    }
+}

+ 41 - 0
src/components/common/ButtonOption.tsx

@@ -0,0 +1,41 @@
+import React, { ReactNode } from 'react';
+import classNames from 'classnames/bind';
+import styles from './ButtonOption.scss';
+import CreateStatus from '@src/components/common/CreateStatus';
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  title: string;
+  buttonText: string;
+  desc?: string;
+  isSelected?: boolean;
+  isDisabled?: boolean;
+  onClick?: () => void;
+  children: ReactNode;
+}
+
+const ButtonOption: React.FC<IOwnProps> = ({
+  title,
+  desc,
+  children,
+  buttonText,
+  isSelected,
+  isDisabled,
+  onClick,
+}) => {
+  return (
+    <button type="button" className={cx('btn_option')} aria-pressed={isSelected} aria-disabled={isDisabled} disabled={isDisabled} onClick={onClick}>
+      <div className={cx('thumb')}>
+        {children}
+      </div>
+      <div className={cx('title')}>{title}</div>
+      {desc && (
+        <div className={cx('desc')}>{desc}</div>
+      )}
+      <CreateStatus text={buttonText} isSelected={isSelected} isDisabled={isDisabled} />
+    </button>
+  );
+};
+
+export default ButtonOption;

+ 28 - 0
src/components/common/CircleThumb.scss

@@ -0,0 +1,28 @@
+.circle_thumb {
+    display: inline-block;
+    position: relative;
+    vertical-align: top;
+    background-color: #f5f5f5;
+    border-radius: 50%;
+    .thumb {
+        border-radius: 50%;
+    }
+    .official_mark {
+        .ico_check {
+            position: absolute;
+            right: 0;
+            bottom: 0;
+            height: auto;
+        }
+    }
+    &.border_1 {
+        .thumb {
+            border: 1px solid #fff;
+        }
+    }
+    &.border_2 {
+        .thumb {
+            border: 2px solid #fff;
+        }
+    }
+}

+ 45 - 0
src/components/common/CircleThumb.tsx

@@ -0,0 +1,45 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+
+import styles from './CircleThumb.scss';
+import { ReactComponent as IconCheck } from '@assets/img/svg/ico_check_pink.svg';
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  width: number;
+  height: number;
+  thumbSrc?: string;
+  border?: number;
+  isOfficial?: boolean;
+  officialWidth?: number;
+  officialHeight?: number;
+};
+
+const CircleThumb: React.FC<IOwnProps> = ({
+  thumbSrc,
+  width,
+  height,
+  border,
+  isOfficial,
+  officialWidth,
+  officialHeight,
+}) => {
+  return (
+    <span className={cx('circle_thumb', `border_${border}`)} style={{ width: `${width}px`, height: `${height}px` }}>
+      <img src={thumbSrc || '/static/img/svg/user_profile.svg'} alt="" width={width} height={height} className={cx('thumb')} />
+      {!!isOfficial && (
+        <div className={cx('official_mark')}>
+          <span className={cx('blind')}>official</span>
+          <IconCheck
+            className={cx('ico_check')}
+            width={officialWidth}
+            height={officialHeight}
+          />
+        </div>
+      )}
+    </span>
+  );
+};
+
+export default CircleThumb;

+ 77 - 0
src/components/common/CollectionCard.scss

@@ -0,0 +1,77 @@
+@import "/assets/css/_lib";
+
+.collection_card {
+    &.scroll {
+        position: relative;
+        display: inline-block;
+        padding: 0 10px;
+        width: 292px;
+        vertical-align: top;
+        @include pc {
+            width: 20%;
+            box-sizing: border-box;
+        }
+    }
+}
+.collection_wrap {
+    overflow: hidden;
+    position: relative;
+    display: block;
+    border-radius: 16px;
+    &::after {
+        content: '';
+        position: absolute;
+        top: 0;
+        left: 0;
+        right: 0;
+        bottom: 0;
+        border: 1px solid #ddd;
+        border-radius: 16px;
+    }
+}
+.collection_area {
+    position: relative;
+    padding-bottom: 20px;
+    text-align: center;
+    letter-spacing: -0.5px;
+    z-index: 2;
+    .cover {
+        overflow: hidden;
+        position: relative;
+        height: 89px;
+        background-color: #eee;
+        z-index: 1;
+        img {
+            width: 100%;
+            height: 100%;
+            object-fit: cover;
+        }
+    }
+    .profile {
+        margin-top: -40px;
+    }
+}
+.title {
+    @include ellipsis;
+    padding-top: 5px;
+}
+.author {
+    @include ellipsis;
+    .text {
+        color: #888;
+        font-size: 12px;
+        margin-right: 5px;
+    }
+}
+.collection_info {
+    padding-top: 12px;
+    font-size: 13px;
+    line-height: 17px;
+}
+.info_area {
+    @include ellipsis;
+    .text {
+        margin-right: 9px;
+        color: #888;
+    }
+}

+ 73 - 0
src/components/common/CollectionCard.tsx

@@ -0,0 +1,73 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+
+import styles from './CollectionCard.scss';
+import { Link } from 'react-router-dom';
+
+import UserThumb from '@src/components/common/CircleThumb';
+import URLInfo from '@src/constants/URLInfo';
+import NumberUtil from '@src/utils/NumberUtil';
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  thumbSrc: string;
+  name: string;
+  author: string;
+  isOfficial: boolean;
+  totalItem: number;
+  totalVolume: number;
+  className?: string;
+  coverImage: string;
+};
+
+const CollectionCard: React.FC<IOwnProps> = ({
+  thumbSrc,
+  name,
+  author,
+  isOfficial,
+  totalItem,
+  totalVolume,
+  className,
+  coverImage
+}) => {
+  return (
+    <div className={cx('collection_card', className)}>
+      <Link to={URLInfo.getProfileCollectionUrl(name)} className={cx('collection_wrap')}>
+        <div className={cx('collection_area')}>
+          <div className={cx('cover')}>
+            <img src={coverImage} alt="" />
+          </div>
+          <div className={cx('proflie')}>
+            <UserThumb
+              thumbSrc={thumbSrc}
+              width={58}
+              height={58}
+              isOfficial={isOfficial}
+              officialWidth={20}
+              officialHeight={20}
+              border={2}
+            />
+          </div>
+          <div className={cx('title')}>{name}</div>
+          <div className={cx('author')}>
+            <span className={cx('text')}>by</span>
+            <span className={cx('name')}>{author}</span>
+          </div>
+          <div className={cx('collection_info')}>
+            <div className={cx('info_area')}>
+              <strong className={cx('text')}>Items</strong>
+              <strong className={cx('info')}>{NumberUtil.numFormatter(totalItem)}</strong>
+            </div>
+            <div className={cx('info_area')}>
+              <strong className={cx('text')}>Total Volume</strong>
+              <strong className={cx('info')}>${NumberUtil.numFormatter(totalVolume)}</strong>
+            </div>
+          </div>
+        </div>
+      </Link>
+    </div>
+  );
+};
+
+export default CollectionCard;

+ 24 - 0
src/components/common/CollectionCardList.scss

@@ -0,0 +1,24 @@
+@import "/assets/css/_lib";
+
+.nft_list_wrap {
+    .nft_list {
+        @include pc {
+            margin: -10px;
+        }
+        .item {
+            @include pc {
+                display: inline-block;
+                width: 20%;
+                padding: 10px;
+                box-sizing: border-box;
+                vertical-align: top;
+            }
+            & + .item {
+                padding-top: 20px;
+                @include pc {
+                    padding-top: 10px;
+                }
+            }
+        }
+    }
+}

+ 46 - 0
src/components/common/CollectionCardList.tsx

@@ -0,0 +1,46 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+
+import styles from './CollectionCardList.scss';
+import ButtonMore from '@src/components/common/ButtonMore';
+import CollectionCard from './CollectionCard';
+import { ICollection } from 'metarare';
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  list: ICollection[];
+  onClickMore: () => void;
+  showMore: boolean;
+};
+
+const CollectionCardList: React.FC<IOwnProps> = ({
+  list,
+  onClickMore,
+  showMore
+}) => {
+  return (
+    <div className={cx('nft_list_wrap')}>
+      <ul className={cx('nft_list')}>
+        {list.map(item => (
+          <li className={cx('item')} key={item.id}>
+            <CollectionCard
+              thumbSrc={item.thumbnail_image}
+              name={item.name}
+              author={item.user_name}
+              isOfficial={item.is_official}
+              totalItem={item.items}
+              totalVolume={item.total_volume}
+              coverImage={item.cover_image}
+            />
+          </li>
+        ))}
+      </ul>
+      {showMore && (
+        <ButtonMore onClickMore={onClickMore} />
+      )}
+    </div>
+  );
+};
+
+export default CollectionCardList;

+ 15 - 0
src/components/common/ContentLoading.scss

@@ -0,0 +1,15 @@
+.content_loading {
+  position: relative;
+  height: 100px;
+}
+.ico_loading {
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  width: 32px;
+  height: 8px;
+  background: url(/static/img/gif/ico_loading.gif);
+  background-size: 32px 8px;
+  transform: translate(-50%, -50%);
+  -webkit-transform: translate(-50%, -50%);
+}

+ 15 - 0
src/components/common/ContentLoading.tsx

@@ -0,0 +1,15 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+
+import styles from './ContentLoading.scss';
+const cx = classNames.bind(styles);
+
+const ContentLoading: React.FC = () => {
+  return (
+    <div className={cx('content_loading')}>
+      <div className={cx('ico_loading')} />
+    </div>
+  );
+};
+
+export default ContentLoading;

+ 26 - 0
src/components/common/CreateStatus.scss

@@ -0,0 +1,26 @@
+.status {
+    height: 35px;
+    margin-top: 18px;
+    border: 1px solid #ddd;
+    border-radius: 18px;
+    font-size: 14px;
+    font-weight: 700;
+    line-height: 37px;
+    background-color: #fff;
+    text-align: center;
+    &.selected {
+        border-color: #16dccf;
+        background-color: #16dccf;
+    }
+    &.disabled {
+        border-color: #f5f5f5;
+        background-color: #f5f5f5;
+        color: #ddd;
+    }
+    .ico_check {
+        width: 24px;
+        height: 24px;
+        margin-top: 5px;
+        vertical-align: top;
+    }
+}

+ 31 - 0
src/components/common/CreateStatus.tsx

@@ -0,0 +1,31 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+
+import styles from './CreateStatus.scss';
+import { ReactComponent as IconCheck } from '@assets/img/svg/ico_check_white.svg';
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  isSelected?: boolean;
+  isDisabled?: boolean;
+  text: string;
+};
+
+const CreateStatus: React.FC<IOwnProps> = ({
+  isSelected,
+  isDisabled,
+  text,
+}) => {
+  return (
+    <div className={cx('status', isSelected && 'selected', isDisabled && 'disabled')}>
+      {isSelected ? (
+        <IconCheck className={cx('ico_check')} />
+      ) : (
+        <div className={cx('text')}>{text}</div>
+      )}
+    </div>
+  );
+};
+
+export default CreateStatus;

+ 4 - 0
src/components/common/Feature.scss

@@ -0,0 +1,4 @@
+.input {
+  width: calc(50% - 8px);
+  margin: 0 4px 8px;
+}

+ 63 - 0
src/components/common/Feature.tsx

@@ -0,0 +1,63 @@
+import React, { useState } from 'react';
+import classNames from 'classnames/bind';
+import styles from './Feature.scss';
+import Input from './Input';
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  feature: IFeature[];
+  setFeature: (feature: IFeature[]) => void;
+  createNewFeature: () => void;
+  index: number;
+  isResalePage: boolean;
+};
+
+export interface IFeature {
+  key: string;
+  value: string;
+}
+
+const Feature: React.FC<IOwnProps> = ({ feature, setFeature, createNewFeature, index, isResalePage }) => {
+  const [key, setKey] = useState<string>('');
+  const [value, setValue] = useState<string>('');
+  const [isCreateNewFeature, setIsCreateNewFeature] = useState<boolean>(false);
+
+  const createNew = () => {
+    createNewFeature();
+    setIsCreateNewFeature(true);
+  };
+
+  const handleChangeKey = (e: React.ChangeEvent<HTMLInputElement>) => {
+    if (value && !isCreateNewFeature) {
+      createNew();
+    }
+    setKey(e.target.value);
+  };
+
+  const handleChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {
+    if (key && !isCreateNewFeature) {
+      createNew();
+    }
+
+    setValue(e.target.value);
+  };
+
+  const handleBlur = () => {
+    const list = [...feature];
+
+    list[index].key = key;
+    list[index].value = value;
+
+    setFeature(list);
+  };
+
+  return (
+    <>
+      <Input className={cx('input')} placeholder={'예) 사이즈'} onChange={handleChangeKey} onBlur={handleBlur} disabled={isResalePage} value={key} />
+      <Input className={cx('input')} placeholder={'예) M'} onChange={handleChangeValue} onBlur={handleBlur} disabled={isResalePage} value={value} />
+    </>
+  );
+};
+
+export default Feature;

+ 118 - 0
src/components/common/Footer.scss

@@ -0,0 +1,118 @@
+@import "/assets/css/_lib";
+
+.footer {
+  background-color: #eee;
+  padding: 42px 28px;
+  @include pc {
+    padding: 42px 0;
+  }
+  .inner {
+    text-align: center;
+    @include pc {
+      max-width: 1480px;
+      padding: 0 20px;
+      margin: 0 auto;
+      box-sizing: border-box;
+      text-align: left;
+    }
+  }
+  .info {
+    overflow: hidden;
+  }
+  .desc {
+    margin-top: 8px;
+    margin-bottom: 8px;
+  }
+  .title {
+    font-weight: 500;
+    font-size: 14px;
+  }
+  .sns_area {
+    @include pc {
+      float: left;
+    }
+  }
+  .sns_link {
+    margin-top: 23px;
+    .link {
+      display: inline-block;
+      width: 20px;
+      height: 20px;
+      vertical-align: top;
+      & + .link {
+        margin-left: 34px;
+      }
+      svg {
+        width: 100%;
+        height: auto;
+      }
+    }
+    .link_facebook {
+      display: inline-block;
+      width: 18px;
+      height: 18px;
+      vertical-align: top;
+      margin-left: 34px;
+    }
+  }
+  .powerd_area {
+    margin-top: 24px;
+    @include pc {
+      float: right;
+      margin-top: 0;
+    }
+    .title {
+      display: block;
+    }
+    .logo_area {
+      display: inline-block;
+      overflow: hidden;
+      margin-top: 10px;
+      vertical-align: top;
+      .logo {
+        overflow: hidden;
+        float: left;
+        width: 32px;
+        height: 32px;
+        img {
+          width: 100%;
+          height: auto;
+        }
+      }
+      .text {
+        float: left;
+        margin-left: 8px;
+        font-size: 16px;
+        line-height: 32px;
+      }
+    }
+  }
+  .info_area {
+    overflow: hidden;
+    margin-top: 20px;
+    padding-top: 22px;
+    border-top: 1px solid #ddd;
+    color: #888;
+    font-size: 12px;
+  }
+  .policy_area {
+    @include pc {
+      float: right;
+    }
+    .link {
+      & + .link {
+        margin-left: 20px;
+        @include pc {
+          margin-left: 29px;
+        }
+      }
+    }
+  }
+  .right {
+    margin-top: 11px;
+    @include pc {
+      float: left;
+      margin-top: 0;
+    }
+  }
+}

+ 116 - 0
src/components/common/Footer.tsx

@@ -0,0 +1,116 @@
+import React from "react";
+import classNames from "classnames/bind";
+import styles from "./Footer.scss";
+import { ReactComponent as IconTwitter } from "@assets/img/svg/ico_twitter.svg";
+import { ReactComponent as IconInsta } from "@assets/img/svg/ico_insta.svg";
+import { ReactComponent as IconDiscord } from "@assets/img/svg/ico_discord.svg";
+import { ReactComponent as IconFacebook } from "@assets/img/svg/ico_facebook.svg";
+import { YoutubeIcon } from "./icon/youtube";
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {}
+
+const Footer: React.FC<IOwnProps> = ({}) => {
+  return (
+    <div className={cx("footer")}>
+      <div className={cx("inner")}>
+        <div className={cx("info")}>
+          <div className={cx("sns_area")}>
+            <p className={cx("desc")}>
+              (주) 메타레어 앤에프티
+              <br />
+              MetaRare NFT lnc.
+              <br />
+              고객센터
+              <br />
+              info@meta-rare.net
+              <br />
+              전화 02-2038-8262 (월~금 9am~6pm 유료전화)
+              <br />
+              사업자번호 : 302-87-02190
+              <br />
+              주소 : 서울시 강남구 신사동 508-2 용호빌딩 6층
+              <br />
+              대표 : 정종회
+              <br />
+              <br />
+              메타레어 NFT내 모든 NFT작품은 발행인이 주체로서 제공을 하며,
+              메타레어 NFT는 모든 NFT작품의 소유자나 발행자가 아닌 거래중개자
+              입니다.
+              <br />
+              메타레어 NFT는 투자 또는 거래를 권유목적으로 운영하지 않으며,
+              NFT작품 거래시 발생할 수 있는 모든 책임은 NFT발행주체가
+              부담합니다.
+              <br />
+              <br />
+              MetaRare Inc. All Rights Reserved
+              <br />
+              <br />
+              누구나 작가가 되는 NFT거래소, 메타레어 NFT
+              <br />
+              Driving Metaverse Everywhere
+              <br />
+            </p>
+            <div className={cx("sns_link")}>
+              <a
+                href="https://twitter.com/metarare_nft"
+                target="_blank"
+                className={cx("link")}
+              >
+                <IconTwitter />
+                <span className={cx("blind")}>트위터</span>
+              </a>
+              <a
+                href="https://www.instagram.com/p/CbPWh7XB9Am/?igshid=YmMyMTA2M2Y="
+                target="_blank"
+                className={cx("link")}
+              >
+                <IconInsta />
+                <span className={cx("blind")}>인스타그램</span>
+              </a>
+              <a
+                href="https://www.youtube.com/channel/UC08Jk0jzWohvjQT0H62Y17Q
+"
+                target="_blank"
+                className={cx("link")}
+              >
+                <YoutubeIcon />
+                <span className={cx("blind")}>Youtube</span>
+              </a>
+              <a
+                href="https://www.facebook.com/MetaRare-NFT-lnc-112216471398493"
+                target="_blank"
+                className={cx("link_facebook")}
+              >
+                <IconFacebook />
+                <span className={cx("blind")}>Facebook</span>
+              </a>
+            </div>
+          </div>
+        </div>
+        <div className={cx("info_area")}>
+          <div className={cx("policy_area")}>
+            <a
+              href="../../../static/pdf/terms.pdf"
+              download
+              className={cx("link")}
+            >
+              서비스이용약관
+            </a>
+            <a
+              href="../../../static/pdf/personal.pdf"
+              download
+              className={cx("link")}
+            >
+              개인정보처리방침
+            </a>
+          </div>
+          <p className={cx("right")}>© MetaRare, Inc. All rights reserved.</p>
+        </div>
+      </div>
+    </div>
+  );
+};
+
+export default Footer;

+ 18 - 0
src/components/common/HashBox.scss

@@ -0,0 +1,18 @@
+@import "assets/css/_lib";
+
+.hash_box {
+    @include ellipsis;
+    height: 42px;
+    margin: 20px 0;
+    border-radius: 20px;
+    background-color: #f5f5f5;
+    font-family: 'Retorica', 'Barun';
+    color: #888;
+    line-height: 42px;
+    text-align: center;
+    width: 268px;
+    .title {
+        font-family: 'Retorica', 'Barun';
+        color: #000;
+    }
+}

+ 24 - 0
src/components/common/HashBox.tsx

@@ -0,0 +1,24 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+import styles from './HashBox.scss';
+
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  className?: string;
+  address: string;
+}
+
+const HashBox: React.FC<IOwnProps> = ({
+  className,
+  address,
+}) => {
+  return (
+    <div className={cx('hash_box', className)}>
+      <strong className={cx('title')}>txhash</strong> {address}
+    </div>
+  );
+};
+
+export default HashBox;

+ 18 - 0
src/components/common/Header.tsx

@@ -0,0 +1,18 @@
+import React from 'react';
+import MobileHeader from '@src/components/mobile/Header';
+import PCHeader from '@src/components/pc/Header';
+
+const Header: React.FC = () => {
+  return (
+    <>
+      <div className={'mo_wrapper'}>
+        <MobileHeader />
+      </div>
+      <div className={'pc_wrapper'}>
+        <PCHeader />
+      </div>
+    </>
+  );
+};
+
+export default Header;

+ 76 - 0
src/components/common/Img.tsx

@@ -0,0 +1,76 @@
+import React, { useRef, useEffect, useState, useCallback } from 'react';
+const IntersectionObserver = require('intersection-observer');
+import getAgent from '@egjs/agent';
+
+const isIE = getAgent().os.name === 'ie';
+
+const DEFAULT_IMG_SRC = '/static/img/svg/meta_loading.svg';
+
+interface IOwnProps extends React.ImgHTMLAttributes<HTMLImageElement> {
+  src: string;
+  fallbackSrc?: string;
+  setImageRef?: (ref: React.RefObject<HTMLImageElement>) => void;
+}
+
+const Img: React.FC<IOwnProps> = ({
+  src,
+  ...restProps
+}) => {
+  const imgRef = useRef<HTMLImageElement>(null);
+  const isAvailableWindowIO = !!window.IntersectionObserver;
+
+  const lazyLoadImage = useCallback<IntersectionObserverCallback>(
+    (entries: IntersectionObserverEntry[], observer: IntersectionObserver) => {
+      entries.forEach((entry: any) => {
+        const { target } = entry;
+
+        if (entry.isIntersecting && imgRef && imgRef.current && imgRef.current.parentElement) {
+          const parentElement = imgRef.current.parentElement;
+
+          target.src = target.dataset.src;
+          parentElement.dataset.isLoaded = 'true';
+          observer.unobserve(target);
+        }
+      });
+    },
+    [],
+  );
+
+  useEffect(() => {
+    if (isAvailableWindowIO) {
+      // IE11 경우 lazyload 오류 발생.
+      if (isIE) {
+        return;
+      }
+
+      if (imgRef.current) {
+        const lazyLoadingIO: IntersectionObserver = isAvailableWindowIO
+          ? new window.IntersectionObserver(lazyLoadImage)
+          : IntersectionObserver(lazyLoadImage);
+
+        lazyLoadingIO.observe(imgRef.current);
+      }
+    }
+  }, [imgRef]);
+
+  const [isError, setIsError] = useState(false);
+
+  const onError = (e: any) => {
+    setIsError(true);
+    restProps.onError?.(e);
+  };
+
+  return isError ? (
+    <img src={src} {...restProps} />
+  ) : (
+    <img
+      ref={imgRef}
+      src={DEFAULT_IMG_SRC}
+      data-src={src}
+      onError={onError}
+      {...restProps}
+    />
+  );
+};
+
+export default Img;

+ 31 - 0
src/components/common/Input.scss

@@ -0,0 +1,31 @@
+.input {
+    width: 100%;
+    height: 42px;
+    padding: 0 16px;
+    border-radius: 20px;
+    border: 1px solid #ddd;
+    box-sizing: border-box;
+    font-size: 12px;
+    line-height: 40px;
+    font-family: 'Retorica', 'Barun';
+    &::placeholder {
+        color: #888;
+    }
+}
+
+.validate_input {
+    width: 100%;
+    height: 42px;
+    padding: 0 16px;
+    border-radius: 20px;
+    border: 1px solid red;
+    box-sizing: border-box;
+    font-size: 14px;
+    line-height: 40px;
+}
+
+.input_validate_message {
+    margin-top:5px;
+    display: block;
+    color: red
+}

+ 30 - 0
src/components/common/Input.tsx

@@ -0,0 +1,30 @@
+import React from 'react';
+import classNames from 'classnames/bind';
+import styles from './Input.scss';
+
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  value: string;
+  className?: string;
+  placeholder?: string;
+  onChange?: React.ChangeEventHandler<HTMLInputElement>;
+  onBlur?: React.ChangeEventHandler<HTMLInputElement>;
+  disabled?: boolean;
+}
+
+const Input: React.FC<IOwnProps> = ({
+  value,
+  className,
+  placeholder,
+  onChange,
+  onBlur,
+  disabled,
+}) => {
+  return (
+    <input type="text" className={cx('input', className)} placeholder={placeholder} onChange={onChange} onBlur={onBlur} disabled={disabled} value={value} />
+  );
+};
+
+export default Input;

+ 30 - 0
src/components/common/InputImage.scss

@@ -0,0 +1,30 @@
+.input_image {
+    position: relative;
+    display: inline-block;
+    vertical-align: top;
+    & + .input_image {
+      margin-left: 8px;
+    }
+    .label_file {
+      display: inline-block;
+      font-size: 14px;
+      padding: 7px 33px;
+      border-radius: 20px;
+      border: 1px solid #ddd;
+      vertical-align: top;
+      font-weight: bold;
+      &.disabled {
+        border-color: #f5f5f5;
+        background-color: #f5f5f5;
+        color: #ddd;
+      }
+    }
+    .input_file {
+      position: absolute;
+      top: 0;
+      left: 0;
+      width: 100%;
+      height: 100%;
+      opacity: 0;
+    }
+  }

+ 89 - 0
src/components/common/InputImage.tsx

@@ -0,0 +1,89 @@
+import React, { useEffect } from 'react';
+import classNames from 'classnames/bind';
+import styles from './InputImage.scss';
+import FileUtil from '@src/utils/FileUtil';
+
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  title: string;
+  imageRef: React.RefObject<HTMLImageElement> | null;
+  videoRef?: React.RefObject<HTMLVideoElement> | null;
+  setImage: (file: File | null) => void;
+  limitFileSize?: number;
+  fileTypes?: string[];
+  fileSize?: { min: number; max: number };
+  handleChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
+  disabled?: boolean;
+};
+
+const InputImage: React.FC<IOwnProps> = ({
+  title,
+  imageRef,
+  videoRef,
+  setImage,
+  limitFileSize,
+  fileTypes,
+  fileSize,
+  handleChange,
+  disabled,
+}) => {
+  const handleChangeImg = (e: React.ChangeEvent<HTMLInputElement>) => {
+    if (!e.target.files || !e.target.files[0]) {
+      return;
+    }
+
+    const file = e.target.files[0];
+
+
+    if (fileTypes && !FileUtil.fileTypeCheck(file, fileTypes)) {
+      alert('파일 형식을 확인해 주십시오.');
+      return;
+    }
+
+    if (limitFileSize && !FileUtil.fileSizeCheck(file, limitFileSize)) {
+      alert('파일 크기를 확인해 주십시오.');
+      return;
+    }
+
+    const reader = new FileReader();
+    const img = new Image();
+
+    reader.onload = e => {
+      if (videoRef?.current && FileUtil.isVideo(file.name)) {
+        videoRef.current.src = e.target?.result as string;
+      } else {
+        if (imageRef?.current) {
+          imageRef.current.src = e.target?.result as string;
+          img.src = e.target?.result as string;
+
+          img.onload = () => {
+            if (fileSize && (img.width < fileSize.min || img.height < fileSize.min || img.width > fileSize.max || img.height > fileSize.max)) {
+              alert(`이미지 크기는 최소 ${fileSize.min}x${fileSize.min}, 최대  ${fileSize.max}x${fileSize.max}이어야 합니다.`);
+              setImage(null);
+              if (imageRef.current) {
+                imageRef.current.src = '';
+              }
+              return;
+            }
+          };
+        }
+      }
+    };
+
+    reader.readAsDataURL(file);
+    setImage(file);
+    handleChange?.(e);
+
+    e.currentTarget.value = '';
+  };
+
+  return (
+    <div className={cx('input_image')}>
+      <label htmlFor="profile_file" className={cx('label_file', disabled && 'disabled')}>{title}</label>
+      <input id="profile_file" type="file" className={cx('input_file')} onChange={handleChangeImg} disabled={disabled} />
+    </div>
+  );
+};
+
+export default InputImage;

+ 56 - 0
src/components/common/InputPrice.scss

@@ -0,0 +1,56 @@
+@import "/assets/css/_lib";
+
+.blockchain_box {
+    position: relative;
+    &.price {
+        .input {
+            padding-right: 75px;
+        }
+    }
+    .blockchain {
+        position: absolute;
+        top: 0;
+        right: 0;
+        .btn_unit {
+            display: block;
+            width: 78px;
+            padding-right: 16px;
+            box-sizing: border-box;
+            font-size: 14px;
+            font-weight: 600;
+            line-height: 42px;
+            text-align: right;
+        }
+        .ico_arrow {
+            width: 18px;
+            height: 18px;
+            margin-left: 3px;
+            vertical-align: -3px;
+        }
+        .ly_blockchain {
+            position: absolute;
+            top: 46px;
+            right: 0;
+            width: 140px;
+            border-radius: 12px;
+            background-color: #fff;
+            box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
+            z-index: 5;
+            .btn_blockchain {
+                @include ellipsis;
+                width: 100%;
+                padding: 0 16px;
+                font-size: 14px;
+                line-height: 42px;
+                text-align: left;
+            }
+            .ico_blockchain {
+                width: 20px;
+                height: 20px;
+                margin-right: 8px;
+                border-radius: 50%;
+                vertical-align: -4px;
+            }
+        }
+    }
+}

+ 111 - 0
src/components/common/InputPrice.tsx

@@ -0,0 +1,111 @@
+import React, { useState } from 'react';
+import classNames from 'classnames/bind';
+import styles from './InputPrice.scss';
+import Input from '@src/components/common/Input';
+import { ReactComponent as LogoEhtereum } from '@assets/img/svg/logo_ethereum.svg';
+import { ReactComponent as LogoMetaRare } from '@assets/img/svg/logo_metarare.svg';
+import { ReactComponent as LogoMetafinance } from '@assets/img/svg/logo_metafinance.svg';
+import { ReactComponent as IcoArrow } from '@assets/img/svg/ico_arrow_down.svg';
+import NumberUtil from '@src/utils/NumberUtil';
+import { ECurrencyType } from '@src/constants/Enums';
+
+const cx = classNames.bind(styles);
+export const selectedCurrency = (currency: ECurrencyType) => {
+  switch(currency) {
+    case ECurrencyType.ETH:
+      return "ETH";
+    case ECurrencyType.MR:
+      return "MTRA";
+    case ECurrencyType.MF:
+      return "MF1";
+  }
+}
+interface IOwnProps {
+  value?: string;
+  className?: string;
+  placeholder?: string;
+  setValue?: (value: string) => void;
+  type: ECurrencyType;
+  setType?: (type: ECurrencyType) => void;
+  useSelectBox?: boolean;
+  useInput?: boolean;
+}
+
+const InputPrice: React.FC<IOwnProps> = ({
+  value,
+  className,
+  placeholder,
+  setValue,
+  type,
+  setType,
+  useSelectBox = true,
+  useInput = true,
+}) => {
+  const [showPriceTypeLayer, setShowPriceTypeLayer] = useState<boolean>(false);
+
+  const handleChangePrice = (e: React.ChangeEvent<HTMLInputElement>) => {
+    e.target.value = NumberUtil.replaceOnlyNumber(e.target.value);
+    const num1 = e.target.value.split('.')[0];
+    const num2 = e.target.value.split('.')[1];
+    if(isNaN(Number(e.target.value))) {
+      alert('올바른 값을 입력해주세요')
+      return;
+    }
+    if (num2?.length > 5) {
+      e.target.value = `${num1}.${num2.slice(0, 5)}`;
+    }
+    setValue?.(e.target.value);
+  };
+
+
+  const handleClickPriceType = (_type: ECurrencyType) => {
+    setType?.(_type);
+    setShowPriceTypeLayer(!showPriceTypeLayer);
+  };
+
+  return (
+    <div className={cx('blockchain_box', className)}>
+      <Input
+        className={className? cx(className) : cx('input')}
+        placeholder={placeholder}
+        onChange={handleChangePrice}
+        value={value || ''}
+        disabled={!useInput}
+      />
+      <div className={cx('blockchain')}>
+        <button type="button" className={cx('btn_unit')} aria-pressed="true" onClick={() => setShowPriceTypeLayer(!showPriceTypeLayer)}>
+          {selectedCurrency(type)}
+          {useSelectBox && (
+            <IcoArrow className={cx('ico_arrow')} />
+          )}
+        </button>
+        {useSelectBox && showPriceTypeLayer && (
+          <div className={cx('ly_blockchain')}>
+            <ul className={cx('list_blockchain')}>
+              <li>
+                <button type="button" className={cx('btn_blockchain')} aria-pressed={type === ECurrencyType.ETH} onClick={() => handleClickPriceType(ECurrencyType.ETH)}>
+                  <LogoEhtereum className={cx('ico_blockchain')} />
+                  ETH
+                </button>
+              </li>
+              <li>
+                <button type="button" className={cx('btn_blockchain')} aria-pressed={type === ECurrencyType.MR} onClick={() => handleClickPriceType(ECurrencyType.MR)}>
+                  <LogoMetaRare className={cx('ico_blockchain')} />
+                  MTRA
+                </button>
+              </li>
+              <li>
+                <button type="button" className={cx('btn_blockchain')} aria-pressed={type === ECurrencyType.MR} onClick={() => handleClickPriceType(ECurrencyType.MF)}>
+                  <LogoMetafinance className={cx('ico_blockchain')} />
+                  MF1
+                </button>
+              </li>
+            </ul>
+          </div>
+        )}
+      </div>
+    </div>
+  );
+};
+
+export default InputPrice;

+ 34 - 0
src/components/common/Layer.scss

@@ -0,0 +1,34 @@
+@import "assets/css/_lib";
+
+.layer {
+  padding: 20px 20px 30px;
+  border-radius: 12px;
+  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
+  background-color: #fff;
+  @include pc {
+    min-width: 310px;
+    box-sizing: border-box;
+  }
+  &.center {
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    max-height: calc(100vh - 20px);
+    transform: translate(-50%, -50%);
+  }
+  .title {
+    display: block;
+    font-size: 16px;
+    text-align: center;
+  }
+  .btn {
+    width: 100%;
+    margin: 0 4px;
+    padding: 10px 0;
+    border: 2px solid #16dccf;
+    border-radius: 20px;
+    color: #16dccf;
+    font-size: 14px;
+    font-weight: bold;
+  }
+}

+ 31 - 0
src/components/common/Layer.tsx

@@ -0,0 +1,31 @@
+import React, { ReactNode } from 'react';
+import classNames from 'classnames/bind';
+
+import styles from './Layer.scss';
+const cx = classNames.bind(styles);
+
+interface IOwnProps {
+  title: string;
+  buttonText: string;
+  onClickButton: () => void;
+  children?: ReactNode;
+  alignCenter?: boolean;
+}
+
+const Layer: React.FC<IOwnProps> = ({
+  title,
+  buttonText,
+  onClickButton,
+  children,
+  alignCenter = true
+}) => {
+  return (
+    <div className={cx('layer', alignCenter && 'center')}>
+      <strong className={cx('title')}>{title}</strong>
+      {children}
+      <button type="button" onClick={onClickButton} className={cx('btn')}>{buttonText}</button>
+    </div>
+  );
+};
+
+export default Layer;

+ 16 - 0
src/components/common/Like.scss

@@ -0,0 +1,16 @@
+.btn_like {
+  color: #888;
+  font-size: 12px;
+  line-height: 16px;
+}
+
+.ico_heart {
+  display: inline-block;
+  margin: 2px 3px 0 0;
+  vertical-align: 0;
+  vertical-align: top;
+  fill: #888;
+  &.fill {
+    margin-top: 0;
+  }
+}

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio