Files

649 lines
16 KiB
CSS
Raw Permalink Normal View History

2026-10-09 22:06:40 +08:00
/*
This CSS file will be included with your plugin, and
available in the app when your plugin is enabled.
If your plugin does not need CSS, delete this file.
*/
.taskido {
cursor: default;
user-select: none;
margin-bottom: 15%;
--taskido-color-warning: var(--color-red);
--taskido-color-focus: var(--text-accent, var(--interactive-accent));
--taskido-color-focus-hsl: var(--interactive-accent-hsl);
--taskido-color-overdue: var(--taskido-color-warning);
--taskido-color-done: var(--color-green);
--taskido-color-process: var(--color-orange);
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido a {
text-decoration: none;
}
/*
* Links and badges inherit their color unless a scoped rule (tag, overdue, done, noColor) sets one.
* The repeated class lifts this above the unscoped badge rules such as `.taskido .task .info .file`.
*/
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.taskido.taskido a {
color: inherit;
}
/* The year list is wrapped in a span directly under .taskido; lay it out as a block. */
.taskido > span {
display: block;
}
.taskido .task .internal-link,
.taskido .task .external-link {
color: var(--text-accent, var(--interactive-accent));
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task .internal-link,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task .external-link {
text-decoration: underline;
}
.taskido .year {
font-size: 30px;
font-weight: bold;
margin: 20px 0;
color: var(--text-normal);
text-align: center;
}
.taskido .details {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
width: 100%;
height: auto;
}
.taskido .todayHeader {
font-size: 24px;
font-weight: bold;
text-align: center;
margin: 10px 5px;
border-radius: 10px;
cursor: pointer;
}
.taskido .details.today .date {
color: var(--taskido-color-focus);
}
.taskido .counters {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
align-content: center;
margin: 20px 0;
}
.taskido .counter {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
color: var(--text-normal);
border-radius: 10px;
padding: 5px;
text-align: center;
flex: 1 1 0;
margin: 0 5px;
min-width: 70px;
max-width: 150px;
overflow: hidden;
background: var(--interactive-normal);
box-shadow: var(--input-shadow);
cursor: pointer;
}
.taskido .count {
font-size: 18px;
font-weight: normal;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.taskido .counter .label {
font-size: 12px;
font-weight: normal;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.taskido .dateLine {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
margin: 10px 0;
}
.taskido .date {
color: var(--text-normal);
font-size: 16px;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.taskido .weekday {
color: var(--text-normal);
font-weight: normal;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 16px;
}
.taskido .task {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
border-radius: 10px;
padding: 0;
margin: 0;
cursor: pointer;
}
.taskido .timeline,
.taskido .lines {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
cursor: default;
}
.taskido .timeline {
width: 50px;
flex-shrink: 0;
flex-grow: 0;
align-items: center;
}
.taskido .lines {
flex-shrink: 1;
flex-grow: 1;
overflow: hidden;
}
.taskido .task .timeline::after {
content: "";
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 1;
flex-grow: 1;
position: relative;
margin-top: 3px;
margin-bottom: 3px;
width: 1.2px;
background: var(--checkbox-border-color);
}
.taskido .task.overdue .timeline::after,
.taskido .task[data-task='>'] .timeline::after {
background-color: var(--taskido-color-overdue);
}
.taskido .task.done .timeline::after,
.taskido .task[data-task='x'] .timeline::after {
background-color: var(--taskido-color-done);
}
.taskido .task.process .timeline::after,
.taskido .task.scheduled .timeline::after,
.taskido .task.start .timeline::after,
.taskido .task[data-task='<'] .timeline::after {
background-color: var(--taskido-color-process);
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.overdue .timeline .icon svg {
stroke: var(--taskido-color-overdue);
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.done .timeline .icon svg {
stroke: var(--taskido-color-done);
}
.taskido .task.process .timeline .icon svg,
.taskido .task.scheduled .timeline .icon svg,
.taskido .task.start .timeline .icon svg {
stroke: var(--taskido-color-process);
}
.taskido .task.done .info .tag,
.taskido .task.done .info .repeat,
.taskido .task.done .info .priority,
.taskido .task.done .info .relative,
.taskido .task.done .info .file,
.taskido .task.cancelled .info .tag,
.taskido .task.cancelled .info .repeat,
.taskido .task.cancelled .info .priority,
.taskido .task.cancelled .info .relative,
.taskido .task.cancelled .info .file {
line-height: 0;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.done .info .tag,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.done .info .repeat,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.done .info .priority,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.done .info .relative,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.done .info .file,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.cancelled .info .tag,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.cancelled .info .repeat,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.cancelled .info .priority,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.cancelled .info .relative,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.cancelled .info .file {
color: var(--text-muted);
}
.taskido .task.done .content,
.taskido .task.cancelled .content {
text-decoration: line-through;
color: var(--text-muted);
}
.taskido .line {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
}
.taskido .task .timeline input[type='checkbox']:not(.icon) {
margin-top: calc(11px - var(--checkbox-size) / 2.0);
margin-left: 0;
margin-right: 0;
}
.taskido .icon {
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
flex-grow: 0;
text-align: center;
}
.taskido .timeline input.icon,
.taskido .timeline input.icon:checked {
visibility: hidden;
height: 0;
}
.taskido .timeline .icon svg {
height: var(--checkbox-size);
width: var(--checkbox-size);
stroke-width: 1.75px;
color: var(--checkbox-border-color);
scale: 1.2;
}
.taskido .timeline .icon svg:hover {
color: var(--checkbox-border-color-hover);
scale: 1.3;
}
.taskido .task .info {
line-height: 22px;
padding-bottom: 2px;
cursor: default;
}
.taskido .task .info:empty {
display: none;
}
.taskido .task .content {
display: block;
white-space: break-word;
font-size: 15px;
font-weight: normal;
color: var(--text-normal);
line-height: 22px;
}
.taskido .task .info .tag,
.taskido .task .info .repeat,
.taskido .task .info .priority,
.taskido .task .info .relative,
.taskido .task .info .file {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
width: auto;
font-size: 9px;
font-weight: normal;
margin: 2px 5px 2px 0;
color: var(--text-muted);
border: none;
padding: 0;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task .info .tag,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task .info .repeat,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task .info .priority,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task .info .relative,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task .info .file {
line-height: 1;
border-radius: 3px;
}
.taskido .task .info .file {
color: var(--task-color);
}
.taskido .task .info .tag {
cursor: pointer;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task .info .tag {
color: var(--tag-color);
background: none;
}
.taskido .info .icon {
text-align: center;
height: 15px;
}
.taskido .info .label {
margin-left: 2px;
}
.taskido .info svg {
height: 12px;
width: 12px;
stroke-width: 1.75px;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .task.overdue .info .relative {
color: var(--taskido-color-overdue);
}
/* Quick Entry Panel */
.taskido .quickEntryPanel {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
background: var(--background-modifier-form-field);
border: var(--input-border-width) solid var(--background-modifier-border);
color: var(--text-normal);
border-radius: 10px;
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
margin: 0 5px 20px 5px;
overflow: hidden;
padding: 5px;
}
.taskido .quickEntryPanel .left {
width: 100%;
flex-shrink: 1;
flex-grow: 1;
overflow: hidden;
border-radius: 5px;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel .left {
padding: 0 5px;
}
.taskido .quickEntryPanel .left .actionSelect {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
}
.taskido .quickEntryPanel .left .actionSelect .actionName {
max-width: 20%;
}
.taskido .quickEntryPanel .left .actionSelect .filterSelector {
max-width: 20%;
}
.taskido .quickEntryPanel .left .dateFilter {
max-width: fit-content;
justify-content: space-between;
}
.taskido .quickEntryPanel .left .dateFilter input[type=date] {
width: fit-content;
}
.taskido .quickEntryPanel .MultiSelect {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-end;
align-items: center;
white-space: nowrap;
}
.taskido .quickEntryPanel .right {
display: block;
width: auto;
flex-shrink: 1;
flex-grow: 1;
overflow: hidden;
border-radius: 5px;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel select,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel input,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel button {
box-shadow: none;
border: none;
background: none;
border-radius: 0;
}
.taskido .quickEntryPanel select,
.taskido .quickEntryPanel button {
cursor: pointer;
}
.taskido .quickEntryPanel input {
cursor: text;
}
.taskido .quickEntryPanel select {
height: 15px;
width: 100%;
font-size: 11px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
color: var(--text-muted);
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel select {
padding: 0;
margin: 2.5px 0;
}
.taskido .quickEntryPanel select:hover,
.taskido .quickEntryPanel button:hover {
color: var(--text-normal);
}
.taskido .quickEntryPanel select option,
.taskido .quickEntryPanel select optgroup {
background: var(--background-primary);
font-weight: normal;
color: var(--text-normal);
}
.taskido .quickEntryPanel input {
height: 20px;
line-height: 20px;
width: 100%;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: 14px;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel input {
padding: 0;
margin: 0;
}
.taskido .quickEntryPanel button {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: center;
align-items: center;
height: 100%;
width: auto;
color: var(--text-muted);
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel button {
padding: 0 5px;
margin: 0;
}
.taskido .quickEntryPanel svg {
height: 15px;
width: 15px;
stroke-width: 1.75px;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel select:active,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel input:active,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .quickEntryPanel button:active {
border: none;
box-shadow: none;
transition: none;
}
/* Classes */
.taskido.todayFocus .todayHeader {
color: var(--taskido-color-focus);
}
.taskido.todoFocus .counter#todo,
.taskido.todoFilter .counter#todo,
.taskido.overdueFocus .counter#overdue,
.taskido.overdueFilter .counter#overdue,
.taskido.unplannedFocus .counter#unplanned,
.taskido.unplannedFilter .counter#unplanned {
color: var(--taskido-color-focus);
background: var(--background-modifier-hover);
box-shadow: var(--input-shadow);
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noYear .year,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noRepeat .repeat,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noTag .tag,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noPriority .priority,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noFile .task .file,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noHeader .task .header,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noFile .task .info>.file,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noInfo .task .line:nth-child(2),
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noDone .year[data-types="done"],
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noDone .details[data-types="done"],
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noDone .task.done,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noUnplanned .task.unplanned,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noUnplanned .counter#unplanned,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noUnplanned .year[data-types="unplanned"],
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noUnplanned .details[data-types="unplanned"],
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noRelative .relative,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noQuickEntry .quickEntryPanel,
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noCounters .counters {
display: none;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noColor .task .file {
color: var(--text-muted);
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.noColor .task .info .file {
color: var(--text-muted);
}
/* Focus */
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.todayFocus .details:not(.today),
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido.todayFocus .year {
display: none;
}
.taskido.todayFocus .details.today {
padding: 0;
}
.workspace-leaf-content[data-type="tasks_timeline_view"] .taskido .details.today {
background: transparent;
background-color: transparent;
}
.taskido.todoFocus .task.due,
.taskido.todoFocus .task.scheduled,
.taskido.todoFocus .task.process,
.taskido.todoFocus .task.start,
.taskido.overdueFocus .task.overdue,
.taskido.unplannedFocus .task.unplanned {
background: var(--background-modifier-hover);
}
.taskido .task:hover {
background: var(--background-modifier-hover);
}
/* Filter */
.taskido.todoFilter .year:not([data-types~="due"]):not([data-types~="scheduled"]):not([data-types~="process"]):not([data-types~="start"]) {
display: none;
}
.taskido.todoFilter .details:not([data-types~="due"]):not([data-types~="scheduled"]):not([data-types~="process"]):not([data-types~="start"]) {
display: none;
}
.taskido.todoFilter .task:not(.due, .scheduled, .process, .start) {
display: none;
}
.taskido.overdueFilter .year:not([data-types*="overdue"]) {
display: none;
}
.taskido.overdueFilter .details:not([data-types*="overdue"]) {
display: none;
}
.taskido.overdueFilter .task:not(.overdue) {
display: none;
}
.taskido.unplannedFilter .year:not([data-types*="unplanned"]) {
display: none;
}
.taskido.unplannedFilter .details:not([data-types*="unplanned"]) {
display: none;
}
.taskido.unplannedFilter .task:not(.unplanned) {
display: none;
}
/* Warning note in setting descriptions, e.g. the path filters. */
.tasks-calendar-wrapper-setting-warning {
color: var(--text-error);
}