Spaces:
Sleeping
Sleeping
| /* SAAP Component Styles - Production Ready */ | |
| /* =================================== | |
| BUTTON COMPONENTS | |
| =================================== */ | |
| .saap-button-primary { | |
| @apply inline-flex items-center justify-center px-4 py-2; | |
| @apply text-sm font-medium text-white; | |
| @apply bg-saap-primary-600 hover:bg-saap-primary-700; | |
| @apply border border-transparent rounded-lg; | |
| @apply shadow-sm hover:shadow-md; | |
| @apply transition-all duration-200; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-primary-500 focus:ring-offset-2; | |
| @apply disabled:opacity-50 disabled:cursor-not-allowed; | |
| } | |
| .saap-button-secondary { | |
| @apply inline-flex items-center justify-center px-4 py-2; | |
| @apply text-sm font-medium text-saap-gray-700; | |
| @apply bg-white hover:bg-saap-gray-50; | |
| @apply border border-saap-gray-300 hover:border-saap-gray-400 rounded-lg; | |
| @apply shadow-sm hover:shadow-md; | |
| @apply transition-all duration-200; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-primary-500 focus:ring-offset-2; | |
| @apply disabled:opacity-50 disabled:cursor-not-allowed; | |
| } | |
| .saap-button-accent { | |
| @apply inline-flex items-center justify-center px-4 py-2; | |
| @apply text-sm font-medium text-white; | |
| @apply bg-saap-accent-600 hover:bg-saap-accent-700; | |
| @apply border border-transparent rounded-lg; | |
| @apply shadow-sm hover:shadow-md; | |
| @apply transition-all duration-200; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-accent-500 focus:ring-offset-2; | |
| @apply disabled:opacity-50 disabled:cursor-not-allowed; | |
| } | |
| .saap-button-danger { | |
| @apply inline-flex items-center justify-center px-4 py-2; | |
| @apply text-sm font-medium text-white; | |
| @apply bg-red-600 hover:bg-red-700; | |
| @apply border border-transparent rounded-lg; | |
| @apply shadow-sm hover:shadow-md; | |
| @apply transition-all duration-200; | |
| @apply focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2; | |
| @apply disabled:opacity-50 disabled:cursor-not-allowed; | |
| } | |
| /* Button Sizes */ | |
| .saap-button-sm { | |
| @apply px-3 py-1.5 text-xs; | |
| } | |
| .saap-button-lg { | |
| @apply px-6 py-3 text-base; | |
| } | |
| .saap-button-xl { | |
| @apply px-8 py-4 text-lg; | |
| } | |
| /* =================================== | |
| CARD COMPONENTS | |
| =================================== */ | |
| .saap-card { | |
| @apply bg-white rounded-xl border border-saap-gray-200; | |
| @apply shadow-sm hover:shadow-md transition-shadow duration-200; | |
| } | |
| .saap-card-elevated { | |
| @apply bg-white rounded-xl; | |
| @apply shadow-lg hover:shadow-xl transition-shadow duration-200; | |
| } | |
| .saap-card-interactive { | |
| @apply bg-white rounded-xl border border-saap-gray-200; | |
| @apply shadow-sm hover:shadow-md hover:border-saap-primary-300; | |
| @apply transition-all duration-200 cursor-pointer; | |
| } | |
| .saap-card-interactive:hover { | |
| transform: translateY(-2px); | |
| } | |
| /* =================================== | |
| ICON COMPONENTS & SIZING | |
| =================================== */ | |
| .saap-icon-xs { | |
| @apply w-3 h-3; | |
| } | |
| .saap-icon-sm { | |
| @apply w-4 h-4; | |
| } | |
| .saap-icon { | |
| @apply w-5 h-5; | |
| } | |
| .saap-icon-md { | |
| @apply w-6 h-6; | |
| } | |
| .saap-icon-lg { | |
| @apply w-8 h-8; | |
| } | |
| .saap-icon-xl { | |
| @apply w-12 h-12; | |
| } | |
| .saap-icon-2xl { | |
| @apply w-16 h-16; | |
| } | |
| /* Icon containers */ | |
| .saap-icon-container { | |
| @apply flex items-center justify-center; | |
| @apply flex-shrink-0; | |
| } | |
| .saap-icon-container-sm { | |
| @apply w-8 h-8 rounded-lg; | |
| } | |
| .saap-icon-container-md { | |
| @apply w-10 h-10 rounded-lg; | |
| } | |
| .saap-icon-container-lg { | |
| @apply w-12 h-12 rounded-xl; | |
| } | |
| /* =================================== | |
| FORM COMPONENTS | |
| =================================== */ | |
| .saap-input { | |
| @apply block w-full px-3 py-2; | |
| @apply text-sm text-saap-gray-900 placeholder-saap-gray-400; | |
| @apply bg-white border border-saap-gray-300 rounded-lg; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-primary-500 focus:border-saap-primary-500; | |
| @apply disabled:bg-saap-gray-50 disabled:text-saap-gray-500 disabled:cursor-not-allowed; | |
| @apply transition-all duration-200; | |
| } | |
| .saap-textarea { | |
| @apply block w-full px-3 py-2; | |
| @apply text-sm text-saap-gray-900 placeholder-saap-gray-400; | |
| @apply bg-white border border-saap-gray-300 rounded-lg; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-primary-500 focus:border-saap-primary-500; | |
| @apply disabled:bg-saap-gray-50 disabled:text-saap-gray-500 disabled:cursor-not-allowed; | |
| @apply transition-all duration-200; | |
| @apply resize-y min-h-[80px]; | |
| } | |
| .saap-select { | |
| @apply block w-full px-3 py-2; | |
| @apply text-sm text-saap-gray-900; | |
| @apply bg-white border border-saap-gray-300 rounded-lg; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-primary-500 focus:border-saap-primary-500; | |
| @apply disabled:bg-saap-gray-50 disabled:text-saap-gray-500 disabled:cursor-not-allowed; | |
| @apply transition-all duration-200; | |
| } | |
| .saap-label { | |
| @apply block text-sm font-medium text-saap-gray-700 mb-1; | |
| } | |
| .saap-help-text { | |
| @apply text-xs text-saap-gray-500 mt-1; | |
| } | |
| .saap-error-text { | |
| @apply text-xs text-red-600 mt-1; | |
| } | |
| /* =================================== | |
| STATUS BADGES | |
| =================================== */ | |
| .saap-badge { | |
| @apply inline-flex items-center px-2.5 py-0.5; | |
| @apply text-xs font-medium rounded-full; | |
| } | |
| .saap-badge-primary { | |
| @apply bg-saap-primary-100 text-saap-primary-800; | |
| } | |
| .saap-badge-secondary { | |
| @apply bg-saap-secondary-100 text-saap-secondary-800; | |
| } | |
| .saap-badge-accent { | |
| @apply bg-saap-accent-100 text-saap-accent-800; | |
| } | |
| .saap-badge-gray { | |
| @apply bg-saap-gray-100 text-saap-gray-800; | |
| } | |
| .saap-badge-success { | |
| @apply bg-green-100 text-green-800; | |
| } | |
| .saap-badge-warning { | |
| @apply bg-yellow-100 text-yellow-800; | |
| } | |
| .saap-badge-danger { | |
| @apply bg-red-100 text-red-800; | |
| } | |
| /* =================================== | |
| LOADING STATES | |
| =================================== */ | |
| .saap-loading-spinner { | |
| @apply w-5 h-5 border-2 border-current border-t-transparent rounded-full animate-spin; | |
| } | |
| .saap-loading-spinner-sm { | |
| @apply w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin; | |
| } | |
| .saap-loading-spinner-lg { | |
| @apply w-8 h-8 border-4 border-current border-t-transparent rounded-full animate-spin; | |
| } | |
| .saap-loading-pulse { | |
| @apply animate-pulse bg-saap-gray-200 rounded; | |
| } | |
| /* =================================== | |
| ALERTS & MESSAGES | |
| =================================== */ | |
| .saap-alert { | |
| @apply p-4 rounded-lg border; | |
| } | |
| .saap-alert-info { | |
| @apply bg-blue-50 border-blue-200 text-blue-800; | |
| } | |
| .saap-alert-success { | |
| @apply bg-green-50 border-green-200 text-green-800; | |
| } | |
| .saap-alert-warning { | |
| @apply bg-yellow-50 border-yellow-200 text-yellow-800; | |
| } | |
| .saap-alert-error { | |
| @apply bg-red-50 border-red-200 text-red-800; | |
| } | |
| /* =================================== | |
| LAYOUT HELPERS | |
| =================================== */ | |
| .saap-container { | |
| @apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8; | |
| } | |
| .saap-section { | |
| @apply py-12; | |
| } | |
| .saap-divider { | |
| @apply border-t border-saap-gray-200 my-6; | |
| } | |
| /* =================================== | |
| RESPONSIVE UTILITIES | |
| =================================== */ | |
| @media (max-width: 640px) { | |
| .saap-mobile-full { | |
| @apply w-full; | |
| } | |
| .saap-mobile-stack { | |
| @apply flex-col space-y-2 space-x-0; | |
| } | |
| .saap-mobile-center { | |
| @apply justify-center text-center; | |
| } | |
| } | |
| /* =================================== | |
| ACCESSIBILITY IMPROVEMENTS | |
| =================================== */ | |
| .saap-sr-only { | |
| @apply sr-only; | |
| } | |
| .saap-focus-visible:focus-visible { | |
| @apply outline-none ring-2 ring-saap-primary-500 ring-offset-2; | |
| } | |
| /* High contrast mode support */ | |
| @media (prefers-contrast: high) { | |
| .saap-button-primary { | |
| @apply border-2 border-saap-primary-800; | |
| } | |
| .saap-button-secondary { | |
| @apply border-2 border-saap-gray-600; | |
| } | |
| } | |
| /* Reduced motion support */ | |
| @media (prefers-reduced-motion: reduce) { | |
| .saap-button-primary, | |
| .saap-button-secondary, | |
| .saap-button-accent, | |
| .saap-card, | |
| .saap-input, | |
| .saap-textarea, | |
| .saap-select { | |
| @apply transition-none; | |
| } | |
| .saap-loading-spinner, | |
| .saap-loading-spinner-sm, | |
| .saap-loading-spinner-lg { | |
| @apply animate-none; | |
| } | |
| } |