feat: Check in simplified CSS

This commit is contained in:
Kumi 2025-04-09 10:36:19 +02:00
parent b5f3ddc4d7
commit 9de12606a6
Signed by: kumi
GPG key ID: ECBCC9082395383F
11 changed files with 901 additions and 381 deletions

1
.gitignore vendored
View file

@ -6,6 +6,7 @@ privacy.md
privacy.txt
*.pyc
venv/
/output
# Special rules needed for building the Docker image
/dist/*

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1,2 @@
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 512 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>
<!-- MIT © Phosphor Icons - https://github.com/phosphor-icons -->
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="#000000" viewBox="0 0 256 256"><path d="M229.66,218.34l-50.07-50.06a88.11,88.11,0,1,0-11.31,11.31l50.06,50.07a8,8,0,0,0,11.32-11.32ZM40,112a72,72,0,1,1,72,72A72.08,72.08,0,0,1,40,112Z"></path></svg>

Before

Width:  |  Height:  |  Size: 494 B

After

Width:  |  Height:  |  Size: 334 B

Before After
Before After

View file

@ -3,25 +3,20 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{% if title %}{{ title }} - {% endif %}Structables</title>
<link
rel="stylesheet"
href="{{ url_for('static', filename='css/style.css') }}"
/>
<link
rel="stylesheet"
href="{{ url_for('static', filename='dist/css/bootstrap.min.css') }}"
/>
<link
rel="icon"
<title>
{% if title %}{{ title }} -{% endif %}
Structables</title>
<link rel="stylesheet"
href="{{ url_for('static', filename='css/style.css') }}" />
<link rel="icon"
type="image/png"
href="{{ url_for('static', filename='img/logo.png') }}"
/>
href="{{ url_for('static', filename='img/logo.png') }}" />
</head>
<body>
{% include "header.html" %}
<main>{% block content %} {% endblock %}</main>
<main class="container">
{% block content %}{% endblock %}
</main>
{% include "footer.html" %}
</body>
</html>

View file

@ -1,68 +1,35 @@
{% extends "base.html" %} {% block content %}
<div class="container">
<h1 class="text-center">{{ title }}</h1>
<div class="row">
{% for channel in channels %}
<div class="col-6 col-md-4 col-lg-3 text-center mb-3">
<a
href="/{{ channel }}"
class="btn btn-primary d-block position-relative"
>
{{ channel }}
</a>
{% extends "base.html" %}
{% block content %}
<div class="text-center">
<h1>{{ title }}</h1>
<div class="channel-grid my-4">
{% for channel in channels %}<a href="/{{ channel }}" class="btn btn-primary">{{ channel }}</a>{% endfor %}
</div>
{% endfor %}
</div>
<h2 class="text-center">
<h2 class="my-4">
<a href="{{ path }}projects/">Featured Projects</a>
</h2>
<div class="row">
<div class="card-grid">
{% for ible in ibles %}
<div class="col-xs-12 col-sm-6 col-lg-4 mb-4">
<div class="card h-100 d-flex flex-column">
<div class="card">
<a href="{{ ible.link }}">
<img
class="card-img-top"
src="{{ ible.img }}"
alt="{{ ible.alt }}"
style="max-width: 100%"
/>
<div class="card-body">
<h5 class="card-title">{{ ible.title }}</h5>
</div>
<img class="card-img-top" src="{{ ible.img }}" alt="{{ ible.alt }}">
</a>
<div class="card-footer mt-auto">
<div class="card-body">
<h5 class="card-title">
<a href="{{ ible.link }}">{{ ible.title }}</a>
</h5>
<p class="card-text">
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
</p>
<p class="card-text">
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
</p>
<p class="card-text">
{{ ible.favorites }} Favorites, {{ ible.views }} Views
</p>
</div>
<div class="card-footer">
<p class="card-text">{{ ible.favorites }} Favorites, {{ ible.views }} Views</p>
</div>
</div>
{% endfor %}
</div>
<!-- Doesn't seem to be current
<h2 class="text-center"><a href="/contest/">Contests</a></h2>
<div class="row">
<div class="col">
{% for contest in contests %}
<a href="{{ contest.link }}">
<img
src="{{ contest.img }}"
alt="{{ contest.title }}"
class="img-fluid"
/>
</a>
{% endfor %}
</div>
</div>
-->
</div>
{% endblock %}

View file

@ -1,17 +1,13 @@
<footer class="bg-light text-dark py-4">
<footer>
<div class="container">
<div class="row">
<div class="col-md-6 text-center text-md-left">
<div class="col-6">
<p class="mb-1">
<a
href="https://git.private.coffee/PrivateCoffee/structables"
class="text-dark"
>
Structables Code (AGPLv3)
</a>
<a href="https://git.private.coffee/PrivateCoffee/structables"
class="text-dark">Structables Code (AGPLv3)</a>
</p>
</div>
<div class="col-md-6 text-center text-md-right">
<div class="col-6 text-right">
<p class="mb-1">
<a href="/privacypolicy" class="text-dark">View privacy policy</a>
</p>

View file

@ -1,15 +1,13 @@
<header>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<div class="container">
<nav class="navbar">
<a class="navbar-brand" href="/">
<img
class="navbar-logo"
<img class="navbar-logo"
src="{{ url_for('static', filename='img/logo.png') }}"
alt="Structables Logo"
/>
alt="Structables Logo" />
Structables
</a>
<div class="navbar-collapse">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="/projects/">Projects</a>
</li>
@ -23,17 +21,19 @@
<a class="nav-link" href="/sitemap/">Sitemap</a>
</li>
</ul>
<form class="d-flex" action="/search" method="post">
<input
class="form-control me-2"
<form class="search-form" action="/search" method="post">
<input class="search-input"
type="search"
placeholder="Search"
name="q"
aria-label="Search"
/>
<button class="btn btn-outline-success" type="submit">Search</button>
aria-label="Search" />
<button class="search-button" type="submit">
<img src="{{ url_for('static', filename='img/magnifying-glass-solid.svg') }}"
alt="Search"
width="16"
height="16">
</button>
</form>
</div>
</div>
</nav>
</div>
</header>

View file

@ -1,45 +1,37 @@
{% extends "base.html" %} {% block content %}
<div class="container text-center">
{% extends "base.html" %}
{% block content %}
<div class="text-center">
<h1>{{ title }}</h1>
{% for section in sections %}
<section>
<div class="row">
<h3><a href="{{ section[1] }}">{{ section[0] }}</a></h3>
</div>
<div class="row justify-content-center">
<section class="my-5">
<h3>
<a href="{{ section[1] }}">{{ section[0] }}</a>
</h3>
<div class="card-grid">
{% for ible in section[2] %}
<div class="col-xs-12 col-sm-6 col-lg-4 mb-4">
<div class="card h-100">
<div class="card">
<a href="{{ ible.link }}">
<img
class="card-img-top"
src="{{ ible.img }}"
alt="{{ ible.alt }}"
style="max-width: 100%"
/>
<div class="card-body">
<h5 class="card-title">{{ ible.title }}</h5>
</div>
<img class="card-img-top" src="{{ ible.img }}" alt="{{ ible.alt }}">
</a>
<div class="card-footer">
<div class="card-body">
<h5 class="card-title">
<a href="{{ ible.link }}">{{ ible.title }}</a>
</h5>
<p class="card-text">
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
</p>
<p class="card-text">
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
</p>
<p class="card-text">
{{ ible.favorites }} Favorites, {{ ible.views }} Views
</p>
</div>
<div class="card-footer">
<p class="card-text">{{ ible.favorites }} Favorites, {{ ible.views }} Views</p>
</div>
</div>
{% endfor %}
</div>
{% if section != sections[-1] %}
<hr />
{% endif %}
{% if section != sections[-1] %}<hr class="my-4" />{% endif %}
</section>
{% endfor %}
</div>
</div>
{% endblock %}

View file

@ -1,56 +1,49 @@
{% extends "base.html" %} {% block content %}
<center>
{% extends "base.html" %}
{% block content %}
<div class="text-center">
<h1>{{ title }}</h1>
<span><a href="{{ path }}/">Featured</a></span>
<span><a href="{{ path }}/recent/">Recent</a></span>
<span><a href="{{ path }}/popular/">Popular</a></span>
<span><a href="{{ path }}/views/">Views</a></span>
<span><a href="{{ path }}/winners/">Winners</a></span>
<br />
<div class="container">
<div class="row">
{% for ible in ibles %}
<div class="col-xs-12 col-sm-6 col-lg-4 mb-4">
<div class="card h-100 d-flex flex-column">
<a href="{{ ible.link }}">
<img
class="card-img-top"
src="{{ ible.img }}"
alt="{{ ible.alt }}"
style="max-width: 100%"
/>
<div class="card-body">
<h5 class="card-title">{{ ible.title }}</h5>
<div class="sort-links my-3">
<a href="{{ path }}/"
class="btn btn-outline-primary {% if 'recent' not in path and 'popular' not in path and 'views' not in path and 'winners' not in path %}active{% endif %}">Featured</a>
<a href="{{ path }}/recent/"
class="btn btn-outline-primary {% if 'recent' in path %}active{% endif %}">Recent</a>
<a href="{{ path }}/popular/"
class="btn btn-outline-primary {% if 'popular' in path %}active{% endif %}">Popular</a>
<a href="{{ path }}/views/"
class="btn btn-outline-primary {% if 'views' in path %}active{% endif %}">Views</a>
<a href="{{ path }}/winners/"
class="btn btn-outline-primary {% if 'winners' in path %}active{% endif %}">Winners</a>
</div>
<div class="card-grid">
{% for ible in ibles %}
<div class="card">
<a href="{{ ible.link }}">
<img class="card-img-top" src="{{ ible.img }}" alt="{{ ible.title }}">
</a>
<div class="card-footer mt-auto">
<div class="card-body">
<h5 class="card-title">
<a href="{{ ible.link }}">{{ ible.title }}</a>
</h5>
<p class="card-text">
by <a href="{{ ible.author_link }}">{{ ible.author }}</a>
</p>
<p class="card-text">
in <a href="{{ ible.channel_link }}">{{ ible.channel }}</a>
</p>
<p class="card-text">
{{ ible.favorites }} Favorites, {{ ible.views }} Views
</p>
</div>
<div class="card-footer">
<p class="card-text">{{ ible.favorites }} Favorites, {{ ible.views }} Views</p>
</div>
</div>
{% endfor %}
</div>
<ul class="pagination">
{% for page in pagination %}
<li class="page-item">
<a
class="page-link {% if page.active %}active{% endif %} {% if page.disabled %}disabled{% endif %}"
href="{{ page.link }}"
>{{ page.text }}</a
>
<a class="page-link {% if page.active %}active{% endif %} {% if page.disabled %}disabled{% endif %}"
href="{{ page.link }}">{{ page.text }}</a>
</li>
{% endfor %}
</ul>
</div>
</div>
</center>
{% endblock %}