create-openclass-uniminuto 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +480 -0
  3. package/bin/create-openclass-uniminuto.mjs +142 -0
  4. package/package.json +39 -0
  5. package/template/.github/workflows/deploy.yml +64 -0
  6. package/template/README.md +326 -0
  7. package/template/config/openclass.config.iot-desde-openclass-iot.json +77 -0
  8. package/template/config/openclass.config.iot-ejemplo.json +81 -0
  9. package/template/demo_semana1.md +11 -0
  10. package/template/demo_semana2.md +11 -0
  11. package/template/demo_semana3.md +11 -0
  12. package/template/demo_semana4.md +11 -0
  13. package/template/demo_semana5.md +11 -0
  14. package/template/demo_semana6.md +11 -0
  15. package/template/demo_semana7.md +11 -0
  16. package/template/demo_semana8.md +11 -0
  17. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana1.md +12 -0
  18. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana2.md +12 -0
  19. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana3.md +12 -0
  20. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana4.md +12 -0
  21. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana5.md +12 -0
  22. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana6.md +12 -0
  23. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana7.md +12 -0
  24. package/template/ejemplos/iot-semanas-1-a-3/raiz/iot_semana8.md +12 -0
  25. package/template/ejemplos/iot-semanas-1-a-3/raiz/slides.md +154 -0
  26. package/template/ejemplos/iot-semanas-1-a-3/semanas/iot_semana1.md +846 -0
  27. package/template/ejemplos/iot-semanas-1-a-3/semanas/iot_semana2.md +1040 -0
  28. package/template/ejemplos/iot-semanas-1-a-3/semanas/iot_semana3.md +1071 -0
  29. package/template/openclass.config.json +79 -0
  30. package/template/package-lock.json +11568 -0
  31. package/template/package.json +61 -0
  32. package/template/plantillas/launcher.md +11 -0
  33. package/template/plantillas/semana.md +177 -0
  34. package/template/public/descargas/.gitkeep +0 -0
  35. package/template/public/favicon.png +0 -0
  36. package/template/public/fondos/slide-01-portada.png +0 -0
  37. package/template/public/fondos/slide-02-titulo.png +0 -0
  38. package/template/public/fondos/slide-03-imagen-izquierda.png +0 -0
  39. package/template/public/fondos/slide-04-imagen-derecha.png +0 -0
  40. package/template/public/fondos/slide-05-template.png +0 -0
  41. package/template/public/fondos/slide-06-cierre.png +0 -0
  42. package/template/public/imagenes/.gitkeep +0 -0
  43. package/template/public/videos/.gitkeep +0 -0
  44. package/template/scripts/build-incremental.mjs +33 -0
  45. package/template/scripts/build-site.mjs +33 -0
  46. package/template/scripts/decks.mjs +29 -0
  47. package/template/scripts/dev-all.mjs +37 -0
  48. package/template/scripts/export-downloads.mjs +53 -0
  49. package/template/scripts/export-incremental.mjs +49 -0
  50. package/template/scripts/generar-desde-config.mjs +279 -0
  51. package/template/scripts/nuevo-curso.mjs +104 -0
  52. package/template/scripts/preparar-github-pages.mjs +52 -0
  53. package/template/scripts/publicar.mjs +36 -0
  54. package/template/scripts/semana.mjs +122 -0
  55. package/template/scripts/zip-template.mjs +70 -0
  56. package/template/semanas/demo_semana1.md +177 -0
  57. package/template/semanas/demo_semana2.md +177 -0
  58. package/template/semanas/demo_semana3.md +177 -0
  59. package/template/semanas/demo_semana4.md +177 -0
  60. package/template/semanas/demo_semana5.md +177 -0
  61. package/template/semanas/demo_semana6.md +177 -0
  62. package/template/semanas/demo_semana7.md +177 -0
  63. package/template/semanas/demo_semana8.md +177 -0
  64. package/template/setup/shiki.ts +10 -0
  65. package/template/slides.md +65 -0
  66. package/template/snippets/external.ts +12 -0
  67. package/template/theme/uniminuto/README-AutoFit.md +28 -0
  68. package/template/theme/uniminuto/components/AutoFitText.vue +159 -0
  69. package/template/theme/uniminuto/components/Counter.vue +37 -0
  70. package/template/theme/uniminuto/components/FontToggle.vue +42 -0
  71. package/template/theme/uniminuto/layouts/slide-01-portada.vue +119 -0
  72. package/template/theme/uniminuto/layouts/slide-02-titulo.vue +63 -0
  73. package/template/theme/uniminuto/layouts/slide-03-imagen-izquierda.vue +110 -0
  74. package/template/theme/uniminuto/layouts/slide-04-imagen-derecha.vue +110 -0
  75. package/template/theme/uniminuto/layouts/slide-05-titulo-superior-texto-derecha.vue +104 -0
  76. package/template/theme/uniminuto/layouts/slide-06-titulo-superior-texto-izquierda.vue +109 -0
  77. package/template/theme/uniminuto/layouts/slide-07-multimedia-con-titulo.vue +87 -0
  78. package/template/theme/uniminuto/layouts/slide-08-titulo-texto.vue +78 -0
  79. package/template/theme/uniminuto/layouts/slide-09-objetivos.vue +77 -0
  80. package/template/theme/uniminuto/layouts/slide-10-titulo-dos-columnas.vue +89 -0
  81. package/template/theme/uniminuto/layouts/slide-11-dos-titulos-dos-columnas.vue +98 -0
  82. package/template/theme/uniminuto/layouts/slide-12-cierre.vue +27 -0
  83. package/template/theme/uniminuto/layouts/slide-codigo.vue +133 -0
  84. package/template/theme/uniminuto/package.json +13 -0
  85. package/template/theme/uniminuto/styles/base.css +109 -0
  86. package/template/theme/uniminuto/styles/index.ts +11 -0
