Files
plainleaf/client/styles/plainleaf_workspace.scss
T
wushenghuaandCodex 645c04ed01 feat: 优化移动端笔记与编辑体验
手机端改用抽屉侧栏并移除底部导航,补充 Markdown 编辑工具栏,收拢开发者选项并改善社区扩展下载错误反馈。

Co-Authored-By: Codex <noreply@anthropic.com>
2026-08-13 06:42:18 +08:00

2775 lines
50 KiB
SCSS

#pl-workspace-shell {
--pl-sidebar: #f0f2ef;
--pl-surface: #ffffff;
--pl-canvas: #f6f7f5;
--pl-text: #242824;
--pl-muted: #687168;
--pl-faint: #929a92;
--pl-border: #dde2dc;
--pl-border-strong: #cbd3cb;
--pl-green: #3f7658;
--pl-green-dark: #335f48;
--pl-green-soft: #ddebe2;
--pl-coral: #c96c5c;
--pl-coral-soft: #f6e4e0;
--pl-blue: #4c7591;
--pl-blue-soft: #e1ebf1;
--pl-yellow: #e7c96f;
--pl-danger: #b94a4a;
--pl-sidebar-width: clamp(260px, 20vw, 300px);
display: grid;
grid-template-columns: var(--pl-sidebar-width) minmax(0, 1fr);
width: 100%;
height: 100%;
min-height: 0;
color: var(--pl-text);
background: var(--pl-canvas);
font-family: var(--ui-font);
letter-spacing: 0;
overflow: hidden;
}
html[data-theme="dark"] #pl-workspace-shell {
--pl-sidebar: #202521;
--pl-surface: #1e221f;
--pl-canvas: #171a18;
--pl-text: #e8ece8;
--pl-muted: #9ba69d;
--pl-faint: #727c74;
--pl-border: #343b35;
--pl-border-strong: #465048;
--pl-green: #75b18d;
--pl-green-dark: #88c09e;
--pl-green-soft: #283c30;
--pl-coral: #dc7d7d;
--pl-coral-soft: #432d2b;
--pl-blue: #75a8c2;
--pl-blue-soft: #263842;
--pl-yellow: #dfa84f;
}
#pl-workspace-shell button,
#pl-workspace-shell input,
#pl-workspace-shell select {
box-sizing: border-box;
color: inherit;
font: inherit;
letter-spacing: 0;
}
#pl-workspace-shell button:focus-visible,
#pl-workspace-shell input:focus-visible,
#pl-workspace-shell select:focus-visible {
outline: 2px solid var(--pl-green);
outline-offset: 1px;
}
.pl-sidebar {
z-index: 30;
display: flex;
min-width: 0;
min-height: 0;
flex-direction: column;
border-right: 1px solid var(--pl-border);
color: var(--pl-text);
background: var(--pl-sidebar);
overflow: hidden;
}
.pl-brand-row {
display: flex;
align-items: center;
justify-content: space-between;
flex: 0 0 58px;
padding: 8px 12px 5px 14px;
}
.pl-brand {
display: flex;
align-items: center;
gap: 10px;
height: 38px;
padding: 0 4px;
border: 0;
color: var(--pl-text);
background: transparent;
cursor: pointer;
font-size: 16px;
font-weight: 700;
}
.pl-brand-mark {
display: grid;
place-items: center;
width: 30px;
height: 30px;
border: 1px solid color-mix(in srgb, var(--pl-green) 25%, var(--pl-border));
border-radius: 8px 3px 8px 3px;
color: var(--pl-green-dark);
background: color-mix(in srgb, var(--pl-green-soft) 75%, var(--pl-surface));
}
.pl-close-mobile {
display: none;
place-items: center;
width: 32px;
height: 32px;
padding: 0;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
}
.pl-create-button {
display: flex;
align-items: center;
justify-content: center;
gap: 7px;
flex: 0 0 34px;
height: 34px;
margin: 3px 12px 12px;
padding: 0;
border: 0;
border-radius: 6px;
color: white;
background: #3f7658;
cursor: pointer;
font-size: 13px;
font-weight: 650;
transition: background 120ms ease;
}
.pl-create-button:hover {
background: #335f48;
}
.pl-create-button:disabled {
opacity: 0.48;
cursor: not-allowed;
}
.pl-primary-nav {
display: grid;
gap: 2px;
padding: 0 8px;
}
.pl-primary-nav-item,
.pl-sidebar-footer button,
.pl-note-shortcuts button,
.pl-more-links button,
.pl-more-links a {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
height: 34px;
padding: 0 10px;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
font-size: 13px;
text-align: left;
text-decoration: none;
}
.pl-primary-nav-item:hover,
.pl-primary-nav-item.is-active,
.pl-sidebar-footer button:hover,
.pl-sidebar-footer button.is-active,
.pl-note-shortcuts button:hover,
.pl-note-shortcuts button.is-active,
.pl-more-links button:hover,
.pl-more-links a:hover {
color: var(--pl-text);
background: var(--pl-green-soft);
}
.pl-primary-nav-item.is-active,
.pl-sidebar-footer button.is-active,
.pl-note-shortcuts button.is-active {
font-weight: 650;
}
.pl-primary-nav-item > svg,
.pl-sidebar-footer button > svg,
.pl-note-shortcuts button > svg,
.pl-more-links button > svg,
.pl-more-links a > svg {
flex: 0 0 16px;
}
.pl-nav-count {
margin-left: auto;
color: var(--pl-coral);
font-size: 11px;
}
.pl-sidebar-divider {
flex: 0 0 1px;
margin: 12px 12px 0;
background: var(--pl-border);
}
.pl-sidebar-scroll {
flex: 1;
min-height: 0;
padding: 10px 8px 16px;
overflow-x: hidden;
overflow-y: auto;
}
.pl-sidebar-scroll > * {
max-width: 100%;
}
.pl-sidebar-footer {
flex: 0 0 47px;
padding: 6px 8px;
border-top: 1px solid var(--pl-border);
}
.pl-sidebar-heading {
display: flex;
align-items: center;
justify-content: space-between;
height: 30px;
padding: 0 8px;
}
.pl-sidebar-heading strong {
color: var(--pl-text);
font-size: 15px;
font-weight: 650;
}
.pl-sidebar-heading span {
color: var(--pl-faint);
font-size: 10px;
}
.pl-note-shortcuts {
display: grid;
gap: 1px;
}
.pl-note-shortcuts small {
margin-left: auto;
color: var(--pl-faint);
font-size: 10px;
font-weight: 400;
}
.pl-files-section {
margin-top: 16px;
}
.pl-files-section > header {
display: flex;
align-items: center;
height: 26px;
padding: 0 8px;
color: var(--pl-faint);
font-size: 10px;
font-weight: 700;
}
.pl-tree-row {
display: flex;
align-items: center;
width: 100%;
min-width: 0;
height: 32px;
padding: 0 7px;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
font-size: 13px;
text-align: left;
}
.pl-tree-row:hover,
.pl-tree-row.is-active {
color: var(--pl-text);
background: var(--pl-green-soft);
}
.pl-tree-row.is-active {
font-weight: 650;
}
.pl-tree-row > svg {
flex: 0 0 15px;
margin-right: 7px;
}
.pl-tree-disclosure {
display: grid;
place-items: center;
flex: 0 0 17px;
width: 17px;
height: 20px;
margin-right: 1px;
}
.pl-tree-label {
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.pl-tree-count {
flex: 0 0 auto;
margin-left: 7px;
color: var(--pl-faint);
font-size: 10px;
}
.pl-search-field {
display: grid;
grid-template-columns: 24px minmax(0, 1fr) 26px;
align-items: center;
height: 36px;
margin: 3px 4px 10px;
padding: 0 4px 0 7px;
border: 1px solid var(--pl-border-strong);
border-radius: 6px;
color: var(--pl-faint);
background: var(--pl-surface);
}
.pl-search-field input {
width: 100%;
height: 34px;
padding: 0 3px;
border: 0;
outline: 0;
color: var(--pl-text);
background: transparent;
font-size: 13px;
}
.pl-search-field button {
display: grid;
place-items: center;
width: 26px;
height: 26px;
padding: 0;
border: 0;
border-radius: 4px;
color: var(--pl-faint);
background: transparent;
cursor: pointer;
}
.pl-search-scopes {
display: grid;
grid-template-columns: repeat(3, 1fr);
height: 32px;
margin: 0 4px 14px;
padding: 2px;
border: 1px solid var(--pl-border);
border-radius: 6px;
background: color-mix(in srgb, var(--pl-canvas) 72%, var(--pl-sidebar));
}
.pl-search-scopes button {
padding: 0;
border: 0;
border-radius: 4px;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
font-size: 11px;
}
.pl-search-scopes button.is-active {
color: var(--pl-text);
background: var(--pl-surface);
box-shadow: 0 1px 2px rgb(27 35 29 / 10%);
font-weight: 650;
}
.pl-result-list {
display: grid;
gap: 3px;
}
.pl-search-result {
display: block;
width: 100%;
padding: 10px 9px;
border: 0;
border-radius: 6px;
color: var(--pl-text);
background: transparent;
cursor: pointer;
text-align: left;
}
.pl-search-result:hover {
background: var(--pl-green-soft);
}
.pl-search-result-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.pl-search-result-heading strong {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 13px;
}
.pl-search-result-heading time,
.pl-search-path {
color: var(--pl-faint);
font-size: 10px;
}
.pl-search-excerpt {
display: -webkit-box;
margin: 5px 0 6px;
overflow: hidden;
color: var(--pl-muted);
font-size: 11px;
line-height: 17px;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.pl-search-path {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.pl-task-list {
margin-top: 4px;
}
.pl-task-row {
display: grid;
grid-template-columns: 28px minmax(0, 1fr);
min-height: 50px;
padding: 6px 5px;
border-radius: 6px;
}
.pl-task-row:hover {
background: var(--pl-green-soft);
}
.pl-task-check {
display: grid;
place-items: center;
width: 26px;
height: 26px;
padding: 0;
border: 0;
color: var(--pl-faint);
background: transparent;
cursor: pointer;
}
.pl-task-check:hover {
color: var(--pl-green);
}
.pl-task-copy {
display: block;
min-width: 0;
padding: 2px 0;
border: 0;
color: var(--pl-text);
background: transparent;
cursor: pointer;
text-align: left;
}
.pl-task-copy strong,
.pl-task-copy small {
display: block;
}
.pl-task-copy strong {
overflow: hidden;
font-size: 12px;
font-weight: 500;
line-height: 18px;
text-overflow: ellipsis;
}
.pl-task-copy small {
margin-top: 2px;
overflow: hidden;
color: var(--pl-faint);
font-size: 10px;
text-overflow: ellipsis;
white-space: nowrap;
}
.pl-tag-list {
display: grid;
gap: 1px;
}
.pl-tag-list > button {
display: flex;
align-items: center;
width: 100%;
height: 32px;
padding: 0 8px;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
font-size: 13px;
text-align: left;
}
.pl-tag-list > button:hover,
.pl-tag-list > button.is-active {
color: var(--pl-text);
background: var(--pl-green-soft);
}
.pl-tag-list small {
margin-left: auto;
color: var(--pl-faint);
font-size: 10px;
}
.pl-tag-dot {
width: 8px;
height: 8px;
margin-right: 10px;
border-radius: 50%;
background: var(--pl-green);
}
.pl-tag-dot.color-1 {
background: var(--pl-coral);
}
.pl-tag-dot.color-2 {
background: var(--pl-blue);
}
.pl-tag-dot.color-3 {
background: var(--pl-yellow);
}
.pl-tag-results {
margin-top: 17px;
}
.pl-tag-results h2,
.pl-settings-section h2 {
height: 28px;
margin: 0;
padding: 6px 8px;
color: var(--pl-faint);
font-size: 10px;
font-weight: 700;
}
.pl-tag-results > button {
display: flex;
align-items: center;
gap: 8px;
width: 100%;
height: 32px;
padding: 0 8px;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
text-align: left;
}
.pl-tag-results > button:hover {
color: var(--pl-text);
background: var(--pl-green-soft);
}
.pl-tag-results > button span {
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.pl-tag-results > button small {
color: var(--pl-faint);
font-size: 10px;
}
.pl-empty-state {
display: flex;
min-height: 176px;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 7px;
padding: 24px 18px;
color: var(--pl-muted);
text-align: center;
}
.pl-empty-state > svg {
margin-bottom: 4px;
color: var(--pl-green);
}
.pl-empty-state strong {
color: var(--pl-text);
font-size: 13px;
}
.pl-empty-state span,
.pl-loading-state {
color: var(--pl-faint);
font-size: 11px;
line-height: 18px;
}
.pl-empty-state button {
display: inline-flex;
align-items: center;
gap: 5px;
height: 31px;
margin-top: 7px;
padding: 0 10px;
border: 0;
border-radius: 6px;
color: white;
background: #3f7658;
cursor: pointer;
font-size: 11px;
}
.pl-loading-state {
padding: 24px 8px;
text-align: center;
}
.pl-more-links {
display: grid;
gap: 2px;
margin-bottom: 14px;
}
.pl-settings-section + .pl-settings-section {
margin-top: 15px;
}
.pl-setting-row {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
min-height: 48px;
padding: 7px 8px;
border: 0;
border-bottom: 1px solid var(--pl-border);
color: var(--pl-text);
background: transparent;
text-align: left;
}
button.pl-setting-row {
cursor: pointer;
}
button.pl-setting-row:hover {
background: var(--pl-green-soft);
}
.pl-setting-row strong,
.pl-setting-row small,
.pl-advanced-tools strong,
.pl-advanced-tools small {
display: block;
}
.pl-setting-row strong,
.pl-advanced-tools strong {
color: var(--pl-text);
font-size: 12px;
font-weight: 650;
}
.pl-setting-row small,
.pl-advanced-tools small {
margin-top: 2px;
color: var(--pl-faint);
font-size: 10px;
line-height: 15px;
}
.pl-switch {
display: inline-flex;
align-items: center;
width: 34px;
height: 20px;
padding: 2px;
border: 1px solid var(--pl-border-strong);
border-radius: 10px;
background: var(--pl-sidebar);
transition:
background-color 140ms ease,
border-color 140ms ease;
}
.pl-switch > span {
width: 14px;
height: 14px;
border-radius: 50%;
background: var(--pl-surface);
box-shadow: 0 1px 3px rgb(31 45 36 / 18%);
transition: transform 140ms ease;
}
.pl-switch.is-on {
border-color: var(--pl-green);
background: var(--pl-green);
}
.pl-switch.is-on > span {
transform: translateX(14px);
}
.pl-advanced-tools {
display: grid;
gap: 2px;
}
.pl-advanced-tools > button {
display: grid;
grid-template-columns: 28px minmax(0, 1fr) 14px;
align-items: center;
gap: 7px;
width: 100%;
min-height: 52px;
padding: 6px 8px;
border: 0;
border-radius: 6px;
color: var(--pl-text);
background: transparent;
cursor: pointer;
text-align: left;
}
.pl-advanced-tools > button:hover {
background: var(--pl-green-soft);
}
.pl-advanced-icon {
display: grid;
place-items: center;
width: 28px;
height: 28px;
border-radius: 6px;
color: var(--pl-muted);
background: var(--pl-canvas);
}
.pl-editor-workspace {
display: grid;
position: relative;
min-width: 0;
min-height: 0;
background: var(--root-background-color);
overflow: hidden;
}
.pl-editor-layer {
display: flex;
min-width: 0;
min-height: 0;
flex-direction: column;
grid-area: 1 / 1;
}
.pl-editor-layer.is-hidden > #sb-top,
.pl-editor-layer.is-hidden > #sb-main,
.pl-editor-layer.is-hidden > .pl-markdown-toolbar {
visibility: hidden;
opacity: 0;
pointer-events: none;
}
.pl-editor-layer > #sb-top {
order: 0;
flex: 0 0 48px;
height: 48px;
border-bottom: 1px solid var(--pl-border);
color: var(--pl-text);
background: var(--pl-surface);
}
.pl-editor-layer > #sb-top .main .inner {
padding-block: 8px;
font-size: 20px;
}
.pl-editor-layer > #sb-top .main .inner .wrapper {
padding-inline: 20px;
}
.pl-editor-layer > #sb-top .sb-page-name-editor {
font-weight: 600;
}
.pl-editor-layer > #sb-main {
order: 2;
min-height: 0;
}
.pl-markdown-toolbar {
display: flex;
align-items: center;
order: 1;
flex: 0 0 42px;
gap: 5px;
box-sizing: border-box;
min-width: 0;
height: 42px;
padding: 5px 12px;
border-bottom: 1px solid var(--pl-border);
color: var(--pl-muted);
background: color-mix(in srgb, var(--pl-canvas) 72%, var(--pl-surface));
overflow-x: auto;
overflow-y: hidden;
scrollbar-width: none;
overscroll-behavior-x: contain;
}
.pl-markdown-toolbar::-webkit-scrollbar {
display: none;
}
.pl-toolbar-group {
display: flex;
align-items: center;
flex: 0 0 auto;
gap: 2px;
}
.pl-markdown-toolbar button {
display: grid;
place-items: center;
flex: 0 0 32px;
width: 32px;
height: 30px;
padding: 0;
border: 0;
border-radius: 5px;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
}
.pl-markdown-toolbar button:hover {
color: var(--pl-text);
background: var(--pl-green-soft);
}
.pl-markdown-toolbar button:disabled {
opacity: 0.4;
cursor: not-allowed;
}
.pl-markdown-toolbar button strong {
font-size: 11px;
font-weight: 750;
}
.pl-toolbar-divider {
flex: 0 0 1px;
width: 1px;
height: 20px;
background: var(--pl-border-strong);
}
.pl-mobile-menu-button {
display: none;
}
.pl-home-surface,
.pl-settings-surface,
.pl-task-surface {
z-index: 5;
grid-area: 1 / 1;
min-width: 0;
min-height: 0;
color: var(--pl-text);
background: var(--pl-surface);
overflow-x: hidden;
overflow-y: auto;
overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
}
.pl-task-surface {
display: grid;
grid-template-columns: minmax(360px, 1fr) auto;
overflow: hidden;
}
.pl-task-workspace-nav {
box-sizing: border-box;
min-width: 0;
min-height: 0;
padding: 25px 14px;
border-right: 1px solid var(--pl-border);
background: color-mix(in srgb, var(--pl-sidebar) 72%, var(--pl-surface));
overflow-y: auto;
}
.pl-task-workspace-nav > header {
display: flex;
align-items: center;
justify-content: space-between;
height: 36px;
margin: 0 6px 14px;
color: var(--pl-muted);
font-size: 11px;
font-weight: 700;
}
.pl-task-workspace-nav > header button,
.pl-task-inspector > header button,
.pl-task-dialog > header button {
display: grid;
place-items: center;
width: 32px;
height: 32px;
padding: 0;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
}
.pl-task-workspace-nav > header button:hover,
.pl-task-inspector > header button:hover,
.pl-task-dialog > header button:hover {
color: var(--pl-text);
background: var(--pl-green-soft);
}
.pl-task-workspace-nav > button,
.pl-task-sidebar-lists > button {
display: grid;
grid-template-columns: 30px minmax(0, 1fr) auto;
align-items: center;
gap: 7px;
width: 100%;
min-width: 0;
height: 40px;
padding: 0 9px;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
font-size: 13px;
text-align: left;
}
.pl-task-workspace-nav > button:hover,
.pl-task-workspace-nav > button.is-active,
.pl-task-sidebar-lists > button:hover,
.pl-task-sidebar-lists > button.is-active {
color: var(--pl-text);
background: var(--pl-green-soft);
}
.pl-task-workspace-nav > button > small,
.pl-task-sidebar-lists > button > small {
color: var(--pl-faint);
font-size: 10px;
}
.pl-task-nav-icon,
.pl-task-title-icon {
display: grid;
place-items: center;
width: 27px;
height: 27px;
border-radius: 6px;
color: var(--pl-green-dark);
background: var(--pl-green-soft);
}
.pl-task-nav-icon.is-today,
.pl-task-title-icon.is-today {
color: #a06624;
background: color-mix(in srgb, var(--pl-yellow) 30%, var(--pl-surface));
}
.pl-task-nav-icon.is-planned,
.pl-task-title-icon.is-planned {
color: var(--pl-coral);
background: var(--pl-coral-soft);
}
.pl-task-nav-icon.is-projects,
.pl-task-title-icon.is-projects {
color: var(--pl-blue);
background: var(--pl-blue-soft);
}
.pl-task-content {
display: flex;
position: relative;
min-width: 0;
min-height: 0;
flex-direction: column;
background: var(--pl-surface);
overflow: hidden;
}
.pl-task-content-header {
display: grid;
grid-template-columns: 36px minmax(0, 1fr) auto;
align-items: center;
gap: 12px;
box-sizing: border-box;
min-height: 92px;
padding: 22px clamp(24px, 4vw, 54px) 18px;
border-bottom: 1px solid var(--pl-border);
}
.pl-task-content-header > div {
min-width: 0;
}
.pl-task-content-header h1 {
margin: 0;
color: var(--pl-text);
font-size: 23px;
font-weight: 700;
line-height: 30px;
}
.pl-task-content-header p {
margin: 1px 0 0;
color: var(--pl-faint);
font-size: 11px;
}
.pl-task-add-button {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
height: 36px;
padding: 0 13px;
border: 1px solid var(--pl-green);
border-radius: 6px;
color: white;
background: #3f7658;
cursor: pointer;
font-size: 12px;
font-weight: 650;
}
.pl-task-add-button:disabled,
.pl-task-mobile-add:disabled {
opacity: 0.5;
}
.pl-task-mobile-lists,
.pl-task-mobile-add {
display: none;
}
.pl-task-toolbar {
display: flex;
align-items: center;
gap: 7px;
box-sizing: border-box;
min-height: 50px;
padding: 7px clamp(24px, 4vw, 54px);
border-bottom: 1px solid var(--pl-border);
background: var(--pl-canvas);
overflow-x: auto;
}
.pl-task-toolbar-search {
display: grid;
grid-template-columns: 18px minmax(100px, 1fr) 24px;
align-items: center;
flex: 1 1 220px;
min-width: 150px;
height: 34px;
padding-left: 9px;
border: 1px solid var(--pl-border);
border-radius: 6px;
color: var(--pl-faint);
background: var(--pl-surface);
}
.pl-task-toolbar-search input {
width: 100%;
height: 30px;
padding: 0 6px;
border: 0;
outline: 0;
color: var(--pl-text);
background: transparent;
font-size: 11px;
}
.pl-task-toolbar-search button {
display: grid;
place-items: center;
width: 24px;
height: 30px;
padding: 0;
border: 0;
color: var(--pl-faint);
background: transparent;
}
.pl-task-toolbar > select,
.pl-task-toolbar > button {
flex: 0 0 auto;
height: 34px;
padding: 0 9px;
border: 1px solid var(--pl-border);
border-radius: 6px;
color: var(--pl-muted);
background: var(--pl-surface);
font-size: 10px;
}
.pl-task-toolbar > button {
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
}
.pl-task-toolbar > button.is-active {
border-color: var(--pl-green);
color: var(--pl-green-dark);
background: var(--pl-green-soft);
}
.pl-task-batch-bar {
display: flex;
align-items: center;
gap: 7px;
min-height: 42px;
padding: 5px clamp(24px, 4vw, 54px);
border-bottom: 1px solid var(--pl-border);
color: var(--pl-muted);
background: var(--pl-green-soft);
font-size: 10px;
}
.pl-task-batch-bar strong {
margin-right: auto;
}
.pl-task-batch-bar button {
height: 30px;
padding: 0 8px;
border: 1px solid var(--pl-border-strong);
border-radius: 6px;
color: var(--pl-text);
background: var(--pl-surface);
cursor: pointer;
font-size: 10px;
}
.pl-task-batch-bar button:disabled {
opacity: 0.48;
}
.pl-task-tools-panel {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 0;
padding: 0 clamp(24px, 4vw, 54px);
border-bottom: 1px solid var(--pl-border);
background: var(--pl-surface);
}
.pl-task-tools-panel > button,
.pl-task-tools-panel > div,
.pl-task-tools-panel > a,
.pl-task-tools-panel > label,
.pl-task-tools-panel > details > summary {
display: grid;
grid-template-columns: 27px minmax(0, 1fr);
align-items: center;
gap: 7px;
min-width: 0;
min-height: 62px;
padding: 7px 10px;
border: 0;
border-right: 1px solid var(--pl-border);
color: var(--pl-muted);
background: transparent;
cursor: pointer;
text-align: left;
text-decoration: none;
}
.pl-task-health {
grid-column: 1 / -1;
}
.pl-task-health > summary {
list-style: none;
cursor: pointer;
}
.pl-task-health > summary::-webkit-details-marker {
display: none;
}
.pl-task-health > summary > span {
display: grid;
min-width: 0;
}
.pl-task-health > summary > svg:last-child {
margin-left: auto;
}
.pl-task-health[open] > summary > svg:last-child {
transform: rotate(180deg);
}
.pl-task-health > div {
display: grid;
max-height: 180px;
border-top: 1px solid var(--pl-border);
overflow-y: auto;
}
.pl-task-health > div > button {
display: grid;
gap: 2px;
padding: 8px 12px 8px 44px;
border: 0;
border-bottom: 1px solid var(--pl-border);
text-align: left;
background: transparent;
cursor: pointer;
}
.pl-task-health > div > button:hover {
background: var(--pl-green-soft);
}
.pl-task-health > div > button small {
color: var(--pl-muted);
}
.pl-task-tools-panel > :last-child {
border-right: 0;
}
.pl-task-import-tool {
position: relative;
}
.pl-task-import-tool input {
position: absolute;
inset: 0;
width: 100%;
opacity: 0;
cursor: pointer;
}
.pl-task-tools-panel strong,
.pl-task-tools-panel small {
display: block;
}
.pl-task-tools-panel strong {
color: var(--pl-text);
font-size: 10px;
}
.pl-task-tools-panel small {
margin-top: 2px;
color: var(--pl-faint);
font-size: 9px;
line-height: 13px;
}
.pl-task-scroll {
box-sizing: border-box;
width: min(100%, 780px);
min-height: 0;
margin: 0 auto;
padding: 26px clamp(24px, 5vw, 64px) 90px;
overflow-x: hidden;
overflow-y: auto;
overscroll-behavior: contain;
}
.pl-task-group + .pl-task-group {
margin-top: 28px;
}
.pl-task-group > header {
display: flex;
align-items: center;
justify-content: space-between;
height: 30px;
padding: 0 5px;
border-bottom: 1px solid var(--pl-border);
}
.pl-task-group > header h2 {
margin: 0;
color: var(--pl-muted);
font-size: 11px;
font-weight: 700;
}
.pl-task-group > header span {
color: var(--pl-faint);
font-size: 10px;
}
.pl-task-center-row {
display: grid;
grid-template-columns: 38px minmax(0, 1fr);
align-items: start;
min-height: 58px;
border-bottom: 1px solid color-mix(in srgb, var(--pl-border) 72%, transparent);
transition: background-color 120ms ease;
padding-left: calc(var(--pl-task-depth, 0) * 18px);
}
.pl-task-center-row:hover,
.pl-task-center-row.is-selected,
.pl-task-center-row.is-checked {
background: color-mix(in srgb, var(--pl-green-soft) 45%, transparent);
}
.pl-task-center-check {
display: grid;
place-items: center;
width: 38px;
height: 52px;
padding: 0;
border: 0;
color: var(--pl-faint);
background: transparent;
cursor: pointer;
}
.pl-task-center-check:hover {
color: var(--pl-green);
}
.pl-task-center-copy {
display: block;
min-width: 0;
min-height: 58px;
padding: 10px 7px 8px 0;
border: 0;
color: var(--pl-text);
background: transparent;
cursor: pointer;
text-align: left;
}
.pl-task-center-copy > strong {
display: block;
overflow-wrap: anywhere;
font-size: 13px;
font-weight: 520;
line-height: 20px;
}
.pl-task-center-copy > span {
display: flex;
align-items: center;
justify-content: space-between;
gap: 14px;
margin-top: 3px;
color: var(--pl-faint);
font-size: 10px;
}
.pl-task-center-copy small {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.pl-task-center-copy .pl-task-progress {
flex: 0 0 auto;
color: var(--pl-green-dark);
font-variant-numeric: tabular-nums;
}
.pl-task-center-copy time {
flex: 0 0 auto;
}
.pl-task-center-copy time.is-overdue {
color: var(--pl-coral);
font-weight: 650;
}
.pl-task-center-row.is-complete .pl-task-center-copy > strong {
color: var(--pl-faint);
text-decoration: line-through;
}
.pl-task-empty,
.pl-task-loading {
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
min-height: 280px;
flex-direction: column;
color: var(--pl-faint);
text-align: center;
}
.pl-task-empty > span {
display: grid;
place-items: center;
width: 42px;
height: 42px;
margin-bottom: 12px;
border-radius: 6px;
color: var(--pl-green);
background: var(--pl-green-soft);
}
.pl-task-empty strong {
color: var(--pl-muted);
font-size: 13px;
}
.pl-task-empty p {
max-width: 300px;
margin: 7px 0 0;
font-size: 11px;
line-height: 18px;
}
.pl-task-inspector {
box-sizing: border-box;
width: 310px;
min-height: 0;
padding: 20px;
border-left: 1px solid var(--pl-border);
background: var(--pl-canvas);
overflow-x: hidden;
overflow-y: auto;
}
.pl-task-inspector > header,
.pl-task-dialog > header {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 34px;
margin-bottom: 19px;
}
.pl-task-inspector > header strong {
font-size: 13px;
}
.pl-task-inspector > label,
.pl-task-dialog-project {
display: block;
margin-top: 15px;
color: var(--pl-muted);
font-size: 10px;
font-weight: 650;
}
.pl-task-inspector input,
.pl-task-inspector select,
.pl-task-inspector textarea,
.pl-task-dialog input,
.pl-task-dialog select,
.pl-task-dialog textarea {
display: block;
box-sizing: border-box;
width: 100%;
margin-top: 6px;
padding: 9px 10px;
border: 1px solid var(--pl-border-strong);
border-radius: 6px;
color: var(--pl-text);
background: var(--pl-surface);
font-size: 12px;
line-height: 18px;
}
.pl-task-inspector input {
height: 38px;
padding-block: 0;
}
.pl-task-inspector select,
.pl-task-dialog select {
height: 38px;
padding-block: 0;
}
.pl-subtask-field > span {
display: grid;
grid-template-columns: minmax(0, 1fr) 38px;
align-items: end;
gap: 6px;
}
.pl-subtask-field > span button {
display: grid;
place-items: center;
width: 38px;
height: 38px;
padding: 0;
border: 1px solid var(--pl-border);
border-radius: 6px;
color: var(--pl-green-dark);
background: var(--pl-green-soft);
}
.pl-task-inspector textarea,
.pl-task-dialog textarea {
resize: vertical;
}
.pl-task-date-fields {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 9px;
margin-top: 15px;
}
.pl-task-date-fields label {
color: var(--pl-muted);
font-size: 10px;
font-weight: 650;
}
.pl-task-source {
margin-top: 19px;
padding-top: 14px;
border-top: 1px solid var(--pl-border);
}
.pl-task-source span,
.pl-task-source strong {
display: block;
}
.pl-task-source span {
color: var(--pl-faint);
font-size: 10px;
}
.pl-task-source strong {
margin-top: 5px;
overflow-wrap: anywhere;
font-size: 11px;
font-weight: 550;
}
.pl-task-inspector > footer,
.pl-task-dialog > footer {
display: flex;
justify-content: flex-end;
gap: 8px;
margin-top: 24px;
}
.pl-task-inspector > footer button,
.pl-task-dialog > footer button {
min-height: 34px;
padding: 0 11px;
border: 1px solid var(--pl-border);
border-radius: 6px;
color: var(--pl-text);
background: var(--pl-surface);
cursor: pointer;
font-size: 11px;
font-weight: 650;
}
.pl-task-inspector > footer button.is-primary,
.pl-task-dialog > footer button.is-primary {
border-color: #3f7658;
color: white;
background: #3f7658;
}
.pl-task-inspector > footer button.is-danger {
margin-right: auto;
border-color: color-mix(in srgb, var(--pl-danger) 45%, var(--pl-border));
color: var(--pl-danger);
}
.pl-task-inspector > footer button:disabled,
.pl-task-dialog > footer button:disabled {
opacity: 0.5;
}
.pl-task-sidebar-lists {
display: grid;
gap: 2px;
}
.pl-task-dialog-backdrop {
display: grid;
place-items: center;
position: fixed;
z-index: 170;
inset: 0;
padding: 16px;
background: rgb(28 34 29 / 38%);
}
.pl-task-dialog {
box-sizing: border-box;
width: min(460px, calc(100vw - 32px));
max-width: 100%;
padding: 20px;
border: 1px solid var(--pl-border);
border-radius: 8px;
color: var(--pl-text);
background: var(--pl-surface);
box-shadow: 0 18px 60px rgb(38 48 40 / 22%);
}
.pl-task-dialog h2 {
margin: 0;
font-size: 17px;
}
.pl-task-dialog > textarea {
margin-top: 0;
font-size: 14px;
}
.pl-task-quick-dates {
display: flex;
gap: 8px;
margin-top: 12px;
}
.pl-task-quick-dates > button,
.pl-task-quick-dates > label {
display: flex;
align-items: center;
gap: 6px;
position: relative;
height: 34px;
padding: 0 10px;
border: 1px solid var(--pl-border);
border-radius: 6px;
color: var(--pl-muted);
background: var(--pl-surface);
cursor: pointer;
font-size: 11px;
}
.pl-task-quick-dates > button.is-active {
border-color: var(--pl-green);
color: var(--pl-green-dark);
background: var(--pl-green-soft);
}
.pl-task-quick-dates input[type="date"] {
position: absolute;
inset: 0;
height: 100%;
margin: 0;
opacity: 0;
cursor: pointer;
}
.pl-task-dialog > p {
margin: 14px 0 0;
color: var(--pl-faint);
font-size: 10px;
}
.pl-task-dialog-project > small {
display: block;
margin-top: 5px;
color: var(--pl-coral);
font-weight: 500;
}
.pl-task-advanced-toggle {
display: flex;
align-items: center;
gap: 6px;
margin-top: 13px;
padding: 0;
border: 0;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
font-size: 10px;
}
.pl-task-calendar {
max-width: 680px;
margin: 0 auto;
}
.pl-task-calendar > header {
display: grid;
grid-template-columns: 34px 1fr 34px;
align-items: center;
margin-bottom: 10px;
}
.pl-task-calendar > header strong {
text-align: center;
font-size: 13px;
}
.pl-task-calendar > header button {
display: grid;
place-items: center;
width: 32px;
height: 32px;
padding: 0;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
}
.pl-task-calendar > header button:first-child svg {
transform: rotate(90deg);
}
.pl-task-calendar > header button:last-child svg {
transform: rotate(-90deg);
}
.pl-task-calendar-weekdays,
.pl-task-calendar-grid {
display: grid;
grid-template-columns: repeat(7, minmax(0, 1fr));
}
.pl-task-calendar-weekdays span {
padding: 6px 0;
color: var(--pl-faint);
font-size: 9px;
text-align: center;
}
.pl-task-calendar-grid {
border-top: 1px solid var(--pl-border);
border-left: 1px solid var(--pl-border);
}
.pl-task-calendar-grid button {
display: flex;
align-items: flex-start;
justify-content: space-between;
min-width: 0;
aspect-ratio: 1.35;
padding: 6px;
border: 0;
border-right: 1px solid var(--pl-border);
border-bottom: 1px solid var(--pl-border);
color: var(--pl-text);
background: var(--pl-surface);
font-size: 10px;
}
.pl-task-calendar-grid button.is-outside {
color: var(--pl-faint);
background: var(--pl-canvas);
}
.pl-task-calendar-grid button.is-selected {
box-shadow: inset 0 0 0 2px var(--pl-green);
background: var(--pl-green-soft);
}
.pl-task-calendar-grid button small {
display: grid;
place-items: center;
min-width: 16px;
height: 16px;
border-radius: 8px;
color: white;
background: var(--pl-green);
font-size: 8px;
}
.pl-task-calendar-day {
margin-top: 22px;
}
.pl-task-calendar-day h2 {
margin: 0 0 6px;
color: var(--pl-muted);
font-size: 11px;
}
.pl-task-undo,
.pl-task-error {
display: flex;
align-items: center;
gap: 14px;
position: fixed;
z-index: 190;
right: 22px;
bottom: 22px;
max-width: min(420px, calc(100vw - 32px));
min-height: 42px;
padding: 0 12px 0 15px;
border: 1px solid var(--pl-border-strong);
border-radius: 6px;
color: var(--pl-surface);
background: var(--pl-text);
box-shadow: 0 10px 28px rgb(25 32 27 / 22%);
font-size: 11px;
}
.pl-task-notice {
top: 22px;
bottom: auto;
}
.pl-task-undo span,
.pl-task-error span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.pl-task-undo button,
.pl-task-error button {
flex: 0 0 auto;
padding: 5px;
border: 0;
color: var(--pl-green-soft);
background: transparent;
cursor: pointer;
font-weight: 700;
}
.pl-task-error {
bottom: 74px;
color: white;
background: var(--pl-danger);
}
.pl-home-inner {
box-sizing: border-box;
width: min(100%, 920px);
max-width: 100%;
margin: 0 auto;
padding: 48px 80px 90px;
}
.pl-home-date {
margin: 0 0 6px;
color: var(--pl-muted);
font-size: 12px;
}
.pl-home-inner > h1,
.pl-settings-inner > h1 {
margin: 0;
color: var(--pl-text);
font-size: 30px;
font-weight: 650;
line-height: 39px;
}
.pl-home-subtitle {
margin: 7px 0 26px;
color: var(--pl-muted);
font-size: 14px;
line-height: 22px;
}
.pl-home-actions {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 8px;
margin-bottom: 38px;
}
.pl-home-actions > button {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
height: 58px;
padding: 0 13px;
border: 1px solid var(--pl-border);
border-radius: 8px;
color: var(--pl-text);
background: var(--pl-surface);
cursor: pointer;
text-align: left;
}
.pl-home-actions > button:hover {
border-color: var(--pl-border-strong);
background: var(--pl-canvas);
}
.pl-home-actions > button > span:first-child {
display: grid;
place-items: center;
flex: 0 0 32px;
width: 32px;
height: 32px;
border-radius: 7px;
}
.pl-home-actions > button > span:last-child,
.pl-home-grid > section,
.pl-settings-main-row > span:first-child {
min-width: 0;
}
.pl-home-actions .is-green {
color: var(--pl-green);
background: var(--pl-green-soft);
}
.pl-home-actions .is-coral {
color: var(--pl-coral);
background: var(--pl-coral-soft);
}
.pl-home-actions .is-blue {
color: var(--pl-blue);
background: var(--pl-blue-soft);
}
.pl-home-actions strong,
.pl-home-actions small,
.pl-home-task strong,
.pl-home-task small {
display: block;
min-width: 0;
}
.pl-home-actions strong {
overflow: hidden;
color: var(--pl-text);
font-size: 13px;
text-overflow: ellipsis;
white-space: nowrap;
}
.pl-home-actions small {
margin-top: 2px;
color: var(--pl-faint);
font-size: 10px;
}
.pl-home-grid {
display: grid;
grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
gap: 36px;
}
.pl-home-grid section > header {
display: flex;
align-items: center;
justify-content: space-between;
height: 32px;
border-bottom: 1px solid var(--pl-border);
}
.pl-home-grid section > header h2 {
margin: 0;
color: var(--pl-text);
font-size: 15px;
font-weight: 650;
}
.pl-home-grid section > header button {
border: 0;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
font-size: 11px;
}
.pl-home-recent {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 4px 12px;
width: 100%;
min-height: 54px;
padding: 9px 3px;
border: 0;
border-bottom: 1px solid var(--pl-border);
color: var(--pl-text);
background: transparent;
cursor: pointer;
text-align: left;
}
.pl-home-recent:hover strong {
color: var(--pl-green-dark);
}
.pl-home-recent strong {
min-width: 0;
overflow: hidden;
font-size: 13px;
text-overflow: ellipsis;
white-space: nowrap;
}
.pl-home-recent time,
.pl-home-recent span {
color: var(--pl-faint);
font-size: 10px;
}
.pl-home-recent span {
grid-column: 1 / -1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.pl-home-task {
display: grid;
grid-template-columns: 24px minmax(0, 1fr);
min-height: 50px;
padding: 9px 0;
border-bottom: 1px solid var(--pl-border);
}
.pl-home-task > button {
padding: 0;
border: 0;
color: var(--pl-faint);
background: transparent;
cursor: pointer;
text-align: left;
}
.pl-home-task > button:first-child {
display: grid;
place-items: center;
width: 22px;
height: 22px;
}
.pl-home-task strong {
color: var(--pl-text);
font-size: 12px;
font-weight: 500;
line-height: 18px;
}
.pl-home-task small,
.pl-home-empty {
margin-top: 2px;
color: var(--pl-faint);
font-size: 10px;
}
.pl-settings-inner {
box-sizing: border-box;
width: min(100%, 820px);
max-width: 100%;
margin: 0 auto;
padding: 48px 80px 90px;
}
.pl-settings-inner > p {
margin: 6px 0 32px;
color: var(--pl-muted);
font-size: 13px;
}
.pl-settings-inner > section {
margin-bottom: 30px;
}
.pl-settings-inner > section > h2 {
margin: 0;
padding: 0 0 9px;
border-bottom: 1px solid var(--pl-border);
color: var(--pl-text);
font-size: 15px;
}
.pl-settings-main-row {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 58px;
border-bottom: 1px solid var(--pl-border);
}
.pl-settings-main-row strong,
.pl-settings-main-row small {
display: block;
}
.pl-settings-main-row strong {
color: var(--pl-text);
font-size: 13px;
}
.pl-settings-main-row small {
margin-top: 3px;
overflow: hidden;
color: var(--pl-faint);
font-size: 11px;
text-overflow: ellipsis;
}
.pl-settings-main-row > button {
height: 31px;
padding: 0 10px;
border: 1px solid var(--pl-border);
border-radius: 6px;
color: var(--pl-text);
background: var(--pl-surface);
cursor: pointer;
font-size: 11px;
}
.pl-settings-main-row > .pl-settings-link {
display: inline-flex;
align-items: center;
height: 31px;
padding: 0 10px;
border: 1px solid var(--pl-border);
border-radius: 6px;
color: var(--pl-text);
background: var(--pl-surface);
font-size: 11px;
text-decoration: none;
}
.pl-settings-main-row > button.pl-switch-button {
display: inline-flex;
align-items: center;
gap: 8px;
height: 32px;
padding: 0 2px 0 8px;
border: 0;
background: transparent;
}
.pl-status-label {
color: var(--pl-green);
font-size: 11px;
}
.pl-developer-warning {
margin: 12px 0 4px;
padding: 10px 12px;
border-left: 3px solid var(--pl-yellow);
color: var(--pl-muted);
background: color-mix(in srgb, var(--pl-yellow) 16%, var(--pl-surface));
font-size: 11px;
line-height: 18px;
}
.pl-online-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: #a86718;
}
.pl-online-dot.is-online {
background: #4f956b;
}
.pl-settings-inner .pl-advanced-tools {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0;
border-bottom: 1px solid var(--pl-border);
}
.pl-settings-inner .pl-advanced-tools > button {
min-height: 72px;
border-bottom: 1px solid var(--pl-border);
border-radius: 0;
}
.pl-settings-inner .pl-advanced-tools > button:nth-child(odd) {
border-right: 1px solid var(--pl-border);
}
.pl-mobile-scrim {
display: none;
}
.pl-new-note-backdrop {
display: grid;
place-items: center;
position: fixed;
z-index: 150;
inset: 0;
padding: 16px;
background: rgb(28 34 29 / 35%);
}
.pl-new-note-dialog {
box-sizing: border-box;
width: min(440px, calc(100vw - 32px));
max-width: 100%;
padding: 18px;
border: 1px solid var(--pl-border);
border-radius: 8px;
color: var(--pl-text);
background: var(--pl-surface);
box-shadow: 0 18px 60px rgb(38 48 40 / 18%);
}
.pl-new-note-dialog > header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 15px;
}
.pl-new-note-dialog h2 {
margin: 0;
color: var(--pl-text);
font-size: 18px;
}
.pl-new-note-dialog > header button {
display: grid;
place-items: center;
width: 32px;
height: 32px;
padding: 0;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
cursor: pointer;
}
.pl-quick-create {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 7px;
margin-bottom: 18px;
}
.pl-quick-create button {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
min-width: 0;
height: 42px;
padding: 0 6px;
border: 1px solid var(--pl-border);
border-radius: 6px;
color: var(--pl-muted);
background: var(--pl-surface);
cursor: pointer;
font-size: 11px;
}
.pl-quick-create button:hover,
.pl-quick-create button.is-active {
border-color: color-mix(in srgb, var(--pl-green) 55%, var(--pl-border));
color: var(--pl-text);
background: color-mix(in srgb, var(--pl-green-soft) 35%, var(--pl-surface));
}
.pl-new-note-dialog > label {
display: block;
margin: 13px 0 0;
color: var(--pl-muted);
font-size: 11px;
font-weight: 650;
}
.pl-new-note-dialog input,
.pl-new-note-dialog select {
display: block;
width: 100%;
height: 38px;
margin-top: 6px;
padding: 0 10px;
border: 1px solid var(--pl-border-strong);
border-radius: 6px;
color: var(--pl-text);
background: var(--pl-surface);
font-size: 12px;
}
.pl-create-error {
margin: 8px 0 0;
color: var(--pl-danger);
font-size: 11px;
}
.pl-new-note-dialog > footer {
display: flex;
justify-content: flex-end;
gap: 8px;
margin-top: 22px;
}
.pl-new-note-dialog > footer button {
height: 34px;
padding: 0 13px;
border: 1px solid var(--pl-border);
border-radius: 6px;
color: var(--pl-text);
background: var(--pl-surface);
cursor: pointer;
font-size: 12px;
font-weight: 650;
}
.pl-new-note-dialog > footer button.is-primary {
border-color: #3f7658;
color: white;
background: #3f7658;
}
.pl-new-note-dialog > footer button:disabled {
opacity: 0.55;
}
@media only screen and (max-width: 980px) and (min-width: 701px) {
#pl-workspace-shell {
--pl-sidebar-width: 264px;
}
.pl-home-inner,
.pl-settings-inner {
padding-right: 46px;
padding-left: 46px;
}
.pl-home-grid {
gap: 24px;
}
.pl-task-surface {
grid-template-columns: minmax(320px, 1fr);
}
.pl-task-inspector {
position: absolute;
z-index: 20;
top: 0;
right: 0;
bottom: 0;
width: 310px;
box-shadow: -12px 0 34px rgb(29 37 31 / 14%);
}
}
@media only screen and (max-width: 700px) {
#pl-workspace-shell {
display: block;
box-sizing: border-box;
width: 100%;
max-width: 100vw;
height: 100vh;
height: 100dvh;
padding-bottom: 0;
overflow: hidden;
}
.pl-sidebar {
visibility: hidden;
position: fixed;
z-index: 120;
top: 0;
bottom: 0;
left: 0;
box-sizing: border-box;
width: min(82vw, 320px);
max-width: 100vw;
opacity: 0;
box-shadow: 12px 0 40px rgb(29 37 31 / 18%);
transform: translateX(-16px);
transition:
opacity 180ms ease,
transform 180ms ease,
visibility 180ms ease;
}
.pl-sidebar.is-mobile-open {
visibility: visible;
opacity: 1;
transform: translateX(0);
}
.pl-close-mobile {
display: grid;
}
.pl-mobile-scrim {
display: block;
position: fixed;
z-index: 110;
inset: 0;
width: 100%;
height: 100%;
padding: 0;
border: 0;
background: rgb(28 34 29 / 30%);
}
.pl-editor-workspace {
width: 100%;
max-width: 100vw;
height: 100vh;
height: 100dvh;
overflow: hidden;
}
.pl-mobile-menu-button {
display: grid;
place-items: center;
position: absolute;
z-index: 25;
top: 7px;
left: 8px;
width: 32px;
height: 32px;
padding: 0;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
}
.pl-editor-layer > #sb-top .main .inner .wrapper {
padding-left: 42px;
}
.pl-markdown-toolbar {
flex-basis: 44px;
height: 44px;
padding: 6px 8px;
scroll-padding-inline: 8px;
}
.pl-markdown-toolbar button {
flex-basis: 34px;
width: 34px;
height: 32px;
}
.pl-home-inner,
.pl-settings-inner {
width: 100%;
max-width: 100%;
padding: 54px 18px calc(24px + env(safe-area-inset-bottom));
}
.pl-settings-main-row {
align-items: flex-start;
gap: 14px;
padding: 12px 0;
}
.pl-settings-main-row > span:first-child {
overflow-wrap: anywhere;
}
.pl-settings-main-row > button,
.pl-settings-main-row > .pl-settings-link,
.pl-status-label,
.pl-online-dot {
flex: 0 0 auto;
}
.pl-home-inner > h1,
.pl-settings-inner > h1 {
font-size: 26px;
line-height: 35px;
}
.pl-home-actions {
grid-template-columns: 1fr;
gap: 7px;
margin-bottom: 29px;
}
.pl-home-actions > button {
height: 54px;
}
.pl-home-grid {
grid-template-columns: 1fr;
gap: 28px;
}
.pl-settings-inner .pl-advanced-tools {
grid-template-columns: 1fr;
width: 100%;
overflow: hidden;
}
.pl-settings-inner .pl-advanced-tools > button:nth-child(odd) {
border-right: 0;
}
.pl-task-surface {
display: block;
width: 100%;
max-width: 100vw;
height: 100vh;
height: 100dvh;
overflow: hidden;
}
.pl-task-workspace-nav {
display: none;
}
.pl-task-content {
width: 100%;
max-width: 100vw;
height: 100%;
}
.pl-task-content-header {
grid-template-columns: 34px 34px minmax(0, 1fr);
gap: 8px;
min-height: 70px;
padding: 9px 15px;
}
.pl-task-toolbar {
flex-wrap: wrap;
padding: 7px 12px;
overflow-x: hidden;
}
.pl-task-toolbar-search {
flex-basis: 100%;
}
.pl-task-toolbar > select {
min-width: 0;
max-width: calc(50% - 4px);
flex: 1 1 calc(50% - 4px);
}
.pl-task-toolbar > button span {
display: none;
}
.pl-task-batch-bar {
flex-wrap: wrap;
padding: 7px 12px;
}
.pl-task-batch-bar strong {
flex-basis: 100%;
}
.pl-task-tools-panel {
grid-template-columns: 1fr;
padding: 0 12px;
max-height: 260px;
overflow-y: auto;
}
.pl-task-tools-panel > button,
.pl-task-tools-panel > div,
.pl-task-tools-panel > a,
.pl-task-tools-panel > label,
.pl-task-tools-panel > details > summary {
min-height: 52px;
border-right: 0;
border-bottom: 1px solid var(--pl-border);
}
.pl-task-content-header h1 {
font-size: 19px;
line-height: 24px;
}
.pl-task-mobile-lists {
display: grid;
place-items: center;
width: 34px;
height: 34px;
padding: 0;
border: 0;
border-radius: 6px;
color: var(--pl-muted);
background: transparent;
}
.pl-task-add-button {
display: none;
}
.pl-task-scroll {
width: 100%;
max-width: 100vw;
padding: 14px 15px 86px;
}
.pl-task-calendar-grid button {
aspect-ratio: 1;
padding: 4px;
}
.pl-task-center-row {
padding-left: calc(var(--pl-task-depth, 0) * 12px);
}
.pl-task-mobile-add {
display: grid;
place-items: center;
position: absolute;
z-index: 15;
right: 20px;
bottom: 20px;
width: 48px;
height: 48px;
padding: 0;
border: 0;
border-radius: 50%;
color: white;
background: #3f7658;
box-shadow: 0 8px 20px rgb(43 79 59 / 26%);
}
.pl-task-inspector {
position: absolute;
z-index: 160;
inset: 0;
width: 100%;
max-width: 100vw;
height: 100%;
padding: 18px;
border-left: 0;
background: var(--pl-surface);
}
.pl-task-date-fields {
grid-template-columns: 1fr;
}
.pl-task-inspector > footer {
flex-direction: column-reverse;
}
.pl-task-inspector > footer button {
width: 100%;
min-height: 42px;
}
.pl-task-dialog-backdrop {
align-items: end;
padding: 0;
}
.pl-task-dialog {
width: 100%;
max-width: 100vw;
padding: 18px 18px calc(18px + env(safe-area-inset-bottom));
border-right: 0;
border-bottom: 0;
border-left: 0;
border-radius: 8px 8px 0 0;
}
.pl-task-undo,
.pl-task-error {
right: 16px;
bottom: calc(16px + env(safe-area-inset-bottom));
left: 16px;
max-width: none;
}
.pl-task-notice {
top: 16px;
bottom: auto;
}
.pl-task-error {
bottom: calc(66px + env(safe-area-inset-bottom));
}
.pl-editor-layer > #sb-main .cm-content {
box-sizing: border-box;
max-width: 100%;
padding-right: 16px;
padding-left: 16px;
}
.pl-new-note-backdrop {
align-items: end;
padding: 0;
}
.pl-new-note-dialog {
width: 100%;
max-width: 100vw;
padding: 18px 18px calc(18px + env(safe-area-inset-bottom));
border-right: 0;
border-bottom: 0;
border-left: 0;
border-radius: 8px 8px 0 0;
}
.pl-quick-create button {
flex-direction: column;
height: 64px;
}
}
@media (prefers-reduced-motion: reduce) {
#pl-workspace-shell *,
#pl-workspace-shell *::before,
#pl-workspace-shell *::after {
transition-duration: 0.01ms !important;
}
}