adhesiones-jekyll-theme 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +69 -18
- data/_config.yml +25 -2
- data/_data/en.yml +80 -29
- data/_data/es.yml +77 -29
- data/_data/layouts/adhesion_individual.yml +1 -1
- data/_data/layouts/menu.yml +73 -0
- data/_data/layouts/post.yml +0 -1
- data/_includes/contact.html +8 -5
- data/_includes/floating_alert.html +6 -0
- data/_includes/item.html +38 -0
- data/_includes/menu.html +27 -0
- data/_includes/navbar.html +17 -9
- data/_includes/password.html +1 -0
- data/_includes/picture.html +23 -0
- data/_includes/preload_font.html +1 -0
- data/_includes/search.html +25 -0
- data/_includes/share.html +5 -4
- data/_includes/submit.html +5 -1
- data/_layouts/default.html +20 -1
- data/_layouts/home.html +10 -3
- data/_layouts/post.html +5 -5
- data/_sass/accessibility.scss +24 -0
- data/_sass/editor.scss +8 -0
- data/_sass/embed.scss +5 -0
- data/_sass/floating_alert.scss +10 -0
- data/_sass/helpers.scss +289 -25
- data/_sass/menu.scss +20 -0
- data/_sass/snap.scss +58 -0
- data/assets/css/styles.scss +34 -8
- data/assets/js/pack.js +16 -0
- data/assets/js/pack.js.map +1 -0
- data/assets/js/script.js +14 -6
- data/assets/templates/alert.html +7 -0
- data/assets/templates/results.html +17 -0
- metadata +138 -23
@@ -0,0 +1,25 @@
|
|
1
|
+
{%- assign param = include.param | default: 'search' -%}
|
2
|
+
|
3
|
+
<form method="get" action="" class="form-inline" data-controller="search" data-action="search#search">
|
4
|
+
<div class="form-group">
|
5
|
+
<label for="{{ param }}_q" class="sr-only">{{ site.i18n.search.label }}</label>
|
6
|
+
|
7
|
+
<div class="input-group flex-nowrap">
|
8
|
+
<div class="input-group-prepend">
|
9
|
+
<span class="input-group-text fa fa-search border-0 pt-2"></span>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<input
|
13
|
+
class="border-0 form-control"
|
14
|
+
type="search"
|
15
|
+
required
|
16
|
+
id="{{ param }}_q"
|
17
|
+
name="q"
|
18
|
+
placeholder="{{ site.i18n.search.submit }}"
|
19
|
+
data-target="search.q"
|
20
|
+
autocomplete="off" />
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<input class="sr-only" type="submit" value="{{ site.i18n.search.submit }}" />
|
25
|
+
</form>
|
data/_includes/share.html
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
{% capture url %}{{ site.url }}{{ include.url }}{% endcapture %}
|
2
2
|
|
3
3
|
{% unless include.share.url == '%url' %}
|
4
|
-
{% assign url = url | cgi_escape %}
|
4
|
+
{% assign url = url | default: '' | cgi_escape %}
|
5
5
|
{% endunless %}
|
6
|
-
{% assign title = include.title | cgi_escape %}
|
6
|
+
{% assign title = include.title | default: '' | cgi_escape %}
|
7
7
|
{% assign description = include.description | default: '' | cgi_escape %}
|
8
|
+
{% assign tags = include.tags | join: ',' | default: '' | cgi_escape %}
|
8
9
|
|
9
10
|
<a
|
10
11
|
{% if include.share.url == '%url' %}
|
@@ -12,10 +13,10 @@
|
|
12
13
|
{% else %}
|
13
14
|
target="_blank"
|
14
15
|
{% endif %}
|
15
|
-
rel="nofollow"
|
16
|
+
rel="noopener nofollow"
|
16
17
|
title="{{ include.share.title }}"
|
17
18
|
class="d-flex flex-column align-items-center p-3"
|
18
|
-
href="{{ include.share.url | replace: '%url', url | replace: '%title', title | replace: '%description', description }}">
|
19
|
+
href="{{ include.share.url | replace: '%url', url | replace: '%title', title | replace: '%description', description | replace: '%tags', tags }}">
|
19
20
|
<i class="fa fa-fw fa-2x fa-{{ include.share.icon }}"></i>
|
20
21
|
<span>{{ include.share.title }}</span>
|
21
22
|
</a>
|
data/_includes/submit.html
CHANGED
data/_layouts/default.html
CHANGED
@@ -10,7 +10,26 @@
|
|
10
10
|
<meta name="referrer" content="strict-origin-when-cross-origin" />
|
11
11
|
|
12
12
|
<link href="assets/css/styles.css" rel="stylesheet">
|
13
|
-
|
13
|
+
|
14
|
+
{% comment %}
|
15
|
+
Webpack. La configuración se pasa por variables de entorno, en
|
16
|
+
desarrollo hay que evitar el archivo .env (copiarlo de .env.example
|
17
|
+
si no existe.
|
18
|
+
{% endcomment %}
|
19
|
+
<link rel="preload" as="script" type="text/javascript" href="env.js" />
|
20
|
+
<script type="text/javascript" src="env.js"></script>
|
21
|
+
<script defer type="text/javascript" src="assets/js/pack.js"></script>
|
22
|
+
|
23
|
+
{% comment %}
|
24
|
+
Agregar otras tipografías. Esto hace que las tipografías se carguen
|
25
|
+
lo más rápido posible y minimizar el tiempo en que se ven las del
|
26
|
+
navegador. En Firefox todavía no está soportado.
|
27
|
+
{% endcomment %}
|
28
|
+
{% include_cached preload_font.html font='assets/fonts/forkawesome-webfont.woff2' %}
|
29
|
+
|
30
|
+
<link rel="icon" type="image/svg+xml" href="public/favicon.svg">
|
31
|
+
<link rel="alternate icon" href="public/favicon.ico">
|
32
|
+
<link rel="mask-icon" href="public/favicon.svg" color="white">
|
14
33
|
|
15
34
|
{% seo %}
|
16
35
|
{% feed_meta %}
|
data/_layouts/home.html
CHANGED
@@ -27,7 +27,7 @@ layout: default
|
|
27
27
|
<h1 class="font-weight-bold">{{ documento.title }}</h1>
|
28
28
|
—
|
29
29
|
<time datetime="{{ documento.date }}">
|
30
|
-
{{ documento.date | date: site.i18n.date }}
|
30
|
+
{{ documento.date | date: site.i18n.date.format }}
|
31
31
|
</time>
|
32
32
|
</div>
|
33
33
|
|
@@ -76,7 +76,10 @@ layout: default
|
|
76
76
|
</label>
|
77
77
|
|
78
78
|
<div class="toggled collapsed fade">
|
79
|
-
<form
|
79
|
+
<form
|
80
|
+
data-controller="contact"
|
81
|
+
data-delay="30"
|
82
|
+
action="{{ site.sutty }}v1/sites/{{ site.hostname }}/posts/{{ form }}" method="post" enctype="multipart/form-data">
|
80
83
|
<div class="row justify-content-center">
|
81
84
|
{%- for field in site.data.layouts[form] -%}
|
82
85
|
{%- if field[1].skip -%}{% continue %}{%- endif -%}
|
@@ -89,6 +92,10 @@ layout: default
|
|
89
92
|
|
90
93
|
<div class="col-12">
|
91
94
|
<input type="submit" value="{{ site.i18n.home.form.submit }}" class="btn btn-success btn-block" />
|
95
|
+
<small
|
96
|
+
class="form-text text-muted">
|
97
|
+
{{ site.i18n.home.form.submit_help }}
|
98
|
+
</small>
|
92
99
|
</div>
|
93
100
|
</div>
|
94
101
|
</form>
|
@@ -166,7 +173,7 @@ layout: default
|
|
166
173
|
|
167
174
|
|
168
175
|
<time datetime="{{ adhesion.date }}">
|
169
|
-
{{ adhesion.date | date: site.i18n.date }}
|
176
|
+
{{ adhesion.date | date: site.i18n.date.format }}
|
170
177
|
</time>
|
171
178
|
</header>
|
172
179
|
|
data/_layouts/post.html
CHANGED
@@ -4,10 +4,10 @@ layout: default
|
|
4
4
|
|
5
5
|
<article class="h-entry" itemscope itemtype="http://schema.org/Article">
|
6
6
|
<header>
|
7
|
-
<h1 class="p-name" itemprop="name headline">{{ page.title | escape }}</h1>
|
7
|
+
<h1 class="p-name" itemprop="name headline">{{ page.title | default: '' | escape }}</h1>
|
8
8
|
|
9
9
|
{%- if page.description -%}
|
10
|
-
<p class="lead p-summary" itemprop="description">{{ page.description | escape }}</p>
|
10
|
+
<p class="lead p-summary" itemprop="description">{{ page.description | default: '' | escape }}</p>
|
11
11
|
{%- endif -%}
|
12
12
|
|
13
13
|
{%- if page.image.path -%}
|
@@ -22,14 +22,14 @@ layout: default
|
|
22
22
|
|
23
23
|
<p>
|
24
24
|
<time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
|
25
|
-
{%- assign date_format = site.i18n.date | default: "%b %-d, %Y" -%}
|
26
|
-
{{ page.date |
|
25
|
+
{%- assign date_format = site.i18n.date.format | default: "%b %-d, %Y" -%}
|
26
|
+
{{ page.date | date_local: date_format }}
|
27
27
|
</time>
|
28
28
|
{%- for author in page.author -%}
|
29
29
|
•
|
30
30
|
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
31
31
|
<span class="p-author h-card" itemprop="name">
|
32
|
-
{{ author | escape }}
|
32
|
+
{{ author | default: '' | escape }}
|
33
33
|
</span>
|
34
34
|
</span>
|
35
35
|
{%- endfor -%}
|
data/_sass/accessibility.scss
CHANGED
@@ -11,3 +11,27 @@
|
|
11
11
|
animation: none !important;
|
12
12
|
}
|
13
13
|
}
|
14
|
+
|
15
|
+
.inaccesible {
|
16
|
+
outline: $red 1px solid;
|
17
|
+
|
18
|
+
@extend .position-relative;
|
19
|
+
|
20
|
+
&:focus::after {
|
21
|
+
@extend .position-fixed;
|
22
|
+
@extend .background-red;
|
23
|
+
@extend .white;
|
24
|
+
@extend .p-3;
|
25
|
+
|
26
|
+
left: 0;
|
27
|
+
bottom: 0;
|
28
|
+
width: 100vw;
|
29
|
+
font-size: 1rem;
|
30
|
+
|
31
|
+
word-wrap: normal;
|
32
|
+
line-break: auto;
|
33
|
+
white-space: pre-line;
|
34
|
+
|
35
|
+
content: attr(aria-label);
|
36
|
+
}
|
37
|
+
}
|
data/_sass/editor.scss
ADDED
data/_sass/embed.scss
ADDED
data/_sass/helpers.scss
CHANGED
@@ -1,54 +1,318 @@
|
|
1
|
-
|
1
|
+
// En este archivo colocamos todos las herramientas que nos hagan falta,
|
2
|
+
// de forma que podamos generar clases específicas que sean combinables
|
3
|
+
// con otras, en lugar de escribir clases específicas para cada
|
4
|
+
// elemento.
|
5
|
+
//
|
6
|
+
// Cada clase tiene su versión responsive de acuerdo a los parámetros de
|
7
|
+
// Bootstrap.
|
2
8
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
9
|
+
// Ocultar la barra de scroll, útil para sliders horizontales.
|
10
|
+
.no-scrollbar {
|
11
|
+
scrollbar-width: none;
|
12
|
+
-webkit-overflow-scrolling: touch;
|
13
|
+
|
14
|
+
&::-webkit-scrollbar { display: none; }
|
15
|
+
}
|
16
|
+
|
17
|
+
// Mismo alto que ancho
|
18
|
+
.square {
|
19
|
+
@extend .position-relative;
|
20
|
+
padding-bottom: 100%;
|
21
|
+
|
22
|
+
& > * {
|
23
|
+
@extend .position-absolute;
|
24
|
+
@extend .top-0;
|
25
|
+
@extend .left-0;
|
26
|
+
@extend .h-100;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
// Eventos del cursor
|
31
|
+
@each $event in (none, auto) {
|
32
|
+
.pointer-event-#{$event} {
|
33
|
+
pointer-events: $event;
|
34
|
+
}
|
35
|
+
|
36
|
+
@each $grid-breakpoint, $_ in $grid-breakpoints {
|
37
|
+
@include media-breakpoint-up($grid-breakpoint) {
|
38
|
+
.pointer-event-#{$grid-breakpoint}-#{$event} {
|
39
|
+
pointer-events: $event;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
// Agrega una transición a cualquier modificación de atributos
|
46
|
+
.transition {
|
47
|
+
@include transition($transition-base);
|
48
|
+
}
|
49
|
+
|
50
|
+
// Ajustes de imagen y video con respecto al contenedor
|
51
|
+
@each $keyword in (contain, cover, fill, none, scale-down) {
|
52
|
+
.fit-#{$keyword} {
|
53
|
+
object-fit: #{$keyword};
|
54
|
+
}
|
55
|
+
|
56
|
+
@each $grid-breakpoint, $_ in $grid-breakpoints {
|
57
|
+
@include media-breakpoint-up($grid-breakpoint) {
|
58
|
+
.fit-#{$grid-breakpoint}-#{$keyword} {
|
59
|
+
object-fit: #{$keyword};
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
// Cursores
|
66
|
+
@each $cursor in (pointer none) {
|
67
|
+
.cursor-#{$cursor} {
|
68
|
+
cursor: $cursor;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
// Overflow
|
73
|
+
@each $value in (auto, hidden, scroll) {
|
74
|
+
.overflow-#{$value} {
|
75
|
+
overflow: $value !important;
|
76
|
+
}
|
77
|
+
|
78
|
+
@each $axis in (y, x) {
|
79
|
+
.overflow-#{$axis}-#{$value} {
|
80
|
+
overflow-#{$axis}: $value !important;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
@each $grid-breakpoint, $_ in $grid-breakpoints {
|
85
|
+
@include media-breakpoint-up($grid-breakpoint) {
|
86
|
+
.overflow-#{$grid-breakpoint}-#{$value} {
|
87
|
+
overflow: $value !important;
|
88
|
+
}
|
89
|
+
|
90
|
+
@each $axis in (y, x) {
|
91
|
+
.overflow-#{$grid-breakpoint}-#{$axis}-#{$value} {
|
92
|
+
overflow-#{$axis}: $value !important;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
@each $spacer, $length in $spacers {
|
100
|
+
// Poder aumentar o disminuir el alto de la tipografía
|
101
|
+
.f-#{$spacer} {
|
102
|
+
font-size: $length !important;
|
103
|
+
}
|
104
|
+
|
105
|
+
// Columnas de texto
|
106
|
+
.text-column-#{$spacer} {
|
107
|
+
column-count: $spacer;
|
108
|
+
}
|
109
|
+
|
110
|
+
// Limitar la cantidad de líneas de un bloque de texto
|
111
|
+
.line-clamp-#{$spacer} {
|
112
|
+
overflow: hidden;
|
113
|
+
display: -webkit-box;
|
114
|
+
-webkit-line-clamp: $spacer;
|
115
|
+
-webkit-box-orient: vertical;
|
116
|
+
}
|
117
|
+
|
118
|
+
// Ubicación absoluta, usar con position-*
|
119
|
+
@each $direction in (top, right, bottom, left) {
|
120
|
+
.#{$direction}-#{$spacer} {
|
121
|
+
#{$direction}: $length
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
@each $grid-breakpoint, $_ in $grid-breakpoints {
|
126
|
+
@include media-breakpoint-up($grid-breakpoint) {
|
127
|
+
// Poder aumentar o disminuir el alto de la tipografía
|
128
|
+
.f-#{$grid-breakpoint}-#{$spacer} {
|
129
|
+
font-size: $length !important;
|
130
|
+
}
|
131
|
+
|
132
|
+
// Columnas de texto
|
133
|
+
.text-column-#{$grid-breakpoint}-#{$spacer} {
|
134
|
+
column-count: $spacer;
|
135
|
+
}
|
136
|
+
|
137
|
+
// Limitar la cantidad de líneas de un bloque de texto
|
138
|
+
.line-clamp-#{$grid-breakpoint}-#{$spacer} {
|
139
|
+
overflow: hidden;
|
140
|
+
display: -webkit-box;
|
141
|
+
-webkit-line-clamp: $spacer;
|
142
|
+
-webkit-box-orient: vertical;
|
143
|
+
}
|
144
|
+
|
145
|
+
// Ubicación absoluta, usar con position-*
|
146
|
+
@each $direction in (top, right, bottom, left) {
|
147
|
+
.#{$direction}-#{$grid-breakpoint}-#{$spacer} {
|
148
|
+
#{$direction}: $length
|
149
|
+
}
|
150
|
+
}
|
151
|
+
}
|
152
|
+
}
|
153
|
+
}
|
154
|
+
|
155
|
+
// anchos y altos
|
156
|
+
@each $prop, $abbrev in (width: w, height: h) {
|
157
|
+
@each $size, $length in $sizes {
|
158
|
+
.#{$abbrev}-#{$size} { #{$prop}: $length; }
|
159
|
+
.#{$abbrev}-#{$size} { #{$prop}: $length; }
|
160
|
+
.min-#{$abbrev}-#{$size} { min-#{$prop}: $length; }
|
161
|
+
.max-#{$abbrev}-#{$size} { max-#{$prop}: $length; }
|
162
|
+
|
163
|
+
@each $grid-breakpoint, $_ in $grid-breakpoints {
|
164
|
+
@include media-breakpoint-up($grid-breakpoint) {
|
165
|
+
.#{$abbrev}-#{$grid-breakpoint}-#{$size} { #{$prop}: $length; }
|
166
|
+
.min-#{$abbrev}-#{$grid-breakpoint}-#{$size} { min-#{$prop}: $length; }
|
167
|
+
.max-#{$abbrev}-#{$grid-breakpoint}-#{$size} { max-#{$prop}: $length; }
|
168
|
+
}
|
169
|
+
}
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
@each $scroll in (auto, smooth) {
|
174
|
+
.scroll-#{$scroll} {
|
175
|
+
scroll-behavior: #{$scroll};
|
176
|
+
}
|
177
|
+
|
178
|
+
@each $grid-breakpoint, $_ in $grid-breakpoints {
|
179
|
+
@include media-breakpoint-up($grid-breakpoint) {
|
180
|
+
.scroll-#{$grid-breakpoint}-#{$scroll} {
|
181
|
+
scroll-behavior: #{$scroll};
|
182
|
+
}
|
183
|
+
}
|
184
|
+
}
|
185
|
+
}
|
186
|
+
|
187
|
+
// Versiones responsive de utilidades Bootstrap
|
188
|
+
@each $grid-breakpoint, $_ in $grid-breakpoints {
|
189
|
+
@include media-breakpoint-up($grid-breakpoint) {
|
190
|
+
// Bordes
|
191
|
+
// node_modules/bootstrap/scss/utilities/_borders.scss
|
192
|
+
.border-#{$grid-breakpoint} { border: $border-width solid $border-color !important; }
|
193
|
+
.border-#{$grid-breakpoint}-top { border-top: $border-width solid $border-color !important; }
|
194
|
+
.border-#{$grid-breakpoint}-right { border-right: $border-width solid $border-color !important; }
|
195
|
+
.border-#{$grid-breakpoint}-bottom { border-bottom: $border-width solid $border-color !important; }
|
196
|
+
.border-#{$grid-breakpoint}-left { border-left: $border-width solid $border-color !important; }
|
197
|
+
.border-#{$grid-breakpoint}-0 { border: 0 !important; }
|
198
|
+
.border-#{$grid-breakpoint}-top-0 { border-top: 0 !important; }
|
199
|
+
.border-#{$grid-breakpoint}-right-0 { border-right: 0 !important; }
|
200
|
+
.border-#{$grid-breakpoint}-bottom-0 { border-bottom: 0 !important; }
|
201
|
+
.border-#{$grid-breakpoint}-left-0 { border-left: 0 !important; }
|
202
|
+
|
203
|
+
// Alineación
|
204
|
+
.text-#{$grid-breakpoint}-left { text-align: left !important; }
|
205
|
+
.text-#{$grid-breakpoint}-right { text-align: right !important; }
|
206
|
+
.text-#{$grid-breakpoint}-center { text-align: center !important; }
|
207
|
+
|
208
|
+
// Posicionamiento
|
209
|
+
@each $position in $positions {
|
210
|
+
.position-#{$grid-breakpoint}-#{$position} { position: $position !important; }
|
211
|
+
}
|
212
|
+
|
213
|
+
// Anchos y altos
|
214
|
+
@each $prop, $abbrev in (width: w, height: h) {
|
215
|
+
@each $size, $length in $sizes {
|
216
|
+
.#{$abbrev}-#{$grid-breakpoint}-#{$size} { #{$prop}: $length !important; }
|
217
|
+
.min-#{$abbrev}-#{$grid-breakpoint}-#{$size} { min-#{$prop}: $length !important; }
|
218
|
+
}
|
219
|
+
}
|
220
|
+
}
|
221
|
+
}
|
222
|
+
|
223
|
+
// Crea una propiedad con prefijos de navegador
|
7
224
|
@mixin vendor-prefix($property, $definition...) {
|
8
225
|
@each $prefix in $vendor-prefixes {
|
9
226
|
#{$prefix}$property: $definition;
|
10
227
|
}
|
11
228
|
}
|
12
229
|
|
13
|
-
|
14
|
-
|
15
|
-
*/
|
16
|
-
@each $color, $_ in $colors {
|
230
|
+
// Colores
|
231
|
+
@each $color, $rgb in $colors {
|
17
232
|
.background-#{$color} {
|
18
233
|
background-color: var(--#{$color});
|
234
|
+
|
235
|
+
&:focus {
|
236
|
+
background-color: var(--#{$color});
|
237
|
+
}
|
19
238
|
}
|
20
239
|
|
240
|
+
@each $opacity, $degree in $opacities {
|
241
|
+
.background-#{$color}-t#{$opacity} {
|
242
|
+
background-color: scale-color($rgb, $alpha: $degree);
|
243
|
+
}
|
244
|
+
}
|
245
|
+
|
246
|
+
@each $attr in (stroke, fill) {
|
247
|
+
.#{$attr}-#{$color} {
|
248
|
+
svg {
|
249
|
+
* {
|
250
|
+
#{$attr}: var(--#{$color});
|
251
|
+
}
|
252
|
+
}
|
253
|
+
}
|
254
|
+
}
|
255
|
+
|
256
|
+
// Barras de scroll de colores
|
257
|
+
.scrollbar-#{$color} {
|
258
|
+
scrollbar-color: var(--#{$color}) transparent;
|
259
|
+
scrollbar-width: thin;
|
260
|
+
|
261
|
+
&::-webkit-scrollbar {
|
262
|
+
width: 5px;
|
263
|
+
height: 8px;
|
264
|
+
background-color: transparent;
|
265
|
+
}
|
266
|
+
|
267
|
+
&::-webkit-scrollbar-thumb {
|
268
|
+
background: var(--#{$color});
|
269
|
+
}
|
270
|
+
}
|
271
|
+
|
272
|
+
// Bordes
|
273
|
+
.border-#{$color} {
|
274
|
+
border-color: var(--#{$color}) !important;
|
275
|
+
}
|
276
|
+
|
277
|
+
// Cambiar el fondo al pasar por encima o hacer foco
|
278
|
+
.hover-bg-#{$color} {
|
279
|
+
&:hover,
|
280
|
+
&:focus-within {
|
281
|
+
background-color: var(--#{$color});
|
282
|
+
}
|
283
|
+
}
|
284
|
+
|
285
|
+
// Cambiar el color al pasar por encima o hacer foco
|
286
|
+
.hover-#{$color} {
|
287
|
+
&:hover,
|
288
|
+
&:focus-within {
|
289
|
+
color: var(--#{$color});
|
290
|
+
}
|
291
|
+
}
|
292
|
+
|
293
|
+
// Cambiar el color
|
21
294
|
.#{$color} {
|
22
295
|
color: var(--#{$color});
|
23
296
|
|
297
|
+
&:focus {
|
298
|
+
color: var(--#{$color});
|
299
|
+
}
|
300
|
+
|
301
|
+
// Invertir el color en la selección
|
24
302
|
::-moz-selection,
|
25
303
|
::selection {
|
26
304
|
background: var(--#{$color});
|
27
305
|
color: white;
|
28
306
|
}
|
29
307
|
|
30
|
-
|
31
|
-
* {
|
32
|
-
fill: var(--#{$color});
|
33
|
-
}
|
34
|
-
}
|
35
|
-
|
308
|
+
// Ajustes para Bootstrap
|
36
309
|
.form-control {
|
37
310
|
border-color: var(--#{$color});
|
38
|
-
|
39
|
-
|
40
|
-
.btn {
|
41
|
-
background-color: var(--#{$color});
|
42
|
-
color: white;
|
43
|
-
border-color: var(--#{$color});
|
311
|
+
color: var(--#{$color});
|
44
312
|
}
|
45
313
|
|
46
314
|
hr {
|
47
315
|
border-color: var(--#{$color});
|
48
316
|
}
|
49
|
-
|
50
|
-
a {
|
51
|
-
color: var(--#{$color});
|
52
|
-
}
|
53
317
|
}
|
54
318
|
}
|
data/_sass/menu.scss
ADDED
data/_sass/snap.scss
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
$snap-types: (none, mandatory, proximity);
|
2
|
+
$snap-directions: (y, x);
|
3
|
+
$snap-points: (start, end, center, none);
|
4
|
+
|
5
|
+
// TODO: Escribir un mixin
|
6
|
+
@each $snap-type in $snap-types {
|
7
|
+
@each $snap-direction in $snap-directions {
|
8
|
+
// El contenedor indica la dirección y obligatoriedad del snap
|
9
|
+
.snap-#{$snap-type}-#{$snap-direction} {
|
10
|
+
scroll-snap-points-#{$snap-direction}: repeat(100%);
|
11
|
+
scroll-snap-destination: 0 0;
|
12
|
+
@each $prefix in $vendor-prefixes {
|
13
|
+
#{$prefix}scroll-snap-type: #{$snap-direction} #{$snap-type};
|
14
|
+
#{$prefix}scroll-snap-type: #{$snap-type};
|
15
|
+
}
|
16
|
+
|
17
|
+
// Lxs hijxs directos se alinean al contenedor
|
18
|
+
@each $snap-point in $snap-points {
|
19
|
+
& > .snap-#{$snap-point} {
|
20
|
+
scroll-snap-align: #{$snap-point};
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
// Poder modificar el snap según el punto de corte
|
25
|
+
@each $grid-breakpoint, $_ in $grid-breakpoints {
|
26
|
+
@include media-breakpoint-up($grid-breakpoint) {
|
27
|
+
@each $snap-point in $snap-points {
|
28
|
+
& > .snap-#{$grid-breakpoint}-#{$snap-point} {
|
29
|
+
scroll-snap-align: #{$snap-point};
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
@each $grid-breakpoint, $_ in $grid-breakpoints {
|
37
|
+
@include media-breakpoint-up($grid-breakpoint) {
|
38
|
+
.snap-#{$snap-type}-#{$grid-breakpoint}-#{$snap-direction} {
|
39
|
+
// XXX: Esto está duplicado porque SCSS no nos deja extender
|
40
|
+
// dentro de un @include.
|
41
|
+
// @extend .snap-#{$snap-type}-#{$snap-direction};
|
42
|
+
scroll-snap-points-#{$snap-direction}: repeat(100%);
|
43
|
+
scroll-snap-destination: 0 0;
|
44
|
+
@each $prefix in $vendor-prefixes {
|
45
|
+
#{$prefix}scroll-snap-type: #{$snap-direction} #{$snap-type};
|
46
|
+
#{$prefix}scroll-snap-type: #{$snap-type};
|
47
|
+
}
|
48
|
+
|
49
|
+
@each $snap-point in $snap-points {
|
50
|
+
.snap-#{$snap-point} {
|
51
|
+
scroll-snap-align: #{$snap-point};
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|