Merge branch 'personalizacion' into 'master'

Un layout que permite modificar valores de Bootstrap

See merge request sutty/jekyll/sutty-base-jekyll-theme!12
This commit is contained in:
fauno 2021-09-22 16:05:49 +00:00
commit 1b9fa47df7
10 changed files with 320 additions and 19 deletions

View file

@ -65,6 +65,7 @@ layouts:
post: Article post: Article
menu: Menu menu: Menu
about: About this site about: About this site
theme: Customize theme
menu: menu:
title: Menu title: Menu
share: share:

View file

@ -51,6 +51,7 @@ layouts:
post: Artículo post: Artículo
menu: Menú menu: Menú
about: Información del sitio about: Información del sitio
theme: Personalizar plantilla
menu: menu:
title: Menú title: Menú
share: share:

255
_data/layouts/theme.yml Normal file
View file

@ -0,0 +1,255 @@
---
title:
type: string
required: true
label:
en: Title
es: Título
help:
en: 'The name you want to give to this customization'
es: 'El nombre que quieras darle a esta personalización'
font_family_sans_serif:
type: predefined_value
label:
en: Select a typography for the site
es: Selecciona una tipografía para el sitio
help:
en: 'If you want us to add support for a typography, please send us an e-mail'
es: 'Si quieres que agreguemos una tipografía, por favor envíanos un e-mail'
default:
en: sans-serif
es: sans-serif
values:
en:
sans-serif: 'Sans Serif'
Roboto: 'Roboto'
es:
sans-serif: 'Sans Serif'
Roboto: 'Roboto'
headings_font_family:
type: predefined_value
label:
en: Select a typography for the headings
es: Selecciona una tipografía para los títulos del sitio
help:
en: 'If you want us to add support for a typography, please send us an e-mail'
es: 'Si quieres que agreguemos una tipografía, por favor envíanos un e-mail'
default:
en: sans-serif
es: sans-serif
values:
en:
sans-serif: 'Sans Serif'
Roboto: 'Roboto'
es:
sans-serif: 'Sans Serif'
Roboto: 'Roboto'
enable_rounded:
type: boolean
label:
en: 'Rounded corners'
es: 'Esquinas redondeadas'
help:
en: 'For buttons, form inputs, etc.'
es: 'De los botones, campos de formularios, etc.'
default:
es: true
en: true
enable_shadows:
type: boolean
label:
en: 'Shadows'
es: 'Sombras'
help:
en: 'Shadows behind elements'
es: 'Sombras en los elementos'
default:
es: true
en: true
body_bg:
type: color
label:
en: 'Background color'
es: 'Color de fondo'
help:
en: "Site's background color"
es: 'Color de fondo del sitio'
default:
es: '#FFFFFF'
en: '#FFFFFF'
body_color:
type: color
label:
en: 'Text color'
es: 'Color del texto'
help:
en: ''
es: ''
default:
es: '#212529'
en: '#212529'
primary:
type: color
label:
en: 'Primary color'
es: 'Color principal'
help:
en: 'Highlights certain elements'
es: 'Resalta algunos elementos'
default:
es: '#007bff'
en: '#007bff'
link_color:
type: color
label:
en: 'Link color'
es: 'Color de los vínculos'
help:
en: ''
es: ''
default:
es: '#007bff'
en: '#007bff'
link_hover_color:
type: color
label:
en: 'Link color when selected'
es: 'Color de los vínculos al seleccionarlos'
help:
en: ''
es: ''
default:
es: '#0056b3'
en: '#0056b3'
h1_font_size:
type: float
unit: rem
label:
en: 'Height for first level headings'
es: 'Altura de los títulos de primer nivel'
help:
en: 'Proportional to font base height. For instance, 2 is double height.'
es: 'En proporción al alto base de la tipografía. Por ejemplo 2 es el doble.'
default:
es: 2.5
en: 2.5
h2_font_size:
type: float
unit: rem
label:
en: 'Height for second level headings'
es: 'Altura de los títulos de segundo nivel'
help:
en: 'Proportional to font base height. For instance, 2 is double height.'
es: 'En proporción al alto base de la tipografía. Por ejemplo 2 es el doble.'
default:
es: 2
en: 2
h3_font_size:
type: float
unit: rem
label:
en: 'Height for third level headings'
es: 'Altura de los títulos de tercer nivel'
help:
en: 'Proportional to font base height. For instance, 2 is double height.'
es: 'En proporción al alto base de la tipografía. Por ejemplo 2 es el doble.'
default:
es: 1.75
en: 1.75
h4_font_size:
type: float
unit: rem
label:
en: 'Height for fourth level headings'
es: 'Altura de los títulos de cuarto nivel'
help:
en: 'Proportional to font base height. For instance, 2 is double height.'
es: 'En proporción al alto base de la tipografía. Por ejemplo 2 es el doble.'
default:
es: 1.5
en: 1.5
h5_font_size:
type: float
unit: rem
label:
en: 'Height for fifth level headings'
es: 'Altura de los títulos de quinto nivel'
help:
en: 'Proportional to font base height. For instance, 2 is double height.'
es: 'En proporción al alto base de la tipografía. Por ejemplo 2 es el doble.'
default:
es: 1.25
en: 1.25
h6_font_size:
type: float
unit: rem
label:
en: 'Height for sixth level headings'
es: 'Altura de los títulos de sexto nivel'
help:
en: 'Proportional to font base height. For instance, 2 is double height.'
es: 'En proporción al alto base de la tipografía. Por ejemplo 2 es el doble.'
default:
es: 1
en: 1
mark_bg:
type: color
label:
en: 'Highlight color'
es: 'Color de resaltado'
help:
en: 'Default color for highlighted text'
es: 'Color por defecto para el texto resaltado'
default:
es: '#fcf8e3'
en: '#fcf8e3'
navbar_light_color:
type: color
label:
en: 'Navigation bar item color'
es: 'Color de ítem en la barra de navegación'
help:
en: 'Text and icons'
es: 'Texto e íconos'
default:
es: '#ced4da'
en: '#ced4da'
navbar_light_hover_color:
type: color
label:
en: 'Navigation bar item color when selected'
es: 'Color de ítem seleccionado en la barra de navegación'
help:
en: 'Text and icons'
es: 'Texto e íconos'
default:
es: '#6c757d'
en: '#6c757d'
navbar_light_active_color:
type: color
label:
en: 'Navigation bar item color when active'
es: 'Color de ítem activo en la barra de navegación'
help:
en: 'Text and icons'
es: 'Texto e íconos'
default:
es: '#212529'
en: '#212529'
order:
type: order
label:
en: Order
es: Orden
help:
en: Position in articles list
es: La posición del artículo en la lista de artículos
draft:
type: boolean
label:
en: Draft
es: Borrador
help:
en: This post isn't ready to be published yet
es: Este artículo aun no está listo para publicar

