aboutsummaryrefslogtreecommitdiffstats
path: root/django
diff options
context:
space:
mode:
authorJesús <heckyel@hyperbola.info>2022-01-13 21:48:17 -0500
committerJesús <heckyel@hyperbola.info>2022-01-13 21:48:17 -0500
commit217f9725b9cd92b81802974cbfde5516d6b1b6fa (patch)
tree18531bffa37331e2632a2f6bc619ebd0b215f943 /django
parent4317b0ba5d614fb6f9f3d3ee333848e9774700ba (diff)
downloadpersonal-site-217f9725b9cd92b81802974cbfde5516d6b1b6fa.tar.lz
personal-site-217f9725b9cd92b81802974cbfde5516d6b1b6fa.tar.xz
personal-site-217f9725b9cd92b81802974cbfde5516d6b1b6fa.zip
Add missing files
Diffstat (limited to 'django')
-rw-r--r--django/core/static/core/README.md21
-rw-r--r--django/core/static/core/css/estilos.min.css1
-rw-r--r--django/core/static/core/images/BG.jpgbin0 -> 46874 bytes
-rw-r--r--django/core/static/core/images/favicon.pngbin0 -> 2065 bytes
-rw-r--r--django/core/static/core/images/foto.pngbin0 -> 16344 bytes
-rw-r--r--django/core/static/core/js/efectos.js60
-rw-r--r--django/core/static/core/js/formulario.js65
-rw-r--r--django/core/static/core/lib/normalize-css/.bower.json24
-rw-r--r--django/core/static/core/lib/normalize-css/.gitattributes2
-rw-r--r--django/core/static/core/lib/normalize-css/.gitignore1
-rw-r--r--django/core/static/core/lib/normalize-css/.travis.yml3
-rw-r--r--django/core/static/core/lib/normalize-css/LICENSE.md21
-rw-r--r--django/core/static/core/lib/normalize-css/bower.json13
-rw-r--r--django/core/static/core/lib/normalize-css/normalize.css447
-rw-r--r--django/core/static/core/librejs.html22
-rw-r--r--django/core/static/core/sass/_front.sass244
-rw-r--r--django/core/static/core/sass/_mediaqueries.sass41
-rw-r--r--django/core/static/core/sass/estilos.sass8
18 files changed, 973 insertions, 0 deletions
diff --git a/django/core/static/core/README.md b/django/core/static/core/README.md
new file mode 100644
index 0000000..49335ff
--- /dev/null
+++ b/django/core/static/core/README.md
@@ -0,0 +1,21 @@
+## Hacking
+
+## SASS to CSS
+
+1. Requeriments:
+
+ ```
+ gem install sass
+ ```
+
+2. Generate CSS from SASS:
+
+ ```
+ sass -t compressed --sourcemap=none sass/estilos.sass:css/estilos.min.css
+ ```
+
+3. Show CSS to SASS live
+
+ ```
+ sass --watch -t compressed --sourcemap=none sass/estilos.sass:css/estilos.min.css
+ ```
diff --git a/django/core/static/core/css/estilos.min.css b/django/core/static/core/css/estilos.min.css
new file mode 100644
index 0000000..45633a8
--- /dev/null
+++ b/django/core/static/core/css/estilos.min.css
@@ -0,0 +1 @@
+html{scroll-behavior:smooth}body{background:#fff;font-family:"liberation serif","times new roman",calibri,carlito,sans-serif,serif;font-size:16px}.contenedor{width:90%;max-width:1000px;margin:auto;overflow:hidden}header{background:url("./../images/BG.jpg") #68bdea;background-repeat:no-repeat;background-position:center;max-height:600px}header .menu{margin:40px 0px;text-align:right}header .menu a{margin:0px 20px;color:#fff;padding-bottom:9px;display:inline-block;text-decoration:none;border-bottom:2px solid transparent;font-size:1rem}header .menu a:hover{border-bottom:2px solid #fff}header .contenedor-texto{display:flex;justify-content:center;align-content:center;margin:190px 0px}header .contenedor-texto .texto{border:2px solid rgba(255,255,255,0.5);border-radius:3px;display:inline-block;text-align:center;padding:20px 60px}header .contenedor-texto .texto h1,header .contenedor-texto .texto h2{color:#fff;font-weight:300;margin:0px}header .contenedor-texto .texto .nombre{margin-bottom:10px;font-size:3.125rem;line-height:50px}header .contenedor-texto .texto .profesion{font-size:1.5rem;line-height:25px}main .contenedor{overflow:visible}main .acerca-de{text-align:center}main .acerca-de .foto{margin-top:-60px}main .acerca-de .foto img{vertical-align:top;border-radius:50%;border:5px solid rgba(255,255,255,0.2)}main .acerca-de .texto{color:#5a5a5a;font-weight:600;font-size:1rem;line-height:30px;width:80%;margin:40px auto 60px auto}main .acerca-de .texto .titulo{font-size:2.125rem;margin-bottom:40px;font-weight:300;color:#dd820d;text-align:center}main .acerca-de .texto .bold{color:#3895ea;text-decoration:underline}main .trabajos{background:#f2f2f2;padding:60px 0}main .trabajos .contenedor{overflow:hidden}main .trabajos .titulo{font-size:2.125rem;line-height:34px;margin-bottom:40px;font-weight:300;color:#323068;text-align:center}main .trabajos .contenedor-trabajos{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}main .trabajos .contenedor-trabajos .trabajo{width:23%;margin-bottom:40px}main .trabajos .contenedor-trabajos .trabajo .thumb{width:100%;margin-bottom:10px}main .trabajos .contenedor-trabajos .trabajo .thumb img{width:100%;vertical-align:top;border-radius:3px}main .trabajos .contenedor-trabajos .trabajo .descripcion{text-align:center}main .trabajos .contenedor-trabajos .trabajo .descripcion .nombre{font-weight:700;color:#3895ea;margin-bottom:10px}main .trabajos .contenedor-trabajos .trabajo .descripcion .nombre a{text-decoration:none;color:#3895ea}main .trabajos .contenedor-trabajos .trabajo .descripcion .categoria{font-size:.8rem;color:#636363}footer .contacto{padding:60px 0}footer .contacto .titulo{font-size:2.125rem;line-height:34px;margin-bottom:40px;font-weight:300;color:#3895ea;text-align:center}footer .contacto .formulario{display:flex;flex-wrap:wrap;justify-content:space-between}footer .contacto .formulario input[type="text"],footer .contacto .formulario input[type="email"]{background:#f3f4f7;border:2px solid #cecece;border-radius:5px;padding:15px 20px;font-size:1.125rem;color:#a4a4a4}footer .contacto .formulario textarea{background:#f3f4f7;border:2px solid #cecece;border-radius:5px;padding:15px 20px;font-size:1.25rem;color:#a4a4a4}footer .contacto .formulario input[type="text"]:focus,footer .contacto .formulario input[type="email"]:focus{border:2px solid #3895ea}footer .contacto .formulario textarea:focus{border:2px solid #3895ea}footer .contacto .formulario input[type="text"],footer .contacto .formulario input[type="email"]{width:45%;margin-bottom:15px}footer .contacto .formulario textarea{width:100%;height:100px;max-width:100%;min-height:100px;max-height:300px;margin-bottom:15px}footer .contacto .formulario .error{display:none;margin-top:20px;border-radius:3px;background:#fc636b;color:#fff;padding:15px 10px;padding-left:40px;width:100%}footer .contacto .formulario .boton{margin:auto;background:#3895ea;color:#fff;border:none;border-radius:3px;padding:15px 40px;cursor:pointer}footer .contacto .formulario .boton:hover{background:#387bea}footer .contacto .alert.success{color:#3895ea;white-space:pre-line}footer .contacto .alert.danger{color:#ee4c58;white-space:pre-line}footer .redes-sociales-libres{background:#1e2b38;padding:60px 0}footer .redes-sociales-libres .contenedor{display:flex;justify-content:center}footer .redes-sociales-libres a{color:#fff;text-align:center;width:100px;display:block;padding:15px 0;border-radius:3px;font-size:1.8rem;margin:0 20px}footer .redes-sociales-libres a svg{fill:currentcolor;width:24px}footer .redes-sociales-libres .diaspora:hover{background:#010101}footer .redes-sociales-libres .gnusocial:hover{background:#a42833}footer .redes-sociales-libres .gitlab:hover{background:#e24329}footer .redes-sociales-libres .libregit:hover{background:#333}footer .redes-sociales-libres .mediagoblin:hover{background:#775fa3}footer .redes-sociales-libres .notabug:hover{background:#244664}footer .redes-sociales-libres .peertube:hover{background:#f1680d}footer .copyleft{background:#192633;padding:5px 0}footer .copyleft p{color:#fff;text-align:center;font-size:.75rem}footer .copyleft p a{color:#3895ea;text-decoration:none}footer .copyleft p svg{width:.5rem;fill:currentcolor}@media screen and (max-width: 985px){footer .contacto .formulario input[type="text"],footer .contacto .formulario input[type="email"]{width:44%}}@media screen and (max-width: 830px){footer .contacto .formulario input[type="text"],footer .contacto .formulario input[type="email"]{width:42%}}@media screen and (max-width: 800px){header .menu{text-align:center}main .trabajos .contenedor-trabajos .trabajo{width:46%}footer .contacto .formulario [type="text"],[type="email"]{width:100%}}@media screen and (max-width: 630px){footer .contacto .formulario input[type="text"],footer .contacto .formulario input[type="email"]{width:100%}}@media screen and (max-width: 500px){header .contenedor-texto .texto .nombre{font-size:35px}header .contenedor-texto .texto .profesion{font-size:18px}footer .redes-sociales-libres .contenedor{flex-wrap:wrap;padding:20px 0}}@media screen and (max-width: 320px){footer .contacto .formulario input[type="text"],footer .contacto .formulario input[type="email"]{width:84%}footer .copyleft p{font-size:.6rem}}
diff --git a/django/core/static/core/images/BG.jpg b/django/core/static/core/images/BG.jpg
new file mode 100644
index 0000000..615d79d
--- /dev/null
+++ b/django/core/static/core/images/BG.jpg
Binary files differ
diff --git a/django/core/static/core/images/favicon.png b/django/core/static/core/images/favicon.png
new file mode 100644
index 0000000..45884f7
--- /dev/null
+++ b/django/core/static/core/images/favicon.png
Binary files differ
diff --git a/django/core/static/core/images/foto.png b/django/core/static/core/images/foto.png
new file mode 100644
index 0000000..489019d
--- /dev/null
+++ b/django/core/static/core/images/foto.png
Binary files differ
diff --git a/django/core/static/core/js/efectos.js b/django/core/static/core/js/efectos.js
new file mode 100644
index 0000000..0e92adf
--- /dev/null
+++ b/django/core/static/core/js/efectos.js
@@ -0,0 +1,60 @@
+/*
+@licstart The following is the entire license notice for the
+JavaScript code in this page.
+
+Copyleft 2021 | Heckyel
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+@licend The above is the entire license notice
+for the JavaScript code in this page.
+*/
+
+(function main() {
+ 'use strict';
+ document.addEventListener('DOMContentLoaded', (event) => {
+ // buttons
+ const $aboutUs = document.getElementById('btn-acerca-de');
+ const $project = document.getElementById('btn-trabajos');
+ const $contact = document.getElementById('btn-contacto');
+
+ // sections
+ const $acercaDe = document.getElementById('acerca-de');
+ const $trabajos = document.getElementById('trabajos');
+ const $contacto = document.getElementById('contacto');
+
+ $aboutUs.addEventListener('click', (e) => {
+ e.preventDefault();
+ window.scroll({top: 240, behavior: 'smooth'});
+ location.hash = $aboutUs.hash;
+ });
+
+ $project.addEventListener('click', (e) => {
+ e.preventDefault();
+ $trabajos.scrollIntoView({
+ behavior: "smooth",
+ block: "start",
+ inline: "nearest"
+ });
+ location.hash = $project.hash;
+ });
+
+ $contact.addEventListener('click', (e) => {
+ e.preventDefault();
+ $contacto.scrollIntoView({
+ behavior: "smooth",
+ block: "start",
+ inline: "nearest"
+ });
+ location.hash = $contact.hash;
+ });
+ });
+}());
diff --git a/django/core/static/core/js/formulario.js b/django/core/static/core/js/formulario.js
new file mode 100644
index 0000000..eead4f9
--- /dev/null
+++ b/django/core/static/core/js/formulario.js
@@ -0,0 +1,65 @@
+/*
+@licstart The following is the entire license notice for the
+JavaScript code in this page.
+
+Copyleft 2021 | Heckyel
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+See the GNU General Public License for more details.
+
+@licend The above is the entire license notice
+for the JavaScript code in this page.
+*/
+
+(function main(){
+ 'use strict';
+ var formulario = document.getElementById('formulario'),
+ nombre = formulario.name,
+ correo = formulario.email,
+ mensaje = formulario.content,
+ error = document.getElementById('error');
+
+ function validarNombre(e){
+ if(nombre.value == '' || nombre.value == null){
+ console.info('Por favor completa el nombre');
+ error.style.display = 'block';
+ error.innerHTML = error.innerHTML + '<li>Por favor completa el nombre</li>';
+ e.preventDefault();
+ }
+ }
+
+ function validarCorreo(e){
+ if(correo.value == '' || correo.value == null){
+ console.info('Por favor completa el correo');
+ error.style.display = 'block';
+ error.innerHTML = error.innerHTML + '<li>Por favor completa el correo</li>';
+ e.preventDefault();
+ }
+ }
+
+ function validarMensaje(e){
+ if(mensaje.value == '' || mensaje.value == null){
+ console.info('Por favor completa el mensaje');
+ error.style.display = 'block';
+ error.innerHTML = error.innerHTML + '<li>Por favor completa el mensaje</li>';
+ e.preventDefault();
+ }
+ }
+
+ function validarFormulario(e){
+ error.innerHTML = '';
+ error.style.display = 'none';
+ validarNombre(e);
+ validarCorreo(e);
+ validarMensaje(e);
+ }
+
+ formulario.addEventListener('submit', validarFormulario);
+}());
diff --git a/django/core/static/core/lib/normalize-css/.bower.json b/django/core/static/core/lib/normalize-css/.bower.json
new file mode 100644
index 0000000..1edd75c
--- /dev/null
+++ b/django/core/static/core/lib/normalize-css/.bower.json
@@ -0,0 +1,24 @@
+{
+ "name": "normalize-css",
+ "description": "A modern alternative to CSS resets",
+ "main": "normalize.css",
+ "license": "MIT",
+ "ignore": [
+ "CHANGELOG.md",
+ "CONTRIBUTING.md",
+ "package.json",
+ "README.md",
+ "test.html"
+ ],
+ "homepage": "https://github.com/necolas/normalize.css",
+ "version": "7.0.0",
+ "_release": "7.0.0",
+ "_resolution": {
+ "type": "version",
+ "tag": "7.0.0",
+ "commit": "cd79468238394513cf481338c9dcb9aa8bd9b59c"
+ },
+ "_source": "https://github.com/necolas/normalize.css.git",
+ "_target": "~7.0.0",
+ "_originalSource": "normalize-css"
+} \ No newline at end of file
diff --git a/django/core/static/core/lib/normalize-css/.gitattributes b/django/core/static/core/lib/normalize-css/.gitattributes
new file mode 100644
index 0000000..5e26201
--- /dev/null
+++ b/django/core/static/core/lib/normalize-css/.gitattributes
@@ -0,0 +1,2 @@
+normalize.css linguist-vendored=false
+test.html linguist-vendored
diff --git a/django/core/static/core/lib/normalize-css/.gitignore b/django/core/static/core/lib/normalize-css/.gitignore
new file mode 100644
index 0000000..3c3629e
--- /dev/null
+++ b/django/core/static/core/lib/normalize-css/.gitignore
@@ -0,0 +1 @@
+node_modules
diff --git a/django/core/static/core/lib/normalize-css/.travis.yml b/django/core/static/core/lib/normalize-css/.travis.yml
new file mode 100644
index 0000000..833d09d
--- /dev/null
+++ b/django/core/static/core/lib/normalize-css/.travis.yml
@@ -0,0 +1,3 @@
+language: node_js
+node_js:
+ - stable
diff --git a/django/core/static/core/lib/normalize-css/LICENSE.md b/django/core/static/core/lib/normalize-css/LICENSE.md
new file mode 100644
index 0000000..43b5ddc
--- /dev/null
+++ b/django/core/static/core/lib/normalize-css/LICENSE.md
@@ -0,0 +1,21 @@
+# The MIT License (MIT)
+
+Copyright © Nicolas Gallagher and Jonathan Neal
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/django/core/static/core/lib/normalize-css/bower.json b/django/core/static/core/lib/normalize-css/bower.json
new file mode 100644
index 0000000..a3f1f81
--- /dev/null
+++ b/django/core/static/core/lib/normalize-css/bower.json
@@ -0,0 +1,13 @@
+{
+ "name": "normalize-css",
+ "description": "A modern alternative to CSS resets",
+ "main": "normalize.css",
+ "license": "MIT",
+ "ignore": [
+ "CHANGELOG.md",
+ "CONTRIBUTING.md",
+ "package.json",
+ "README.md",
+ "test.html"
+ ]
+}
diff --git a/django/core/static/core/lib/normalize-css/normalize.css b/django/core/static/core/lib/normalize-css/normalize.css
new file mode 100644
index 0000000..fa4e73d
--- /dev/null
+++ b/django/core/static/core/lib/normalize-css/normalize.css
@@ -0,0 +1,447 @@
+/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
+
+/* Document
+ ========================================================================== */
+
+/**
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in
+ * IE on Windows Phone and in iOS.
+ */
+
+html {
+ line-height: 1.15; /* 1 */
+ -ms-text-size-adjust: 100%; /* 2 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/* Sections
+ ========================================================================== */
+
+/**
+ * Remove the margin in all browsers (opinionated).
+ */
+
+body {
+ margin: 0;
+}
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+article,
+aside,
+footer,
+header,
+nav,
+section {
+ display: block;
+}
+
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/* Grouping content
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ * 1. Add the correct display in IE.
+ */
+
+figcaption,
+figure,
+main { /* 1 */
+ display: block;
+}
+
+/**
+ * Add the correct margin in IE 8.
+ */
+
+figure {
+ margin: 1em 40px;
+}
+
+/**
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
+ */
+
+hr {
+ box-sizing: content-box; /* 1 */
+ height: 0; /* 1 */
+ overflow: visible; /* 2 */
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+pre {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/* Text-level semantics
+ ========================================================================== */
+
+/**
+ * 1. Remove the gray background on active links in IE 10.
+ * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
+ */
+
+a {
+ background-color: transparent; /* 1 */
+ -webkit-text-decoration-skip: objects; /* 2 */
+}
+
+/**
+ * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+ */
+
+abbr[title] {
+ border-bottom: none; /* 1 */
+ text-decoration: underline; /* 2 */
+ text-decoration: underline dotted; /* 2 */
+}
+
+/**
+ * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
+ */
+
+b,
+strong {
+ font-weight: inherit;
+}
+
+/**
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+code,
+kbd,
+samp {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/**
+ * Add the correct font style in Android 4.3-.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Add the correct background and color in IE 9-.
+ */
+
+mark {
+ background-color: #ff0;
+ color: #000;
+}
+
+/**
+ * Add the correct font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/* Embedded content
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+audio,
+video {
+ display: inline-block;
+}
+
+/**
+ * Add the correct display in iOS 4-7.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Remove the border on images inside links in IE 10-.
+ */
+
+img {
+ border-style: none;
+}
+
+/**
+ * Hide the overflow in IE.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* Forms
+ ========================================================================== */
+
+/**
+ * 1. Change the font styles in all browsers (opinionated).
+ * 2. Remove the margin in Firefox and Safari.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: sans-serif; /* 1 */
+ font-size: 100%; /* 1 */
+ line-height: 1.15; /* 1 */
+ margin: 0; /* 2 */
+}
+
+/**
+ * Show the overflow in IE.
+ * 1. Show the overflow in Edge.
+ */
+
+button,
+input { /* 1 */
+ overflow: visible;
+}
+
+/**
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 1. Remove the inheritance of text transform in Firefox.
+ */
+
+button,
+select { /* 1 */
+ text-transform: none;
+}
+
+/**
+ * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
+ * controls in Android 4.
+ * 2. Correct the inability to style clickable types in iOS and Safari.
+ */
+
+button,
+html [type="button"], /* 1 */
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+}
+
+/**
+ * Remove the inner border and padding in Firefox.
+ */
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ border-style: none;
+ padding: 0;
+}
+
+/**
+ * Restore the focus styles unset by the previous rule.
+ */
+
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+
+/**
+ * Correct the padding in Firefox.
+ */
+
+fieldset {
+ padding: 0.35em 0.75em 0.625em;
+}
+
+/**
+ * 1. Correct the text wrapping in Edge and IE.
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
+ * 3. Remove the padding so developers are not caught out when they zero out
+ * `fieldset` elements in all browsers.
+ */
+
+legend {
+ box-sizing: border-box; /* 1 */
+ color: inherit; /* 2 */
+ display: table; /* 1 */
+ max-width: 100%; /* 1 */
+ padding: 0; /* 3 */
+ white-space: normal; /* 1 */
+}
+
+/**
+ * 1. Add the correct display in IE 9-.
+ * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
+
+progress {
+ display: inline-block; /* 1 */
+ vertical-align: baseline; /* 2 */
+}
+
+/**
+ * Remove the default vertical scrollbar in IE.
+ */
+
+textarea {
+ overflow: auto;
+}
+
+/**
+ * 1. Add the correct box sizing in IE 10-.
+ * 2. Remove the padding in IE 10-.
+ */
+
+[type="checkbox"],
+[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Correct the cursor style of increment and decrement buttons in Chrome.
+ */
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * 1. Correct the odd appearance in Chrome and Safari.
+ * 2. Correct the outline style in Safari.
+ */
+
+[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ outline-offset: -2px; /* 2 */
+}
+
+/**
+ * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+ */
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * 1. Correct the inability to style clickable types in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button; /* 1 */
+ font: inherit; /* 2 */
+}
+
+/* Interactive
+ ========================================================================== */
+
+/*
+ * Add the correct display in IE 9-.
+ * 1. Add the correct display in Edge, IE, and Firefox.
+ */
+
+details, /* 1 */
+menu {
+ display: block;
+}
+
+/*
+ * Add the correct display in all browsers.
+ */
+
+summary {
+ display: list-item;
+}
+
+/* Scripting
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 9-.
+ */
+
+canvas {
+ display: inline-block;
+}
+
+/**
+ * Add the correct display in IE.
+ */
+
+template {
+ display: none;
+}
+
+/* Hidden
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 10-.
+ */
+
+[hidden] {
+ display: none;
+}
diff --git a/django/core/static/core/librejs.html b/django/core/static/core/librejs.html
new file mode 100644
index 0000000..7a43a7c
--- /dev/null
+++ b/django/core/static/core/librejs.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8">
+ <title>JavaScript license information</title>
+ <link rel="icon" href="./images/favicon.png" sizes="192x192" />
+ </head>
+ <body>
+ <table id="jslicense-labels1">
+ <tr>
+ <td><a href="./js/formulario.js">formulario.js</a></td>
+ <td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0-or-later</a></td>
+ <td><a href="./js/formulario.js">formulario.js</a></td>
+ </tr>
+ <tr>
+ <td><a href="./js/efectos.js">efectos.js</a></td>
+ <td><a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU-GPL-3.0-or-later</a></td>
+ <td><a href="./js/efectos.js">efectos.js</a></td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/django/core/static/core/sass/_front.sass b/django/core/static/core/sass/_front.sass
new file mode 100644
index 0000000..24f5309
--- /dev/null
+++ b/django/core/static/core/sass/_front.sass
@@ -0,0 +1,244 @@
+html
+ scroll-behavior: smooth
+
+body
+ background: #fff
+ font-family: "liberation serif", "times new roman", calibri, carlito, sans-serif, serif
+ font-size: 16px
+
+.contenedor
+ width: 90%
+ max-width: 1000px
+ margin: auto
+ overflow: hidden
+
+/* ---- ---- HEADER ---- ---- */
+
+header
+ background: url("./../images/BG.jpg") #68bdea
+ background-repeat: no-repeat
+ background-position: center
+ max-height: 600px
+ .menu
+ margin: 40px 0px
+ text-align: right
+ a
+ margin: 0px 20px
+ color: #fff
+ padding-bottom: 9px
+ display: inline-block
+ text-decoration: none
+ border-bottom: 2px solid transparent
+ font-size: 1rem
+ &:hover
+ border-bottom: 2px solid #fff
+ .contenedor-texto
+ display: flex
+ justify-content: center
+ align-content: center
+ margin: 190px 0px
+ .texto
+ border: 2px solid rgba(255, 255, 255, 0.5)
+ border-radius: 3px
+ display: inline-block
+ text-align: center
+ padding: 20px 60px
+ h1, h2
+ color: #fff
+ font-weight: 300
+ margin: 0px
+ .nombre
+ margin-bottom: 10px
+ font-size: 3.125rem
+ line-height: 50px
+ .profesion
+ font-size: 1.5rem
+ line-height: 25px
+
+/* ---- ---- MAIN ---- ---- */
+
+main
+ .contenedor
+ overflow: visible
+ .acerca-de
+ text-align: center
+ .foto
+ margin-top: -60px
+ img
+ vertical-align: top
+ border-radius: 50%
+ border: 5px solid rgba(255, 255, 255, 0.2)
+ .texto
+ color: #5a5a5a
+ font-weight: 600
+ font-size: 1rem
+ line-height: 30px
+ width: 80%
+ margin: 40px auto 60px auto
+ .titulo
+ font-size: 2.125rem
+ margin-bottom: 40px
+ font-weight: 300
+ color: #dd820d
+ text-align: center
+ .bold
+ color: #3895ea
+ text-decoration: underline
+ .trabajos
+ background: #f2f2f2
+ padding: 60px 0
+ .contenedor
+ overflow: hidden
+ .titulo
+ font-size: 2.125rem
+ line-height: 34px
+ margin-bottom: 40px
+ font-weight: 300
+ color: #323068
+ text-align: center
+ .contenedor-trabajos
+ display: flex
+ flex-direction: row
+ flex-wrap: wrap
+ justify-content: space-between
+ .trabajo
+ width: 23%
+ margin-bottom: 40px
+ .thumb
+ width: 100%
+ margin-bottom: 10px
+ img
+ width: 100%
+ vertical-align: top
+ border-radius: 3px
+ .descripcion
+ text-align: center
+ .nombre
+ font-weight: 700
+ color: #3895ea
+ margin-bottom: 10px
+ a
+ text-decoration: none
+ color: #3895ea
+ .categoria
+ font-size: 0.8rem
+ color: #636363
+
+/* ---- ---- FOOTER ---- ---- */
+
+footer
+ .contacto
+ padding: 60px 0
+ .titulo
+ font-size: 2.125rem
+ line-height: 34px
+ margin-bottom: 40px
+ font-weight: 300
+ color: #3895ea
+ text-align: center
+ .formulario
+ display: flex
+ flex-wrap: wrap
+ justify-content: space-between
+ input
+ &[type="text"], &[type="email"]
+ background: #f3f4f7
+ border: 2px solid #cecece
+ border-radius: 5px
+ padding: 15px 20px
+ font-size: 1.125rem
+ color: #a4a4a4
+ textarea
+ background: #f3f4f7
+ border: 2px solid #cecece
+ border-radius: 5px
+ padding: 15px 20px
+ font-size: 1.25rem
+ color: #a4a4a4
+ input
+ &[type="text"]:focus, &[type="email"]:focus
+ border: 2px solid #3895ea
+ textarea:focus
+ border: 2px solid #3895ea
+ input
+ &[type="text"], &[type="email"]
+ width: 45%
+ margin-bottom: 15px
+ textarea
+ width: 100%
+ height: 100px
+ max-width: 100%
+ min-height: 100px
+ max-height: 300px
+ margin-bottom: 15px
+ .error
+ display: none
+ margin-top: 20px
+ border-radius: 3px
+ background: #fc636b
+ color: #fff
+ padding: 15px 10px
+ padding-left: 40px
+ width: 100%
+ .boton
+ margin: auto
+ background: #3895ea
+ color: #fff
+ border: none
+ border-radius: 3px
+ padding: 15px 40px
+ cursor: pointer
+ &:hover
+ background: #387bea
+ .alert
+ &.success
+ color: #3895ea
+ white-space: pre-line
+ &.danger
+ color: #ee4c58
+ white-space: pre-line
+ .redes-sociales-libres
+ background: #1e2b38
+ padding: 60px 0
+ .contenedor
+ display: flex
+ justify-content: center
+ a
+ color: #fff
+ text-align: center
+ width: 100px
+ display: block
+ padding: 15px 0
+ border-radius: 3px
+ font-size: 1.8rem
+ margin: 0 20px
+ svg
+ fill: currentcolor
+ width: 24px
+ .diaspora:hover
+ background: #010101
+ .gnusocial:hover
+ background: #a42833
+ .gitlab:hover
+ background: #e24329
+ .libregit:hover
+ background: #333333
+ .mediagoblin:hover
+ background: #775fa3
+ .notabug:hover
+ background: #244664
+ .peertube:hover
+ background: #f1680d
+ .copyleft
+ background: #192633
+ padding: 5px 0
+ p
+ color: #fff
+ text-align: center
+ font-size: 0.75rem
+ a
+ color: #3895ea
+ text-decoration: none
+ svg
+ width: 0.5rem
+ fill: currentcolor
diff --git a/django/core/static/core/sass/_mediaqueries.sass b/django/core/static/core/sass/_mediaqueries.sass
new file mode 100644
index 0000000..4e521de
--- /dev/null
+++ b/django/core/static/core/sass/_mediaqueries.sass
@@ -0,0 +1,41 @@
+@media screen and (max-width: 985px)
+ footer .contacto .formulario input
+ &[type="text"], &[type="email"]
+ width: 44%
+
+@media screen and (max-width: 830px)
+ footer .contacto .formulario input
+ &[type="text"], &[type="email"]
+ width: 42%
+
+@media screen and (max-width: 800px)
+ header .menu
+ text-align: center
+ main .trabajos .contenedor-trabajos .trabajo
+ width: 46%
+ footer .contacto .formulario [type="text"], [type="email"]
+ width: 100%
+
+@media screen and (max-width: 630px)
+ footer .contacto .formulario input
+ &[type="text"], &[type="email"]
+ width: 100%
+
+@media screen and (max-width: 500px)
+ header .contenedor-texto .texto
+ .nombre
+ font-size: 35px
+ .profesion
+ font-size: 18px
+ footer .redes-sociales-libres .contenedor
+ flex-wrap: wrap
+ padding: 20px 0
+
+@media screen and (max-width: 320px)
+ footer .contacto .formulario input
+ &[type="text"], &[type="email"]
+ width: 84%
+ footer
+ .copyleft
+ p
+ font-size: 0.60rem
diff --git a/django/core/static/core/sass/estilos.sass b/django/core/static/core/sass/estilos.sass
new file mode 100644
index 0000000..39b6afa
--- /dev/null
+++ b/django/core/static/core/sass/estilos.sass
@@ -0,0 +1,8 @@
+// Estilos para Portafolio
+// License AGPLv3 or later
+
+/* ---- Frontend ---- */
+@import front
+
+/* ---- MEDIA QUERIES ---- */
+@import mediaqueries