diff --git a/Elecciones-Web/frontend/src/components/TickerWidget.css b/Elecciones-Web/frontend/src/components/TickerWidget.css index d9e94a0..80325fd 100644 --- a/Elecciones-Web/frontend/src/components/TickerWidget.css +++ b/Elecciones-Web/frontend/src/components/TickerWidget.css @@ -1,62 +1,94 @@ -/* src/components/TickerWidget.css */ -.ticker-wrapper { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); - gap: 1.5rem; - width: 100%; - max-width: 1280px; - margin: 20px auto; -} +/* ========================================================================== + TickerWidget.css (Versión Mejorada y Responsiva) + ========================================================================== */ + +/* --- Contenedor Principal del Widget --- */ .ticker-card { background-color: #ffffff; border: 1px solid #e0e0e0; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); - padding: 15px 20px; + padding: 1rem; /* Usamos rem para un padding relativo */ border-radius: 8px; display: flex; flex-direction: column; + + /* --- CAMBIO CLAVE: Establecemos un tamaño de fuente base --- */ + /* 1rem = al tamaño de fuente del contenedor padre. Si la página usa 16px, + el widget usará 16px como base. Si usa 14px, se adaptará a 14px. */ + font-size: 1rem; } +/* --- Cabecera del Ticker --- */ .ticker-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #e0e0e0; - padding-bottom: 10px; - margin-bottom: 15px; + padding-bottom: 0.8rem; + margin-bottom: 1rem; } .ticker-header h3 { margin: 0; color: #212529; - font-size: 1.2em; + /* El tamaño del título es 1.1 veces el tamaño base del widget */ + font-size: 1.1rem; font-weight: 700; - padding-right: 15px; /* Espacio para que no se pegue al dropdown en escritorio */ + padding-right: 1rem; } .ticker-stats { display: flex; - gap: 20px; - font-size: 0.9em; + gap: 1.25rem; /* 20px / 16px */ + font-size: 0.875rem; /* 14px / 16px */ color: #555; } .ticker-stats strong { color: #0073e6; - font-size: 1.1em; + font-size: 1.1em; /* 1.1 veces el tamaño de su padre (0.875rem) */ } + +/* --- Resultados (Grid de Partidos) --- */ .ticker-results { + display: grid; + /* Mantenemos minmax para la responsividad de las columnas */ + grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); + gap: 1.25rem; /* 20px */ +} + +.ticker-party { display: flex; - flex-direction: column; - gap: 12px; + align-items: center; + gap: 0.8rem; /* 10px */ +} + +/* Logo del partido */ +.party-logo { + flex-shrink: 0; + width: 65px; /* Ligeramente más pequeño para no ser tan dominante */ + height: 65px; +} +.party-logo img { + width: 100%; + height: 100%; + object-fit: contain; /* Usar 'contain' es más seguro para logos */ + border-radius: 4px; + border: 1px solid #ddd; +} + +/* Detalles (Nombre, Barra, Candidato) */ +.party-details { + flex-grow: 1; + min-width: 0; } .ticker-party .party-info { display: flex; justify-content: space-between; - margin-bottom: 5px; - font-size: 0.9em; + align-items: baseline; /* Alinea la base del texto */ + margin-bottom: 0.3rem; /* 5px */ } .ticker-party .party-name { @@ -64,17 +96,22 @@ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - padding-right: 10px; + padding-right: 0.6rem; /* 10px */ + /* El tamaño del nombre del partido es 0.9 veces el tamaño base */ + font-size: 0.9rem; + color: #343a40; } .ticker-party .party-percent { font-weight: 700; + font-size: 0.95rem; /* Un poco más grande para destacar */ + flex-shrink: 0; /* Evita que el porcentaje se comprima */ } .party-bar-background { background-color: #e9ecef; border-radius: 4px; - height: 10px; + height: 8px; /* Un poco más delgada */ overflow: hidden; } @@ -84,62 +121,39 @@ transition: width 0.5s ease-in-out; } -.ticker-results { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); - gap: 20px; -} -.ticker-party { - display: flex; - align-items: center; - gap: 10px; -} -.party-logo { - flex-shrink: 0; - width: 75px; - height: 75px; -} -.party-logo img { - width: 100%; - height: 100%; - object-fit: cover; - border-radius: 4px; - border: 1px solid #ddd; -} -.party-details { - flex-grow: 1; - min-width: 0; +.party-candidate-name { + font-size: 0.8rem; /* 12.8px / 16px */ + color: #555; + margin-top: 0.3rem; /* 4px */ + font-weight: 400; /* Ligeramente menos pesado */ + text-transform: uppercase; + letter-spacing: 0.5px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } -/* --- ESTILOS PARA RESPONSIVIDAD MÓVIL --- */ + +/* --- Media Query para Móviles --- */ @media (max-width: 600px) { .ticker-header { flex-direction: column; - /* Centra los elementos hijos horizontalmente */ align-items: center; - gap: 10px; + gap: 0.8rem; } .ticker-header h3 { - font-size: 1.1em; - padding-right: 0; /* Quitamos el padding en móvil */ + font-size: 1.1rem; + padding-right: 0; + } + + .ticker-results { + /* En móvil, forzamos una sola columna */ + grid-template-columns: 1fr; } - /* Esta regla asegura que el dropdown siga ocupando todo el ancho */ - .ticker-header > div { - width: 100%; + .ticker-party .party-name, + .party-candidate-name { + white-space: normal; /* Permitimos que el texto se divida en varias líneas */ } - - .ticker-party .party-name { - white-space: normal; - } -} - -.party-candidate-name { - font-size: 0.8rem; - color: #555; - margin-top: 4px; /* Espacio entre la barra y el nombre */ - font-weight: 500; - text-transform: uppercase; - letter-spacing: 0.5px; } \ No newline at end of file