Move small tasks from wishlist to todo, update npm packages Replace #[Auth] attributes with manual auth checks and code quality rule Remove on_jqhtml_ready lifecycle method from framework Complete ACL system with 100-based role indexing and /dev/acl tester WIP: ACL system implementation with debug instrumentation Convert rsx:check JS linting to RPC socket server Clean up docs and fix $id→$sid in man pages, remove SSR/FPC feature Reorganize wishlists: priority order, mark sublayouts complete, add email Update model_fetch docs: mark MVP complete, fix enum docs, reorganize Comprehensive documentation overhaul: clarity, compression, and critical rules Convert Contacts/Projects CRUD to Model.fetch() and add fetch_or_null() Add JS ORM relationship lazy-loading and fetch array handling Add JS ORM relationship fetching and CRUD documentation Fix ORM hydration and add IDE resolution for Base_* model stubs Rename Json_Tree_Component to JS_Tree_Debug_Component and move to framework Enhance JS ORM infrastructure and add Json_Tree class name badges 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
64 lines
1.6 KiB
SCSS
Executable File
64 lines
1.6 KiB
SCSS
Executable File
/**
|
|
* Flash Alert Styles
|
|
*
|
|
* Styles for the floating alert notification system.
|
|
* Alerts appear centered at the top (60px down) or bottom and stack vertically.
|
|
*
|
|
* @SCSS-ANIM-01-EXCEPTION: Hover lift effect acceptable for transient notifications
|
|
*/
|
|
|
|
.floating-alert-container {
|
|
position: fixed;
|
|
top: 60px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
z-index: 1200; // Flash alerts layer - see rsx:man zindex
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center; // Center alerts horizontally
|
|
gap: 12px;
|
|
max-width: 500px;
|
|
pointer-events: none; // Allow clicks through container
|
|
|
|
.alert-wrapper {
|
|
pointer-events: auto; // But allow clicks on individual alerts
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
width: auto; // Size to content, not container
|
|
min-width: 300px; // Minimum width for alerts
|
|
|
|
.alert {
|
|
margin-bottom: 0;
|
|
cursor: pointer;
|
|
user-select: none;
|
|
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
|
|
|
&:hover {
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
// Icon spacing
|
|
i {
|
|
vertical-align: middle;
|
|
}
|
|
|
|
// Close button styling
|
|
.btn-close {
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Mobile responsive adjustments
|
|
@media (max-width: 768px) {
|
|
.floating-alert-container {
|
|
left: 10px;
|
|
right: 10px;
|
|
transform: none;
|
|
max-width: none;
|
|
min-width: 0;
|
|
top: 10px;
|
|
}
|
|
}
|