feat: app icon button round

This commit is contained in:
2026-03-22 22:38:37 +01:00
parent 06e619f26c
commit fcd8754d94
5 changed files with 38 additions and 18 deletions

View File

@@ -20,6 +20,7 @@ return [
],
'default' => [
'css/vendor-overrides/multi-select.css',
'css/components/app-icon-button.css',
'css/components/app-buttons.css',
'css/vendor-overrides/gridjs.css',
'css/layout/app-topbar.css',

View File

@@ -23,7 +23,7 @@ $statusBadge = $status->badgeVariant();
?>
<div class="app-details-titlebar">
<h1>
<a href="admin/mail-log" title="<?php e(t('Back')); ?>"><i class="bi bi-arrow-left"></i></a>
<a href="admin/mail-log" title="<?php e(t('Back')); ?>" class="app-icon-button"><i class="bi bi-arrow-left"></i></a>
<?php e(t('View mail log')); ?>
</h1>
</div>

View File

@@ -70,7 +70,7 @@ $resolveToneClass = static function (string $tone, string $detailActionKind, str
>
<h1>
<?php if ($backHref !== ''): ?>
<a href="<?php e($backHref); ?>" title="<?php e($backTitle); ?>"><i class="bi bi-arrow-left"></i></a>
<a href="<?php e($backHref); ?>" title="<?php e($backTitle); ?>" class="app-icon-button"><i class="bi bi-arrow-left"></i></a>
<?php endif; ?>
<?php e($title); ?>
</h1>

View File

@@ -43,22 +43,7 @@
white-space: nowrap;
}
.app-details-titlebar h1 i {
background: var(--app-background-color);
width: 35px;
height: 29px;
font-size: 15px; /* icon-font metric — intentional px */
border-radius: var(--app-border-radius);
display: inline-flex;
align-items: center;
justify-content: center;
color: var(--app-contrast);
border: 1px solid var(--app-border);
color: var(--app-muted-color);
box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 2px;
}
.app-details-titlebar h1:has(i) {
.app-details-titlebar h1:has(.app-icon-button) {
display: flex;
align-items: center;
gap: 7px;

View File

@@ -0,0 +1,34 @@
@layer components {
/* Reusable round ghost icon button — transparent circle with subtle hover.
Used for back buttons, inline icon actions, etc. */
.app-icon-button {
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
padding: 0;
border: none;
border-radius: 50%;
background: transparent;
color: var(--app-muted-color);
font-size: var(--text-sm);
line-height: 1;
cursor: pointer;
text-decoration: none;
transition:
background-color var(--app-transition),
color var(--app-transition);
}
.app-icon-button:hover,
.app-icon-button:focus-visible {
background: color-mix(in srgb, var(--app-contrast) 8%, transparent);
color: var(--app-contrast);
}
.app-icon-button i {
font-size: 15px; /* icon-font metric — intentional px */
line-height: 1;
}
}