feat(frontend): i18n expansion, admin/profile i18n, grid/list view fix, empty state
- Add 5 new locales (hi, ar, ru, ja, ko) — now 14 total - Admin panel: 117 i18n keys, confirm modal, animated tabs, no inline handlers - Profile page: 58 i18n keys with data-i18n attributes - Fix i18n safeT() shadowing bug and translationsLoaded timing - Fix grid/list view: list header no longer shows in grid mode on login - Fix classList.toggle hidden sync for view switching across all nav functions - Revert .hidden important that broke login page rendering - Add files empty state (no_files + empty_hint) with translations - Fix language selector dropdown scroll and styling - Fix admin panel scroll with sticky tabs
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
*{box-sizing:border-box;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}
|
||||
body{background:#f5f7fa;color:#1e293b;min-height:100vh;display:flex;flex-direction:column}
|
||||
body{background:#f5f7fa;color:#1e293b;min-height:100vh;height:auto;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}
|
||||
|
||||
.hidden{display:none !important}
|
||||
.show-block{display:block !important}
|
||||
@@ -62,10 +62,10 @@ body{background:#f5f7fa;color:#1e293b;min-height:100vh;display:flex;flex-directi
|
||||
.admin-header-right a:hover{color:#fff}
|
||||
|
||||
/* ── Container ── */
|
||||
.admin-container{max-width:1080px;margin:0 auto;padding:28px 24px 60px;width:100%}
|
||||
.admin-container{max-width:1080px;margin:0 auto;padding:28px 24px 60px;width:100%;flex:1}
|
||||
|
||||
/* ── Tabs ── */
|
||||
.admin-tabs{display:flex;gap:6px;margin-bottom:28px;background:#fff;border-radius:14px;padding:6px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
|
||||
.admin-tabs{display:flex;gap:6px;margin-bottom:28px;background:#fff;border-radius:14px;padding:6px;box-shadow:0 1px 4px rgba(0,0,0,.06);position:sticky;top:64px;z-index:50}
|
||||
.admin-tab{
|
||||
padding:10px 22px;cursor:pointer;font-weight:600;font-size:13.5px;color:#64748b;
|
||||
border:none;background:none;border-radius:10px;transition:all .2s;display:flex;align-items:center;gap:8px;
|
||||
@@ -74,8 +74,12 @@ body{background:#f5f7fa;color:#1e293b;min-height:100vh;display:flex;flex-directi
|
||||
.admin-tab.active{color:#fff;background:linear-gradient(135deg,#ff5e3a,#ff2d55);box-shadow:0 3px 12px rgba(255,94,58,.25)}
|
||||
.admin-tab.active i{color:#fff}
|
||||
.admin-tab i{font-size:14px;width:16px;text-align:center}
|
||||
.tab-content{display:none}
|
||||
.tab-content{display:none;animation:none}
|
||||
.tab-content.active{display:block}
|
||||
.tab-content.tab-fade-in{animation:tabFadeIn .22s ease-out}
|
||||
.tab-content.tab-fade-out{animation:tabFadeOut .15s ease-in;display:block}
|
||||
@keyframes tabFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
|
||||
@keyframes tabFadeOut{from{opacity:1}to{opacity:0}}
|
||||
|
||||
/* ── Cards ── */
|
||||
.admin-card{background:#fff;border-radius:16px;box-shadow:0 1px 4px rgba(0,0,0,.06),0 0 0 1px rgba(0,0,0,.03);padding:28px;margin-bottom:22px}
|
||||
@@ -296,6 +300,15 @@ details[open] summary{margin-bottom:14px;color:#ff5e3a}
|
||||
[data-theme="dark"] .pagination{color:#64748b}
|
||||
[data-theme="dark"] #access-denied h2{color:#fca5a5}
|
||||
[data-theme="dark"] #access-denied p{color:#94a3b8}
|
||||
|
||||
/* ── Confirm modal ── */
|
||||
.modal-confirm{max-width:420px}
|
||||
.modal-confirm h3{color:#dc2626}
|
||||
.modal-confirm p{margin:14px 0 22px;font-size:14px;line-height:1.55;color:#475569}
|
||||
.btn-danger{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;border:none;padding:10px 22px;border-radius:10px;font-weight:600;cursor:pointer;transition:opacity .15s}
|
||||
.btn-danger:hover{opacity:.88}
|
||||
[data-theme="dark"] .modal-confirm p{color:#94a3b8}
|
||||
[data-theme="dark"] .btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}
|
||||
[data-theme="dark"] #access-denied .access-icon{background:#3b1111}
|
||||
[data-theme="dark"] #loading{color:#64748b}
|
||||
[data-theme="dark"] .toggle-row{border-top-color:#334155}
|
||||
|
||||
Reference in New Issue
Block a user