menu sin JS, iconos propios en vez de emoji, chats y tribus mas usables, README al dia

La 1.3.5 manda script-src 'none': fuera mobile_menu.js y mobile_pub.js. La hoja del
menu se abre con el ancla #oasis-menu y :target, y el gesto atras la cierra sin
cambiar de pantalla. La barra del pub solo sale si hay algo que contar.

- iconos de linea propios (images/mobile-ico-*.svg, con mask) en los avisos de
  version y de sugerencia, las fichas de visibilidad y Compartir, en vez de emoji
- avisos de arriba en una linea cada uno
- chats: Responder es un boton con su nombre y Enviar ocupa el ancho; lo mismo en la
  respuesta del foro
- tribus: ancla en las pestañas, todas en mayusculas, etiquetas y votos del foro de 44px
- comentarios abiertos con la opcion del dev (setCommentsOpen)
- Publicar al primer sitio de escribir encendido
- buscador con "mas opciones" de la 1.3.5 tambien en form.filter-box
- zonas tactiles y letra que quedaban cortas en fichas, pager, hora de comentario
- README con capturas nuevas: actividad y menu de serie, perfil Activista, tribu,
  blog y ajustes; portada con los colores de serie
- guia: sin JS desde la 1.3.5, la hoja con :target y los iconos mobile-*.svg
This commit is contained in:
hacklab 2026-10-23 20:08:45 +02:00
parent 389c84b93d
commit 6f0e45ed1d
46 changed files with 417 additions and 265 deletions

View file

@ -46,7 +46,7 @@ Dónde va cada cosa:
|---|---|
| Cambiar colores, tamaños, márgenes | `styles/mobile_ux.css` (piezas) o `styles/activista.css` (lanzador y barras) |
| Cambiar los colores de serie o las paletas | Variables `--a26-*` de `themes/Activista.css`; las paletas, en `mobile_settings.js` |
| La barra de unirse a un pub | `views/mobile_pubbar.js` y `public/js/mobile_pub.js` |
| La barra de unirse a un pub | `views/mobile_pubbar.js` |
| Otro HTML en una pantalla del dev | Función en `views/mobile_ui.js` + una línea en su vista |
| Una pantalla nueva | Vista propia en `views/mobile_*.js` + ruta en `fork_routes.js` |
| Algo en Ajustes del móvil | `views/mobile_settings.js` |
@ -81,7 +81,8 @@ Cómo seguir modificando, paso a paso:
es una regla del modelo, así que se explica en pantalla y punto.
- `src/server/` (arranque de SSB, `ssb_config.js`, `package.json`).
- `src/backend/request_guards.js`, que lleva la CSP. Nada de `style=""` ni de
`<script>` en la página.
`<script>` en la página. Desde la 1.3.5 es `script-src 'none'`: tampoco valen
ficheros `.js` propios. Lo que haga falta, con enlaces, formularios y CSS.
- Las traducciones del dev, `translations/oasis_*.js`. Se reescriben casi en cada
versión.
- `styles/style.css` y `styles/mobile.css`.
@ -131,9 +132,10 @@ tiene o lo está haciendo.
## Navegación
Al abrir se ve la actividad. Los módulos están en la quinta pestaña de abajo, Menú,
que abre una hoja con el lanzador (`hive_views.js`: una casilla y CSS). Un script
mínimo, `public/js/mobile_menu.js`, hace que el botón atrás de Android cierre la hoja;
sin él el menú funciona igual. La barra tiene cuatro atajos más Menú. Cada perfil trae los suyos (`BARS` en
que abre una hoja con el lanzador (`hive_views.js`). La abre el ancla `#oasis-menu`
y la pinta `:target`: abrirla deja una entrada en el historial, así que el gesto atrás
la cierra sin cambiar de pantalla. La X, tocar fuera o volver a tocar Menú van a
`#menu-cerrado`, un ancla que no existe, para que la página no salte arriba. La barra tiene cuatro atajos más Menú. Cada perfil trae los suyos (`BARS` en
`fork_workflows.js`) y quien la cambia desde «Tu barra» la cambia solo para ese perfil
(`bottomBarBySkin` en la config; sin perfil reconocido, `bottomBarPins`). Por qué
así: `docs/ESTUDIO_NAVEGACION.md`. Si se cambia, que sea con una prueba que lo
@ -152,9 +154,9 @@ Aquí se puede hacer lo que haga falta.
Activista, el único del móvil (Acampada y el OasisMobile del dev se quitaron del
selector el 20/10/2026). Lo más simple posible: letra del sistema, bordes finos y
sin sombras. El skin quita lo que sobra; los colores los pone cada cual.
- `src/views/mobile_pubbar.js` y `public/js/mobile_pub.js`: la barra fija de unirse a
un pub (y de restaurar una copia), encima de la barra de abajo. Se pone al día sin
recargar, preguntando a `/mobile/pub-status`; el estado sale de
- `src/views/mobile_pubbar.js`: la barra fija de unirse a un pub (y de restaurar una
copia), encima de la barra de abajo. Solo sale si hay algo que contar y se pone al
día al cambiar de pantalla (sin JS); el estado sale de
`backupModel.restoreStatus()`, que `backend.js` le pasa a `fork_routes.js` en la
línea que lo monta.
- `src/views/mobile_ui.js`: lo que se enchufa en vistas del dev.
@ -169,7 +171,9 @@ Aquí se puede hacer lo que haga falta.
- `src/views/mobile_icons.js`: los iconos.
- `src/backend/fork_routes.js`: nuestro router. Va justo delante del del dev.
- `src/backend/mobile_layer.js`: lo que nuestra interfaz necesita del backend
(avatar, filtro y lanzador de la barra de arriba). La monta `fork_routes.js`.
(avatar, filtro y lanzador de la barra de arriba). La monta `fork_routes.js`. También
deja abiertos los comentarios de las fichas con la opción del dev
(`comments_view.setCommentsOpen`), salvo en el parlamento.
- `src/models/fork_workflows.js`: nuestros workflows, que en el móvil hacen de skins:
cada uno enciende unos módulos y trae su barra de abajo. Activista (acción directa,
6 módulos) es el de serie, después Acampada (16) y los del dev; en Ajustes y en la
@ -179,6 +183,13 @@ Aquí se puede hacer lo que haga falta.
puesto (le pasa a Movimiento, el `activists` del dev, y a Por defecto).
- `src/client/assets/translations/i18n_fork.js`: nuestros textos.
- `src/client/assets/images/ux-*.svg`: nuestras imágenes.
- `src/client/assets/images/mobile-*.svg`: iconos de línea que `mobile_ux.css` pinta
con `mask` en sitios del dev que llevan emoji o un carácter (avisos de arriba, fichas
de visibilidad, Compartir, estado del teléfono, responder y enviar en chats). Se
esconde el carácter con `font-size: 0` y el icono toma el color del texto. Mismo
trazo para todos: 24x24, línea de 2, puntas redondas. Los del menú y la barra de
abajo están en `views/mobile_icons.js` y no se tocan desde aquí. Nada de emoji ni de
logotipos (tampoco el robot de las sugerencias del dev).
- `android/scripts/sobre_oficial.sh`: monta la APK sobre la oficial del dev. El resto
de `android/` (el proyecto Gradle propio) queda como estaba, sin uso.
- `android/icono/`: el icono adaptativo (la isla del logo de Oasis sobre su fondo).