use same width for all labels

This commit is contained in:
Mylloon 2025-02-24 11:20:52 +01:00
parent 75be5a3042
commit 85656a4cfc
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
3 changed files with 19 additions and 2 deletions

View file

@ -3,7 +3,7 @@ use ramhorns::Content;
#[derive(Content, Debug, Clone)]
pub struct Language {
name: String,
pub name: String,
code: String,
color: String,
sort: u8,

View file

@ -18,13 +18,24 @@ pub async fn languages(config: web::Data<Config>) -> impl Responder {
#[derive(Content, Debug)]
struct LanguagesTemplate {
langs: Vec<Language>,
max_size: usize,
}
#[once]
fn build_languages(config: Config) -> String {
let langs = get_langs();
config.tmpl.render(
"static/languages-defs.css",
LanguagesTemplate { langs: get_langs() },
LanguagesTemplate {
langs: langs.clone(),
max_size: langs.iter().fold(0, |acc, x| {
if x.name.len() > acc {
x.name.len()
} else {
acc
}
}) / 2,
},
InfosPage::default(),
None,
)

View file

@ -30,4 +30,10 @@ div.filters:not(:has(~ ul > li div p[data-lang="{{code}}"]))
}
{{/langs}}
/* Fixed size for all labels */
div.filters label {
display: inline-block;
width: {{max_size}}em;
}
{{/data}}