basic ui
This commit is contained in:
221
src/lib/components/TaskCard.module.css
Normal file
221
src/lib/components/TaskCard.module.css
Normal file
@@ -0,0 +1,221 @@
|
||||
/* Card Container */
|
||||
.cardContainer {
|
||||
padding: 1.25rem;
|
||||
border-radius: 0.75rem;
|
||||
border: 1px solid #e4e4e7;
|
||||
background-color: #ffffff;
|
||||
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
||||
transition: all 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
.archiving {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.cardContainer {
|
||||
background-color: #18181b;
|
||||
border-color: #27272a;
|
||||
}
|
||||
}
|
||||
|
||||
/* Header Section */
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-weight: 600;
|
||||
font-size: 1.125rem;
|
||||
color: #18181b;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.title {
|
||||
color: #f4f4f5;
|
||||
}
|
||||
}
|
||||
|
||||
/* Status Badges */
|
||||
.badge {
|
||||
font-size: 0.75rem;
|
||||
padding: 0.25rem 0.625rem;
|
||||
border-radius: 9999px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.statusComplete {
|
||||
background-color: #d1fae5;
|
||||
color: #065f46;
|
||||
}
|
||||
|
||||
.statusInProgress {
|
||||
background-color: #fef3c7;
|
||||
color: #92400e;
|
||||
}
|
||||
|
||||
.statusTodo {
|
||||
background-color: #dbeafe;
|
||||
color: #1e40af;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.statusComplete {
|
||||
background-color: #022c22;
|
||||
color: #6ee7b7;
|
||||
}
|
||||
.statusInProgress {
|
||||
background-color: #451a03;
|
||||
color: #fcd34d;
|
||||
}
|
||||
.statusTodo {
|
||||
background-color: #172554;
|
||||
color: #93c5fd;
|
||||
}
|
||||
}
|
||||
|
||||
/* Description */
|
||||
.description {
|
||||
margin-top: 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
color: #52525b;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.description {
|
||||
color: #a1a1aa;
|
||||
}
|
||||
}
|
||||
|
||||
/* Footer Section */
|
||||
.footer {
|
||||
margin-top: 1rem;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 0.5rem;
|
||||
font-size: 0.75rem;
|
||||
color: #71717a;
|
||||
border-top: 1px solid #f4f4f5;
|
||||
padding-top: 0.75rem;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.footer {
|
||||
border-color: #27272a;
|
||||
color: #a1a1aa;
|
||||
}
|
||||
}
|
||||
|
||||
.metaGroup {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.topicTag {
|
||||
background-color: #f4f4f5;
|
||||
padding: 0.125rem 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
font-family: monospace;
|
||||
color: #3f3f46;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.topicTag {
|
||||
background-color: #27272a;
|
||||
color: #d4d4d8;
|
||||
}
|
||||
}
|
||||
|
||||
/* Overdue Badge */
|
||||
.overdueBadge {
|
||||
background-color: #fee2e2;
|
||||
color: #b91c1c;
|
||||
padding: 0.125rem 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
font-weight: 600;
|
||||
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.overdueBadge {
|
||||
background-color: #450a0a;
|
||||
color: #fca5a5;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: .5; }
|
||||
}
|
||||
|
||||
/* Actions Section */
|
||||
.actions {
|
||||
margin-top: 1rem;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 0.5rem;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
.btnEdit {
|
||||
padding: 0.375rem 0.75rem;
|
||||
border-radius: 0.25rem;
|
||||
background-color: #f4f4f5;
|
||||
color: #27272a;
|
||||
font-weight: 500;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.btnEdit:hover {
|
||||
background-color: #e4e4e7;
|
||||
}
|
||||
|
||||
.btnArchive {
|
||||
padding: 0.375rem 0.75rem;
|
||||
border-radius: 0.25rem;
|
||||
background-color: #fef2f2;
|
||||
color: #dc2626;
|
||||
font-weight: 500;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.btnArchive:hover {
|
||||
background-color: #fee2e2;
|
||||
}
|
||||
|
||||
.btnArchive:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.btnEdit {
|
||||
background-color: #27272a;
|
||||
color: #e4e4e7;
|
||||
}
|
||||
.btnEdit:hover {
|
||||
background-color: #3f3f46;
|
||||
}
|
||||
.btnArchive {
|
||||
background-color: rgba(69, 10, 10, 0.5);
|
||||
color: #f87171;
|
||||
}
|
||||
.btnArchive:hover {
|
||||
background-color: rgba(127, 29, 29, 0.5);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user