| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- // 섹션 제목 스타일
- .section-title {
- font-size: 1.5rem;
- font-weight: bold;
- margin-bottom: 1.5rem;
- color: #1f2937;
- display: flex;
- align-items: center;
- gap: 0.5rem;
- }
- // 인기 LIVE 섹션
- .popular-section {
- margin-bottom: 3rem;
- }
- // 캐러셀 컨테이너
- .carousel-container {
- position: relative;
- overflow: visible;
- border-radius: 12px;
- @media (max-width: 480px) {
- overflow: hidden;
- }
- }
- .carousel-track {
- display: flex;
- gap: 1rem;
- overflow-x: auto;
- scroll-behavior: smooth;
- padding: 0.5rem 0;
- // 스크롤바 숨기기
- &::-webkit-scrollbar {
- display: none;
- }
- -ms-overflow-style: none;
- scrollbar-width: none;
- // 모바일에서 적절한 패딩 추가
- @media (max-width: 480px) {
- padding: 0.5rem;
- gap: 0.8rem;
- overflow-x: scroll;
- }
- }
- // 실시간 LIVE 섹션
- .live-section {
- margin-top: 2rem;
- }
- // 비디오 그리드 스타일 (무한스크롤 대응)
- .video-grid {
- display: flex;
- flex-direction: column;
- gap: 1.5rem;
- margin: 0 auto;
- width: 100%;
- max-width: 100%;
- box-sizing: border-box;
- // 태블릿: 2개씩 (481px ~ 768px)
- @media (min-width: 481px) and (max-width: 768px) {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- gap: 1.2rem;
- padding: 0;
- max-width: 100%;
- }
- // 데스크톱: 3개씩 (769px 이상)
- @media (min-width: 769px) {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- gap: 1.5rem;
- padding: 0;
- max-width: 1000px;
- }
- // 모바일: 세로 스크롤 (480px 미만)
- @media (max-width: 479px) {
- gap: 1rem;
- padding: 0;
- }
- }
- // 스켈레톤 로딩 스타일
- .skeleton-card {
- display: flex;
- flex-direction: column;
- background: #f8f9fa;
- border-radius: 12px;
- overflow: hidden;
- min-width: 280px;
- height: 220px;
- position: relative;
- @media (max-width: 480px) {
- min-width: 250px;
- height: 200px;
- }
- }
- .skeleton-thumbnail {
- width: 100%;
- height: 160px;
- background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
- background-size: 200% 100%;
- animation: skeleton-loading 1.5s infinite;
- @media (max-width: 480px) {
- height: 140px;
- }
- }
- .skeleton-info {
- padding: 12px;
- display: flex;
- flex-direction: column;
- gap: 8px;
- }
- .skeleton-text {
- height: 16px;
- background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
- background-size: 200% 100%;
- animation: skeleton-loading 1.5s infinite;
- border-radius: 4px;
- width: 80%;
- }
- .skeleton-text-small {
- height: 12px;
- background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 50%, #e0e0e0 75%);
- background-size: 200% 100%;
- animation: skeleton-loading 1.5s infinite;
- border-radius: 4px;
- width: 60%;
- }
- @keyframes skeleton-loading {
- 0% {
- background-position: -200% 0;
- }
- 100% {
- background-position: 200% 0;
- }
- }
|