diff --git a/app/templates/_database_table.html b/app/templates/_database_table.html index 559dc9e..b468927 100644 --- a/app/templates/_database_table.html +++ b/app/templates/_database_table.html @@ -66,4 +66,79 @@ + + + diff --git a/app/templates/_database_table_scripts.html b/app/templates/_database_table_scripts.html index 3aeb0f1..ca9e0e2 100644 --- a/app/templates/_database_table_scripts.html +++ b/app/templates/_database_table_scripts.html @@ -1,4 +1,4 @@ - + diff --git a/static/css/app.css b/static/css/app.css index 6b5a8cc..5178087 100644 --- a/static/css/app.css +++ b/static/css/app.css @@ -3858,6 +3858,94 @@ button.breadcrumb-current { max-width: 260px; } } .db-btn-create:hover { opacity: 0.9; } +/* ── Column Resize Handle ── */ +.db-col-resize-handle { + position: absolute; + top: 0; right: 0; + width: 5px; height: 100%; + cursor: col-resize; + z-index: 2; + transition: background 0.1s; +} +.db-col-resize-handle:hover, +.db-col-resize-handle:active { + background: var(--accent, #2383E2); +} + +/* ── Column Header Context Menu ── */ +.db-col-menu { + position: fixed; + min-width: 240px; + max-width: 320px; + background: var(--bg-modal); + border: 1px solid var(--border); + border-radius: 8px; + box-shadow: 0 8px 24px rgba(0,0,0,0.14); + z-index: 800; + padding: 4px 0; + font-family: var(--font-sans); + font-size: 13px; + color: var(--text-primary); +} + +.db-col-menu-header { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 12px; + font-weight: 600; +} +.db-col-menu-icon { display: flex; align-items: center; color: var(--text-dim); } +.db-col-menu-name { flex: 1; } +.db-col-menu-info { font-size: 11px; color: var(--text-dim); } + +.db-col-menu-sep { + height: 1px; + background: var(--border); + margin: 4px 0; +} + +.db-col-menu-item { + display: flex; + align-items: center; + gap: 8px; + padding: 6px 12px; + cursor: pointer; + transition: background 0.1s; + position: relative; +} +.db-col-menu-item:hover { background: var(--bg-hover); } +.db-col-menu-item.has-sub { justify-content: space-between; } + +.db-col-menu-toggle { font-size: 11px; font-weight: 600; } +.db-col-menu-toggle.on { color: var(--accent, #2383E2); } +.db-col-menu-toggle.off { color: var(--text-dim); } + +.db-col-menu-hint { font-size: 11px; color: var(--text-dim); margin-left: auto; margin-right: 4px; } +.db-col-menu-arrow { font-size: 14px; color: var(--text-dim); } +.db-col-menu-tag { + font-size: 10px; + background: var(--accent, #2383E2); + color: white; + padding: 1px 6px; + border-radius: 8px; + margin-left: auto; +} + +.db-col-menu-sub { + border-left: 1px solid var(--border); + margin-left: 0; +} +.db-col-menu-sub .sub-item { padding-left: 28px; } +.db-col-menu-sub .sub-item.checked { font-weight: 600; } + +.db-col-menu-subnote { + padding: 4px 12px 4px 28px; + font-size: 11px; + color: var(--text-dim); + line-height: 1.4; +} + /* ── Responsive ── */ @media (max-width: 768px) { .database-table-container { padding: 0 16px; }