Design ludique arrondi + mobile responsive + fix IPv6

- ToolboxVignette: prop bullets[] remplace description, touch targets agrandis
- Design arrondi: border-radius 16px cards, 20px pills, 12px inputs, no borders
- Hover animations: translateY(-3px) + shadow, active states pour touch
- SectionLayout: toolbox accordion mobile, pills scroll horizontal, responsive title/subtitle
- app.vue: MoodSwitcher dans drawer mobile, header responsive, nav touch-friendly
- Dashboard: grille 2-colonnes mobile, connect banner column layout, formula code scroll
- Documents/decisions/mandates/protocols: cards responsive (padding, font-size, gap)
- Login: touch targets 3rem min, iOS zoom prevention, responsive sizing
- Modals: padding responsive sm:p-6
- Protocols: table compact mobile, proto items responsive
- nuxt.config: host 0.0.0.0 pour fix IPv4/IPv6 binding

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-02-28 23:09:29 +01:00
parent 9b6388a600
commit c7cb22f313
15 changed files with 1730 additions and 1021 deletions

View File

@@ -119,31 +119,37 @@ async def seed_voting_protocols(
formulas: dict[str, FormulaConfig],
) -> dict[str, VotingProtocol]:
protocols: dict[str, dict] = {
"Vote majoritaire": {
"Vote WoT standard": {
"description": (
"Vote binaire a majorite simple. Le seuil d'adoption "
"s'adapte dynamiquement au taux de participation via "
"la formule d'inertie WoT."
"Vote binaire (pour/contre) ouvert a tous les membres de la "
"toile de confiance. Le seuil d'adoption s'adapte au taux de "
"participation via l'inertie WoT : quasi-unanimite a faible "
"participation, majorite simple a forte mobilisation. "
"Utilise pour la Licence G1 et les textes fondateurs."
),
"vote_type": "binary",
"formula_config_id": formulas["Standard Licence G1"].id,
"mode_params": "D30M50B.1G.2",
},
"Vote quadratique": {
"Vote forgeron (Smith)": {
"description": (
"Vote pondere par la racine carree des certifications. "
"Reduit l'influence des gros certificateurs et favorise "
"une participation large et diversifiee."
"Vote binaire avec double critere : seuil WoT standard + "
"seuil minimal de forgerons. Garantit que toute decision "
"impliquant les validateurs soit soutenue par les "
"operateurs du reseau. Utilise pour les engagements "
"forgerons et les decisions d'infrastructure."
),
"vote_type": "binary",
"formula_config_id": formulas["Forgeron avec Smith"].id,
"mode_params": "D30M50B.1G.2S.1",
},
"Vote permanent": {
"Vote Comite Technique": {
"description": (
"Vote continu sans date de fin. Le resultat evolue en "
"temps reel avec chaque nouveau vote. Adapte aux documents "
"de reference sous revision permanente."
"Vote binaire avec critere TechComm obligatoire. "
"Reserve aux decisions techniques critiques : runtime "
"upgrades, modifications de parametres on-chain, "
"approbation de code. Le Comite Technique doit atteindre "
"un seuil minimal independamment du vote communautaire."
),
"vote_type": "binary",
"formula_config_id": formulas["Comite Tech"].id,
@@ -912,7 +918,7 @@ async def run_seed():
await seed_votes_on_items(
session,
doc_forgeron,
protocols["Vote majoritaire"],
protocols["Vote WoT standard"],
voters,
)