Files
quixotic/public/style.css
Andrey Kondratev 3d6836dc30 public
2025-08-25 10:39:57 +05:00

206 lines
3.8 KiB
CSS
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
background: var(--tg-theme-bg-color, #f0f0f0);
color: var(--tg-theme-text-color, #000);
line-height: 1.6;
}
.container {
max-width: 100vw;
margin: 0 auto;
padding: 20px 16px;
}
header {
text-align: center;
margin-bottom: 30px;
}
header h1 {
font-size: 2rem;
margin-bottom: 8px;
color: var(--tg-theme-button-color, #007AFF);
}
header p {
color: var(--tg-theme-hint-color, #666);
font-size: 0.9rem;
}
.search-section {
margin-bottom: 30px;
}
.search-container {
display: flex;
gap: 10px;
background: var(--tg-theme-secondary-bg-color, #fff);
border-radius: 12px;
padding: 4px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
#searchInput {
flex: 1;
padding: 12px 16px;
border: none;
background: transparent;
font-size: 1rem;
color: var(--tg-theme-text-color, #000);
outline: none;
}
#searchInput::placeholder {
color: var(--tg-theme-hint-color, #999);
}
#searchBtn {
padding: 12px 16px;
background: var(--tg-theme-button-color, #007AFF);
color: var(--tg-theme-button-text-color, #fff);
border: none;
border-radius: 8px;
cursor: pointer;
font-size: 1rem;
transition: opacity 0.2s;
}
#searchBtn:hover {
opacity: 0.8;
}
#searchBtn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.loading {
text-align: center;
padding: 40px 20px;
}
.spinner {
width: 40px;
height: 40px;
border: 3px solid var(--tg-theme-hint-color, #ddd);
border-top: 3px solid var(--tg-theme-button-color, #007AFF);
border-radius: 50%;
animation: spin 1s linear infinite;
margin: 0 auto 16px;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.results-container {
display: grid;
gap: 16px;
}
.video-item {
display: flex;
background: var(--tg-theme-secondary-bg-color, #fff);
border-radius: 12px;
overflow: hidden;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
transition: transform 0.2s, box-shadow 0.2s;
cursor: pointer;
}
.video-item:hover {
transform: translateY(-2px);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}
.video-thumbnail {
width: 120px;
height: 90px;
object-fit: cover;
flex-shrink: 0;
}
.video-info {
padding: 16px;
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.video-title {
font-weight: 600;
font-size: 0.95rem;
line-height: 1.4;
margin-bottom: 8px;
color: var(--tg-theme-text-color, #000);
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.video-channel {
font-size: 0.85rem;
color: var(--tg-theme-hint-color, #666);
margin-bottom: 4px;
}
.video-duration {
font-size: 0.8rem;
color: var(--tg-theme-hint-color, #888);
background: rgba(0, 0, 0, 0.1);
padding: 2px 6px;
border-radius: 4px;
align-self: flex-start;
}
.no-results {
text-align: center;
padding: 60px 20px;
color: var(--tg-theme-hint-color, #666);
}
.hidden {
display: none !important;
}
.converting {
opacity: 0.6;
pointer-events: none;
}
.converting::after {
content: ">=25@B0F8O...";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: var(--tg-theme-button-color, #007AFF);
color: var(--tg-theme-button-text-color, #fff);
padding: 8px 12px;
border-radius: 6px;
font-size: 0.8rem;
}
@media (max-width: 480px) {
.video-item {
flex-direction: column;
}
.video-thumbnail {
width: 100%;
height: 180px;
}
.container {
padding: 16px 12px;
}
}