Files
bodyshop/client/src/components/notification-center/notification-center.styles.scss
2025-08-08 10:23:09 -04:00

176 lines
3.6 KiB
SCSS

.notification-center {
position: absolute;
top: 64px;
right: 0;
width: 400px;
max-width: 400px;
background: var(--notification-bg);
color: var(--notification-text);
border: 1px solid var(--notification-border);
border-radius: 6px;
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08), 0 3px 6px rgba(0, 0, 0, 0.06);
z-index: 1000;
display: none;
overflow-x: hidden;
&.visible {
display: block;
}
.notification-header {
padding: 4px 16px;
border-bottom: 1px solid var(--notification-header-border);
display: flex;
justify-content: space-between;
align-items: center;
background: var(--notification-header-bg);
h3 {
margin: 0;
font-size: 14px;
color: var(--notification-header-text);
}
.notification-controls {
display: flex;
align-items: center;
gap: 8px;
// Styles for the eye icon and switch (custom classes)
.notification-toggle {
align-items: center; // Ensure vertical alignment
}
.notification-toggle-icon {
font-size: 14px;
color: var(--notification-toggle-icon);
vertical-align: middle;
}
.ant-switch {
&.ant-switch-small {
min-width: 28px;
height: 16px;
line-height: 16px;
.ant-switch-handle {
width: 12px;
height: 12px;
}
&.ant-switch-checked {
background-color: var(--notification-switch-bg);
.ant-switch-handle {
left: calc(100% - 14px);
}
}
}
}
// Styles for the "Mark All Read" button (restore original link button style)
.ant-btn-link {
padding: 0;
color: var(--notification-btn-link);
&:hover {
color: var(--notification-btn-link-hover);
}
&:disabled {
color: var(--notification-btn-link-disabled);
cursor: not-allowed;
}
&.active {
color: var(--notification-btn-link-active);
}
}
}
}
.notification-read {
background: var(--notification-read-bg);
color: var(--notification-read-text);
}
.notification-unread {
background: var(--notification-unread-bg);
color: var(--notification-unread-text);
}
.notification-item {
padding: 12px 16px;
border-bottom: 1px solid var(--notification-header-border);
display: block;
overflow: visible;
width: 100%;
box-sizing: border-box;
cursor: pointer;
&:hover {
background: var(--notification-item-hover-bg);
}
.notification-content {
width: 100%;
}
.notification-title {
margin: 0;
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
box-sizing: border-box;
.ro-number {
margin: 0;
color: var(--notification-ro-number);
flex-shrink: 0;
white-space: nowrap;
}
.relative-time {
margin: 0;
font-size: 12px;
color: var(--notification-relative-time);
white-space: nowrap;
flex-shrink: 0;
margin-left: auto;
}
}
.notification-body {
margin-top: 4px;
.ant-typography {
color: inherit;
}
ul {
margin: 0;
padding: 0;
}
li {
margin-bottom: 2px;
}
}
}
.ant-badge {
width: 100%;
}
.ant-alert {
margin: 8px;
background: var(--alert-bg);
color: var(--alert-text);
border: 1px solid var(--alert-border);
.ant-alert-message {
color: var(--alert-message);
}
}
}