UNPKG

react-todolist-component

Version:

A clean, customizable React TodoList component with TypeScript support and advanced modal editor

276 lines (223 loc) 5.32 kB
/* Professional TodoList Component Styles - Bootstrap Enhanced */ .todolist { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; } .todolist--dark { background: #1a1d23; color: #e9ecef; } .todolist--dark .card { background: #2d3748; border-color: #4a5568; } .todolist--dark .card-body { background: #2d3748; } .todolist--dark .table { color: #e9ecef; } .todolist--dark .table-dark th { background-color: #1a202c; border-color: #4a5568; } .todolist--dark .table-striped > tbody > tr:nth-of-type(odd) > td { background-color: rgba(255, 255, 255, 0.05); } .todolist--dark .form-control { background-color: #4a5568; border-color: #718096; color: #e9ecef; } .todolist--dark .form-control:focus { background-color: #4a5568; border-color: #63b3ed; color: #e9ecef; box-shadow: 0 0 0 0.25rem rgba(99, 179, 237, 0.25); } .todolist--dark .form-control::placeholder { color: #a0aec0; } .todolist--dark .input-group-text { background-color: #4a5568; border-color: #718096; color: #a0aec0; } .todolist--dark .btn-outline-primary { color: #63b3ed; border-color: #63b3ed; } .todolist--dark .btn-outline-primary:hover { background-color: #63b3ed; border-color: #63b3ed; color: #1a202c; } .todolist--dark .btn-outline-danger { color: #fc8181; border-color: #fc8181; } .todolist--dark .btn-outline-danger:hover { background-color: #fc8181; border-color: #fc8181; color: #1a202c; } .todolist--dark .btn-outline-secondary { color: #a0aec0; border-color: #a0aec0; } .todolist--dark .btn-outline-secondary:hover { background-color: #a0aec0; border-color: #a0aec0; color: #1a202c; } /* Custom hover effects for table rows */ .table-hover tbody tr:hover { background-color: rgba(0, 123, 255, 0.075); transition: background-color 0.15s ease-in-out; } .todolist--dark .table-hover tbody tr:hover { background-color: rgba(99, 179, 237, 0.1); } /* Priority badge customization */ .badge.bg-danger { background-color: #dc3545 !important; } .badge.bg-warning { background-color: #ffc107 !important; color: #212529 !important; } .badge.bg-success { background-color: #198754 !important; } .badge.bg-info { background-color: #0dcaf0 !important; color: #000 !important; } /* Overdue row highlighting */ .table-warning { --bs-table-bg: #fff3cd; --bs-table-striped-bg: #f9eccd; --bs-table-hover-bg: #f5e6c8; } .todolist--dark .table-warning { --bs-table-bg: rgba(255, 193, 7, 0.1); --bs-table-striped-bg: rgba(255, 193, 7, 0.15); --bs-table-hover-bg: rgba(255, 193, 7, 0.2); } /* Completed task styling */ .opacity-75 { opacity: 0.75; } /* Button styling improvements */ .btn-sm { padding: 0.25rem 0.5rem; font-size: 0.775rem; } /* Table header improvements */ .table thead th { border-bottom: 2px solid #dee2e6; vertical-align: middle; font-weight: 600; } .todolist--dark .table thead th { border-bottom-color: #4a5568; } /* Form styling improvements */ .form-control, .form-control-sm { border-radius: 0.375rem; transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } .form-control:focus, .form-control-sm:focus { border-color: #86b7fe; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } /* Icon spacing */ .fas { width: 1em; text-align: center; } /* Badge spacing and sizing */ .badge { font-size: 0.7em; padding: 0.35em 0.65em; } /* Card shadow enhancement */ .card.shadow-sm { box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; } .todolist--dark .card.shadow-sm { box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.3) !important; } /* Responsive improvements */ @media (max-width: 768px) { .d-flex.gap-2 { flex-direction: column; } .input-group { max-width: 100% !important; } .table-responsive { font-size: 0.875rem; } .btn-sm { padding: 0.125rem 0.25rem; font-size: 0.75rem; } } /* Animation for status button */ .btn.rounded-circle { transition: all 0.2s ease-in-out; } .btn.rounded-circle:hover { transform: scale(1.1); } /* Search input enhancements */ .input-group-text { background-color: #f8f9fa; border-color: #ced4da; } /* Table cell content alignment */ .table td { vertical-align: middle; } /* Text decoration for completed tasks */ .text-decoration-line-through { text-decoration: line-through !important; } /* Custom gap utility for older Bootstrap versions */ .gap-1 > * + * { margin-left: 0.25rem; } .gap-2 > * + * { margin-left: 0.5rem; } /* Sortable header cursor */ th[style*="cursor: pointer"]:hover { background-color: rgba(0, 0, 0, 0.05); transition: background-color 0.15s ease-in-out; } .todolist--dark th[style*="cursor: pointer"]:hover { background-color: rgba(255, 255, 255, 0.05); } /* Loading and empty states */ .text-muted { font-style: italic; } /* Button group spacing */ .d-flex.gap-1 { gap: 0.25rem; } .d-flex.gap-2 { gap: 0.5rem; } /* Focus improvements for accessibility */ .btn:focus, .form-control:focus { outline: none; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } .todolist--dark .btn:focus, .todolist--dark .form-control:focus { box-shadow: 0 0 0 0.25rem rgba(99, 179, 237, 0.25); }