mirror of
https://github.com/devon22/obsidian-gridexplorer.git
synced 2026-07-22 05:38:16 +00:00
2.6.1
This commit is contained in:
parent
054410125e
commit
cfb912e76e
9 changed files with 461 additions and 303 deletions
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "gridexplorer",
|
||||
"name": "GridExplorer",
|
||||
"version": "2.6.0",
|
||||
"version": "2.6.1",
|
||||
"minAppVersion": "1.1.0",
|
||||
"description": "Browse note files in a grid view.",
|
||||
"author": "Devon22",
|
||||
|
|
|
|||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "gridexplorer",
|
||||
"version": "2.6.0",
|
||||
"version": "2.6.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "gridexplorer",
|
||||
"version": "2.6.0",
|
||||
"version": "2.6.1",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@types/node": "^16.11.6",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "gridexplorer",
|
||||
"version": "2.6.0",
|
||||
"version": "2.6.1",
|
||||
"description": "Browse note files in a grid view.",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -189,10 +189,7 @@ export class GridView extends ItemView {
|
|||
|
||||
if(mode.startsWith('custom-')) {
|
||||
this.customOptionIndex = -1; // 切換自訂模式時重設選項索引
|
||||
this.sortType = '';
|
||||
this.folderSortType = '';
|
||||
} else {
|
||||
this.sortType = this.plugin.settings.defaultSortType;
|
||||
this.folderSortType = 'none';
|
||||
}
|
||||
|
||||
if(mode !== '') this.sourceMode = mode;
|
||||
|
|
@ -1121,7 +1118,7 @@ export class GridView extends ItemView {
|
|||
// 設定網格項目寬度和高度等設定
|
||||
const settings = this.plugin.settings;
|
||||
const gridItemWidth = this.cardLayout === 'vertical' ? settings.verticalGridItemWidth : settings.gridItemWidth;
|
||||
const gridItemHeight = settings.gridItemHeight;
|
||||
const gridItemHeight = this.cardLayout === 'vertical' ? settings.verticalGridItemHeight : settings.gridItemHeight;
|
||||
const imageAreaWidth = settings.imageAreaWidth;
|
||||
const imageAreaHeight = this.cardLayout === 'vertical' ? settings.verticalImageAreaHeight : settings.imageAreaHeight;
|
||||
|
||||
|
|
@ -1135,6 +1132,17 @@ export class GridView extends ItemView {
|
|||
container.style.setProperty('--image-area-height', imageAreaHeight + 'px');
|
||||
container.style.setProperty('--title-font-size', settings.titleFontSize + 'em');
|
||||
|
||||
// 依圖片位置設定切換樣式類別
|
||||
if (this.cardLayout === 'vertical') {
|
||||
if (settings.verticalCardImagePosition === 'top') {
|
||||
container.addClass('ge-image-top');
|
||||
container.removeClass('ge-image-bottom');
|
||||
} else {
|
||||
container.addClass('ge-image-bottom');
|
||||
container.removeClass('ge-image-top');
|
||||
}
|
||||
}
|
||||
|
||||
// 添加點擊空白處取消選中的事件處理器
|
||||
container.addEventListener('click', (event) => {
|
||||
// 只有當點擊的是容器本身,而不是其子元素時才清除選中
|
||||
|
|
@ -1227,7 +1235,7 @@ export class GridView extends ItemView {
|
|||
if (noteFile instanceof TFile) {
|
||||
// 使用 span 代替 button,只顯示圖示
|
||||
const noteIcon = titleContainer.createEl('span', {
|
||||
cls: 'ge-note-button'
|
||||
cls: 'ge-foldernote-button'
|
||||
});
|
||||
setIcon(noteIcon, 'panel-left-open');
|
||||
|
||||
|
|
@ -1241,11 +1249,8 @@ export class GridView extends ItemView {
|
|||
const metadata = this.app.metadataCache.getFileCache(noteFile)?.frontmatter;
|
||||
const colorValue = metadata?.color;
|
||||
if (colorValue) {
|
||||
// 設置背景色、框線色和文字顏色
|
||||
folderEl.setAttribute('style', `
|
||||
background-color: rgba(var(--color-${colorValue}-rgb), 0.2);
|
||||
border-color: rgba(var(--color-${colorValue}-rgb), 0.5);
|
||||
`);
|
||||
// 依顏色名稱加入對應的樣式類別
|
||||
folderEl.addClass(`ge-folder-color-${colorValue}`);
|
||||
}
|
||||
const iconValue = metadata?.icon;
|
||||
if (iconValue) {
|
||||
|
|
@ -1962,26 +1967,47 @@ export class GridView extends ItemView {
|
|||
const currentToken = ++this.renderToken;
|
||||
// 設定批次渲染狀態
|
||||
const state: DividerState = { lastDateString: lastDateString, pinDividerAdded: pinDividerAdded, blankDividerAdded: blankDividerAdded };
|
||||
const batchSize = 50;
|
||||
const paramsBase: FileRenderParams = { container, observer, files, dateDividerMode, sortType, shouldShowDateDividers, state };
|
||||
const selfRef = this;
|
||||
const processBatch = (start: number) => {
|
||||
// 若 token 不符,代表使用者已切換資料夾或重新渲染,直接停止
|
||||
if (currentToken !== this.renderToken) return;
|
||||
const end = Math.min(start + batchSize, files.length);
|
||||
for (let i = start; i < end; i++) {
|
||||
selfRef.processFile(files[i], paramsBase);
|
||||
}
|
||||
if (end < files.length) {
|
||||
const cb = () => processBatch(end);
|
||||
if (typeof (window as any).requestIdleCallback === 'function') {
|
||||
(window as any).requestIdleCallback(cb);
|
||||
} else {
|
||||
setTimeout(cb, 0);
|
||||
|
||||
if (Platform.isIosApp) {
|
||||
// iOS 專用:以 time-slice 方式分批,避免阻塞點擊事件
|
||||
const TIME_BUDGET_MS = 6; // 每幀最多執行 6ms
|
||||
const processChunk = (start: number) => {
|
||||
if (currentToken !== this.renderToken) return;
|
||||
const startTime = performance.now();
|
||||
let i = start;
|
||||
for (; i < files.length; i++) {
|
||||
selfRef.processFile(files[i], paramsBase);
|
||||
if (performance.now() - startTime > TIME_BUDGET_MS) {
|
||||
break; // 超過時間預算,讓出主執行緒
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
processBatch(0);
|
||||
if (i < files.length) {
|
||||
requestAnimationFrame(() => processChunk(i)); // 下一幀繼續
|
||||
}
|
||||
};
|
||||
processChunk(0);
|
||||
} else {
|
||||
// 其他平台維持原本固定 batchSize 的邏輯
|
||||
const batchSize = 50;
|
||||
const processBatch = (start: number) => {
|
||||
if (currentToken !== this.renderToken) return;
|
||||
const end = Math.min(start + batchSize, files.length);
|
||||
for (let i = start; i < end; i++) {
|
||||
selfRef.processFile(files[i], paramsBase);
|
||||
}
|
||||
if (end < files.length) {
|
||||
const cb = () => processBatch(end);
|
||||
if (typeof (window as any).requestIdleCallback === 'function') {
|
||||
(window as any).requestIdleCallback(cb);
|
||||
} else {
|
||||
setTimeout(cb, 0);
|
||||
}
|
||||
}
|
||||
};
|
||||
processBatch(0);
|
||||
}
|
||||
}
|
||||
|
||||
// 為資料夾項目添加拖曳目標功能
|
||||
|
|
|
|||
|
|
@ -147,8 +147,6 @@ export class MediaModal extends Modal {
|
|||
this.isZoomed = false;
|
||||
|
||||
const mediaFile = this.mediaFiles[index];
|
||||
|
||||
|
||||
|
||||
if (isImageFile(mediaFile)) {
|
||||
// 創建圖片元素
|
||||
|
|
|
|||
|
|
@ -27,7 +27,9 @@ export interface GallerySettings {
|
|||
imageAreaWidth: number; // 圖片區域寬度
|
||||
imageAreaHeight: number; // 圖片區域高度
|
||||
verticalGridItemWidth: number; // 直向卡片 - 網格項目寬度
|
||||
verticalGridItemHeight: number; // 直向卡片 - 網格項目高度
|
||||
verticalImageAreaHeight: number; // 直向卡片 - 圖片區域高度
|
||||
verticalCardImagePosition: 'top' | 'bottom'; // 直向卡片圖片位置
|
||||
titleFontSize: number; // 筆記標題的字型大小
|
||||
multiLineTitle: boolean; // 標題允許兩行顯示
|
||||
summaryLength: number; // 筆記摘要的字數
|
||||
|
|
@ -62,7 +64,7 @@ export interface GallerySettings {
|
|||
interceptBreadcrumbClicks: boolean; // 攔截Breadcrumb點擊事件
|
||||
customModes: CustomMode[]; // 自訂模式
|
||||
quickAccessCommandPath: string; // Path used by "Open quick access folder" command
|
||||
quickAccessModeType: 'bookmarks' | 'search' | 'backlinks' | 'outgoinglinks' | 'all-files' | 'recent-files' | 'random-note' | 'tasks'; // View types used by "Open quick access view" command
|
||||
quickAccessModeType: string; // View types used by "Open quick access view" command
|
||||
useQuickAccessAsNewTabMode: 'default' | 'folder' | 'mode'; // Use quick access (folder or mode) as a new tab view
|
||||
}
|
||||
|
||||
|
|
@ -76,7 +78,9 @@ export const DEFAULT_SETTINGS: GallerySettings = {
|
|||
imageAreaWidth: 100, // 圖片區域寬度,預設 100
|
||||
imageAreaHeight: 80, // 圖片區域高度,預設 80
|
||||
verticalGridItemWidth: 200, // 直向卡片 - 網格項目寬度
|
||||
verticalGridItemHeight: 0, // 直向卡片 - 網格項目高度
|
||||
verticalImageAreaHeight: 180, // 直向卡片 - 圖片區域高度
|
||||
verticalCardImagePosition: 'top', // 直向卡片圖片位置
|
||||
titleFontSize: 1.0, // 筆記標題的字型大小,預設 1.0
|
||||
multiLineTitle: false,
|
||||
summaryLength: 100, // 筆記摘要的字數,預設 100
|
||||
|
|
@ -867,6 +871,21 @@ export class GridExplorerSettingTab extends PluginSettingTab {
|
|||
});
|
||||
});
|
||||
|
||||
// 直向卡片 - 網格項目高度
|
||||
const vGridItemHeightSetting = new Setting(containerEl)
|
||||
.setName(`${t('vertical_card')} ${t('grid_item_height')}`)
|
||||
.setDesc(`${t('grid_item_height_desc')} (now: ${this.plugin.settings.verticalGridItemHeight}px)`)
|
||||
.addSlider(slider => {
|
||||
slider.setLimits(0, 600, 10)
|
||||
.setValue(this.plugin.settings.verticalGridItemHeight)
|
||||
.setDynamicTooltip()
|
||||
.onChange(async (value) => {
|
||||
vGridItemHeightSetting.setDesc(`${t('grid_item_height_desc')} (now: ${value}px)`);
|
||||
this.plugin.settings.verticalGridItemHeight = value;
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
|
||||
// 直向卡片 - 圖片區域高度
|
||||
const vImageAreaHeightSetting = new Setting(containerEl)
|
||||
.setName(`${t('vertical_card')} ${t('image_area_height')}`)
|
||||
|
|
@ -882,6 +901,20 @@ export class GridExplorerSettingTab extends PluginSettingTab {
|
|||
});
|
||||
});
|
||||
|
||||
// 直向卡片圖片位置
|
||||
new Setting(containerEl)
|
||||
.setName(`${t('vertical_card')} ${t('image_position')}`)
|
||||
.setDesc(t('image_position_desc'))
|
||||
.addDropdown(dropdown => {
|
||||
dropdown.addOption('top', t('top'));
|
||||
dropdown.addOption('bottom', t('bottom'));
|
||||
dropdown.setValue(this.plugin.settings.verticalCardImagePosition);
|
||||
dropdown.onChange(async (value: 'top' | 'bottom') => {
|
||||
this.plugin.settings.verticalCardImagePosition = value;
|
||||
await this.plugin.saveSettings();
|
||||
});
|
||||
});
|
||||
|
||||
//筆記標題的字型大小
|
||||
const titleFontSizeSetting = new Setting(containerEl)
|
||||
.setName(t('title_font_size'))
|
||||
|
|
@ -980,17 +1013,20 @@ export class GridExplorerSettingTab extends PluginSettingTab {
|
|||
.setName(t('quick_access_mode_name'))
|
||||
.setDesc(t('quick_access_mode_desc'))
|
||||
.addDropdown(dropdown => {
|
||||
for(let i = 0; i < this.plugin.settings.customModes.length; i++) {
|
||||
dropdown.addOption(this.plugin.settings.customModes[i].internalName, `🧩 ${this.plugin.settings.customModes[i].displayName}`);
|
||||
}
|
||||
dropdown
|
||||
.addOption('bookmarks', t('bookmarks_mode'))
|
||||
.addOption('search', t('search_results'))
|
||||
.addOption('backlinks', t('backlinks_mode'))
|
||||
.addOption('outgoinglinks', t('outgoinglinks_mode'))
|
||||
.addOption('all-files', t('all_files_mode'))
|
||||
.addOption('recent-files', t('recent_files_mode'))
|
||||
.addOption('random-note', t('random_note_mode'))
|
||||
.addOption('tasks', t('tasks_mode'))
|
||||
.addOption('bookmarks', `📑 ${t('bookmarks_mode')}`)
|
||||
.addOption('search', `🔍 ${t('search_results')}`)
|
||||
.addOption('backlinks', `🔗 ${t('backlinks_mode')}`)
|
||||
.addOption('outgoinglinks', `🔗 ${t('outgoinglinks_mode')}`)
|
||||
.addOption('all-files', `📔 ${t('all_files_mode')}`)
|
||||
.addOption('recent-files', `📅 ${t('recent_files_mode')}`)
|
||||
.addOption('random-note', `🎲 ${t('random_note_mode')}`)
|
||||
.addOption('tasks', `☑️ ${t('tasks_mode')}`)
|
||||
.setValue(this.plugin.settings.quickAccessModeType)
|
||||
.onChange(async (value: 'bookmarks' | 'search' | 'backlinks' | 'outgoinglinks' | 'all-files' | 'recent-files' | 'random-note' | 'tasks') => {
|
||||
.onChange(async (value: string) => {
|
||||
this.plugin.settings.quickAccessModeType = value;
|
||||
await this.plugin.saveSettings(false);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -120,6 +120,10 @@ export const TRANSLATIONS: Translations = {
|
|||
'card_layout_desc': '選擇預設的卡片版面樣式',
|
||||
'horizontal_card': '橫向卡片',
|
||||
'vertical_card': '直向卡片',
|
||||
'image_position': '圖片位置',
|
||||
'image_position_desc': '設定圖片的位置',
|
||||
'top': '頂部',
|
||||
'bottom': '底部',
|
||||
'multi_line_title': '標題支援多行顯示',
|
||||
'multi_line_title_desc': '設定是否允許標題多行顯示',
|
||||
'show_code_block_in_summary': '摘要中顯示CodeBlock',
|
||||
|
|
@ -377,6 +381,10 @@ export const TRANSLATIONS: Translations = {
|
|||
'card_layout_desc': 'Choose default card layout',
|
||||
'horizontal_card': 'Horizontal card',
|
||||
'vertical_card': 'Vertical card',
|
||||
'image_position': 'Image position',
|
||||
'image_position_desc': 'Set the position of the image',
|
||||
'top': 'Top',
|
||||
'bottom': 'Bottom',
|
||||
'multi_line_title': 'Multi-line title',
|
||||
'multi_line_title_desc': 'Set whether to allow multi-line title',
|
||||
'show_code_block_in_summary': 'Show code block in summary',
|
||||
|
|
@ -634,6 +642,10 @@ export const TRANSLATIONS: Translations = {
|
|||
'card_layout_desc': '选择默认卡片布局',
|
||||
'horizontal_card': '水平卡片',
|
||||
'vertical_card': '垂直卡片',
|
||||
'image_position': '图片位置',
|
||||
'image_position_desc': '设置图片的位置',
|
||||
'top': '顶部',
|
||||
'bottom': '底部',
|
||||
'multi_line_title': '标题支持多行显示',
|
||||
'multi_line_title_desc': '设置是否允许标题多行显示',
|
||||
'show_code_block_in_summary': '摘要中显示CodeBlock',
|
||||
|
|
@ -891,6 +903,10 @@ export const TRANSLATIONS: Translations = {
|
|||
'card_layout_desc': 'デフォルトのカードレイアウトを選択',
|
||||
'horizontal_card': '水平カード',
|
||||
'vertical_card': '垂直カード',
|
||||
'image_position': '画像位置',
|
||||
'image_position_desc': '画像の位置を設定',
|
||||
'top': '上部',
|
||||
'bottom': '下部',
|
||||
'multi_line_title': 'タイトルサポート多行表示',
|
||||
'multi_line_title_desc': 'タイトルを多行表示するかどうかを設定',
|
||||
'show_code_block_in_summary': '要約にCodeBlockを表示',
|
||||
|
|
@ -1149,6 +1165,10 @@ export const TRANSLATIONS: Translations = {
|
|||
'card_layout_desc': 'Выберите макет карточки по умолчанию',
|
||||
'horizontal_card': 'Горизонтальная карточка',
|
||||
'vertical_card': 'Вертикальная карточка',
|
||||
'image_position': 'Позиция изображения',
|
||||
'image_position_desc': 'Установите позицию изображения',
|
||||
'top': 'Верх',
|
||||
'bottom': 'Низ',
|
||||
'multi_line_title': 'Поддержка многоточия заголовка',
|
||||
'multi_line_title_desc': 'Установите, чтобы разрешить многоточие заголовка',
|
||||
'show_code_block_in_summary': 'Показывать CodeBlock в кратком описании',
|
||||
|
|
@ -1406,6 +1426,10 @@ export const TRANSLATIONS: Translations = {
|
|||
'card_layout_desc': 'Виберіть макет карточки за замовчуванням',
|
||||
'horizontal_card': 'Горизонтальна карточка',
|
||||
'vertical_card': 'Вертикальна карточка',
|
||||
'image_position': 'Позиція зображення',
|
||||
'image_position_desc': 'Встановіть позицію зображення',
|
||||
'top': 'Верх',
|
||||
'bottom': 'Нижче',
|
||||
'multi_line_title': 'Подтримка многоточня заголовка',
|
||||
'multi_line_title_desc': 'Встановіть, щоб дозволити многоточня заголовка',
|
||||
'show_code_block_in_summary': 'Показувати CodeBlock в короткому описі',
|
||||
|
|
|
|||
589
styles.css
589
styles.css
|
|
@ -1,29 +1,14 @@
|
|||
/* 網格視圖容器 Grid View Container */
|
||||
.ge-grid-view-container {
|
||||
padding: 0px;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* 選擇資料夾的樣式 */
|
||||
.ge-grid-view-folder-option {
|
||||
cursor: pointer;
|
||||
padding: 8px;
|
||||
margin-bottom: 8px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.ge-grid-view-folder-option:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
/* ascii tree prefix */
|
||||
.ge-folder-tree-prefix {
|
||||
font-family: monospace;
|
||||
white-space: pre;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
/* Grid 樣式 */
|
||||
/* 網格容器 Grid Container */
|
||||
.ge-grid-container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, minmax(var(--grid-item-width, 300px), 1fr));
|
||||
|
|
@ -36,12 +21,13 @@
|
|||
overflow-y: auto;
|
||||
}
|
||||
|
||||
/* 行動裝置隱藏滾動條 Mobile hidden Scrollbar */
|
||||
.is-mobile .ge-grid-container::-webkit-scrollbar {
|
||||
display: none !important;
|
||||
width: 0 !important;
|
||||
}
|
||||
|
||||
/* Grid 項目樣式 */
|
||||
/* 網格項目 Grid Item */
|
||||
.ge-grid-item {
|
||||
background-color: var(--background-primary);
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
|
|
@ -60,6 +46,7 @@
|
|||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* 摘要區域 Content Area */
|
||||
.ge-content-area {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
|
|
@ -68,15 +55,7 @@
|
|||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.ge-break {
|
||||
grid-column: 1 / -1;
|
||||
height: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-top: 1px solid var(--background-modifier-border);
|
||||
border-bottom: 1px solid var(--background-primary);
|
||||
}
|
||||
|
||||
/* 標題容器 Title Container */
|
||||
.ge-title-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -84,6 +63,7 @@
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
/* 標題圖示 Icon Container */
|
||||
.ge-icon-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -92,34 +72,39 @@
|
|||
width: 18px;
|
||||
height: 18px;
|
||||
color: var(--text-muted);
|
||||
align-self: flex-start; /* 讓icon自身靠上 */
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
/* 圖片圖示 Image Icon */
|
||||
.ge-icon-container.ge-img {
|
||||
color: var(--color-blue);
|
||||
}
|
||||
|
||||
/* 影片圖示 Video Icon */
|
||||
.ge-icon-container.ge-video {
|
||||
color: var(--color-red);
|
||||
}
|
||||
|
||||
/* 音樂圖示 Audio Icon */
|
||||
.ge-icon-container.ge-audio {
|
||||
color: var(--color-purple);
|
||||
}
|
||||
|
||||
/* PDF圖示 PDF Icon */
|
||||
.ge-icon-container.ge-pdf {
|
||||
color: var(--color-orange);
|
||||
}
|
||||
|
||||
/* Canvas圖示 Canvas Icon */
|
||||
.ge-icon-container.ge-canvas {
|
||||
color: var(--color-green);
|
||||
}
|
||||
|
||||
/* 基礎圖示 Base Icon */
|
||||
.ge-icon-container.ge-base {
|
||||
color: var(--color-cyan);
|
||||
}
|
||||
|
||||
/* 標題 Title */
|
||||
.ge-title {
|
||||
margin: 0 0 0 3px;
|
||||
font-size: var(--title-font-size);
|
||||
|
|
@ -131,7 +116,7 @@
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
/* 多行標題支援 */
|
||||
/* 多行標題支援 Multiline Title */
|
||||
.ge-multiline-title {
|
||||
white-space: normal !important;
|
||||
display: -webkit-box;
|
||||
|
|
@ -141,29 +126,7 @@
|
|||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ge-note-button {
|
||||
color: var(--text-muted);
|
||||
cursor: pointer;
|
||||
margin-left: 8px;
|
||||
opacity: 0.7;
|
||||
transition: opacity 0.2s ease;
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ge-note-button:hover {
|
||||
opacity: 1;
|
||||
color: var(--text-accent);
|
||||
}
|
||||
|
||||
.ge-note-button svg {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
/* 摘要p Content Area p */
|
||||
.ge-content-area p {
|
||||
margin: 5px 0 0 0;
|
||||
color: var(--text-faint);
|
||||
|
|
@ -185,6 +148,7 @@
|
|||
margin: 0;
|
||||
}
|
||||
|
||||
/* 圖片區域 Image Area */
|
||||
.ge-image-area {
|
||||
width: var(--image-area-width);
|
||||
height: var(--image-area-height);
|
||||
|
|
@ -205,15 +169,14 @@
|
|||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/* 卡片模式 ------------------------------------------------------------------ */
|
||||
/* 將 ge-grid-container 包在帶有 .ge-vertical-card 的容器中以啟用 */
|
||||
/* 直向卡片容器 Vertical Card Container */
|
||||
.ge-vertical-card .ge-grid-container {
|
||||
/* 使用既有的欄寬變數,僅改 gap 與 padding 以符合卡片視覺 */
|
||||
gap: 16px;
|
||||
padding: 16px !important;
|
||||
}
|
||||
|
||||
/* 單一卡片 */
|
||||
/* 直向卡片 Vertical Card Item */
|
||||
.ge-vertical-card .ge-grid-item {
|
||||
/* 垂直排列 */
|
||||
flex-direction: column;
|
||||
|
|
@ -222,14 +185,14 @@
|
|||
gap: 12px;
|
||||
}
|
||||
|
||||
/* 摘要文字跟隨標題之後 */
|
||||
/* 摘要文字 Content Area */
|
||||
.ge-vertical-card .ge-content-area {
|
||||
order: 1;
|
||||
flex: 1 1 auto; /* 使摘要區撐開,標籤可貼底 */
|
||||
flex-grow: 1; /* Add this line */
|
||||
}
|
||||
|
||||
/* 圖片置中,滿版顯示 */
|
||||
/* 圖片置中,滿版顯示 Image Area */
|
||||
.ge-vertical-card .ge-image-area {
|
||||
order: 3;
|
||||
width: 100%;
|
||||
|
|
@ -241,18 +204,36 @@
|
|||
border-radius: 6px;
|
||||
}
|
||||
|
||||
/* 標籤列置底 */
|
||||
/* 標籤列置底 Tags Container */
|
||||
.ge-vertical-card .ge-tags-container {
|
||||
order: 4;
|
||||
margin-top: 6px;
|
||||
}
|
||||
|
||||
/* 按設定切換直向卡片圖片位置 */
|
||||
.ge-vertical-card.ge-image-top .ge-image-area {
|
||||
order: 1;
|
||||
}
|
||||
|
||||
.ge-vertical-card.ge-image-top .ge-content-area {
|
||||
order: 3;
|
||||
}
|
||||
|
||||
/* 預設 bottom 可維持原有順序,以下為明確設置 */
|
||||
.ge-vertical-card.ge-image-bottom .ge-image-area {
|
||||
order: 3;
|
||||
}
|
||||
|
||||
.ge-vertical-card.ge-image-bottom .ge-content-area {
|
||||
order: 1;
|
||||
}
|
||||
|
||||
/* 鼠標懸停效果:整張卡片微抬升 */
|
||||
.ge-vertical-card .ge-grid-item:hover {
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
/* 僅圖片/影片的直向卡片 ---------------------------------------------- */
|
||||
/* 僅圖片/影片的直向卡片 Media Card */
|
||||
.ge-vertical-card .ge-media-card {
|
||||
padding: 0; /* 移除內距,讓媒體填滿 */
|
||||
border: none;
|
||||
|
|
@ -277,9 +258,7 @@
|
|||
display: none !important; /* 隱藏標題、摘要、標籤 */
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
/* 標籤樣式 */
|
||||
/* 標籤容器 Tags Container */
|
||||
.ge-tags-container {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
|
@ -288,6 +267,7 @@
|
|||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
/* 標籤樣式 Tag Style */
|
||||
.ge-tag {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
|
|
@ -303,7 +283,46 @@
|
|||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* 資料夾項目的特殊樣式 */
|
||||
/* 影片縮圖樣式 */
|
||||
.ge-video-thumbnail {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: var(--background-secondary);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.ge-video-thumbnail svg {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
color: var(--text-accent);
|
||||
}
|
||||
|
||||
/* 選中項目的樣式 Selected Item */
|
||||
.ge-selected-item {
|
||||
outline: 1px solid var(--vault-profile-color-hover) !important;
|
||||
outline-offset: -1px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* 拖曳相關樣式 Dragging */
|
||||
.ge-grid-item.ge-dragging {
|
||||
opacity: 0.5;
|
||||
transform: scale(0.95);
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.ge-folder-item.ge-dragover {
|
||||
border: 2px dashed var(--interactive-accent);
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
/* 資料夾項目 Folder Item */
|
||||
.ge-grid-item.ge-folder-item {
|
||||
background-color: var(--background-primary-alt);
|
||||
border: 2px solid var(--background-modifier-border);
|
||||
|
|
@ -327,9 +346,8 @@
|
|||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* 調整資料夾項目的高度 */
|
||||
.ge-grid-item.ge-folder-item .ge-content-area {
|
||||
min-height: 0px;
|
||||
min-height: 0px; /* 設定最小高度 */
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
|
|
@ -337,6 +355,76 @@
|
|||
align-items: center;
|
||||
}
|
||||
|
||||
/* 資料夾顏色 Folder Color */
|
||||
.ge-grid-item.ge-folder-item.ge-folder-color-red {
|
||||
background-color: rgba(var(--color-red-rgb), 0.2);
|
||||
border-color: rgba(var(--color-red-rgb), 0.5);
|
||||
}
|
||||
.ge-grid-item.ge-folder-item.ge-folder-color-orange {
|
||||
background-color: rgba(var(--color-orange-rgb), 0.2);
|
||||
border-color: rgba(var(--color-orange-rgb), 0.5);
|
||||
}
|
||||
.ge-grid-item.ge-folder-item.ge-folder-color-yellow {
|
||||
background-color: rgba(var(--color-yellow-rgb), 0.2);
|
||||
border-color: rgba(var(--color-yellow-rgb), 0.5);
|
||||
}
|
||||
.ge-grid-item.ge-folder-item.ge-folder-color-green {
|
||||
background-color: rgba(var(--color-green-rgb), 0.2);
|
||||
border-color: rgba(var(--color-green-rgb), 0.5);
|
||||
}
|
||||
.ge-grid-item.ge-folder-item.ge-folder-color-cyan {
|
||||
background-color: rgba(var(--color-cyan-rgb), 0.2);
|
||||
border-color: rgba(var(--color-cyan-rgb), 0.5);
|
||||
}
|
||||
.ge-grid-item.ge-folder-item.ge-folder-color-blue {
|
||||
background-color: rgba(var(--color-blue-rgb), 0.2);
|
||||
border-color: rgba(var(--color-blue-rgb), 0.5);
|
||||
}
|
||||
.ge-grid-item.ge-folder-item.ge-folder-color-purple {
|
||||
background-color: rgba(var(--color-purple-rgb), 0.2);
|
||||
border-color: rgba(var(--color-purple-rgb), 0.5);
|
||||
}
|
||||
.ge-grid-item.ge-folder-item.ge-folder-color-pink {
|
||||
background-color: rgba(var(--color-pink-rgb), 0.2);
|
||||
border-color: rgba(var(--color-pink-rgb), 0.5);
|
||||
}
|
||||
|
||||
/* 資料夾上的資料夾筆記按鈕 Folder Note Button */
|
||||
.ge-foldernote-button {
|
||||
color: var(--text-muted);
|
||||
cursor: pointer;
|
||||
margin-left: 8px;
|
||||
opacity: 0.7;
|
||||
transition: opacity 0.2s ease;
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ge-foldernote-button:hover {
|
||||
opacity: 1;
|
||||
color: var(--text-accent);
|
||||
}
|
||||
|
||||
.ge-foldernote-button svg {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
/* 分隔線 Break */
|
||||
.ge-break {
|
||||
grid-column: 1 / -1;
|
||||
height: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-top: 1px solid var(--background-modifier-border);
|
||||
border-bottom: 1px solid var(--background-primary);
|
||||
}
|
||||
|
||||
/* 日期分隔器樣式 */
|
||||
.ge-date-divider {
|
||||
width: 100%;
|
||||
|
|
@ -377,7 +465,29 @@
|
|||
margin-left: 2px;
|
||||
}
|
||||
|
||||
/* 頂部按鈕區域樣式 */
|
||||
/* 搜尋載入中 Loading Indicator */
|
||||
.ge-loading-indicator {
|
||||
grid-column: 1 / -1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100px;
|
||||
font-size: 1.2em;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
/* 沒有找到文件 No Files Found */
|
||||
.ge-no-files {
|
||||
grid-column: 1 / -1;
|
||||
text-align: center;
|
||||
padding: 2em;
|
||||
color: var(--text-muted);
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
/* 頂部按鈕區域樣式 Header Buttons */
|
||||
.ge-header-buttons {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
|
|
@ -415,7 +525,6 @@
|
|||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* 特定按鈕樣式 */
|
||||
.ge-header-buttons .sort-button,
|
||||
.ge-header-buttons .reselect-button,
|
||||
.ge-header-buttons .refresh-button,
|
||||
|
|
@ -424,6 +533,9 @@
|
|||
align-items: center;
|
||||
}
|
||||
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
/* 資料夾名稱區域樣式 Folder Name Content */
|
||||
.ge-foldername-content {
|
||||
justify-content: center;
|
||||
padding: 10px 8px 9px 8px;
|
||||
|
|
@ -453,6 +565,7 @@
|
|||
margin-right: 6px;
|
||||
}
|
||||
|
||||
/* 上層資料夾連結樣式 Parent Folder Link */
|
||||
.ge-parent-folder-link {
|
||||
text-decoration: none;
|
||||
padding: 5px;
|
||||
|
|
@ -481,7 +594,9 @@
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* 搜尋對話框樣式 */
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
/* 搜尋對話框樣式 Search Container */
|
||||
.ge-search-container {
|
||||
margin-bottom: 8px;
|
||||
position: relative;
|
||||
|
|
@ -527,7 +642,7 @@
|
|||
height: 16px;
|
||||
}
|
||||
|
||||
/* 標籤顯示區域 */
|
||||
/* 標籤顯示區域 Search Tag Display Area */
|
||||
.ge-search-tag-display-area {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
|
@ -583,7 +698,7 @@
|
|||
height: 22px;
|
||||
}
|
||||
|
||||
/* 標籤自動完成下拉選單 */
|
||||
/* 標籤自動完成下拉選單 Search Tag Suggestions */
|
||||
.ge-search-tag-suggestions {
|
||||
position: relative;
|
||||
margin-top: 4px;
|
||||
|
|
@ -629,14 +744,14 @@
|
|||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
/* 搜尋選項容器 */
|
||||
/* 搜尋選項容器 Search Options Container */
|
||||
.ge-search-options-container {
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
/* 搜尋範圍設定樣式 */
|
||||
/* 搜尋範圍設定樣式 Search Scope Container */
|
||||
.ge-search-scope-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -654,7 +769,7 @@
|
|||
color: var(--text-normal);
|
||||
}
|
||||
|
||||
/* 搜尋媒體檔案設定樣式 */
|
||||
/* 搜尋媒體檔案設定樣式 Search Media Files Container */
|
||||
.ge-search-media-files-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -678,6 +793,7 @@
|
|||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
/* 搜尋視窗內的按鈕容器 Search Modal Button Container */
|
||||
.ge-button-container button {
|
||||
padding: 6px 12px;
|
||||
border-radius: 4px;
|
||||
|
|
@ -712,7 +828,26 @@
|
|||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* 搜尋按鈕容器 */
|
||||
/* 搜尋視窗內的清除按鈕 Search Modal Clear Button */
|
||||
.ge-search-clear-button {
|
||||
color: var(--text-muted);
|
||||
border-radius: 50%;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.ge-search-clear-button:hover {
|
||||
color: var(--text-normal);
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
/* 頂部欄搜尋按鈕容器 Header Search Button Container */
|
||||
.ge-search-button-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -722,13 +857,13 @@
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
/* 搜尋按鈕啟用狀態 */
|
||||
/* 搜尋按鈕啟用狀態 Header Search Button Active */
|
||||
.ge-search-button-container button.active {
|
||||
background-color: var(--interactive-accent);
|
||||
color: var(--text-on-accent);
|
||||
}
|
||||
|
||||
/* 搜尋文字容器 */
|
||||
/* 搜尋文字容器 Header Search Text Container */
|
||||
.ge-search-text-container {
|
||||
position: relative;
|
||||
display: flex;
|
||||
|
|
@ -748,7 +883,7 @@
|
|||
border-color: var(--interactive-accent);
|
||||
}
|
||||
|
||||
/* 搜尋文字 */
|
||||
/* 搜尋文字 Header Search Text */
|
||||
.ge-search-text {
|
||||
font-size: 14px;
|
||||
color: var(--text-normal);
|
||||
|
|
@ -760,7 +895,7 @@
|
|||
margin-left: 8px;
|
||||
}
|
||||
|
||||
/* 取消按鈕 */
|
||||
/* 取消按鈕 Header Search Clear Button */
|
||||
.ge-clear-button {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
|
|
@ -771,8 +906,8 @@
|
|||
cursor: pointer;
|
||||
color: var(--text-muted);
|
||||
font-size: 14px;
|
||||
margin-right:4px; /* 添加右边距 */
|
||||
flex-shrink: 0; /* 防止被压缩*/
|
||||
margin-right:4px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.ge-clear-button:hover {
|
||||
|
|
@ -785,48 +920,15 @@
|
|||
height: 18px;
|
||||
}
|
||||
|
||||
.ge-search-clear-button {
|
||||
color: var(--text-muted);
|
||||
border-radius: 50%;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 3px;
|
||||
}
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
.ge-search-clear-button:hover {
|
||||
color: var(--text-normal);
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
.ge-loading-indicator {
|
||||
grid-column: 1 / -1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100px;
|
||||
font-size: 1.2em;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.ge-no-files {
|
||||
grid-column: 1 / -1;
|
||||
text-align: center;
|
||||
padding: 2em;
|
||||
color: var(--text-muted);
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
/* 資料夾搜尋輸入框樣式 */
|
||||
/* 資料夾選擇器的搜尋輸入框容器 */
|
||||
.ge-folder-search-container {
|
||||
margin-bottom: 16px;
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
/* 資料夾選擇器的搜尋輸入框 */
|
||||
.ge-folder-search-input {
|
||||
width: 100%;
|
||||
padding: 8px 12px;
|
||||
|
|
@ -843,12 +945,33 @@
|
|||
outline: none;
|
||||
}
|
||||
|
||||
/* 資料夾選擇器的項目容器 */
|
||||
.ge-folder-options-container {
|
||||
max-height: 70vh;
|
||||
overflow-y: auto;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
/* 資料夾選擇器的項目樣式 */
|
||||
.ge-grid-view-folder-option {
|
||||
cursor: pointer;
|
||||
padding: 8px;
|
||||
margin-bottom: 8px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.ge-grid-view-folder-option:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
|
||||
/* ascii tree prefix */
|
||||
.ge-folder-tree-prefix {
|
||||
font-family: monospace;
|
||||
white-space: pre;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
/* 鍵盤導航選中項的樣式 */
|
||||
.ge-selected-option {
|
||||
background-color: var(--background-modifier-hover);
|
||||
|
|
@ -856,90 +979,43 @@
|
|||
padding-left: 5px !important;
|
||||
}
|
||||
|
||||
/* 忽略資料夾設定 */
|
||||
.ge-ignored-folders-container {
|
||||
margin-bottom: 16px;
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
/* Media Modal */
|
||||
.ge-media-modal {
|
||||
padding: 0 !important;
|
||||
background-color: rgba(0, 0, 0, 0.9) !important;
|
||||
border: none !important;
|
||||
border-radius: 0 !important;
|
||||
box-shadow: none !important;
|
||||
max-width: 100% !important;
|
||||
max-height: 100% !important;
|
||||
width: 100% !important;
|
||||
height: 100% !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.ge-ignored-folders-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
.ge-media-modal .modal-header {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.ge-ignored-folder-item {
|
||||
.ge-media-modal .modal-close-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.ge-media-modal-content {
|
||||
background-color: transparent !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 8px;
|
||||
margin-bottom: 4px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 4px;
|
||||
background-color: var(--background-primary);
|
||||
}
|
||||
|
||||
.ge-ignored-folder-path {
|
||||
flex-grow: 1;
|
||||
margin-right: 8px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.ge-ignored-folder-remove {
|
||||
background-color: var(--interactive-normal);
|
||||
color: var(--text-normal);
|
||||
border: none;
|
||||
padding: 4px 8px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.ge-ignored-folder-remove:hover {
|
||||
background-color: var(--interactive-hover);
|
||||
}
|
||||
|
||||
/* 忽略資料夾樣式 */
|
||||
.ignored-folder-patterns-container {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.ge-ignored-folder-patterns-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* 影片縮圖樣式 */
|
||||
.ge-video-thumbnail {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: var(--background-secondary);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.ge-video-thumbnail svg {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
color: var(--text-accent);
|
||||
}
|
||||
|
||||
/* 媒體檔案全螢幕顯示樣式 */
|
||||
.ge-media-fullscreen-container {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
background-color: rgba(0, 0, 0, 0.9);
|
||||
z-index: 1000;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* Media View */
|
||||
.ge-media-view {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
|
@ -1028,72 +1104,9 @@
|
|||
right: 0;
|
||||
}
|
||||
|
||||
/* MediaModal 樣式 */
|
||||
.ge-media-modal {
|
||||
padding: 0 !important;
|
||||
background-color: rgba(0, 0, 0, 0.9) !important;
|
||||
border: none !important;
|
||||
border-radius: 0 !important;
|
||||
box-shadow: none !important;
|
||||
max-width: 100% !important;
|
||||
max-height: 100% !important;
|
||||
width: 100% !important;
|
||||
height: 100% !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
.ge-media-modal .modal-header {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.ge-media-modal .modal-close-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.ge-media-modal-content {
|
||||
background-color: transparent !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/* 媒體 Modal 樣式 */
|
||||
.ge-media-modal {
|
||||
padding: 0 !important;
|
||||
background-color: rgba(0, 0, 0, 0.9) !important;
|
||||
border: none !important;
|
||||
border-radius: 0 !important;
|
||||
box-shadow: none !important;
|
||||
max-width: 100% !important;
|
||||
max-height: 100% !important;
|
||||
}
|
||||
|
||||
/* 選中項目的樣式 */
|
||||
.ge-selected-item {
|
||||
outline: 1px solid var(--vault-profile-color-hover) !important;
|
||||
outline-offset: -1px;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* 拖曳相關樣式 */
|
||||
.ge-grid-item.ge-dragging {
|
||||
opacity: 0.5;
|
||||
transform: scale(0.95);
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.ge-folder-item.ge-dragover {
|
||||
border: 2px dashed var(--interactive-accent);
|
||||
transform: scale(1.05);
|
||||
}
|
||||
|
||||
/* 音樂播放器 */
|
||||
/* 音樂播放器 Floating Audio Player */
|
||||
.ge-floating-audio-player {
|
||||
position: fixed;
|
||||
width: 300px;
|
||||
|
|
@ -1167,7 +1180,9 @@
|
|||
user-select: none;
|
||||
}
|
||||
|
||||
/* 設定描述區域樣式 */
|
||||
/* --------------------------------------------------------------------------- */
|
||||
|
||||
/* 設定描述區域樣式 Setting Description */
|
||||
.ge-setting-desc {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
|
@ -1177,3 +1192,61 @@
|
|||
.ge-setting-number-input {
|
||||
width: 60px;
|
||||
}
|
||||
|
||||
/* 忽略資料夾設定 */
|
||||
.ge-ignored-folders-container {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
/* 忽略資料夾列表 */
|
||||
.ge-ignored-folders-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* 忽略資料夾項目 */
|
||||
.ge-ignored-folder-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 8px;
|
||||
margin-bottom: 4px;
|
||||
border: 1px solid var(--background-modifier-border);
|
||||
border-radius: 4px;
|
||||
background-color: var(--background-primary);
|
||||
}
|
||||
|
||||
/* 忽略資料夾路徑 */
|
||||
.ge-ignored-folder-path {
|
||||
flex-grow: 1;
|
||||
margin-right: 8px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* 忽略資料夾刪除按鈕 */
|
||||
.ge-ignored-folder-remove {
|
||||
background-color: var(--interactive-normal);
|
||||
color: var(--text-normal);
|
||||
border: none;
|
||||
padding: 4px 8px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.ge-ignored-folder-remove:hover {
|
||||
background-color: var(--interactive-hover);
|
||||
}
|
||||
|
||||
/* 忽略資料夾模式的容器 */
|
||||
.ignored-folder-patterns-container {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
/* 忽略資料夾模式列表 */
|
||||
.ge-ignored-folder-patterns-list {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"2.5.6": "1.1.0",
|
||||
"2.5.7": "1.1.0",
|
||||
"2.6.0": "1.1.0"
|
||||
"2.6.0": "1.1.0",
|
||||
"2.6.1": "1.1.0"
|
||||
}
|
||||
Loading…
Reference in a new issue