Skip to content

Commit 4905bda

Browse files
committed
Add advanced appearance and notification features
Introduces modular plugin structure documentation, new console appearance options (timestamps, line numbers), and advanced notification support including native desktop notifications and hybrid mode. Adds new themes (cyberpunk, matrix, minimal, default), improves command manager with import/export and search, enhances UI for toggles and sliders, and refactors settings management for unified persistence. Updates styles, documentation, and core app logic to support these features.
1 parent dbb899e commit 4905bda

17 files changed

Lines changed: 7726 additions & 146 deletions

File tree

PLUGIN_GUIDE.md

Lines changed: 449 additions & 3 deletions
Large diffs are not rendered by default.

contents/css/styles.css

Lines changed: 185 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,40 @@ html, body {
5050
color: #18181b !important;
5151
}
5252

53-
/* Animation de transition pour le filtre invert */
54-
.theme-dark, .theme-light {
53+
.theme-cyberpunk {
54+
background: linear-gradient(135deg, #0f0f0f, #1a0033, #330066) !important;
55+
color: #00ffff !important;
56+
--primary-color: #ff00ff;
57+
--secondary-color: #00ffff;
58+
--accent-color: #ffff00;
59+
}
60+
61+
.theme-matrix {
62+
background: linear-gradient(135deg, #000000, #001100, #003300) !important;
63+
color: #00ff00 !important;
64+
--primary-color: #00ff00;
65+
--secondary-color: #008800;
66+
--accent-color: #66ff66;
67+
}
68+
69+
.theme-minimal {
70+
background: #ffffff !important;
71+
color: #333333 !important;
72+
--primary-color: #666666;
73+
--secondary-color: #999999;
74+
--accent-color: #0066cc;
75+
}
76+
77+
.theme-default {
78+
background: linear-gradient(135deg, #1e293b, #0f172a) !important;
79+
color: #f1f5f9 !important;
80+
--primary-color: #3b82f6;
81+
--secondary-color: #6366f1;
82+
--accent-color: #8b5cf6;
83+
}
84+
85+
/* Animation de transition pour tous les thèmes */
86+
.theme-dark, .theme-light, .theme-cyberpunk, .theme-matrix, .theme-minimal, .theme-default {
5587
transition:
5688
filter 0.5s cubic-bezier(.4,2,.6,1),
5789
background 0.5s cubic-bezier(.4,0,.2,1),
@@ -143,3 +175,154 @@ body {
143175
transform: scale(0.95);
144176
}
145177

178+
/* Styles pour les sliders/range inputs */
179+
input[type="range"] {
180+
-webkit-appearance: none;
181+
width: 100%;
182+
height: 8px;
183+
border-radius: 4px;
184+
background: #374151;
185+
outline: none;
186+
position: relative;
187+
}
188+
189+
input[type="range"]::-webkit-slider-thumb {
190+
-webkit-appearance: none;
191+
appearance: none;
192+
width: 20px;
193+
height: 20px;
194+
border-radius: 50%;
195+
background: #3b82f6;
196+
cursor: pointer;
197+
box-shadow: 0 2px 6px rgba(59, 130, 246, 0.3);
198+
transition: all 0.2s ease;
199+
}
200+
201+
input[type="range"]::-webkit-slider-thumb:hover {
202+
background: #2563eb;
203+
transform: scale(1.1);
204+
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.5);
205+
}
206+
207+
input[type="range"]::-moz-range-thumb {
208+
width: 20px;
209+
height: 20px;
210+
border-radius: 50%;
211+
background: #3b82f6;
212+
cursor: pointer;
213+
border: none;
214+
box-shadow: 0 2px 6px rgba(59, 130, 246, 0.3);
215+
transition: all 0.2s ease;
216+
}
217+
218+
input[type="range"]::-moz-range-thumb:hover {
219+
background: #2563eb;
220+
transform: scale(1.1);
221+
box-shadow: 0 4px 12px rgba(59, 130, 246, 0.5);
222+
}
223+
224+
input[type="range"]::-moz-range-track {
225+
width: 100%;
226+
height: 8px;
227+
cursor: pointer;
228+
background: #374151;
229+
border-radius: 4px;
230+
border: none;
231+
}
232+
233+
/* Styles pour les toggles switch améliorés */
234+
.toggle-bg {
235+
width: 48px !important;
236+
height: 24px !important;
237+
background-color: #374151 !important;
238+
border-radius: 12px !important;
239+
position: relative !important;
240+
cursor: pointer !important;
241+
transition: all 0.3s ease !important;
242+
border: 1px solid #4b5563 !important;
243+
display: flex !important;
244+
align-items: center !important;
245+
box-sizing: border-box !important;
246+
}
247+
248+
.toggle-bg.active,
249+
input:checked + .toggle-bg {
250+
background-color: #10b981 !important;
251+
border-color: #059669 !important;
252+
}
253+
254+
.toggle-dot {
255+
width: 18px !important;
256+
height: 18px !important;
257+
background-color: #ffffff !important;
258+
border-radius: 50% !important;
259+
transition: all 0.3s ease !important;
260+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2) !important;
261+
position: absolute !important;
262+
left: 2px !important;
263+
top: 50% !important;
264+
transform: translateY(-50%) !important;
265+
box-sizing: border-box !important;
266+
}
267+
268+
.toggle-bg.active .toggle-dot,
269+
input:checked + .toggle-bg .toggle-dot {
270+
transform: translateX(24px) translateY(-50%) !important;
271+
background-color: #ffffff !important;
272+
}
273+
274+
.toggle-bg:hover {
275+
opacity: 0.8;
276+
transform: scale(1.05);
277+
}
278+
279+
.toggle-bg:active {
280+
transform: scale(0.95);
281+
}
282+
283+
/* Z-index pour les modals et notifications - Hiérarchie optimisée */
284+
/* Base: éléments normaux = 1-10 */
285+
/* Dropdowns et menus = 100-200 */
286+
/* Modals et overlays = 1000-2000 */
287+
/* Notifications = 9000+ (toujours au-dessus) */
288+
289+
.modal-backdrop, [class*="modal"]:not(.notification-container) {
290+
z-index: 1000 !important;
291+
}
292+
293+
.modal-content {
294+
z-index: 1010 !important;
295+
}
296+
297+
.plugin-manager-modal {
298+
z-index: 1020 !important;
299+
}
300+
301+
.settings-modal {
302+
z-index: 1030 !important;
303+
}
304+
305+
/* Tous les éléments de modal générique */
306+
[id*="modal"], [class*="modal"]:not(.notification-container),
307+
[id*="dropdown"], [class*="dropdown"] {
308+
z-index: 1000 !important;
309+
}
310+
311+
/* Menu dropdowns */
312+
.dropdown-menu, [class*="dropdown-menu"] {
313+
z-index: 200 !important;
314+
}
315+
316+
/* Notifications - TOUJOURS au-dessus de tout */
317+
.notification-container,
318+
#notification-container {
319+
z-index: 9999 !important;
320+
position: fixed !important;
321+
pointer-events: none;
322+
}
323+
324+
/* Les notifications individuelles doivent avoir pointer-events auto */
325+
.notification-container > * {
326+
pointer-events: auto;
327+
}
328+

contents/emojis.json

Whitespace-only changes.

0 commit comments

Comments
 (0)