Spaces:
Running
Running
| /* Custom styles for TaskForge Pro */ | |
| /* Scrollbar styling */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| @apply bg-gray-800; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| @apply bg-gray-600 rounded-full; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| @apply bg-gray-500; | |
| } | |
| /* Task hover effects */ | |
| .task-item { | |
| @apply relative overflow-hidden; | |
| transition: all 0.3s ease; | |
| border-left: 4px solid transparent; | |
| } | |
| .task-item.completed { | |
| animation: completeTask 0.6s ease forwards; | |
| } | |
| @keyframes completeTask { | |
| 0% { transform: scale(1); opacity: 1; } | |
| 50% { transform: scale(0.95); opacity: 0.8; } | |
| 100% { transform: scale(1); opacity: 1; border-left-color: #10b981; } | |
| } | |
| .task-item .focus-btn { | |
| @apply absolute right-12 top-1/2 transform -translate-y-1/2; | |
| @apply p-2 rounded-full bg-orange-500 bg-opacity-0 text-orange-500; | |
| @apply transition-all duration-300 ease-in-out; | |
| opacity: 0; | |
| } | |
| .task-item:hover .focus-btn { | |
| @apply bg-opacity-20; | |
| opacity: 1; | |
| } | |
| .task-item .focus-btn:hover { | |
| @apply bg-opacity-100 text-white; | |
| } | |
| .task-item:hover { | |
| @apply transform scale-105 shadow-lg; | |
| } | |
| /* Progress bar animation */ | |
| .progress-bar-fill { | |
| transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| /* Focus mode animations */ | |
| @keyframes pulse { | |
| 0%, 100% { | |
| opacity: 1; | |
| } | |
| 50% { | |
| opacity: 0.5; | |
| } | |
| } | |
| .focus-pulse { | |
| animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; | |
| } | |
| /* Button focus styles */ | |
| .btn:focus { | |
| @apply outline-none ring-2 ring-orange-500 ring-offset-2 ring-offset-gray-900; | |
| } | |
| /* Tag badge styles */ | |
| .tag-badge { | |
| @apply inline-flex items-center px-2 py-1 rounded-full text-xs font-medium; | |
| } | |
| /* Timeline styles */ | |
| .timeline-hour { | |
| @apply relative border-b border-gray-700; | |
| min-height: 60px; | |
| position: relative; | |
| } | |
| .timeline-task-block { | |
| @apply absolute rounded-lg cursor-move transition-all; | |
| transition: all 0.2s ease; | |
| } | |
| .timeline-task-block:hover { | |
| @apply transform scale-105 shadow-lg; | |
| } | |
| .timeline-task-block.dragging { | |
| @apply opacity-50; | |
| } | |
| /* Modal backdrop blur */ | |
| .modal-backdrop { | |
| backdrop-filter: blur(4px); | |
| } | |
| /* Custom input styles */ | |
| input[type="text"], input[type="number"], textarea, select { | |
| @apply bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 text-gray-100; | |
| @apply focus:outline-none focus:ring-2 focus:ring-orange-500 focus:border-transparent; | |
| } | |
| input[type="color"] { | |
| @apply cursor-pointer; | |
| } | |
| /* Navigation buttons */ | |
| .nav-btn { | |
| @apply flex items-center space-x-2 px-4 py-2 rounded-lg transition; | |
| @apply text-gray-400 hover:text-white hover:bg-gray-700; | |
| } | |
| .nav-btn.active { | |
| @apply text-orange-500 bg-gray-700; | |
| } | |
| /* View transitions */ | |
| .view { | |
| display: none; | |
| } | |
| .view.active { | |
| display: block; | |
| animation: fadeIn 0.3s ease-in-out; | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| transform: translateY(10px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| /* Drag and drop styles */ | |
| .drag-over { | |
| @apply bg-gray-700 border-2 border-dashed border-orange-500; | |
| } | |
| /* Custom checkbox */ | |
| .custom-checkbox { | |
| @apply w-5 h-5 rounded cursor-pointer appearance-none; | |
| @apply bg-gray-700 border border-gray-600; | |
| @apply checked:bg-emerald-500 checked:border-emerald-500; | |
| } | |
| .custom-checkbox:checked::after { | |
| content: '✓'; | |
| @apply block text-white text-center leading-5; | |
| } | |
| /* Time display */ | |
| .time-display { | |
| @apply font-mono text-lg tabular-nums; | |
| } | |
| /* Empty state */ | |
| .empty-state { | |
| @apply text-center py-12 text-gray-500; | |
| } | |
| .empty-state i { | |
| @apply w-16 h-16 mx-auto mb-4; | |
| } | |
| /* Responsive timeline */ | |
| @media (max-width: 768px) { | |
| #timeline-tasks { | |
| width: 100%; | |
| position: static; | |
| } | |
| #timeline-hours { | |
| margin-left: 0; | |
| } | |
| .timeline-task-block { | |
| position: relative ; | |
| width: 100% ; | |
| left: 0 ; | |
| top: auto ; | |
| } | |
| } | |
| /* Loading animation */ | |
| .loading { | |
| @apply animate-pulse; | |
| } | |
| .loading::after { | |
| content: ''; | |
| @apply absolute inset-0 bg-gray-700 rounded-lg; | |
| animation: loading 1.5s ease-in-out infinite; | |
| } | |
| @keyframes loading { | |
| 0% { | |
| transform: translateX(-100%); | |
| } | |
| 100% { | |
| transform: translateX(100%); | |
| } | |
| } | |
| /* Task priority indicator */ | |
| .priority-high { | |
| @apply border-l-4 border-red-500; | |
| } | |
| .priority-medium { | |
| @apply border-l-4 border-yellow-500; | |
| } | |
| .priority-low { | |
| @apply border-l-4 border-emerald-500; | |
| } | |
| /* Focus mode glass effect */ | |
| #focus-mode { | |
| background: linear-gradient(135deg, rgba(17, 24, 39, 0.95) 0%, rgba(17, 24, 39, 0.98) 100%); | |
| backdrop-filter: blur(10px); | |
| } | |
| /* Smooth transitions for all interactive elements */ | |
| * { | |
| transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease; | |
| } |