Spaces:
Sleeping
Sleeping
| /** | |
| * SAAP Design System v1.0 - Foundation CSS | |
| * satware AI Autonomous Agent Platform | |
| * Based on Refactoring UI Principles + Material Design 3 | |
| */ | |
| /* ======================================== | |
| FONT IMPORTS - MUST BE FIRST | |
| ======================================== */ | |
| /* Inter Font Import */ | |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); | |
| @import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500&display=swap'); | |
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| /* ======================================== | |
| SAAP FOUNDATION STYLES | |
| ======================================== */ | |
| @layer base { | |
| /* Root Variables - Design Tokens */ | |
| :root { | |
| /* SAAP Color System */ | |
| --saap-primary: #2563eb; | |
| --saap-primary-hover: #1e3a8a; | |
| --saap-success: #10b981; | |
| --saap-warning: #f59e0b; | |
| --saap-error: #ef4444; | |
| --saap-info: #3b82f6; | |
| /* Agent Colors */ | |
| --saap-jane: #8b5cf6; /* Purple - Lead Coordinator */ | |
| --saap-john: #14b8a6; /* Teal - Developer */ | |
| --saap-lara: #ec4899; /* Pink - Medical Expert */ | |
| --saap-justus: #f59e0b; /* Gold - Legal Expert */ | |
| /* Typography */ | |
| --saap-font-family: 'Inter', system-ui, sans-serif; | |
| --saap-font-mono: 'Fira Code', 'SF Mono', Monaco, monospace; | |
| /* Spacing Base Unit */ | |
| --saap-space-unit: 0.25rem; /* 4px */ | |
| /* Border Radius */ | |
| --saap-radius: 0.5rem; /* 8px */ | |
| --saap-radius-lg: 0.75rem; /* 12px */ | |
| --saap-radius-xl: 1rem; /* 16px */ | |
| /* Shadows */ | |
| --saap-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1); | |
| --saap-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.15); | |
| --saap-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.2); | |
| --saap-shadow-primary: 0 4px 12px rgba(37, 99, 235, 0.25); | |
| /* Transitions */ | |
| --saap-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| /* Base HTML Styling */ | |
| html { | |
| font-family: var(--saap-font-family); | |
| font-size: 16px; | |
| line-height: 1.5; | |
| color: theme('colors.saap.neutral.700'); | |
| background-color: theme('colors.saap.neutral.50'); | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| body { | |
| font-family: inherit; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| /* Accessibility Focus Styles */ | |
| *:focus-visible { | |
| outline: 2px solid theme('colors.saap.primary.400'); | |
| outline-offset: 2px; | |
| } | |
| } | |
| /* ======================================== | |
| SAAP COMPONENT SYSTEM | |
| ======================================== */ | |
| @layer components { | |
| /* Container System */ | |
| .saap-container { | |
| @apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8; | |
| } | |
| .saap-container-narrow { | |
| @apply max-w-4xl mx-auto px-4 sm:px-6; | |
| } | |
| /* ======================================== | |
| BUTTON COMPONENTS | |
| ======================================== */ | |
| /* Primary Button - Highest Priority Actions */ | |
| .saap-btn-primary { | |
| @apply inline-flex items-center justify-center px-6 py-3; | |
| @apply text-base font-semibold text-white; | |
| @apply bg-saap-primary-600 hover:bg-saap-primary-800; | |
| @apply rounded-saap shadow-saap-primary hover:shadow-saap-primary-lg; | |
| @apply transition-all duration-300 ease-out; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-primary-400 focus:ring-offset-2; | |
| @apply disabled:opacity-50 disabled:cursor-not-allowed; | |
| @apply transform hover:-translate-y-0.5 active:translate-y-0; | |
| } | |
| /* Secondary Button - Secondary Actions */ | |
| .saap-btn-secondary { | |
| @apply inline-flex items-center justify-center px-6 py-3; | |
| @apply text-base font-medium text-saap-primary-600; | |
| @apply bg-white border-2 border-saap-primary-200; | |
| @apply hover:bg-saap-primary-50 hover:border-saap-primary-300; | |
| @apply rounded-saap shadow-saap-sm hover:shadow-saap-md; | |
| @apply transition-all duration-300 ease-out; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-primary-400 focus:ring-offset-2; | |
| } | |
| /* Ghost Button - Minimal Actions */ | |
| .saap-btn-ghost { | |
| @apply inline-flex items-center justify-center px-4 py-2; | |
| @apply text-sm font-medium text-saap-neutral-700; | |
| @apply bg-transparent hover:bg-saap-neutral-100; | |
| @apply rounded-saap transition-colors duration-200; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-primary-400 focus:ring-offset-1; | |
| } | |
| /* Danger Button - Destructive Actions */ | |
| .saap-btn-danger { | |
| @apply inline-flex items-center justify-center px-6 py-3; | |
| @apply text-base font-semibold text-white; | |
| @apply bg-saap-error hover:bg-red-700; | |
| @apply rounded-saap shadow-sm hover:shadow-md; | |
| @apply transition-all duration-300 ease-out; | |
| @apply focus:outline-none focus:ring-2 focus:ring-red-400 focus:ring-offset-2; | |
| } | |
| /* Button Sizes */ | |
| .saap-btn-sm { | |
| @apply px-4 py-2 text-sm; | |
| } | |
| .saap-btn-lg { | |
| @apply px-8 py-4 text-lg; | |
| } | |
| /* ======================================== | |
| CARD COMPONENTS | |
| ======================================== */ | |
| /* Base Card */ | |
| .saap-card { | |
| @apply bg-white border border-saap-neutral-200; | |
| @apply rounded-saap-lg shadow-saap-sm; | |
| @apply p-saap-6 transition-all duration-300; | |
| @apply hover:shadow-saap-md hover:border-saap-primary-200; | |
| @apply hover:-translate-y-1; | |
| } | |
| /* Agent Card - Specialized for Agent Display */ | |
| .saap-agent-card { | |
| @apply saap-card relative min-h-[200px]; | |
| @apply hover:shadow-saap-primary-lg hover:border-saap-primary-300; | |
| } | |
| /* Card Header */ | |
| .saap-card-header { | |
| @apply flex items-center justify-between mb-saap-4; | |
| @apply pb-saap-3 border-b border-saap-neutral-100; | |
| } | |
| /* Card Body */ | |
| .saap-card-body { | |
| @apply space-y-saap-3; | |
| } | |
| /* Card Footer */ | |
| .saap-card-footer { | |
| @apply flex items-center justify-between pt-saap-4; | |
| @apply mt-saap-4 border-t border-saap-neutral-100; | |
| } | |
| /* ======================================== | |
| STATUS & BADGE COMPONENTS | |
| ======================================== */ | |
| /* Base Badge */ | |
| .saap-badge { | |
| @apply inline-flex items-center px-3 py-1; | |
| @apply text-xs font-semibold text-white; | |
| @apply rounded-full uppercase tracking-wider; | |
| } | |
| /* Status Badges */ | |
| .saap-badge-active { | |
| @apply saap-badge bg-saap-success; | |
| } | |
| .saap-badge-inactive { | |
| @apply saap-badge bg-saap-neutral-400; | |
| } | |
| .saap-badge-processing { | |
| @apply saap-badge bg-saap-accent-500; | |
| } | |
| .saap-badge-error { | |
| @apply saap-badge bg-saap-error; | |
| } | |
| /* Agent Type Indicators */ | |
| .saap-agent-indicator { | |
| @apply absolute top-4 right-4 w-3 h-3 rounded-full; | |
| } | |
| .saap-agent-jane { | |
| @apply bg-saap-jane; | |
| } | |
| .saap-agent-john { | |
| @apply bg-saap-john; | |
| } | |
| .saap-agent-lara { | |
| @apply bg-saap-lara; | |
| } | |
| .saap-agent-justus { | |
| @apply bg-saap-justus; | |
| } | |
| /* ======================================== | |
| INPUT & FORM COMPONENTS | |
| ======================================== */ | |
| /* Base Input */ | |
| .saap-input { | |
| @apply w-full px-4 py-3 text-base; | |
| @apply bg-white border border-saap-neutral-300; | |
| @apply rounded-saap placeholder-saap-neutral-500; | |
| @apply focus:outline-none focus:ring-2 focus:ring-saap-primary-400 focus:border-saap-primary-400; | |
| @apply transition-all duration-200; | |
| } | |
| /* Textarea */ | |
| .saap-textarea { | |
| @apply saap-input resize-y min-h-[100px]; | |
| } | |
| /* Form Group */ | |
| .saap-form-group { | |
| @apply space-y-saap-2; | |
| } | |
| /* Form Label */ | |
| .saap-label { | |
| @apply block text-sm font-medium text-saap-neutral-700; | |
| } | |
| /* ======================================== | |
| LAYOUT COMPONENTS | |
| ======================================== */ | |
| /* Dashboard Grid */ | |
| .saap-dashboard-grid { | |
| @apply grid gap-saap-6; | |
| @apply grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4; | |
| } | |
| /* Sidebar */ | |
| .saap-sidebar { | |
| @apply bg-white border-r border-saap-neutral-200; | |
| @apply w-64 h-full flex flex-col; | |
| } | |
| /* Navigation */ | |
| .saap-nav-item { | |
| @apply flex items-center px-4 py-3 text-sm font-medium; | |
| @apply text-saap-neutral-700 hover:text-saap-primary-600; | |
| @apply hover:bg-saap-primary-50 rounded-saap mx-2; | |
| @apply transition-all duration-200; | |
| } | |
| .saap-nav-item.active { | |
| @apply text-saap-primary-600 bg-saap-primary-100; | |
| } | |
| /* ======================================== | |
| UTILITY CLASSES | |
| ======================================== */ | |
| /* Typography Utilities */ | |
| .saap-heading { | |
| @apply font-saap font-bold text-saap-neutral-900; | |
| } | |
| .saap-heading-1 { | |
| @apply saap-heading text-saap-5xl; | |
| } | |
| .saap-heading-2 { | |
| @apply saap-heading text-saap-4xl; | |
| } | |
| .saap-heading-3 { | |
| @apply saap-heading text-saap-3xl; | |
| } | |
| .saap-heading-4 { | |
| @apply saap-heading text-saap-2xl; | |
| } | |
| /* Body Text */ | |
| .saap-body { | |
| @apply font-saap text-base text-saap-neutral-700 leading-relaxed; | |
| } | |
| .saap-body-sm { | |
| @apply font-saap text-sm text-saap-neutral-600; | |
| } | |
| /* Message Flow Visualization */ | |
| .saap-message-flow { | |
| @apply flex items-center gap-saap-3 p-saap-4; | |
| @apply bg-saap-neutral-50 border-l-4 border-saap-primary-400; | |
| @apply rounded-r-saap my-saap-2; | |
| } | |
| /* Performance Metrics */ | |
| .saap-metric-widget { | |
| @apply bg-gradient-to-br from-saap-primary-600 to-saap-primary-700; | |
| @apply text-white p-saap-5 rounded-saap-lg text-center; | |
| @apply relative overflow-hidden; | |
| } | |
| .saap-metric-number { | |
| @apply text-3xl font-bold leading-none mb-1; | |
| } | |
| .saap-metric-label { | |
| @apply text-sm opacity-90 font-medium uppercase tracking-wider; | |
| } | |
| /* Animation Utilities */ | |
| .saap-fade-in { | |
| @apply animate-saap-fade-in; | |
| } | |
| .saap-slide-up { | |
| @apply animate-saap-slide-up; | |
| } | |
| .saap-pulse-gentle { | |
| @apply animate-saap-pulse-gentle; | |
| } | |
| } | |
| /* ======================================== | |
| RESPONSIVE UTILITIES | |
| ======================================== */ | |
| @layer utilities { | |
| /* SAAP Responsive Text */ | |
| .saap-text-responsive { | |
| @apply text-base saap-md:text-lg saap-lg:text-xl; | |
| } | |
| /* SAAP Responsive Padding */ | |
| .saap-p-responsive { | |
| @apply p-saap-4 saap-md:p-saap-6 saap-lg:p-saap-8; | |
| } | |
| /* SAAP Responsive Grid */ | |
| .saap-grid-responsive { | |
| @apply grid-cols-1 saap-md:grid-cols-2 saap-lg:grid-cols-3 saap-xl:grid-cols-4; | |
| } | |
| } | |
| /* ======================================== | |
| DARK MODE SUPPORT (Future Enhancement) | |
| ======================================== */ | |
| @media (prefers-color-scheme: dark) { | |
| /* Dark mode styles will be added in v1.1 */ | |
| } | |
| /* ======================================== | |
| ACCESSIBILITY ENHANCEMENTS | |
| ======================================== */ | |
| /* High Contrast Mode */ | |
| @media (prefers-contrast: high) { | |
| .saap-btn-primary { | |
| @apply border-2 border-white; | |
| } | |
| .saap-card { | |
| @apply border-2 border-saap-neutral-400; | |
| } | |
| } | |
| /* Reduced Motion */ | |
| @media (prefers-reduced-motion: reduce) { | |
| * { | |
| animation-duration: 0.01ms ; | |
| animation-iteration-count: 1 ; | |
| transition-duration: 0.01ms ; | |
| } | |
| } |