202 lines
3.9 KiB
CSS
202 lines
3.9 KiB
CSS
/* Base Button Styles */
|
|
.button,
|
|
.cta-button,
|
|
.submit-button,
|
|
.icon-button {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--space-sm) var(--space-lg);
|
|
border-radius: var(--border-radius-md);
|
|
font-weight: 600;
|
|
transition: all var(--transition-base);
|
|
border: none;
|
|
cursor: pointer;
|
|
font-family: var(--font-primary);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* CTA Button */
|
|
.cta-button {
|
|
background: var(--accent-color);
|
|
color: white;
|
|
font-size: var(--font-size-lg);
|
|
padding: var(--space-md) var(--space-xl);
|
|
text-decoration: none;
|
|
gap: var(--space-sm);
|
|
}
|
|
|
|
.cta-button:hover {
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 4px 12px rgba(21, 52, 209, 0.2);
|
|
}
|
|
|
|
.cta-button:active {
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.cta-button i {
|
|
transition: transform var(--transition-base);
|
|
}
|
|
|
|
.cta-button:hover i {
|
|
transform: translateX(4px);
|
|
}
|
|
|
|
/* Submit Button */
|
|
.submit-button {
|
|
background: var(--accent-color);
|
|
color: white;
|
|
width: 100%;
|
|
padding: var(--space-md);
|
|
position: relative;
|
|
}
|
|
|
|
.submit-button:hover {
|
|
background: var(--accent-blue);
|
|
}
|
|
|
|
.submit-button:disabled {
|
|
background: var(--border-color);
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.submit-button .button-text {
|
|
transition: opacity var(--transition-base);
|
|
}
|
|
|
|
.submit-button .loading-spinner {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
|
|
/* Icon Button */
|
|
.icon-button {
|
|
background: transparent;
|
|
color: var(--text-color);
|
|
padding: var(--space-sm);
|
|
border-radius: var(--border-radius-full);
|
|
width: 40px;
|
|
height: 40px;
|
|
}
|
|
|
|
.icon-button:hover {
|
|
background: var(--card-bg);
|
|
}
|
|
|
|
.icon-button i {
|
|
font-size: var(--font-size-lg);
|
|
}
|
|
|
|
/* Cookie Consent Buttons */
|
|
.cookie-button {
|
|
font-size: var(--font-size-sm);
|
|
padding: var(--space-sm) var(--space-lg);
|
|
border-radius: var(--border-radius-sm);
|
|
font-weight: 500;
|
|
transition: var(--transition-base);
|
|
}
|
|
|
|
.cookie-button.accept {
|
|
background: var(--accent-color);
|
|
color: white;
|
|
}
|
|
|
|
.cookie-button.accept:hover {
|
|
background: var(--accent-blue);
|
|
}
|
|
|
|
.cookie-button.reject {
|
|
background: transparent;
|
|
border: 1px solid var(--border-color);
|
|
color: var(--text-color);
|
|
}
|
|
|
|
.cookie-button.reject:hover {
|
|
background: var(--card-bg);
|
|
}
|
|
|
|
/* Footer Links */
|
|
.footer-link {
|
|
color: var(--text-color);
|
|
text-decoration: none;
|
|
padding: var(--space-xs) var(--space-sm);
|
|
border-radius: var(--border-radius-sm);
|
|
transition: var(--transition-base);
|
|
}
|
|
|
|
.footer-link:hover {
|
|
background: var(--card-bg);
|
|
}
|
|
|
|
/* Button Ripple Effect */
|
|
.button::after,
|
|
.cta-button::after,
|
|
.submit-button::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 0;
|
|
height: 0;
|
|
background: rgba(255, 255, 255, 0.2);
|
|
border-radius: 50%;
|
|
transform: translate(-50%, -50%);
|
|
transition: width 0.3s ease-out, height 0.3s ease-out;
|
|
}
|
|
|
|
.button:active::after,
|
|
.cta-button:active::after,
|
|
.submit-button:active::after {
|
|
width: 200%;
|
|
height: 200%;
|
|
opacity: 0;
|
|
}
|
|
|
|
/* Focus States */
|
|
.button:focus-visible,
|
|
.cta-button:focus-visible,
|
|
.submit-button:focus-visible,
|
|
.icon-button:focus-visible {
|
|
outline: 2px solid var(--accent-color);
|
|
outline-offset: 2px;
|
|
}
|
|
|
|
/* Loading State */
|
|
.submit-button[aria-busy="true"] {
|
|
cursor: progress;
|
|
}
|
|
|
|
.submit-button[aria-busy="true"] .button-text {
|
|
opacity: 0;
|
|
}
|
|
|
|
.submit-button[aria-busy="true"] .loading-spinner {
|
|
display: block;
|
|
}
|
|
|
|
/* Responsive Adjustments */
|
|
@media (max-width: 768px) {
|
|
.cta-button {
|
|
padding: var(--space-sm) var(--space-lg);
|
|
font-size: var(--font-size-base);
|
|
}
|
|
|
|
.cookie-button {
|
|
padding: var(--space-xs) var(--space-md);
|
|
}
|
|
}
|
|
|
|
/* High Contrast Mode Support */
|
|
@media (forced-colors: active) {
|
|
.button,
|
|
.cta-button,
|
|
.submit-button,
|
|
.icon-button {
|
|
border: 1px solid currentColor;
|
|
}
|
|
}
|