Identidad: símbolo, logotipo (Dracutaz) y firma; dibujo nuevo con presencias; League Gothic
- docs/marca: símbolo (calle-persona) en positivo, negativo y naranja; logotipo en una y dos líneas, convertido a trazados; hoja de marca y alternativas de pincel (solo uso personal) - docs/calle.svg: calle pintada que se disuelve, sin edificios; las presencias forman una persona grande con el puño en alto - maqueta: firma en la cabecera, portada con lema y dibujo; League Gothic en lugar de New Rocker, Anton y Special Elite
43
README.md
|
|
@ -1,6 +1,8 @@
|
||||||
# TAKE THE STREET
|
# TAKE THE STREET
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
**takethestreet.net / takethestreet.org**: red internacional de las acampadas por la vivienda que nacieron en la Puerta del Sol el 26 de septiembre de 2026 (26S). La vivienda es un derecho, no un negocio.
|
**takethestreet.net / takethestreet.org**: red internacional de las acampadas por la vivienda que nacieron en la Puerta del Sol el 26 de septiembre de 2026 (26S). La vivienda es un derecho, no un negocio.
|
||||||
|
|
||||||
|
|
@ -110,18 +112,43 @@ Sin cuenta todavía: Granada, Oviedo, Alicante, Lanzarote, Tenerife, Las Palmas,
|
||||||
|
|
||||||
Las personas de enlace de cada ciudad no se ponen aquí: van en la sala cerrada del deck.
|
Las personas de enlace de cada ciudad no se ponen aquí: van en la sala cerrada del deck.
|
||||||
|
|
||||||
## 5. Maqueta
|
## 5. Identidad
|
||||||
|
|
||||||
`mockup/index.html` es HTML y CSS, sin JavaScript. Se abre directamente en el navegador. Sigue el estilo de acampada26s.net (blanco y negro, bordes de 3 px, sombra de color), pero con otras tipografías:
|
Tres piezas, cada una con su uso:
|
||||||
|
|
||||||
- títulos: **New Rocker** (gótica de cartel de rock, sin pasarse), OFL
|

