[WEB-317] Fix: Resolve CSS style issues in profile layout

This commit is contained in:
shubhamsharma9199
2025-09-18 18:48:18 +05:30
parent e845a45e76
commit 5145e7be2b
3 changed files with 155 additions and 48 deletions
+42 -8
View File
@@ -6,8 +6,12 @@
margin-bottom: 1rem; margin-bottom: 1rem;
padding: 1.5rem; padding: 1.5rem;
box-shadow: 0 2px 4px rgb(0 0 0 / 10%); box-shadow: 0 2px 4px rgb(0 0 0 / 10%);
border: 1px solid #ddd; border: 1px solid var(--border-color, #ddd);
border-radius: 6px; border-radius: 6px;
background-color: var(--card-background, #fff);
transition:
background-color 0.3s ease,
border-color 0.3s ease;
.layout-row-wrap { .layout-row-wrap {
display: grid; display: grid;
@@ -18,14 +22,16 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding: 0.75rem; padding: 0.75rem;
border: 1px solid #ddd; border: 1px solid var(--border-color, #ddd);
border-radius: 6px; border-radius: 6px;
background-color: #fff; background-color: var(--info-box-background, #fff);
transition: background-color 0.3s ease;
.header { .header {
font-weight: 600; font-weight: 600;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
font-size: 1.1rem; font-size: 1.1rem;
color: var(--header-color, inherit);
} }
} }
} }
@@ -35,11 +41,13 @@
div { div {
margin: 1rem 0; margin: 1rem 0;
word-wrap: break-word; word-wrap: break-word;
color: var(--text-color, inherit);
&.header { &.header {
font-weight: 600; font-weight: 600;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
font-size: 1.1rem; font-size: 1.1rem;
color: var(--header-color, inherit);
} }
} }
} }
@@ -52,31 +60,57 @@
th { th {
font-weight: 600; font-weight: 600;
text-align: left; text-align: left;
color: var(--table-header-color, inherit);
background-color: var(--table-header-bg, transparent);
} }
td { td {
padding: 0.75rem; padding: 0.75rem;
border: 1px solid #ddd; border: 1px solid var(--border-color, #ddd);
color: var(--text-color, inherit);
} }
tr:hover { tr:hover {
background-color: #f9f9f9; background-color: var(--table-hover-bg, #f9f9f9);
} }
} }
} }
.container table th, .container table th,
.container table td { .container table td {
border-top: 1px solid rgb(0 0 0 / 12%); border-top: 1px solid var(--border-color, rgb(0 0 0 / 12%));
} }
th.mat-header-cell:not(:first-of-type), th.mat-header-cell:not(:first-of-type),
td.mat-cell:not(:first-of-type) { td.mat-cell:not(:first-of-type) {
border-left: 1px solid rgb(0 0 0 / 12%); border-left: 1px solid var(--border-color, rgb(0 0 0 / 12%));
} }
.mat-elevation-z1 { .mat-elevation-z1 {
margin: 0.5rem 0; margin: 0.5rem 0;
box-shadow: 0 1px 3px rgb(0 0 0 / 12%); box-shadow: 0 1px 3px var(--elevation-shadow, rgb(0 0 0 / 12%));
border-radius: 6px; border-radius: 6px;
} }
// Dark mode styles
:host-context(.dark-theme) {
--border-color: #444;
--card-background: #2d2d2d;
--info-box-background: #383838;
--header-color: #e0e0e0;
--text-color: #d0d0d0;
--table-header-bg: #333;
--table-header-color: #e0e0e0;
--table-hover-bg: #3a3a3a;
--elevation-shadow: rgb(0 0 0 / 30%);
.container {
mat-card {
box-shadow: 0 2px 4px rgb(0 0 0 / 30%);
}
table {
box-shadow: 0 1px 3px rgb(0 0 0 / 30%);
}
}
}
@@ -16,59 +16,43 @@
<div class="container"> <div class="container">
<mat-card> <mat-card>
<mat-card-content> <mat-card-content>
<div class="layout-row-wrap"> <div class="content-rows">
<div class="flex-50 mat-body-strong"> <div class="content-row">
{{ 'labels.inputs.Login Name' | translate }} <div class="label">{{ 'labels.inputs.Login Name' | translate }}</div>
<div class="value">{{ userData.username }}</div>
</div> </div>
<div class="flex-50"> <div class="content-row">
{{ userData.username }} <div class="label">{{ 'labels.inputs.First Name' | translate }}</div>
<div class="value">{{ userData.firstname }}</div>
</div> </div>
<div class="flex-50 mat-body-strong"> <div class="content-row">
{{ 'labels.inputs.First Name' | translate }} <div class="label">{{ 'labels.inputs.Last Name' | translate }}</div>
<div class="value">{{ userData.lastname }}</div>
</div> </div>
<div class="flex-50"> <div class="content-row" *ngIf="userData.email">
{{ userData.firstname }} <div class="label">{{ 'labels.inputs.Email' | translate }}</div>
<div class="value">{{ userData.email }}</div>
</div> </div>
<div class="flex-50 mat-body-strong"> <div class="content-row">
{{ 'labels.inputs.Last Name' | translate }} <div class="label">{{ 'labels.inputs.Office' | translate }}</div>
<div class="value">{{ userData.officeName }}</div>
</div> </div>
<div class="flex-50"> <div class="content-row">
{{ userData.lastname }} <div class="label">{{ 'labels.inputs.Roles' | translate }}</div>
</div> <div class="value">
<span *ngFor="let role of userData.selectedRoles">
<div class="flex-50 mat-body-strong" *ngIf="userData.email"> {{ role.name }}
{{ 'labels.inputs.Email' | translate }} </span>
</div> </div>
<div class="flex-50" *ngIf="userData.email">
{{ userData.email }}
</div>
<div class="flex-50 mat-body-strong">
{{ 'labels.inputs.Office' | translate }}
</div>
<div class="flex-50">
{{ userData.officeName }}
</div>
<div class="flex-50 mat-body-strong">
{{ 'labels.inputs.Roles' | translate }}
</div>
<div class="flex-50">
<span *ngFor="let role of userData.selectedRoles">
{{ role.name }}
</span>
</div> </div>
</div> </div>
<div class="layout-row layout-align-center gap-2percent column-on-mobile"> <div class="layout-row layout-align-center gap-2percent column-on-mobile back-button-container">
<button type="button" mat-raised-button color="primary" [routerLink]="['../']"> <button type="button" mat-raised-button color="primary" [routerLink]="['../']">
{{ 'labels.buttons.Back' | translate }} {{ 'labels.buttons.Back' | translate }}
</button> </button>
@@ -1,5 +1,34 @@
.container { .container {
max-width: 37rem; max-width: 37rem;
margin: 0 auto;
padding: 1rem;
mat-card {
margin-bottom: 1rem;
padding: 1.5rem;
box-shadow: 0 2px 4px rgb(0 0 0 / 10%);
border: 1px solid var(--border-color, #ddd);
border-radius: 8px;
background-color: var(--card-background, #fff);
transition:
background-color 0.3s ease,
border-color 0.3s ease;
}
.layout-row-wrap {
display: grid;
grid-template-columns: 50% 50%;
gap: 1rem;
.flex-50 {
padding: 0.5rem;
&.mat-body-strong {
color: var(--label-color, #555);
font-weight: 600;
}
}
}
.content { .content {
div { div {
@@ -8,7 +37,67 @@
span { span {
display: block; display: block;
padding: 0.25rem 0;
color: var(--text-color, inherit);
} }
} }
} }
.content-rows {
display: flex;
flex-direction: column;
gap: 1rem;
.content-row {
display: flex;
flex-direction: row;
border-bottom: 1px solid var(--border-color-light, #eee);
padding-bottom: 0.5rem;
.label {
flex: 0 0 40%;
font-weight: 600;
color: var(--label-color, #555);
padding: 0.5rem 1rem 0.5rem 0;
}
.value {
flex: 0 0 60%;
padding: 0.5rem 0;
color: var(--text-color, inherit);
span {
display: block;
padding: 0.25rem 0;
}
}
}
}
.back-button-container {
margin-top: 2rem;
}
button {
transition: all 0.2s ease;
&:hover {
transform: translateY(-2px);
}
}
}
// Dark mode styles
:host-context(.dark-theme) {
--border-color: #444;
--border-color-light: #3a3a3a;
--card-background: #2d2d2d;
--label-color: #b8b8b8;
--text-color: #e0e0e0;
.container {
mat-card {
box-shadow: 0 2px 4px rgb(0 0 0 / 30%);
}
}
} }