Ejemplo: acta de la asamblea y turnos de la noche en la wiki.
+Convocatoria conjunta: el 26 de cada mes, todas las plazas a la vez. ES / PT / IT / FR / EN.
+diff --git a/mockup/css/deck.css b/mockup/css/deck.css new file mode 100644 index 0000000..7b48930 --- /dev/null +++ b/mockup/css/deck.css @@ -0,0 +1,81 @@ +@font-face { font-family: "Rubik Wet Paint"; src: url("../fonts/rubik-wet-paint.woff2") format("woff2"); font-display: swap; } +@font-face { font-family: "Special Elite"; src: url("../fonts/special-elite.woff2") format("woff2"); font-display: swap; } +@font-face { font-family: "Anton"; src: url("../fonts/anton.woff2") format("woff2"); font-display: swap; } + +:root { + --bg: #fff; + --fg: #000; + --neon: #ff1f1f; + --bd: 3px solid var(--fg); + --tit: "Rubik Wet Paint", Impact, sans-serif; + --zine: "Special Elite", "Courier New", monospace; + --bt: "Anton", Impact, "Arial Narrow", sans-serif; + --txt: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; +} + +*, *::before, *::after { box-sizing: border-box; } +body { margin: 0; background: var(--bg); color: var(--fg); font: 15px/1.45 var(--txt); } +a { color: inherit; } + +.cab { + display: grid; + grid-template-columns: 260px 1fr auto; + align-items: center; + gap: 20px; + padding: 10px 20px; + border-bottom: var(--bd); +} +.cab img { width: 100%; height: auto; display: block; } +h1 { + margin: 0; + font: 400 clamp(40px, 6vw, 84px)/1 var(--tit); + text-transform: uppercase; + text-shadow: .03em .03em 0 var(--neon), .06em .06em 0 var(--neon); +} +.lema { margin: 22px 0 0; font: 18px var(--zine); } +.idiomas { display: flex; gap: 6px; font: 16px var(--bt); } +.idiomas a { border: var(--bd); border-radius: 6px; padding: 2px 8px; text-decoration: none; box-shadow: 3px 3px 0 var(--fg); } +.idiomas a[aria-current] { background: var(--fg); color: var(--bg); box-shadow: 3px 3px 0 var(--neon); } + +.tags { display: flex; gap: 8px; flex-wrap: wrap; padding: 10px 20px; border-bottom: var(--bd); font: 15px var(--zine); } +.tags span { border: 2px dashed var(--fg); padding: 1px 8px; } +.tags span:first-child { background: var(--neon); color: #fff; border-style: solid; } + +.deck { display: grid; grid-template-columns: 220px 1fr; min-height: 70vh; } + +.arbol { border-right: var(--bd); padding: 14px 16px; font: 15px/1.7 var(--zine); } +.arbol h2, .col h2 { font: 400 22px/1 var(--bt); text-transform: uppercase; margin: 0 0 10px; } +.arbol ul { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid var(--fg); } +.arbol > ul { padding: 0; border: 0; } +.arbol .on { background: var(--fg); color: var(--bg); padding: 0 4px; } +.arbol .n { float: right; font: 13px var(--bt); } + +.cols { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr); overflow-x: auto; } +.col { border-right: var(--bd); padding: 14px 12px; } +.col h2 { display: flex; justify-content: space-between; align-items: baseline; border-bottom: var(--bd); padding-bottom: 6px; } +.col h2 small { font: 13px var(--zine); text-transform: none; } + +.post { border: var(--bd); border-radius: 8px; padding: 10px 12px; margin: 0 0 12px; box-shadow: 4px 4px 0 var(--fg); } +.post p { margin: 6px 0 0; } +.meta { display: flex; gap: 8px; justify-content: space-between; font: 13px var(--zine); } +.red { white-space: nowrap; font: 12px/1 var(--bt); text-transform: uppercase; border: 2px solid var(--fg); border-radius: 4px; padding: 2px 5px; } +.post.cola { box-shadow: 4px 4px 0 var(--neon); } +.votos { margin-top: 8px; display: flex; gap: 6px; align-items: center; font: 13px var(--zine); } +.votos b { font: 14px var(--bt); border: 2px solid var(--fg); border-radius: 4px; padding: 1px 8px; } +.votos b.si { background: var(--fg); color: var(--bg); } +.directo { background: var(--fg); color: var(--bg); } +.directo .red { border-color: var(--neon); background: var(--neon); color: #fff; } +.mapa { font: 14px/1.6 var(--zine); margin: 0; padding: 0; list-style: none; } +.mapa li { display: flex; justify-content: space-between; border-bottom: 1px dashed var(--fg); } +.mapa .ko { text-decoration: line-through; } + +@media (max-width: 700px) { + .cab { grid-template-columns: 1fr; text-align: center; padding: 10px 12px; } + .cab img { max-width: 360px; margin: 0 auto; } + .idiomas { justify-content: center; } + .tags { padding: 8px 12px; font-size: 13px; } + .deck { grid-template-columns: 1fr; } + .arbol { display: none; } + .cols { grid-auto-columns: 86vw; scroll-snap-type: x mandatory; } + .col { scroll-snap-align: start; } +} diff --git a/mockup/index.html b/mockup/index.html new file mode 100644 index 0000000..ea3acd8 --- /dev/null +++ b/mockup/index.html @@ -0,0 +1,101 @@ + + +
+ + +La vivienda es un derecho, no un negocio · red internacional de acampadas
+Convocatoria conjunta: el 26 de cada mes, todas las plazas a la vez. ES / PT / IT / FR / EN.
+Hilo traducido: qué es la huelga general del 11N y por qué empieza en las acampadas.
+Asamblea general desde la plaza. PeerTube + sala abierta.
+Ejemplo: acta de la asamblea y turnos de la noche en la wiki.
+Exemplo: tiraram as tendas, mas a assembleia continua. Concentração às 19h.
+Esempio: tende in cortile contro il caro affitti. 19/10 mobilitazione nazionale.
+Esempio: assemblea pubblica il 15/10.
+