Files
schedtxt/src/components/ViewContactWizard/StepNavigation.module.css
T
phoenixandphoenix 0202425a09 tsk-10: Edit Contact (#23)
Closes #10

Reviewed-on: phoenix/textsender#23
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
2026-01-29 22:20:28 +00:00

205 lines
3.7 KiB
CSS

/* StepNavigation.module.css */
.navigation {
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
padding: 24px;
background: linear-gradient(145deg, #ffffff 0%, #f8fafc 100%);
border-top: 1px solid #e2e8f0;
border-radius: 0 0 16px 16px;
}
.buttonGroup {
display: flex;
gap: 12px;
}
.navButton {
padding: 14px 28px;
border-radius: 12px;
font-weight: 600;
font-size: 15px;
cursor: pointer;
border: none;
transition: all 0.3s ease;
min-width: 120px;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
position: relative;
overflow: hidden;
}
.navButton::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 5px;
height: 5px;
background: rgba(255, 255, 255, 0.5);
opacity: 0;
border-radius: 100%;
transform: scale(1, 1) translate(-50%);
transform-origin: 50% 50%;
}
.navButton:focus:not(:active)::after {
animation: ripple 1s ease-out;
}
@keyframes ripple {
0% {
transform: scale(0, 0);
opacity: 0.5;
}
100% {
transform: scale(40, 40);
opacity: 0;
}
}
.backButton {
background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
color: #475569;
border: 2px solid #cbd5e1;
}
.backButton:hover:not(:disabled) {
background: linear-gradient(135deg, #e2e8f0 0%, #cbd5e1 100%);
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(100, 116, 139, 0.2);
}
.backButton:active:not(:disabled) {
transform: translateY(0);
}
.backButton:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none !important;
}
.nextButton {
background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
color: white;
box-shadow: 0 4px 15px rgba(139, 92, 246, 0.3);
}
.nextButton:hover:not(:disabled) {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(139, 92, 246, 0.4);
background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);
}
.nextButton:active:not(:disabled) {
transform: translateY(0);
}
.nextButton:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none !important;
box-shadow: none;
}
.submitButton {
background: linear-gradient(135deg, #10b981 0%, #059669 100%);
color: white;
box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3);
}
.submitButton:hover:not(:disabled) {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(16, 185, 129, 0.4);
background: linear-gradient(135deg, #059669 0%, #047857 100%);
}
.submitButton:disabled {
opacity: 0.5;
cursor: not-allowed;
transform: none !important;
box-shadow: none;
}
.doneButton {
background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
color: white;
box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
margin-left: auto;
}
.doneButton:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(59, 130, 246, 0.4);
background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);
}
.error {
color: #dc2626;
font-size: 14px;
font-weight: 500;
background: #fef2f2;
padding: 10px 16px;
border-radius: 8px;
border-left: 4px solid #dc2626;
display: flex;
align-items: center;
gap: 8px;
animation: shake 0.5s ease-in-out;
}
@keyframes shake {
0%,
100% {
transform: translateX(0);
}
10%,
30%,
50%,
70%,
90% {
transform: translateX(-5px);
}
20%,
40%,
60%,
80% {
transform: translateX(5px);
}
}
.error::before {
content: '⚠️';
font-size: 16px;
}
.buttonIcon {
font-size: 16px;
}
/* Responsive adjustments */
@media (max-width: 640px) {
.navigation {
flex-direction: column;
gap: 12px;
}
.buttonGroup {
width: 100%;
flex-direction: column;
}
.navButton {
width: 100%;
}
.error {
width: 100%;
text-align: center;
}
}