diff --git a/index.css b/index.css index bb77d41..39db717 100644 --- a/index.css +++ b/index.css @@ -535,7 +535,9 @@ @media (min-width: 768px) { .sidebar { - position: relative; + position: sticky; + top: 0; + flex-shrink: 0; } } @@ -5791,3 +5793,257 @@ min-height: 80px; } } + +/* ===================================================== + ADO2 Contents Page Styles + ===================================================== */ + +.ado2-contents-page { + padding: 32px; + min-height: 100%; + background-color: var(--color-bg-darker); +} + +.ado2-contents-header { + display: flex; + align-items: baseline; + gap: 16px; + margin-bottom: 32px; +} + +.ado2-contents-title { + font-size: 32px; + font-weight: 700; + color: var(--color-text-white); + letter-spacing: -0.6%; +} + +.ado2-contents-count { + font-size: 17px; + font-weight: 500; + color: #9BCACC; +} + +.ado2-contents-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 16px; +} + +.ado2-content-card { + display: flex; + flex-direction: column; + border-radius: 20px; + overflow: hidden; + background-color: #034A4D; +} + +.content-card-thumbnail { + width: 100%; + aspect-ratio: 9 / 16; + background-color: #01393B; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; +} + +.content-video-preview { + width: 100%; + height: 100%; + object-fit: cover; +} + +.content-no-video { + color: #6AB0B3; + display: flex; + align-items: center; + justify-content: center; +} + +.content-card-info { + padding: 16px; + display: flex; + flex-direction: column; + gap: 16px; +} + +.content-card-text { + display: flex; + flex-direction: column; + gap: 8px; +} + +.content-card-title { + font-size: 17px; + font-weight: 700; + color: var(--color-text-white); + letter-spacing: -0.6%; + margin: 0; +} + +.content-card-date { + font-size: 12px; + font-weight: 400; + color: #6AB0B3; + letter-spacing: -0.6%; + margin: 0; +} + +.content-card-actions { + display: flex; + gap: 6px; +} + +.content-download-btn { + flex: 1; + display: flex; + align-items: center; + justify-content: center; + gap: 4px; + padding: 10px 10px 10px 8px; + height: 34px; + background-color: #462E64; + border: none; + border-radius: 8px; + color: #F7F1FE; + font-size: 14px; + font-weight: 600; + cursor: pointer; + transition: background-color 0.2s; +} + +.content-download-btn:hover:not(:disabled) { + background-color: #563d7a; +} + +.content-download-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +.content-download-btn svg { + stroke: #F7F1FE; +} + +.content-delete-btn { + width: 34px; + height: 34px; + display: flex; + align-items: center; + justify-content: center; + padding: 8px; + background-color: #01393B; + border: none; + border-radius: 8px; + color: #6AB0B3; + cursor: pointer; + transition: background-color 0.2s; +} + +.content-delete-btn:hover { + background-color: #024648; +} + +.content-delete-btn svg { + stroke: #6AB0B3; +} + +/* Loading, Error, Empty States */ +.ado2-contents-loading, +.ado2-contents-error, +.ado2-contents-empty { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 400px; + gap: 16px; + color: #9BCACC; +} + +.ado2-contents-loading .loading-spinner { + width: 40px; + height: 40px; + border: 3px solid #01393B; + border-top-color: #6AB0B3; + border-radius: 50%; + animation: spin 1s linear infinite; +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} + +.retry-btn { + padding: 10px 20px; + background-color: #034A4D; + border: 1px solid #6AB0B3; + border-radius: 8px; + color: #6AB0B3; + font-size: 14px; + cursor: pointer; + transition: background-color 0.2s; +} + +.retry-btn:hover { + background-color: #024648; +} + +/* Pagination */ +.ado2-contents-pagination { + display: flex; + align-items: center; + justify-content: center; + gap: 16px; + margin-top: 32px; + padding-bottom: 32px; +} + +.pagination-btn { + padding: 10px 20px; + background-color: #034A4D; + border: 1px solid #6AB0B3; + border-radius: 8px; + color: #6AB0B3; + font-size: 14px; + cursor: pointer; + transition: background-color 0.2s; +} + +.pagination-btn:hover:not(:disabled) { + background-color: #024648; +} + +.pagination-btn:disabled { + opacity: 0.5; + cursor: not-allowed; +} + +.pagination-info { + color: #9BCACC; + font-size: 14px; +} + +/* Responsive */ +@media (max-width: 768px) { + .ado2-contents-page { + padding: 16px; + } + + .ado2-contents-header { + flex-direction: column; + gap: 8px; + } + + .ado2-contents-title { + font-size: 24px; + } + + .ado2-contents-grid { + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + gap: 12px; + } +} diff --git a/index.html b/index.html index d79ed9d..2be9c52 100755 --- a/index.html +++ b/index.html @@ -6,6 +6,26 @@
콘텐츠를 불러오는 중...
+{error}
+ +생성된 콘텐츠가 없습니다.
++ {formatDate(video.created_at)} +
+