├── favicon.ico ├── assets └── img │ ├── mario.jpg │ ├── mario-bg.jpg │ ├── peli_1.jpg │ ├── peli_10.jpg │ ├── peli_11.jpg │ ├── peli_12.jpg │ ├── peli_13.jpg │ ├── peli_14.jpg │ ├── peli_15.jpg │ ├── peli_16.jpg │ ├── peli_17.jpg │ ├── peli_18.jpg │ ├── peli_19.jpg │ ├── peli_2.jpg │ ├── peli_3.jpg │ ├── peli_4.jpg │ ├── peli_5.jpg │ ├── peli_6.jpg │ ├── peli_7.jpg │ ├── peli_8.jpg │ ├── peli_9.jpg │ ├── aclamada_1.jpg │ ├── aclamada_2.jpg │ ├── aclamada_3.jpg │ ├── aclamada_4.jpg │ ├── aclamada_5.jpg │ ├── aclamada_6.jpg │ ├── aclamada_7.jpg │ ├── aclamada_8.jpg │ ├── aclamada_9.jpg │ ├── banner-bg.jpg │ ├── aclamada_10.jpg │ ├── aclamada_11.jpg │ ├── aclamada_12.jpg │ ├── bg-register.jpg │ └── flecha-hacia-arriba.png ├── pages ├── iniciosesion.html ├── registrarse.html └── detalle.html ├── index.html ├── js ├── cargar_peliculas_index.js ├── valida_registrarse.js └── valida_iniciosesion.js ├── index_fijo.html └── css └── estilos.css /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/favicon.ico -------------------------------------------------------------------------------- /assets/img/mario.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/mario.jpg -------------------------------------------------------------------------------- /assets/img/mario-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/mario-bg.jpg -------------------------------------------------------------------------------- /assets/img/peli_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_1.jpg -------------------------------------------------------------------------------- /assets/img/peli_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_10.jpg -------------------------------------------------------------------------------- /assets/img/peli_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_11.jpg -------------------------------------------------------------------------------- /assets/img/peli_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_12.jpg -------------------------------------------------------------------------------- /assets/img/peli_13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_13.jpg -------------------------------------------------------------------------------- /assets/img/peli_14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_14.jpg -------------------------------------------------------------------------------- /assets/img/peli_15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_15.jpg -------------------------------------------------------------------------------- /assets/img/peli_16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_16.jpg -------------------------------------------------------------------------------- /assets/img/peli_17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_17.jpg -------------------------------------------------------------------------------- /assets/img/peli_18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_18.jpg -------------------------------------------------------------------------------- /assets/img/peli_19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_19.jpg -------------------------------------------------------------------------------- /assets/img/peli_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_2.jpg -------------------------------------------------------------------------------- /assets/img/peli_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_3.jpg -------------------------------------------------------------------------------- /assets/img/peli_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_4.jpg -------------------------------------------------------------------------------- /assets/img/peli_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_5.jpg -------------------------------------------------------------------------------- /assets/img/peli_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_6.jpg -------------------------------------------------------------------------------- /assets/img/peli_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_7.jpg -------------------------------------------------------------------------------- /assets/img/peli_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_8.jpg -------------------------------------------------------------------------------- /assets/img/peli_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/peli_9.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_1.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_2.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_3.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_4.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_5.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_6.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_7.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_8.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_9.jpg -------------------------------------------------------------------------------- /assets/img/banner-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/banner-bg.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_10.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_11.jpg -------------------------------------------------------------------------------- /assets/img/aclamada_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/aclamada_12.jpg -------------------------------------------------------------------------------- /assets/img/bg-register.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/bg-register.jpg -------------------------------------------------------------------------------- /assets/img/flecha-hacia-arriba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/giselemilagros88/proyecto_movies_cac/HEAD/assets/img/flecha-hacia-arriba.png -------------------------------------------------------------------------------- /pages/iniciosesion.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Iniciar Sesión | CAC-MOVIES 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 19 |
20 |
21 |
22 | 23 |
24 |

Iniciar Sesión

25 |
26 | 27 |
28 |
29 |
30 | 31 |
32 |
33 |
34 | 35 |
36 |
37 | Registrarse 38 |
39 |
40 |
41 |
42 | 43 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /pages/registrarse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Registro | CAC-MOVIES 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 19 |
20 |
21 |
22 |
23 |

Registro

24 |
25 | 26 |
27 |
28 |
29 | 30 |
31 |
32 |
33 | 34 |
35 |
36 |
37 | 38 |
39 |
40 |
41 | 42 |
43 |
44 |
45 | 58 |
59 |
60 |
61 | 62 | 63 |
64 |
65 |
66 | 67 |
68 |
69 | Necesitas ayuda? 70 |
71 |
72 |
73 |
74 | 75 | 78 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CAC-MOVIES 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 26 |
27 |
28 |
29 |

Películas y series ilimitadas
en un solo lugar

30 |

Disfruta donde quieras.
Cancela en cualquier momento.

31 | Registrate 32 |
33 |
34 |

¿Qué estas buscando para ver?

35 |
36 | 37 | 38 |
39 |
40 |
41 |
42 |

Las tendencias de hoy

43 |
44 | 45 |
46 | 47 | 48 |
49 |
50 |
51 |

Las más aclamadas