@@ -0,0 +1,110 @@
1
+ <script setup>
2
+ import AutoFitText from '../components/AutoFitText.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div class="slide-layout">
7
+ <img
8
+ class="slide-bg"
9
+ src="/fondos/slide-04-imagen-derecha.png"
10
+ alt="Fondo diapositiva imagen derecha"
11
+ />
12
+
13
+ <div class="image-wrap">
14
+ <slot name="image" />
15
+ </div>
16
+
17
+ <div class="title-wrap">
18
+ <AutoFitText tag="h1" class="title" :min="18" :max="36" line-height="1.05">
19
+ <slot name="title">Agrega un título</slot>
20
+ </AutoFitText>
21
+ </div>
22
+
23
+ <div class="content-wrap">
24
+ <AutoFitText tag="div" class="content-fit" :min="15" :max="28" line-height="1.32">
25
+ <slot name="content" />
26
+ </AutoFitText>
27
+ </div>
28
+ </div>
29
+ </template>
30
+
31
+ <style scoped>
32
+ .slide-layout {
33
+ position: relative;
34
+ width: 100%;
35
+ height: 100%;
36
+ overflow: hidden;
37
+ background: #ffffff;
38
+ }
39
+
40
+ .slide-bg {
41
+ position: absolute;
42
+ inset: 0;
43
+ width: 100%;
44
+ height: 100%;
45
+ object-fit: cover;
46
+ z-index: 1;
47
+ }
48
+
49
+ .image-wrap {
50
+ position: absolute;
51
+ z-index: 2;
52
+ left: 51.2%;
53
+ top: 15%;
54
+ width: 40%;
55
+ height: 78%;
56
+ display: flex;
57
+ align-items: center;
58
+ justify-content: center;
59
+ overflow: hidden;
60
+ }
61
+
62
+ .image-wrap :deep(img),
63
+ .image-wrap :deep(video),
64
+ .image-wrap :deep(iframe) {
65
+ width: 100%;
66
+ height: 100%;
67
+ object-fit: cover;
68
+ border: 0;
69
+ display: block;
70
+ }
71
+
72
+ .title-wrap {
73
+ position: absolute;
74
+ z-index: 2;
75
+ left: 0%;
76
+ top: 20.5%;
77
+ width: 51.2%;
78
+ height: 6.8%;
79
+ display: flex;
80
+ align-items: center;
81
+ justify-content: center;
82
+ text-align: center;
83
+ padding: 0 1rem;
84
+ box-sizing: border-box;
85
+ }
86
+
87
+ .title {
88
+ margin: 0 !important;
89
+ color: #ffffff !important;
90
+ font-family: var(--font-title, 'Merriweather Sans', Arial, sans-serif);
91
+ font-weight: 800;
92
+ }
93
+
94
+ .content-wrap {
95
+ position: absolute;
96
+ z-index: 2;
97
+ left: 6%;
98
+ top: 32%;
99
+ width: 41%;
100
+ height: 50%;
101
+ color: #233763 !important;
102
+ font-family: var(--font-body, 'Atkinson Hyperlegible', Arial, sans-serif);
103
+ }
104
+
105
+ .content-fit :deep(*) { color: #233763 !important; }
106
+ .content-fit :deep(p) { margin: 0 0 0.75rem 0; }
107
+ .content-fit :deep(ul) { list-style-type: disc !important; list-style-position: outside !important; margin: 0; padding-left: 1.6rem; }
108
+ .content-fit :deep(li) { display: list-item !important; margin-bottom: 0.5rem; }
109
+ .content-fit :deep(li::marker) { color: #233763 !important; }
110
+ </style>
@@ -0,0 +1,104 @@
1
+ <script setup>
2
+ import AutoFitText from '../components/AutoFitText.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div class="slide-layout">
7
+ <img class="slide-bg" src="/fondos/slide-05-template.png" alt="Fondo institucional" />
8
+
9
+ <div class="image-wrap">
10
+ <slot name="image" />
11
+ </div>
12
+
13
+ <div class="title-wrap">
14
+ <AutoFitText tag="h1" class="title" :min="20" :max="42" line-height="1.05">
15
+ <slot name="title">Agrega un título</slot>
16
+ </AutoFitText>
17
+ </div>
18
+
19
+ <div class="content-wrap">
20
+ <AutoFitText tag="div" class="content-fit" :min="15" :max="28" line-height="1.32">
21
+ <slot name="content" />
22
+ </AutoFitText>
23
+ </div>
24
+ </div>
25
+ </template>
26
+
27
+ <style scoped>
28
+ .slide-layout {
29
+ position: relative;
30
+ width: 100%;
31
+ height: 100%;
32
+ overflow: hidden;
33
+ background: #ffffff;
34
+ }
35
+
36
+ .slide-bg {
37
+ position: absolute;
38
+ inset: 0;
39
+ width: 100%;
40
+ height: 100%;
41
+ object-fit: cover;
42
+ z-index: 1;
43
+ }
44
+
45
+ .image-wrap {
46
+ position: absolute;
47
+ z-index: 2;
48
+ left: 6.2%;
49
+ top: 15%;
50
+ width: 41.3%;
51
+ height: 78%;
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ overflow: hidden;
56
+ }
57
+
58
+ .image-wrap :deep(img),
59
+ .image-wrap :deep(video),
60
+ .image-wrap :deep(iframe) {
61
+ width: 100%;
62
+ height: 100%;
63
+ object-fit: cover;
64
+ border: 0;
65
+ display: block;
66
+ }
67
+
68
+ .title-wrap {
69
+ position: absolute;
70
+ z-index: 2;
71
+ left: 3.2%;
72
+ top: 2%;
73
+ width: 49%;
74
+ height: 8%;
75
+ display: flex;
76
+ align-items: center;
77
+ justify-content: flex-start;
78
+ padding-left: 0.5rem;
79
+ box-sizing: border-box;
80
+ }
81
+
82
+ .title {
83
+ margin: 0 !important;
84
+ color: #ffffff !important;
85
+ font-family: var(--font-title, 'Merriweather Sans', Arial, sans-serif);
86
+ font-weight: 800;
87
+ }
88
+
89
+ .content-wrap {
90
+ position: absolute;
91
+ z-index: 2;
92
+ left: 50%;
93
+ top: 18%;
94
+ width: 42%;
95
+ height: 57%;
96
+ color: #233763 !important;
97
+ font-family: var(--font-body, 'Atkinson Hyperlegible', Arial, sans-serif);
98
+ }
99
+
100
+ .content-fit :deep(*) { color: #233763 !important; }
101
+ .content-fit :deep(p) { margin: 0 0 0.7rem 0; }
102
+ .content-fit :deep(ul) { list-style-type: disc !important; list-style-position: outside !important; margin: 0; padding-left: 1.6rem; }
103
+ .content-fit :deep(li) { display: list-item !important; margin-bottom: 0.55rem; }
104
+ </style>
@@ -0,0 +1,109 @@
1
+ <script setup>
2
+ import AutoFitText from '../components/AutoFitText.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div class="slide-layout">
7
+ <img
8
+ class="slide-bg"
9
+ src="/fondos/slide-05-template.png"
10
+ alt="Fondo diapositiva título superior y texto izquierda"
11
+ />
12
+
13
+ <div class="title-wrap">
14
+ <AutoFitText tag="h1" class="title" :min="20" :max="42" line-height="1.05">
15
+ <slot name="title">Agrega un título</slot>
16
+ </AutoFitText>
17
+ </div>
18
+
19
+ <div class="content-wrap">
20
+ <AutoFitText tag="div" class="content-fit" :min="15" :max="28" line-height="1.32">
21
+ <slot name="content" />
22
+ </AutoFitText>
23
+ </div>
24
+
25
+ <div class="image-wrap">
26
+ <slot name="image" />
27
+ </div>
28
+ </div>
29
+ </template>
30
+
31
+ <style scoped>
32
+ .slide-layout {
33
+ position: relative;
34
+ width: 100%;
35
+ height: 100%;
36
+ overflow: hidden;
37
+ background: #ffffff;
38
+ }
39
+
40
+ .slide-bg {
41
+ position: absolute;
42
+ inset: 0;
43
+ width: 100%;
44
+ height: 100%;
45
+ object-fit: cover;
46
+ z-index: 1;
47
+ }
48
+
49
+ .title-wrap {
50
+ position: absolute;
51
+ z-index: 2;
52
+ left: 3.2%;
53
+ top: 2%;
54
+ width: 49%;
55
+ height: 8%;
56
+ display: flex;
57
+ align-items: center;
58
+ justify-content: flex-start;
59
+ padding-left: 0.5rem;
60
+ box-sizing: border-box;
61
+ }
62
+
63
+ .title {
64
+ margin: 0 !important;
65
+ color: #ffffff !important;
66
+ font-family: var(--font-title, 'Merriweather Sans', Arial, sans-serif);
67
+ font-weight: 800;
68
+ }
69
+
70
+ .content-wrap {
71
+ position: absolute;
72
+ z-index: 2;
73
+ left: 6%;
74
+ top: 18%;
75
+ width: 41%;
76
+ height: 57%;
77
+ color: #233763 !important;
78
+ font-family: var(--font-body, 'Atkinson Hyperlegible', Arial, sans-serif);
79
+ }
80
+
81
+ .content-fit :deep(*) { color: #233763 !important; }
82
+ .content-fit :deep(p) { margin: 0 0 0.7rem 0; }
83
+ .content-fit :deep(ul) { list-style-type: disc !important; list-style-position: outside !important; margin: 0; padding-left: 1.6rem; }
84
+ .content-fit :deep(li) { display: list-item !important; margin-bottom: 0.55rem; }
85
+ .content-fit :deep(li::marker) { color: #233763 !important; }
86
+
87
+ .image-wrap {
88
+ position: absolute;
89
+ z-index: 2;
90
+ left: 51.2%;
91
+ top: 18.8%;
92
+ width: 41.3%;
93
+ height: 67.8%;
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ overflow: hidden;
98
+ }
99
+
100
+ .image-wrap :deep(img),
101
+ .image-wrap :deep(video),
102
+ .image-wrap :deep(iframe) {
103
+ width: 100%;
104
+ height: 100%;
105
+ object-fit: cover;
106
+ border: 0;
107
+ display: block;
108
+ }
109
+ </style>
@@ -0,0 +1,87 @@
1
+ <script setup>
2
+ import AutoFitText from '../components/AutoFitText.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div class="slide-layout">
7
+ <img
8
+ class="slide-bg"
9
+ src="/fondos/slide-05-template.png"
10
+ alt="Fondo diapositiva multimedia con título"
11
+ />
12
+
13
+ <div class="title-wrap">
14
+ <AutoFitText tag="h1" class="title" :min="20" :max="42" line-height="1.05">
15
+ <slot name="title">Agrega un título</slot>
16
+ </AutoFitText>
17
+ </div>
18
+
19
+ <div class="media-wrap">
20
+ <slot name="media" />
21
+ </div>
22
+ </div>
23
+ </template>
24
+
25
+ <style scoped>
26
+ .slide-layout {
27
+ position: relative;
28
+ width: 100%;
29
+ height: 100%;
30
+ overflow: hidden;
31
+ background: #ffffff;
32
+ }
33
+
34
+ .slide-bg {
35
+ position: absolute;
36
+ inset: 0;
37
+ width: 100%;
38
+ height: 100%;
39
+ object-fit: cover;
40
+ z-index: 1;
41
+ }
42
+
43
+ .title-wrap {
44
+ position: absolute;
45
+ z-index: 2;
46
+ left: 3.2%;
47
+ top: 2%;
48
+ width: 49%;
49
+ height: 8%;
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: flex-start;
53
+ padding-left: 0.5rem;
54
+ box-sizing: border-box;
55
+ }
56
+
57
+ .title {
58
+ margin: 0 !important;
59
+ color: #ffffff !important;
60
+ font-family: var(--font-title, 'Merriweather Sans', Arial, sans-serif);
61
+ font-weight: 800;
62
+ }
63
+
64
+ .media-wrap {
65
+ position: absolute;
66
+ z-index: 2;
67
+ left: 18.2%;
68
+ top: 18.8%;
69
+ width: 63.6%;
70
+ height: 67.8%;
71
+ display: flex;
72
+ align-items: center;
73
+ justify-content: center;
74
+ overflow: hidden;
75
+ background: transparent;
76
+ }
77
+
78
+ .media-wrap :deep(img),
79
+ .media-wrap :deep(video),
80
+ .media-wrap :deep(iframe) {
81
+ width: 100%;
82
+ height: 100%;
83
+ object-fit: cover;
84
+ border: 0;
85
+ display: block;
86
+ }
87
+ </style>
@@ -0,0 +1,78 @@
1
+ <script setup>
2
+ import AutoFitText from '../components/AutoFitText.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div class="slide-layout">
7
+ <img class="slide-bg" src="/fondos/slide-05-template.png" alt="Fondo institucional" />
8
+
9
+ <div class="title-wrap">
10
+ <AutoFitText tag="h1" class="title" :min="20" :max="42" line-height="1.05">
11
+ <slot name="title">Agrega un título</slot>
12
+ </AutoFitText>
13
+ </div>
14
+
15
+ <div class="content-wrap">
16
+ <AutoFitText tag="div" class="content-fit" :min="16" :max="32" line-height="1.35">
17
+ <slot name="content" />
18
+ </AutoFitText>
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <style scoped>
24
+ .slide-layout {
25
+ position: relative;
26
+ width: 100%;
27
+ height: 100%;
28
+ overflow: hidden;
29
+ background: #ffffff;
30
+ }
31
+
32
+ .slide-bg {
33
+ position: absolute;
34
+ inset: 0;
35
+ width: 100%;
36
+ height: 100%;
37
+ object-fit: cover;
38
+ z-index: 1;
39
+ }
40
+
41
+ .title-wrap {
42
+ position: absolute;
43
+ z-index: 2;
44
+ left: 3.2%;
45
+ top: 2%;
46
+ width: 49%;
47
+ height: 8%;
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: flex-start;
51
+ padding-left: 0.5rem;
52
+ box-sizing: border-box;
53
+ }
54
+
55
+ .title {
56
+ margin: 0 !important;
57
+ color: #ffffff !important;
58
+ font-family: var(--font-title, 'Merriweather Sans', Arial, sans-serif);
59
+ font-weight: 800;
60
+ }
61
+
62
+ .content-wrap {
63
+ position: absolute;
64
+ z-index: 2;
65
+ left: 6%;
66
+ top: 17%;
67
+ width: 84%;
68
+ height: 68%;
69
+ color: #233763 !important;
70
+ font-family: var(--font-body, 'Atkinson Hyperlegible', Arial, sans-serif);
71
+ }
72
+
73
+ .content-fit :deep(*) { color: #233763 !important; }
74
+ .content-fit :deep(p) { margin: 0 0 1rem 0; }
75
+ .content-fit :deep(ul) { list-style-type: disc !important; padding-left: 1.6rem; }
76
+ .content-fit :deep(li) { display: list-item !important; margin-bottom: 0.55rem; }
77
+ .content-fit :deep(pre) { font-size: 0.62em; line-height: 1.25; }
78
+ </style>
@@ -0,0 +1,77 @@
1
+ <script setup>
2
+ import AutoFitText from '../components/AutoFitText.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div class="slide-layout">
7
+ <img class="slide-bg" src="/fondos/slide-05-template.png" alt="Fondo institucional" />
8
+
9
+ <div class="title-wrap">
10
+ <AutoFitText tag="h1" class="title" :min="20" :max="42" line-height="1.05">
11
+ <slot name="title">Agrega un título</slot>
12
+ </AutoFitText>
13
+ </div>
14
+
15
+ <div class="content-wrap">
16
+ <AutoFitText tag="div" class="content-fit" :min="16" :max="34" line-height="1.35">
17
+ <slot name="content" />
18
+ </AutoFitText>
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <style scoped>
24
+ .slide-layout {
25
+ position: relative;
26
+ width: 100%;
27
+ height: 100%;
28
+ overflow: hidden;
29
+ background: #ffffff;
30
+ }
31
+
32
+ .slide-bg {
33
+ position: absolute;
34
+ inset: 0;
35
+ width: 100%;
36
+ height: 100%;
37
+ object-fit: cover;
38
+ z-index: 1;
39
+ }
40
+
41
+ .title-wrap {
42
+ position: absolute;
43
+ z-index: 2;
44
+ left: 3.2%;
45
+ top: 2%;
46
+ width: 49%;
47
+ height: 8%;
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: flex-start;
51
+ padding-left: 0.5rem;
52
+ box-sizing: border-box;
53
+ }
54
+
55
+ .title {
56
+ margin: 0 !important;
57
+ color: #ffffff !important;
58
+ font-family: var(--font-title, 'Merriweather Sans', Arial, sans-serif);
59
+ font-weight: 800;
60
+ }
61
+
62
+ .content-wrap {
63
+ position: absolute;
64
+ z-index: 2;
65
+ left: 8%;
66
+ top: 19%;
67
+ width: 78%;
68
+ height: 65%;
69
+ color: #233763 !important;
70
+ font-family: var(--font-body, 'Atkinson Hyperlegible', Arial, sans-serif);
71
+ }
72
+
73
+ .content-fit :deep(*) { color: #233763 !important; }
74
+ .content-fit :deep(ul) { list-style-type: disc !important; list-style-position: outside !important; margin: 0; padding-left: 2rem; }
75
+ .content-fit :deep(li) { display: list-item !important; margin-bottom: 1rem; }
76
+ .content-fit :deep(li::marker) { color: #233763 !important; font-size: 0.9em; }
77
+ </style>
@@ -0,0 +1,89 @@
1
+ <script setup>
2
+ import AutoFitText from '../components/AutoFitText.vue'
3
+ </script>
4
+
5
+ <template>
6
+ <div class="slide-layout">
7
+ <img class="slide-bg" src="/fondos/slide-05-template.png" alt="Fondo institucional" />
8
+
9
+ <div class="title-wrap">
10
+ <AutoFitText tag="h1" class="title" :min="20" :max="42" line-height="1.05">
11
+ <slot name="title">Agrega un título</slot>
12
+ </AutoFitText>
13
+ </div>
14
+
15
+ <div class="left-wrap">
16
+ <AutoFitText tag="div" class="column-fit" :min="14" :max="28" line-height="1.35">
17
+ <slot name="left" />
18
+ </AutoFitText>
19
+ </div>
20
+
21
+ <div class="right-wrap">
22
+ <AutoFitText tag="div" class="column-fit" :min="14" :max="28" line-height="1.35">
23
+ <slot name="right" />
24
+ </AutoFitText>
25
+ </div>
26
+ </div>
27
+ </template>
28
+
29
+ <style scoped>
30
+ .slide-layout {
31
+ position: relative;
32
+ width: 100%;
33
+ height: 100%;
34
+ overflow: hidden;
35
+ background: #ffffff;
36
+ }
37
+
38
+ .slide-bg {
39
+ position: absolute;
40
+ inset: 0;
41
+ width: 100%;
42
+ height: 100%;
43
+ object-fit: cover;
44
+ z-index: 1;
45
+ }
46
+
47
+ .title-wrap {
48
+ position: absolute;
49
+ z-index: 2;
50
+ left: 3.2%;
51
+ top: 2%;
52
+ width: 49%;
53
+ height: 8%;
54
+ display: flex;
55
+ align-items: center;
56
+ justify-content: flex-start;
57
+ padding-left: 0.5rem;
58
+ box-sizing: border-box;
59
+ }
60
+
61
+ .title {
62
+ margin: 0 !important;
63
+ color: #ffffff !important;
64
+ font-family: var(--font-title, 'Merriweather Sans', Arial, sans-serif);
65
+ font-weight: 800;
66
+ }
67
+
68
+ .left-wrap,
69
+ .right-wrap {
70
+ position: absolute;
71
+ z-index: 2;
72
+ top: 17%;
73
+ height: 68%;
74
+ color: #233763 !important;
75
+ font-family: var(--font-body, 'Atkinson Hyperlegible', Arial, sans-serif);
76
+ }
77
+
78
+ .left-wrap { left: 11%; width: 36%; }
79
+ .right-wrap { left: 52%; width: 36%; }
80
+
81
+ .column-fit :deep(*) { color: #233763 !important; }
82
+ .column-fit :deep(h1),
83
+ .column-fit :deep(h2),
84
+ .column-fit :deep(h3) { margin: 0 0 0.6rem 0; font-weight: 800; color: #233763 !important; }
85
+ .column-fit :deep(p) { margin: 0 0 0.8rem 0; }
86
+ .column-fit :deep(ul) { list-style-type: disc !important; margin: 0; padding-left: 1.5rem; }
87
+ .column-fit :deep(li) { display: list-item !important; margin-bottom: 0.5rem; }
88
+ .column-fit :deep(pre) { font-size: 0.58em; line-height: 1.22; }
89
+ </style>