2.8 Ejemplos CSS
Para habilitar las modificaciones de diapositivas, debe especificar un archivo .css
personalizado en el encabezado YAML del documento .Rmd
.
Asegúrese de insertar la ruta relativa al archivo si no está ubicado en el mismo directorio que su archivo .Rmd
.
---
title: "Presentación"
subtitle: "⚔<br/> con xaringan"
author:
- Diego Sandoval
- Author Two
institute: "Universidad Nacional de Colombia"
date: "(actualizado: `r format(Sys.time(), '%d %B %Y')`)"
output:
xaringan::moon_reader:
lib_dir: libs
css: ["default", "default-fonts", "miTema.css"]
nature:
highlightStyle: github
highlightLines: true
---
Puede copiar el archivo CSS por defecto de xaringan: default.css
y construirlo a su manera, o decidir solo cambiar un pequeño subconjunto de las reglas CSS basadas en este archivo. En el primer caso, puede completamente sobreescribir la opción css:
de moon_reader()
.
---
output:
xaringan::moon_reader:
lib_dir: libs
css: ["miTema.css"]
---
En el último caso, puede añadir su archivo CSS después de default
. De esta manera seguirá usando todas las reglas de estilo por defecto de Xaringan, más las nuevas que usted haya definido o modificado en su archivo .css
.
---
output:
xaringan::moon_reader:
lib_dir: libs
css: ["default", "default-fonts", "miTema.css"]
---
2.8.1 Cambiar las fuentes del texto
El archivo default-fonts.css
viene con varias fuentes predefinidas para escribir código:
.remark-code, .remark-inline-code { font-family: 'Source Code Pro', 'Lucida Console', Monaco, monospace; }
y algunas otras para texto normal:
font-family: 'Droid Serif', 'Palatino Linotype', 'Book Antiqua', Palatino, 'Microsoft YaHei', 'Songti SC', serif; } body {
para los encabezados unicamente viene especificado Yanone Kaffeesatz
. Fuente que viene importada desde Google Fonts.
@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
, h2, h3 {
h1font-family: 'Yanone Kaffeesatz';
font-weight: normal;
}
Si desea cambiar, por ejemplo, la fuente del código a “Ubunto Mono”, basta con buscar dicha fuente en Google fonts, importarla y definirla en la línea de código adecuada:
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
O cambiar la fuente de los encabezados:
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
, h2, h3 {
h1font-family: 'Ubuntu Mono';
font-weight: normal;
}
No es necesario eliminar las fuentes que vienen predefinidas, si la primera fuente que se especifique no llegase a funcionar, las siguientes fuentes especificadas funcionaran como respaldo.
2.8.2 Cambiar el tamaño de las fuentes del texto
Puede cambiar el tamaño de la fuente de un bloque de texto o de toda una diapositiva definiendo dos nuevas clases en un archivo .css
adicional.
.large { font-size: 130% }
.small { font-size: 70% }
Las clases cambiarán el tamaño de la fuente con respecto al tamaño por defecto.
Como se presentó en la sección de propiedades y de clases aplicadas a bloques de contenido, para hacer uso de estas clases basta con encerrar el texto que desea editar de la siguiente manera:
.small[el texto más pequeño]
Por supuesto, puede cambiar los porcentajes de este ejemplo según su necesidad o definir más clases personalizadas con otros valores como .tiny {font-size: 40%}
.
2.8.3 Definir colores del texto
Puede definir clases de colores de texto para luego aplicarlos sobre trozos de contenido dentro de las diapositivas. Por ejemplo, si desea hacer que el texto se vea rojo, debería definir algo así en su archivo CSS:
.red { color: red; } /* o .red { color: #ff0000; }*/
Y luego, como vimos en la sección de clases para bloques contenido, asignar esta propiedad encerrando el texto objetivo en medio de corchetes cuadrados .red[Text in red]
.
2.8.4 Diapositiva de título
En ocasiones puede querer definir un estilo diferente para la diapositiva de título. Para realizar cambios sobre esta diapositiva debe manipular la clase .title-slide
. Todos los cambios aplicados a esta clase afectarán unicamente dicha diapositiva.
2.8.4.1 Imagen de fondo
Para cambiar la imagen de fondo de la diapositiva de título puede insertar las siguientes lineas en su archivo .css
.
.title-slide {
background-image: url(https://sitioweb.com/imagen.jpg);
background-size: cover;
}
Los valores posibles para background-size
son los mismos abordados en el capitulo de propiedades de las diapositivas.
2.8.4.2 Color y espaciado de los encabezados
También puede cambiar la apariencia de solo los encabezados de la diapositiva de título
.title-slide h1 {
color: #F7F8FA;
}
.title-slide h2, .title-slide h3 {
color: #e7e8e2;
line-height: 1.5em;
}
En este ejemplo, establecemos el mismo color para los encabezados de nivel 2 y 3 (gris) mientras que al encabezado de nivel 1 se le asigna un color diferente. Puede cambiar el interlineado si tiene encabezados largos usando line-height. El valor predeterminado es 1.0em.
Asegúrese de en su archivo .css
insertar el bloque .title-slide
después del bloque .inverse
; el último siempre sobrescribirá al primero.
2.8.4.3 Remover el número de la diapositiva
Si no quiere que apareza la enumeración en la diapositiva de titulo, en remark.js existe una clase en especifico responsable de esta caracteristica: remark-slide-number
. Puede ocultar este número de la siguiente manera:
.title-slide .remark-slide-number {
display: none;
}
2.8.4.4 Ajustar el espacio vertical
Muchos diseños de diapositivas de título utilizan bloques predefinidos con diferentes colores para el título principal, los subtítulos y la información del autor, etc. Si ingresa su información y el espacio vertical del título, el autor y la fecha no se ajustan al diseño de la diapositiva de título, tiene dos opciones para ajustar eso:
Agregar la etiqueta
html directamente en el campo de título en el encabezado YAML. Esto agregará un espacio vertical definido a su campo elegido.Ir al encabezado en especifico de la diapositiva de título, p. Ej.
title-slide h1{}
y cambiar los márgenes:
.title-slide h1 {
text-shadow: none;
color: #F7F8FA;
margin-top: -70px;
}
Estableciendo margin-top: -70px
se reducirá el espacio vertical del encabezado moviendolo más hacia arriba. Puede hacer esto mismo con margin-bottom
, margin-right
o margin-left
.
Tenga en cuenta que cambiar los margenes de un nivel de encabezado puede tener efectos sobre los otros niveles.
2.8.5 Bloques de código
Por defecto no está especificado ningún fondo para los trozos de código. Si quiere establecer el color gris que se usa generalmente, agregué las siguientes lineas a su archivo CSS:
.remark-inline-code{
/* background: #F5F5F5; /* lighter */
background: #e7e8e2; /* darker */
border-radius: 3px;
padding: 4px;
}
Puede probar con diferentes valores para background
hasta encontrar el que mejor se ajuste con su diseño. En el ejemplo se muestran dos tipos de gris.
El argumento border-radius
le permite controlar el redondeo de los bordes de la caja que contiene el código mientras que padding
especifica el tamaño de dicho contenedor.
2.8.6 Salida del terminal a color
Para habilitar la salida del terminal a color instale el paquete fansi
en R y añada options(crayon.enabled = TRUE)
en el knitr
del chunk.
2.8.7 Diseño de los hipervinculos
Para modificar las propiedades de visualización de los links puede agregar las siguientes lineas a su archivo CSS
, a > code {
acolor: #FF1B70; /*Por defecto: rgb(249, 38, 114); */
text-decoration: none; /* Desactiva el color de fondo de los links */
}
Por defecto, todos los links tienen color de fondo gris.
2.8.8 Margenes de la diapositiva
Puede modificar algunas caracteristicas de las diapositivas haciendo uso de .remark-slide-content
.
.remark-slide-content {
padding-top: 10px;
padding-left: 10px;
padding-right: 10px;
padding-bottom: 10px;
}
2.8.9 Tamaño de la fuente de los encabezados
Puede definir el tamaño del texto de los titulos con respecto al tamaño general del texto:
.remark-slide-content h1 { font-size: 3em; }
.remark-slide-content h2 { font-size: 2em; }
.remark-slide-content h3 { font-size: 1.6em; }
3em
significa tres veces el tamaño del texto normal.
O definirlo de manera exacta en terminos de unidades absolutas:
.remark-slide-content h1 { font-size: 30px; }
.remark-slide-content h2 { font-size: 20px; }
.remark-slide-content h3 { font-size: 16px; }
2.8.10 Diseño número de la diapositiva
Usted puede editar, entre otras cosas, la ubicacion y el tamaño del indicador del número de la diapositiva.
.remark-slide-number {
font-size: 10pt;
margin-bottom: -11.6px;
margin-right: 10px;
color: #FFFFFF; /* blanco */
opacity: 1; /* Por defecto: 0.5 */
}
El cambio de posición se realiza usando los parametros de las margenes. También puede encerrar el número de la diapositiva en medio de un recuadro con un color de fondo personalizado usando el parametro background: #e7e8e2;
.
2.8.11 Barra de avance
Es factible crear una barra de avance en lugar de usar el número de la diapositiva. Para ello siga los siguientes pasos:
- En el YAML añada las siguientes lineas de código debajo del argumento
nature
:
nature:
slideNumberFormat: |
<div class="progress-bar-container">
<div class="progress-bar" style="width: calc(%current% / %total% * 100%);">
</div> </div>
- Agregue en su archivo
.css
o dentro del documento RMarkdown en medio de un par de etiquetas de estilo (<style></style>
), el siguiente contenido:
.remark-slide-number {
position: inherit;
}
.remark-slide-number .progress-bar-container {
position: absolute;
bottom: 0;
height: 5px;
display: block;
left: 0;
right: 0;
}
.remark-slide-number .progress-bar {
height: 100%;
background-color: red;
}