Skip to main content

Command Palette

Search for a command to run...

APEX_CSS: aplica estilos dinámicos en Oracle APEX con PL/SQL

Updated
3 min read
APEX_CSS: aplica estilos dinámicos en Oracle APEX con PL/SQL
C

Durante mis años de experiencia profesional, he trabajado en la migración de formularios y módulos de Oracle Forms 6i a Oracle APEX, así como en el desarrollo de nuevos módulos en diversas campos. Mi trayectoria laboral incluye roles en las empresas Hilagro S.A, Transagro S.A, y actualmente, en Consultagro S.A. En estos puestos, he demostrado habilidades en la gestión de proyectos, la mejora de procesos y la formación de usuarios, lo cual me ha permitido optimizar y desarrollar soluciones.

APEX combina la simplicidad del desarrollo declarativo con la potencia del PL/SQL, pero cuando queremos dar personalidad visual dinámica a nuestras apps entra en juego una joya poco explotada: el paquete APEX_CSS.

Pero… ¿Que puedo hacer con este paquete?

Con APEX_CSS podés inyectar codigo CSS desde PL/SQL, incluso a partir de datos almacenados en tablas, lo que abre la puerta a un diseño completamente configurable desde la base de datos.

Desde que se introdujo representa un paso importante hacia la personalización dinámica de interfaces desde el propio motor PL/SQL. Este paquete permite inyectar, modificar o eliminar reglas CSS directamente en tiempo de ejecución, sin necesidad de archivos estáticos ni hojas de estilo predefinidas. Es totalmente compatible con las versiones 23.x y 24.x, y su ámbito de acción se limita a la sesión actual del usuario, lo que garantiza que los estilos aplicados de forma dinámica se eliminen automáticamente al cerrar la sesión.

El paquete se ejecuta dentro del ciclo de renderización de APEX, por lo que puede usarse en procesos “Before Header”, “Before Regions” o incluso desde acciones dinámicas (Dynamic Actions, siempre y cuando se realice el render de la pagina, submit), permitiendo que los cambios de estilo respondan a eventos del usuario o condiciones lógicas del backend.

Ejemplo

En la pagina de APEX en la cual queremos aplicar el paquete creamos un proceso, en este caso en el BEFORE HEADER

Lo nombramos como mejor nos parezca, el “Type“ debe ser Excecute code

En el PL/SQL Code

Colocamos este codigo

BEGIN
    -- Verifica el usuario autenticado actual en la sesión APEX
    IF :APP_USER = 'ADMIN' THEN
        -- Si el usuario es ADMIN, aplica un fondo oscuro (tono corporativo)
        apex_css.add(
            p_css => 'body { background-color: #5c4543; }'
        );        
    ELSE        
        -- Para el resto de los usuarios, aplica un fondo claro (tono cálido)
        apex_css.add(
            p_css => 'body { background-color: #fff4e6; }'
        );        
    END IF;
END;

Al ejecutar la pagina si el :APP_USER es ADMIN se mostraria de esta manera

Y si no de esta manera

Este código se ejecuta durante la fase de renderización de la página en un proceso “Before Header”, pero puede ejecutarse tambien en el “After Header“, donde el motor de APEX genera el HTML que el usuario verá en el navegador.
Mediante el paquete APEX_CSS, el bloque inyecta una regla CSS directamente en el documento, sin depender de archivos externos ni temas adicionales.

La clave está en la función apex_css.add, que toma el parámetro p_css —un bloque de código CSS en texto plano— y lo añade al contenido de la página antes de ser enviada al cliente.
De esta forma, cada usuario puede tener un entorno visual adaptado a su perfil, sin alterar la estructura base del tema APEX.

Con esto concluimos que el paquete APEX_CSS demuestra que Oracle APEX no solo es una plataforma declarativa para crear aplicaciones empresariales rápidamente, sino también una herramienta altamente flexible y programable.
Al permitirnos inyectar o modificar estilos CSS directamente desde PL/SQL, podemos adaptar la interfaz a cada usuario, contexto o flujo del negocio, sin tocar el código fuente del tema ni alterar la estructura de la página.

Este enfoque resulta ideal para proyectos donde la personalización visual dinámica aporta valor —por ejemplo, distinguir perfiles de usuario, marcar estados del sistema o aplicar temas personalizados sin mantenimiento manual—.
Además, su compatibilidad con versiones modernas como APEX 23.x y 24.x lo convierte en un recurso confiable y vigente para desarrollos actuales.

¿Te gustó este contenido?
Sigueme para más artículos sobre Oracle APEX, desarrollo PL/SQL y personalización visual paso a paso.

En el próximo post vamos a ver cómo consultar y aplicar CSS almacenado en tablas usando APEX_CSS.
¡No te lo pierdas!

More from this blog

U

Untitled Publication

42 posts