View file

@ -0,0 +1,29 @@
// https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,700;1,400;1,700&display=swap
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 400;
font-display: swap;
src: url(../fonts/roboto/v27/KFOkCnqEu92Fr1Mu52xP-subset.woff2) format('woff2');
}
@font-face {
font-family: 'Roboto';
font-style: italic;
font-weight: 700;
font-display: swap;
src: url(../fonts/roboto/v27/KFOjCnqEu92Fr1Mu51TzBhc9-subset.woff2) format('woff2');
}
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url(../fonts/roboto/v27/KFOmCnqEu92Fr1Me5Q-subset.woff2) format('woff2');
}
@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url(../fonts/roboto/v27/KFOlCnqEu92Fr1MmWUlvAw-subset.woff2) format('woff2');
}

View file

@ -6,11 +6,41 @@
/// @group Principal /// @group Principal
//// ////
/// Traemos el primer artículo de tipo `about` para obtener los valores /// Traemos el primer artículo de tipo `theme` para obtener los valores
/// personalizados. /// personalizados.
///
/// @todo Mover a su propio SCSS {% comment %}
{% assign about = site.posts | find: 'layout', 'about' %} Los artículos con layout `theme` contienen variables utilizadas por
Bootstrap que pueden ser redefinidas por les usuaries de Sutty a través
del panel.
{% endcomment %}
{% assign theme = site.posts | find: 'layout', 'theme' %}
{% assign theme_defaults = site.data.layouts.theme %}
{% comment %}
Ignorar estos campos que no son variables.
{% endcomment %}
{% assign ignored_keys = 'title,draft,order,last_modified_at,uuid,layout,liquid,usuaries' | split: ',' %}
{% comment %}
Cada variable de Bootstrap viene desde la definición de `theme`. Por
convención usamos snake_case, pero Bootstrap usa guión medio, así que
las convertimos.
Utilizamos los valores que vengan del artículo y si no existen, usamos
los valores por defecto de sutty-base. De lo contrario mantenemos los
de Bootstrap.
{% endcomment %}
{% for variable in theme_defaults %}
{% assign key = variable[0] %}
{% if ignored_keys contains key %}{% continue %}{% endif %}
{% assign default_value = variable[1].default[site.locale] %}
{% assign variable_name = key | replace: '_', '-' %}
{% if theme[key] or default_value %}
{% comment %}
Generamos una definición de variable de SASS
{% endcomment %}
${{ variable_name }}: {{ theme[key] | default: default_value }}{{ variable[1].unit }};
{% endif %}
{% endfor %}
/// El modo debug se desactiva en producción /// El modo debug se desactiva en producción
$debug: {{ jekyll.environment | not: 'production' }}; $debug: {{ jekyll.environment | not: 'production' }};
@ -22,21 +52,6 @@ $vendor-prefixes: ("", "-webkit-", "-ms-", "-o-", "-moz-");
/// para generar animaciones. /// para generar animaciones.
$bezier: cubic-bezier(0.75, 0, 0.25, 1); $bezier: cubic-bezier(0.75, 0, 0.25, 1);
/// Redefinir la tipografía aquí, o borrar si usamos las de Bootstrap
$font-family-sans-serif: sans-serif;
/// El color primario de la paleta, se trae desde el `about` o sea usa
/// el color por defecto.
///
/// @link _data/layouts/about.yml
$primary: {{ about.primary | default: site.data.layouts.about.primary.default[site.locale] }};
/// El color secundario de la paleta, se trae desde el `about` o sea usa
/// el color por defecto.
///
/// @link _data/layouts/about.yml
$secondary: {{ about.secondary | default: site.data.layouts.about.secondary.default[site.locale] }};
/// Agregamos los colores propios de la plantilla aquí. Bootstrap los /// Agregamos los colores propios de la plantilla aquí. Bootstrap los
/// agrega a su propia paleta de colores. Si usamos el mismo nombre /// agrega a su propia paleta de colores. Si usamos el mismo nombre
/// podemos redefinir el color. /// podemos redefinir el color.