diff --git a/doc/z-index-guide.md b/doc/z-index-guide.md new file mode 100644 index 00000000..49a5733a --- /dev/null +++ b/doc/z-index-guide.md @@ -0,0 +1,69 @@ +# Z-Index Guide — TimeSafari + +**Author**: Development Team +**Date**: 2025-08-25T19:38:09-08:00 +**Status**: 🎯 **ACTIVE** - Z-index layering standards + +## Objective +Establish consistent z-index values across the TimeSafari application to ensure proper layering of UI elements. + +## Result +This document defines the z-index hierarchy for all UI components. + +## Use/Run +Reference these values when implementing new components or modifying existing ones to maintain consistent layering. + +## Z-Index Hierarchy + +| Component | Z-Index | Usage | +|-----------|---------|-------| +| **Map** | `40` | Base map layer and map-related overlays | +| **QuickNav** | `50` | Quick navigation bottom bar | +| **Dialogs and Modals** | `100` | Modal dialogs, popups, and overlay content | +| **Notifications and Toasts** | `120` | System notifications, alerts, and toast messages | + +## Best Practices + +1. **Never exceed 120** - Keep the highest z-index reserved for critical notifications +2. **Use increments of 10** - Leave room for future additions between layers +3. **Document exceptions** - If you need a z-index outside this range, document the reason +4. **Test layering** - Verify z-index behavior across different screen sizes and devices + +## Common Pitfalls + +- **Avoid arbitrary values** - Don't use random z-index numbers +- **Don't nest high z-index** - Keep child elements within their parent's z-index range +- **Consider stacking context** - Remember that `position: relative` creates new stacking contexts + +## Next Steps + +| Owner | Task | Exit Criteria | Target Date | +|-------|------|---------------|-------------| +| Dev Team | Apply z-index classes to existing components | All components use defined z-index values | 2025-09-01 | + +## Competence Hooks + +- **Why this works**: Creates predictable layering hierarchy that prevents UI conflicts +- **Common pitfalls**: Using arbitrary z-index values or exceeding the defined range +- **Next skill unlock**: Learn about CSS stacking contexts and their impact on z-index +- **Teach-back**: Explain the z-index hierarchy to a team member without referencing this guide + +## Collaboration Hooks + +- **Reviewers**: Frontend team, UI/UX designers +- **Sign-off checklist**: + - [ ] All new components follow z-index guidelines + - [ ] Existing components updated to use defined values + - [ ] Cross-browser testing completed + - [ ] Mobile responsiveness verified + +## Assumptions & Limits + +- Assumes modern browser support for z-index +- Limited to 4 defined layers (expandable if needed) +- Requires team discipline to maintain consistency + +## References + +- [MDN Z-Index Documentation](https://developer.mozilla.org/en-US/docs/Web/CSS/z-index) +- [CSS Stacking Context Guide](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context) diff --git a/src/App.vue b/src/App.vue index 8bd39b52..fd1cc9aa 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,7 +4,7 @@