- {error &&
{error}
}
+
+ {/* Header */}
+
+
+
+
+
+ {t('feed.title', 'News Feed')}
+
+
+ {filtered.length}
+
+
+ {loading && (
+
+
+ {t('common.loading')}
+
+ )}
+
+
- {filtered.slice(0, visibleCount).map((p) => (
-
- ))}
+ {/* Error */}
+
+ {error && (
+
+
+ {error}
+
+ )}
+
- {!loading && filtered.length === 0 &&
No posts found
}
- {filtered.length > visibleCount ?
: null}
+ {/* Posts */}
+
+
+ {filtered.slice(0, visibleCount).map((p) => (
+
+
+
+ ))}
+
+
+
+ {/* Empty state */}
+
+ {!loading && filtered.length === 0 && (
+
+
+ {t('feed.noPosts', 'No posts found')}
+
+ )}
+
+
+ {/* Load more sentinel */}
+ {filtered.length > visibleCount && (
+
+
+
+ {t('feed.loadingMore', 'Loading more...')}
+
+
+ )}
);
}
diff --git a/src/styles/posts.css b/src/styles/posts.css
index 41c5f6c..0cb5e33 100644
--- a/src/styles/posts.css
+++ b/src/styles/posts.css
@@ -106,9 +106,9 @@
font-size: 0.9rem;
}
-.sociowall-filter-btn.filter-all i { color: #a78bfa; }
+.sociowall-filter-btn.filter-all i { color: #60a5fa; }
.sociowall-filter-btn.filter-news i { color: #60a5fa; }
-.sociowall-filter-btn.filter-video i { color: #f472b6; }
+.sociowall-filter-btn.filter-video i { color: #38bdf8; }
.sociowall-filter-btn.filter-image i { color: #34d399; }
.sociowall-filter-btn.filter-live i { color: #f87171; }
.sociowall-filter-btn.filter-event i { color: #fbbf24; }
@@ -125,7 +125,7 @@
margin-bottom: 0.25rem;
/* Gradient text */
- background: linear-gradient(135deg, #60a5fa 0%, #a78bfa 50%, #f472b6 100%);
+ background: linear-gradient(135deg, #60a5fa 0%, #60a5fa 50%, #38bdf8 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
@@ -133,7 +133,7 @@
/* Animated underline */
border-bottom: 1px solid transparent;
background-image:
- linear-gradient(135deg, #60a5fa 0%, #a78bfa 50%, #f472b6 100%),
+ linear-gradient(135deg, #60a5fa 0%, #60a5fa 50%, #38bdf8 100%),
linear-gradient(90deg, rgba(96, 165, 250, 0.3), rgba(167, 139, 250, 0.3), rgba(244, 114, 182, 0.3));
background-size: 100% 100%, 100% 1px;
background-position: 0 0, 0 100%;
@@ -229,7 +229,7 @@
overflow: hidden;
/* Gradient border ring */
- background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 50%, #ec4899 100%);
+ background: linear-gradient(135deg, #3b82f6 0%, #3b82f6 50%, #06b6d4 100%);
padding: 2px;
/* Inner container for image */
@@ -397,7 +397,7 @@
.sw-wall-image-fallback i {
font-size: 52px;
opacity: 0.6;
- background: linear-gradient(135deg, #60a5fa, #a78bfa);
+ background: linear-gradient(135deg, #60a5fa, #60a5fa);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
@@ -540,7 +540,7 @@
width: 4px;
height: 4px;
border-radius: 50%;
- background: linear-gradient(135deg, #60a5fa, #a78bfa);
+ background: linear-gradient(135deg, #60a5fa, #60a5fa);
}
/* ─────────────────────────────────────────────────────────────────────────────
@@ -854,7 +854,7 @@
text-transform: uppercase;
margin-bottom: 0.5rem;
- background: linear-gradient(135deg, #60a5fa, #a78bfa);
+ background: linear-gradient(135deg, #60a5fa, #60a5fa);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
@@ -983,7 +983,7 @@ body[data-theme="light"] .sociowall-panel {
}
body[data-theme="light"] .sociowall-header {
- background: linear-gradient(135deg, #3b82f6, #8b5cf6, #ec4899);
+ background: linear-gradient(135deg, #3b82f6, #3b82f6, #06b6d4);
-webkit-background-clip: text;
background-clip: text;
}
diff --git a/src/styles/tailwind.css b/src/styles/tailwind.css
index 262964c..63daf4a 100644
--- a/src/styles/tailwind.css
+++ b/src/styles/tailwind.css
@@ -5,13 +5,13 @@
═══════════════════════════════════════════════════════════════════════════ */
@theme {
- /* Primary accent */
+ /* Primary accent - Clean blue */
--color-accent: #60a5fa;
--color-accent-light: #93c5fd;
--color-accent-dark: #3b82f6;
- --color-accent-glow: rgba(96, 165, 250, 0.3);
+ --color-accent-glow: rgba(96, 165, 250, 0.4);
- /* Surface colors */
+ /* Surface colors - Dark slate */
--color-surface-50: #f8fafc;
--color-surface-100: #f1f5f9;
--color-surface-200: #e2e8f0;
@@ -22,33 +22,33 @@
--color-surface-700: #334155;
--color-surface-800: #1e293b;
--color-surface-900: #0f172a;
- --color-surface-950: #050816;
+ --color-surface-950: #020617;
/* Glass backgrounds */
--color-glass-light: rgba(248, 250, 252, 0.98);
- --color-glass-dark: rgba(18, 30, 52, 0.97);
- --color-glass-blue: rgba(7, 18, 37, 0.98);
- --color-glass-card: rgba(40, 48, 70, 0.9);
- --color-glass-card-hover: rgba(50, 58, 80, 0.95);
+ --color-glass-dark: rgba(15, 23, 42, 0.97);
+ --color-glass-blue: rgba(15, 23, 42, 0.98);
+ --color-glass-card: rgba(30, 41, 59, 0.9);
+ --color-glass-card-hover: rgba(51, 65, 85, 0.95);
/* Category colors */
--color-category-news: #60a5fa;
--color-category-breaking: #ef4444;
- --color-category-market: #fbbf24;
- --color-category-friends: #22c55e;
- --color-category-events: #a78bfa;
- --color-category-finance: #14b8a6;
- --color-category-live: #f87171;
- --color-category-video: #f472b6;
+ --color-category-market: #f59e0b;
+ --color-category-friends: #10b981;
+ --color-category-events: #60a5fa;
+ --color-category-finance: #06b6d4;
+ --color-category-live: #ef4444;
+ --color-category-video: #38bdf8;
--color-category-image: #34d399;
- /* Shadows */
- --shadow-glass: 0 4px 32px rgba(0, 0, 0, 0.4), 0 0 30px rgba(59, 130, 246, 0.05);
- --shadow-glass-hover: 0 8px 48px rgba(0, 0, 0, 0.5), 0 0 40px rgba(96, 165, 250, 0.1);
+ /* Shadows - Blue glow */
+ --shadow-glass: 0 4px 32px rgba(0, 0, 0, 0.4), 0 0 30px rgba(96, 165, 250, 0.08);
+ --shadow-glass-hover: 0 8px 48px rgba(0, 0, 0, 0.5), 0 0 40px rgba(96, 165, 250, 0.15);
--shadow-card: 0 2px 8px rgba(0, 0, 0, 0.2), 0 8px 24px rgba(0, 0, 0, 0.15);
- --shadow-card-hover: 0 8px 32px rgba(0, 0, 0, 0.3), 0 0 32px rgba(96, 165, 250, 0.08);
- --shadow-glow: 0 0 20px rgba(96, 165, 250, 0.4);
- --shadow-glow-sm: 0 0 10px rgba(96, 165, 250, 0.3);
+ --shadow-card-hover: 0 8px 32px rgba(0, 0, 0, 0.3), 0 0 32px rgba(96, 165, 250, 0.12);
+ --shadow-glow: 0 0 20px rgba(96, 165, 250, 0.5);
+ --shadow-glow-sm: 0 0 10px rgba(96, 165, 250, 0.4);
/* Animations */
--animate-shimmer: shimmer 2s linear infinite;
@@ -147,7 +147,7 @@ html {
/* Gradient Text */
.gradient-text {
- background: linear-gradient(to right, var(--color-accent), #a78bfa, #f472b6);
+ background: linear-gradient(135deg, #60a5fa, #38bdf8, #06b6d4);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
@@ -182,7 +182,7 @@ html {
}
.btn-glass.active {
- background: linear-gradient(135deg, rgba(59, 130, 246, 0.25), rgba(139, 92, 246, 0.2));
+ background: rgba(96, 165, 250, 0.2);
border-color: rgba(96, 165, 250, 0.4);
color: var(--color-accent);
box-shadow: var(--shadow-glow-sm);
@@ -193,7 +193,7 @@ html {
position: relative;
border-radius: 9999px;
padding: 2px;
- background: linear-gradient(135deg, var(--color-accent-dark), #8b5cf6, #ec4899);
+ background: linear-gradient(135deg, #60a5fa, #38bdf8, #06b6d4);
box-shadow: var(--shadow-glow-sm);
}
@@ -216,15 +216,15 @@ html {
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.05em;
- background: linear-gradient(135deg, rgba(59, 130, 246, 0.2), rgba(139, 92, 246, 0.2));
+ background: rgba(96, 165, 250, 0.15);
color: var(--color-accent-light);
- border: 1px solid rgba(96, 165, 250, 0.2);
+ border: 1px solid rgba(96, 165, 250, 0.25);
box-shadow: var(--shadow-glow-sm);
}
.badge-news {
- background: linear-gradient(135deg, rgba(96, 165, 250, 0.2), rgba(59, 130, 246, 0.2));
- color: #60a5fa;
+ background: rgba(96, 165, 250, 0.15);
+ color: #93c5fd;
border-color: rgba(96, 165, 250, 0.3);
}
@@ -290,38 +290,38 @@ html {
/* Theme variables - Blue (default) */
:root,
body[data-theme="blue"] {
- --theme-bg-primary: #050816;
- --theme-bg-secondary: #0a1628;
- --theme-bg-tertiary: #0f1d32;
- --theme-bg-elevated: #142238;
- --theme-text-primary: #f1f5f9;
- --theme-text-secondary: #94a3b8;
+ --theme-bg-primary: #020617;
+ --theme-bg-secondary: #0f172a;
+ --theme-bg-tertiary: #1e293b;
+ --theme-bg-elevated: #334155;
+ --theme-text-primary: #f8fafc;
+ --theme-text-secondary: #cbd5e1;
--theme-text-muted: #64748b;
- --theme-border: rgba(59, 130, 246, 0.2);
+ --theme-border: rgba(96, 165, 250, 0.2);
--theme-border-hover: rgba(96, 165, 250, 0.4);
--theme-accent: #60a5fa;
- --theme-accent-soft: rgba(96, 165, 250, 0.15);
- --theme-gradient-start: #0a1628;
- --theme-gradient-end: #050816;
- --theme-glow: rgba(96, 165, 250, 0.3);
+ --theme-accent-soft: rgba(96, 165, 250, 0.2);
+ --theme-gradient-start: #0f172a;
+ --theme-gradient-end: #020617;
+ --theme-glow: rgba(96, 165, 250, 0.4);
}
/* Theme variables - Dark */
body[data-theme="dark"] {
- --theme-bg-primary: #09090b;
- --theme-bg-secondary: #18181b;
- --theme-bg-tertiary: #27272a;
- --theme-bg-elevated: #3f3f46;
- --theme-text-primary: #fafafa;
- --theme-text-secondary: #a1a1aa;
- --theme-text-muted: #71717a;
+ --theme-bg-primary: #0a0a0f;
+ --theme-bg-secondary: #141420;
+ --theme-bg-tertiary: #1e1e2e;
+ --theme-bg-elevated: #2a2a3d;
+ --theme-text-primary: #f5f5f7;
+ --theme-text-secondary: #a0a0b0;
+ --theme-text-muted: #666680;
--theme-border: rgba(255, 255, 255, 0.1);
- --theme-border-hover: rgba(255, 255, 255, 0.2);
- --theme-accent: #a78bfa;
- --theme-accent-soft: rgba(167, 139, 250, 0.15);
- --theme-gradient-start: #18181b;
- --theme-gradient-end: #09090b;
- --theme-glow: rgba(167, 139, 250, 0.3);
+ --theme-border-hover: rgba(96, 165, 250, 0.3);
+ --theme-accent: #60a5fa;
+ --theme-accent-soft: rgba(96, 165, 250, 0.15);
+ --theme-gradient-start: #141420;
+ --theme-gradient-end: #0a0a0f;
+ --theme-glow: rgba(96, 165, 250, 0.3);
}
/* Theme variables - Light */
@@ -333,13 +333,13 @@ body[data-theme="light"] {
--theme-text-primary: #0f172a;
--theme-text-secondary: #475569;
--theme-text-muted: #94a3b8;
- --theme-border: rgba(15, 23, 42, 0.1);
- --theme-border-hover: rgba(59, 130, 246, 0.3);
+ --theme-border: rgba(96, 165, 250, 0.15);
+ --theme-border-hover: rgba(96, 165, 250, 0.3);
--theme-accent: #3b82f6;
--theme-accent-soft: rgba(59, 130, 246, 0.1);
--theme-gradient-start: #ffffff;
- --theme-gradient-end: #f1f5f9;
- --theme-glow: rgba(59, 130, 246, 0.2);
+ --theme-gradient-end: #f8fafc;
+ --theme-glow: rgba(59, 130, 246, 0.25);
}
/* ─────────────────────────────────────────────────────────────────────────────
diff --git a/src/styles/topbar.css b/src/styles/topbar.css
index 285a775..97a9511 100644
--- a/src/styles/topbar.css
+++ b/src/styles/topbar.css
@@ -153,15 +153,15 @@
/* Specific button colors */
.btn-action-install{
- background: linear-gradient(135deg, #8b5cf6, #7c3aed);
+ background: linear-gradient(135deg, #3b82f6, #2563eb);
border-color: rgba(139, 92, 246, 0.5);
color: white;
}
.btn-action-install:hover{
- background: linear-gradient(135deg, #a78bfa, #8b5cf6);
+ background: linear-gradient(135deg, #60a5fa, #3b82f6);
box-shadow: 0 4px 16px rgba(139, 92, 246, 0.6);
- border-color: #a78bfa;
+ border-color: #60a5fa;
}
.btn-action-islands{
@@ -892,17 +892,17 @@ body[data-theme="light"] .lang-option.is-active{
}
.btn-action-theme{
- background: linear-gradient(135deg, #8b5cf6, #6366f1);
+ background: linear-gradient(135deg, #3b82f6, #6366f1);
border-color: rgba(139, 92, 246, 0.5);
color: white;
}
.btn-action-theme:hover{
- background: linear-gradient(135deg, #a78bfa, #818cf8);
+ background: linear-gradient(135deg, #60a5fa, #818cf8);
}
.btn-action-theme.is-active{
- background: linear-gradient(135deg, #7c3aed, #4f46e5);
+ background: linear-gradient(135deg, #2563eb, #4f46e5);
box-shadow: 0 0 12px rgba(139, 92, 246, 0.6);
}
@@ -938,7 +938,7 @@ body[data-theme="light"] .lang-option.is-active{
.theme-option.is-active{
background: rgba(139, 92, 246, 0.28);
- color: #a78bfa;
+ color: #60a5fa;
}
body[data-theme="light"] .theme-dropdown{