- Set app-opening class BEFORE loading content to prevent flash
- Keep app-closing at opacity 0 after animation ends
- Remove unnecessary class removal in playCloseAnimation
Toast:
- Bigger size with bold text (18dp padding, 16dp font)
- Pop-up animation from bottom with bounce effect
- Fade-out animation when dismissing
- Cancels previous toast when showing new one
App transitions:
- Opening: fade in + scale from 0.8 to 1.0 with back-out easing
- Closing: fade out + scale from 1.0 to 0.8
- Skip animation on initial shell load
- Async close animation before loading previous app
- Wrap toast message in span for proper text rendering
- Use setTimeout instead of mosis.timer for auto-dismiss
- Remove unsupported CSS animation property
- Add explicit color to toast variants
- Change px to dp units for RmlUi compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Timer: use global setTimeout() instead of mosis.timer.setTimeout()
- JSON: use json.encode/decode instead of mosis.json
- Crypto: use crypto.sha256 instead of mosis.crypto
- Storage: use fs.read/write with /data/ prefix instead of mosis.fs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add main_content.rml for sandbox-test app with test cards for Timer, JSON, Crypto, Storage
- Add sandbox test functions to shell.lua (testSandboxTimer, testSandboxJSON, etc.)
- Register sandbox-test in builtin_ids and shellNavigateTo paths
- Add sandbox-test styles to shell.rml
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>