|
109 | 109 | .filter-item:hover {background:var(--gray);} |
110 | 110 | .filter-item.active {background:var(--primary); color:white;} |
111 | 111 | .clear-search {position:absolute; right:2.5rem; top:50%; transform:translateY(-50%); color:#6c757d; cursor:pointer; font-size:0.8rem; display:none;} |
112 | | - |
113 | | - /* Skeleton loader styles */ |
114 | | - .skeleton { |
115 | | - background: linear-gradient(90deg, var(--card) 0%, var(--gray) 50%, var(--card) 100%); |
116 | | - background-size: 200% 100%; |
117 | | - animation: skeleton-loading 1.5s infinite; |
118 | | - border-radius: var(--radius); |
119 | | - } |
120 | | - |
121 | | - @keyframes skeleton-loading { |
122 | | - 0% { background-position: 200% 0; } |
123 | | - 100% { background-position: -200% 0; } |
124 | | - } |
125 | | - |
126 | | - .skeleton-card { |
127 | | - background: var(--card); |
128 | | - border-radius: var(--radius); |
129 | | - box-shadow: var(--shadow); |
130 | | - overflow: hidden; |
131 | | - height: 100%; |
132 | | - display: flex; |
133 | | - flex-direction: column; |
134 | | - } |
135 | | - |
136 | | - .skeleton-img { |
137 | | - width: 100%; |
138 | | - aspect-ratio: 16/10; |
139 | | - } |
140 | | - |
141 | | - .skeleton-title { |
142 | | - height: 20px; |
143 | | - width: 80%; |
144 | | - margin: 1rem 1rem 0.5rem 1rem; |
145 | | - } |
146 | | - |
147 | | - .skeleton-desc { |
148 | | - height: 12px; |
149 | | - width: 90%; |
150 | | - margin: 0.5rem 1rem; |
151 | | - } |
152 | | - |
153 | | - .skeleton-desc-short { |
154 | | - width: 60%; |
155 | | - } |
156 | | - |
157 | | - .skeleton-btn { |
158 | | - height: 36px; |
159 | | - width: 100px; |
160 | | - margin: auto 1rem 1rem 1rem; |
161 | | - } |
162 | | - |
163 | | - .skeleton-stat-card { |
164 | | - background: var(--card); |
165 | | - border-radius: var(--radius); |
166 | | - padding: 1rem; |
167 | | - box-shadow: var(--shadow); |
168 | | - min-width: 150px; |
169 | | - text-align: center; |
170 | | - flex-grow: 1; |
171 | | - max-width: 220px; |
172 | | - } |
173 | | - |
174 | | - .skeleton-stat-number { |
175 | | - height: 28px; |
176 | | - width: 60%; |
177 | | - margin: 0 auto 0.5rem auto; |
178 | | - } |
179 | | - |
180 | | - .skeleton-stat-label { |
181 | | - height: 16px; |
182 | | - width: 80%; |
183 | | - margin: 0 auto; |
184 | | - } |
| 112 | + .skeleton { position: relative; background-color: var(--card); border-radius: var(--radius); overflow: hidden; } |
| 113 | + .skeleton::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); animation: skeleton-shimmer 1.5s infinite; } |
| 114 | + @keyframes skeleton-shimmer { 100% { transform: translateX(100%); } } |
| 115 | + @media (prefers-color-scheme: dark) { .skeleton::after { background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent); } } |
| 116 | + .skeleton-card { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; height: 100%; display: flex; flex-direction: column; } |
| 117 | + .skeleton-img { width: 100%; aspect-ratio: 16/10; } |
| 118 | + .skeleton-title { height: 20px; width: 80%; margin: 1rem 1rem 0.5rem 1rem; } |
| 119 | + .skeleton-desc { height: 12px; width: 90%; margin: 0.5rem 1rem; } |
| 120 | + .skeleton-desc-short { width: 60%; } |
| 121 | + .skeleton-btn { height: 36px; width: 100px; margin: auto 1rem 1rem 1rem; } |
| 122 | + .skeleton-stat-card { background: var(--card); border-radius: var(--radius); padding: 1rem; box-shadow: var(--shadow); min-width: 150px; text-align: center; flex-grow: 1; max-width: 220px; } |
| 123 | + .skeleton-stat-number { height: 28px; width: 60%; margin: 0 auto 0.5rem auto; } |
| 124 | + .skeleton-stat-label { height: 16px; width: 80%; margin: 0 auto; } |
185 | 125 |
|
186 | 126 | @media (max-width:768px) { |
187 | 127 | .header-content {flex-wrap:wrap; height:auto; padding:1rem;} |
|
0 commit comments