diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..6b665aa
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "liveServer.settings.port": 5501
+}
diff --git a/challenge/skeleton-ui/jiho/YouTube_Logo_2017.svg b/challenge/skeleton-ui/jiho/YouTube_Logo_2017.svg
new file mode 100644
index 0000000..86a44d8
--- /dev/null
+++ b/challenge/skeleton-ui/jiho/YouTube_Logo_2017.svg
@@ -0,0 +1,20 @@
+
+
\ No newline at end of file
diff --git a/challenge/skeleton-ui/jiho/index.html b/challenge/skeleton-ui/jiho/index.html
new file mode 100644
index 0000000..5d62c51
--- /dev/null
+++ b/challenge/skeleton-ui/jiho/index.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+ Document
+
+
+
+
+
+
+
+
+
+
+
![](https://picsum.photos/id/237/300/200)
+
+
+
+
Dog Video
+
+ this is video is amazing.this is video is amazing.this is
+ video is amazing.this is video is amazing.this is video is
+ amazing.
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+
diff --git a/challenge/skeleton-ui/jiho/search.svg b/challenge/skeleton-ui/jiho/search.svg
new file mode 100644
index 0000000..0c9648b
--- /dev/null
+++ b/challenge/skeleton-ui/jiho/search.svg
@@ -0,0 +1,2 @@
+
+
diff --git a/challenge/skeleton-ui/jiho/style.css b/challenge/skeleton-ui/jiho/style.css
new file mode 100644
index 0000000..37e8aba
--- /dev/null
+++ b/challenge/skeleton-ui/jiho/style.css
@@ -0,0 +1,268 @@
+/* Resets */
+body {
+ margin: 0;
+ box-sizing: border-box;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+p,
+img {
+ padding: 0;
+ margin: 0;
+}
+
+img {
+ border: none;
+ outline: none;
+}
+
+button {
+ all: unset;
+}
+
+/* Typography */
+:root {
+ font-size: 62.5%;
+ font-family: "arial";
+ line-height: 1.7;
+}
+
+body {
+ font-size: 1.6rem;
+}
+
+/* Components */
+
+:root {
+ --skeleton-color: #eee;
+}
+
+.container {
+ display: flex;
+ flex-direction: column;
+ height: 100vh;
+ box-sizing: border-box;
+}
+
+.header {
+ display: flex;
+ align-items: center;
+ padding: 10px;
+ min-width: 0;
+ border-bottom: 1px solid #eee;
+}
+
+.logo-image {
+ /* flex: 1; */
+ width: 150px;
+}
+
+.middle {
+ display: flex;
+ margin-left: 100px;
+}
+
+@media (max-width: 500px) {
+ .middle {
+ display: none;
+ }
+}
+
+.search-section {
+ display: flex;
+ justify-content: flex-end;
+ min-width: 35vw;
+}
+
+.search-bar {
+ display: flex;
+ align-items: center;
+ height: 4rem;
+ border-radius: 2rem 0 0 2rem;
+ border: 1px solid grey;
+ box-shadow: inset 0 0 1.5px grey;
+ padding: 0 1rem;
+}
+
+.search-bar:focus-within {
+ border: 1px solid blue;
+}
+
+.search-icon {
+ width: 2rem;
+ height: 2rem;
+ padding: 0 0.5rem;
+}
+
+.search-bar .search-icon {
+ display: none;
+}
+
+.search-bar:focus-within .search-icon {
+ display: flex;
+}
+
+.search-bar .search-input {
+ background-color: transparent;
+ border-style: none;
+ font-size: 1.6rem;
+ width: calc(35vw - 80px);
+}
+
+.search-bar .search-input:focus {
+ outline: none;
+}
+
+.search-button {
+ width: 50px;
+ border-radius: 0 2rem 2rem 0;
+ border: 1px solid grey;
+ border-left: none;
+ box-shadow: inset 0 0 1.5px grey;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 0.5rem;
+}
+
+.search-button:hover {
+ background-color: #eee;
+}
+
+.action-section {
+ display: flex;
+ justify-content: flex-end;
+ margin-left: auto;
+}
+
+.action-section .profile {
+ width: 50px;
+ height: 50px;
+ background-color: orangered;
+ color: white;
+ font-weight: 700;
+ border: none;
+ border-radius: 25px;
+ text-align: center;
+ vertical-align: center;
+}
+
+.content-container {
+ display: flex;
+ flex-grow: 1;
+ min-width: 0;
+ overflow: scroll;
+}
+
+.content-container .sidebar {
+ width: 20vw;
+ flex-shrink: 0;
+ border-right: 1px solid #eee;
+}
+
+@media screen and (max-width: 500px) {
+ .content-container .sidebar {
+ display: none;
+ }
+}
+
+.content-container .content-section {
+ display: flex;
+ flex-grow: 1;
+}
+
+/* Content 영역 */
+
+.video-container {
+ padding: 20px;
+ flex-grow: 1;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: wrap;
+ gap: 20px;
+ box-sizing: border-box;
+ min-width: 0;
+ overflow: scroll;
+ justify-content: flex-start;
+}
+
+.box {
+ width: 350px;
+ height: 280px;
+ display: flex;
+ flex-direction: column;
+ border-radius: 10px;
+ box-sizing: border-box;
+ box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.2);
+}
+
+.box .thumbnail {
+ object-fit: cover;
+ width: 350px;
+ height: 200px;
+ overflow: hidden;
+ border-radius: 10px 10px 0 0;
+ flex-shrink: 0;
+}
+
+.box .video-info {
+ display: flex;
+ padding: 1rem;
+ gap: 1rem;
+ overflow: hidden;
+}
+
+.video-info .owner-icon {
+ flex-shrink: 0;
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+ background-color: orange;
+}
+
+.video-info .description {
+ flex-grow: 1;
+ min-height: 0;
+}
+
+.description .title {
+ text-align: left;
+ font-size: 1.5rem;
+ font-weight: 700;
+ border-radius: 1rem;
+}
+
+.description .summary {
+ margin-top: 1rem;
+ font-size: 1rem;
+ padding: 0.5rem;
+ line-height: 1;
+ border-radius: 1rem;
+}
+
+.skeleton {
+ animation: skeleton-loading 1s linear infinite alternate;
+}
+
+.skeleton-text {
+ height: 2rem;
+ margin: 0.5rem;
+ width: auto;
+}
+
+.skeleton-text.thick {
+ height: 1rem;
+}
+
+@keyframes skeleton-loading {
+ 0% {
+ background-color: hsl(200, 20%, 70%);
+ }
+ 100% {
+ background-color: hsl(200, 20%, 95%);
+ }
+}