skins: elegir el aspecto en el movil con tarjetas de un toque
En Ajustes del movil, Tema y Flujos de trabajo dejan de ser desplegables: cada skin es una tarjeta con su miniatura y cada workflow un boton grande, y se aplican al tocarlos. Solo se ofrecen los skins que tienen maqueta de movil (Acampada y Oasis Mobile); el servidor rechaza un tema de escritorio, que dejaba la app sin maqueta. La bienvenida tambien ofrece elegir skin. Aplicar un workflow ya no cambia el skin: se queda el que haya elegido cada cual. OasisMobile.css se carga con su propio <link> versionado antes de Acampada.css, en vez de con @import: el @import sin ?v= se quedaba en la cache del WebView y tras actualizar se veia la maqueta vieja.
This commit is contained in:
parent
ac921c9d56
commit
0baf85faa9
9 changed files with 103 additions and 17 deletions
BIN
src/client/assets/images/theme-acampada.png
Normal file
BIN
src/client/assets/images/theme-acampada.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
BIN
src/client/assets/images/theme-oasismobile.png
Normal file
BIN
src/client/assets/images/theme-oasismobile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 45 KiB |
|
|
@ -3,12 +3,11 @@
|
|||
* Los colores y las formas salen de acampada26s.net: bordes negros gruesos,
|
||||
* botones con sombra solida que se hunden al pulsar y titulos en mayusculas.
|
||||
*
|
||||
* La maqueta de movil es la de OasisMobile.css de upstream, que se importa entera;
|
||||
* aqui solo se cambian colores, letra y formas encima. Por eso casi todo lleva
|
||||
* La maqueta de movil es la de OasisMobile.css, que main_views.js carga justo antes
|
||||
* con su propio <link> versionado (no con @import: se quedaba en la cache del
|
||||
* WebView); aqui solo se cambian colores, letra y formas encima. Por eso casi todo lleva
|
||||
* !important: OasisMobile.css tambien lo usa. Las piezas propias de la rama
|
||||
* (panal, barras) se ajustan en styles/hive_acampada.css. */
|
||||
@import url("OasisMobile.css");
|
||||
|
||||
@font-face {
|
||||
font-family: "Anton";
|
||||
src: url("../fonts/Anton-Regular.ttf") format("truetype");
|
||||
|
|
|
|||
|
|
@ -1258,3 +1258,24 @@ body:has(.oasis-nav-side-toggle) { padding-top: 84px !important; }
|
|||
align-items: center !important;
|
||||
justify-content: center !important;
|
||||
}
|
||||
|
||||
/* Skins y workflows en Ajustes (views/settings_view.js): tarjetas de un toque */
|
||||
.skin-pick { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 0; }
|
||||
.skin-card {
|
||||
display: flex !important; flex-direction: column; align-items: stretch; gap: 8px;
|
||||
width: 100% !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 8px !important;
|
||||
background: #1c1c1c !important; color: #e6e6e6 !important;
|
||||
border: 1px solid #444 !important; border-radius: 16px !important; cursor: pointer;
|
||||
}
|
||||
.skin-card .skin-shot { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: top; border-radius: 10px; display: block; }
|
||||
.skin-card .skin-name { font-size: 17px; font-weight: 700; text-align: center; }
|
||||
.skin-card.is-current { border: 2px solid #FFD700 !important; background: #2a2412 !important; }
|
||||
.skin-card.is-current .skin-name::after { content: " \2713"; }
|
||||
.workflow-pick { display: flex !important; flex-direction: column; gap: 10px; margin: 0; }
|
||||
.workflow-card {
|
||||
width: 100% !important; min-height: 56px !important; margin: 0 !important; padding: 10px 16px !important;
|
||||
font-size: 18px !important; text-align: left !important;
|
||||
background: #1c1c1c !important; color: #e6e6e6 !important; border: 1px solid #444 !important; border-radius: 14px !important;
|
||||
}
|
||||
.workflow-card.is-current { border: 2px solid #FFD700 !important; background: #2a2412 !important; color: #FFD700 !important; }
|
||||
.workflow-card.is-current::after { content: " \2713"; }
|
||||
|
|
|
|||
|
|
@ -17,6 +17,9 @@
|
|||
|
||||
module.exports = {
|
||||
en: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "Pick how Oasis looks on your phone. It applies as soon as you tap it.",
|
||||
workflowsDescriptionMobile: "A workflow sets which modules are on. On the phone your skin stays as it is.",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "This image could not be cleaned of its metadata (location, camera…), so it has not been uploaded. Save it as JPEG or PNG and try again.",
|
||||
// Karvan
|
||||
|
|
@ -82,6 +85,9 @@ module.exports = {
|
|||
spreadMore: "more"
|
||||
},
|
||||
es: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "Elige cómo se ve Oasis en tu móvil. Se aplica al tocarlo.",
|
||||
workflowsDescriptionMobile: "Un workflow fija qué módulos están activos. En el móvil tu skin se queda como está.",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "No se han podido quitar los metadatos de esta imagen (ubicación, cámara…), así que no se ha subido. Guárdala como JPEG o PNG y vuelve a intentarlo.",
|
||||
// Karvan
|
||||
|
|
@ -153,6 +159,9 @@ module.exports = {
|
|||
totalspreads: "Réplicas totales"
|
||||
},
|
||||
fr: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "Choisis l'apparence d'Oasis sur ton téléphone. Elle s'applique dès que tu touches.",
|
||||
workflowsDescriptionMobile: "Un workflow fixe les modules actifs. Sur le téléphone, ton thème ne change pas.",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "Impossible de retirer les métadonnées de cette image (position, appareil…), elle n'a donc pas été envoyée. Enregistrez-la en JPEG ou PNG et réessayez.",
|
||||
// Karvan
|
||||
|
|
@ -218,6 +227,9 @@ module.exports = {
|
|||
spreadMore: "plus"
|
||||
},
|
||||
eu: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "Aukeratu nolakoa den Oasis zure mugikorrean. Ukitu bezain laster aplikatzen da.",
|
||||
workflowsDescriptionMobile: "Workflow batek zein modulu dauden aktibo finkatzen du. Mugikorrean zure itxura ez da aldatzen.",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "Ezin izan dira irudi honen metadatuak kendu (kokapena, kamera…), beraz ez da igo. Gorde JPEG edo PNG gisa eta saiatu berriro.",
|
||||
// Karvan
|
||||
|
|
@ -283,6 +295,9 @@ module.exports = {
|
|||
spreadMore: "gehiago"
|
||||
},
|
||||
de: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "Wähle, wie Oasis auf deinem Handy aussieht. Es wird beim Antippen übernommen.",
|
||||
workflowsDescriptionMobile: "Ein Workflow legt fest, welche Module aktiv sind. Auf dem Handy bleibt dein Skin, wie er ist.",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "Die Metadaten dieses Bildes (Standort, Kamera…) konnten nicht entfernt werden, daher wurde es nicht hochgeladen. Speichere es als JPEG oder PNG und versuche es erneut.",
|
||||
// Karvan
|
||||
|
|
@ -348,6 +363,9 @@ module.exports = {
|
|||
spreadMore: "mehr"
|
||||
},
|
||||
it: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "Scegli come appare Oasis sul tuo telefono. Si applica appena lo tocchi.",
|
||||
workflowsDescriptionMobile: "Un workflow stabilisce quali moduli sono attivi. Sul telefono la tua skin resta com'è.",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "Non è stato possibile rimuovere i metadati di questa immagine (posizione, fotocamera…), quindi non è stata caricata. Salvala come JPEG o PNG e riprova.",
|
||||
// Karvan
|
||||
|
|
@ -413,6 +431,9 @@ module.exports = {
|
|||
spreadMore: "altro"
|
||||
},
|
||||
pt: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "Escolhe como o Oasis aparece no teu telemóvel. Aplica-se ao tocar.",
|
||||
workflowsDescriptionMobile: "Um workflow define que módulos estão ativos. No telemóvel o teu tema fica como está.",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "Não foi possível remover os metadados desta imagem (localização, câmara…), por isso não foi enviada. Guarda-a como JPEG ou PNG e tenta de novo.",
|
||||
// Karvan
|
||||
|
|
@ -478,6 +499,9 @@ module.exports = {
|
|||
spreadMore: "mais"
|
||||
},
|
||||
zh: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "选择 Oasis 在手机上的外观。点一下就会生效。",
|
||||
workflowsDescriptionMobile: "工作流决定启用哪些模块。在手机上,你的外观保持不变。",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "无法清除这张图片的元数据(位置、相机等),因此没有上传。请另存为 JPEG 或 PNG 后重试。",
|
||||
// Karvan
|
||||
|
|
@ -543,6 +567,9 @@ module.exports = {
|
|||
spreadMore: "更多"
|
||||
},
|
||||
ar: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "اختر مظهر Oasis على هاتفك. يُطبَّق بمجرد اللمس.",
|
||||
workflowsDescriptionMobile: "يحدد سير العمل الوحدات المفعّلة. على الهاتف يبقى مظهرك كما هو.",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "تعذّر إزالة البيانات الوصفية من هذه الصورة (الموقع، الكاميرا…)، لذلك لم تُرفع. احفظها بصيغة JPEG أو PNG وحاول مجددًا.",
|
||||
// Karvan
|
||||
|
|
@ -608,6 +635,9 @@ module.exports = {
|
|||
spreadMore: "المزيد"
|
||||
},
|
||||
hi: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "चुनें कि आपके फ़ोन पर Oasis कैसा दिखे। छूते ही लागू हो जाता है।",
|
||||
workflowsDescriptionMobile: "वर्कफ़्लो तय करता है कि कौन-से मॉड्यूल चालू हैं। फ़ोन पर आपकी स्किन वैसी ही रहती है।",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "इस छवि का मेटाडेटा (स्थान, कैमरा…) हटाया नहीं जा सका, इसलिए इसे अपलोड नहीं किया गया। इसे JPEG या PNG के रूप में सहेजें और फिर कोशिश करें।",
|
||||
// Karvan
|
||||
|
|
@ -673,6 +703,9 @@ module.exports = {
|
|||
spreadMore: "और"
|
||||
},
|
||||
ru: {
|
||||
// skins y workflows en el movil (settings_view.js)
|
||||
skinIntroMobile: "Выберите, как Oasis выглядит на телефоне. Применяется сразу по нажатию.",
|
||||
workflowsDescriptionMobile: "Рабочий процесс задаёт, какие модули включены. На телефоне ваше оформление не меняется.",
|
||||
// fotos que no se pueden limpiar (blobHandler.js)
|
||||
imageMetadataUnsafe: "Не удалось удалить метаданные этого изображения (местоположение, камера…), поэтому оно не загружено. Сохраните его как JPEG или PNG и попробуйте снова.",
|
||||
// Karvan
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue