COS498-Group7 / client /src /components /Chat /VisualGuide.css
izzicooki's picture
feat: add visual guide system (Task 9)
15926a2
/* ============================================================
VisualGuide — step-by-step visual guide card
Designed for elderly users: high contrast, large text, generous spacing
============================================================ */
.visual-guide {
background-color: var(--color-primary-light);
border: 2px solid var(--color-primary);
border-radius: var(--radius-lg);
box-shadow: 0 4px 16px var(--color-shadow);
overflow: hidden;
margin-top: var(--spacing-md);
animation: fadeIn 300ms ease forwards;
}
/* Empty / error state */
.visual-guide--empty {
background-color: var(--color-surface-alt);
border-color: var(--color-border);
padding: var(--spacing-lg);
text-align: center;
color: var(--color-text-light);
font-size: var(--font-size-base);
}
/* ---- Header ---- */
.visual-guide__header {
display: flex;
align-items: center;
gap: var(--spacing-sm);
background-color: var(--color-primary);
color: var(--color-white);
padding: var(--spacing-md) var(--spacing-lg);
}
.visual-guide__header-icon {
font-size: var(--font-size-lg);
flex-shrink: 0;
}
.visual-guide__title {
flex: 1;
font-size: var(--font-size-md);
font-weight: 700;
color: var(--color-white);
line-height: 1.3;
margin: 0;
}
.visual-guide__os-badge {
font-size: var(--font-size-sm);
font-weight: 600;
background-color: rgba(255, 255, 255, 0.25);
color: var(--color-white);
border-radius: var(--radius-full);
padding: 2px var(--spacing-sm);
white-space: nowrap;
flex-shrink: 0;
}
/* ---- Steps list ---- */
.visual-guide__steps {
list-style: none;
margin: 0;
padding: var(--spacing-md) var(--spacing-lg) var(--spacing-lg);
display: flex;
flex-direction: column;
gap: var(--spacing-md);
}
/* ---- Individual step ---- */
.visual-guide__step {
display: flex;
align-items: flex-start;
gap: var(--spacing-md);
}
/* Circle number badge */
.visual-guide__step-num {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 36px;
height: 36px;
border-radius: 50%;
background-color: var(--color-primary);
color: var(--color-white);
font-size: var(--font-size-sm);
font-weight: 700;
line-height: 1;
margin-top: 2px; /* align with first line of text */
}
/* Step text + keys container */
.visual-guide__step-content {
flex: 1;
display: flex;
flex-direction: column;
gap: var(--spacing-sm);
}
.visual-guide__step-text {
font-size: var(--font-size-base);
line-height: var(--line-height);
color: var(--color-text);
margin: 0;
}
/* ---- Keyboard key badges ---- */
.visual-guide__keys {
display: flex;
align-items: center;
gap: var(--spacing-xs);
flex-wrap: wrap;
}
.visual-guide__key {
display: inline-flex;
align-items: center;
justify-content: center;
background-color: var(--color-surface);
color: var(--color-text);
border: 2px solid var(--color-primary);
border-radius: var(--radius-sm);
box-shadow: 0 2px 0 var(--color-primary);
padding: 4px 10px;
font-family: var(--font-family);
font-size: var(--font-size-sm);
font-weight: 700;
min-width: 36px;
text-align: center;
white-space: nowrap;
}
.visual-guide__key-plus {
font-size: var(--font-size-md);
font-weight: 700;
color: var(--color-text-light);
padding: 0 2px;
}