Split action icons into their own columns, tighten spacing, no crosshair
Link and edit icons get one dedicated column each instead of sharing one text-align: center cell -- with a shared cell, a row with only the edit icon (non-linkable types) centered differently than a row with both icons, so pencils never lined up vertically across rows. Separate columns line up by construction. Verified: identical left offset (141px) for the edit icon across 15 consecutive rows. Also: tighter cell padding (was using the table's default 0.6rem horizontal padding, way more than an icon needs) and no column-hover crosshair on these technical columns -- nothing meaningful to compare across rows there. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -198,9 +198,16 @@ html.gin--dark-mode #figli-home-app {
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
/* One column per icon (link, edit) rather than one shared cell -- with a
|
||||
shared cell, text-align: center puts a lone button (rows with no link
|
||||
icon) in a different spot than a row with both, so the edit pencil
|
||||
never lined up from row to row. Separate columns line up by
|
||||
construction, and get a tight, icon-sized width instead of the
|
||||
table's default 0.6rem horizontal cell padding. */
|
||||
#figli-home-app td.actions-col,
|
||||
#figli-home-app th.actions-col {
|
||||
width: 1%;
|
||||
padding: 0.2rem 0.1rem;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -214,8 +221,8 @@ html.gin--dark-mode #figli-home-app {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 1.6rem;
|
||||
height: 1.6rem;
|
||||
width: 1.4rem;
|
||||
height: 1.4rem;
|
||||
padding: 0;
|
||||
background: transparent;
|
||||
border: 1px solid transparent;
|
||||
@@ -225,10 +232,6 @@ html.gin--dark-mode #figli-home-app {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-link-btn {
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-edit-btn:hover,
|
||||
#figli-home-app .figli-link-btn:hover {
|
||||
background: var(--figli-bg-alt);
|
||||
|
||||
@@ -279,6 +279,12 @@
|
||||
onCellHover(evt) {
|
||||
const cell = evt.target.closest('td, th');
|
||||
if (!cell) return;
|
||||
// No crosshair on the technical action columns (link/edit icons) --
|
||||
// there's nothing to compare across rows there.
|
||||
if (cell.classList.contains('actions-col')) {
|
||||
this.clearColHover();
|
||||
return;
|
||||
}
|
||||
// Logical column position, not DOM sibling index: the totals row's
|
||||
// first cell has colspan="4", which shifts every cell.cellIndex
|
||||
// after it out of alignment with the body rows.
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
<table ref="tableEl" @mouseover="onCellHover" @mouseleave="clearColHover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="actions-col"></th>
|
||||
<th class="actions-col"></th>
|
||||
<th>Date</th>
|
||||
<th>Client</th>
|
||||
@@ -80,7 +81,7 @@
|
||||
<tbody>
|
||||
<template v-for="item in groupedRows" :key="item.key">
|
||||
<tr v-if="item.isGroup" class="figli-group-row">
|
||||
<td :colspan="6 + allComptes.length + 2">{{ item.label }} <span class="figli-note">({{ item.count }} lignes)</span></td>
|
||||
<td :colspan="6 + allComptes.length + 3">{{ item.label }} <span class="figli-note">({{ item.count }} lignes)</span></td>
|
||||
</tr>
|
||||
<tr v-else :class="{'figli-error-row': item.hasError}">
|
||||
<td class="actions-col">
|
||||
@@ -97,6 +98,8 @@
|
||||
<path d="M12 8a3 3 0 0 0-4.24 0l-2 2a3 3 0 0 0 4.24 4.24l1-1" />
|
||||
</svg>
|
||||
</button>
|
||||
</td>
|
||||
<td class="actions-col">
|
||||
<button type="button" class="figli-edit-btn" title="Modifier" @click="openEditForm(item.nid)">
|
||||
<svg viewBox="0 0 20 20" width="14" height="14" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M13.5 3.5l3 3L6 17l-3.5.5.5-3.5L13.5 3.5z" />
|
||||
@@ -125,6 +128,7 @@
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr class="figli-totals-row">
|
||||
<td class="actions-col"></td>
|
||||
<td class="actions-col"></td>
|
||||
<td colspan="4">Solde (créditeur / débiteur) — {{ filteredRows.length }} lignes filtrées</td>
|
||||
<td class="amount">{{ formatEur(footerTotals.montant_ht) }}</td>
|
||||
|
||||
Reference in New Issue
Block a user