best shot

This commit is contained in:
ben7sys
2024-11-03 05:57:56 +01:00
parent 2c80ae9f3c
commit ae3eab7a98
15 changed files with 2863 additions and 307 deletions

View File

@@ -1,42 +1,201 @@
/* Buttons */
.cta-button {
display: inline-block;
padding: 1rem 2rem;
background-color: var(--accent-color);
color: white;
text-decoration: none;
border-radius: 5px;
transition: var(--transition);
/* 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 5px 15px rgba(0, 0, 0, 0.2);
box-shadow: 0 4px 12px rgba(21, 52, 209, 0.2);
}
.cta-button:focus {
outline: 2px solid var(--text-color);
outline-offset: 2px;
.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 {
padding: 1rem;
background-color: var(--accent-color);
background: var(--accent-color);
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
transition: var(--transition);
width: 100%;
padding: var(--space-md);
position: relative;
font-weight: 600;
}
.submit-button:hover {
transform: translateY(-2px);
background: var(--accent-blue);
}
.submit-button:disabled {
opacity: 0.7;
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;
}
}