taskforge-pro / style.css
Fadikkop's picture
Promote version 4549c0d to main
a12aab2 verified
/* 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 !important;
width: 100% !important;
left: 0 !important;
top: auto !important;
}
}
/* 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;
}