Add mobile format toolbar, image picker and move-to dialog
- Markdown format commands shared by Ctrl+B/I/K and a toolbar above the soft keyboard on touch devices; bold and italic stack correctly - Fit the app to the visual viewport so the keyboard does not cover the caret or the toolbar - Insert images from the photo library or a file picker - Move notes and folders with a folder picker from the file tree menu or the command palette - Open the file tree menu with a long press on touch devices
This commit is contained in:
1 parent
eb63b14c8e
commit
91da6e116e
14 files changed
+565
-68
No files matched your search
+20
-2
@@ -21,10 +21,13 @@
|
||||
}
|
||||
|
||||
html,
|
||||
body,
|
||||
#app {
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
/* 软键盘弹出时为可视区域高度,见 viewport.ts */
|
||||
#app {
|
||||
height: var(--rm-app-height, 100%);
|
||||
}
|
||||
body {
|
||||
overflow: hidden;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
@@ -132,6 +135,8 @@ button {
|
||||
user-select: none;
|
||||
}
|
||||
.rm-tree-row:hover { background: var(--rm-hover); }
|
||||
/* 长按由应用处理,不弹出 iOS 的系统菜单 */
|
||||
.rm-tree-row { -webkit-touch-callout: none; }
|
||||
.rm-tree-row.active { background: var(--rm-active); color: var(--rm-accent-strong); }
|
||||
.rm-tree-row.drop { outline: 2px solid var(--rm-accent); outline-offset: -2px; }
|
||||
.rm-tree-chevron { display: inline-flex; width: 14px; color: var(--rm-text-muted); transition: transform 0.15s; }
|
||||
@@ -378,6 +383,19 @@ button {
|
||||
.rm-token-created p { margin: 0 0 6px; }
|
||||
.rm-token-value { display: flex; align-items: center; gap: 8px; }
|
||||
.rm-token-value code { flex: 1; min-width: 0; overflow-wrap: anywhere; font-family: var(--rm-font-mono); font-size: 12px; user-select: all; }
|
||||
/* ---- 手机键盘上方的格式工具条 ---- */
|
||||
.rm-format-bar { flex: none; display: flex; height: 44px; border-top: 1px solid var(--rm-divider); background: var(--rm-sidebar-bg); }
|
||||
.rm-format-scroll { flex: 1; display: flex; overflow-x: auto; scrollbar-width: none; }
|
||||
.rm-format-scroll::-webkit-scrollbar { display: none; }
|
||||
.rm-format-bar button { flex: none; min-width: 44px; height: 44px; padding: 0 6px; border: 0; background: none; color: var(--rm-text); font-size: 17px; touch-action: manipulation; }
|
||||
.rm-format-bar button:active { background: var(--rm-hover); }
|
||||
.rm-format-bar .bold { font-weight: 700; }
|
||||
.rm-format-bar .italic { font-style: italic; font-family: Georgia, serif; }
|
||||
.rm-format-bar .strike { text-decoration: line-through; }
|
||||
.rm-format-bar .mono { font-family: var(--rm-font-mono); }
|
||||
.rm-format-hide { border-left: 1px solid var(--rm-divider) !important; }
|
||||
.down { transform: rotate(90deg); }
|
||||
|
||||
/* ---- 设置 ---- */
|
||||
.rm-settings { flex-direction: row; max-width: 820px; height: min(640px, 85vh); max-height: none; overflow: hidden; }
|
||||
.rm-settings-nav { flex: none; width: 190px; display: flex; flex-direction: column; gap: 2px; padding: 0 8px 12px; border-right: 1px solid var(--rm-divider); overflow-y: auto; }
|
||||
|
||||
Reference in new issue
Block a user