adhesiones-jekyll-theme 0.2.0 → 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 +79 -30
- data/_data/layouts/adhesion.yml +2 -2
- data/_data/layouts/adhesion_individual.yml +1 -1
- data/_data/layouts/menu.yml +73 -0
- data/_data/layouts/post.yml +0 -1
- data/_includes/boolean.html +1 -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 +21 -1
- data/_layouts/home.html +21 -6
- 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/_sass/toggler.scss +9 -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 -4
- data/assets/templates/alert.html +7 -0
- data/assets/templates/results.html +17 -0
- metadata +138 -23
@@ -0,0 +1,23 @@
|
|
1
|
+
{% comment %}
|
2
|
+
Imágenes responsive. Esto logra que solo se carguen las versiones de
|
3
|
+
las imágenes con el ancho máximo de la pantalla.
|
4
|
+
|
5
|
+
TODO: Las imágenes en md y superior nunca llegan al ancho máximo así
|
6
|
+
que tienen una resolución de más.
|
7
|
+
{% endcomment %}
|
8
|
+
{%- assign image = include.image.path | default: 'public/placeholder.png' %}
|
9
|
+
{%- assign height = include.height | default: site.i18n.post.height -%}
|
10
|
+
{%- assign width = include.width | default: '100' -%}
|
11
|
+
|
12
|
+
<picture>
|
13
|
+
{% for size in site.images.sizes %}
|
14
|
+
<source srcset="{{ image | thumbnail: size }}" media="(max-width: {{ size }}px)" />
|
15
|
+
{% endfor %}
|
16
|
+
|
17
|
+
<img
|
18
|
+
class="u-photo w-{{ width }} {{ include.cover | equals: false | value_unless: 'fit-cover' }} h-{{ height }} {{ include.extra }}"
|
19
|
+
loading="lazy"
|
20
|
+
itemprop="image"
|
21
|
+
src="{{ image | thumbnail: 1140 }}"
|
22
|
+
alt="{{ include.image.description | include.default_description }}" />
|
23
|
+
</picture>
|
@@ -0,0 +1 @@
|
|
1
|
+
<link rel="preload" as="font" type="font/woff2" crossorigin href="{{ include.font }}" />
|
@@ -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
@@ -7,9 +7,29 @@
|
|
7
7
|
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
8
8
|
<meta name="theme-color" content="white"/>
|
9
9
|
<meta name="color-scheme" content="light"/>
|
10
|
+
<meta name="referrer" content="strict-origin-when-cross-origin" />
|
10
11
|
|
11
12
|
<link href="assets/css/styles.css" rel="stylesheet">
|
12
|
-
|
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">
|
13
33
|
|
14
34
|
{% seo %}
|
15
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
|
|
@@ -63,13 +63,23 @@ layout: default
|
|
63
63
|
<div class="col-12 col-lg-6 pt-5">
|
64
64
|
{%- assign forms = 'adhesion,adhesion_individual' | split: ',' -%}
|
65
65
|
{% for form in forms %}
|
66
|
-
<input
|
66
|
+
<input
|
67
|
+
type="radio"
|
68
|
+
name="adhesiones"
|
69
|
+
id="toggler-{{ form }}"
|
70
|
+
class="toggler"
|
71
|
+
autocomplete="off"
|
72
|
+
{% if form == site.i18n.home.form.default %}checked{% endif %}
|
73
|
+
/>
|
67
74
|
<label class="btn border position-absolute top {% cycle 'left','right' %}" for="toggler-{{ form }}">
|
68
75
|
{{ site.i18n.home.form[form] }}
|
69
76
|
</label>
|
70
77
|
|
71
78
|
<div class="toggled collapsed fade">
|
72
|
-
<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">
|
73
83
|
<div class="row justify-content-center">
|
74
84
|
{%- for field in site.data.layouts[form] -%}
|
75
85
|
{%- if field[1].skip -%}{% continue %}{%- endif -%}
|
@@ -82,6 +92,10 @@ layout: default
|
|
82
92
|
|
83
93
|
<div class="col-12">
|
84
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>
|
85
99
|
</div>
|
86
100
|
</div>
|
87
101
|
</form>
|
@@ -119,7 +133,8 @@ layout: default
|
|
119
133
|
</section>
|
120
134
|
|
121
135
|
{%- assign adhesiones = site.posts | where: 'layout', 'adhesion' -%}
|
122
|
-
{%- assign adhesiones_individuales = site.posts | where: 'layout', 'adhesion_individual' -%}
|
136
|
+
{%- assign adhesiones_individuales = site.posts | where: 'layout', 'adhesion_individual' | size -%}
|
137
|
+
{%- assign total = adhesiones | size | plus: adhesiones_individuales -%}
|
123
138
|
|
124
139
|
<section class="mt-5" id="adhesiones">
|
125
140
|
<header class="row align-items-center justify-content-between">
|
@@ -129,7 +144,7 @@ layout: default
|
|
129
144
|
|
130
145
|
<div class="col-6 col-lg-4">
|
131
146
|
<p>
|
132
|
-
<span class="font-weight-bold font-bigger">{{
|
147
|
+
<span class="font-weight-bold font-bigger">{{ total }}</span>
|
133
148
|
{{ site.i18n.home.metric }}
|
134
149
|
<i class="fa fa-line-chart"></i>
|
135
150
|
</p>
|
@@ -158,7 +173,7 @@ layout: default
|
|
158
173
|
|
159
174
|
|
160
175
|
<time datetime="{{ adhesion.date }}">
|
161
|
-
{{ adhesion.date | date: site.i18n.date }}
|
176
|
+
{{ adhesion.date | date: site.i18n.date.format }}
|
162
177
|
</time>
|
163
178
|
</header>
|
164
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