Primera versión del plugin

This commit is contained in:
2025-12-14 23:23:56 -05:00
commit d215f498b9
37 changed files with 670696 additions and 0 deletions

495
assets/styles.css Normal file
View File

@@ -0,0 +1,495 @@
/* ============================================
* FontAwesome Pro - Estilos Base para Logseq
* Versión: 2.0.0
* Generado automáticamente
= *=========================================== */
/* Variables CSS para temas */
:root {
--fa-primary-color: var(--ls-link-text-color, #0451a5);
--fa-secondary-color: var(--ls-secondary-text-color, #666666);
--fa-border-radius: 8px;
--fa-transition-speed: 0.2s;
/* Colores específicos para estilos FontAwesome */
--fa-solid-color: #000000;
--fa-regular-color: #666666;
--fa-light-color: #999999;
--fa-thin-color: #cccccc;
--fa-duotone-primary: #8b5cf6;
--fa-duotone-secondary: #ec4899;
--fa-sharp-solid-color: #7c3aed;
--fa-sharp-regular-color: #8b5cf6;
--fa-sharp-light-color: #a78bfa;
--fa-sharp-thin-color: #c4b5fd;
--fa-brands-color: #1877f2;
}
/* Tema oscuro */
@media (prefers-color-scheme: dark) {
:root {
--fa-solid-color: #ffffff;
--fa-regular-color: #cccccc;
--fa-light-color: #aaaaaa;
--fa-thin-color: #888888;
--fa-duotone-primary: #a78bfa;
--fa-duotone-secondary: #f472b6;
--fa-sharp-solid-color: #a78bfa;
--fa-sharp-regular-color: #c4b5fd;
--fa-sharp-light-color: #ddd6fe;
--fa-sharp-thin-color: #ede9fe;
}
}
/* Clases utilitarias para íconos */
.fa-icon-xs { font-size: 0.75em !important; }
.fa-icon-sm { font-size: 0.875em !important; }
.fa-icon-md { font-size: 1em !important; }
.fa-icon-lg { font-size: 1.33em !important; }
.fa-icon-xl { font-size: 1.75em !important; }
.fa-icon-2x { font-size: 2em !important; }
.fa-icon-3x { font-size: 3em !important; }
.fa-icon-4x { font-size: 4em !important; }
.fa-icon-5x { font-size: 5em !important; }
/* Efectos hover para tarjetas de íconos */
.icon-card:hover .fa-icon {
transform: scale(1.1);
transition: transform var(--fa-transition-speed) ease;
}
/* Estilos para el buscador */
.fa-search-highlight {
background-color: rgba(var(--ls-link-text-color-rgb, 5, 81, 165), 0.1);
border-radius: 2px;
padding: 0 2px;
}
/* Indicadores de estilo */
.style-indicator {
width: 8px;
height: 8px;
border-radius: 50%;
display: inline-block;
margin-right: 4px;
vertical-align: middle;
}
.style-indicator.solid { background-color: var(--fa-solid-color); }
.style-indicator.regular { background-color: var(--fa-regular-color); }
.style-indicator.light { background-color: var(--fa-light-color); }
.style-indicator.thin { background-color: var(--fa-thin-color); }
.style-indicator.duotone {
background: linear-gradient(45deg, var(--fa-duotone-primary), var(--fa-duotone-secondary));
}
.style-indicator.sharp-solid { background-color: var(--fa-sharp-solid-color); }
.style-indicator.sharp-regular { background-color: var(--fa-sharp-regular-color); }
.style-indicator.sharp-light { background-color: var(--fa-sharp-light-color); }
.style-indicator.sharp-thin { background-color: var(--fa-sharp-thin-color); }
.style-indicator.sharp-duotone {
background: linear-gradient(45deg, var(--fa-sharp-solid-color), var(--fa-duotone-secondary));
}
.style-indicator.brands { background-color: var(--fa-brands-color); }
/* Badges para tarjetas */
.fa-badge {
position: absolute;
top: 6px;
right: 6px;
width: 18px;
height: 18px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
font-weight: bold;
}
.fa-badge.favorite {
background-color: #ef4444;
color: white;
}
.fa-badge.recent {
background-color: #f59e0b;
color: white;
}
.fa-badge.pro {
background-color: #8b5cf6;
color: white;
font-size: 9px;
}
/* Estilos para categorías */
.category-progress {
height: 2px;
background: var(--ls-border-color);
border-radius: 1px;
margin-top: 4px;
overflow: hidden;
}
.category-progress-fill {
height: 100%;
background: var(--ls-link-text-color);
border-radius: 1px;
transition: width 0.3s ease;
}
/* Selectores de color */
.color-swatch {
width: 24px;
height: 24px;
border-radius: 50%;
border: 2px solid var(--ls-border-color);
cursor: pointer;
transition: all var(--fa-transition-speed);
display: inline-block;
margin: 2px;
}
.color-swatch:hover {
transform: scale(1.1);
border-color: var(--ls-link-text-color);
}
.color-swatch.active {
border-color: var(--ls-primary-text-color);
box-shadow: 0 0 0 2px var(--ls-link-text-color);
}
/* Previsualización de tamaño */
.size-preview {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border: 1px solid var(--ls-border-color);
border-radius: var(--fa-border-radius);
background: var(--ls-secondary-background-color);
margin: 2px;
cursor: pointer;
transition: all var(--fa-transition-speed);
}
.size-preview:hover {
border-color: var(--ls-link-text-color);
background: var(--ls-tertiary-background-color);
}
.size-preview.active {
border-color: var(--ls-link-text-color);
background: var(--ls-link-text-color);
color: white;
}
/* Animaciones de carga */
.fa-loading {
display: inline-block;
width: 20px;
height: 20px;
border: 2px solid var(--ls-border-color);
border-radius: 50%;
border-top-color: var(--ls-link-text-color);
animation: fa-spin 1s linear infinite;
}
@keyframes fa-spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* Notificaciones */
.fa-notification {
position: fixed;
bottom: 20px;
right: 20px;
padding: 12px 16px;
background: var(--ls-success-color);
color: white;
border-radius: 6px;
font-size: 13px;
display: flex;
align-items: center;
gap: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
z-index: 1000;
animation: fa-slide-in 0.3s ease;
}
@keyframes fa-slide-in {
from {
transform: translateX(100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
/* Tooltips */
.fa-tooltip {
position: relative;
display: inline-block;
}
.fa-tooltip .fa-tooltip-text {
visibility: hidden;
width: 200px;
background-color: var(--ls-primary-background-color);
color: var(--ls-primary-text-color);
text-align: center;
border-radius: 6px;
padding: 8px;
border: 1px solid var(--ls-border-color);
position: absolute;
z-index: 1;
bottom: 125%;
left: 50%;
margin-left: -100px;
opacity: 0;
transition: opacity 0.3s;
font-size: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.fa-tooltip:hover .fa-tooltip-text {
visibility: visible;
opacity: 1;
}
/* Estados de filtro */
.filter-active {
background: var(--ls-link-text-color) !important;
color: white !important;
border-color: var(--ls-link-text-color) !important;
}
.filter-disabled {
opacity: 0.5;
cursor: not-allowed !important;
}
/* Separadores */
.fa-separator {
height: 1px;
background: var(--ls-border-color);
margin: 12px 0;
width: 100%;
}
/* Estilos para estadísticas */
.fa-stats {
display: flex;
justify-content: space-between;
font-size: 11px;
color: var(--ls-secondary-text-color);
margin-top: 8px;
}
.fa-stat-item {
display: flex;
align-items: center;
gap: 4px;
}
/* Estilos para preview en tiempo real */
.fa-preview-container {
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
background: var(--ls-secondary-background-color);
border-radius: var(--fa-border-radius);
min-height: 100px;
margin: 12px 0;
}
.fa-preview-icon {
transition: all 0.3s ease;
display: block;
}
/* Estilos para código */
.fa-code-block {
background: var(--ls-tertiary-background-color);
padding: 12px;
border-radius: var(--fa-border-radius);
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
font-size: 12px;
overflow-x: auto;
margin: 8px 0;
border: 1px solid var(--ls-border-color);
}
.fa-code-block pre {
margin: 0;
white-space: pre-wrap;
word-break: break-all;
}
/* Botones de acción */
.fa-action-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 8px 16px;
border: none;
border-radius: 6px;
background: var(--ls-link-text-color);
color: white;
cursor: pointer;
font-size: 13px;
font-weight: 500;
transition: all var(--fa-transition-speed);
}
.fa-action-btn:hover {
opacity: 0.9;
transform: translateY(-1px);
}
.fa-action-btn.secondary {
background: var(--ls-secondary-background-color);
color: var(--ls-primary-text-color);
border: 1px solid var(--ls-border-color);
}
.fa-action-btn.success {
background: var(--ls-success-color);
}
.fa-action-btn.danger {
background: var(--ls-error-color);
}
/* Responsive */
@media (max-width: 768px) {
.fa-responsive-hide {
display: none !important;
}
.fa-responsive-stack {
flex-direction: column !important;
}
.fa-responsive-grid {
grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)) !important;
}
}
/* Utilidades de espaciado */
.fa-mt-1 { margin-top: 4px; }
.fa-mt-2 { margin-top: 8px; }
.fa-mt-3 { margin-top: 12px; }
.fa-mt-4 { margin-top: 16px; }
.fa-mb-1 { margin-bottom: 4px; }
.fa-mb-2 { margin-bottom: 8px; }
.fa-mb-3 { margin-bottom: 12px; }
.fa-mb-4 { margin-bottom: 16px; }
.fa-ml-1 { margin-left: 4px; }
.fa-ml-2 { margin-left: 8px; }
.fa-ml-3 { margin-left: 12px; }
.fa-ml-4 { margin-left: 16px; }
.fa-mr-1 { margin-right: 4px; }
.fa-mr-2 { margin-right: 8px; }
.fa-mr-3 { margin-right: 12px; }
.fa-mr-4 { margin-right: 16px; }
/* Utilidades de texto */
.fa-text-xs { font-size: 11px !important; }
.fa-text-sm { font-size: 12px !important; }
.fa-text-md { font-size: 13px !important; }
.fa-text-lg { font-size: 14px !important; }
.fa-text-xl { font-size: 16px !important; }
.fa-text-muted { color: var(--ls-secondary-text-color) !important; }
.fa-text-primary { color: var(--ls-link-text-color) !important; }
.fa-text-success { color: var(--ls-success-color) !important; }
.fa-text-danger { color: var(--ls-error-color) !important; }
.fa-text-warning { color: var(--ls-warning-color) !important; }
/* Utilidades de fondo */
.fa-bg-primary { background: var(--ls-link-text-color) !important; }
.fa-bg-secondary { background: var(--ls-secondary-background-color) !important; }
.fa-bg-tertiary { background: var(--ls-tertiary-background-color) !important; }
/* Utilidades de borde */
.fa-border { border: 1px solid var(--ls-border-color) !important; }
.fa-border-top { border-top: 1px solid var(--ls-border-color) !important; }
.fa-border-bottom { border-bottom: 1px solid var(--ls-border-color) !important; }
.fa-border-left { border-left: 1px solid var(--ls-border-color) !important; }
.fa-border-right { border-right: 1px solid var(--ls-border-color) !important; }
/* Utilidades de display */
.fa-d-block { display: block !important; }
.fa-d-inline { display: inline !important; }
.fa-d-inline-block { display: inline-block !important; }
.fa-d-flex { display: flex !important; }
.fa-d-none { display: none !important; }
/* Utilidades de flexbox */
.fa-flex-row { flex-direction: row !important; }
.fa-flex-column { flex-direction: column !important; }
.fa-align-items-center { align-items: center !important; }
.fa-justify-content-center { justify-content: center !important; }
.fa-justify-content-between { justify-content: space-between !important; }
.fa-flex-wrap { flex-wrap: wrap !important; }
.fa-gap-1 { gap: 4px !important; }
.fa-gap-2 { gap: 8px !important; }
.fa-gap-3 { gap: 12px !important; }
.fa-gap-4 { gap: 16px !important; }
/* Utilidades de grid */
.fa-grid { display: grid !important; }
.fa-grid-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
.fa-grid-cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
.fa-grid-cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
.fa-grid-cols-auto { grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)) !important; }
/* Utilidades de posición */
.fa-position-relative { position: relative !important; }
.fa-position-absolute { position: absolute !important; }
.fa-position-fixed { position: fixed !important; }
.fa-position-sticky { position: sticky !important; }
/* Utilidades de overflow */
.fa-overflow-auto { overflow: auto !important; }
.fa-overflow-hidden { overflow: hidden !important; }
.fa-overflow-scroll { overflow: scroll !important; }
/* Utilidades de cursor */
.fa-cursor-pointer { cursor: pointer !important; }
.fa-cursor-default { cursor: default !important; }
.fa-cursor-not-allowed { cursor: not-allowed !important; }
/* Utilidades de transición */
.fa-transition-all { transition: all var(--fa-transition-speed) ease !important; }
.fa-transition-transform { transition: transform var(--fa-transition-speed) ease !important; }
.fa-transition-opacity { transition: opacity var(--fa-transition-speed) ease !important; }
/* Utilidades de transform */
.fa-transform-scale-1 { transform: scale(1) !important; }
.fa-transform-scale-1-1 { transform: scale(1.1) !important; }
.fa-transform-rotate-0 { transform: rotate(0deg) !important; }
.fa-transform-rotate-90 { transform: rotate(90deg) !important; }
.fa-transform-rotate-180 { transform: rotate(180deg) !important; }
.fa-transform-rotate-270 { transform: rotate(270deg) !important; }
/* Utilidades de animación */
.fa-animation-spin { animation: fa-spin 2s linear infinite !important; }
.fa-animation-pulse { animation: fa-spin 1s steps(8) infinite !important; }
.fa-animation-bounce { animation: fa-bounce 1s ease infinite !important; }
@keyframes fa-bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-5px); }
}