summaryrefslogtreecommitdiff
path: root/frontend/src/components/document/Toast.css
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-04-28 00:18:40 +0100
committerGitHub <noreply@github.com>2026-04-28 00:18:40 +0100
commitc8b169da8cb7eae0957e0ab5e7370b071093a224 (patch)
treec3f9720a8acfe863ac0b65df9439abf9a941323a /frontend/src/components/document/Toast.css
parent3679ceb3325033faa2f889ef3dfee5668ef7aeea (diff)
downloadsoryu-c8b169da8cb7eae0957e0ab5e7370b071093a224.tar.gz
soryu-c8b169da8cb7eae0957e0ab5e7370b071093a224.zip
feat: Document UI for directive orchestration with Lexical editor (#93)
* WIP: heartbeat checkpoint * feat: soryu-co/soryu - makima: Save previous goal on update and include history in re-planning prompt * feat: soryu-co/soryu - makima: Install Lexical and create base document editor component * feat: soryu-co/soryu - makima: Create directive file system sidebar and document layout * feat: soryu-co/soryu - makima: Create custom Lexical step diagram block * feat: soryu-co/soryu - makima: Add context menu and goal auto-update integration * WIP: heartbeat checkpoint
Diffstat (limited to 'frontend/src/components/document/Toast.css')
-rw-r--r--frontend/src/components/document/Toast.css100
1 files changed, 100 insertions, 0 deletions
diff --git a/frontend/src/components/document/Toast.css b/frontend/src/components/document/Toast.css
new file mode 100644
index 0000000..e97304c
--- /dev/null
+++ b/frontend/src/components/document/Toast.css
@@ -0,0 +1,100 @@
+/* ============================================
+ Toast Notifications
+ ============================================ */
+
+.toast-container {
+ position: fixed;
+ bottom: 1.5rem;
+ right: 1.5rem;
+ z-index: 9999;
+ display: flex;
+ flex-direction: column-reverse;
+ gap: 0.5rem;
+ pointer-events: none;
+}
+
+.toast-item {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ padding: 0.65rem 1rem;
+ border-radius: 8px;
+ font-size: 0.875rem;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.08);
+ pointer-events: auto;
+ max-width: 360px;
+ backdrop-filter: blur(6px);
+}
+
+/* Types */
+.toast-success {
+ background: #ecfdf5;
+ color: #065f46;
+ border: 1px solid #a7f3d0;
+}
+
+.toast-error {
+ background: #fef2f2;
+ color: #991b1b;
+ border: 1px solid #fecaca;
+}
+
+.toast-info {
+ background: #eff6ff;
+ color: #1e40af;
+ border: 1px solid #bfdbfe;
+}
+
+/* Icon */
+.toast-icon {
+ flex-shrink: 0;
+ font-size: 1rem;
+ line-height: 1;
+}
+
+.toast-message {
+ line-height: 1.4;
+}
+
+/* Animations */
+.toast-enter {
+ animation: toastSlideIn 0.25s ease-out forwards;
+}
+
+.toast-exit {
+ animation: toastSlideOut 0.3s ease-in forwards;
+}
+
+@keyframes toastSlideIn {
+ from {
+ opacity: 0;
+ transform: translateY(8px) scale(0.96);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0) scale(1);
+ }
+}
+
+@keyframes toastSlideOut {
+ from {
+ opacity: 1;
+ transform: translateY(0) scale(1);
+ }
+ to {
+ opacity: 0;
+ transform: translateY(8px) scale(0.96);
+ }
+}
+
+@media (max-width: 640px) {
+ .toast-container {
+ right: 0.75rem;
+ bottom: 0.75rem;
+ }
+ .toast-item {
+ max-width: calc(100vw - 1.5rem);
+ font-size: 0.8rem;
+ }
+}