52 |
53 | 54 |
55 |
56 |
57 | 72 | 73 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /js/cargar_peliculas_index.js: -------------------------------------------------------------------------------- 1 | const API_SERVER = 'https://api.themoviedb.org/3'; 2 | const options = { 3 | method: 'GET', // Método de la petición (GET) 4 | headers: { 5 | accept: 'application/json', // Tipo de respuesta esperada (JSON) 6 | Authorization: 'Bearer eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJhYTJjYTAwZDYxZWIzOTEyYjZlNzc4MDA4YWQ3ZmNjOCIsInN1YiI6IjYyODJmNmYwMTQ5NTY1MDA2NmI1NjlhYyIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.4MJSPDJhhpbHHJyNYBtH_uCZh4o0e3xGhZpcBIDy-Y8' 7 | 8 | } 9 | }; 10 | 11 | // Función para cargar películas en la cuadrícula de tendencias 12 | const cargarPeliculasTendencia = async (page = 1) => { 13 | // Realizamos una petición fetch a la API para obtener las películas populares 14 | const response = await fetch(`${API_SERVER}/movie/popular?page=${page}`, options); 15 | const data = await response.json(); // Convertimos la respuesta a JSON 16 | const movies = data.results;// Extraemos las películas de la respuesta 17 | console.log(movies); 18 | const tendenciasContainer = document.querySelector('.peliculasTendencia .peliculas');// Seleccionamos el contenedor de películas de tendencia en el DOM, la section que tiene dentro el div peliculas 19 | tendenciasContainer.innerHTML = '';// Limpiamos el contenido previo del contenedor 20 | 21 | //* Iteramos sobre cada película obtenida y creamos los elementos HTML para mostrar la película teniendo que en cuenta que se debe respetar la siguiente estructura por los estilos: 22 | /* 23 |
24 | The Beekeeper 25 |
26 |

The Beekeeper

27 |
28 |
29 |
*/ 30 | movies.forEach(movie => { 31 | // creo el ancla 32 | const ancla = document.createElement('a'); 33 | ancla.href = './pages/detalle.html'; 34 | // creo el div pelicula 35 | const pelicula = document.createElement('div'); 36 | pelicula.classList.add('pelicula'); 37 | // creo la imagen 38 | const img = document.createElement('img'); 39 | img.classList.add('imgTendencia'); 40 | img.src = `https://image.tmdb.org/t/p/w500/${movie.poster_path}`; 41 | img.alt = movie.title; 42 | img.loading = 'lazy'; 43 | // creo el div tituloPelicula 44 | const tituloPelicula = document.createElement('div'); 45 | tituloPelicula.classList.add('tituloPelicula'); 46 | // creo el h4 47 | const titulo = document.createElement('h4'); 48 | titulo.textContent = movie.title; 49 | // relaciono los elementos 50 | ancla.appendChild(pelicula); 51 | pelicula.appendChild(img); 52 | pelicula.appendChild(tituloPelicula); 53 | tituloPelicula.appendChild(titulo); 54 | tendenciasContainer.appendChild(ancla); 55 | 56 | }); 57 | 58 | // Actualizamos el atributo data-page con el número de página actual 59 | tendenciasContainer.parentElement.setAttribute('data-page', page); 60 | }; 61 | 62 | // Función para cargar películas en el carrusel de películas aclamadas 63 | const cargarPeliculasAclamadas = async () => { 64 | // Realizamos una petición fetch a la API para obtener las películas más aclamadas 65 | const response = await fetch(`${API_SERVER}/movie/top_rated`, options); 66 | const data = await response.json();// Convertimos la respuesta a JSON 67 | const movies = data.results; // Extraemos las películas de la respuesta 68 | const aclamadasContainer = document.querySelector('.aclamadas'); // Seleccionamos el contenedor de películas aclamadas en el DOM 69 | 70 | // Iteramos sobre cada película obtenida para lograr la estructura de html que pongo a continuación: 71 | /*
72 | aclamada_1 73 |
*/ 74 | movies.forEach(movie => { 75 | // creo el div peliculaItem 76 | const peliculaItem = document.createElement('div'); 77 | peliculaItem.classList.add('peliculaItem'); 78 | // creo la imagen 79 | const img = document.createElement('img'); 80 | img.classList.add('imgAclamada'); 81 | img.src = `https://image.tmdb.org/t/p/w500/${movie.poster_path}`; 82 | img.alt = movie.title; 83 | img.loading = 'lazy'; 84 | // relaciono los elementos 85 | peliculaItem.appendChild(img); 86 | aclamadasContainer.appendChild(peliculaItem); 87 | }); 88 | }; 89 | 90 | const botonAnterior = document.getElementById('botonAnterior'); 91 | const botonSiguiente = document.getElementById('botonSiguiente'); 92 | const seccionTendencias = document.getElementById('tendencias'); 93 | 94 | // Event listener para el botón "Anterior" 95 | botonAnterior.addEventListener('click', () => { 96 | // Obtener el número de página actual 97 | let currentPage = Number(seccionTendencias.getAttribute('data-page')); 98 | // Si es la primera página, no hacemos nada 99 | if (currentPage <= 1) return; 100 | // Cargar las películas de la página anterior 101 | cargarPeliculasTendencia(currentPage - 1); 102 | }); 103 | 104 | // Event listener para el botón "Siguiente" 105 | botonSiguiente.addEventListener('click', () => { 106 | // Obtener el número de página actual 107 | let currentPage = Number(seccionTendencias.getAttribute('data-page')); 108 | // Cargar las películas de la página siguiente 109 | cargarPeliculasTendencia(currentPage + 1); 110 | }); 111 | 112 | // Ejecutamos las funciones de carga de películas al cargar la página 113 | document.addEventListener('DOMContentLoaded', () => { 114 | // Cargamos las películas en la cuadrícula de tendencias 115 | cargarPeliculasTendencia(); 116 | // Cargamos las películas en el carrusel de películas aclamadas 117 | cargarPeliculasAclamadas(); 118 | }); -------------------------------------------------------------------------------- /js/valida_registrarse.js: -------------------------------------------------------------------------------- 1 | /*Esta línea añade un evento al documento que se activa cuando el contenido HTML ha sido completamente cargado y parseado. En otras palabras, se ejecuta cuando el DOM está listo para ser manipulado.*/ 2 | document.addEventListener('DOMContentLoaded', () => { 3 | const form = document.querySelector('form'); 4 | /*Aquí se agrega un evento de escucha al formulario que se activa cuando se intenta enviar el formulario. */ 5 | form.addEventListener('submit', (event) => { 6 | if (!validateForm()) { 7 | console.log('El formulario no es válido. Por favor, corrige los errores.'); 8 | event.preventDefault(); // Esta línea evita que el formulario se envíe si hay errores de validación 9 | } else { 10 | console.log('El formulario es válido. Enviar datos...'); 11 | // Aquí puedes enviar los datos del formulario o realizar otras acciones 12 | } 13 | }); 14 | 15 | const validateForm = () => { 16 | let isValid = true; 17 | 18 | // Validar campo de nombre 19 | isValid = validateField('nombre', 'El nombre es obligatorio') && isValid; 20 | 21 | // Validar campo de apellido 22 | isValid = validateField('apellido', 'El apellido es obligatorio') && isValid; 23 | 24 | // Validar campo de email 25 | isValid = validateEmailField('email', 'El correo electrónico no es válido') && isValid; 26 | 27 | // Validar campo de contraseña 28 | isValid = validateField('password', 'La contraseña es obligatoria') && isValid; 29 | 30 | // Validar campo de fecha de nacimiento 31 | isValid = validateField('fechaNacimiento', 'La fecha de nacimiento es obligatoria') && isValid; 32 | 33 | // Validar campo de país 34 | isValid = validateField('pais', 'El país es obligatorio') && isValid; 35 | 36 | // Validar checkbox de términos y condiciones 37 | const terminos = document.getElementById('terminos').checked; 38 | if (!terminos) { 39 | isValid = false; 40 | setErrorFor(document.getElementById('terminos'), 'Debes aceptar los términos y condiciones'); 41 | } else { 42 | setSuccessFor(document.getElementById('terminos')); 43 | } 44 | 45 | return isValid; 46 | }; 47 | // recibe el id del campo y el mensaje de error y valida si el campo está vacío 48 | const validateField = (fieldId, errorMessage) => { 49 | const field = document.getElementById(fieldId);// levanta el elemento por su id 50 | const value = field.value.trim(); // al value se le quitan los espacios en blanco al principio y al final 51 | //valida si el campo está vacío 52 | if (value === '') { 53 | //invoca la función setErrorFor y le pasa el campo y el mensaje de error 54 | setErrorFor(field, errorMessage); 55 | return false; 56 | } else { 57 | //invoca la función setSuccessFor y le pasa el campo 58 | setSuccessFor(field); 59 | return true; 60 | } 61 | }; 62 | // recibe el campo y el mensaje de error y valida si el campo está vacío o si el email no es válido 63 | const validateEmailField = (fieldId, errorMessage) => { 64 | const field = document.getElementById(fieldId); 65 | const email = field.value.trim(); 66 | if (email === '') { 67 | setErrorFor(field, 'El correo electrónico es obligatorio'); 68 | return false; 69 | } else if (!isEmail(email)) { 70 | setErrorFor(field, errorMessage); 71 | return false; 72 | } else { 73 | setSuccessFor(field); 74 | return true; 75 | } 76 | }; 77 | 78 | // recibe el campo y el mensaje de error y agrega la clase error al div padre del campo y muestra el mensaje de error 79 | const setErrorFor = (input, message) => { 80 | // Obtiene el div padre del campo 81 | const formControl = input.closest('div'); 82 | //levanta por su clase el elemento que contiene el mensaje de error 83 | const errorText = formControl.querySelector('.error-text'); 84 | //agrega la clase error al div padre del campo 85 | formControl.classList.add('error'); 86 | //muestra el mensaje de error 87 | errorText.innerText = message; 88 | //pone el foco en el campo 89 | input.focus(); 90 | }; 91 | 92 | // recibe el campo y elimina la clase error del div padre del campo y el mensaje de error 93 | const setSuccessFor = (input) => { 94 | // Obtiene el div padre del campo 95 | const formControl = input.closest('div'); 96 | //quita la clase error al div padre del campo 97 | formControl.classList.remove('error'); 98 | //levanta por su clase el elemento que contiene el mensaje de error 99 | const errorText = formControl.querySelector('.error-text'); 100 | //elimina el mensaje de error 101 | errorText.innerText = ''; 102 | }; 103 | // funcion que valida si es un mail valido con una expresion regular 104 | const isEmail = (email) => { 105 | const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 106 | return re.test(email); 107 | }; 108 | // Agrega eventos para borrar las clases de error cuando se completa el input o se presiona Tab 109 | form.querySelectorAll('input').forEach(input => { 110 | input.addEventListener('input', () => { 111 | // Obtiene el valor del campo y elimina los espacios en blanco al principio y al final 112 | const value = input.value.trim(); 113 | // Si el campo no está vacío, elimina cualquier mensaje de error 114 | if (value !== '') { 115 | setSuccessFor(input); 116 | } 117 | }); 118 | }); 119 | // Agrega eventos para borrar las clases de error cuando se selecciona una opción del select 120 | form.querySelectorAll('select').forEach(select => { 121 | select.addEventListener('change', () => { 122 | // Obtiene el valor seleccionado del campo de selección 123 | const value = select.value; 124 | // Si se selecciona una opción, elimina cualquier mensaje de error 125 | if (value !== '') { 126 | setSuccessFor(select); 127 | } 128 | }); 129 | }); 130 | }); 131 | -------------------------------------------------------------------------------- /pages/detalle.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Detalle | CAC-MOVIES 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 26 |
27 |
28 |
29 |
30 |
31 | mario pelicula 2023 32 |
33 |
34 |

The Super Mario Bros. Movie (2023)

35 |

04/05/2023 • Animation, Family, Adventure, Fantasy, Comedy • 1h 33m

36 |

Overview

37 |

While working underground to fix a water main, Brooklyn plumbers—and brothers—Mario and Luigi are transported down a mysterious pipe and wander into a magical new world. But when the brothers are separated, Mario embarks on an epic quest to find Luigi.

38 |
39 |
40 |

Aaron Horvath

41 |

Director

42 |
43 |
44 |

Michael Jelenic

45 |

Director

46 |
47 |
48 |

Matthew Fogel

49 |

Writer

50 |
51 |
52 | 53 |
54 |
55 | 56 | 57 |
58 | 59 |
60 |
61 |

Ver trailer

62 | 63 |
64 |
65 |
66 |
    67 |
  • 68 |
  • 69 |
  • 70 |
  • 71 |
72 |
73 |
74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 |
Info
StatusReleased
Original LanguageEnglish
Budget $100.000.000,00
Revenue $1.347.013.866,00
99 |
100 | 101 |
102 | 103 |
104 | 105 |
106 | 121 | 122 | 125 | 126 | -------------------------------------------------------------------------------- /js/valida_iniciosesion.js: -------------------------------------------------------------------------------- 1 | // Espera a que el DOM se cargue completamente 2 | document.addEventListener('DOMContentLoaded', () => { 3 | // Selecciona el formulario en el DOM 4 | const form = document.querySelector('form'); 5 | // Agrega un evento de escucha para cuando se envía el formulario 6 | form.addEventListener('submit', (event) => { 7 | // Si la validación del formulario no es exitosa 8 | if (!validateForm()) { 9 | // Muestra un mensaje en la consola indicando que el formulario no es válido 10 | console.log('El formulario no es válido. Por favor, corrige los errores.'); 11 | // Evita que el formulario se envíe 12 | event.preventDefault(); // Evita que el formulario se envíe si hay errores de validación 13 | } else { 14 | // Si la validación del formulario es exitosa, muestra un mensaje en la consola 15 | console.log('El formulario es válido. Enviar datos...'); 16 | // Aquí puedes enviar los datos del formulario o realizar otras acciones 17 | } 18 | }); 19 | 20 | // Función para validar todo el formulario 21 | const validateForm = () => { 22 | let isValid = true; 23 | isValid = validateEmailField('email', 'El correo electrónico no es válido') && isValid; // Validar campo de email 24 | isValid = validateField('password', 'La contraseña es obligatoria') && isValid; // Validar campo de contraseña 25 | return isValid; 26 | }; 27 | 28 | // Función para validar un campo específico 29 | const validateField = (fieldId, errorMessage) => { 30 | const field = document.getElementById(fieldId); // Obtiene el elemento del campo mediante su ID 31 | const value = field.value.trim(); // Obtiene el valor del campo y elimina los espacios en blanco al principio y al final 32 | // Si el valor del campo está vacío 33 | if (value === '') { 34 | setErrorFor(field, errorMessage); // Establece un mensaje de error para el campo 35 | return false; // Devuelve false indicando que la validación ha fallado 36 | } else { 37 | setSuccessFor(field); // Si el valor del campo no está vacío, elimina cualquier mensaje de error anterior 38 | return true; // Devuelve true indicando que la validación ha tenido éxito 39 | } 40 | }; 41 | 42 | // Función para validar el campo de correo electrónico 43 | const validateEmailField = (fieldId, errorMessage) => { 44 | // Obtiene el elemento del campo de correo electrónico mediante su ID 45 | const field = document.getElementById(fieldId); 46 | // Obtiene el valor del campo y elimina los espacios en blanco al principio y al final 47 | const email = field.value.trim(); 48 | // Si el campo de correo electrónico está vacío 49 | if (email === '') { 50 | // Establece un mensaje de error para el campo de correo electrónico 51 | setErrorFor(field, 'El correo electrónico es obligatorio'); 52 | // Devuelve false indicando que la validación ha fallado 53 | return false; 54 | // Si el campo de correo electrónico no está vacío pero no es válido 55 | } else if (!isEmail(email)) { 56 | // Establece un mensaje de error para el campo de correo electrónico 57 | setErrorFor(field, errorMessage); 58 | // Devuelve false indicando que la validación ha fallado 59 | return false; 60 | } else { 61 | // Si el campo de correo electrónico es válido, elimina cualquier mensaje de error anterior 62 | setSuccessFor(field); 63 | // Devuelve true indicando que la validación ha tenido éxito 64 | return true; 65 | } 66 | }; 67 | 68 | // Función para establecer un mensaje de error en un campo 69 | const setErrorFor = (input, message) => { 70 | // Encuentra el elemento padre del campo de entrada 71 | const formControl = input.closest('div'); 72 | // Encuentra el elemento de texto de error dentro del elemento padre 73 | const errorText = formControl.querySelector('.error-text'); 74 | // Agrega la clase de error al elemento padre para resaltar el campo 75 | formControl.classList.add('error'); 76 | // Establece el texto del mensaje de error 77 | errorText.innerText = message; 78 | // Establece el foco en el campo de entrada para una corrección rápida 79 | input.focus(); 80 | }; 81 | 82 | // Función para eliminar un mensaje de error de un campo 83 | const setSuccessFor = (input) => { 84 | // Encuentra el elemento padre del campo de entrada 85 | const formControl = input.closest('div'); 86 | // Elimina la clase de error del elemento padre 87 | formControl.classList.remove('error'); 88 | // Encuentra el elemento de texto de error dentro del elemento padre 89 | const errorText = formControl.querySelector('.error-text'); 90 | // Establece el texto de error como vacío 91 | errorText.innerText = ''; 92 | }; 93 | 94 | // Función para validar si una cadena es una dirección de correo electrónico válida 95 | const isEmail = (email) => { 96 | // Expresión regular para validar el formato de correo electrónico 97 | const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 98 | // Verifica si el correo electrónico cumple con el formato 99 | return re.test(email); 100 | }; 101 | // Agrega eventos para borrar las clases de error cuando se completa el input o se presiona Tab 102 | form.querySelectorAll('input').forEach(input => { 103 | input.addEventListener('input', () => { 104 | // Obtiene el valor del campo y elimina los espacios en blanco al principio y al final 105 | const value = input.value.trim(); 106 | // Si el campo no está vacío, elimina cualquier mensaje de error 107 | if (value !== '') { 108 | setSuccessFor(input); 109 | } 110 | }); 111 | }); 112 | // Agrega eventos para borrar las clases de error cuando se selecciona una opción del select 113 | form.querySelectorAll('select').forEach(select => { 114 | select.addEventListener('change', () => { 115 | // Obtiene el valor seleccionado del campo de selección 116 | const value = select.value; 117 | // Si se selecciona una opción, elimina cualquier mensaje de error 118 | if (value !== '') { 119 | setSuccessFor(select); 120 | } 121 | }); 122 | }); 123 | 124 | 125 | }); 126 | 127 | 128 | -------------------------------------------------------------------------------- /index_fijo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CAC-MOVIES 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 26 |
27 |
28 |
29 |

Películas y series ilimitadas
en un solo lugar

30 |

Disfruta donde quieras.
Cancela en cualquier momento.

31 | Registrate 32 |
33 |
34 |

¿Qué estas buscando para ver?

35 |
36 | 37 | 38 |
39 | 40 | 41 |
42 |
43 |
44 |

Las tendencias de hoy

45 | 179 | 180 | 181 |
182 |
183 |
184 |

Las más aclamadas

185 |
186 |
187 | aclamada_1 188 |
189 |
190 | aclamada_2 191 |
192 |
193 | aclamada_3 194 |
195 |
196 | aclamada_4 197 |
198 |
199 | aclamada_5 200 |
201 |
202 | aclamada_6 203 |
204 |
205 | aclamada_7 206 |
207 |
208 | aclamada_8 209 |
210 |
211 | aclamada_9 212 |
213 |
214 | aclamada_10 215 |
216 |
217 | aclamada_11 218 |
219 |
220 | aclamada_12 221 |
222 |
223 |
224 | 225 |
226 | 241 | 242 | 245 | 246 | -------------------------------------------------------------------------------- /css/estilos.css: -------------------------------------------------------------------------------- 1 | *{ 2 | margin: 0; 3 | padding: 0; 4 | box-sizing: border-box; 5 | font-family: 'Nunito', sans-serif; 6 | } 7 | @keyframes tilt-n-move-shaking { 8 | 0% { transform: translate(0, 0) rotate(0deg); } 9 | 25% { transform: translate(5px, 5px) rotate(5deg); } 10 | 50% { transform: translate(0, 0) rotate(0eg); } 11 | 75% { transform: translate(-5px, 5px) rotate(-5deg); } 12 | 100% { transform: translate(0, 0) rotate(0deg); } 13 | } 14 | /* width */ 15 | ::-webkit-scrollbar { 16 | width: 10px; 17 | } 18 | 19 | /* Track */ 20 | ::-webkit-scrollbar-track { 21 | background: rgb(23, 23, 23); 22 | } 23 | 24 | /* Handle */ 25 | ::-webkit-scrollbar-thumb { 26 | background: #9f3647; 27 | } 28 | 29 | /* Handle on hover */ 30 | ::-webkit-scrollbar-thumb:hover { 31 | background:#9f3647; 32 | } 33 | body{ 34 | background-color: #181419; 35 | color:white; 36 | /* scrollbar-color: #9f3647 #181419; /*nuevo 37 | scrollbar-width: thin;*/ 38 | } 39 | 40 | /*ESTILOS HEADER PARA ESCRITORIO*/ 41 | .header{ 42 | background-color:#9f3647; 43 | color:#ffffff; 44 | height: 10vh; 45 | position:sticky; 46 | top: 0; 47 | z-index:10; 48 | .navegacion{ 49 | display: flex; 50 | justify-content: space-between; 51 | align-items: center; 52 | margin-left:40px; 53 | margin-right: 40px; 54 | padding: 1.5rem 0; 55 | .anclaLogo{ 56 | text-decoration: none; 57 | color: #ffffff; 58 | font-weight: 700; 59 | font-size: 1.2rem; 60 | /*animacion hover*/ 61 | &:hover{ 62 | animation: tilt-n-move-shaking 0.25s infinite; 63 | } 64 | } 65 | .listaNav{ 66 | list-style: none; 67 | display: flex; 68 | align-items: center; 69 | .listaItem{ 70 | margin-right:20px; 71 | .linkNav{ 72 | text-decoration: none; 73 | color:#ffffff; 74 | font-weight: 700; 75 | font-size: 1.1rem; 76 | padding: 0.5rem 1rem; 77 | /* Agregar efecto de botón presionado */ 78 | transition: transform 0.3s, box-shadow 0.3s; 79 | &:hover { 80 | transform: scale(0.95); 81 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); 82 | border-radius: 5px; 83 | } 84 | } 85 | .linkNav.iniciarSesion{ 86 | background-color: #181419; 87 | color: white; 88 | 89 | border-radius: 5px; 90 | /* Agregar efecto de botón presionado */ 91 | transition: transform 0.3s, box-shadow 0.3s; 92 | &:hover { 93 | background-color: #9f3647; 94 | /* transform: scale(0.95); 95 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);*/ 96 | } 97 | } 98 | } 99 | 100 | } 101 | } 102 | 103 | } 104 | /*ESTILOS PARA HEADER MOBILE Y TABLET*/ 105 | 106 | @media (max-width: 768px) { 107 | .header{ 108 | height: initial; 109 | .navegacion{ 110 | margin-left:10px; 111 | margin-right: 10px; 112 | flex-direction: column; 113 | row-gap: 20px; 114 | .anclaLogo{ 115 | font-size: 1.2rem; 116 | font-weight:700; 117 | } 118 | .listaNav{ 119 | 120 | padding:initial; 121 | .listaItem{ 122 | .linkNav{ 123 | font-weight: 400; 124 | margin-right: initial; 125 | font-size: 1rem; 126 | padding: 0.2rem; 127 | 128 | } 129 | 130 | } 131 | } 132 | } 133 | } 134 | } 135 | /*ESTILOS PARA MAIN ESCRITORIO*/ 136 | .main{ 137 | .sectionPrincipal{ 138 | color:white; 139 | background:linear-gradient(to right top, #0000008a, #0000008a), url(../assets/img/banner-bg.jpg); 140 | background-size: cover; 141 | background-position: center; 142 | height: 90vh; 143 | display: flex; 144 | flex-direction: column; 145 | justify-content: center; 146 | align-items: center; 147 | text-align: center; 148 | .tituloPrincipal{ 149 | font-size: 4rem; 150 | font-weight: 700; 151 | margin-bottom: 1rem; 152 | } 153 | .subtituloPrincipal{ 154 | font-size: 2.2rem; 155 | font-weight: 400; 156 | margin-bottom: 1rem; 157 | } 158 | .botonRegistrarse{ 159 | background-color:#9f3647; 160 | color: #ffffff; 161 | padding: 1rem 2rem; 162 | border-radius: 5px; 163 | font-size: 1.2rem; 164 | font-weight: 700; 165 | text-decoration: none; 166 | /* Agregar efecto de botón presionado */ 167 | transition: transform 0.3s, box-shadow 0.3s; 168 | &:hover { 169 | background-color: #9f3647; 170 | transform: scale(0.95); 171 | box-shadow: 0 0 10px rgba(255, 255, 255, 0.3); 172 | } 173 | } 174 | } 175 | .buscadorPrincipal{ 176 | background-color: #181419; 177 | color:rgb(255, 255, 255); 178 | height: 50vh; 179 | display: flex; 180 | flex-direction: column; 181 | justify-content: center; 182 | align-items: center; 183 | 184 | .tituloSection{ 185 | font-size: 2.5rem; 186 | font-weight: 700; 187 | margin-bottom: 1rem; 188 | } 189 | .buscadorPeliculas{ 190 | display: flex; 191 | justify-content: center; 192 | align-items: center; 193 | margin-top: 1rem; 194 | .inputBuscador{ 195 | border: 2px solid white; 196 | border-radius: 25px; 197 | color: #000000; 198 | font-size: 1.2rem; 199 | height: 50px; 200 | margin: 20px 0px; 201 | outline: none; 202 | padding: 0px 20px; 203 | width: 500px; 204 | } 205 | .botonBuscador{ 206 | background-color:#9f3647; 207 | display: inline-block; 208 | color:#ffffff; 209 | height: 50px; 210 | margin: 20px 10px; 211 | padding:0 20px; 212 | border-radius: 25px; 213 | font-size: 1.2rem; 214 | font-weight: 700; 215 | border: 2px solid white; 216 | text-align: center; 217 | /* Agregar efecto de botón presionado */ 218 | transition: transform 0.3s, box-shadow 0.3s; 219 | &:hover { 220 | background-color: #9f3647; 221 | transform: scale(0.95); 222 | box-shadow: 0 0 10px rgba(255, 255, 255, 0.3); 223 | } 224 | } 225 | } 226 | 227 | } 228 | .peliculasTendencia{ 229 | width:80%; 230 | margin: 0 auto; 231 | text-align: center; 232 | margin-top: 10px; 233 | .tituloSection{ 234 | font-size: 2.5rem; 235 | font-weight: 700; 236 | margin-bottom: 40px; 237 | } 238 | .peliculas{ 239 | display: flex; 240 | justify-content: center; 241 | flex-wrap: wrap; 242 | gap:60px; 243 | a{ 244 | text-decoration: none; 245 | color: #ffffff; 246 | .pelicula{ 247 | width:200px; 248 | height: 300px; 249 | position: relative; 250 | overflow: hidden; 251 | border-radius: 10px; 252 | transition: all 0.5s ease; 253 | 254 | .imgTendencia{ 255 | width: 100%; 256 | height: 100%; 257 | object-fit: cover; 258 | border-radius: 10px; 259 | 260 | } 261 | 262 | .tituloPelicula{ 263 | z-index: 2; 264 | position: absolute; 265 | text-align: center; 266 | top: 50%; 267 | left: 50%; 268 | max-width: 20rem; 269 | width: 100%; 270 | transform: translateY(-50%) translateX(-50%); 271 | h4 { 272 | font-size: 1.6rem; 273 | font-weight: bold; 274 | opacity: 0; 275 | margin-bottom: 0.5rem; 276 | letter-spacing: 0.1rem; 277 | transition: opacity 0.5s ease-in-out; 278 | 279 | } 280 | } 281 | &:hover{ 282 | box-shadow: 0 0 30px #9f3648cd; 283 | transform: scale(0.9); 284 | 285 | } 286 | &:hover .tituloPelicula{ 287 | width: 100%; 288 | height: 100%; 289 | backdrop-filter: blur(20px); 290 | display: flex; 291 | justify-content: center; 292 | align-items: center; 293 | } 294 | &:hover h4 { 295 | width: 100%; 296 | padding: 0.5rem; 297 | opacity: 1; 298 | } 299 | 300 | } 301 | } 302 | 303 | } 304 | .boton{ 305 | border: 1px solid white; 306 | box-sizing: content-box; 307 | margin-top:50px; 308 | margin-left:20px; 309 | background-color:#9f3647; 310 | color: #ffffff; 311 | padding: 1rem 1rem; 312 | border-radius: 5px; 313 | font-size: 1rem; 314 | font-weight: 500; 315 | text-decoration: none; 316 | margin-bottom:60px; 317 | /* Agregar efecto de botón presionado */ 318 | transition: transform 0.3s, box-shadow 0.3s; 319 | &:hover { 320 | background-color: #9f3647; 321 | transform: scale(0.95); 322 | box-shadow: 0 0 10px rgba(255, 255, 255, 0.3); 323 | } 324 | 325 | } 326 | } 327 | .peliculasAclamadas{ 328 | width:80%; 329 | margin: 0 auto; 330 | text-align: center; 331 | margin-top: 10px; 332 | margin-bottom:60px; 333 | .tituloSection{ 334 | font-size: 2.5rem; 335 | font-weight: 700; 336 | margin-bottom: 40px; 337 | } 338 | .aclamadas{ 339 | overflow-x: scroll; 340 | overflow-y: hidden; 341 | width: 100%; 342 | display: flex; 343 | justify-content: flex-start; 344 | align-items: flex-start; 345 | padding: 0px 0px 40px 0px; 346 | .peliculaItem{ 347 | border-radius: 25px; 348 | width: 170px; 349 | min-width: 170px; 350 | font-size: 20px; 351 | cursor: pointer; 352 | margin-left: 30px; 353 | display: flex; 354 | flex-direction: column; 355 | justify-content: space-between; 356 | 357 | .imgAclamada{ 358 | border-radius: 5%; 359 | width: 95%; 360 | height: 95%; 361 | object-fit: cover; 362 | } 363 | 364 | } 365 | 366 | 367 | } 368 | } 369 | 370 | } 371 | 372 | @media (max-width: 768px) { 373 | .main{ 374 | .sectionPrincipal{ 375 | height: 60vh; 376 | .tituloPrincipal{ 377 | font-size: 2.5rem; 378 | } 379 | .subtituloPrincipal{ 380 | font-size: 1.5rem; 381 | } 382 | .botonRegistrarse{ 383 | padding: 0.8rem 1.5rem; 384 | font-size: 1rem; 385 | } 386 | } 387 | .buscadorPrincipal{ 388 | height: 30vh; 389 | .tituloSection{ 390 | font-size: 1.6rem; 391 | } 392 | .buscadorPeliculas{ 393 | .inputBuscador{ 394 | font-size: 1rem; 395 | height: 40px; 396 | width: 300px; 397 | } 398 | .botonBuscador{ 399 | height: 40px; 400 | padding:0 15px; 401 | font-size: 1rem; 402 | } 403 | } 404 | } 405 | .peliculasTendencia{ 406 | width: 95%; 407 | .tituloSection{ 408 | font-size: 2rem; 409 | } 410 | .peliculas{ 411 | flex-direction: column; 412 | justify-content: center; 413 | align-items: center; 414 | 415 | a{ 416 | width: 100%; 417 | .pelicula{ 418 | width: 100%; 419 | height: 500px; 420 | 421 | .tituloPelicula{ 422 | h4 { 423 | font-size: 1rem; 424 | } 425 | } 426 | 427 | } 428 | } 429 | 430 | 431 | } 432 | .boton{ 433 | padding: 0.8rem 0.8rem; 434 | font-size: 0.8rem; 435 | } 436 | } 437 | .peliculasAclamadas{ 438 | .tituloSection{ 439 | font-size: 2rem; 440 | } 441 | .aclamadas{ 442 | .peliculaItem{ 443 | width: 150px; 444 | min-width: 150px; 445 | font-size: 15px; 446 | margin-left: 20px; 447 | .imgAclamada{ 448 | width: 90%; 449 | height: 90%; 450 | } 451 | } 452 | } 453 | } 454 | } 455 | } 456 | 457 | /*ESTILOS ESCRITORIO FOOTER*/ 458 | .footer{ 459 | padding:20px; 460 | background-color:#9f3647; 461 | color:#ffffff; 462 | height: 18vh; 463 | display:flex; 464 | flex-direction: column; 465 | justify-content: space-between; 466 | align-items: center; 467 | gap:20px; 468 | .navegacion{ 469 | display: flex; 470 | justify-content: center; 471 | align-items: center; 472 | .listaNav{ 473 | list-style: none; 474 | display: flex; 475 | align-items: center; 476 | .listaItem{ 477 | margin-left:20px; 478 | .linkNav{ 479 | text-decoration: none; 480 | color:#ffffff; 481 | font-weight: 700; 482 | font-size: 1.2rem; 483 | } 484 | .administradorPeliculas{ 485 | background-color: #181419; 486 | color: white; 487 | padding: 0.5rem 1rem; 488 | border-radius: 5px; 489 | } 490 | } 491 | } 492 | } 493 | .flechaArriba{ 494 | position: fixed; 495 | bottom: 20px; 496 | right: 20px; 497 | color: white; 498 | cursor: pointer; 499 | } 500 | .aportes,.video{ 501 | font-size: 14px; 502 | } 503 | } 504 | /*ESTILOS FOOTER CELULAR Y TABLET CHICA*/ 505 | @media (max-width: 768px) { 506 | .footer{ 507 | height: initial; 508 | padding-top:15px; 509 | padding-bottom: 20px; 510 | .listaNav{ 511 | flex-direction: column; 512 | 513 | row-gap: 15px; 514 | .listaItem{ 515 | 516 | .linkNav{ 517 | font-size: 1rem; 518 | } 519 | .administradorPeliculas{ 520 | padding: 0.5rem 0.8rem; 521 | } 522 | } 523 | } 524 | } 525 | } 526 | 527 | 528 | 529 | 530 | /*ESTILOS ESCRITORIO PARA PAGINA Registrarse */ 531 | .bodyRegistrarse{ 532 | height: 100vh; 533 | background:linear-gradient(to right top, #24242473,#24242473),url("../assets/img/bg-register.jpg"); 534 | background-size: cover; 535 | background-position: center; 536 | .headerRegistrarse{ 537 | color:#ffffff; 538 | height: 8vh; 539 | padding:30px; 540 | .anclaLogo{ 541 | text-decoration: none; 542 | color: #ffffff; 543 | font-weight: 700; 544 | font-size: 1.2rem; 545 | /*animacion hover*/ 546 | &:hover{ 547 | animation: tilt-n-move-shaking 0.25s infinite; 548 | } 549 | } 550 | } 551 | .main{ 552 | /*seccion de registrarse.html*/ 553 | .seccionRegistrarse{ 554 | background-color:rgb(42, 42, 42); 555 | width: 30%; 556 | margin:0 auto; 557 | border-radius: 5px; 558 | padding: 40px 20px; 559 | display: flex; 560 | flex-direction:column; 561 | justify-content: center; 562 | align-items: center; 563 | height: 90vh; 564 | font-size:1.2rem; 565 | .tituloRegistrarse{ 566 | font-size: 2.5rem; 567 | font-weight: 700; 568 | margin-bottom: 20px; 569 | } 570 | /*seleccionar todos los input menos el checkbox*/ 571 | form{ 572 | width: 100%; 573 | padding:40px; 574 | input:not(.check,.boton),select{ 575 | width: 100%; 576 | margin-bottom: 10px; 577 | height: 40px; 578 | padding: 0px 20px; 579 | font-size: 1.2rem; 580 | border-radius: 20px; 581 | border: 2px solid #9f3647; 582 | background-color: #333333; 583 | outline: none; 584 | color:rgb(255, 255, 255); 585 | } 586 | .error input:not(.check,.boton),.error select{ 587 | border: 1px solid #ff0000; 588 | } 589 | .error-text{ 590 | color: #ff0000; 591 | font-size: 0.8rem; 592 | margin-top:0px; 593 | margin-bottom: 10px; 594 | } 595 | 596 | .terminos{ 597 | font-size: 0.8rem; 598 | display: flex; 599 | align-items: center; 600 | margin-bottom: 20px; 601 | .textoCheck{ 602 | margin-left: 10px; 603 | } 604 | } 605 | .boton{ 606 | width: 87%; 607 | box-sizing: content-box; 608 | background-color:#9f3647; 609 | border: 2px solid #9f3647; 610 | color: #ffffff; 611 | padding: 1rem 1rem; 612 | border-radius: 5px; 613 | font-size: 1rem; 614 | font-weight: 500; 615 | 616 | } 617 | .ayuda{ 618 | margin-top:40px; 619 | font-size: 1rem; 620 | text-decoration: none; 621 | color: #787878; 622 | font-weight:400; 623 | 624 | } 625 | } 626 | 627 | } 628 | 629 | } 630 | } 631 | 632 | 633 | 634 | /*media querys para mobile PAGINA registrarse*/ 635 | @media (max-width: 1200px) { 636 | .bodyRegistrarse{ 637 | .headerRegistrarse{ 638 | padding:20px; 639 | .anclaLogo{ 640 | font-size: 1rem; 641 | } 642 | } 643 | .main{ 644 | .seccionRegistrarse{ 645 | width: 95%; 646 | padding: 10px 10px; 647 | .tituloRegistrarse{ 648 | font-size: 2rem; 649 | } 650 | form{ 651 | width: 100%; 652 | text-align: center; 653 | 654 | input:not(.check,.boton),select{ 655 | width: 80%; 656 | height: 35px; 657 | font-size: 1rem; 658 | } 659 | .terminos{ 660 | width: 80%; 661 | margin:0 auto; 662 | font-size: 0.7rem; 663 | } 664 | .boton{ 665 | margin-top: 20px; 666 | margin-bottom: 20px; 667 | width: 70%; 668 | padding: 0.8rem 0.8rem; 669 | font-size: 0.8rem; 670 | } 671 | .ayuda{ 672 | text-align: left; 673 | font-size: 0.8rem; 674 | } 675 | } 676 | 677 | } 678 | } 679 | } 680 | 681 | } 682 | 683 | /*ESTILOS ESCRITORIO Detalle Mario*/ 684 | .mainDetalle{ 685 | 686 | .detalle{ 687 | padding-top:50px; 688 | background:linear-gradient(to right top, #6d6969a7, #6d6969a7),url("../assets/img/mario-bg.jpg"); 689 | background-size: cover; 690 | background-position: center; 691 | height: 70vh; 692 | .contenedorDetalle{ 693 | width:75%; 694 | margin: 0 auto; 695 | display: flex; 696 | justify-content: center; 697 | align-items: center; 698 | column-gap: 60px; 699 | img{ 700 | border-radius: 20px; 701 | } 702 | .textoDetalle{ 703 | h1{ 704 | font-size: 2.2rem; 705 | font-weight: 700; 706 | } 707 | h2{ 708 | margin-top:20px; 709 | } 710 | .contenedorCreditos{ 711 | margin-top:20px; 712 | display: flex; 713 | justify-content:space-between; 714 | } 715 | } 716 | } 717 | 718 | 719 | 720 | } 721 | .trailer{ 722 | padding-top:150px; 723 | padding-bottom: 100px; 724 | width:75%; 725 | margin: 0 auto; 726 | display: flex; 727 | justify-content: space-between; 728 | align-items: center; 729 | column-gap: 70px; 730 | .contenedorInfo{ 731 | .redes{ 732 | margin-bottom: 20px; 733 | ul{ 734 | list-style: none; 735 | display: flex; 736 | column-gap: 20px; 737 | li{ 738 | a{ 739 | text-decoration: none; 740 | color: #ffffff; 741 | font-size: 2.5rem; 742 | margin-right: 50px; 743 | } 744 | } 745 | 746 | } 747 | } 748 | .info{ 749 | table{ 750 | width: 100%; 751 | tr{ 752 | td{ 753 | font-size: 1.2rem; 754 | padding: 10px 0px; 755 | } 756 | } 757 | } 758 | } 759 | } 760 | } 761 | 762 | } 763 | /*ESTILOS MOBILE Y TABLETS DETALLE*/ 764 | @media screen and (max-width:1200px){ 765 | .mainDetalle{ 766 | .detalle{ 767 | height: initial; 768 | .contenedorDetalle{ 769 | flex-direction: column; 770 | row-gap: 20px; 771 | img{ 772 | width: 100%; 773 | height: 300px; 774 | } 775 | .textoDetalle{ 776 | h1{ 777 | font-size: 1.5rem; 778 | } 779 | h2{ 780 | font-size: 1rem; 781 | } 782 | .contenedorCreditos{ 783 | flex-direction: column; 784 | row-gap: 10px; 785 | } 786 | } 787 | } 788 | } 789 | .trailer{ 790 | width:95%; 791 | padding-top:50px; 792 | padding-bottom: 50px; 793 | flex-direction: column; 794 | row-gap: 20px; 795 | .contenedorTrailer{ 796 | width: 100%; 797 | h2{ 798 | margin-bottom: 20px; 799 | } 800 | iframe{ 801 | width: 100%; 802 | height: 300px; 803 | 804 | } 805 | } 806 | .contenedorInfo{ 807 | width: 100%; 808 | .redes{ 809 | width: 100% ; 810 | ul{ 811 | width: 100%; 812 | display: flex; 813 | justify-content: space-between; 814 | 815 | li{ 816 | a{ 817 | font-size: 2rem; 818 | margin-right: 20px; 819 | } 820 | } 821 | } 822 | } 823 | .info{ 824 | table{ 825 | tr{ 826 | td{ 827 | font-size: 1rem; 828 | } 829 | } 830 | } 831 | } 832 | } 833 | } 834 | } 835 | } 836 | 837 | hr{ 838 | border: 1px solid #9f3647; 839 | width: 80%; 840 | margin: 0 auto; 841 | margin-top: 40px; 842 | } --------------------------------------------------------------------------------