- {symbols.length === 0
+ {active.length === 0
? 'Noch keine Symbole. Füge Symbole zu deinen Träumen hinzu, um sie hier zu sehen.'
: 'Keine Treffer'}
- {#each filtered as sym (sym.id)}
+
+ {#each sorted as sym (sym.id)}
+ {@const lastDate = lastUsedMap.get(sym.name)}
+ {@const noMeaning = !sym.meaning?.trim()}
{/each}
@@ -70,11 +150,17 @@
.symbols-view {
display: flex;
flex-direction: column;
- gap: 0.75rem;
+ gap: 0.625rem;
flex: 1;
min-height: 0;
}
+ .toolbar {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+ }
+
.search-input {
padding: 0.3rem 0.5rem;
border-radius: 0.375rem;
@@ -92,14 +178,46 @@
color: #f3f4f6;
}
+ .sort-tabs {
+ display: flex;
+ gap: 0.25rem;
+ flex-wrap: wrap;
+ }
+ .sort-tab {
+ padding: 0.1875rem 0.5rem;
+ border-radius: 9999px;
+ border: 1px solid rgba(0, 0, 0, 0.08);
+ background: transparent;
+ font-size: 0.625rem;
+ color: #9ca3af;
+ cursor: pointer;
+ transition: all 0.15s;
+ }
+ .sort-tab:hover {
+ color: #6366f1;
+ }
+ .sort-tab.active {
+ background: #6366f1;
+ color: white;
+ border-color: #6366f1;
+ }
+ :global(.dark) .sort-tab {
+ border-color: rgba(255, 255, 255, 0.08);
+ }
+
.cloud {
display: flex;
flex-wrap: wrap;
align-items: baseline;
- gap: 0.5rem 0.75rem;
+ gap: 0.5rem 0.625rem;
padding: 0.5rem 0.25rem;
overflow-y: auto;
}
+ .cloud.list-mode {
+ flex-direction: column;
+ align-items: stretch;
+ gap: 0.1875rem;
+ }
.sym-chip {
display: inline-flex;
@@ -114,11 +232,22 @@
transition: all 0.15s;
font-weight: 500;
line-height: 1.4;
+ text-align: left;
+ }
+ .cloud.list-mode .sym-chip {
+ border-radius: 0.375rem;
+ justify-content: flex-start;
}
.sym-chip:hover {
- background: color-mix(in srgb, var(--sym-color) 10%, transparent);
+ background: color-mix(in srgb, var(--sym-color) 12%, transparent);
border-color: var(--sym-color);
}
+ .sym-chip.no-meaning {
+ opacity: 0.7;
+ }
+ .sym-chip.no-meaning:hover {
+ opacity: 1;
+ }
:global(.dark) .sym-chip {
border-color: rgba(255, 255, 255, 0.08);
}
@@ -141,6 +270,32 @@
font-weight: 400;
}
+ .sym-meta {
+ font-size: 0.625rem;
+ color: #c0bfba;
+ font-weight: 400;
+ }
+ :global(.dark) .sym-meta {
+ color: #4b5563;
+ }
+
+ .sym-badge {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 13px;
+ height: 13px;
+ border-radius: 9999px;
+ background: rgba(0, 0, 0, 0.06);
+ color: #9ca3af;
+ font-size: 0.5625rem;
+ font-weight: 700;
+ margin-left: 0.125rem;
+ }
+ :global(.dark) .sym-badge {
+ background: rgba(255, 255, 255, 0.08);
+ }
+
.empty {
padding: 2rem 0;
text-align: center;