Tutorial WordPress: Personalizar el bloque Lista con check verde usando pseudo-elementos

·

·

Personalizar el bloque Lista en WordPress: Lista con check verde usando pseudo-elementos

En este artículo se muestra, con todo lujo de detalles, cómo convertir una lista del bloque Lista de Gutenberg en una lista donde cada elemento muestre un check (marca) verde en lugar del marcador por defecto. Se incluyen distintos métodos para aplicar el estilo (CSS directo, variación de bloque registrada con PHP), consideraciones de accesibilidad y compatibilidad (anidamiento, RTL, responsive) y ejemplos prácticos listos para pegar en tu tema o en el personalizador.

Resumen de la idea

La técnica consiste en quitar el marcador por defecto (list-style) y dibujar, mediante pseudo-elementos (::before) sobre cada ltligt, una marca de verificación en un círculo verde. Este método evita añadir HTML adicional en cada elemento y funciona bien con el editor y el front-end si se aplica correctamente.

Requisitos y consideraciones previas

Seleccionar el objetivo CSS correcto

El bloque Lista de Gutenberg suele renderizar la lista con una clase en el ltulgt similar a wp-block-list__list o dentro del bloque wp-block. Para mayor compatibilidad y para poder ofrecer una opción editable en el editor, veremos dos enfoques:

  1. Aplicar CSS a una clase personalizada que añades al bloque desde el panel Avanzado (ej. lista-check).
  2. Registrar una variación de estilo del bloque con PHP que añade la clase automática is-style-check-list al bloque cuando el editor selecciona ese estilo.

1) Método rápido: CSS para una clase personalizada

Pasos:

  1. Selecciona tu bloque Lista en el editor y, en el panel Avanzado, añade la clase: lista-check.
  2. Pega el CSS siguiente en el stylesheet del tema o en Apariencia → Personalizar → CSS adicional.
/ Estilo principal para la clase .lista-check aplicada al bloque Lista /
.lista-check .wp-block-list__list,
.lista-check ul,
.lista-check ol {
  margin: 0
  padding: 0
}

/ Quitar el marcador nativo y preparar los li /
.lista-check .wp-block-list__list li,
.lista-check ul li,
.lista-check ol li {
  list-style: none
  position: relative
  padding-left: 2.4em / espacio para el check /
  margin: 0.5em 0
}

/ Pseudo-elemento que renderiza el check en círculo verde /
.lista-check .wp-block-list__list li:before,
.lista-check ul li:before,
.lista-check ol li:before {
  content: 2714 / símbolo de check (✔) /
  position: absolute
  left: 0
  top: 50%
  transform: translateY(-50%)
  display: inline-block
  width: 1.6em
  height: 1.6em
  line-height: 1.6em
  text-align: center
  font-size: 0.95em
  color: #ffffff / color del símbolo /
  background-color: #28a745 / verde /
  border-radius: 50%
  box-shadow: 0 1px 0 rgba(0,0,0,0.06) inset
}

/ Opcional: ajustar para listas anidadas (sublistas) /
.lista-check .wp-block-list__list li li:before,
.lista-check ul li li:before,
.lista-check ol li li:before {
  width: 1.1em
  height: 1.1em
  line-height: 1.1em
  font-size: 0.8em
  left: 0.4em
}

/ Para compatibilidad RTL invertir posición /
.rtl .lista-check .wp-block-list__list li:before,
.rtl .lista-check ul li:before,
.rtl .lista-check ol li:before {
  left: auto
  right: 0
}

Explicación breve del CSS:

2) Método recomendado: registrar una variación de bloque (para que el estilo aparezca en el editor)

Con este método registras una Block Style para el core/list, de modo que el editor muestre una opción de estilo llamada, por ejemplo, Lista con check y al aplicarla se añade la clase is-style-check-list al bloque. Luego solo aplicas CSS a esa clase.

Pega este fragmento PHP en el archivo functions.php de tu tema o en un plugin de funcionalidades:

 check-list,
                label        => Lista con check,
                is_default   => false,
            )
        )
    }
} )
?>

Luego, añade este CSS (usa el mismo que antes pero dirigido a la clase que WordPress aplicará: is-style-check-list):

