Rafael Lopez

test done

...@@ -27,3 +27,7 @@ claude.md ...@@ -27,3 +27,7 @@ claude.md
27 27
28 # Docs internos 28 # Docs internos
29 static/ESTILOS_*.md 29 static/ESTILOS_*.md
30 +.Rproj.user
31 +
32 +# Data
33 +/data
......
...@@ -32,10 +32,7 @@ ...@@ -32,10 +32,7 @@
32 <div class="fixed top-4 right-4 z-[110] md:hidden"> 32 <div class="fixed top-4 right-4 z-[110] md:hidden">
33 <button 33 <button
34 onclick={onOpenDrawer} 34 onclick={onOpenDrawer}
35 - class="p-2 rounded-full transition-all flex-shrink-0" 35 + class="nav-icon p-2 rounded-full transition-all flex-shrink-0"
36 - style="background-color: transparent; color: var(--theme-texto); cursor: pointer;"
37 - onmouseenter={(e) => e.currentTarget.style.color = 'var(--theme-titulo)'}
38 - onmouseleave={(e) => e.currentTarget.style.color = 'var(--theme-texto)'}
39 aria-label="Abrir menú" 36 aria-label="Abrir menú"
40 > 37 >
41 <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2"> 38 <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2">
...@@ -52,10 +49,7 @@ ...@@ -52,10 +49,7 @@
52 <div class="relative group/home"> 49 <div class="relative group/home">
53 <a 50 <a
54 href="/" 51 href="/"
55 - class="p-2 rounded-full transition-all block" 52 + class="nav-icon p-2 rounded-full transition-all block"
56 - style="background-color: transparent; color: var(--theme-texto);"
57 - onmouseenter={(e) => e.currentTarget.style.color = 'var(--theme-titulo)'}
58 - onmouseleave={(e) => e.currentTarget.style.color = 'var(--theme-texto)'}
59 > 53 >
60 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 54 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
61 <rect x="2" y="2" width="7" height="7" rx="1.5"/> 55 <rect x="2" y="2" width="7" height="7" rx="1.5"/>
...@@ -75,10 +69,7 @@ ...@@ -75,10 +69,7 @@
75 <div class="relative group/theme"> 69 <div class="relative group/theme">
76 <button 70 <button
77 onclick={toggleTheme} 71 onclick={toggleTheme}
78 - class="p-2 rounded-full transition-all" 72 + class="nav-icon p-2 rounded-full transition-all cursor-pointer"
79 - style="background-color: transparent; color: var(--theme-texto); cursor: pointer;"
80 - onmouseenter={(e) => e.currentTarget.style.color = 'var(--theme-titulo)'}
81 - onmouseleave={(e) => e.currentTarget.style.color = 'var(--theme-texto)'}
82 aria-label={isDark ? 'Cambiar a modo claro' : 'Cambiar a modo oscuro'} 73 aria-label={isDark ? 'Cambiar a modo claro' : 'Cambiar a modo oscuro'}
83 > 74 >
84 {#if isDark} 75 {#if isDark}
...@@ -104,10 +95,7 @@ ...@@ -104,10 +95,7 @@
104 <div class="relative group/menu"> 95 <div class="relative group/menu">
105 <button 96 <button
106 onclick={onOpenDrawer} 97 onclick={onOpenDrawer}
107 - class="p-2 rounded-full transition-all" 98 + class="nav-icon p-2 rounded-full transition-all cursor-pointer"
108 - style="background-color: transparent; color: var(--theme-texto); cursor: pointer;"
109 - onmouseenter={(e) => e.currentTarget.style.color = 'var(--theme-titulo)'}
110 - onmouseleave={(e) => e.currentTarget.style.color = 'var(--theme-texto)'}
111 aria-label="Abrir menú" 99 aria-label="Abrir menú"
112 > 100 >
113 <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2"> 101 <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2">
...@@ -123,3 +111,23 @@ ...@@ -123,3 +111,23 @@
123 111
124 </div> 112 </div>
125 </div> 113 </div>
114 +
115 +<style>
116 + /* Iconos del navbar */
117 + .nav-icon {
118 + background-color: transparent;
119 + color: #8A8578;
120 + transition: color 0.2s ease;
121 + }
122 + .nav-icon:hover {
123 + color: #F5F0E8;
124 + }
125 +
126 + /* Modo claro */
127 + :global(html:not(.dark)) .nav-icon {
128 + color: #333333;
129 + }
130 + :global(html:not(.dark)) .nav-icon:hover {
131 + color: #1A1A18;
132 + }
133 +</style>
......
...@@ -202,15 +202,12 @@ ...@@ -202,15 +202,12 @@
202 {/if} 202 {/if}
203 203
204 <!-- Controles: Theme Toggle + Menú --> 204 <!-- Controles: Theme Toggle + Menú -->
205 - <div class="flex items-center gap-1"> 205 + <div class="header-controls">
206 <!-- Theme Toggle (solo desktop) --> 206 <!-- Theme Toggle (solo desktop) -->
207 <div class="relative group/theme hidden md:block"> 207 <div class="relative group/theme hidden md:block">
208 <button 208 <button
209 onclick={toggleTheme} 209 onclick={toggleTheme}
210 - class="p-2 rounded-full transition-all" 210 + class="nav-icon p-2 rounded-full transition-all"
211 - style="background-color: transparent; color: var(--theme-texto); cursor: pointer;"
212 - onmouseenter={(e) => e.currentTarget.style.color = 'var(--theme-titulo)'}
213 - onmouseleave={(e) => e.currentTarget.style.color = 'var(--theme-texto)'}
214 aria-label={isDarkMode ? 'Cambiar a modo claro' : 'Cambiar a modo oscuro'} 211 aria-label={isDarkMode ? 'Cambiar a modo claro' : 'Cambiar a modo oscuro'}
215 > 212 >
216 {#if isDarkMode} 213 {#if isDarkMode}
...@@ -234,10 +231,7 @@ ...@@ -234,10 +231,7 @@
234 <div class="relative group/menu"> 231 <div class="relative group/menu">
235 <button 232 <button
236 onclick={openDrawer} 233 onclick={openDrawer}
237 - class="p-2 rounded-full transition-all" 234 + class="nav-icon p-2 rounded-full transition-all"
238 - style="background-color: transparent; color: var(--theme-texto); cursor: pointer;"
239 - onmouseenter={(e) => e.currentTarget.style.color = 'var(--theme-titulo)'}
240 - onmouseleave={(e) => e.currentTarget.style.color = 'var(--theme-texto)'}
241 aria-label="Abrir menú" 235 aria-label="Abrir menú"
242 > 236 >
243 <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2"> 237 <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" stroke-width="2">
...@@ -465,6 +459,32 @@ ...@@ -465,6 +459,32 @@
465 } 459 }
466 .mefp-logo:hover { opacity: 1; } 460 .mefp-logo:hover { opacity: 1; }
467 461
462 + /* Header controls */
463 + .header-controls {
464 + display: flex;
465 + align-items: center;
466 + gap: 4px;
467 + }
468 +
469 + /* Nav icon styling - matching Navbar */
470 + .nav-icon {
471 + background-color: transparent;
472 + color: #8A8578;
473 + cursor: pointer;
474 + transition: color 0.2s ease;
475 + }
476 + .nav-icon:hover {
477 + color: #F5F0E8;
478 + }
479 +
480 + /* Light mode */
481 + :global(html:not(.dark)) .nav-icon {
482 + color: #333333;
483 + }
484 + :global(html:not(.dark)) .nav-icon:hover {
485 + color: #1A1A18;
486 + }
487 +
468 /* Fade in animation */ 488 /* Fade in animation */
469 .fade-in { 489 .fade-in {
470 opacity: 0; 490 opacity: 0;
...@@ -617,13 +637,33 @@ ...@@ -617,13 +637,33 @@
617 } 637 }
618 .search-bar { 638 .search-bar {
619 display: flex; align-items: center; 639 display: flex; align-items: center;
620 - background: var(--theme-surface); border: 1px solid var(--theme-borde); 640 + background: transparent;
641 + border: none;
642 + box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
621 border-radius: 12px; padding: 6px 24px; 643 border-radius: 12px; padding: 6px 24px;
622 transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); 644 transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
623 } 645 }
624 - .search-focused { background: var(--theme-fill); } 646 + .search-bar:hover {
647 + box-shadow: inset 0 0 0 1px rgba(255,255,255,0.15);
648 + }
649 + .search-bar.search-focused,
650 + .search-bar.search-focused:hover {
651 + box-shadow: inset 0 0 0 1px var(--theme-accent);
652 + }
625 .search-has-results { border-radius: 12px 12px 0 0; } 653 .search-has-results { border-radius: 12px 12px 0 0; }
626 654
655 + /* Light mode search bar */
656 + :global(html:not(.dark)) .search-bar {
657 + box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08);
658 + }
659 + :global(html:not(.dark)) .search-bar:hover {
660 + box-shadow: inset 0 0 0 1px rgba(0,0,0,0.15);
661 + }
662 + :global(html:not(.dark)) .search-bar.search-focused,
663 + :global(html:not(.dark)) .search-bar.search-focused:hover {
664 + box-shadow: inset 0 0 0 1px var(--theme-accent);
665 + }
666 +
627 .search-bar input { 667 .search-bar input {
628 flex: 1; background: transparent; border: none; outline: none; 668 flex: 1; background: transparent; border: none; outline: none;
629 color: var(--theme-titulo); font-size: 16px; font-family: 'DM Sans', sans-serif; 669 color: var(--theme-titulo); font-size: 16px; font-family: 'DM Sans', sans-serif;
...@@ -643,10 +683,14 @@ ...@@ -643,10 +683,14 @@
643 683
644 .search-loading { 684 .search-loading {
645 position: absolute; top: 100%; left: 0; right: 0; 685 position: absolute; top: 100%; left: 0; right: 0;
646 - background: var(--theme-surface); border: 1px solid var(--theme-borde); border-top: none; 686 + background: var(--theme-body);
687 + box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
647 border-radius: 0 0 14px 14px; padding: 12px 24px; 688 border-radius: 0 0 14px 14px; padding: 12px 24px;
648 font-family: 'DM Sans', sans-serif; font-size: 13px; color: var(--theme-texto); 689 font-family: 'DM Sans', sans-serif; font-size: 13px; color: var(--theme-texto);
649 } 690 }
691 + :global(html:not(.dark)) .search-loading {
692 + box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08);
693 + }
650 694
651 .search-error { 695 .search-error {
652 margin-top: 8px; font-family: 'DM Sans', sans-serif; 696 margin-top: 8px; font-family: 'DM Sans', sans-serif;
...@@ -656,10 +700,14 @@ ...@@ -656,10 +700,14 @@
656 /* Suggestions / Results */ 700 /* Suggestions / Results */
657 .suggestions { 701 .suggestions {
658 position: absolute; top: 100%; left: 0; right: 0; 702 position: absolute; top: 100%; left: 0; right: 0;
659 - background: var(--theme-surface); border: 1px solid var(--theme-borde); border-top: none; 703 + background: var(--theme-body);
704 + box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);
660 border-radius: 0 0 14px 14px; overflow: hidden; z-index: 100; 705 border-radius: 0 0 14px 14px; overflow: hidden; z-index: 100;
661 max-height: 320px; overflow-y: auto; 706 max-height: 320px; overflow-y: auto;
662 } 707 }
708 + :global(html:not(.dark)) .suggestions {
709 + box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08);
710 + }
663 .suggestions.no-results { padding: 16px 24px; } 711 .suggestions.no-results { padding: 16px 24px; }
664 .no-results-text { 712 .no-results-text {
665 font-family: 'DM Sans', sans-serif; font-size: 14px; color: var(--theme-texto); 713 font-family: 'DM Sans', sans-serif; font-size: 14px; color: var(--theme-texto);
...@@ -670,8 +718,11 @@ ...@@ -670,8 +718,11 @@
670 padding: 12px 24px; display: flex; justify-content: space-between; 718 padding: 12px 24px; display: flex; justify-content: space-between;
671 align-items: center; cursor: pointer; transition: background 0.2s; 719 align-items: center; cursor: pointer; transition: background 0.2s;
672 } 720 }
673 - .suggestion-item:hover, .suggestion-selected { background: var(--theme-fill); } 721 + .suggestion-item:hover, .suggestion-selected { background: rgba(255,255,255,0.05); }
674 - .suggestion-border { border-top: 1px solid var(--theme-borde); } 722 + .suggestion-border { border-top: 1px solid rgba(255,255,255,0.06); }
723 + :global(html:not(.dark)) .suggestion-item:hover,
724 + :global(html:not(.dark)) .suggestion-selected { background: rgba(0,0,0,0.03); }
725 + :global(html:not(.dark)) .suggestion-border { border-top: 1px solid rgba(0,0,0,0.06); }
675 726
676 .suggestion-main { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; } 727 .suggestion-main { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0; }
677 .suggestion-label { 728 .suggestion-label {
......
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.