feat: bouton + à gauche du handle de bloc — insère un bloc dessous (v7.60.0)
- nouveau bouton .block-insert-btn émis AVANT le handle (6 points) dans le wrapper de chaque bloc de premier niveau : clic → E.addAfter(idx) → addAt(idx+1) → bloc inséré sous le courant et focusé (mécanisme déjà en place, réutilisé tel quel) - position : left:-64px (gouttière .blocks-container = 64px), -56px dans le breakpoint où la gouttière passe à 32px ; apparaît au survol/focus comme le handle ; masqué avec lui sur écran étroit (2 breakpoints) - aria-label + title « Add block below » - tests : tests/test_v760_block_insert_btn.py (2 tests : ordre dans le wrapper, câblage E.addAfter, positions/masquages CSS) - livraison : VERSION + app/main = 7.60.0, OpenAPI 525 chemins, CHANGELOG
This commit is contained in:
@@ -2341,6 +2341,36 @@ button.breadcrumb-current { max-width: 260px; }
|
||||
cursor: grabbing;
|
||||
}
|
||||
|
||||
/* + « ajouter un bloc dessous » — juste à gauche du handle (gouttière 64px) */
|
||||
.block-insert-btn {
|
||||
position: absolute;
|
||||
left: -64px;
|
||||
top: 5px;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: none;
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
color: var(--text-dim);
|
||||
font-size: 17px;
|
||||
line-height: 1;
|
||||
cursor: pointer;
|
||||
opacity: 0;
|
||||
transition: opacity 0.15s ease;
|
||||
}
|
||||
.block-wrapper:hover .block-insert-btn,
|
||||
.block-wrapper:focus-within .block-insert-btn {
|
||||
opacity: 1;
|
||||
}
|
||||
.block-insert-btn:hover {
|
||||
background: var(--bg-hover);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
|
||||
/* ── v5.10.0: selection multiple + menu contexte bloc ── */
|
||||
.block-wrapper.selected {
|
||||
background: rgba(35,131,226,0.06);
|
||||
@@ -2934,6 +2964,7 @@ button.breadcrumb-current { max-width: 260px; }
|
||||
.page-title-input { font-size: 28px; }
|
||||
.blocks-container { padding: 8px 16px 96px; }
|
||||
.block-handle { display: none; }
|
||||
.block-insert-btn { display: none; }
|
||||
.block-actions { display: none; }
|
||||
.editor-statusbar { left: 0; }
|
||||
}
|
||||
@@ -3409,6 +3440,7 @@ button.breadcrumb-current { max-width: 260px; }
|
||||
.page-cover-area { padding: 32px 32px 8px; }
|
||||
.blocks-container { padding: 8px 32px 80px; }
|
||||
.block-handle { left: -32px; }
|
||||
.block-insert-btn { left: -56px; }
|
||||
.page-title-block::before { left: -32px; }
|
||||
.page-title-input { font-size: 32px; }
|
||||
|
||||
@@ -3499,6 +3531,7 @@ button.breadcrumb-current { max-width: 260px; }
|
||||
.page-title-input { font-size: 24px; }
|
||||
.blocks-container { padding: 8px 16px 96px; }
|
||||
.block-handle { display: none; }
|
||||
.block-insert-btn { display: none; }
|
||||
.block-actions { display: none; }
|
||||
.page-title-block::before { display: none; }
|
||||
.page-title-block .page-icon-emoji { margin-left: 0; }
|
||||
|
||||
Reference in New Issue
Block a user