/ Aplica estilo cuando se usa la variación registrada (is-style-check-list) /
.is-style-check-list .wp-block-list__list,
.is-style-check-list ul,
.is-style-check-list ol {
  margin: 0
  padding: 0
}

.is-style-check-list .wp-block-list__list li,
.is-style-check-list ul li,
.is-style-check-list ol li {
  list-style: none
  position: relative
  padding-left: 2.4em
  margin: 0.5em 0
}

.is-style-check-list .wp-block-list__list li:before,
.is-style-check-list ul li:before,
.is-style-check-list ol li:before {
  content: 2714
  position: absolute
  left: 0
  top: 50%
  transform: translateY(-50%)
  display: inline-block
  width: 1.6em
  height: 1.6em
  line-height: 1.6em
  text-align: center
  font-size: 0.95em
  color: #ffffff
  background-color: #28a745
  border-radius: 50%
  box-shadow: 0 1px 0 rgba(0,0,0,0.06) inset
}

/ Ajustes para sublistas y RTL como en el ejemplo anterior /
.is-style-check-list .wp-block-list__list li li:before { / ... / }
.rtl .is-style-check-list .wp-block-list__list li:before { / ... / }

Una vez añadido el PHP y el CSS, al editar una Lista verás en la barra lateral la opción de estilos y podrás seleccionar Lista con check. En el front-end la lista mostrará los checks verdes.

Accesibilidad (importantísimo)

Los pseudo-elementos no siempre son anunciados por lectores de pantalla. Si la marca de verificación es puramente decorativa (por ejemplo, la lista simplemente enumera características), no necesitas anunciarla. Si en cambio cada check significa algo semántico (por ejemplo, confirmación de un requisito cumplido), debes proporcionar texto accesible adicional.

Recomendaciones:

Ejemplo de CSS para clase .screen-reader-text (si no existe en tu theme)

.screen-reader-text {
  position: absolute !important
  height: 1px width: 1px
  overflow: hidden
  clip: rect(1px, 1px, 1px, 1px)
  white-space: nowrap
}

Si añades ese ltspangt manualmente o mediante HTML en el bloque (si usas el bloque HTML dentro del editor), el lector de pantalla leerá la información adicional sin mostrar texto visible.

Mejoras y variantes

Ejemplo avanzado: usar un SVG inline como background para mayor control de render

/ pseudo-elemento usando un SVG en background (data URI) /
.is-style-check-list .wp-block-list__list li:before {
  content: 
  position: absolute
  left: 0
  top: 50%
  transform: translateY(-50%)
  display: inline-block
  width: 1.6em
  height: 1.6em
  background-image: url(data:image/svg xmlutf8,)
  background-size: contain
  background-repeat: no-repeat
}

Nota: en la data URI deben escaparse caracteres especiales correctamente en este ejemplo se usa la versión simple compatible para la mayoría de navegadores.

Compatibilidad con sublistas y espaciados

Cuando tengas sublistas dentro de una lista que usa check, revisa visualmente el espaciado. Nuestro CSS de ejemplo reduce el tamaño del icono en sublistas puedes adaptar left/padding-left para respetar la jerarquía visual.

Consejos finales y buenas prácticas

Conclusión

Personalizar el bloque Lista de WordPress para mostrar un check verde usando pseudo-elementos es una técnica elegante y ligera que no requiere alterar el contenido HTML de cada elemento. Puedes implementarla rápidamente añadiendo una clase al bloque y pegando el CSS, o integrarla mejor registrando una variación de bloque con PHP para que el estilo esté disponible desde el editor. Ten en cuenta la accesibilidad y prueba en diferentes contextos (sublistas, RTL, móvil).

Ejemplo rápido de pasos para aplicar en un site

  1. En el editor, selecciona tu bloque Lista y en Avanzado añade la clase lista-check (o usa la variación si has registrado con PHP).
  2. Pega el CSS proporcionado en Apariencia → Personalizar → CSS adicional o en style.css.
  3. Verifica en front-end, en móvil y con lector de pantalla según la relevancia semántica del check.


Leave a Reply

Your email address will not be published. Required fields are marked *