Skip to content

Commit f8694b2

Browse files
committed
refactor(profile): redesign Security Notes card with structured baseline and polished checklist UI
1 parent a845f56 commit f8694b2

2 files changed

Lines changed: 82 additions & 11 deletions

File tree

src/app/features/profile/components/user-profile-security/user-profile-security.component.html

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,23 @@ <h2>User Profile & Security</h2>
8686

8787
<div class="profile-grid__col profile-grid__col--security">
8888
<p-card header="Security Notes" styleClass="profile-panel-card">
89-
<ul class="security-list">
90-
<li *ngFor="let item of securityChecklist">
91-
<i class="pi pi-check-circle"></i>
92-
<span>{{ item }}</span>
93-
</li>
94-
</ul>
89+
<section class="security-panel">
90+
<header class="security-panel__intro">
91+
<span class="security-panel__icon"><i class="pi pi-shield"></i></span>
92+
<div>
93+
<h4>Security Baseline</h4>
94+
<p>Active controls currently enforced for authentication, authorization, and API request handling.</p>
95+
</div>
96+
</header>
97+
98+
<ul class="security-list">
99+
<li *ngFor="let item of securityChecklist; let itemIndex = index">
100+
<span class="security-note-index">{{ itemIndex + 1 }}</span>
101+
<span class="security-note-text">{{ item }}</span>
102+
<i class="pi pi-check-circle"></i>
103+
</li>
104+
</ul>
105+
</section>
95106
</p-card>
96107
</div>
97108

src/app/features/profile/components/user-profile-security/user-profile-security.component.scss

Lines changed: 65 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -260,23 +260,83 @@
260260
color: var(--text-color-secondary);
261261
}
262262

263+
.security-panel {
264+
display: flex;
265+
flex-direction: column;
266+
gap: 0.75rem;
267+
height: 100%;
268+
}
269+
270+
.security-panel__intro {
271+
display: flex;
272+
align-items: flex-start;
273+
gap: 0.7rem;
274+
border: 1px solid var(--surface-border);
275+
border-radius: 12px;
276+
background: color-mix(in srgb, var(--surface-100) 68%, transparent);
277+
padding: 0.72rem 0.78rem;
278+
}
279+
280+
.security-panel__icon {
281+
width: 2rem;
282+
height: 2rem;
283+
border-radius: 10px;
284+
border: 1px solid var(--surface-border);
285+
background: color-mix(in srgb, #93c5fd 24%, var(--surface-100));
286+
color: color-mix(in srgb, var(--primary-color) 70%, var(--text-color));
287+
display: inline-flex;
288+
align-items: center;
289+
justify-content: center;
290+
flex-shrink: 0;
291+
}
292+
293+
.security-panel__intro h4 {
294+
margin: 0;
295+
font-size: 0.9rem;
296+
color: var(--text-color);
297+
}
298+
299+
.security-panel__intro p {
300+
margin: 0.25rem 0 0;
301+
font-size: 0.79rem;
302+
line-height: 1.35;
303+
color: var(--text-color-secondary);
304+
}
305+
263306
.security-list li {
264307
border: 1px solid var(--surface-border);
265308
border-radius: 12px;
266309
background: color-mix(in srgb, var(--surface-100) 65%, transparent);
267310
padding: 0.72rem 0.78rem;
268311
display: flex;
269-
align-items: flex-start;
270-
gap: 0.45rem;
312+
align-items: center;
313+
gap: 0.6rem;
271314
}
272315

273316
.security-list li i {
274-
color: color-mix(in srgb, var(--primary-color) 70%, var(--text-color-secondary));
275-
margin-top: 0.08rem;
317+
margin-left: auto;
318+
color: color-mix(in srgb, #22c55e 70%, var(--text-color-secondary));
276319
}
277320

278-
.security-list li span {
321+
.security-note-index {
322+
width: 1.25rem;
323+
height: 1.25rem;
324+
border-radius: 999px;
325+
border: 1px solid var(--surface-border);
326+
background: color-mix(in srgb, var(--surface-200) 82%, transparent);
327+
color: var(--text-color-secondary);
328+
font-size: 0.72rem;
329+
font-weight: 700;
330+
display: inline-flex;
331+
align-items: center;
332+
justify-content: center;
333+
flex-shrink: 0;
334+
}
335+
336+
.security-note-text {
279337
line-height: 1.35;
338+
color: var(--text-color);
339+
font-size: 0.84rem;
280340
}
281341

282342
:host ::ng-deep .profile-panel-card .p-card-content {

0 commit comments

Comments
 (0)