Files
rspade_system/app/RSpade/Lib/Flash/Flash_Alert.scss
root 84ca3dfe42 Fix code quality violations and rename select input components
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>
2025-11-23 21:39:43 +00:00

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;
}
}