Guía del proyecto Wikimedia para TemplateStyles
Los estilos de plantilla permiten utilizar páginas CSS personalizadas para diseñar contenido sin que el administrador de la interfaz tenga que editar el CSS de todo el sitio. Los estilos de plantilla hacen que sea más cómodo para los editores diseñar plantillas; por ejemplo, aquellas plantillas para las que el CSS de todo el sitio para la interfaz móvil u otra interfaz (por ejemplo, Timeless) actualmente afecta negativamente la visualización de la plantilla.
Los TemplateStyles funcionan en todo tipo de páginas, no solo en plantillas, a pesar del nombre.
Pautas
- El estilo debe aplicarse únicamente a la salida de la plantilla asociada. También puede aplicarse a wikitexto cercano de gran relevancia donde se utiliza la plantilla. (Por ejemplo, hay muchas plantillas de tabla que deberían tener TemplateStyles que se proporcionan completamente en plantillas, o que pueden proporcionar una leyenda a una tabla de wikitexto). De lo contrario, sería confuso si agregar una plantilla a una parte de una página cambiara total o parcialmente la visualización o el estilo de una parte no relacionada de la página.
- Las páginas de estilo deben estar asociadas a una plantilla específica o a un grupo de plantillas, y deben tener el nombre correspondiente. Esto permite que las páginas de estilo se identifiquen y editen fácilmente. En general, esto significa que una página de estilo debe ser una subpágina de la plantilla relacionada, por ejemplo: Template: myTemplate /styles.css o Template: myTemplate /styles- foo .css , pero no Template:styles- foo .css ni Template: foo .css .
- En general, se siguen las convenciones de codificación de MediaWiki para CSS. Algunos detalles:
- Utilice selectores que tengan una alta probabilidad de ser exclusivos de la plantilla que se está utilizando. Esto reduce la posibilidad de que surjan reglas CSS conflictivas accidentalmente. Ejemplos: utilice . myTemplate -row en lugar de .row o . myTemplate tr en lugar de tr .
- Evite usar #id según las convenciones. Se supone que los identificadores HTML son únicos en una página. Las plantillas rara vez se usan de forma única y las que inicialmente se usan una sola vez por página suelen usarse más adelante de formas imprevistas. Use clases en lugar de identificadores para el estilo.
- Evite usar !important según las convenciones, excepto en vistas móviles para anular la entrada de estilo de la plantilla asociada. El uso de
!important
en TemplateStyles es excepcionalmente difícil de anular debido al orden de carga de los estilos (CSS personal y luego TemplateStyles).
- En las plantillas que se van a sustituir o que probablemente se vayan a sustituir, utilice {{ ifsubst }} para eliminar la etiqueta TemplateStyles. Ejemplo: {{ allcaps }} .
- Los estilos en línea se pueden usar como el caso "si se sustituye" en una plantilla sustituida. Ejemplo: {{ smallcaps }} .
- Las únicas imágenes que pueden utilizarse como imágenes de fondo son las que no requieren atribución (es decir, las que son de dominio público). Para el uso normal de los archivos, la atribución se proporciona en la página de descripción del archivo, a la que se accede haciendo clic en la imagen. Esto no es posible si la imagen se utiliza como fondo.
- El nivel de protección de las páginas de estilo debe coincidir con el de su plantilla asociada. Si una plantilla es de alto riesgo , sus estilos también lo son y deben tener la misma protección. Si una plantilla no es de alto riesgo, se podría provocar vandalismo para causar caos simplemente editando la plantilla en sí. Un nivel de protección más alto para la página de estilo alentaría a los editores a agregar estilos en línea a la plantilla, ya que la plantilla sería editable pero la página de estilo no. Cualquier plantilla que use páginas CSS con el nivel de protección incorrecto se categorizará en Category:Templates using TemplateStyles con un nivel de protección diferente .
- Recuerde agregar
/* {{pp-template}} */
a todas las páginas CSS protegidas el icono de candado correspondiente para asegurarse de que muestren el icono de candado correspondiente. Las plantillas protegidas que utilicen páginas CSS que no tengan el icono de candado se clasificarán en Categoría:Plantillas que utilicen TemplateStyles sin candados .
Tenga en cuenta que el Manual de estilo , incluidas las pautas de accesibilidad , aún se aplican.
Flujo de trabajo para la conversión
- En Plantilla: myTemplate , identifique todos los estilos en línea que se pueden mover a una hoja de estilos separada.
- Crear plantilla: myTemplate /styles.css que contenga todas las clases que reemplazarán los estilos en línea. Utilice nombres de clase específicos de la plantilla siempre que sea posible.
- En Template: myTemplate (o su Template: myTemplate /sandbox si desea probar primero), agregue (no necesita especificar el espacio de nombres Template:). Probablemente sea mejor en la parte superior para que sea obvio y para evitar un destello de contenido sin estilo , pero deberá estar en su propia línea si la plantilla comienza con marcado wiki que debe comenzar en una nueva línea (por ejemplo, wiki-table).
<templatestyles src="myTemplate/styles.css" />
- Modifique la plantilla (o sandbox) para reemplazar los estilos en línea con las clases que definió en Plantilla: myTemplate /styles.css
- Realice todas las comprobaciones que pueda. Si realizó pruebas en el entorno de pruebas, puede consultar la página de casos de prueba, donde se encuentra, pero verifique específicamente que los estilos que modificó se representen correctamente.
- En concreto, en el caso de las plantillas que se van a utilizar en línea, comprueba si hay usos dentro de los enlaces. Las plantillas TemplateStyles no funcionarán dentro de los enlaces (por el momento).
- Si utilizó el sandbox, realice una solicitud de edición para la plantilla principal o realice la actualización si está seguro de los cambios.
- Solicite o modifique el nivel de protección de Plantilla: myTemplate /styles.css para que coincida con el de Plantilla: myTemplate según sea necesario.
- Agregue a la documentación de la plantilla para mostrar qué hojas de estilo TemplateStyles utiliza.
{{Uses TemplateStyles}}
Consejos
- Los usos de las hojas de estilo TemplateStyles se registran de la misma manera que la inclusión de plantillas y la invocación del módulo Scribunto. Special:WhatLinksHere y la sección "Plantillas utilizadas en esta vista previa" debajo del formulario de edición funcionarán para ellas de la manera habitual.
- Para buscar hojas de estilo TemplateStyles, puedes buscar contentmodel:sanitized-css . Consulta también mw:Help:CirrusSearch#Contentmodel.
- Cuando se coloca en la documentación de una plantilla, agrega la plantilla a Category:Templates using TemplateStyles . Si la hoja de estilo TemplateStyles tiene un nivel de protección más bajo, la plantilla se rastreará en Category:Templates using TemplateStyles con un nivel de protección diferente (1 página).
{{Uses TemplateStyles}}
- Los experimentos de TemplateStyles se pueden crear en el sandbox Template:TemplateStyles , por ejemplo, para su uso en experimentos del módulo Module:Sandbox .
- Las páginas TemplateStyles se pueden crear fuera de los espacios de nombres de plantillas o módulos, ya sea creándolas primero en el espacio de nombres de plantillas y moviéndolas (quizás en Template:TemplateStyles sandbox ), o usando Special:ChangeContentModel como administrador y editor de plantillas. Independientemente del método que se use, la creación de una página .css en el espacio de usuario solo puede ser realizada por el usuario en cuestión o un administrador de interfaz, pero una vez que se crea, cualquiera puede editarla.
- Mover una página CSS desinfectada no creará una redirección.
Anulación de estilos de plantilla
Debido a la forma en que se implementa TemplateStyles, anular TemplateStyles en su CSS personal requiere un poco más de esfuerzo de lo normal. Las reglas de una hoja TemplateStyles específica no son las reglas CSS completas, ni puede hacer coincidir los selectores para anularlas.
- Cada selector se 'eleva' a
.mw-parser-output
, por lo que para anular una regla en una hoja TemplateStyles que se parece a .documentation {}
, una anulación ingenua en su archivo CSS personal debería verse así .mw-parser-output .documentation {}
. - Sin embargo, en el HTML, cada estilo TemplateStyles siempre se coloca después de que se carga el archivo CSS personal. En consecuencia, la nueva regla debería ser más específica . Esto puede hacerse de varias maneras. La más fácil es seleccionar el elemento HTML también como en:
.mw-parser-output div.documentation {}
. Otra forma sería duplicar uno de los selectores de clase, como en .mw-parser-output.mw-parser-output .documentation {}
o .mw-parser-output .documentation.documentation {}
. Esta última forma es un poco más a prueba de futuro, pero se ve un poco más extraña. - Por último,
!important
siempre puedes anular los estilos en tu CSS personal. !important
Se aplican las advertencias habituales con respecto a . Si es posible, prefiere una de las dos opciones del punto dos. (Debes hacer esto para anular los estilos en línea, independientemente de lo anterior; algunas plantillas no pueden mover todo a TemplateStyles debido a la flexibilidad que se les da a los usuarios de las plantillas. Los implementadores de plantillas deben considerar si los parámetros como style
y width
son realmente necesarios. Consulta también phab:T200632).
Ejemplos
- mw:Ayuda:Estilos de plantilla/ejemplos
- mw:Plantilla:Elegante (CSS)
- mw:Plantilla:ResponsiveAmboxEjemplo (CSS)
- Template:Thermometer y Template:Thermometer/styles.css brindan una demostración sencilla de cómo los TemplateStyles pueden combinarse con estilos en línea (donde se pasa un parámetro para cambiar uno o más estilos).
Véase también
Enlaces externos
- mw:Extensión:Estilos de plantilla
- mw:Ayuda:Estilos de plantilla