Superposiciones mal ubicadas al envolver Discourse

¡Hola! :waving_hand:

Cuando intento envolver todo el discurso para habilitar lados de diferentes colores, tengo un problema de desplazamiento con superposiciones como la tarjeta de usuario, por ejemplo.

La tarjeta de usuario debería abrirse justo al lado del usuario que se hizo clic. Pero de hecho está desplazada horizontalmente exactamente por el ancho de mis lados. Por lo tanto, la pregunta es: ¿cómo se realiza el posicionamiento de estas superposiciones y cómo podría evitar tales desplazamientos mientras aún logro las barras laterales?

¡Muchas gracias! :clinking_beer_mugs:

Sí, me he topado con esto al añadir un banner extra grande mientras desarrollaba un plugin grande para un cliente. En mi caso, el desplazamiento era completamente ridículo (¡estaba fuera de la pantalla!)

Puede que haya una solución más sencilla, pero resulta que esto es un poco complejo y requiere que sobrescribas una función, por ejemplo, para la tarjeta de usuario:

          api.modifyClass('component:user-card-contents',  {
            _positionCard(target) {

Eso proviene de un mixin, ubicado aquí: discourse/app/assets/javascripts/discourse/mixins/card-contents-base.js.es6 at b3eb67976dd0c0129736fe0b86167d7e512b51f4 · discourse/discourse · GitHub

Usé jQuery para determinar si aplicar o no la modificación según la visibilidad del banner: en algunas páginas tenía el gran ‘banner’, en otras no. Podrías usar una estrategia similar.

A decir verdad, tu ejemplo no se ve tan mal; ¿considerarías dejarlo así?

El problema es que, básicamente, todos los overlays están mal colocados. No quiero sobrescribir el método de posicionamiento de cada overlay que pueda existir.

En la imagen de ejemplo parece aceptable, ya que la ventana del navegador no estaba a pantalla completa. Los lados suelen ser más grandes y, por lo tanto, el mal posicionamiento es más evidente. Algunos overlays están casi fuera de la pantalla.

Sí, es molesto. Quizás sea mejor limitar las personalizaciones a la lista de temas y tratar de mantener la vista de temas lo más intacta posible, sin demasiadas ‘variantes’, para facilitarte la vida.

No he personalizado ninguna vista en particular. Quiero colocar todo el foro dentro de un contenedor para colorear los lados de forma diferente.

¿Cómo lo estás logrando? ¿Estás agregando un nuevo contenedor alrededor del div #main?

Podría ser más fácil si, en su lugar, agregas un color de fondo a #main-outlet y luego añades tu color de fondo para los lados en el body.

Sí, ¡más tarde pensé eso! Así que:

body {
   background-color: red;
}

#main-outlet {
    background-color: white;
}

Aún queda el problema del banner grueso, pero no es tan grande.