kv-netflix/frontend/styles/components/forms.css

132 lines
No EOL
2.9 KiB
CSS
Executable file

/* ============================================
KV-Stream - Form Components
Search, Categories, Inputs
============================================ */
/* Search */
.search {
flex: 1;
max-width: 600px;
position: relative;
}
.search__input {
width: 100%;
height: 44px;
padding: 0 var(--spacing-lg);
background: var(--color-bg-secondary);
border: 1px solid var(--color-border);
border-radius: var(--radius-full);
color: var(--color-text-primary);
font-size: var(--font-size-base);
transition: all var(--transition-base);
}
.search__input::placeholder {
color: var(--color-text-tertiary);
}
.search__input:focus {
outline: none;
border-color: var(--color-accent);
box-shadow: var(--shadow-glow);
}
.search__results {
position: absolute;
top: calc(100% + 8px);
left: 0;
right: 0;
background: var(--color-bg-secondary);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-xl);
max-height: 400px;
overflow-y: auto;
display: none;
z-index: var(--z-elevated);
}
.search__results.active {
display: block;
}
.search__result {
display: flex;
align-items: center;
gap: var(--spacing-md);
padding: var(--spacing-md);
cursor: pointer;
transition: background var(--transition-fast);
}
.search__result:hover {
background: var(--color-surface-hover);
}
.search__result-thumb {
width: 80px;
height: 45px;
border-radius: var(--radius-sm);
object-fit: cover;
background: var(--color-bg-tertiary);
}
.search__result-info {
flex: 1;
min-width: 0;
}
.search__result-title {
font-weight: var(--font-weight-medium);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.search__result-meta {
font-size: var(--font-size-sm);
color: var(--color-text-secondary);
}
/* Categories */
.categories {
display: flex;
gap: var(--spacing-sm);
margin-bottom: var(--spacing-xl);
overflow-x: auto;
padding-bottom: var(--spacing-sm);
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.categories::-webkit-scrollbar {
display: none;
}
.category {
padding: 8px 16px;
background: transparent;
border: 1px solid var(--color-border);
border-radius: var(--radius-full);
color: var(--color-text-secondary);
font-size: var(--font-size-sm);
font-weight: var(--font-weight-medium);
cursor: pointer;
transition: all var(--transition-base);
white-space: nowrap;
}
.category:hover {
background: var(--color-surface-hover);
color: var(--color-text-primary);
border-color: var(--color-border-hover);
}
.category--active {
background: var(--color-accent);
border-color: var(--color-accent);
color: #fff;
font-weight: var(--font-weight-semibold);
box-shadow: 0 0 15px var(--color-accent-glow);
}