Rewild Your Web
web browser dweb
at main 234 lines 4.5 kB view raw
1/* SPDX-License-Identifier: AGPL-3.0-or-later */ 2 3:host { 4 position: fixed; 5 top: 0; 6 bottom: 0; 7 left: var(--sidebar-width); 8 width: var(--size-panel-width); 9 z-index: var(--z-panel); 10 pointer-events: none; 11 font-family: var(--font-family-base); 12} 13 14:host([open]) { 15 pointer-events: auto; 16} 17 18.panel { 19 position: absolute; 20 top: 0; 21 left: 0; 22 bottom: 0; 23 width: 100%; 24 background: var(--bg-menu); 25 box-shadow: 4px 0 16px var(--color-shadow-menu); 26 transform: translateX(-100%); 27 transition: transform var(--transition-fast), 28 visibility var(--transition-fast); 29 display: flex; 30 flex-direction: column; 31 visibility: hidden; 32} 33 34:host([open]) .panel { 35 transform: translateX(0); 36 visibility: visible; 37} 38 39.header { 40 display: flex; 41 align-items: center; 42 justify-content: space-between; 43 padding: var(--spacing-sm) var(--spacing-md); 44 border-bottom: 1px solid var(--color-border); 45} 46 47.header-title { 48 font-weight: var(--font-weight-bold); 49 font-size: var(--font-size-menu); 50 color: var(--color-text); 51} 52 53.header-actions { 54 display: flex; 55 gap: var(--spacing-sm); 56} 57 58.clear-btn { 59 background: none; 60 border: none; 61 color: var(--color-primary); 62 font-size: var(--font-size-sm); 63 cursor: pointer; 64 padding: var(--spacing-xs) var(--spacing-sm); 65 border-radius: var(--radius-sm); 66} 67 68.clear-btn:hover { 69 background: var(--bg-hover); 70} 71 72.close-btn { 73 background: none; 74 border: none; 75 cursor: pointer; 76 padding: var(--spacing-xs); 77 border-radius: var(--radius-sm); 78 display: flex; 79 align-items: center; 80 justify-content: center; 81} 82 83.close-btn:hover { 84 background: var(--bg-hover); 85} 86 87.notification-list { 88 flex: 1; 89 overflow-y: auto; 90 padding: var(--spacing-sm) 0; 91} 92 93.notification-item { 94 padding: var(--spacing-sm) var(--spacing-md); 95 border-bottom: 1px solid var(--color-border); 96 cursor: pointer; 97 transition: background var(--transition-fast); 98 position: relative; 99} 100 101.notification-item:hover { 102 background: var(--bg-hover); 103} 104 105.notification-item:last-child { 106 border-bottom: none; 107} 108 109.notification-header { 110 display: flex; 111 align-items: flex-start; 112 gap: var(--spacing-sm); 113} 114 115.notification-icon { 116 width: var(--size-notification-icon); 117 height: var(--size-notification-icon); 118 border-radius: var(--radius-sm); 119 background: var(--bg-icon); 120 display: flex; 121 align-items: center; 122 justify-content: center; 123 flex-shrink: 0; 124 overflow: hidden; 125} 126 127.notification-icon img { 128 width: 100%; 129 height: 100%; 130 object-fit: cover; 131} 132 133.notification-icon lucide-icon { 134 color: var(--color-primary); 135} 136 137.notification-content { 138 flex: 1; 139 min-width: 0; 140} 141 142.notification-title { 143 font-weight: var(--font-weight-bold); 144 font-size: var(--font-size-menu); 145 color: var(--color-text); 146 margin-bottom: 2px; 147 white-space: nowrap; 148 overflow: hidden; 149 text-overflow: ellipsis; 150} 151 152.notification-body { 153 font-size: var(--font-size-sm); 154 color: var(--color-text-secondary); 155 overflow: hidden; 156} 157 158.notification-meta { 159 display: flex; 160 align-items: center; 161 gap: var(--spacing-sm); 162 margin-top: var(--spacing-xs); 163 font-size: var(--font-size-xs); 164 color: var(--color-text-tertiary); 165} 166 167.notification-time { 168 white-space: nowrap; 169} 170 171.notification-dismiss { 172 position: absolute; 173 top: var(--spacing-sm); 174 right: var(--spacing-sm); 175 width: var(--size-icon-sm); 176 height: var(--size-icon-sm); 177 border: none; 178 background: none; 179 cursor: pointer; 180 border-radius: var(--radius-sm); 181 display: flex; 182 align-items: center; 183 justify-content: center; 184 opacity: 0; 185 transition: opacity var(--transition-fast); 186} 187 188.notification-item:hover .notification-dismiss { 189 opacity: 1; 190} 191 192.notification-dismiss:hover { 193 background: var(--bg-hover); 194} 195 196.empty-state { 197 display: flex; 198 flex-direction: column; 199 align-items: center; 200 justify-content: center; 201 height: 100%; 202 color: var(--color-text-secondary); 203 padding: var(--spacing-lg); 204 text-align: center; 205} 206 207.empty-state lucide-icon { 208 font-size: 3em; 209 margin-bottom: var(--spacing-md); 210 opacity: var(--opacity-muted); 211} 212 213.empty-state-text { 214 font-size: var(--font-size-menu); 215} 216 217.backdrop { 218 position: fixed; 219 top: 0; 220 left: var(--sidebar-width); 221 right: 0; 222 bottom: 0; 223 background: var(--color-backdrop); 224 opacity: 0; 225 transition: opacity var(--transition-fast), visibility var(--transition-fast); 226 pointer-events: none; 227 visibility: hidden; 228} 229 230:host([open]) .backdrop { 231 opacity: 1; 232 pointer-events: auto; 233 visibility: visible; 234}