privatecoffee-website/assets/css/base.css
Kumi 6033a47b6a
feat: enhance financial transparency with dynamic tables
Implemented dynamic financial transparency tables to automatically generate and display monthly financial data for memberships, including incomes, expenses, and balances across multiple currencies. This change involved adding a new `finances.py` helper to process financial data and integrate it with the existing Flask application. Additionally, adjusted the CSS for better alignment and readability of currency columns in the transparency tables.

- Introduced a `generate_transparency_table` function to generate HTML tables dynamically based on the latest financial data.
- Expanded the `main.py` Flask route for the membership page to include financial data rendering, ensuring up-to-date information is presented to users.
- Removed static HTML table from the membership template in favor of dynamically generated content, offering real-time insight into finances.
- Adjusted the width and text alignment of currency columns in `base.css` for enhanced table aesthetics and readability.

This update significantly improves the transparency of financial information, making it easier for members to understand the flow of funds within the organization.
2024-05-29 14:50:52 +02:00

189 lines
No EOL
3.5 KiB
CSS

/* This file was created as part of the Private.coffee project
It is licensed under the MIT license
For more information, please visit https://private.coffee
*/
/* General styles */
:root,
[data-bs-theme="light"] {
--bs-primary: #f570b9;
--bs-primary-rgb: 245, 112, 185;
--bs-primary-text-emphasis: #622d4a;
--bs-primary-bg-subtle: #fde2f1;
--bs-primary-border-subtle: #fbc6e3;
--bs-body-color: #232323;
--bs-body-color-rgb: 35, 35, 35;
--bs-secondary-color: rgba(35, 35, 35, 0.75);
--bs-secondary-color-rgb: 35, 35, 35, 0.75;
--bs-tertiary-color: rgba(35, 35, 35, 0.5);
--bs-tertiary-color-rgb: 35, 35, 35, 0.5;
--bs-body-font-family: Inconsolata, monospace;
}
.btn-primary {
--bs-btn-color: #000000;
--bs-btn-bg: #f570b9;
--bs-btn-border-color: #f570b9;
--bs-btn-hover-color: #000000;
--bs-btn-hover-bg: #f785c4;
--bs-btn-hover-border-color: #f67ec0;
--bs-btn-focus-shadow-rgb: 37, 17, 28;
--bs-btn-active-color: #000000;
--bs-btn-active-bg: #f78dc7;
--bs-btn-active-border-color: #f67ec0;
--bs-btn-disabled-color: #000000;
--bs-btn-disabled-bg: #f570b9;
--bs-btn-disabled-border-color: #f570b9;
color: #fff;
}
.btn-outline-primary {
--bs-btn-color: #f570b9;
--bs-btn-border-color: #f570b9;
--bs-btn-focus-shadow-rgb: 245, 112, 185;
--bs-btn-hover-color: #000000;
--bs-btn-hover-bg: #f570b9;
--bs-btn-hover-border-color: #f570b9;
--bs-btn-active-color: #000000;
--bs-btn-active-bg: #f570b9;
--bs-btn-active-border-color: #f570b9;
--bs-btn-disabled-color: #f570b9;
--bs-btn-disabled-bg: transparent;
--bs-btn-disabled-border-color: #f570b9;
}
h2 .special-header {
font-size: 10rem !important;
}
.special-header {
font-size: 4rem;
font-weight: 900;
}
.fancy-text-primary {
background: -webkit-linear-gradient(45deg, #ba77fc, #ff7f8c);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
p {
letter-spacing: 0.03rem;
font-size: 1.1rem;
}
h5 {
letter-spacing: 0.05rem;
}
.navbar-brand {
font-weight: 800 !important;
font-size: x-large;
}
.card-body .btn-primary:not(:first-child) {
margin-top: 10px;
}
.currency-col {
width: 200px;
white-space: nowrap;
text-align: right;
}
.table-transparency td:not(:first-child) {
text-align: right;
}
.section {
padding: 20px 0;
border-bottom: 1px solid #e0e0e0;
}
.alert-warning {
background-color: #fff3cd;
border-color: #ffeeba;
color: #856404;
padding: 15px;
margin-bottom: 20px;
border-radius: 4px;
}
.alert-warning .alert-link {
color: #856404;
font-weight: bold;
text-decoration: underline;
}
.alert-warning .alert-link:hover {
color: #604c2e;
}
/* Responsive Styles */
@media (max-width: 768px) {
.navbar .container {
display: flex;
flex-direction: column;
align-items: center;
}
.navbar .row {
flex-direction: column;
align-items: center;
}
.navbar .col {
text-align: center;
}
.navbar-brand p {
font-size: 0.9rem;
}
.navbar-brand span.fancy-text-primary {
font-size: 1.1rem;
}
.navbar-brand span {
display: block;
}
.navbar-nav {
display: flex;
flex-direction: row;
justify-content: center;
width: 100%;
padding: 0;
}
.navbar-nav .nav-item {
display: inline-block;
padding: 0 1rem;
}
.btn.btn-primary {
margin: 1rem auto;
display: block;
width: 80%;
}
h2 .special-header {
font-size: 6rem !important;
}
.special-header {
font-size: 2rem;
}
.navbar-btn {
margin: 0 auto !important;
}
.that-br {
display: none;
}
.slogan {
display: none;
}
}