diff options
| author | shu <nvcsadjkojf@outlook.com> | 2026-07-26 22:42:45 +0800 |
|---|---|---|
| committer | shu <nvcsadjkojf@outlook.com> | 2026-07-26 22:42:45 +0800 |
| commit | 338cc101f127e4841689c1f81227ee033e57ad28 (patch) | |
| tree | 490cfc2ca29dc28e116a979f5c19b0851c3ea32e /tiddlers/plugin-task-board-styles.tid | |
| parent | 1888ff59743d83bd7776b0f16ef0bc20d68e3e10 (diff) | |
Add task board and organize local plugins
Diffstat (limited to 'tiddlers/plugin-task-board-styles.tid')
| -rw-r--r-- | tiddlers/plugin-task-board-styles.tid | 641 |
1 files changed, 641 insertions, 0 deletions
diff --git a/tiddlers/plugin-task-board-styles.tid b/tiddlers/plugin-task-board-styles.tid new file mode 100644 index 0000000..f3c81b1 --- /dev/null +++ b/tiddlers/plugin-task-board-styles.tid @@ -0,0 +1,641 @@ +title: $:/plugins/local/task-board/styles +tags: $:/tags/Stylesheet + +\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline + +.tc-task-board { + width: 100%; + --task-p1: #d84b4b; + --task-p2: <<colour primary>>; + --task-p3: #5b9a68; +} + +.tc-task-board-toolbar { + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + margin-bottom: 1.25rem; +} + +.tc-task-board-new { + padding: 0.55rem 1rem; + color: <<colour background>>; + font-weight: 700; + background: <<colour primary>>; + border-radius: 0.45rem; +} + +.tc-task-board-switcher { + display: grid; + grid-template-columns: repeat(4,auto); + border: 1px solid <<colour table-border>>; + border-radius: 999px; + overflow: hidden; +} + +.tc-task-board-view-button { + padding: 0.45rem 0.8rem; + border-right: 1px solid <<colour table-border>>; +} + +.tc-task-board-view-button:last-child { + border-right: 0; +} + +.tc-task-board-view-button.tc-selected { + color: <<colour background>>; + background: <<colour primary>>; +} + +.tc-task-kanban { + display: grid; + grid-template-columns: repeat(4,minmax(15rem,1fr)); + gap: 0.75rem; + padding-bottom: 0.5rem; + overflow-x: auto; + scroll-snap-type: x proximity; +} + +.tc-task-kanban-column { + min-height: 18rem; + padding: 0.7rem; + background: <<colour sidebar-tab-background>>; + border: 1px solid <<colour table-border>>; + border-radius: 0.65rem; + scroll-snap-align: start; + transition: box-shadow 120ms ease; +} + +.tc-task-kanban-column.tc-drag-over { + box-shadow: inset 0 0 0 3px <<colour primary>>; +} + +.tc-task-kanban-heading { + margin: 0 0 0.7rem; + font-size: 1rem; +} + +.tc-task-kanban-cards { + display: grid; + gap: 0.55rem; +} + +.tc-task-card { + padding: 0.7rem; + background: <<colour tiddler-background>>; + border: 1px solid <<colour table-border>>; + border-radius: 0.5rem; + box-shadow: 0 1px 2px rgba(0,0,0,0.08); + cursor: grab; +} + +.tc-task-card.tc-dragging { + opacity: 0.45; +} + +.tc-task-card-top { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 0.5rem; +} + +.tc-task-card-title, +.tc-task-list-link, +.tc-task-gantt-task-link, +.tc-task-unscheduled-link { + color: <<colour tiddler-link-foreground>>; + font-weight: 650; + text-align: left; +} + +.tc-task-card-title:hover, +.tc-task-list-link:hover, +.tc-task-gantt-task-link:hover, +.tc-task-unscheduled-link:hover { + text-decoration: underline; +} + +.tc-task-priority { + display: inline-flex; + flex: 0 0 auto; + padding: 0.12rem 0.38rem; + color: #fff; + font-size: 0.72rem; + font-weight: 700; + border-radius: 999px; +} + +.tc-task-priority-p1 {background: var(--task-p1);} +.tc-task-priority-p2 {background: var(--task-p2);} +.tc-task-priority-p3 {background: var(--task-p3);} + +.tc-task-card-dates, +.tc-task-card-tags { + margin-top: 0.45rem; + color: <<colour muted-foreground>>; + font-size: 0.78rem; + line-height: 1.45; +} + +.tc-task-issues { + display: block; + margin-top: 0.4rem; + color: #b33a3a; + font-size: 0.75rem; +} + +.tc-task-empty-column, +.tc-task-empty { + padding: 1.25rem; + color: <<colour muted-foreground>>; + text-align: center; +} + +.tc-task-list-wrapper { + width: 100%; + overflow-x: auto; +} + +.tc-task-list { + width: 100%; + border-collapse: collapse; +} + +.tc-task-list th, +.tc-task-list td { + padding: 0.65rem; + text-align: left; + vertical-align: top; + border-bottom: 1px solid <<colour table-border>>; +} + +.tc-task-list th { + white-space: nowrap; + background: <<colour table-header-background>>; +} + +.tc-task-list-title { + min-width: 12rem; +} + +.tc-task-list-row.tc-task-invalid { + background: rgba(216,75,75,0.08); +} + +.tc-task-calendar-controls { + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + margin-bottom: 0.8rem; +} + +.tc-task-calendar-title { + min-width: 9rem; + margin: 0; + text-align: center; +} + +.tc-task-month-button { + min-height: 2.25rem; + padding: 0.35rem 0.65rem; + border: 1px solid <<colour table-border>>; + border-radius: 999px; +} + +.tc-task-calendar-grid { + border: 1px solid <<colour table-border>>; + border-radius: 0.5rem; + overflow: hidden; +} + +.tc-task-calendar-header, +.tc-task-calendar-week { + display: grid; + grid-template-columns: repeat(7,minmax(0,1fr)); +} + +.tc-task-calendar-week { + position: relative; + gap: 1px; + background: <<colour table-border>>; + border-top: 1px solid <<colour table-border>>; +} + +.tc-task-calendar-weekday { + padding: 0.55rem 0.2rem; + font-weight: 700; + text-align: center; + background: <<colour table-header-background>>; +} + +.tc-task-calendar-day { + z-index: 0; + min-width: 0; + min-height: 8rem; + padding: 0.35rem; + background: <<colour tiddler-background>>; +} + +.tc-task-calendar-blank { + background: <<colour sidebar-tab-background>>; +} + +.tc-task-calendar-day-number { + display: flex; + align-items: center; + justify-content: center; + width: 1.65rem; + height: 1.65rem; + margin-bottom: 0.3rem; + font-weight: 700; + border-radius: 50%; +} + +.tc-task-calendar-today .tc-task-calendar-day-number { + color: <<colour background>>; + background: <<colour primary>>; +} + +.tc-task-calendar-range, +.tc-task-calendar-point, +.tc-task-calendar-milestone { + z-index: 1; + align-self: center; + display: block; + width: 100%; + min-width: 0; + padding: 0.2rem 0.3rem; + color: #fff; + font-size: 0.72rem; + line-height: 1.2; + text-align: left; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.tc-task-calendar-range { + margin-left: -1px; + margin-right: -1px; + background: var(--task-p2); +} + +.tc-task-calendar-range[data-priority="P1"] {background: var(--task-p1);} +.tc-task-calendar-range[data-priority="P3"] {background: var(--task-p3);} +.tc-task-calendar-point[data-priority="P1"] {background: var(--task-p1);} +.tc-task-calendar-point[data-priority="P2"] {background: var(--task-p2);} +.tc-task-calendar-point[data-priority="P3"] {background: var(--task-p3);} +.tc-task-calendar-range.tc-range-start {border-radius: 0.35rem 0 0 0.35rem;} +.tc-task-calendar-range.tc-range-end {border-radius: 0 0.35rem 0.35rem 0;} +.tc-task-calendar-range.tc-range-start.tc-range-end {border-radius: 0.35rem;} + +.tc-task-calendar-point { + border-radius: 0.35rem; +} + +.tc-task-calendar-milestone { + color: #fff; + background: #7656b5; + border-radius: 0.3rem; +} + +.tc-task-unscheduled { + margin-top: 1rem; + padding: 0.8rem; + background: <<colour sidebar-tab-background>>; + border-radius: 0.5rem; +} + +.tc-task-unscheduled h3 { + margin: 0 0 0.5rem; + font-size: 1rem; +} + +.tc-task-unscheduled-list { + display: flex; + flex-wrap: wrap; + gap: 0.45rem; +} + +.tc-task-unscheduled-link { + padding: 0.3rem 0.55rem; + background: <<colour tiddler-background>>; + border-radius: 0.35rem; +} + +.tc-task-gantt-scroll { + width: 100%; + overflow: auto; + border: 1px solid <<colour table-border>>; + border-radius: 0.5rem; +} + +.tc-task-gantt { + width: max-content; + min-width: 100%; + --task-gantt-label-width: 18rem; +} + +.tc-task-gantt-row { + display: grid; + grid-template-columns: var(--task-gantt-label-width) var(--task-gantt-width); + min-height: 3.25rem; + border-bottom: 1px solid <<colour table-border>>; +} + +.tc-task-gantt-row:last-child { + border-bottom: 0; +} + +.tc-task-gantt-label { + position: sticky; + left: 0; + z-index: 2; + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.45rem; + padding: 0.45rem 0.6rem; + background: <<colour tiddler-background>>; + border-right: 1px solid <<colour table-border>>; +} + +.tc-task-gantt-header { + position: sticky; + top: 0; + z-index: 4; + min-height: 4.5rem; +} + +.tc-task-gantt-header .tc-task-gantt-label { + z-index: 5; + font-weight: 700; + background: <<colour table-header-background>>; +} + +.tc-task-gantt-timeline { + position: relative; + width: var(--task-gantt-width); + background-image: repeating-linear-gradient(to right,transparent 0,transparent 29px,<<colour table-border>> 29px,<<colour table-border>> 30px); +} + +.tc-task-gantt-header-timeline { + display: grid; + grid-template-rows: 2rem 2.5rem; + background: <<colour table-header-background>>; +} + +.tc-task-gantt-months { + display: flex; + width: var(--task-gantt-date-width); + height: 2rem; +} + +.tc-task-gantt-month-segment { + position: relative; + flex: 0 0 auto; + height: 2rem; + border-left: 2px solid <<colour primary>>; +} + +.tc-task-gantt-month-label { + position: sticky; + left: calc(var(--task-gantt-label-width) + 0.5rem); + z-index: 1; + display: inline-flex; + align-items: center; + height: 2rem; + padding: 0 0.45rem; + font-size: 0.78rem; + font-weight: 700; + white-space: nowrap; + background: <<colour table-header-background>>; +} + +.tc-task-gantt-days { + display: flex; + width: var(--task-gantt-date-width); + height: 2.5rem; + border-top: 1px solid <<colour table-border>>; +} + +.tc-task-gantt-day { + flex: 0 0 auto; + padding-top: 0.65rem; + font-size: 0.72rem; + text-align: center; + white-space: nowrap; + border-right: 1px solid <<colour table-border>>; +} + +.tc-task-gantt-bar { + position: absolute; + top: 0.8rem; + height: 1.65rem; + padding: 0; + background: var(--task-p2); + border-radius: 0.35rem; +} + +.tc-task-gantt-bar[data-priority="P1"] {background: var(--task-p1);} +.tc-task-gantt-bar[data-priority="P3"] {background: var(--task-p3);} + +.tc-task-gantt-bar-label { + position: absolute; + top: 0.8rem; + z-index: 2; + display: inline-flex; + align-items: center; + height: 1.65rem; + padding: 0 0.25rem; + color: <<colour tiddler-link-foreground>>; + font-size: 0.78rem; + font-weight: 650; + white-space: nowrap; +} + +.tc-task-gantt-bar-label:hover, +.tc-task-gantt-bar-label:focus { + text-decoration: underline; +} + +.tc-task-gantt-due, +.tc-task-gantt-end { + position: absolute; + top: 0.95rem; + z-index: 2; + padding: 0; + transform: translateX(-50%); + font-size: 1rem; +} + +.tc-task-gantt-due {color: #b33a3a;} +.tc-task-gantt-end {color: var(--task-p2);} + +.tc-task-gantt-today-line { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + width: 2px; + background: #b33a3a; + pointer-events: none; +} + +.tc-task-field-panel { + display: grid; + grid-template-columns: repeat(5,minmax(0,1fr)); + gap: 0.6rem; + margin: 0.7rem 0; + padding: 0.75rem; + background: <<colour sidebar-tab-background>>; + border: 1px solid <<colour table-border>>; + border-radius: 0.5rem; +} + +.tc-task-field { + display: grid; + gap: 0.3rem; +} + +.tc-task-field > span, +.tc-task-view-field span { + color: <<colour muted-foreground>>; + font-size: 0.76rem; + font-weight: 650; +} + +.tc-task-field-control { + width: 100%; + min-width: 0; + min-height: 2.25rem; +} + +.tc-task-view-field { + display: grid; + gap: 0.2rem; +} + +@media (max-width: 700px) { + .tc-task-board-toolbar { + display: grid; + gap: 0.65rem; + } + + .tc-task-board-new { + min-height: 2.75rem; + } + + .tc-task-board-switcher { + grid-template-columns: repeat(4,minmax(0,1fr)); + border-radius: 0.5rem; + } + + .tc-task-board-view-button { + min-width: 0; + padding: 0.5rem 0.15rem; + } + + .tc-task-kanban { + grid-template-columns: repeat(4,minmax(82vw,82vw)); + } + + .tc-task-list, + .tc-task-list tbody, + .tc-task-list tr, + .tc-task-list td { + display: block; + } + + .tc-task-list thead { + display: none; + } + + .tc-task-list-row { + margin-bottom: 0.7rem; + padding: 0.65rem; + border: 1px solid <<colour table-border>>; + border-radius: 0.5rem; + } + + .tc-task-list td { + display: grid; + grid-template-columns: 4.5rem minmax(0,1fr); + padding: 0.3rem; + border: 0; + } + + .tc-task-list td::before { + content: attr(data-label); + color: <<colour muted-foreground>>; + font-size: 0.78rem; + font-weight: 650; + } + + .tc-task-list-title { + min-width: 0; + } + + .tc-task-calendar-controls { + display: grid; + grid-template-columns: repeat(3,minmax(0,1fr)); + } + + .tc-task-calendar-title { + grid-column: 1 / -1; + grid-row: 1; + justify-self: center; + } + + .tc-task-month-button { + grid-row: 2; + min-height: 2.75rem; + padding: 0.3rem 0.15rem; + } + + .tc-task-calendar-weekday { + padding: 0.4rem 0; + font-size: 0.75rem; + } + + .tc-task-calendar-day { + min-height: 6.5rem; + padding: 0.15rem; + } + + .tc-task-calendar-day-number { + width: 1.5rem; + height: 1.5rem; + font-size: 0.78rem; + } + + .tc-task-calendar-range, + .tc-task-calendar-point, + .tc-task-calendar-milestone { + padding: 0.16rem 0.1rem; + font-size: 0.62rem; + text-align: center; + } + + .tc-task-gantt-row { + --task-gantt-label-width: 9rem; + } + + .tc-task-gantt-label { + padding: 0.4rem; + } + + .tc-task-gantt-task-link { + max-width: 6rem; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .tc-task-field-panel { + grid-template-columns: 1fr; + } +} |