|
||||||
- etiquetas: **Special Elite** (máquina de escribir de fanzine), Apache 2.0
|
|
||||||
- botones: **Anton**, OFL, la misma que 26s
|
|
||||||
|
|
||||||
El color es el naranja `#ff7a1a`. El dibujo `docs/calle.svg` es una calle en perspectiva con gente saliendo de los portales. La calzada, el bordillo, la acera y el paso de cebra van con línea limpia; los edificios, a mano alzada; y la gente, con trazo suelto de spray. Se genera con `tools/calle.py`, sin dependencias. Para regenerarlo:
|
- **Símbolo** (`docs/marca/simbolo*.svg`): una calle en perspectiva con una cabeza encima. La calle es el cuerpo de una persona: la gente es la calle. Repite la forma de las presencias del dibujo (cabeza y cuerpo afilado). Sirve para el favicon, los avatares de redes y las pegatinas, y se lee hasta a 16 px. Tres versiones: positivo, negativo y sobre naranja.
|
||||||
|
- **Logotipo** (`docs/marca/logotipo*.svg`): «TAKE THE STREET» en **Dracutaz**, de pincel, como la calle pintada. Va convertido a trazados, así que no hace falta la fuente. Hay versión en una línea y en dos, en negro, con STREET en naranja y en negativo.
|
||||||
|
- **Firma**: símbolo + logotipo. Es lo que va arriba a la izquierda de la web.
|
||||||
|
- **Ilustración** (`docs/calle.svg`): la imagen principal de la portada, nunca en la cabecera. Ver el apartado 6.
|
||||||
|
|
||||||
|
Color: naranja `#ff7a1a`, negro `#111` y blanco.
|
||||||
|
|
||||||
|
Tipografías:
|
||||||
|
|
||||||
|
- logotipo: **Dracutaz** (Dhabee Studio, freeware, uso comercial permitido), solo convertida a trazados
|
||||||
|
- titulares, botones y etiquetas: **League Gothic**, OFL (`mockup/fonts/`)
|
||||||
|
- texto: la fuente del sistema
|
||||||
|
|
||||||
|
### Alternativas para el logotipo
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Grindy Brush, Eagle Horizon, Brushed, Higher Jump y Future Outrun (1001fonts) son **solo para uso personal**. Para usarlas en el logotipo habría que comprar la licencia o pedir permiso a sus autores. Dracutaz no tiene ese problema.
|
||||||
|
|
||||||
|
## 6. Dibujo
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Una calle pintada a brochazos que se disuelve hacia arriba y hacia los lados, sin edificios. Encima, cientos de «presencias» (cabeza, cuerpo afilado y una sombra en diagonal), a la manera del mural *Presencias/Ausencias* de Suso33 en Tetuán: juntas forman una persona grande con el puño en alto. Unas pocas van en naranja. Se genera con `tools/calle.py`, sin dependencias:
|
||||||
|
|
||||||
```
|
```
|
||||||
python3 tools/calle.py docs/calle.svg
|
python3 tools/calle.py docs/calle.svg
|
||||||
```
|
```
|
||||||
|
|
||||||
Código AGPL-3.0. Textos y dibujo CC BY-SA 4.0. Tipografías: New Rocker y Anton (OFL), Special Elite (Apache 2.0).
|
## 7. Maqueta
|
||||||
|
|
||||||
|
`mockup/index.html` es HTML y CSS, sin JavaScript. Se abre directamente en el navegador. Sigue el estilo de acampada26s.net (blanco y negro, bordes de 3 px, sombra de color): firma en la cabecera, portada con el lema y el dibujo, y debajo el deck.Capturas al principio de este README.
|
||||||
|
|
||||||
|
Código AGPL-3.0. Textos y dibujo CC BY-SA 4.0. Tipografías: League Gothic (OFL); logotipo dibujado con Dracutaz (freeware).
|
||||||
|
|
|
||||||
2604
docs/calle.svg
|
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 112 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 53 KiB |
BIN
docs/deck.png
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 142 KiB |
BIN
docs/marca/alternativas.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
docs/marca/hoja.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
1
docs/marca/logotipo-2l.svg
Normal file
|
After Width: | Height: | Size: 185 KiB |
1
docs/marca/logotipo-naranja-2l.svg
Normal file
|
After Width: | Height: | Size: 185 KiB |
1
docs/marca/logotipo-naranja.svg
Normal file
|
After Width: | Height: | Size: 177 KiB |
1
docs/marca/logotipo-negativo-2l.svg
Normal file
|
After Width: | Height: | Size: 185 KiB |
1
docs/marca/logotipo-negativo.svg
Normal file
|
After Width: | Height: | Size: 177 KiB |
1
docs/marca/logotipo.svg
Normal file
|
After Width: | Height: | Size: 177 KiB |
5
docs/marca/simbolo-naranja.svg
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100"><rect width="100" height="100" fill="#ff7a1a"/>
|
||||||
|
<circle cx="50" cy="19" r="11.5" fill="#fff"/>
|
||||||
|
<path d="M46.5,37 L53.5,37 L84,92 L16,92 Z" fill="#111"/>
|
||||||
|
<path d="M49.4,46 h1.2 l.3,7 h-1.8 Z M48.9,60 h2.2 l.5,10 h-3.2 Z M48.2,77 h3.6 l.7,15 h-5 Z" fill="#ff7a1a"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 358 B |
5
docs/marca/simbolo-negativo.svg
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100"><rect width="100" height="100" fill="#111"/>
|
||||||
|
<circle cx="50" cy="19" r="11.5" fill="#ff7a1a"/>
|
||||||
|
<path d="M46.5,37 L53.5,37 L84,92 L16,92 Z" fill="#fff"/>
|
||||||
|
<path d="M49.4,46 h1.2 l.3,7 h-1.8 Z M48.9,60 h2.2 l.5,10 h-3.2 Z M48.2,77 h3.6 l.7,15 h-5 Z" fill="#111"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 355 B |
5
docs/marca/simbolo.svg
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100">
|
||||||
|
<circle cx="50" cy="19" r="11.5" fill="#ff7a1a"/>
|
||||||
|
<path d="M46.5,37 L53.5,37 L84,92 L16,92 Z" fill="#111"/>
|
||||||
|
<path d="M49.4,46 h1.2 l.3,7 h-1.8 Z M48.9,60 h2.2 l.5,10 h-3.2 Z M48.2,77 h3.6 l.7,15 h-5 Z" fill="#fff"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 311 B |
|
|
@ -1,15 +1,11 @@
|
||||||
@font-face { font-family: "New Rocker"; src: url("../fonts/new-rocker.woff2") format("woff2"); font-display: swap; }
|
@font-face { font-family: "League Gothic"; src: url("../fonts/league-gothic.ttf") format("truetype"); 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 {
|
:root {
|
||||||
--bg: #fff;
|
--bg: #fff;
|
||||||
--fg: #000;
|
--fg: #111;
|
||||||
--neon: #ff7a1a;
|
--neon: #ff7a1a;
|
||||||
--bd: 3px solid var(--fg);
|
--bd: 3px solid var(--fg);
|
||||||
--tit: "New Rocker", "Old English Text MT", Georgia, serif;
|
--bt: "League Gothic", "Arial Narrow", 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;
|
--txt: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -18,31 +14,32 @@ body { margin: 0; background: var(--bg); color: var(--fg); font: 15px/1.45 var(-
|
||||||
a { color: inherit; }
|
a { color: inherit; }
|
||||||
|
|
||||||
.cab {
|
.cab {
|
||||||
display: grid;
|
display: flex;
|
||||||
grid-template-columns: 340px 1fr auto;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
border-bottom: var(--bd);
|
border-bottom: var(--bd);
|
||||||
}
|
}
|
||||||
.cab img { width: 100%; height: auto; display: block; }
|
.firma { display: flex; align-items: center; gap: 12px; }
|
||||||
h1 {
|
.firma .simbolo { height: 52px; }
|
||||||
margin: 0;
|
.firma .logotipo { height: 34px; }
|
||||||
font: 400 clamp(44px, 6.5vw, 96px)/1 var(--tit);
|
.idiomas { display: flex; gap: 6px; font: 20px/1 var(--bt); letter-spacing: .04em; }
|
||||||
text-shadow: .03em .03em 0 var(--neon), .06em .06em 0 var(--neon);
|
.idiomas a { border: var(--bd); border-radius: 6px; padding: 4px 9px 2px; text-decoration: none; box-shadow: 3px 3px 0 var(--fg); }
|
||||||
}
|
|
||||||
.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); }
|
.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); }
|
.portada { padding: 36px 0 0; border-bottom: var(--bd); text-align: center; }
|
||||||
|
.calle { display: block; width: 100%; max-width: 1100px; height: auto; margin: -10px auto 0; }
|
||||||
|
.lema { margin: 0; font: 400 clamp(40px, 6vw, 80px)/.95 var(--bt); text-transform: uppercase; }
|
||||||
|
.sub { margin: 10px 0 0; font: 20px var(--bt); letter-spacing: .12em; text-transform: uppercase; color: var(--neon); }
|
||||||
|
|
||||||
|
.tags { display: flex; gap: 8px; flex-wrap: wrap; padding: 10px 20px; border-bottom: var(--bd); font: 18px var(--bt); letter-spacing: .03em; }
|
||||||
.tags span { border: 2px dashed var(--fg); padding: 1px 8px; }
|
.tags span { border: 2px dashed var(--fg); padding: 1px 8px; }
|
||||||
.tags span:first-child { background: var(--neon); color: #fff; border-style: solid; }
|
.tags span:first-child { background: var(--neon); color: #fff; border-style: solid; }
|
||||||
|
|
||||||
.deck { display: grid; grid-template-columns: 220px 1fr; min-height: 70vh; }
|
.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 { border-right: var(--bd); padding: 14px 16px; font: 15px/1.7 var(--txt); }
|
||||||
.arbol h2, .col h2 { font: 400 22px/1 var(--bt); text-transform: uppercase; margin: 0 0 10px; }
|
.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 { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid var(--fg); }
|
||||||
.arbol > ul { padding: 0; border: 0; }
|
.arbol > ul { padding: 0; border: 0; }
|
||||||
|
|
@ -52,26 +49,28 @@ h1 {
|
||||||
.cols { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr); overflow-x: auto; }
|
.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 { 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 { 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; }
|
.col h2 small { font: 13px var(--txt); 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 { 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; }
|
.post p { margin: 6px 0 0; }
|
||||||
.meta { display: flex; gap: 8px; justify-content: space-between; font: 13px var(--zine); }
|
.meta { display: flex; gap: 8px; justify-content: space-between; font: 13px var(--txt); }
|
||||||
.red { white-space: nowrap; font: 12px/1 var(--bt); text-transform: uppercase; border: 2px solid var(--fg); border-radius: 4px; padding: 2px 5px; }
|
.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); }
|
.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 { margin-top: 8px; display: flex; gap: 6px; align-items: center; font: 13px var(--txt); }
|
||||||
.votos b { font: 14px var(--bt); border: 2px solid var(--fg); border-radius: 4px; padding: 1px 8px; }
|
.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); }
|
.votos b.si { background: var(--fg); color: var(--bg); }
|
||||||
.directo { background: var(--fg); color: var(--bg); }
|
.directo { background: var(--fg); color: var(--bg); }
|
||||||
.directo .red { border-color: var(--neon); background: var(--neon); color: #fff; }
|
.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 { font: 14px/1.6 var(--txt); margin: 0; padding: 0; list-style: none; }
|
||||||
.mapa li { display: flex; justify-content: space-between; border-bottom: 1px dashed var(--fg); }
|
.mapa li { display: flex; justify-content: space-between; border-bottom: 1px dashed var(--fg); }
|
||||||
.mapa .ko { text-decoration: line-through; }
|
.mapa .ko { text-decoration: line-through; }
|
||||||
|
|
||||||
@media (max-width: 700px) {
|
@media (max-width: 700px) {
|
||||||
.cab { grid-template-columns: 1fr; text-align: center; padding: 10px 12px; }
|
.cab { flex-direction: column; padding: 10px 12px; }
|
||||||
.cab img { max-width: 360px; margin: 0 auto; }
|
.firma .simbolo { height: 40px; }
|
||||||
.idiomas { justify-content: center; }
|
.firma .logotipo { height: 26px; }
|
||||||
|
.portada { padding-top: 20px; }
|
||||||
|
.calle { width: 150%; margin: 0 0 0 -25%; max-width: none; }
|
||||||
.tags { padding: 8px 12px; font-size: 13px; }
|
.tags { padding: 8px 12px; font-size: 13px; }
|
||||||
.deck { grid-template-columns: 1fr; }
|
.deck { grid-template-columns: 1fr; }
|
||||||
.arbol { display: none; }
|
.arbol { display: none; }
|
||||||
|
|
|
||||||
|
|
@ -1,202 +0,0 @@
|
||||||
|
|
||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
@ -1,93 +1,93 @@
|
||||||
Copyright 2020 The Anton Project Authors (https://github.com/googlefonts/AntonFont.git)
|
Copyright 2010 The League Gothic Project Authors (https://github.com/theleagueof/league-gothic)
|
||||||
|
|
||||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
This license is copied below, and is also available with a FAQ at:
|
This license is copied below, and is also available with a FAQ at:
|
||||||
http://scripts.sil.org/OFL
|
https://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
|
|
||||||
PREAMBLE
|
PREAMBLE
|
||||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
development of collaborative font projects, to support the font creation
|
development of collaborative font projects, to support the font creation
|
||||||
efforts of academic and linguistic communities, and to provide a free and
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
open framework in which fonts may be shared and improved in partnership
|
open framework in which fonts may be shared and improved in partnership
|
||||||
with others.
|
with others.
|
||||||
|
|
||||||
The OFL allows the licensed fonts to be used, studied, modified and
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
redistributed freely as long as they are not sold by themselves. The
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
fonts, including any derivative works, can be bundled, embedded,
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
redistributed and/or sold with any software provided that any reserved
|
redistributed and/or sold with any software provided that any reserved
|
||||||
names are not used by derivative works. The fonts and derivatives,
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
however, cannot be released under any other type of license. The
|
however, cannot be released under any other type of license. The
|
||||||
requirement for fonts to remain under this license does not apply
|
requirement for fonts to remain under this license does not apply
|
||||||
to any document created using the fonts or their derivatives.
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
DEFINITIONS
|
DEFINITIONS
|
||||||
"Font Software" refers to the set of files released by the Copyright
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
Holder(s) under this license and clearly marked as such. This may
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
include source files, build scripts and documentation.
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
"Reserved Font Name" refers to any names specified as such after the
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
copyright statement(s).
|
copyright statement(s).
|
||||||
|
|
||||||
"Original Version" refers to the collection of Font Software components as
|
"Original Version" refers to the collection of Font Software components as
|
||||||
distributed by the Copyright Holder(s).
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
or substituting -- in part or in whole -- any of the components of the
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
Original Version, by changing formats or by porting the Font Software to a
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
new environment.
|
new environment.
|
||||||
|
|
||||||
"Author" refers to any designer, engineer, programmer, technical
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
writer or other person who contributed to the Font Software.
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
PERMISSION & CONDITIONS
|
PERMISSION & CONDITIONS
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
redistribute, and sell modified and unmodified copies of the Font
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
Software, subject to the following conditions:
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
1) Neither the Font Software nor any of its individual components,
|
1) Neither the Font Software nor any of its individual components,
|
||||||
in Original or Modified Versions, may be sold by itself.
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
2) Original or Modified Versions of the Font Software may be bundled,
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
redistributed and/or sold with any software, provided that each copy
|
redistributed and/or sold with any software, provided that each copy
|
||||||
contains the above copyright notice and this license. These can be
|
contains the above copyright notice and this license. These can be
|
||||||
included either as stand-alone text files, human-readable headers or
|
included either as stand-alone text files, human-readable headers or
|
||||||
in the appropriate machine-readable metadata fields within text or
|
in the appropriate machine-readable metadata fields within text or
|
||||||
binary files as long as those fields can be easily viewed by the user.
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
3) No Modified Version of the Font Software may use the Reserved Font
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
Name(s) unless explicit written permission is granted by the corresponding
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
Copyright Holder. This restriction only applies to the primary font name as
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
presented to the users.
|
presented to the users.
|
||||||
|
|
||||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
Software shall not be used to promote, endorse or advertise any
|
Software shall not be used to promote, endorse or advertise any
|
||||||
Modified Version, except to acknowledge the contribution(s) of the
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
permission.
|
permission.
|
||||||
|
|
||||||
5) The Font Software, modified or unmodified, in part or in whole,
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
must be distributed entirely under this license, and must not be
|
must be distributed entirely under this license, and must not be
|
||||||
distributed under any other license. The requirement for fonts to
|
distributed under any other license. The requirement for fonts to
|
||||||
remain under this license does not apply to any document created
|
remain under this license does not apply to any document created
|
||||||
using the Font Software.
|
using the Font Software.
|
||||||
|
|
||||||
TERMINATION
|
TERMINATION
|
||||||
This license becomes null and void if any of the above conditions are
|
This license becomes null and void if any of the above conditions are
|
||||||
not met.
|
not met.
|
||||||
|
|
||||||
DISCLAIMER
|
DISCLAIMER
|
||||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
|
|
@ -1,96 +0,0 @@
|
||||||
Copyright (c) 2011, Pablo Impallari (www.impallari.com|impallari@gmail.com),
|
|
||||||
Copyright (c) 2011, Brenda Gallo (gbrenda1987@gmail.com),
|
|
||||||
Copyright (c) 2011, Rodrigo Fuenzalida (www.rfuenzalida.com|hello@rfuenzalida.com),
|
|
||||||
with Reserved Font Name 'New Rocker'
|
|
||||||
|
|
||||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
||||||
This license is copied below, and is also available with a FAQ at:
|
|
||||||
http://scripts.sil.org/OFL
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------
|
|
||||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
||||||
-----------------------------------------------------------
|
|
||||||
|
|
||||||
PREAMBLE
|
|
||||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
||||||
development of collaborative font projects, to support the font creation
|
|
||||||
efforts of academic and linguistic communities, and to provide a free and
|
|
||||||
open framework in which fonts may be shared and improved in partnership
|
|
||||||
with others.
|
|
||||||
|
|
||||||
The OFL allows the licensed fonts to be used, studied, modified and
|
|
||||||
redistributed freely as long as they are not sold by themselves. The
|
|
||||||
fonts, including any derivative works, can be bundled, embedded,
|
|
||||||
redistributed and/or sold with any software provided that any reserved
|
|
||||||
names are not used by derivative works. The fonts and derivatives,
|
|
||||||
however, cannot be released under any other type of license. The
|
|
||||||
requirement for fonts to remain under this license does not apply
|
|
||||||
to any document created using the fonts or their derivatives.
|
|
||||||
|
|
||||||
DEFINITIONS
|
|
||||||
"Font Software" refers to the set of files released by the Copyright
|
|
||||||
Holder(s) under this license and clearly marked as such. This may
|
|
||||||
include source files, build scripts and documentation.
|
|
||||||
|
|
||||||
"Reserved Font Name" refers to any names specified as such after the
|
|
||||||
copyright statement(s).
|
|
||||||
|
|
||||||
"Original Version" refers to the collection of Font Software components as
|
|
||||||
distributed by the Copyright Holder(s).
|
|
||||||
|
|
||||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
||||||
or substituting -- in part or in whole -- any of the components of the
|
|
||||||
Original Version, by changing formats or by porting the Font Software to a
|
|
||||||
new environment.
|
|
||||||
|
|
||||||
"Author" refers to any designer, engineer, programmer, technical
|
|
||||||
writer or other person who contributed to the Font Software.
|
|
||||||
|
|
||||||
PERMISSION & CONDITIONS
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
|
||||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
||||||
redistribute, and sell modified and unmodified copies of the Font
|
|
||||||
Software, subject to the following conditions:
|
|
||||||
|
|
||||||
1) Neither the Font Software nor any of its individual components,
|
|
||||||
in Original or Modified Versions, may be sold by itself.
|
|
||||||
|
|
||||||
2) Original or Modified Versions of the Font Software may be bundled,
|
|
||||||
redistributed and/or sold with any software, provided that each copy
|
|
||||||
contains the above copyright notice and this license. These can be
|
|
||||||
included either as stand-alone text files, human-readable headers or
|
|
||||||
in the appropriate machine-readable metadata fields within text or
|
|
||||||
binary files as long as those fields can be easily viewed by the user.
|
|
||||||
|
|
||||||
3) No Modified Version of the Font Software may use the Reserved Font
|
|
||||||
Name(s) unless explicit written permission is granted by the corresponding
|
|
||||||
Copyright Holder. This restriction only applies to the primary font name as
|
|
||||||
presented to the users.
|
|
||||||
|
|
||||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
||||||
Software shall not be used to promote, endorse or advertise any
|
|
||||||
Modified Version, except to acknowledge the contribution(s) of the
|
|
||||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
||||||
permission.
|
|
||||||
|
|
||||||
5) The Font Software, modified or unmodified, in part or in whole,
|
|
||||||
must be distributed entirely under this license, and must not be
|
|
||||||
distributed under any other license. The requirement for fonts to
|
|
||||||
remain under this license does not apply to any document created
|
|
||||||
using the Font Software.
|
|
||||||
|
|
||||||
TERMINATION
|
|
||||||
This license becomes null and void if any of the above conditions are
|
|
||||||
not met.
|
|
||||||
|
|
||||||
DISCLAIMER
|
|
||||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
||||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
||||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
||||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
||||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
||||||
BIN
mockup/fonts/league-gothic.ttf
Normal file
|
|
@ -4,18 +4,21 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>TAKE THE STREET · deck (maqueta)</title>
|
<title>TAKE THE STREET · deck (maqueta)</title>
|
||||||
|
<link rel="icon" href="../docs/marca/simbolo.svg">
|
||||||
<link rel="stylesheet" href="css/deck.css">
|
<link rel="stylesheet" href="css/deck.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header class="cab">
|
<header class="cab">
|
||||||
<img src="../docs/calle.svg" alt="Calle en perspectiva con gente saliendo de los portales">
|
<a class="firma" href="#"><img class="simbolo" src="../docs/marca/simbolo.svg" alt=""><img class="logotipo" src="../docs/marca/logotipo-naranja.svg" alt="Take the Street"></a>
|
||||||
<div>
|
|
||||||
<h1>Take the Street</h1>
|
|
||||||
<p class="lema">La vivienda es un derecho, no un negocio · red internacional de acampadas</p>
|
|
||||||
</div>
|
|
||||||
<nav class="idiomas"><a href="#" aria-current="page">ES</a><a href="#">EN</a><a href="#">PT</a><a href="#">IT</a><a href="#">FR</a></nav>
|
<nav class="idiomas"><a href="#" aria-current="page">ES</a><a href="#">EN</a><a href="#">PT</a><a href="#">IT</a><a href="#">FR</a></nav>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
|
<section class="portada">
|
||||||
|
<p class="lema">La vivienda es un derecho,<br>no un negocio</p>
|
||||||
|
<p class="sub">Red internacional de acampadas · 26S</p>
|
||||||
|
<img class="calle" src="../docs/calle.svg" alt="Una multitud en la calle forma una persona grande con el puño en alto">
|
||||||
|
</section>
|
||||||
|
|
||||||
<div class="tags"><span>#takethestreet</span><span>#26s</span><span>#acampadaporto</span><span>#generazionesenzacasa</span><span>#11N</span><span>#viviendaya</span></div>
|
<div class="tags"><span>#takethestreet</span><span>#26s</span><span>#acampadaporto</span><span>#generazionesenzacasa</span><span>#11N</span><span>#viviendaya</span></div>
|
||||||
|
|
||||||
<main class="deck">
|
<main class="deck">
|
||||||
|
|
|
||||||
232
tools/calle.py
|
|
@ -1,156 +1,108 @@
|
||||||
# Genera docs/calle.svg: calle en perspectiva, gente saliendo de los portales.
|
# Genera docs/calle.svg: calle pintada que se disuelve, con «presencias» que,
|
||||||
# Calzada y acera con líneas limpias; edificios a mano alzada; gente con trazo difuso.
|
# juntas, forman una figura grande con el puño en alto (a la manera de Suso33).
|
||||||
import sys, random, math
|
import sys, random, math
|
||||||
random.seed(1310)
|
random.seed(26)
|
||||||
OUT = sys.argv[1]
|
OUT = sys.argv[1]
|
||||||
W, H = 1200, 640
|
W, H = 1600, 900
|
||||||
VX, VY, F = 600, 205, 500 # punto de fuga y focal
|
VX, VY = 800, 70 # punto de fuga
|
||||||
EYE = 4.0 # cámara a 4 m (desde un balcón)
|
|
||||||
ROAD, WALK, TOP = 3.4, 6.6, -16.0 # medio ancho calzada, fachada, altura
|
|
||||||
INK, ORA = "#111", "#ff7a1a"
|
INK, ORA = "#111", "#ff7a1a"
|
||||||
o = []
|
o = []
|
||||||
add = o.append
|
add = o.append
|
||||||
|
|
||||||
def P(X, Y, Z): # Y hacia abajo, suelo en Y = EYE
|
def esc(y): # tamaño según la distancia
|
||||||
return VX + X * F / Z, VY + Y * F / Z
|
return max(0.0, (y - VY) / (H - VY))
|
||||||
def poly(pts, **a):
|
|
||||||
d = "M" + " L".join(f"{x:.1f},{y:.1f}" for x, y in pts) + "Z"
|
|
||||||
add(f'<path d="{d}" ' + " ".join(f'{k.replace("_","-")}="{v}"' for k, v in a.items()) + "/>")
|
|
||||||
def line(p, q, w, filt=None, col=INK, op=1):
|
|
||||||
f = f' filter="url(#{filt})"' if filt else ""
|
|
||||||
add(f'<line x1="{p[0]:.1f}" y1="{p[1]:.1f}" x2="{q[0]:.1f}" y2="{q[1]:.1f}" stroke="{col}" stroke-width="{w:.1f}" stroke-linecap="round" opacity="{op}"{f}/>')
|
|
||||||
|
|
||||||
ZN, ZF = 4.4, 400.0
|
def edge(xb, y): # x de una recta que va del punto de fuga a (xb, H)
|
||||||
add(f'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {W} {H}" width="{W}" height="{H}">')
|
return VX + (xb - VX) * esc(y)
|
||||||
|
|
||||||
|
Y0 = 210 # lo de arriba queda en blanco: se recorta
|
||||||
|
add(f'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 {Y0} {W} {H - Y0}" width="{W}" height="{H - Y0}">')
|
||||||
add('''<defs>
|
add('''<defs>
|
||||||
<filter id="lapiz" x="-5%" y="-5%" width="110%" height="110%"><feTurbulence type="fractalNoise" baseFrequency="0.035" numOctaves="2" seed="3"/><feDisplacementMap in="SourceGraphic" scale="4"/></filter>
|
<filter id="brocha" x="-10%" y="-10%" width="120%" height="120%"><feTurbulence type="fractalNoise" baseFrequency="0.015 0.15" numOctaves="3" seed="4" result="t"/><feDisplacementMap in="SourceGraphic" in2="t" scale="6"/></filter>
|
||||||
<filter id="trazo" x="-30%" y="-30%" width="160%" height="160%"><feTurbulence type="fractalNoise" baseFrequency="0.13" numOctaves="2" seed="5" result="t"/><feDisplacementMap in="SourceGraphic" in2="t" scale="3.5" result="d"/><feGaussianBlur in="d" stdDeviation="0.45"/></filter>
|
<filter id="pintura" x="-20%" y="-20%" width="140%" height="140%"><feTurbulence type="fractalNoise" baseFrequency="0.6" numOctaves="2" seed="9" result="t"/><feDisplacementMap in="SourceGraphic" in2="t" scale="2.2"/></filter>
|
||||||
<filter id="spray" x="-30%" y="-30%" width="160%" height="160%"><feTurbulence type="fractalNoise" baseFrequency="0.09" numOctaves="3" seed="8" result="t"/><feDisplacementMap in="SourceGraphic" in2="t" scale="9" result="d"/><feGaussianBlur in="d" stdDeviation="0.7"/></filter>
|
<filter id="sombra" x="-20%" y="-20%" width="140%" height="140%"><feGaussianBlur stdDeviation="1.2"/></filter>
|
||||||
<radialGradient id="luz"><stop offset="0" stop-color="#ff7a1a" stop-opacity=".9"/><stop offset="1" stop-color="#ff7a1a" stop-opacity="0"/></radialGradient>
|
<filter id="grano"><feTurbulence type="fractalNoise" baseFrequency="0.012 0.05" numOctaves="4" seed="2"/><feColorMatrix values="0 0 0 0 0.07 0 0 0 0 0.07 0 0 0 0 0.07 0 0 0 -2.2 1.25"/></filter>
|
||||||
<clipPath id="lienzo"><rect width="1200" height="640"/></clipPath>
|
<linearGradient id="fv" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#000"/><stop offset=".3" stop-color="#000"/><stop offset=".62" stop-color="#fff"/></linearGradient>
|
||||||
|
<radialGradient id="fh" cx=".5" cy=".95" r=".75"><stop offset=".55" stop-color="#fff"/><stop offset="1" stop-color="#000"/></radialGradient>
|
||||||
|
<linearGradient id="gl"><stop offset="0" stop-color="#000"/><stop offset=".12" stop-color="#fff"/><stop offset=".88" stop-color="#fff"/><stop offset="1" stop-color="#000"/></linearGradient>
|
||||||
|
<mask id="lados" maskUnits="userSpaceOnUse" x="0" y="0" width="1600" height="900"><rect width="1600" height="900" fill="url(#gl)"/></mask>
|
||||||
|
<mask id="borde" maskUnits="userSpaceOnUse" x="0" y="0" width="1600" height="900"><rect width="1600" height="900" fill="url(#fh)"/></mask>
|
||||||
|
<mask id="disipa" maskUnits="userSpaceOnUse" x="0" y="0" width="1600" height="900"><g mask="url(#borde)"><rect width="1600" height="900" fill="url(#fv)"/></g></mask>
|
||||||
</defs>''')
|
</defs>''')
|
||||||
add(f'<g clip-path="url(#lienzo)"><rect width="{W}" height="{H}" fill="#fff"/>')
|
|
||||||
|
|
||||||
# luz naranja al fondo de la calle
|
# --- calle pintada: todo dentro de la máscara que la disipa ---
|
||||||
add(f'<ellipse cx="{VX}" cy="{VY-10}" rx="170" ry="120" fill="url(#luz)"/>')
|
add('<g mask="url(#lados)"><g mask="url(#disipa)">')
|
||||||
add(f'<g filter="url(#spray)">')
|
road = [(VX, VY), (edge(-150, H), H), (edge(1750, H), H)]
|
||||||
for _ in range(28):
|
add(f'<path d="M{VX},{VY} L-150,{H} L1750,{H}Z" fill="#f1efe9"/>')
|
||||||
a = random.uniform(0, 2*math.pi); r = random.uniform(30, 190)
|
def brush(x0, y0, x1, y1, w, n, col=INK, op=.85):
|
||||||
add(f'<circle cx="{VX+r*math.cos(a)*1.2:.0f}" cy="{VY-10+r*math.sin(a)*.7:.0f}" r="{random.uniform(1.5,6):.1f}" fill="{ORA}"/>')
|
for _ in range(n):
|
||||||
add('</g>')
|
j = lambda: random.uniform(-w, w) * .5
|
||||||
|
add(f'<line x1="{x0+j():.1f}" y1="{y0+j():.1f}" x2="{x1+j():.1f}" y2="{y1+j():.1f}" '
|
||||||
|
f'stroke="{col}" stroke-width="{random.uniform(w*.25, w*.6):.1f}" stroke-linecap="round" opacity="{random.uniform(op*.5, op):.2f}"/>')
|
||||||
|
add('<g filter="url(#brocha)">')
|
||||||
|
for xb, w in ((-150, 26), (1750, 26)): # bordillos
|
||||||
|
y0 = VY + 40
|
||||||
|
brush(edge(xb, y0), y0, xb, H + 30, w, 7)
|
||||||
|
add('</g></g></g>')
|
||||||
|
|
||||||
# --- fachadas (a mano alzada) ---
|
# --- figura grande: siluetas sencillas en coordenadas de la imagen ---
|
||||||
def fachada(s):
|
def cap(px, py, ax, ay, bx, by, r): # cápsula (segmento con radio)
|
||||||
X = s * WALK
|
dx, dy = bx - ax, by - ay
|
||||||
# línea de cornisas / pisos
|
t = max(0, min(1, ((px - ax) * dx + (py - ay) * dy) / (dx * dx + dy * dy)))
|
||||||
for Y in (EYE - 3.2, EYE - 6.8, EYE - 10.4, EYE - 14.0):
|
return math.hypot(px - (ax + t * dx), py - (ay + t * dy)) < r
|
||||||
line(P(X, Y, ZN), P(X, Y, ZF), 2.2, "lapiz")
|
K, YT = .8, 250 # escala y altura de la figura
|
||||||
# aristas verticales de los portales y ventanas
|
def dentro(x, y):
|
||||||
z = ZN + 1.2
|
x, y = 800 + (x - 800) / K, 60 + (y - YT) / K
|
||||||
i = 0
|
return (math.hypot(x - 772, (y - 205) * .9) < 56 or # cabeza
|
||||||
while z < 90:
|
cap(x, y, 790, 372, 815, 560, 88) or # tronco
|
||||||
dz = 1.5
|
cap(x, y, 735, 360, 590, 270, 34) or cap(x, y, 590, 270, 560, 150, 32) or # brazo en alto
|
||||||
# portal
|
math.hypot(x - 556, y - 128) < 46 or # puño
|
||||||
poly([P(X, EYE, z), P(X, EYE - 2.6, z), P(X, EYE - 2.6, z + dz), P(X, EYE, z + dz)],
|
cap(x, y, 880, 360, 960, 470, 32) or cap(x, y, 960, 470, 935, 585, 30) or # brazo bajo
|
||||||
fill=ORA if i % 2 == 0 else "#fff", stroke=INK, stroke_width=f"{max(1.2, 30/z):.1f}", filter="url(#lapiz)")
|
cap(x, y, 770, 590, 700, 735, 44) or cap(x, y, 700, 735, 650, 870, 40) or # pierna
|
||||||
if i % 2 == 1:
|
cap(x, y, 860, 590, 940, 720, 44) or cap(x, y, 940, 720, 1010, 860, 40)) # pierna
|
||||||
poly([P(X, EYE, z+.2), P(X, EYE - 2.4, z+.2), P(X, EYE - 2.4, z + dz-.2), P(X, EYE, z + dz-.2)], fill=INK, opacity=".85", filter="url(#lapiz)")
|
|
||||||
# ventanas encima
|
|
||||||
for Yb in (EYE - 4.2, EYE - 7.8, EYE - 11.4):
|
|
||||||
poly([P(X, Yb, z+.15), P(X, Yb - 1.8, z+.15), P(X, Yb - 1.8, z + dz-.15), P(X, Yb, z + dz-.15)],
|
|
||||||
fill="none", stroke=INK, stroke_width=f"{max(.8, 18/z):.1f}", filter="url(#lapiz)")
|
|
||||||
z += dz + 2.2 + z * .12
|
|
||||||
i += 1
|
|
||||||
fachada(-1); fachada(1)
|
|
||||||
|
|
||||||
# --- acera y calzada (líneas limpias) ---
|
# --- presencias ---
|
||||||
for s in (-1, 1):
|
def presencia(x, y, s, col):
|
||||||
# acera (gris claro) y bordillo
|
h = 46 * s # alto de la figura
|
||||||
poly([P(s*ROAD, EYE-.15, ZN), P(s*WALK, EYE-.15, ZN), P(s*WALK, EYE-.15, ZF), P(s*ROAD, EYE-.15, ZF)], fill="#f2f2f2")
|
r = h * random.uniform(.10, .13) # cabeza
|
||||||
poly([P(s*ROAD, EYE-.15, ZN), P(s*ROAD, EYE, ZN), P(s*ROAD, EYE, ZF), P(s*ROAD, EYE-.15, ZF)], fill=INK)
|
lean = random.uniform(-.12, .12) * h
|
||||||
line(P(s*ROAD, EYE-.15, ZN), P(s*ROAD, EYE-.15, ZF), 3)
|
w = h * random.uniform(.13, .19) # hombros
|
||||||
line(P(s*WALK, EYE, ZN), P(s*WALK, EYE, ZF), 3)
|
fx = x + lean # pies
|
||||||
# juntas de las baldosas
|
# sombra hacia abajo a la derecha
|
||||||
z = ZN
|
L = h * random.uniform(.9, 1.3)
|
||||||
while z < 120:
|
add(f'<path d="M{fx-w*.25:.1f},{y:.1f} L{fx+L*.85:.1f},{y+L*.42:.1f} L{fx+L*.85+w*.25:.1f},{y+L*.42-w*.2:.1f} L{fx+w*.3:.1f},{y-w*.15:.1f}Z" fill="{INK}" opacity=".22" filter="url(#sombra)"/>')
|
||||||
line(P(s*ROAD, EYE-.15, z), P(s*WALK, EYE-.15, z), max(.6, 9/z))
|
sx, sy = x, y - h + 2 * r # hombros
|
||||||
z *= 1.12
|
split = random.random() < .35 # piernas abiertas al andar
|
||||||
for k in (1, 2):
|
if split:
|
||||||
Xk = s * (ROAD + (WALK - ROAD) * k / 3)
|
d = (f'M{sx-w/2:.1f},{sy:.1f} Q{sx-w*.55:.1f},{sy+h*.35:.1f} {fx-w*.32:.1f},{y:.1f} '
|
||||||
line(P(Xk, EYE-.15, ZN), P(Xk, EYE-.15, ZF), .8, op=.6)
|
f'L{fx-w*.12:.1f},{y:.1f} L{fx:.1f},{y-h*.3:.1f} L{fx+w*.12:.1f},{y:.1f} L{fx+w*.32:.1f},{y:.1f} '
|
||||||
# línea discontinua central
|
f'Q{sx+w*.55:.1f},{sy+h*.35:.1f} {sx+w/2:.1f},{sy:.1f} Z')
|
||||||
z = ZN
|
|
||||||
while z < 200:
|
|
||||||
poly([P(-.08, EYE, z), P(.08, EYE, z), P(.08, EYE, z+2.2), P(-.08, EYE, z+2.2)], fill=INK)
|
|
||||||
z += 2.2 + 2.6 + z * .08
|
|
||||||
# bordes de la calzada
|
|
||||||
for s in (-1, 1):
|
|
||||||
line(P(s*(ROAD-.25), EYE, ZN), P(s*(ROAD-.25), EYE, ZF), 2.4)
|
|
||||||
# paso de cebra delante
|
|
||||||
for i in range(-6, 7):
|
|
||||||
x0 = i * .52
|
|
||||||
poly([P(x0-.2, EYE, ZN+.2), P(x0+.2, EYE, ZN+.2), P(x0+.2, EYE, ZN+2.6), P(x0-.2, EYE, ZN+2.6)], fill=INK)
|
|
||||||
|
|
||||||
# --- gente (trazo difuso) ---
|
|
||||||
def persona(X, Z, col=INK, pose=None):
|
|
||||||
x, y = P(X, EYE, Z)
|
|
||||||
h = 1.72 * F / Z
|
|
||||||
if pose is None:
|
|
||||||
pose = random.choice(["anda", "anda", "puño", "brazos", "anda"])
|
|
||||||
paso = random.uniform(-1, 1)
|
|
||||||
w = max(1.1, .042 * h)
|
|
||||||
hd = (x + random.uniform(-.02, .02) * h, y - .9 * h)
|
|
||||||
nk, hip = (x, y - .8 * h), (x + paso * .01 * h, y - .48 * h)
|
|
||||||
sh_l, sh_r = (x - .11 * h, y - .78 * h), (x + .11 * h, y - .78 * h)
|
|
||||||
pie_l, pie_r = (x - .05*h - paso*.08*h, y), (x + .05*h + paso*.08*h, y)
|
|
||||||
rod_l, rod_r = (x - .04*h - paso*.04*h, y - .25*h), (x + .04*h + paso*.05*h, y - .25*h)
|
|
||||||
if pose == "puño":
|
|
||||||
m_l, c_l = (x - .14*h, y - .46*h), (x - .15*h, y - .62*h)
|
|
||||||
m_r, c_r = (x + .1*h, y - 1.18*h), (x + .17*h, y - .98*h)
|
|
||||||
elif pose == "brazos":
|
|
||||||
m_l, c_l = (x - .26*h, y - 1.12*h), (x - .2*h, y - .95*h)
|
|
||||||
m_r, c_r = (x + .26*h, y - 1.12*h), (x + .2*h, y - .95*h)
|
|
||||||
else:
|
else:
|
||||||
m_l, c_l = (x - .15*h - paso*.05*h, y - .44*h), (x - .16*h, y - .6*h)
|
d = (f'M{sx-w/2:.1f},{sy:.1f} Q{sx-w*.45:.1f},{sy+h*.45:.1f} {fx-w*.1:.1f},{y:.1f} '
|
||||||
m_r, c_r = (x + .15*h + paso*.05*h, y - .44*h), (x + .16*h, y - .6*h)
|
f'L{fx+w*.1:.1f},{y:.1f} Q{sx+w*.45:.1f},{sy+h*.45:.1f} {sx+w/2:.1f},{sy:.1f} Z')
|
||||||
def tr(*pts, ww):
|
add(f'<path d="{d}" fill="{col}"/>')
|
||||||
d = "M" + " L".join(f"{a+random.uniform(-.6,.6):.1f},{b+random.uniform(-.6,.6):.1f}" for a, b in pts)
|
add(f'<ellipse cx="{sx+lean*.1:.1f}" cy="{sy-r*.9:.1f}" rx="{r:.1f}" ry="{r*1.12:.1f}" fill="{col}"/>')
|
||||||
add(f'<path d="{d}" fill="none" stroke="{col}" stroke-width="{ww:.1f}" stroke-linecap="round" stroke-linejoin="round"/>')
|
|
||||||
for pas in range(2): # dos pasadas desplazadas = trazo suelto
|
|
||||||
ww = w * (1 if pas == 0 else .6)
|
|
||||||
dx, dy = (0, 0) if pas == 0 else (random.uniform(-.03, .03) * h, random.uniform(-.02, .02) * h)
|
|
||||||
add(f'<g opacity="{.92 if pas == 0 else .45}" transform="translate({dx:.1f},{dy:.1f})">')
|
|
||||||
tr(nk, hip, ww=ww * 1.5)
|
|
||||||
tr(hip, rod_l, pie_l, ww=ww)
|
|
||||||
tr(hip, rod_r, pie_r, ww=ww)
|
|
||||||
tr(sh_l, c_l, m_l, ww=ww * .85)
|
|
||||||
tr(sh_r, c_r, m_r, ww=ww * .85)
|
|
||||||
tr(sh_l, sh_r, ww=ww * 1.2)
|
|
||||||
add(f'<ellipse cx="{hd[0]:.1f}" cy="{hd[1]:.1f}" rx="{.062*h:.1f}" ry="{.072*h:.1f}" fill="{col}"/>')
|
|
||||||
add('</g>')
|
|
||||||
|
|
||||||
gente = []
|
pts = []
|
||||||
# saliendo de los portales (en la acera)
|
def libre(x, y, s):
|
||||||
for s in (-1, 1):
|
return all(math.hypot(x - a, (y - b) * 1.6) > 17 * max(s, t) for a, b, t in pts)
|
||||||
z = ZN + 1.2; i = 0
|
for _ in range(200000): # la figura grande, densa
|
||||||
while z < 70:
|
x, y = random.uniform(400, 1150), random.uniform(240, 890)
|
||||||
if i % 2 == 0:
|
if dentro(x, y):
|
||||||
for k in range(random.randint(1, 3)):
|
s = .62 + .38 * esc(y)
|
||||||
gente.append((s * random.uniform(WALK - 1.6, WALK - .4), z + random.uniform(.2, 1.4), INK))
|
if libre(x, y, s * 1.35):
|
||||||
z += 1.5 + 2.2 + z * .12; i += 1
|
pts.append((x, y, s))
|
||||||
# bajando a la calzada, hacia el centro
|
grande = len(pts)
|
||||||
for _ in range(42):
|
for _ in range(900): # poca gente suelta, por la calle
|
||||||
Z = math.exp(random.uniform(math.log(6.5), math.log(70)))
|
y = random.uniform(300, 880)
|
||||||
gente.append((random.uniform(-ROAD + .4, ROAD - .4), Z, ORA if random.random() < .22 else INK))
|
x = random.uniform(edge(-150, y), edge(1750, y))
|
||||||
gente.sort(key=lambda g: -g[1])
|
s = .62 + .38 * esc(y)
|
||||||
add('<g filter="url(#trazo)">')
|
if not dentro(x, y) and libre(x, y, s * 5) and random.random() < .35:
|
||||||
for X, Z, col in gente:
|
pts.append((x, y, s))
|
||||||
persona(X, Z, col)
|
pts.sort(key=lambda p: p[1]) # de lejos a cerca
|
||||||
add('</g>')
|
add('<g filter="url(#pintura)" mask="url(#lados)">')
|
||||||
# salpicaduras sueltas
|
for x, y, s in pts:
|
||||||
add('<g filter="url(#spray)">')
|
presencia(x, y, s, ORA if random.random() < .05 else INK)
|
||||||
for _ in range(40):
|
|
||||||
add(f'<circle cx="{random.uniform(0,W):.0f}" cy="{random.uniform(H*.55,H):.0f}" r="{random.uniform(1,3.5):.1f}" fill="{INK}" opacity=".7"/>')
|
|
||||||
add('</g>')
|
|
||||||
add('</g></svg>')
|
add('</g></svg>')
|
||||||
open(OUT, "w").write("\n".join(o))
|
open(OUT, "w").write("\n".join(o))
|
||||||
|
print(f"{len(pts)} presencias ({grande} en la figura grande)", file=sys.stderr)
|
||||||
|
|
|
||||||