Implementación completa del componente Top Bar con 15 campos configurables desde el admin panel, siguiendo el algoritmo universal v2.0. ## Cambios Realizados ### Backend (PHP) - Agregados defaults del Top Bar a class-settings-manager.php - Implementada validación completa en class-validator.php (15 campos) - Implementada sanitización con sanitize_text_field, esc_url_raw y sanitize_hex_color - Modificado header.php con código 100% configurable usando wp_parse_args() ### Frontend (Admin Panel) - Creado tab HTML completo con 3 secciones: Activación, Contenido y Estilos - Implementado JavaScript para renderizado y recolección de datos - 15 campos configurables: enabled, visibility, icon, content, link, custom styles ### Infraestructura - Creado admin-panel/init.php para carga del módulo - Creada class-admin-menu.php con enqueue de Bootstrap 5 y assets - Creada estructura base CSS y JavaScript del admin - Ya cargado en functions.php línea 276 ## Características - Responsive: Control independiente mobile/desktop - Estilos personalizables: 4 colores + tamaño de fuente - Validación robusta: Límites de caracteres, URLs, colores hex - Defaults inteligentes: Valores seguros si no hay configuración 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
170 lines
2.8 KiB
CSS
170 lines
2.8 KiB
CSS
/**
|
|
* Admin Panel Styles
|
|
*
|
|
* Estilos base para el panel de administración
|
|
*
|
|
* @package Apus_Theme
|
|
* @since 2.0.0
|
|
*/
|
|
|
|
/* ========================================
|
|
Container
|
|
======================================== */
|
|
|
|
.apus-admin-panel {
|
|
max-width: 1400px;
|
|
margin: 20px auto;
|
|
}
|
|
|
|
/* ========================================
|
|
Header
|
|
======================================== */
|
|
|
|
.apus-admin-panel h1 {
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.apus-admin-panel .description {
|
|
color: #666;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
/* ========================================
|
|
Tabs
|
|
======================================== */
|
|
|
|
.nav-tabs {
|
|
border-bottom: 2px solid #dee2e6;
|
|
}
|
|
|
|
.nav-tabs .nav-link {
|
|
color: #666;
|
|
border: none;
|
|
border-bottom: 2px solid transparent;
|
|
margin-bottom: -2px;
|
|
}
|
|
|
|
.nav-tabs .nav-link:hover {
|
|
color: #0073aa;
|
|
border-bottom-color: #0073aa;
|
|
}
|
|
|
|
.nav-tabs .nav-link.active {
|
|
color: #0073aa;
|
|
font-weight: 600;
|
|
border-bottom-color: #0073aa;
|
|
background-color: transparent;
|
|
}
|
|
|
|
/* ========================================
|
|
Tab Content
|
|
======================================== */
|
|
|
|
.tab-content {
|
|
background: #fff;
|
|
padding: 20px;
|
|
border: 1px solid #ddd;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.tab-pane h3 {
|
|
margin-top: 0;
|
|
margin-bottom: 15px;
|
|
font-size: 18px;
|
|
}
|
|
|
|
.tab-pane h4 {
|
|
margin-top: 25px;
|
|
margin-bottom: 10px;
|
|
font-size: 16px;
|
|
color: #333;
|
|
}
|
|
|
|
/* ========================================
|
|
Form Sections
|
|
======================================== */
|
|
|
|
.form-section {
|
|
padding-bottom: 20px;
|
|
border-bottom: 1px solid #eee;
|
|
}
|
|
|
|
.form-section:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.form-group {
|
|
margin-bottom: 15px;
|
|
}
|
|
|
|
.form-group label {
|
|
display: block;
|
|
font-weight: 600;
|
|
margin-bottom: 5px;
|
|
color: #333;
|
|
}
|
|
|
|
.form-group input[type="text"],
|
|
.form-group input[type="url"],
|
|
.form-group input[type="email"],
|
|
.form-group input[type="number"],
|
|
.form-group select,
|
|
.form-group textarea {
|
|
max-width: 600px;
|
|
}
|
|
|
|
.form-group .form-text {
|
|
margin-top: 5px;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.form-group .form-text code {
|
|
background: #f5f5f5;
|
|
padding: 2px 5px;
|
|
border-radius: 3px;
|
|
font-size: 12px;
|
|
}
|
|
|
|
/* ========================================
|
|
Action Buttons
|
|
======================================== */
|
|
|
|
.admin-actions {
|
|
padding: 20px;
|
|
background: #f9f9f9;
|
|
border-top: 1px solid #ddd;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.admin-actions .button-primary {
|
|
font-size: 14px;
|
|
padding: 8px 20px;
|
|
height: auto;
|
|
}
|
|
|
|
.admin-actions .button-primary i {
|
|
vertical-align: middle;
|
|
}
|
|
|
|
/* ========================================
|
|
Responsive
|
|
======================================== */
|
|
|
|
@media (max-width: 782px) {
|
|
.apus-admin-panel {
|
|
margin: 10px;
|
|
}
|
|
|
|
.tab-content {
|
|
padding: 15px;
|
|
}
|
|
|
|
.form-group input[type="text"],
|
|
.form-group input[type="url"],
|
|
.form-group input[type="email"],
|
|
.form-group select,
|
|
.form-group textarea {
|
|
max-width: 100%;
|
|
}
|
|
}
|