From 3fe3037aed276ff10dd0882098d50b0b629e6828 Mon Sep 17 00:00:00 2001 From: Kobe Date: Sun, 25 May 2025 21:15:28 +0200 Subject: [PATCH] colour settings start --- __pycache__/app.cpython-313.pyc | Bin 3820 -> 3820 bytes __pycache__/models.cpython-313.pyc | Bin 11100 -> 11100 bytes ...ad_add_colorsettings_table.cpython-313.pyc | Bin 0 -> 2901 bytes .../ca9026520dad_add_colorsettings_table.py | 56 ++++++++++++++++++ routes/__pycache__/main.cpython-313.pyc | Bin 21139 -> 21425 bytes routes/main.py | 7 ++- static/css/auth.css | 16 ++--- static/css/base.css | 22 +++---- static/css/colors.css | 51 ++++++++++++++++ static/css/dashboard.css | 34 +++++------ static/css/trash.css | 15 +++-- templates/common/base.html | 11 +++- templates/dashboard/dashboard.html | 48 +++++++++++++-- templates/settings/settings.html | 18 ++++++ 14 files changed, 221 insertions(+), 57 deletions(-) create mode 100644 migrations/versions/__pycache__/ca9026520dad_add_colorsettings_table.cpython-313.pyc create mode 100644 migrations/versions/ca9026520dad_add_colorsettings_table.py create mode 100644 static/css/colors.css create mode 100644 templates/settings/settings.html diff --git a/__pycache__/app.cpython-313.pyc b/__pycache__/app.cpython-313.pyc index f325551f93cbec91a435682f3bda7f253839bba3..a5c871d7da527a68ba13039cd84c7421a2aeb950 100644 GIT binary patch delta 22 ccmaDO`$m@cGcPX}0}!0xH_kY=k@r3y08(rR8UO$Q delta 22 ccmaDO`$m@cGcPX}0}ym?Hp*z+$a|j;08|GDI{*Lx diff --git a/__pycache__/models.cpython-313.pyc b/__pycache__/models.cpython-313.pyc index db948f550e3d93dbe29075ef98d69079db3ba581..3c7a3b2bb1ac1e079dde9036fb5c2e01fc1820d8 100644 GIT binary patch delta 20 acmcZ;b|;McGcPX}0}x!yHr~h`s0{#0f(9-C delta 20 acmcZ;b|;McGcPX}0}#ZWGup@H+1Fp4+C4l1P!Fs0lYNmAJNP?m!fQw)E6qawCNbDW|^i`cDaksOnmNGyCSfH*em| z_swqm{UU*e;kn-$qUk#W<$c4qRCQ3CbYY=LK%1m)3#e}EStF&OjR9Sc{Bc)y&iWa*PD{(Ql%6jj3?kbDIj+P=h zEzIbV_?S!bzEd>ee~l(qMWdB`7?t zgLHHSO&osPM)Fr>+4%N&b(U3@NA|LmYD*bPhhiL{qVS6r&&oSwTX$f#^;1VnGfx~Z z^(t+3wo*fkeLIIVYDFKS4~i}-RCER~-GYMf8~f~Iwgt_&{@o&t9E;H5F}pTJ;Vhd) zJljl0y$Cq->UmA0(6;?KlF2G$UM?8E1e&36^k`U5TeFk)Arq$zT`e2fVm_w=s#RIB zY=Ia?R-VadcoAI8)GW>_Hm_n0gMsayQ8W`TvbG=J$e5H)WNSW$2}OY2RMwf8T*pLK z@r;t!EZb)h#hiusG^{NagTZWz459m3a1YfIig=)i0?)_=ma-XBu{}Uv`K)g9L%N02 znAjf4A~3b>rCce1%lqN5XUWNjAod`zGqzDMwQv>nj6sbw0l$ z#CQD=c5yJmKZ}YNSw010ItcB*_OOzeM^aFTm3Dmd^u^BkB1KUKbTCibUzuF7(6diR#e zQ}|EhDVF?$XkU{1>L8LE>nW04%^0EkOX{gO2I3;2oJ;6cLntx`y)ejoRL~s=2?g#T zZB%iJ3JPWNJ{2daXs6;d2w)##HAirZ9c=Y z+>5)4Q@=R1q$D#hy?C;wpIN;aj0YFi%P7gsDOw3Mqeu=!$b$$4AaRQWruLR>W?p7V zd{KUBNouj4O-_DtVotH09!%Pek%6ID0H~vZ;R_psfcyn{^UM4e7dR}yW@&QVVg>6g z0{VS&gTDqN$K;j%$|f5?_ACVw#T-CF0RkK#HghA{SF{Z%EecX6$2j?y|2M4WHp{F9Q22A^JIZwS;m8t^@6K7^H~^;i{ydI02X>G Ai2wiq diff --git a/routes/main.py b/routes/main.py index 9e00e9a..48ddd45 100644 --- a/routes/main.py +++ b/routes/main.py @@ -321,4 +321,9 @@ def init_routes(main_bp): @main_bp.route('/trash') @login_required def trash(): - return render_template('trash/trash.html') \ No newline at end of file + return render_template('trash/trash.html') + + @main_bp.route('/settings') + @login_required + def settings(): + return render_template('settings/settings.html') \ No newline at end of file diff --git a/static/css/auth.css b/static/css/auth.css index e040db3..66a6d7f 100644 --- a/static/css/auth.css +++ b/static/css/auth.css @@ -1,12 +1,8 @@ -:root { - --primary-color: #16767b; - --secondary-color: #741b5f; - --primary-light: #1a8a90; - --secondary-light: #8a2170; -} +/* Import color variables */ +@import 'colors.css'; body { - background-color: #f8f9fa; + background-color: var(--bg-color); } .auth-container { @@ -17,12 +13,12 @@ body { .auth-card { border: none; border-radius: 10px; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + box-shadow: 0 4px 6px var(--shadow-color); } .auth-header { background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%); - color: white; + color: var(--white); padding: 20px; border-radius: 10px 10px 0 0; } @@ -39,7 +35,7 @@ body { .form-control:focus { border-color: var(--primary-color); - box-shadow: 0 0 0 0.2rem rgba(22, 118, 123, 0.25); + box-shadow: 0 0 0 0.2rem var(--shadow-color-light); } .alert { diff --git a/static/css/base.css b/static/css/base.css index 2946bb2..0d1aa6b 100644 --- a/static/css/base.css +++ b/static/css/base.css @@ -1,12 +1,8 @@ -:root { - --primary-color: #16767b; - --secondary-color: #741b5f; - --primary-light: #1a8a90; - --secondary-light: #8a2170; -} +/* Import color variables */ +@import 'colors.css'; body { - background-color: #f8f9fa; + background-color: var(--bg-color); } .navbar { @@ -17,9 +13,9 @@ body { } .sidebar { - background-color: white; + background-color: var(--white); min-height: calc(100vh - 56px); - box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1); + box-shadow: 2px 0 5px var(--shadow-color); position: sticky; top: 56px; /* Height of the navbar */ height: calc(100vh - 56px); @@ -27,19 +23,19 @@ body { } .sidebar .nav-link { - color: #333; + color: var(--text-dark); padding: 0.8rem 1rem; border-radius: 0.25rem; margin: 0.2rem 0; } .sidebar .nav-link:hover { - background-color: #f8f9fa; + background-color: var(--bg-color); } .sidebar .nav-link.active { background-color: var(--primary-color); - color: white; + color: var(--white); } .sidebar .nav-link i { @@ -53,7 +49,7 @@ body { .card { border: none; border-radius: 10px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 4px var(--shadow-color); } .btn-primary { diff --git a/static/css/colors.css b/static/css/colors.css new file mode 100644 index 0000000..1de1d90 --- /dev/null +++ b/static/css/colors.css @@ -0,0 +1,51 @@ +:root { + /* Primary Colors */ + --primary-color: #16767b; + --primary-light: #1a8a90; + + /* Secondary Colors */ + --secondary-color: #741b5f; + --secondary-light: #8a2170; + + /* Background Colors */ + --bg-color: #f8f9fa; + --white: #ffffff; + --primary-bg-light: #e6f3f4; + + /* Text Colors */ + --text-dark: #333333; + --text-muted: #6c757d; + + /* Status Colors */ + --warning-color: #ffd700; + --danger-color: #dc3545; + + /* Shadow Colors */ + --shadow-color: rgba(0, 0, 0, 0.1); + --shadow-color-light: rgba(0, 0, 0, 0.25); + + /* Border Colors */ + --border-color: #dee2e6; + --border-light: #e9ecef; + + /* Opacity Colors */ + --primary-opacity-8: rgba(22, 118, 123, 0.08); + --primary-opacity-12: rgba(22, 118, 123, 0.12); + --primary-opacity-15: rgba(22, 118, 123, 0.15); + --primary-opacity-20: rgba(22, 118, 123, 0.2); + --warning-opacity-15: rgba(255, 215, 0, 0.15); + --danger-opacity-15: rgba(220, 53, 69, 0.15); + + /* Chart Colors */ + --chart-primary: #16767b; + --chart-secondary: #741b5f; + --chart-warning: #ffd700; + --chart-primary-light: #2c9da9; + --chart-primary-lighter: #43c4d3; + --chart-primary-lightest: #5ad9e8; + --chart-primary-pale: #71eefd; + --chart-secondary-light: #8a2b73; + --chart-secondary-lighter: #a03b87; + --chart-secondary-lightest: #b64b9b; + --chart-secondary-pale: #cc5baf; +} \ No newline at end of file diff --git a/static/css/dashboard.css b/static/css/dashboard.css index 8595c0d..a231b08 100644 --- a/static/css/dashboard.css +++ b/static/css/dashboard.css @@ -1,11 +1,5 @@ -:root { - --primary-color: #16767b; - --secondary-color: #741b5f; - --primary-light: #1a8a90; - --secondary-light: #8a2170; - --warning-color: #ffd700; - --danger-color: #dc3545; -} +/* Import color variables */ +@import 'colors.css'; /* Masonry Layout */ .masonry { @@ -31,7 +25,7 @@ .card { border: none; border-radius: 10px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 4px var(--shadow-color); } .card-title { @@ -77,24 +71,24 @@ /* Badge Styles */ .badge-starred { - background-color: rgba(255, 215, 0, 0.15) !important; + background-color: var(--warning-opacity-15) !important; color: var(--warning-color) !important; } .badge-trash { - background-color: rgba(220, 53, 69, 0.15) !important; + background-color: var(--danger-opacity-15) !important; color: var(--danger-color) !important; } /* Contact Link Styles */ .contact-link { - background-color: rgba(22, 118, 123, 0.08); + background-color: var(--primary-opacity-8); color: var(--primary-color); transition: all 0.2s; } .contact-link:hover { - background-color: rgba(22, 118, 123, 0.12); + background-color: var(--primary-opacity-12); color: var(--primary-color); } @@ -106,8 +100,8 @@ /* Alert Styles */ .alert-info { - background-color: rgba(22, 118, 123, 0.08); - border-color: rgba(22, 118, 123, 0.2); + background-color: var(--primary-opacity-8); + border-color: var(--primary-opacity-20); color: var(--primary-color); } @@ -118,7 +112,7 @@ } .list-group-item:not(:last-child) { - border-bottom: 1px solid rgba(0, 0, 0, 0.05); + border-bottom: 1px solid var(--shadow-color); } /* Download Button */ @@ -126,14 +120,14 @@ background-color: var(--primary-color); border: none; border-radius: 6px; - box-shadow: 0 1px 2px rgba(22, 118, 123, 0.08); - color: white; + box-shadow: 0 1px 2px var(--primary-opacity-8); + color: var(--white); transition: all 0.2s; } .btn-download:hover { background-color: var(--primary-light); - color: white; + color: var(--white); transform: translateY(-1px); - box-shadow: 0 2px 4px rgba(22, 118, 123, 0.12); + box-shadow: 0 2px 4px var(--primary-opacity-12); } \ No newline at end of file diff --git a/static/css/trash.css b/static/css/trash.css index 16af55d..82764f4 100644 --- a/static/css/trash.css +++ b/static/css/trash.css @@ -1,11 +1,14 @@ +/* Import color variables */ +@import 'colors.css'; + .btn-group .btn.active { - background-color: #e6f3f4 !important; - border-color: #16767b !important; - color: #16767b !important; + background-color: var(--primary-bg-light) !important; + border-color: var(--primary-color) !important; + color: var(--primary-color) !important; } .btn-group .btn:not(.active) { - background-color: #fff !important; - border-color: #e9ecef !important; - color: #6c757d !important; + background-color: var(--white) !important; + border-color: var(--border-light) !important; + color: var(--text-muted) !important; } \ No newline at end of file diff --git a/templates/common/base.html b/templates/common/base.html index 630ecb7..9b8281e 100644 --- a/templates/common/base.html +++ b/templates/common/base.html @@ -27,6 +27,13 @@ + {% if current_user.is_admin %} + + {% endif %}