forked from
me.webbeef.org/browser.html
Rewild Your Web
1/* SPDX-License-Identifier: AGPL-3.0-or-later */
2
3:host {
4 position: fixed;
5 top: 0;
6 left: 0;
7 right: 0;
8 bottom: 0;
9 z-index: var(--z-sheet);
10 pointer-events: none;
11}
12
13.overlay {
14 position: fixed;
15 top: 0;
16 left: 0;
17 right: 0;
18 bottom: 0;
19 background: var(--color-backdrop);
20 opacity: 0;
21 transition: opacity var(--transition-fast);
22 pointer-events: none;
23}
24
25:host([open]) .overlay {
26 opacity: 1;
27 pointer-events: auto;
28}
29
30.sheet {
31 position: absolute;
32 top: 0;
33 left: 0;
34 right: 0;
35 max-height: 70vh;
36 background: var(--bg-menu);
37 border-radius: 0 0 var(--radius-lg) var(--radius-lg);
38 transform: translateY(-100%);
39 transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
40 pointer-events: auto;
41 box-shadow: 0 4px 20px var(--color-shadow);
42 display: flex;
43 flex-direction: column;
44 overflow: hidden;
45}
46
47:host([open]) .sheet {
48 transform: translateY(0);
49}
50
51.sheet-header {
52 display: flex;
53 align-items: center;
54 justify-content: space-between;
55 padding: var(--spacing-md);
56 border-bottom: 1px solid var(--color-border);
57}
58
59.status-info {
60 display: flex;
61 align-items: center;
62 gap: var(--spacing-sm);
63 font-size: var(--font-size-sm);
64 color: var(--color-text-menu);
65}
66
67.tab-count {
68 background: var(--color-primary);
69 color: var(--color-text-on-header);
70 padding: 2px 8px;
71 border-radius: 12px;
72 font-size: var(--font-size-xs);
73 font-weight: var(--font-weight-bold);
74}
75
76.clear-all-button {
77 background: transparent;
78 border: none;
79 color: var(--color-primary);
80 font-size: var(--font-size-sm);
81 cursor: pointer;
82 padding: var(--spacing-xs) var(--spacing-sm);
83 border-radius: var(--radius-sm);
84 transition: background var(--transition-fast);
85}
86
87.clear-all-button:hover {
88 background: var(--bg-hover);
89}
90
91.clear-all-button:disabled {
92 opacity: 0.5;
93 cursor: not-allowed;
94}
95
96.notifications-list {
97 flex: 1;
98 overflow-y: auto;
99 padding: var(--spacing-sm);
100}
101
102.notification-item {
103 display: flex;
104 align-items: flex-start;
105 gap: var(--spacing-sm);
106 padding: var(--spacing-sm) var(--spacing-md);
107 background: var(--bg-webview);
108 border-radius: var(--radius-md);
109 margin-bottom: var(--spacing-sm);
110 cursor: pointer;
111 transition:
112 background var(--transition-fast),
113 transform var(--transition-fast);
114 position: relative;
115}
116
117.notification-item:hover {
118 background: var(--color-menu-item-hover);
119}
120
121.notification-item.swiping {
122 transition: none;
123}
124
125.notification-icon {
126 width: 40px;
127 height: 40px;
128 border-radius: var(--radius-sm);
129 background: var(--bg-icon);
130 display: flex;
131 align-items: center;
132 justify-content: center;
133 flex-shrink: 0;
134}
135
136.notification-icon img {
137 width: 24px;
138 height: 24px;
139 object-fit: contain;
140}
141
142.notification-icon lucide-icon {
143 font-size: 20px;
144 color: var(--color-primary);
145}
146
147.notification-content {
148 flex: 1;
149 min-width: 0;
150}
151
152.notification-title {
153 font-weight: var(--font-weight-bold);
154 font-size: var(--font-size-sm);
155 color: var(--color-text-menu);
156 white-space: nowrap;
157 overflow: hidden;
158 text-overflow: ellipsis;
159}
160
161.notification-body {
162 font-size: var(--font-size-xs);
163 color: var(--color-text-secondary);
164 margin-top: 2px;
165 overflow: hidden;
166}
167
168.notification-time {
169 font-size: var(--font-size-xs);
170 color: var(--color-text-tertiary);
171 margin-top: var(--spacing-xs);
172}
173
174.dismiss-button {
175 background: transparent;
176 border: none;
177 color: var(--color-text-tertiary);
178 padding: var(--spacing-xs);
179 cursor: pointer;
180 opacity: 0;
181 transition: opacity var(--transition-fast);
182}
183
184.notification-item:hover .dismiss-button {
185 opacity: 1;
186}
187
188.empty-state {
189 display: flex;
190 flex-direction: column;
191 align-items: center;
192 justify-content: center;
193 padding: var(--spacing-lg);
194 color: var(--color-text-tertiary);
195}
196
197.empty-state lucide-icon {
198 font-size: 48px;
199 margin-bottom: var(--spacing-md);
200 opacity: var(--opacity-muted);
201}
202
203.empty-state-text {
204 font-size: var(--font-size-sm);
205}