Mobile-usability experiment grounded in real studies (Hoober 2013, Bergstrom-Lehtovirta CHI 2011, Parhi 2006 target size, NN/g 2016 visible nav): - The hive (categories + modules) opens from the bottom bar as a thumb-reachable bottom-sheet (checkbox-hack, no JS), freeing the top for content. - Bottom bar reordered: Explore, PM, (+) publish FAB, Search, Inbox; the central FAB is the distinct, elevated primary action. - Network/status quick row (Peers, Graphos, Inbox, Settings) inside the sheet. - Tap targets >=48px. Additive and gated by OASIS_MOBILE (Linux untouched).
1120 lines
50 KiB
CSS
1120 lines
50 KiB
CSS
html { overflow-x: clip; overflow-y: visible; height: auto; }
|
||
body { overflow-x: clip; overflow-y: visible; }
|
||
|
||
|
||
.oasis-bottombar {
|
||
display: flex;
|
||
position: fixed;
|
||
left: 0; right: 0; bottom: 0;
|
||
z-index: 1000;
|
||
justify-content: space-around;
|
||
align-items: center;
|
||
gap: 4px;
|
||
background: #1F1F1F;
|
||
border-top: 1px solid #333;
|
||
padding: 8px 6px calc(8px + env(safe-area-inset-bottom, 0px));
|
||
}
|
||
.oasis-bottombar .bb-item {
|
||
position: relative;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
gap: 3px;
|
||
flex: 1 1 0;
|
||
min-width: 0;
|
||
padding: 2px 0;
|
||
text-decoration: none;
|
||
}
|
||
.oasis-bottombar .bb-ico { font-size: 18px; line-height: 1; color: #FFD700; }
|
||
.oasis-bottombar .bb-lbl { font-size: 9px; color: #FFD700; white-space: nowrap; }
|
||
.oasis-bottombar .bb-badge {
|
||
position: absolute;
|
||
top: -4px;
|
||
left: calc(50% + 6px);
|
||
min-width: 15px; height: 15px;
|
||
padding: 0 3px;
|
||
border-radius: 8px;
|
||
background: #FFD700;
|
||
color: #121212;
|
||
font-size: 9px; font-weight: bold;
|
||
display: flex; align-items: center; justify-content: center;
|
||
}
|
||
|
||
body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
|
||
|
||
/* topbar FIJA arriba: [logo] [Personal] [Community] [avatar]; el hive scrollea por debajo */
|
||
.oasis-mobile-topbar {
|
||
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
|
||
display: flex; align-items: center; gap: 8px;
|
||
padding: 8px 12px;
|
||
background: #121212;
|
||
border-bottom: 1px solid #333;
|
||
}
|
||
body { padding-top: 84px; background: #121212; }
|
||
|
||
.oasis-mobile-topbar .omt-logo, .oasis-mobile-topbar .omt-avatar { flex: 0 0 auto; }
|
||
.oasis-mobile-topbar .omt-logo img,
|
||
.oasis-mobile-topbar .omt-avatar img {
|
||
width: 42px; height: 42px;
|
||
border-radius: 50%;
|
||
border: 2px solid #FFD700;
|
||
object-fit: cover; display: block;
|
||
}
|
||
|
||
.oasis-mobile-topbar .omt-menus {
|
||
flex: 1 1 auto; min-width: 0;
|
||
display: flex; justify-content: center; gap: 8px;
|
||
}
|
||
.oasis-mobile-topbar .omt-menus .oasis-menu-btn {
|
||
display: flex; align-items: center; justify-content: center;
|
||
padding: 7px 14px;
|
||
border: 1px solid #FFD700; border-radius: 8px;
|
||
background: #161616; color: #FFD700;
|
||
font-weight: 600; letter-spacing: .5px; text-decoration: none;
|
||
font-size: 13px; white-space: nowrap; cursor: pointer;
|
||
}
|
||
.oasis-mobile-topbar .omt-menus .oasis-menu-btn.active {
|
||
background: #FFD700; color: #121212; border-color: #FFD700;
|
||
}
|
||
.oasis-mobile-topbar .omt-menus .oasis-menu-btn span { text-decoration: none; }
|
||
|
||
/* ANULAR el "card" global de style.css `div{background:#222;border-radius:10px;box-shadow;padding:20px;margin-bottom:20px}`
|
||
en nuestro chrome móvil propio: era el 2º color (caja mas clara) detras de los botones,
|
||
la caja redondeada de la topbar y el fondo #222 detras de los hexagonos. */
|
||
.header, .hive-nav, .hive-grid, .hive-cats, .hive-row,
|
||
.oasis-mobile-topbar, .oasis-mobile-topbar .omt-menus {
|
||
background-color: transparent; box-shadow: none; border-radius: 0;
|
||
}
|
||
.oasis-mobile-topbar { background-color: #121212; } /* fija: fondo opaco (el contenido scrollea por debajo) */
|
||
.oasis-mobile-topbar .omt-menus { padding: 0; margin: 0; } /* sin caja ni relleno detras de los botones */
|
||
|
||
.header .top-bar-left > a.logo-icon { display: none; }
|
||
|
||
.oasis-mobile-menus { display: flex; gap: 8px; padding: 0 10px 6px; }
|
||
.oasis-mobile-menus .oasis-menu-ico { display: none; }
|
||
.oasis-mobile-menus .oasis-menu-btn {
|
||
flex: 1 1 0;
|
||
display: flex; align-items: center; justify-content: center;
|
||
padding: 10px 12px;
|
||
border: 1px solid #FFD700; border-radius: 8px;
|
||
background: #161616; color: #FFD700;
|
||
font-weight: 600; letter-spacing: 1px; text-decoration: none; cursor: pointer;
|
||
}
|
||
.oasis-mobile-menus .oasis-menu-btn span { text-decoration: none; }
|
||
|
||
.oasis-mobile-menus .oasis-menu-btn.active {
|
||
background: #FFD700; color: #121212; border-color: #FFD700;
|
||
}
|
||
|
||
:root {
|
||
--space-1: 4px; --space-2: 8px; --space-3: 16px; --space-4: 24px; --space-5: 32px;
|
||
--fs-caption: 12px; --fs-body: 14px; --fs-body-lg: 16px; --fs-title: 20px;
|
||
--lh-body: 1.5; --measure: 66ch;
|
||
--c-muted: #8c8c8c; --radius-md: 12px;
|
||
}
|
||
|
||
.oasis-bottombar .bb-fab .bb-ico {
|
||
width: 46px; height: 46px;
|
||
margin-top: -22px;
|
||
border-radius: 50%;
|
||
background: #FFD700; color: #121212;
|
||
display: flex; align-items: center; justify-content: center;
|
||
font-size: 22px;
|
||
box-shadow: 0 2px 8px rgba(0,0,0,.4);
|
||
}
|
||
.oasis-bottombar .bb-fab .bb-lbl { color: #FFD700; font-weight: bold; }
|
||
|
||
.main-column, .main-column p, .main-column li, .main-column a,
|
||
.main-column span, .main-column td, .main-column h1, .main-column h2, .main-column h3 {
|
||
overflow-wrap: anywhere;
|
||
word-break: break-word;
|
||
}
|
||
.main-column { padding: var(--space-3); }
|
||
.main-column p { line-height: var(--lh-body); }
|
||
|
||
.main-column > * + * { margin-top: var(--space-3); }
|
||
|
||
.main-column img, .main-column video, .main-column table, .main-column pre, .main-column iframe {
|
||
max-width: 100%; height: auto;
|
||
}
|
||
.main-column pre { white-space: pre-wrap; }
|
||
|
||
.oasis-nav-group {
|
||
list-style: none;
|
||
background: #1c1c1c;
|
||
border: 1px solid #333;
|
||
border-radius: var(--radius-md);
|
||
overflow: hidden;
|
||
margin-bottom: var(--space-2);
|
||
}
|
||
.oasis-nav-header {
|
||
display: flex; align-items: center; gap: var(--space-2);
|
||
min-height: 48px; padding: 0 var(--space-3);
|
||
cursor: pointer;
|
||
color: #FFD700; font-weight: bold;
|
||
text-transform: uppercase; letter-spacing: .04em;
|
||
font-size: var(--fs-caption);
|
||
}
|
||
.oasis-nav-header .nav-text { flex: 1 1 auto; }
|
||
.oasis-nav-header .oasis-nav-arrow { color: var(--c-muted); transition: transform 150ms ease; }
|
||
.oasis-nav-toggle:checked + .oasis-nav-header .oasis-nav-arrow { transform: rotate(180deg); }
|
||
.oasis-nav-header:active { background: #262626; }
|
||
.oasis-nav-list { list-style: none; padding: 0; margin: 0; }
|
||
.oasis-nav-list li a {
|
||
display: flex; align-items: center; gap: var(--space-3);
|
||
min-height: 48px; padding: 0 var(--space-3);
|
||
color: #FFD700; text-decoration: none;
|
||
border-top: 1px solid #262626;
|
||
}
|
||
.oasis-nav-list li a .emoji { flex: 0 0 auto; width: 22px; text-align: center; color: #FFD700; }
|
||
.oasis-nav-list li a .nav-text { font-size: var(--fs-body); }
|
||
.oasis-nav-list li a:active { background: #262626; }
|
||
.oasis-nav-list li a.current { color: #FFD700; font-weight: bold; }
|
||
|
||
.main-column h1 { font-size: var(--fs-title); font-weight: 700; line-height: 1.25; margin: 0 0 var(--space-2); }
|
||
.main-column h2 { font-size: 18px; font-weight: 700; line-height: 1.3; margin: 0 0 var(--space-2); }
|
||
.main-column h3 { font-size: var(--fs-body-lg); font-weight: 600; margin: 0 0 var(--space-1); }
|
||
.main-column p { font-size: var(--fs-body-lg); }
|
||
.main-column .created-at, .main-column .small, .main-column .time,
|
||
.main-column .meta, .main-column .author-meta, .main-column .subtitle {
|
||
color: var(--c-muted); font-size: var(--fs-caption);
|
||
}
|
||
|
||
.main-column article,
|
||
.main-column [class*="-card"] {
|
||
background: #1c1c1c;
|
||
border: 1px solid #333;
|
||
border-radius: var(--radius-md);
|
||
padding: var(--space-3);
|
||
}
|
||
.main-column article:active,
|
||
.main-column [class*="-card"]:active { background: #202020; }
|
||
|
||
.btn, button, input[type="submit"], input[type="button"], .submit-button,
|
||
.filter-btn, .create-button, .edit-btn, .delete-btn, .join-btn, .leave-btn, .buy-btn {
|
||
min-height: 48px;
|
||
}
|
||
button:active, input[type="submit"]:active, .submit-button:active,
|
||
.filter-btn:active, .create-button:active, .edit-btn:active,
|
||
.delete-btn:active, .join-btn:active, .leave-btn:active, .buy-btn:active {
|
||
filter: brightness(.85);
|
||
}
|
||
.main-column a:active { opacity: .6; }
|
||
|
||
* { -webkit-tap-highlight-color: transparent; }
|
||
a, button, label, .tap, .oasis-menu-btn, .bb-item, .oasis-nav-header, .oasis-nav-list li a {
|
||
touch-action: manipulation;
|
||
}
|
||
body { overscroll-behavior: none; }
|
||
|
||
.main-content, .main-column, .header { overflow: visible; }
|
||
|
||
/* === Usabilidad 0.9.1: Personal/Community filtran el hive server-side (enlaces ?hive=) + desplegable FILTER === */
|
||
|
||
/* desplegable FILTER de la ristra de filtros de Activity (oculto por defecto) */
|
||
.activity-filter-toggle { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; margin: 0; }
|
||
.activity-filter-btn {
|
||
display: flex; align-items: center; justify-content: center; gap: 8px;
|
||
width: 100%; min-height: 44px; margin: 4px 0 8px; padding: 10px 12px;
|
||
border: 1.5px solid #333; border-radius: 10px;
|
||
background: #121212; color: #FFD700;
|
||
font-weight: bold; letter-spacing: 1px; text-transform: uppercase; cursor: pointer;
|
||
}
|
||
.activity-filter-caret { transition: transform 150ms ease; }
|
||
#activity-filter-toggle:checked ~ .activity-filter-btn { background: #FFD700; color: #121212; border-color: #FFD700; }
|
||
#activity-filter-toggle:checked ~ .activity-filter-btn .activity-filter-caret { transform: rotate(180deg); }
|
||
.activity-filter-panel { display: none; }
|
||
#activity-filter-toggle:checked ~ .activity-filter-panel { display: block; }
|
||
.activity-filter-panel .activity-filter-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 8px; }
|
||
.activity-filter-panel .activity-filter-col { display: contents; }
|
||
.activity-filter-panel form { margin: 0; }
|
||
|
||
.bb-manage { margin: 8px 0 16px; }
|
||
.bb-manage h3, .bb-manage-add h3 {
|
||
font-size: 13px; text-transform: uppercase; letter-spacing: .05em;
|
||
color: #FFD700; margin: 14px 0 8px;
|
||
}
|
||
.bb-manage-list { display: flex; flex-direction: column; gap: 8px; }
|
||
.bb-manage-form { margin: 0; width: 100%; }
|
||
.bb-manage-btn {
|
||
width: 100%;
|
||
display: flex; align-items: center; gap: 12px;
|
||
min-height: 52px; padding: 0 14px;
|
||
background: #1c1c1c; border: 1px solid #333; border-radius: 10px;
|
||
color: #FFD700; cursor: pointer; text-align: left;
|
||
}
|
||
.bb-manage-ico { font-size: 20px; color: #FFD700; width: 26px; text-align: center; }
|
||
.bb-manage-lbl { flex: 1 1 auto; font-size: 15px; }
|
||
.bb-manage-x { font-size: 16px; color: #FFD700; font-weight: bold; }
|
||
.bb-manage-empty, .bb-manage-full { color: #999; font-size: 14px; padding: 8px 2px; }
|
||
.bb-manage-done {
|
||
display: block; text-align: center;
|
||
margin-top: 16px; min-height: 48px; line-height: 48px;
|
||
}
|
||
|
||
.hive-nav { --hx: min(64px, calc((100vw - 40px) / 4)); --hxm: min(58px, calc((100vw - 36px) / 5)); margin: 8px 0 16px; overflow: visible; background: transparent; padding: 0; border: 0; box-shadow: none; }
|
||
.hive-radio { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
|
||
.hive-grid { display: flex; flex-direction: column; align-items: center; overflow: visible; background: transparent; padding: 0; margin: 0; box-shadow: none; }
|
||
.hive-row { display: flex; justify-content: center; gap: 3px; overflow: visible; background: transparent; padding: 0; margin: 0; box-shadow: none; }
|
||
.hive-cats .hive-row + .hive-row { margin-top: calc(var(--hx) * -0.30); }
|
||
.hex-cat, .hex-mod {
|
||
position: relative;
|
||
-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
||
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
||
display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
|
||
text-decoration: none; cursor: pointer; box-sizing: border-box;
|
||
background: #FFD700;
|
||
filter: drop-shadow(0 1px 2px rgba(0,0,0,.6));
|
||
}
|
||
.hex-cat::before, .hex-mod::before {
|
||
content: ''; position: absolute; inset: 1.5px; z-index: 0;
|
||
-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
||
clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
|
||
background: #161616;
|
||
}
|
||
.hex-cat { width: var(--hx); height: calc(var(--hx) * 1.15); }
|
||
.hex-mod { width: var(--hxm); height: calc(var(--hxm) * 1.15); }
|
||
.hex-cat .hx-ico, .hex-mod .hx-ico { color: #FFD700; line-height: 1; position: relative; z-index: 1; }
|
||
.hex-cat .hx-ico { font-size: 17px; }
|
||
.hex-mod .hx-ico { font-size: 16px; }
|
||
.hex-cat .hx-lbl, .hex-mod .hx-lbl { color: #FFD700; text-align: center; line-height: 1; font-weight: bold; overflow: hidden; position: relative; z-index: 1; }
|
||
.hex-cat .hx-lbl { font-size: 8px; max-width: 88%; }
|
||
.hex-mod .hx-lbl { font-size: 8px; max-width: 92%; }
|
||
.hex-cat:active::before, .hex-mod:active::before { background: #242424; }
|
||
#hive-personal:checked ~ .hive-grid .hex-cat[for="hive-personal"],
|
||
#hive-governance:checked ~ .hive-grid .hex-cat[for="hive-governance"],
|
||
#hive-office:checked ~ .hive-grid .hex-cat[for="hive-office"],
|
||
#hive-economy:checked ~ .hive-grid .hex-cat[for="hive-economy"],
|
||
#hive-tools:checked ~ .hive-grid .hex-cat[for="hive-tools"],
|
||
#hive-network:checked ~ .hive-grid .hex-cat[for="hive-network"],
|
||
#hive-blogs:checked ~ .hive-grid .hex-cat[for="hive-blogs"],
|
||
#hive-creative:checked ~ .hive-grid .hex-cat[for="hive-creative"],
|
||
#hive-media:checked ~ .hive-grid .hex-cat[for="hive-media"],
|
||
#hive-fediverse:checked ~ .hive-grid .hex-cat[for="hive-fediverse"] { background: #FFD700; }
|
||
#hive-personal:checked ~ .hive-grid .hex-cat[for="hive-personal"]::before,
|
||
#hive-governance:checked ~ .hive-grid .hex-cat[for="hive-governance"]::before,
|
||
#hive-office:checked ~ .hive-grid .hex-cat[for="hive-office"]::before,
|
||
#hive-economy:checked ~ .hive-grid .hex-cat[for="hive-economy"]::before,
|
||
#hive-tools:checked ~ .hive-grid .hex-cat[for="hive-tools"]::before,
|
||
#hive-network:checked ~ .hive-grid .hex-cat[for="hive-network"]::before,
|
||
#hive-blogs:checked ~ .hive-grid .hex-cat[for="hive-blogs"]::before,
|
||
#hive-creative:checked ~ .hive-grid .hex-cat[for="hive-creative"]::before,
|
||
#hive-media:checked ~ .hive-grid .hex-cat[for="hive-media"]::before,
|
||
#hive-fediverse:checked ~ .hive-grid .hex-cat[for="hive-fediverse"]::before { background: #FFD700; }
|
||
#hive-personal:checked ~ .hive-grid .hex-cat[for="hive-personal"] :is(.hx-ico,.hx-lbl),
|
||
#hive-governance:checked ~ .hive-grid .hex-cat[for="hive-governance"] :is(.hx-ico,.hx-lbl),
|
||
#hive-office:checked ~ .hive-grid .hex-cat[for="hive-office"] :is(.hx-ico,.hx-lbl),
|
||
#hive-economy:checked ~ .hive-grid .hex-cat[for="hive-economy"] :is(.hx-ico,.hx-lbl),
|
||
#hive-tools:checked ~ .hive-grid .hex-cat[for="hive-tools"] :is(.hx-ico,.hx-lbl),
|
||
#hive-network:checked ~ .hive-grid .hex-cat[for="hive-network"] :is(.hx-ico,.hx-lbl),
|
||
#hive-blogs:checked ~ .hive-grid .hex-cat[for="hive-blogs"] :is(.hx-ico,.hx-lbl),
|
||
#hive-creative:checked ~ .hive-grid .hex-cat[for="hive-creative"] :is(.hx-ico,.hx-lbl),
|
||
#hive-media:checked ~ .hive-grid .hex-cat[for="hive-media"] :is(.hx-ico,.hx-lbl),
|
||
#hive-fediverse:checked ~ .hive-grid .hex-cat[for="hive-fediverse"] :is(.hx-ico,.hx-lbl) { color: #121212; }
|
||
.hive-panel { display: none; margin: 12px auto 0; max-width: 340px; background: #101010; border: 1px solid #242424; border-radius: 16px; padding: 12px 8px; overflow: visible; box-shadow: none; }
|
||
#hive-personal:checked ~ #hive-panel-personal,
|
||
#hive-governance:checked ~ #hive-panel-governance,
|
||
#hive-office:checked ~ #hive-panel-office,
|
||
#hive-economy:checked ~ #hive-panel-economy,
|
||
#hive-tools:checked ~ #hive-panel-tools,
|
||
#hive-network:checked ~ #hive-panel-network,
|
||
#hive-blogs:checked ~ #hive-panel-blogs,
|
||
#hive-creative:checked ~ #hive-panel-creative,
|
||
#hive-media:checked ~ #hive-panel-media,
|
||
#hive-fediverse:checked ~ #hive-panel-fediverse { display: block; }
|
||
.hive-mods { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; margin: 0; padding: 0; background: transparent; overflow: visible; }
|
||
|
||
.header .top-bar-left nav,
|
||
.header .top-bar-right nav { display: none; }
|
||
|
||
.oasis-mobile-topbar { padding-top: calc(env(safe-area-inset-top, 0px) + 10px); }
|
||
|
||
.oasis-bottombar .bb-pair {
|
||
display: flex; align-items: center;
|
||
flex: 0 0 auto;
|
||
gap: 2px; padding: 3px;
|
||
background: #262626;
|
||
border: 1px solid #3a3a3a;
|
||
border-radius: 999px;
|
||
}
|
||
.oasis-bottombar .bb-pair .bb-item { flex: 0 0 auto; padding: 2px 8px; }
|
||
.oasis-bottombar .bb-pair .bb-lbl { font-size: 8px; }
|
||
|
||
.oasis-bottombar a.bb-item.current .bb-ico {
|
||
background: #FFD700; color: #121212;
|
||
border-radius: 999px; padding: 4px 12px;
|
||
}
|
||
.oasis-bottombar a.bb-item.current .bb-lbl { color: #FFD700; font-weight: bold; }
|
||
.oasis-bottombar a.bb-item.current .bb-badge { background: #121212; color: #FFD700; }
|
||
|
||
.main-column, .main-column p, .main-column li, .main-column a,
|
||
.main-column span, .main-column td, .main-column th, .main-column label,
|
||
.main-column h1, .main-column h2, .main-column h3, .main-column h4,
|
||
.main-column strong, .main-column em, .main-column small,
|
||
.created-at, .post-meta, .feed-post-meta,
|
||
.feed-row .small, .feed-row .time, .feed-row .created-at,
|
||
.profile-sensors-box > *,
|
||
.card-field .card-value, .card-field .card-label {
|
||
overflow-wrap: break-word;
|
||
word-break: normal;
|
||
-webkit-hyphens: none;
|
||
hyphens: none;
|
||
}
|
||
|
||
.main-column pre, .main-column code, kbd, samp,
|
||
.peer-key, .user-link.peer-key, .oasis-id-copy, .search-oasis-id,
|
||
.pm-sent-key-value, .kpi__value,
|
||
.block-info-table td .peer-key, .block-info-table td .user-link,
|
||
.pm-info-table td .user-link,
|
||
.main-column a[href*="ed25519"], .main-column a[href^="ssb:"],
|
||
.main-column a[href^="/author/"] {
|
||
overflow-wrap: anywhere;
|
||
word-break: break-all;
|
||
}
|
||
|
||
button, input[type="submit"], input[type="button"],
|
||
.filter-btn, a.filter-btn, .create-button, .edit-btn, .delete-btn,
|
||
.join-btn, .leave-btn, .buy-btn, .submit-button, .btn,
|
||
.conn-actions button, .peers-conn-actions button,
|
||
.mode-buttons button, .mode-buttons .filter-btn,
|
||
.filter-group button, .filter-group .filter-btn,
|
||
.main-column button, .main-column input[type="submit"] {
|
||
white-space: normal;
|
||
word-break: normal;
|
||
overflow-wrap: break-word;
|
||
-webkit-hyphens: none;
|
||
hyphens: none;
|
||
}
|
||
|
||
.conn-actions, .peers-conn-actions {
|
||
display: flex;
|
||
flex-direction: row;
|
||
flex-wrap: wrap;
|
||
justify-content: center;
|
||
align-items: stretch;
|
||
gap: 8px;
|
||
width: 100%;
|
||
max-width: 100%;
|
||
overflow-x: hidden;
|
||
}
|
||
.conn-actions > form, .peers-conn-actions > form {
|
||
flex: 0 1 auto;
|
||
width: auto;
|
||
min-width: 0;
|
||
margin: 0;
|
||
display: flex;
|
||
}
|
||
|
||
.pm-info-table, .pm-info-table tbody,
|
||
.block-info-table, .block-info-table tbody {
|
||
display: block;
|
||
width: 100%;
|
||
max-width: 100%;
|
||
border: 0;
|
||
background: transparent;
|
||
box-shadow: none;
|
||
table-layout: auto;
|
||
}
|
||
.pm-info-table thead, .block-info-table thead { display: none; }
|
||
.pm-info-table tr, .block-info-table tr {
|
||
display: block;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
border: 0;
|
||
border-bottom: 1px solid rgba(255,215,0,0.18);
|
||
border-radius: 0;
|
||
margin: 0 0 8px 0;
|
||
padding: 6px 0;
|
||
background: transparent;
|
||
}
|
||
.pm-info-table td, .block-info-table td {
|
||
display: block;
|
||
width: 100%;
|
||
max-width: 100%;
|
||
box-sizing: border-box;
|
||
border: 0;
|
||
background: transparent;
|
||
padding: 1px 0;
|
||
text-align: left;
|
||
overflow-wrap: break-word;
|
||
word-break: normal;
|
||
}
|
||
|
||
.pm-info-table td.card-label, .block-info-table td.card-label {
|
||
color: var(--c-muted, #8c8c8c);
|
||
font-size: 11px;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
letter-spacing: .03em;
|
||
margin-bottom: 2px;
|
||
padding-bottom: 0;
|
||
}
|
||
.pm-info-table td.card-value, .block-info-table td.card-value {
|
||
font-size: 15px;
|
||
line-height: 1.5;
|
||
margin-bottom: 6px;
|
||
}
|
||
|
||
.block-info-table tr:first-child:has(> td.card-label) { display: none; }
|
||
.block-info-table td[data-label]:not([data-label=""])::before {
|
||
content: attr(data-label);
|
||
display: block;
|
||
color: var(--c-muted, #8c8c8c);
|
||
font-size: 10px;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
letter-spacing: .03em;
|
||
margin-bottom: 1px;
|
||
white-space: nowrap;
|
||
word-break: normal;
|
||
}
|
||
.block-info-table td[data-label=""]::before { content: none; }
|
||
|
||
.peers-list .block-info-table td,
|
||
.peers-technical-block .block-info-table td,
|
||
.gov-overview tbody td {
|
||
word-break: normal;
|
||
overflow-wrap: break-word;
|
||
}
|
||
|
||
.pm-info-table td .user-link, .pm-info-table td .peer-key, .pm-info-table td a[href],
|
||
.block-info-table td .peer-key, .block-info-table td .user-link, .block-info-table td a[href] {
|
||
display: inline-block;
|
||
max-width: 100%;
|
||
overflow-wrap: anywhere;
|
||
word-break: break-all;
|
||
}
|
||
|
||
.pm-info-table td form, .block-info-table td form,
|
||
.pm-info-table td button, .block-info-table td button {
|
||
width: 100%;
|
||
margin: 0;
|
||
}
|
||
|
||
.main-content { width: 100%; max-width: 100%; }
|
||
.main-column {
|
||
width: 100%; max-width: 100%;
|
||
padding: 16px; box-sizing: border-box;
|
||
}
|
||
.main-column .card-field {
|
||
flex-direction: column;
|
||
align-items: stretch;
|
||
gap: 2px;
|
||
}
|
||
.main-column .card-field .card-value {
|
||
width: 100%; max-width: 100%; font-size: 15px;
|
||
}
|
||
.main-column .card-field .card-label {
|
||
color: var(--c-muted, #8c8c8c); font-size: 11px;
|
||
}
|
||
.main-column img, .main-column video, .main-column iframe, .main-column canvas {
|
||
max-width: 100%; height: auto;
|
||
}
|
||
.main-column hr {
|
||
width: 100%; border: 0;
|
||
border-top: 1px solid #333; margin: 16px 0;
|
||
}
|
||
|
||
.activity-filter-acc { width: 100%; margin-bottom: 8px; }
|
||
|
||
.activity-quick-modes {
|
||
display: flex; flex-wrap: nowrap; gap: 6px; margin-bottom: 8px;
|
||
}
|
||
.activity-quick-modes form { flex: 1 1 0; min-width: 0; margin: 0; display: flex; }
|
||
.activity-quick-modes .filter-btn {
|
||
flex: 1 1 0; width: 100%; min-height: 44px;
|
||
white-space: nowrap; word-break: keep-all; overflow-wrap: normal;
|
||
padding-left: 6px; padding-right: 6px; font-size: 14px;
|
||
}
|
||
|
||
.activity-groups { list-style: none; padding: 0; margin: 0; }
|
||
|
||
.activity-groups .oasis-nav-header .emoji { display: none; }
|
||
.activity-groups .oasis-nav-header .nav-text { flex: 1 1 auto; }
|
||
.activity-groups .act-count {
|
||
flex: 0 0 auto; min-width: 20px; text-align: center;
|
||
font-size: 11px; font-weight: 700; color: #121212;
|
||
background: #FFD700; border-radius: 999px; padding: 1px 7px;
|
||
margin: 0 8px 0 0;
|
||
}
|
||
|
||
.activity-groups .oasis-nav-list li { list-style: none; margin: 0; padding: 0; }
|
||
.activity-groups .oasis-nav-list form { margin: 0; display: block; width: 100%; }
|
||
.activity-groups .oasis-nav-list .filter-btn {
|
||
display: block; width: 100%; text-align: left;
|
||
min-height: 44px; margin: 2px 0; box-sizing: border-box;
|
||
}
|
||
.activity-groups .oasis-nav-list .filter-btn.active {
|
||
outline: 2px solid #FFD700; outline-offset: -2px;
|
||
}
|
||
|
||
.message-list { display: flex; flex-direction: column; gap: 4px; width: 100%; }
|
||
.message-list .pm-thread { display: flex; flex-direction: column; width: 100%; align-self: stretch; }
|
||
.pm-thread-replies { display: flex; flex-direction: column; gap: 4px; }
|
||
|
||
.pm-card.pm-bubble {
|
||
max-width: 82%; width: fit-content; min-width: 0;
|
||
box-sizing: border-box; padding: 8px 12px; margin: 2px 0;
|
||
border-radius: 16px; border: 1px solid #333;
|
||
background: #1e1e1e; box-shadow: none; cursor: default;
|
||
}
|
||
|
||
.pm-card.pm-bubble.pm-recv {
|
||
align-self: flex-start; margin-left: 0; margin-right: auto;
|
||
border-bottom-left-radius: 4px; background: #1e1e1e; border-color: #343434;
|
||
}
|
||
|
||
.pm-card.pm-bubble.pm-sent {
|
||
align-self: flex-end; margin-left: auto; margin-right: 0;
|
||
border-bottom-right-radius: 4px; background: #2a2413; border-color: #5c4c1f;
|
||
}
|
||
|
||
.pm-bubble .pm-bubble-sender { font-size: 11px; font-weight: 700; color: #FFD700; margin-bottom: 3px; }
|
||
.pm-bubble .pm-bubble-sender a { color: #FFD700; }
|
||
|
||
.pm-bubble .message-text { font-size: 15px; line-height: 1.42; color: #FFD700; margin: 0; }
|
||
.pm-bubble .message-text a { color: #FFD700; }
|
||
|
||
.pm-bubble .pm-bubble-meta {
|
||
display: flex; flex-wrap: wrap; align-items: center;
|
||
gap: 6px; margin-top: 4px; font-size: 10px; color: var(--c-muted, #8c8c8c);
|
||
}
|
||
.pm-card.pm-sent .pm-bubble-meta { justify-content: flex-end; }
|
||
.pm-card.pm-recv .pm-bubble-meta { justify-content: flex-start; }
|
||
.pm-bubble .pm-bubble-subject { font-style: italic; opacity: .75; max-width: 50%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||
.pm-bubble .pm-bubble-lock { opacity: .85; }
|
||
.pm-bubble .pm-bubble-eco { font-size: 9px; opacity: .9; }
|
||
.pm-bubble .pm-bubble-eco * { font-size: 9px; }
|
||
|
||
.pm-bubble .pm-actions { margin-top: 6px; display: flex; gap: 6px; }
|
||
.pm-card.pm-sent .pm-actions { justify-content: flex-end; }
|
||
.pm-bubble .pm-actions .pm-btn { font-size: 10px; padding: 3px 8px; min-height: 28px; }
|
||
.pm-bubble .pm-actions form { margin: 0; }
|
||
|
||
.pm-bubble .pm-info-table { display: none; }
|
||
|
||
.pm-thread .pm-thread-details { width: 100%; }
|
||
.pm-thread .pm-thread-toggle { font-size: 12px; color: var(--c-muted, #8c8c8c); padding: 4px 0; cursor: pointer; }
|
||
|
||
.main-column h1, .main-column h2, .main-column h3, .main-column h4,
|
||
.tags-header h2, .tags-header h3, .title-with-chip h2, .pm-title, h2.pm-title,
|
||
.cn-name, h1.cn-name, .cn-section, h2.cn-section, .profile-side-name, h2.profile-side-name {
|
||
text-wrap: balance;
|
||
overflow-wrap: break-word;
|
||
word-break: keep-all;
|
||
-webkit-hyphens: none; hyphens: none;
|
||
text-align: left;
|
||
}
|
||
.main-column h1, .tags-header h2, .cn-name {
|
||
font-size: var(--fs-title, 20px); font-weight: 700;
|
||
line-height: 1.22; letter-spacing: -0.01em;
|
||
margin: 0 0 var(--space-2, 8px);
|
||
}
|
||
.main-column h2, .pm-title, .title-with-chip h2, .cn-section {
|
||
font-size: 18px; font-weight: 700;
|
||
line-height: 1.28; margin: var(--space-1, 4px) 0 var(--space-2, 8px);
|
||
}
|
||
.main-column h3 {
|
||
font-size: var(--fs-body-lg, 16px); font-weight: 600;
|
||
line-height: 1.35; margin: var(--space-1, 4px) 0;
|
||
}
|
||
.main-column h1, .main-column h2, .main-column h3,
|
||
.tags-header h2, .pm-title, .cn-name, .cn-section {
|
||
max-width: 40ch; width: auto; min-width: 0;
|
||
}
|
||
|
||
.main-column h1 code, .main-column h2 code, .main-column h3 code,
|
||
.tags-header h2 code, .pm-title code,
|
||
.main-column h1 a[href*="ed25519"], .main-column h2 a[href*="ed25519"],
|
||
.main-column h1 a[href^="ssb:"], .main-column h2 a[href^="ssb:"] {
|
||
word-break: break-all; overflow-wrap: anywhere;
|
||
}
|
||
|
||
.main-column .tags-header {
|
||
display: flex; flex-direction: column; align-items: flex-start;
|
||
gap: var(--space-1, 4px); width: 100%; max-width: 100%;
|
||
margin: 0 0 var(--space-2, 8px);
|
||
}
|
||
.main-column .tags-header h2 { margin: 0; }
|
||
|
||
.main-column .title-with-chip {
|
||
display: flex; flex-wrap: wrap; align-items: center;
|
||
gap: var(--space-2, 8px); width: 100%; max-width: 100%;
|
||
}
|
||
.main-column .title-with-chip h2 { flex: 1 1 auto; min-width: 0; margin: 0; max-width: none; }
|
||
.main-column .title-with-chip > :not(h2) { flex: 0 0 auto; }
|
||
|
||
.main-column p, .main-column li,
|
||
.tags-header p, .tags-header .prefs-help, .indexing-note, .indexing-percent,
|
||
.error-page-message, .welcome-text, .message-text, .pm-bubble .message-text {
|
||
text-wrap: pretty;
|
||
line-height: 1.55;
|
||
max-width: min(66ch, 100%);
|
||
overflow-wrap: anywhere;
|
||
word-break: normal;
|
||
min-width: 0;
|
||
-webkit-hyphens: none; hyphens: none;
|
||
}
|
||
.main-column p + p { margin-top: var(--space-3, 16px); }
|
||
.tags-header p, .tags-header .prefs-help, .indexing-note { line-height: 1.5; margin: 4px 0 0 0; }
|
||
.pm-bubble .message-text { line-height: 1.45; max-width: 100%; }
|
||
|
||
[style*="auto-fill"],
|
||
[style*="minmax(240px"], [style*="minmax(280px"], [style*="minmax(300px"],
|
||
[style*="minmax( 240px"], [style*="minmax( 280px"], [style*="minmax( 300px"],
|
||
.trending-container, .cn-hub-grid, .cn-products {
|
||
display: grid !important; grid-template-columns: 1fr !important; gap: 12px !important;
|
||
width: 100% !important; max-width: 100% !important;
|
||
}
|
||
.trending-container > *, .games-grid > *, .market-grid > *, .tribe-grid > *,
|
||
.feed-container, .feed-card, .trending-card,
|
||
.main-column article, .main-column [class*="-card"], .main-column [class*="-item"],
|
||
.main-column [class*="-entry"], .main-column .card {
|
||
width: 100%; max-width: 100%; min-width: 0;
|
||
box-sizing: border-box; margin-left: 0; margin-right: 0;
|
||
}
|
||
.feed-card .feed-text, .trending-card .feed-text,
|
||
.main-column article p, .main-column [class*="-card"] p { max-width: var(--measure, 66ch); }
|
||
.main-column form, .comment-form, .comment-form-wrapper, .market-form,
|
||
.new-message-form, .project-control-form, .filter-box {
|
||
display: block; width: 100%; max-width: 100%;
|
||
min-width: 0; box-sizing: border-box;
|
||
}
|
||
.main-column input:not([type="checkbox"]):not([type="radio"]):not(.oasis-nav-toggle):not(.oasis-nav-side-toggle),
|
||
.main-column textarea, .main-column select {
|
||
width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box;
|
||
}
|
||
.main-column form > button:only-of-type, .main-column form > .create-button,
|
||
.comment-form button[type="submit"], .market-form button[type="submit"],
|
||
.new-message-form button[type="submit"] {
|
||
display: block; width: 100%; max-width: 100%;
|
||
box-sizing: border-box; margin-top: 8px;
|
||
}
|
||
[style*="width:33%"], [style*="width: 33%"], [style*="width:25%"], [style*="width: 25%"],
|
||
[style*="width:60%"], [style*="width: 60%"], [style*="width:40%"], [style*="width: 40%"] {
|
||
width: 100% !important; max-width: 100% !important;
|
||
}
|
||
.main-column [style*="max-width: 800px"], .main-column [style*="max-width:800px"],
|
||
.ai-response, .ai-train-bar {
|
||
max-width: 100% !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box !important;
|
||
}
|
||
.message-list, .pm-thread, .pm-thread-replies { width: 100%; max-width: 100%; box-sizing: border-box; }
|
||
|
||
.main-column p .user-link, .main-column p a[href^="/author/"],
|
||
.main-column li .user-link, .main-column span .user-link,
|
||
.main-column .message-text .user-link, .main-column .message-text a[href^="/author/"],
|
||
.pm-bubble .message-text .user-link, .pm-bubble .message-text a[href^="/author/"],
|
||
.pm-quote a[href^="/author/"] {
|
||
display: inline; white-space: normal;
|
||
overflow-wrap: anywhere; word-break: keep-all;
|
||
-webkit-hyphens: none; hyphens: none;
|
||
}
|
||
|
||
.peer-key, .user-link.peer-key, .block-info-table td .peer-key, .pm-info-table td .peer-key,
|
||
.pm-info-table td .user-link, .block-info-table td .user-link,
|
||
.search-oasis-id, .pm-sent-key-value, .kpi__value {
|
||
display: inline-block; max-width: 100%;
|
||
overflow-wrap: anywhere; word-break: break-all;
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||
font-variant-numeric: tabular-nums; line-height: 1.45;
|
||
}
|
||
|
||
.oasis-id-copy {
|
||
display: block; width: 100%; white-space: nowrap;
|
||
overflow: hidden; text-overflow: ellipsis;
|
||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||
}
|
||
.invites-list .user-link.peer-key, .peers-list .block-info-table td .peer-key {
|
||
display: block; max-width: 100%; white-space: nowrap;
|
||
overflow: hidden; text-overflow: ellipsis; word-break: normal;
|
||
}
|
||
|
||
.main-column .message-text a[href^="http"], .main-column p a[href^="http"],
|
||
.pm-bubble .message-text a[href^="http"], .main-column .message-text a.oasis-path-link,
|
||
.main-column .message-text a.job-link, .main-column .message-text a.project-link,
|
||
.main-column .message-text a.market-link {
|
||
overflow-wrap: anywhere; word-break: keep-all;
|
||
-webkit-hyphens: none; hyphens: none;
|
||
}
|
||
.main-column code:not(pre code), .pm-bubble .message-text code {
|
||
display: inline; max-width: 100%;
|
||
overflow-wrap: anywhere; word-break: break-word; white-space: pre-wrap;
|
||
}
|
||
|
||
.main-column .tags-header { margin-bottom: 6px; gap: 2px; }
|
||
.main-column .tags-header h2, .tags-header h2 {
|
||
font-size: 17px; line-height: 1.2; letter-spacing: 0;
|
||
}
|
||
.main-column .tags-header p { font-size: 13px; line-height: 1.35; margin: 0; }
|
||
|
||
.main-column { padding: 10px 12px 16px 12px; }
|
||
.activity-filter-acc { margin-bottom: 4px; }
|
||
|
||
.empty-state {
|
||
display: flex; flex-direction: column; align-items: center;
|
||
justify-content: center; text-align: center;
|
||
padding: 40px 16px; gap: 8px; width: 100%; box-sizing: border-box;
|
||
}
|
||
.empty-state-icon { font-size: 44px; line-height: 1; opacity: 0.55; }
|
||
.empty-state-title { font-size: 16px; font-weight: 700; margin: 4px 0 0 0; color: #FFD700; }
|
||
.empty-state-text { color: var(--c-muted, #8c8c8c); font-size: 14px; line-height: 1.4; max-width: 40ch; margin: 0; }
|
||
.empty-state-cta { margin-top: 10px; min-height: 48px; display: inline-flex; align-items: center; }
|
||
|
||
.activity-filter-collapsed {
|
||
display: flex; align-items: center; gap: 10px;
|
||
flex-wrap: wrap; margin-bottom: 8px; width: 100%;
|
||
}
|
||
.activity-back {
|
||
display: inline-flex; align-items: center; gap: 4px;
|
||
min-height: 44px; padding: 6px 14px 6px 10px; flex: 0 0 auto;
|
||
}
|
||
.activity-back-arrow { font-size: 22px; line-height: 1; font-weight: bold; }
|
||
.activity-active-filter {
|
||
font-weight: 700; color: #FFD700; text-transform: uppercase;
|
||
font-size: 13px; letter-spacing: .03em;
|
||
}
|
||
|
||
.oasis-bottombar .bb-item { min-height: 48px; }
|
||
.oasis-bottombar .bb-pair .bb-item { min-height: 44px; padding: 4px 10px; }
|
||
.oasis-mobile-menus .oasis-menu-btn { min-height: 48px; }
|
||
.pm-bubble .pm-actions .pm-btn { min-height: 40px; padding: 6px 12px; }
|
||
.score-btn, .vote-btn, .feed-action-btn {
|
||
min-height: 44px; min-width: 44px;
|
||
display: inline-flex; align-items: center; justify-content: center;
|
||
}
|
||
.score-btn:active, .vote-btn:active, .feed-action-btn:active { filter: brightness(.85); }
|
||
|
||
.oasis-bottombar .bb-add .bb-ico {
|
||
background: #FFD700; color: #121212; border-radius: 999px;
|
||
width: 30px; height: 30px; display: inline-flex;
|
||
align-items: center; justify-content: center;
|
||
font-weight: bold; font-size: 20px; line-height: 1;
|
||
}
|
||
.bb-pick-grid {
|
||
display: grid; grid-template-columns: repeat(3, 1fr);
|
||
gap: 8px; width: 100%; margin-top: 8px;
|
||
}
|
||
.bb-pick-form { margin: 0; display: block; }
|
||
.bb-pick-btn {
|
||
display: flex; flex-direction: column; align-items: center;
|
||
justify-content: center; gap: 6px; width: 100%;
|
||
min-height: 76px; padding: 10px 6px; box-sizing: border-box;
|
||
background: #1c1c1c; border: 1px solid #333; border-radius: 12px; color: #FFD700;
|
||
}
|
||
.bb-pick-btn.active { border-color: #FFD700; background: #2a2412; }
|
||
.bb-pick-ico { font-size: 26px; color: #FFD700; line-height: 1; }
|
||
.bb-pick-lbl { font-size: 11px; text-align: center; line-height: 1.2; }
|
||
|
||
|
||
/* Ocultar los checkboxes nativos del drawer (nav-left/right-toggle) — si no, salen 2 cuadrados blancos arriba */
|
||
.oasis-nav-side-toggle {
|
||
position: absolute;
|
||
width: 1px;
|
||
height: 1px;
|
||
opacity: 0;
|
||
pointer-events: none;
|
||
margin: 0;
|
||
}
|
||
|
||
/* ==========================================================================
|
||
Usabilidad 0.9.1 — Chats estilo Signal + widgets compactos + foros con hilos
|
||
Todo en NUESTRO tema (carga tras mobile.css → gana por cascada, sin !important)
|
||
========================================================================== */
|
||
|
||
/* --- Chats: burbujas tipo Signal (los hooks .chat-message-self/-author ya existen) --- */
|
||
.chat-messages-list { display: flex; flex-direction: column; gap: 4px; width: 100%; }
|
||
.chat-message {
|
||
max-width: 82%; width: fit-content; min-width: 0; box-sizing: border-box;
|
||
padding: 8px 12px; margin: 2px 0;
|
||
border: 1px solid #343434; background: #1e1e1e;
|
||
border-radius: 16px; border-bottom-left-radius: 4px;
|
||
align-self: flex-start;
|
||
}
|
||
.chat-message.chat-message-self {
|
||
align-self: flex-end; margin-left: auto; margin-right: 0;
|
||
background: #2a2413; border-color: #5c4c1f;
|
||
border-bottom-left-radius: 16px; border-bottom-right-radius: 4px;
|
||
}
|
||
.chat-message-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 3px; font-size: 10px; color: var(--c-muted, #8c8c8c); }
|
||
.chat-message.chat-message-self .chat-message-meta { justify-content: flex-end; }
|
||
.chat-message-sender, .chat-message-sender a { font-size: 11px; font-weight: 700; color: #FFD700; }
|
||
.chat-message-date { opacity: .8; }
|
||
.chat-message-text {
|
||
display: block; font-size: 15px; line-height: 1.42; color: #FFD700; margin: 0;
|
||
word-break: break-word; overflow-wrap: anywhere;
|
||
}
|
||
.chat-message-text a { color: #FFD700; }
|
||
.chat-message-image-wrap { margin-top: 6px; }
|
||
.chat-message-image { max-width: 100%; border-radius: 10px; }
|
||
|
||
/* --- Compose de chat: caja redondeada + enviar como pill (no bloque naranja de ancho completo) --- */
|
||
.chat-message-form textarea {
|
||
width: 100%; box-sizing: border-box; border-radius: 14px;
|
||
padding: 10px 14px; resize: vertical; font-size: 15px;
|
||
}
|
||
.chat-message-form .filter-btn {
|
||
width: 46px !important; height: 46px !important; min-width: 46px !important; min-height: 46px !important;
|
||
padding: 0 !important; border-radius: 50% !important;
|
||
display: inline-flex !important; align-items: center !important; justify-content: center !important;
|
||
font-size: 0 !important; line-height: 0 !important;
|
||
}
|
||
.chat-message-form .filter-btn::before { content: "\27A4"; font-size: 18px; line-height: 1; color: #121212; }
|
||
.chat-message-form input[type="file"] { font-size: 12px; }
|
||
|
||
/* --- Reply a mensaje en chats (server-side ?replyTo=, sin JS) --- */
|
||
.chat-message-meta .chat-reply-btn { margin-left: auto; padding: 0 4px; color: #FFD700; text-decoration: none; font-size: 15px; opacity: .85; }
|
||
.chat-message-self .chat-message-meta .chat-reply-btn { margin-left: 8px; }
|
||
.chat-quote {
|
||
display: block; border-left: 3px solid #FFD700; padding: 3px 8px; margin: 0 0 5px;
|
||
background: rgba(255,215,0,.08); border-radius: 6px; font-size: 12px; line-height: 1.3;
|
||
}
|
||
.chat-quote-author, .chat-quote-author a { color: #FFD700; font-weight: 700; margin-right: 6px; }
|
||
.chat-quote-text { color: #FFDD44; }
|
||
.chat-replying-to {
|
||
display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
|
||
border-left: 3px solid #FFD700; background: rgba(255,215,0,.10);
|
||
padding: 6px 10px; margin-bottom: 8px; border-radius: 8px; font-size: 12px;
|
||
}
|
||
.chat-replying-label { color: #FFD700; font-weight: 700; }
|
||
.chat-reply-cancel { margin-left: auto; color: #FFD700; text-decoration: none; font-weight: 700; font-size: 14px; }
|
||
|
||
/* --- Switcher de chats: tira horizontal para saltar entre conversaciones --- */
|
||
.chat-switcher {
|
||
display: flex; gap: 6px; overflow-x: auto; padding: 6px 0; margin: 4px 0 8px;
|
||
-webkit-overflow-scrolling: touch; scrollbar-width: none;
|
||
}
|
||
.chat-switcher::-webkit-scrollbar { display: none; }
|
||
.chat-switch-chip {
|
||
flex: 0 0 auto; max-width: 140px; padding: 6px 12px; border-radius: 999px;
|
||
background: #1c1c1c; border: 1px solid #333; color: #FFD700; text-decoration: none;
|
||
font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
||
}
|
||
.chat-switch-chip.active { background: #FFD700; color: #121212; border-color: #FFD700; font-weight: 700; }
|
||
|
||
/* --- Subtopics de foro: tira de pestañas (topics con nombre) + input de topic en el compose --- */
|
||
.forum-topics {
|
||
display: flex; gap: 6px; overflow-x: auto; padding: 6px 0; margin: 4px 0 8px;
|
||
scrollbar-width: none;
|
||
}
|
||
.forum-topics::-webkit-scrollbar { display: none; }
|
||
.forum-topic-chip {
|
||
flex: 0 0 auto; max-width: 160px; padding: 6px 14px; border-radius: 999px;
|
||
background: #1c1c1c; border: 1px solid #333; color: #FFD700; text-decoration: none;
|
||
font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
||
}
|
||
.forum-topic-chip.active { background: #FFD700; color: #121212; border-color: #FFD700; font-weight: 700; }
|
||
.new-message-form { flex-wrap: wrap; }
|
||
.forum-topic-input {
|
||
flex: 1 0 100%; box-sizing: border-box; border-radius: 12px;
|
||
padding: 8px 12px; font-size: 13px; margin: 0 0 6px;
|
||
}
|
||
|
||
/* --- #3: al desplegar una categoría, sus módulos son BOTONES CUADRADOS redondeados (no hexágonos),
|
||
en rejilla 2×2 (2 y 2) y grandes: cada cuadrado llena su columna --- */
|
||
.hive-mods {
|
||
display: grid; grid-template-columns: repeat(2, 1fr);
|
||
justify-items: stretch; align-content: center;
|
||
gap: 12px; padding: 8px 4px;
|
||
}
|
||
.hex-mod {
|
||
clip-path: none; -webkit-clip-path: none;
|
||
width: 100%; height: auto; aspect-ratio: 1 / 1; min-height: 120px;
|
||
border-radius: 18px; padding: 8px; gap: 7px;
|
||
}
|
||
.hex-mod::before { clip-path: none; -webkit-clip-path: none; inset: 2px; border-radius: 16px; }
|
||
.hex-mod .hx-ico { font-size: 36px; }
|
||
.hex-mod .hx-lbl { font-size: 12.5px; max-width: 94%; }
|
||
/* si el nº de módulos es IMPAR, el último (solo en su fila) se CENTRA en vez de pegarse a la izquierda;
|
||
abarca las 2 columnas pero conserva el ancho de una sola (gap 12 → mitad 6) */
|
||
.hex-mod:last-child:nth-child(odd) {
|
||
grid-column: 1 / -1; justify-self: center; width: calc(50% - 6px);
|
||
}
|
||
|
||
/* --- #2: el hexágono "Personal" muestra tu avatar (diferencia del filtro "Personal" del header) --- */
|
||
.hex-cat .hx-avatar {
|
||
width: 58%; height: 58%; border-radius: 50%; object-fit: cover;
|
||
position: relative; z-index: 1; border: 1px solid rgba(255,215,0,.6);
|
||
}
|
||
|
||
/* --- #1: chat estilo Signal — compose ABAJO + mensajes arriba (el reply deja de "saltar") --- */
|
||
.tribe-main.chat-full-width { display: flex; flex-direction: column-reverse; }
|
||
#chatbox { scroll-margin-top: 8px; scroll-margin-bottom: 8px; }
|
||
|
||
/* --- Botón spread → pill compacto (vence button{min-height:48px}/ancho completo) --- */
|
||
.card-spread-centered, .card-spread-left, .spread-row { margin: 6px 0; }
|
||
.card-spread-centered .spread-btn, .card-spread-left .spread-btn,
|
||
.spread-row .spread-btn, .card-chips-row .spread-btn {
|
||
display: inline-flex; align-items: center; justify-content: center;
|
||
width: auto; min-width: 0; min-height: 30px; height: 30px;
|
||
padding: 2px 14px; font-size: 13px; line-height: 1;
|
||
border-radius: 999px; border: 1px solid #555; background: #1a1a1a; color: #FFD700;
|
||
}
|
||
.card-spread-centered .spread-btn.spread-btn-on,
|
||
.card-spread-left .spread-btn.spread-btn-on { background: #FFD700; color: #1a1a1a; border-color: #FFD700; }
|
||
|
||
/* --- Caja de votos (▲ n ▼): compacta y HORIZONTAL.
|
||
El problema era una cadena de flex-stretch (comment-vote-col flex → estiraba la caja a 135px).
|
||
Rompemos el estiramiento con height:auto + inline-flex en toda la cadena, con !important
|
||
para vencer el min-height:44px de .score-btn (762) y el !important de epsylon en mobile.css. --- */
|
||
.comment-vote-col { display: block !important; height: auto !important; min-height: 0 !important; width: auto !important; }
|
||
.forum-score-box {
|
||
display: inline-flex !important; height: auto !important; min-height: 0 !important;
|
||
min-width: 0 !important; width: auto !important;
|
||
padding: 4px 8px !important; border-radius: 10px !important;
|
||
flex-direction: row !important; flex-wrap: nowrap !important; gap: 12px !important; align-items: center !important;
|
||
}
|
||
.forum-score-form {
|
||
display: inline-flex !important; height: auto !important; width: auto !important;
|
||
flex-direction: row !important; flex-wrap: nowrap !important; gap: 12px !important; align-items: center !important;
|
||
}
|
||
.score-btn {
|
||
flex: 0 0 auto !important;
|
||
width: 30px !important; height: 30px !important; min-width: 30px !important; min-height: 30px !important;
|
||
font-size: 0.95em !important; border-radius: 8px !important; padding: 0 !important;
|
||
}
|
||
.score-total { flex: 0 0 auto !important; font-size: 1.15em !important; min-height: 0 !important; height: auto !important; margin: 0 !important; white-space: nowrap; }
|
||
.comment-votes .votes-count { font-size: 11px; }
|
||
|
||
/* Aplanar el comentario: quitar las cajas/recuadros internos para que sea UN bloque limpio
|
||
(cada sección salía como una tarjeta con padding enorme → mucho hueco muerto) */
|
||
.forum-comment .comment-header,
|
||
.forum-comment .comment-body-row,
|
||
.forum-comment .comment-vote-col,
|
||
.forum-comment .comment-text-col,
|
||
.forum-comment .new-reply {
|
||
background: transparent !important; border: none !important; box-shadow: none !important;
|
||
padding: 0 !important; margin: 6px 0 0 !important; border-radius: 0 !important;
|
||
}
|
||
.forum-comment .comment-header { margin-top: 0 !important; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; }
|
||
/* la barra de votos de abajo ya muestra el score → ocultar el ▲:0 ▼:0 redundante de la cabecera */
|
||
.forum-comment .comment-header .comment-votes { display: none !important; }
|
||
.forum-comment .comment-text-col p { margin: 4px 0 !important; }
|
||
.forum-comment .comment-text-col > div { background: transparent !important; border: none !important; padding: 0 !important; }
|
||
.forum-comment { padding: 10px 12px !important; margin-bottom: 8px !important; }
|
||
/* barra de votos alineada a la izquierda, no centrada, para que ocupe poco */
|
||
.forum-comment .comment-body-row { display: flex !important; flex-direction: column !important; align-items: flex-start !important; }
|
||
|
||
/* --- Reply/compose del foro estilo Signal: fila [textarea que crece] + [botón REDONDO con icono ↩] --- */
|
||
.new-reply .comment-form,
|
||
.new-message-form { display: flex !important; flex-direction: row !important; align-items: flex-end !important; gap: 8px !important; margin: 6px 0 0 !important; }
|
||
.new-message-form br { display: none !important; }
|
||
.comment-textarea, .new-message-form textarea {
|
||
flex: 1 1 auto !important; box-sizing: border-box; border-radius: 14px;
|
||
padding: 9px 14px; min-height: 42px; resize: none; font-size: 14px; margin: 0 !important;
|
||
}
|
||
.forum-send-btn {
|
||
flex: 0 0 auto !important;
|
||
width: 44px !important; height: 44px !important; min-width: 44px !important; min-height: 44px !important;
|
||
padding: 0 !important; margin: 0 !important; border-radius: 50% !important;
|
||
font-size: 0 !important; line-height: 0 !important;
|
||
display: inline-flex !important; align-items: center !important; justify-content: center !important;
|
||
}
|
||
.forum-send-btn::before { content: "\21A9"; font-size: 20px; line-height: 1; color: #121212; }
|
||
.new-reply { margin-top: 6px; }
|
||
|
||
/* --- Fase 2: hilos anidados. mobile.css fuerza margin-left:0 !important → necesitamos !important para ganar --- */
|
||
.forum-comment.level-1 { margin-left: 10px !important; border-left: 2px solid #333; }
|
||
.forum-comment.level-2 { margin-left: 20px !important; border-left: 2px solid #3a3a3a; }
|
||
.forum-comment.level-3 { margin-left: 28px !important; border-left: 2px solid #404040; }
|
||
.forum-comment.level-4 { margin-left: 34px !important; border-left: 2px solid #454545; }
|
||
/* comentario destacado: acento sutil a la izquierda en vez del marco naranja enorme */
|
||
.forum-comment.highlighted-reply { border: 1px solid #3a3a3a !important; border-left: 3px solid #FFD700 !important; background: #1b1a16 !important; }
|
||
|
||
/* --- Reply del foro SIN tocar la vista de epsylon: la cajita se agranda al enfocarla;
|
||
el botón redondo ↩ está SIEMPRE visible (el usuario pidió icono de reply, no gesto/JS). --- */
|
||
.new-reply .comment-textarea { min-height: 42px; }
|
||
.new-reply:focus-within .comment-textarea { min-height: 64px; }
|
||
|
||
/* ==========================================================================
|
||
Mejoras UI 0.9.1: fuente única + barra de búsqueda en topbar + hive global + bottombar fija
|
||
========================================================================== */
|
||
|
||
/* --- fuente única en todo el UI móvil (quitar el lío monospace/sans) --- */
|
||
.oasis-mobile-topbar, .oasis-mobile-menus, .hive-nav, .oasis-bottombar, .main-column,
|
||
.oasis-mobile-topbar input, .main-column input, .main-column textarea, .main-column select, button {
|
||
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||
}
|
||
|
||
/* (topbar sin barra de búsqueda: vuelve el título "OASIS" — CSS .omt-title más arriba) */
|
||
|
||
/* --- hive ahora global en el header (debajo de los 2 botones) --- */
|
||
.header .hive-nav { margin: 34px auto 10px; }
|
||
|
||
/* --- bottombar FIJA de 6 (Inbox·PM·Write·Search·Graphos·Peers): que quepan --- */
|
||
.oasis-bottombar-fixed .bb-item { padding: 2px 0; gap: 2px; }
|
||
.oasis-bottombar-fixed .bb-ico { font-size: 17px; }
|
||
.oasis-bottombar-fixed .bb-lbl { font-size: 8.5px; }
|
||
|
||
/* ==========================================================================
|
||
FORK_IA_UX — navegación thumb-zone: hive en HOJA INFERIOR + FAB de publicar + barra reordenada.
|
||
Respaldo real: Hoober 2013 (49% una mano), Bergstrom-Lehtovirta CHI 2011 (área del pulgar = arco),
|
||
Parhi 2006 (diana ≥9mm → ≥48px), NN/g 2016 (nav visible > oculta), Von Restorff (FAB destacado).
|
||
Sin JS (checkbox-hack), gateado por OASIS_MOBILE.
|
||
========================================================================== */
|
||
|
||
/* el hive salió del header → el contenido empieza justo bajo la topbar fija (libera espacio arriba) */
|
||
body { padding-top: 66px; }
|
||
|
||
/* --- barra inferior FORK (thumb-zone): 5 huecos con FAB central elevado --- */
|
||
.oasis-bottombar-fork { align-items: flex-end; gap: 2px; }
|
||
.oasis-bottombar-fork .bb-item,
|
||
.oasis-bottombar-fork .bb-explore {
|
||
min-height: 52px; /* diana táctil holgada (≥48px, Parhi 2006 / Material 48dp) */
|
||
justify-content: center;
|
||
cursor: pointer; text-decoration: none;
|
||
}
|
||
/* FAB central de publicar: círculo dorado destacado y elevado (Von Restorff + Jakob) */
|
||
.oasis-bottombar-fork .bb-fab-btn {
|
||
flex: 0 0 auto;
|
||
display: flex; align-items: center; justify-content: center;
|
||
width: 58px; height: 58px; margin: 0 4px;
|
||
border-radius: 50%;
|
||
background: #FFD700; color: #121212;
|
||
box-shadow: 0 3px 10px rgba(0,0,0,.55);
|
||
text-decoration: none;
|
||
transform: translateY(-16px); /* lo levanta por encima de la barra */
|
||
}
|
||
.oasis-bottombar-fork .bb-fab-glyph { font-size: 32px; font-weight: 700; line-height: 1; }
|
||
.oasis-bottombar-fork .bb-fab-btn:active { filter: brightness(.9); }
|
||
|
||
/* --- HOJA INFERIOR del hive (bottom-sheet, sin JS) --- */
|
||
.fork-sheet-wrap { display: contents; } /* no genera caja: el checkbox y la hoja quedan hermanos */
|
||
.fork-sheet-toggle { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; margin: 0; }
|
||
|
||
.hive-sheet {
|
||
position: fixed; inset: 0; z-index: 1200; pointer-events: none;
|
||
background-color: transparent; box-shadow: none; border-radius: 0; /* anula el div{#222} global */
|
||
}
|
||
.hive-sheet-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.6); opacity: 0; transition: opacity .25s ease; }
|
||
.hive-sheet-panel {
|
||
position: absolute; left: 0; right: 0; bottom: 0; margin: 0;
|
||
max-height: 82vh; overflow-y: auto;
|
||
background: #121212; border-top: 1px solid #333; border-radius: 18px 18px 0 0;
|
||
padding: 6px 10px calc(20px + env(safe-area-inset-bottom, 0px));
|
||
transform: translateY(100%); transition: transform .28s ease;
|
||
box-shadow: 0 -6px 24px rgba(0,0,0,.5);
|
||
}
|
||
/* abierto */
|
||
.fork-sheet-toggle:checked ~ .hive-sheet { pointer-events: auto; }
|
||
.fork-sheet-toggle:checked ~ .hive-sheet .hive-sheet-backdrop { opacity: 1; }
|
||
.fork-sheet-toggle:checked ~ .hive-sheet .hive-sheet-panel { transform: translateY(0); }
|
||
|
||
/* asa/grip para cerrar */
|
||
.hive-sheet-grip { display: block; width: 44px; height: 5px; margin: 4px auto 10px; border-radius: 3px; background: #444; cursor: pointer; }
|
||
/* fila de accesos que NO están en el hive (red y estado) */
|
||
.hive-sheet-quick {
|
||
display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
|
||
margin: 2px 0 10px; padding: 0 0 8px; border-bottom: 1px solid #262626;
|
||
background-color: transparent; box-shadow: none; border-radius: 0; /* anula div{#222} */
|
||
}
|
||
.hive-sheet-quick .hsq-item {
|
||
display: flex; flex-direction: column; align-items: center; gap: 4px;
|
||
min-height: 48px; justify-content: center;
|
||
text-decoration: none; color: #FFD700;
|
||
background: #161616; border: 1px solid #333; border-radius: 12px; padding: 6px 2px;
|
||
}
|
||
.hive-sheet-quick .hsq-ico { font-size: 20px; line-height: 1; }
|
||
.hive-sheet-quick .hsq-lbl { font-size: 10px; }
|
||
/* el hive dentro de la hoja */
|
||
.hive-sheet .hive-nav { margin: 2px auto 0; max-width: 360px; }
|
||
.hive-sheet .hive-mods { background-color: transparent; box-shadow: none; border-radius: 0; } /* por si el div{#222} lo alcanza */
|