Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions src/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,52 @@ body {
.dark body {
background-color: var(--p-surface-950);
}

/* ---- Global UX polish (applies app-wide) ---- */

/* Smooth, consistent micro-interactions. */
.p-button,
.p-tag,
.p-inputtext,
.p-card {
transition:
background-color 0.15s ease,
border-color 0.15s ease,
box-shadow 0.15s ease,
color 0.15s ease;
}

/* Clearer row-hover affordance on data tables. */
.p-datatable-tbody > tr {
transition: background-color 0.12s ease;
}

/* Keyboard focus is always visible (a11y). */
:focus-visible {
outline: 2px solid var(--p-primary-color);
outline-offset: 2px;
border-radius: 4px;
}

/* Slimmer, subtler scrollbars — the sidebar and long tables get scrolly. */
* {
scrollbar-width: thin;
scrollbar-color: var(--p-surface-300) transparent;
}
*::-webkit-scrollbar {
width: 8px;
height: 8px;
}
*::-webkit-scrollbar-thumb {
background: var(--p-surface-300);
border-radius: 4px;
}
*::-webkit-scrollbar-track {
background: transparent;
}
.dark * {
scrollbar-color: var(--p-surface-700) transparent;
}
.dark *::-webkit-scrollbar-thumb {
background: var(--p-surface-700);
}
32 changes: 20 additions & 12 deletions src/views/DashboardView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,13 @@ onMounted(refresh)
<Card data-testid="kpi-users">
<template #content>
<div class="flex items-center gap-3">
<i class="pi pi-user text-2xl text-primary"></i>
<div class="flex-1">
<div class="flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 text-primary shrink-0">
<i class="pi pi-user text-xl"></i>
</div>
<div class="flex-1 min-w-0">
<div class="text-sm text-surface-500 dark:text-surface-400">{{ t('dashboard.kpiUsers') }}</div>
<Skeleton v-if="loading && userCount === null" height="2rem" />
<div v-else class="text-2xl font-semibold" data-testid="kpi-users-value">
<div v-else class="text-2xl font-semibold truncate" data-testid="kpi-users-value">
{{ userCount ?? '—' }}
</div>
</div>
Expand All @@ -88,11 +90,13 @@ onMounted(refresh)
<Card data-testid="kpi-tenants">
<template #content>
<div class="flex items-center gap-3">
<i class="pi pi-building text-2xl text-primary"></i>
<div class="flex-1">
<div class="flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 text-primary shrink-0">
<i class="pi pi-building text-xl"></i>
</div>
<div class="flex-1 min-w-0">
<div class="text-sm text-surface-500 dark:text-surface-400">{{ t('dashboard.kpiTenants') }}</div>
<Skeleton v-if="loading && tenantCount === null" height="2rem" />
<div v-else class="text-2xl font-semibold" data-testid="kpi-tenants-value">
<div v-else class="text-2xl font-semibold truncate" data-testid="kpi-tenants-value">
{{ tenantCount ?? '—' }}
</div>
</div>
Expand All @@ -103,10 +107,12 @@ onMounted(refresh)
<Card data-testid="kpi-current-tenant">
<template #content>
<div class="flex items-center gap-3">
<i class="pi pi-id-card text-2xl text-primary"></i>
<div class="flex-1">
<div class="flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 text-primary shrink-0">
<i class="pi pi-id-card text-xl"></i>
</div>
<div class="flex-1 min-w-0">
<div class="text-sm text-surface-500 dark:text-surface-400">{{ t('dashboard.kpiCurrentTenant') }}</div>
<div class="text-2xl font-semibold" data-testid="kpi-current-tenant-value">
<div class="text-2xl font-semibold truncate" data-testid="kpi-current-tenant-value">
{{ auth.user?.tenantId ?? '—' }}
</div>
</div>
Expand All @@ -117,10 +123,12 @@ onMounted(refresh)
<Card data-testid="kpi-signed-in">
<template #content>
<div class="flex items-center gap-3">
<i class="pi pi-user-edit text-2xl text-primary"></i>
<div class="flex-1">
<div class="flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 text-primary shrink-0">
<i class="pi pi-user-edit text-xl"></i>
</div>
<div class="flex-1 min-w-0">
<div class="text-sm text-surface-500 dark:text-surface-400">{{ t('dashboard.kpiSignedIn') }}</div>
<div class="text-2xl font-semibold" data-testid="kpi-signed-in-value">
<div class="text-2xl font-semibold truncate" data-testid="kpi-signed-in-value">
{{ auth.user?.loginId ?? '—' }}
</div>
</div>
Expand Down
Loading