smodusermc commited on
Commit
23fdfc9
·
verified ·
1 Parent(s): 07a4fc6

Update static/style.css

Browse files
Files changed (1) hide show
  1. static/style.css +271 -1
static/style.css CHANGED
@@ -113,6 +113,51 @@
113
  --shadow-xl: 0 20px 25px rgba(0,0,0,0.5);
114
  }
115
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  /* ---- Reset ---- */
117
  *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
118
 
@@ -1265,6 +1310,22 @@ img.js-zoom { cursor: zoom-in; }
1265
  .theme-preview-custom .theme-preview-message.self { background:#F9FAFB; }
1266
  .theme-preview-custom .theme-preview-message.other { background:rgba(255,255,255,0.4); }
1267
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1268
  .custom-theme-section {
1269
  margin-top:0.75rem; padding:1rem;
1270
  background:var(--bg-secondary);
@@ -1610,4 +1671,213 @@ img.js-zoom { cursor: zoom-in; }
1610
  /* Desktop hover affordance */
1611
  @media (hover: none) {
1612
  .message-actions { opacity: 1; pointer-events: auto; }
1613
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  --shadow-xl: 0 20px 25px rgba(0,0,0,0.5);
114
  }
115
 
116
+ /* ---- Midnight Theme ---- */
117
+ [data-theme="midnight"] {
118
+ --primary:#A78BFA; --primary-hover:#8B5CF6; --primary-light:#33245E; --primary-dark:#7C3AED;
119
+ --bg:#0B0B14; --bg-secondary:#171725; --bg-tertiary:#262639; --bg-elevated:#171725;
120
+ --text:#F5F3FF; --text-secondary:#C4B5FD; --text-tertiary:#8A8AA0; --text-inverse:#0B0B14;
121
+ --border:#373349; --border-light:#23202F;
122
+ --bubble-self:#8B5CF6; --bubble-self-text:#FFFFFF; --bubble-other:#262639; --bubble-other-text:#F5F3FF;
123
+ --tick-read:#DDD6FE; --header-bg:#171725; --header-border:#373349;
124
+ --input-bg:#262639; --input-border:#3F3C4A; --input-text:#F5F3FF; --input-placeholder:#A1A1AA;
125
+ --success:#34D399; --warning:#FBBF24; --error:#FB7185; --info:#60A5FA; --sidebar-bg:#12101D;
126
+ --shadow-xs:0 1px 2px rgba(0,0,0,.4); --shadow-sm:0 1px 3px rgba(0,0,0,.5);
127
+ --shadow-md:0 4px 6px rgba(0,0,0,.5); --shadow-lg:0 10px 15px rgba(0,0,0,.5);
128
+ --shadow-xl:0 20px 25px rgba(0,0,0,.5);
129
+ }
130
+
131
+ /* ---- Ocean Theme ---- */
132
+ [data-theme="ocean"] {
133
+ --primary:#2DD4BF; --primary-hover:#14B8A6; --primary-light:#0F3E3A; --primary-dark:#0F766E;
134
+ --bg:#0B1220; --bg-secondary:#102A37; --bg-tertiary:#16414C; --bg-elevated:#102A37;
135
+ --text:#ECFEFF; --text-secondary:#99D8E8; --text-tertiary:#5F8C9B; --text-inverse:#0B1220;
136
+ --border:#1E4A55; --border-light:#142E38;
137
+ --bubble-self:#0D9488; --bubble-self-text:#FFFFFF; --bubble-other:#16414C; --bubble-other-text:#ECFEFF;
138
+ --tick-read:#A7F3D0; --header-bg:#102A37; --header-border:#1E4A55;
139
+ --input-bg:#16414C; --input-border:#27616E; --input-text:#ECFEFF; --input-placeholder:#5F8C9B;
140
+ --success:#2DD4BF; --warning:#FBBF24; --error:#FB7185; --info:#38BDF8; --sidebar-bg:#0B1522;
141
+ --shadow-xs:0 1px 2px rgba(0,0,0,.4); --shadow-sm:0 1px 3px rgba(0,0,0,.5);
142
+ --shadow-md:0 4px 6px rgba(0,0,0,.5); --shadow-lg:0 10px 15px rgba(0,0,0,.5);
143
+ --shadow-xl:0 20px 25px rgba(0,0,0,.5);
144
+ }
145
+
146
+ /* ---- Sunset Theme ---- */
147
+ [data-theme="sunset"] {
148
+ --primary:#FB7185; --primary-hover:#F43F5E; --primary-light:#5F1E2E; --primary-dark:#BE123C;
149
+ --bg:#1A1412; --bg-secondary:#271D1A; --bg-tertiary:#3B2522; --bg-elevated:#271D1A;
150
+ --text:#FFF7ED; --text-secondary:#D6ACA2; --text-tertiary:#A78B7A; --text-inverse:#1A1412;
151
+ --border:#4A2E2A; --border-light:#2D201D;
152
+ --bubble-self:#F97316; --bubble-self-text:#FFFFFF; --bubble-other:#3B2522; --bubble-other-text:#FFF7ED;
153
+ --tick-read:#FED7AA; --header-bg:#271D1A; --header-border:#4A2E2A;
154
+ --input-bg:#3B2522; --input-border:#5A3A34; --input-text:#FFF7ED; --input-placeholder:#A78B7A;
155
+ --success:#34D399; --warning:#FACC15; --error:#F87171; --info:#60A5FA; --sidebar-bg:#1C1613;
156
+ --shadow-xs:0 1px 2px rgba(0,0,0,.4); --shadow-sm:0 1px 3px rgba(0,0,0,.5);
157
+ --shadow-md:0 4px 6px rgba(0,0,0,.5); --shadow-lg:0 10px 15px rgba(0,0,0,.5);
158
+ --shadow-xl:0 20px 25px rgba(0,0,0,.5);
159
+ }
160
+
161
  /* ---- Reset ---- */
162
  *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
163
 
 
1310
  .theme-preview-custom .theme-preview-message.self { background:#F9FAFB; }
1311
  .theme-preview-custom .theme-preview-message.other { background:rgba(255,255,255,0.4); }
1312
 
1313
+ /* Midnight preview */
1314
+ .theme-preview-midnight { background:#0B0B14; }
1315
+ .theme-preview-midnight .theme-preview-header { background:#171725; }
1316
+ .theme-preview-midnight .theme-preview-message.self { background:#8B5CF6; }
1317
+ .theme-preview-midnight .theme-preview-message.other { background:#262639; }
1318
+ /* Ocean preview */
1319
+ .theme-preview-ocean { background:#0B1220; }
1320
+ .theme-preview-ocean .theme-preview-header { background:#102A37; }
1321
+ .theme-preview-ocean .theme-preview-message.self { background:#0D9488; }
1322
+ .theme-preview-ocean .theme-preview-message.other { background:#16414C; }
1323
+ /* Sunset preview */
1324
+ .theme-preview-sunset { background:#1A1412; }
1325
+ .theme-preview-sunset .theme-preview-header { background:#271D1A; }
1326
+ .theme-preview-sunset .theme-preview-message.self { background:#F97316; }
1327
+ .theme-preview-sunset .theme-preview-message.other { background:#3B2522; }
1328
+
1329
  .custom-theme-section {
1330
  margin-top:0.75rem; padding:1rem;
1331
  background:var(--bg-secondary);
 
1671
  /* Desktop hover affordance */
1672
  @media (hover: none) {
1673
  .message-actions { opacity: 1; pointer-events: auto; }
1674
+ }
1675
+
1676
+ /* ============================================================
1677
+ Social feed page (Twitter/X-like)
1678
+ ============================================================ */
1679
+ #social-screen.active { display:flex; background: var(--bg); }
1680
+ .social-app {
1681
+ width:100%; height:100%;
1682
+ display:flex; flex-direction:column;
1683
+ background: var(--bg); color: var(--text);
1684
+ }
1685
+ .social-topbar {
1686
+ display:flex; align-items:center; gap:.65rem;
1687
+ padding:.55rem 1rem; min-height:60px;
1688
+ background: var(--header-bg); border-bottom:1px solid var(--header-border);
1689
+ position:relative; z-index:10;
1690
+ }
1691
+ .social-topbar-title { min-width:0; }
1692
+ .social-topbar-title strong { display:block; font-size:1.05rem; }
1693
+ .social-topbar-title span { display:block; color:var(--text-secondary); font-size:.78rem; }
1694
+ .social-topbar-search {
1695
+ flex:1; max-width:520px; margin-left:auto;
1696
+ display:flex; align-items:center; gap:.5rem;
1697
+ background:var(--input-bg); border:1px solid var(--input-border);
1698
+ border-radius:var(--radius-full); padding:.4rem .8rem;
1699
+ }
1700
+ .social-topbar-search i { color:var(--text-tertiary); }
1701
+ .social-topbar-search input {
1702
+ flex:1; min-width:0; border:none; outline:none; background:transparent;
1703
+ color:var(--input-text); font:inherit;
1704
+ }
1705
+ .social-topbar-search input::placeholder { color:var(--input-placeholder); }
1706
+ .social-body {
1707
+ flex:1; min-height:0;
1708
+ display:grid; grid-template-columns:240px minmax(0,1fr) 290px;
1709
+ max-width:1400px; width:100%; margin:0 auto;
1710
+ border-left:1px solid var(--border); border-right:1px solid var(--border);
1711
+ }
1712
+ .social-nav {
1713
+ border-right:1px solid var(--border);
1714
+ padding:1rem .8rem; display:flex; flex-direction:column; gap:.65rem;
1715
+ overflow-y:auto;
1716
+ }
1717
+ .social-nav-user { display:flex; align-items:center; gap:.65rem; padding:.35rem; }
1718
+ .social-nav-userinfo { min-width:0; display:flex; flex-direction:column; }
1719
+ .social-nav-userinfo span { font-size:.78rem; }
1720
+ .social-nav-avatar .social-avatar-initial,
1721
+ .social-nav-avatar img { width:42px; height:42px; }
1722
+ .social-nav-links { display:flex; flex-direction:column; gap:.25rem; }
1723
+ .social-nav-link {
1724
+ display:flex; align-items:center; gap:.75rem;
1725
+ padding:.65rem .8rem; border-radius:var(--radius-md);
1726
+ background:transparent; border:none; color:var(--text);
1727
+ font-weight:600; text-align:left; cursor:pointer; transition:background var(--transition-fast);
1728
+ }
1729
+ .social-nav-link:hover { background:var(--bg-tertiary); }
1730
+ .social-nav-link.active { color:var(--primary); background:var(--primary-light); }
1731
+ .social-nav-link i { width:22px; text-align:center; }
1732
+ .social-nav-link .badge { margin-left:auto; }
1733
+ .social-compose-btn { margin-top:.25rem; }
1734
+ .social-nav-footer { margin-top:auto; padding-top:1rem; border-top:1px solid var(--border-light); }
1735
+
1736
+ .social-main {
1737
+ min-width:0; min-height:0; overflow-y:auto;
1738
+ border-right:1px solid var(--border);
1739
+ }
1740
+ .social-compose {
1741
+ display:flex; gap:.75rem; padding:1rem;
1742
+ background:var(--bg-elevated); border-bottom:1px solid var(--border-light);
1743
+ }
1744
+ .social-compose .user-avatar,
1745
+ .social-post > .social-avatar,
1746
+ .social-notification > .social-avatar,
1747
+ .social-user-card .user-avatar { flex:none; display:flex; align-items:center; justify-content:center; overflow:hidden; border-radius:50%; background:var(--bg-tertiary); }
1748
+ .social-compose .user-avatar { width:42px; height:42px; }
1749
+ .social-compose .user-avatar img, .social-post > .social-avatar img, .social-notification > .social-avatar img, .social-user-card .user-avatar img { width:100%; height:100%; object-fit:cover; }
1750
+ .social-compose-main { flex:1; min-width:0; }
1751
+ .social-post-input {
1752
+ width:100%; resize:vertical; border:none; outline:none; background:transparent;
1753
+ color:var(--text); font:inherit; font-size:1.05rem; min-height:44px;
1754
+ }
1755
+ .social-post-input::placeholder { color:var(--text-tertiary); }
1756
+ .social-compose-tools { display:flex; align-items:center; gap:.5rem; margin-top:.6rem; }
1757
+ .social-compose-tools .btn-icon { display:inline-flex; }
1758
+ .social-post-count { font-size:.72rem; color:var(--text-tertiary); margin-left:auto; }
1759
+ .social-media-preview { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:.5rem; margin-top:.6rem; }
1760
+ .social-media-preview-item { position:relative; aspect-ratio:1; border-radius:var(--radius-md); overflow:hidden; background:var(--bg-tertiary); }
1761
+ .social-media-preview-item img, .social-media-preview-item video { width:100%; height:100%; object-fit:cover; }
1762
+ .social-media-preview-item button { position:absolute; top:4px; right:4px; background:rgba(0,0,0,.55); color:#fff; border-radius:50%; }
1763
+
1764
+ .social-feed { min-height:200px; padding-bottom:2rem; }
1765
+ .social-post {
1766
+ display:flex; gap:.75rem; padding:1rem;
1767
+ border-bottom:1px solid var(--border-light);
1768
+ transition:background var(--transition-fast);
1769
+ }
1770
+ .social-post:hover { background:var(--bg-secondary); }
1771
+ .social-post > .social-avatar { width:44px; height:44px; }
1772
+ .social-post-main { flex:1; min-width:0; }
1773
+ .social-repost-label { color:var(--text-secondary); font-size:.75rem; margin-bottom:.35rem; }
1774
+ .social-post-head { display:flex; align-items:baseline; gap:.35rem; min-width:0; flex-wrap:wrap; }
1775
+ .social-profile-link { color:inherit; text-decoration:none; min-width:0; display:flex; gap:.35rem; align-items:baseline; }
1776
+ .social-profile-link strong { color:var(--text); }
1777
+ .social-profile-link:hover strong { text-decoration:underline; }
1778
+ .social-username { color:var(--text-secondary); font-size:.82rem; }
1779
+ .social-dot, .social-time, .social-edited { color:var(--text-tertiary); font-size:.78rem; }
1780
+ .social-post-body { white-space:pre-wrap; overflow-wrap:anywhere; padding:.35rem 0 .15rem; }
1781
+ .social-hashtag { color:var(--primary); text-decoration:none; }
1782
+ .social-hashtag:hover, .social-mention:hover { text-decoration:underline; }
1783
+ .social-mention { color:var(--primary); text-decoration:none; }
1784
+ .social-post-media { margin:.4rem 0; display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:.5rem; }
1785
+ .social-post-media .social-media-item { border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--border); background:var(--bg-tertiary); }
1786
+ .social-media-item img, .social-media-item video { width:100%; max-height:420px; object-fit:contain; display:block; }
1787
+ .social-media-item.img { grid-column:span 1; }
1788
+ .social-file { display:flex; align-items:center; gap:.5rem; padding:.8rem; color:var(--text); text-decoration:none; }
1789
+ .social-quote { margin:.4rem 0 .2rem; padding:.65rem .8rem; border-radius:var(--radius-md); border:1px solid var(--border); background:var(--bg-secondary); }
1790
+ .social-quote .social-post-body { font-size:.9rem; }
1791
+ .social-post-actions { display:flex; align-items:center; gap:.3rem; margin-top:.45rem; }
1792
+ .sp-action {
1793
+ display:inline-flex; align-items:center; gap:.4rem;
1794
+ background:transparent; border:none; cursor:pointer;
1795
+ color:var(--text-secondary); font-size:.8rem; padding:.35rem .5rem;
1796
+ border-radius:var(--radius-full); transition:background var(--transition-fast), color var(--transition-fast);
1797
+ }
1798
+ .sp-action:hover { background:var(--bg-tertiary); color:var(--primary); }
1799
+ .sp-action.active { color:var(--primary); }
1800
+ .sp-action.danger:hover { color:var(--error); background:rgba(239,68,68,.1); }
1801
+
1802
+ .social-avatar-initial {
1803
+ display:flex; align-items:center; justify-content:center;
1804
+ width:44px; height:44px; border-radius:50%; font-weight:700; color:#fff;
1805
+ }
1806
+ .social-avatar-initial.avatar-c0{background:#2563EB}.social-avatar-initial.avatar-c1{background:#8B5CF6}.social-avatar-initial.avatar-c2{background:#DB2777}.social-avatar-initial.avatar-c3{background:#059669}.social-avatar-initial.avatar-c4{background:#D97706}.social-avatar-initial.avatar-c5{background:#0891B2}
1807
+
1808
+ .social-feed-empty { text-align:center; padding:3rem 1rem; color:var(--text-secondary); }
1809
+ .social-feed-empty i { font-size:2.4rem; color:var(--primary-light); display:block; margin-bottom:.6rem; }
1810
+ .social-feed-empty h3 { margin:.2rem 0; color:var(--text); }
1811
+ .social-loading { display:flex; justify-content:center; padding:1rem; }
1812
+ .social-loading.hidden { display:none; }
1813
+
1814
+ .social-rail { padding:1rem; overflow-y:auto; display:flex; flex-direction:column; gap:1rem; }
1815
+ .social-card { background:var(--bg-elevated); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1rem; }
1816
+ .social-card h3 { margin:0 0 .7rem; font-size:.95rem; display:flex; align-items:center; gap:.45rem; }
1817
+ .social-trending-list, .social-suggest-list { display:flex; flex-direction:column; gap:.2rem; }
1818
+ .social-trend-item { display:flex; flex-direction:column; gap:.15rem; background:transparent; border:none; text-align:left; padding:.55rem .6rem; border-radius:var(--radius-md); color:var(--text); cursor:pointer; }
1819
+ .social-trend-item:hover { background:var(--bg-tertiary); }
1820
+ .social-trend-rank { font-size:.72rem; color:var(--text-tertiary); }
1821
+ .social-trend-item span:nth-child(2) { font-weight:700; }
1822
+ .social-trend-count { font-size:.72rem; color:var(--text-secondary); }
1823
+ .social-user-card { display:flex; align-items:center; gap:.6rem; padding:.5rem .35rem; border-radius:var(--radius-md); }
1824
+ .social-user-card:hover { background:var(--bg-tertiary); }
1825
+ .social-user-card .user-avatar { width:38px; height:38px; }
1826
+ .social-user-card .user-avatar .social-avatar-initial { width:38px; height:38px; font-size:.85rem; }
1827
+ .social-user-info { flex:1; min-width:0; display:flex; flex-direction:column; }
1828
+ .social-user-info strong { font-size:.88rem; }
1829
+ .social-user-info span { font-size:.74rem; color:var(--text-secondary); }
1830
+ .social-follow-btn.following { background:transparent; border:1px solid var(--border); color:var(--text); }
1831
+
1832
+ .social-profile-card { display:flex; gap:1rem; padding:1.25rem; border-bottom:1px solid var(--border-light); }
1833
+ .social-profile-avatar { flex:none; width:86px; height:86px; border-radius:50%; background:var(--bg-tertiary); overflow:hidden; display:flex; align-items:center; justify-content:center; font-size:2rem; }
1834
+ .social-profile-avatar img { width:100%; height:100%; object-fit:cover; }
1835
+ .social-profile-info { flex:1; min-width:0; }
1836
+ .social-profile-name { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
1837
+ .social-profile-name h2 { margin:0; font-size:1.2rem; }
1838
+ .social-profile-bio { margin:.5rem 0; }
1839
+ .social-profile-meta { display:flex; gap:1rem; flex-wrap:wrap; color:var(--text-secondary); font-size:.85rem; }
1840
+ .social-profile-meta a { color:var(--text-secondary); text-decoration:none; }
1841
+ .social-profile-meta a:hover { text-decoration:underline; }
1842
+ .social-profile-stats { display:flex; gap:1.1rem; margin-top:.65rem; font-size:.88rem; color:var(--text-secondary); }
1843
+ .social-profile-stats strong { color:var(--text); }
1844
+ .social-search-users h3, .social-search-posts h3 { margin:1rem .9rem .4rem; }
1845
+ .social-search-users .social-user-card { padding:.5rem .9rem; }
1846
+
1847
+ .social-notification { display:flex; gap:.75rem; padding:1rem; border-bottom:1px solid var(--border-light); cursor:pointer; }
1848
+ .social-notification:hover { background:var(--bg-secondary); }
1849
+ .social-notification > .social-avatar { width:40px; height:40px; }
1850
+ .social-notification-body { font-size:.92rem; }
1851
+ .social-reply-context { background:var(--bg-secondary); border:1px solid var(--border-light); border-radius:var(--radius-md); padding:.55rem .7rem; margin-bottom:.7rem; font-size:.85rem; }
1852
+ .social-reply-context strong { color:var(--primary); }
1853
+
1854
+
1855
+ @media (max-width:1050px) {
1856
+ .social-body { grid-template-columns:220px minmax(0,1fr); }
1857
+ .social-rail { display:none; }
1858
+ }
1859
+ @media (max-width:760px) {
1860
+ .social-body { grid-template-columns:1fr; }
1861
+ .social-nav { display:none; }
1862
+ .social-topbar { padding:.5rem; }
1863
+ .social-topbar-title span { display:none; }
1864
+ .social-post { padding:.75rem .6rem; }
1865
+ .social-profile-card { flex-direction:column; }
1866
+ }
1867
+
1868
+ /* Social upload progress */
1869
+ .social-upload-progress { display:flex; flex-direction:column; gap:.25rem; margin-top:.5rem; }
1870
+ .social-upload-progress.hidden { display:none; }
1871
+ .social-progress-track { width:100%; height:6px; border-radius:var(--radius-full); background:var(--bg-tertiary); overflow:hidden; }
1872
+ .social-progress-fill { height:100%; width:0; background:var(--primary); border-radius:var(--radius-full); transition:width var(--transition-fast); }
1873
+ .social-upload-progress span { font-size:.72rem; color:var(--text-secondary); }
1874
+
1875
+ /* Social compact feed */
1876
+ .social-feed-compact .social-post { padding:.55rem .75rem; }
1877
+ .social-feed-compact .social-post-body { font-size:.9rem; }
1878
+ .social-feed-compact .social-post-media { grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); }
1879
+ .social-feed-compact .social-post-actions { margin-top:.2rem; }
1880
+
1881
+ /* Social settings */
1882
+ #social-settings-modal .modal-body { max-height:60vh; overflow-y:auto; }
1883
+ #social-settings-modal select.form-input { appearance:auto; }