Files
tuliprox/frontend/scss/app/components/_text_button.scss
T
euzuandGitHub f8e8941929 Feature/stalker (#780)
New Features

- Added first-class Stalker/Ministra portal support, including live, VOD, series, playback-link refresh, and bulk EPG ingestion.
- Added Stalker configuration and batch/CSV support in the Web UI.
- Added playlist preview and playback handling for Stalker inputs, with support for partial refreshes.
2026-07-20 14:58:06 +02:00

140 lines
3.9 KiB
SCSS

.tp__text-button {
display: flex;
justify-content: center;
align-items: center;
fill: var(--menu-icon-color);
background-color: var(--text-button-background-color);
color: var(--text-button-color);
border: 1px solid var(--text-button-border-color);
border-radius: var(--border-radius);
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
cursor: pointer;
box-sizing: border-box;
max-height: 3rem;
min-height: 2.5rem;
gap: var(--gap-default);
padding: 0 var(--padding-default);
font-weight: bold;
font-size: var(--font-size-norm);
position: relative;
overflow: hidden;
svg {
min-width: 1.5rem;
width: 1.5rem;
}
span {
pointer-events: none;
}
&:focus,
&:hover {
background-color: var(--text-button-hover-background-color);
color: var(--text-button-hover-color);
outline: none;
}
@media (prefers-reduced-motion: no-preference) {
transition:
background-color 160ms ease,
color 160ms ease,
transform 120ms ease;
&::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
border-radius: inherit;
background-image: radial-gradient(circle, currentColor 10%, transparent 10.5%);
background-position: center;
background-repeat: no-repeat;
opacity: 0;
transform: scale(12);
transition:
transform 0.5s ease,
opacity 0.8s ease;
}
&:active:not(.disabled) {
transform: scale(0.98);
&::after {
opacity: 0.18;
transform: scale(0);
transition: 0s;
}
}
}
}
.tp__text-button.primary:not(.active) {
background-color: var(--text-button-primary-background-color);
border-color: var(--text-button-primary-border-color);
color: var(--text-button-primary-color);
fill: var(--text-button-primary-color);
&:focus,
&:hover {
background-color: var(--text-button-primary-hover-background-color);
color: var(--text-button-primary-hover-color);
fill: var(--text-button-primary-hover-color);
outline: none;
}
}
.tp__text-button.secondary:not(.active) {
background-color: var(--text-button-secondary-background-color);
border-color: var(--text-button-secondary-border-color);
color: var(--text-button-secondary-color);
fill: var(--text-button-secondary-color);
&:focus,
&:hover {
background-color: var(--text-button-secondary-hover-background-color);
color: var(--text-button-secondary-hover-color);
fill: var(--text-button-secondary-hover-color);
outline: none;
}
}
.tp__text-button.tertiary:not(.active) {
background-color: var(--text-button-tertiary-background-color);
border-color: var(--text-button-tertiary-border-color);
color: var(--text-button-tertiary-color);
fill: var(--text-button-tertiary-color);
&:focus,
&:hover {
background-color: var(--text-button-tertiary-hover-background-color);
color: var(--text-button-tertiary-hover-color);
fill: var(--text-button-tertiary-hover-color);
outline: none;
}
}
.tp__text-button.active,
.tp__text-button.primary.active,
.tp__text-button.secondary.active,
.tp__text-button.tertiary.active {
background-color: var(--text-button-active-background-color);
border-color: var(--text-button-active-border-color);
color: var(--text-button-active-color);
fill: var(--text-button-active-color);
&:focus,
&:hover {
background-color: var(--text-button-active-hover-background-color);
border-color: var(--text-button-active-border-color);
color: var(--text-button-active-hover-color);
fill: var(--text-button-active-hover-color);
outline: none;
}
}
.tp__text-button.primary.disabled,
.tp__text-button.secondary.disabled,
.tp__text-button.disabled {
border-color: var(--text-button-disabled-border-color);
background-color: var(--text-button-disabled-background-color);
color: var(--text-button-disabled-color);
fill: var(--text-button-disabled-color);
}