{"id":28181,"date":"2024-06-11T12:45:18","date_gmt":"2024-06-11T10:45:18","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=28181"},"modified":"2024-06-11T12:45:19","modified_gmt":"2024-06-11T10:45:19","slug":"creamos-una-ui-tipo-fallout-usando-css-moderno","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/","title":{"rendered":"Creamos una UI tipo Fallout usando CSS moderno"},"content":{"rendered":"\n<p>\u00bfTambi\u00e9n eres de prestar m\u00e1s atenci\u00f3n a las terminales y pantallas futuristas en pel\u00edculas y series de ciencia ficci\u00f3n que a sus tramas? Personalmente, tengo una verdadera pasi\u00f3n por este antiguo arte de <strong>imaginar y dise\u00f1ar la UX\/UI del futuro<\/strong>. Y no creo ser el \u00fanico \ud83e\udd13<\/p>\n\n\n\n<p>En este tutorial, nos inspiraremos en la <strong>UI de Fallout<\/strong> con el estilo retro-futurista del Pip-Boy 3000 para adentrarnos en algunas <strong>t\u00e9cnicas modernas y poco conocidas de CSS<\/strong> que pueden transformar una p\u00e1gina web en una verdadera experiencia o en una pantalla de ciencia ficci\u00f3n contenida en un accesorio impreso en 3D&#8230; \u00a1y sin olvidar la accesibilidad!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-creando-una-base-html-semantica\">Creando una base HTML sem\u00e1ntica<\/h3>\n\n\n\n<p>Para empezar, crearemos contenido b\u00e1sico usando etiquetas HTML sem\u00e1nticas. Aqu\u00ed tienes un ejemplo b\u00e1sico de HTML que usaremos para nuestra UI de Fallout:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-meta\">&lt;!DOCTYPE <span class=\"hljs-meta-keyword\">html<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">html<\/span> <span class=\"hljs-attr\">lang<\/span>=<span class=\"hljs-string\">\"es\"<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">charset<\/span>=<span class=\"hljs-string\">\"UTF-8\"<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">meta<\/span> <span class=\"hljs-attr\">name<\/span>=<span class=\"hljs-string\">\"viewport\"<\/span> <span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\"<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">title<\/span>&gt;<\/span>Interfaz Retro Futurista<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">title<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span> <span class=\"hljs-attr\">rel<\/span>=<span class=\"hljs-string\">\"stylesheet\"<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"style.css\"<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">head<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"retro-container scanline-effect\"<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">header<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">h1<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">h1<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">nav<\/span> <span class=\"hljs-attr\">role<\/span>=<span class=\"hljs-string\">\"navigation\"<\/span>&gt;<\/span>\n                <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ul<\/span>&gt;<\/span>\n                    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">li<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">a<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"#screen-1\"<\/span>&gt;<\/span>PANTALLA 1<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">a<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">li<\/span>&gt;<\/span>\n                <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">ul<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">nav<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">header<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">main<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">section<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"screen-1\"<\/span>&gt;<\/span>\n                <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">article<\/span>&gt;<\/span>\n                    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">header<\/span>&gt;<\/span>\n                        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">h2<\/span>&gt;<\/span>PANTALLA 1<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">h2<\/span>&gt;<\/span>\n                    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">header<\/span>&gt;<\/span>\n                    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div<\/span> <span class=\"hljs-attr\">class<\/span>=<span class=\"hljs-string\">\"content\"<\/span>&gt;<\/span>\n                        Lorem ipsum...\n                    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n                    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">figure<\/span>&gt;<\/span>\n                        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">img<\/span> <span class=\"hljs-attr\">src<\/span>=<span class=\"hljs-string\">\"url_illustration\"<\/span> <span class=\"hljs-attr\">alt<\/span>=<span class=\"hljs-string\">\"texto alternativo para la ilustraci\u00f3n\"<\/span>&gt;<\/span>\n                    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">figure<\/span>&gt;<\/span>\n                <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">article<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">section<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">main<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">footer<\/span>&gt;<\/span>\n            <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">p<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">p<\/span>&gt;<\/span>\n        <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">footer<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">div<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">body<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">html<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Este c\u00f3digo HTML crea una estructura b\u00e1sica sem\u00e1ntica con un encabezado, un contenido principal dividido en secciones y un pie de p\u00e1gina. La navegaci\u00f3n entre secciones se realiza a trav\u00e9s de los enlaces en el men\u00fa contenidos en la etiqueta nav para declarar expl\u00edcitamente su rol (y as\u00ed instruir, por ejemplo, a los lectores de pantalla u otras tecnolog\u00edas asistivas).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Manteniendo la responsividad y accesibilidad<\/h3>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\"><div class=\"wp-block-media-text__content\">\n<p>Debemos recordar que, por defecto, una p\u00e1gina HTML sin estilos pero bien estructurada ya es responsive y accesible: son las modificaciones que hacemos con CSS las que pueden introducir nuevos posibles problemas, por lo que es importante seguir el principio de menos es m\u00e1s y proceder paso a paso.<\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"849\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/no_style-e1718019021184-1024x849.png\" alt=\"Retro-Futuristic UI\" class=\"wp-image-28107 size-full\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/no_style-e1718019021184-1024x849.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/no_style-e1718019021184-300x249.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/no_style-e1718019021184-768x637.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/no_style-e1718019021184.png 1187w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Para nuestra interfaz, utilizaremos una estructura responsiva con una \u00e1rea central que sirve como contenedor para secciones que contienen elementos de art\u00edculo: incluso dentro de estos, es importante implementar sem\u00e1ntica y accesibilidad.<\/p>\n\n\n\n<p>En resumen, nuestra base sin CSS debe (como siempre) ser un ejemplo de rectitud y amor por los est\u00e1ndares web, idealmente obteniendo todas las puntuaciones m\u00e1ximas al usar herramientas como Google Lighthouse para evaluar accesibilidad y mejores pr\u00e1cticas. \ud83e\udef6<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tipografia-y-colores\">Tipograf\u00eda y colores<\/h3>\n\n\n\n<p>Cuando tengamos nuestro contenido b\u00e1sico, \u00a1podemos divertirnos encontrando una base est\u00e9tica inicial!<\/p>\n\n\n\n<p>Elijamos una fuente estilo terminal y a\u00f1ad\u00e1mosla a nuestra p\u00e1gina HTML:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span> <span class=\"hljs-attr\">rel<\/span>=<span class=\"hljs-string\">\"preconnect\"<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"https:\/\/fonts.googleapis.com\"<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span> <span class=\"hljs-attr\">rel<\/span>=<span class=\"hljs-string\">\"preconnect\"<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"https:\/\/fonts.gstatic.com\"<\/span> <span class=\"hljs-attr\">crossorigin<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">link<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"https:\/\/fonts.googleapis.com\/css2?family=VT323&amp;display=swap\"<\/span> <span class=\"hljs-attr\">rel<\/span>=<span class=\"hljs-string\">\"stylesheet\"<\/span>&gt;<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Para crear la atm\u00f3sfera retro-futurista al estilo Fallout, usaremos una fuente monospace y una paleta de colores espec\u00edfica. Comencemos definiendo variables CSS para los colores y la fuente:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-pseudo\">:root<\/span> {\n    <span class=\"hljs-attribute\">font-family<\/span>: <span class=\"hljs-string\">\"VT323\"<\/span>, monospace;\n    <span class=\"hljs-attribute\">font-weight<\/span>: <span class=\"hljs-number\">400<\/span>;\n    <span class=\"hljs-attribute\">--primary-color<\/span>: <span class=\"hljs-number\">#ffd52c<\/span>;\n    <span class=\"hljs-attribute\">--secondary-color<\/span>: <span class=\"hljs-number\">#ff5c00<\/span>;\n    <span class=\"hljs-attribute\">--tertiary-color<\/span>: <span class=\"hljs-number\">#c72d04<\/span>;\n    <span class=\"hljs-attribute\">--background-color<\/span>: <span class=\"hljs-number\">#111<\/span>;\n    <span class=\"hljs-attribute\">scrollbar-color<\/span>: <span class=\"hljs-built_in\">var<\/span>(--primary-color) <span class=\"hljs-built_in\">var<\/span>(--secondary-color);\n    <span class=\"hljs-attribute\">font-size<\/span>: <span class=\"hljs-built_in\">clamp<\/span>(<span class=\"hljs-number\">18px<\/span>, <span class=\"hljs-number\">3vw<\/span>, <span class=\"hljs-number\">30px<\/span>);\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"504\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/font_colors_style-1024x504.png\" alt=\"Create your own Pip-Boy 3000 with CSS\" class=\"wp-image-28108\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/font_colors_style-1024x504.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/font_colors_style-300x148.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/font_colors_style-768x378.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/font_colors_style-1536x756.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/font_colors_style-2048x1009.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Usar variables es importante para realizar cambios de estilo o variantes m\u00e1s adelante.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-layout-responsivo\">Layout responsivo<\/h3>\n\n\n\n<p>Creemos un <strong>layout responsivo<\/strong> con un encabezado, contenido principal y pie de p\u00e1gina dentro de un contenedor que ocupe toda la pantalla y est\u00e9 centrado.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">div<\/span><span class=\"hljs-selector-class\">.retro-container<\/span> {\n    <span class=\"hljs-attribute\">width<\/span>: <span class=\"hljs-number\">90vw<\/span>;\n    <span class=\"hljs-attribute\">height<\/span>: <span class=\"hljs-number\">90vh<\/span>;\n    <span class=\"hljs-attribute\">display<\/span>: grid;\n    <span class=\"hljs-attribute\">grid-template-rows<\/span>: auto <span class=\"hljs-number\">1<\/span>fr auto;\n    <span class=\"hljs-attribute\">overflow<\/span>: hidden;\n    <span class=\"hljs-attribute\">padding<\/span>: <span class=\"hljs-number\">0.5rem<\/span>;\n    <span class=\"hljs-attribute\">border<\/span>: <span class=\"hljs-number\">2px<\/span> solid <span class=\"hljs-built_in\">var<\/span>(--primary-color);\n    <span class=\"hljs-attribute\">color<\/span>: <span class=\"hljs-built_in\">var<\/span>(--primary-color);\n    <span class=\"hljs-attribute\">mask-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(to bottom, #<span class=\"hljs-number\">0005<\/span> <span class=\"hljs-number\">50%<\/span>, #<span class=\"hljs-number\">000<\/span> <span class=\"hljs-number\">50%<\/span>);\n    <span class=\"hljs-attribute\">mask-size<\/span>: <span class=\"hljs-number\">100%<\/span> <span class=\"hljs-number\">2px<\/span>;\n    <span class=\"hljs-attribute\">text-shadow<\/span>: <span class=\"hljs-number\">0<\/span> <span class=\"hljs-number\">0<\/span> <span class=\"hljs-number\">0.5rem<\/span>;\n}\n\n<span class=\"hljs-selector-tag\">header<\/span>,\n<span class=\"hljs-selector-tag\">footer<\/span> {\n    <span class=\"hljs-attribute\">display<\/span>: flex;\n    <span class=\"hljs-attribute\">gap<\/span>: <span class=\"hljs-number\">2rem<\/span>;\n    <span class=\"hljs-attribute\">align-items<\/span>: center;\n}\n\n<span class=\"hljs-selector-tag\">main<\/span> {\n    <span class=\"hljs-attribute\">overflow<\/span>: hidden;\n}\n\n<span class=\"hljs-selector-tag\">section<\/span> {\n    <span class=\"hljs-attribute\">height<\/span>: <span class=\"hljs-number\">100%<\/span>;\n    <span class=\"hljs-attribute\">overflow<\/span>: hidden auto;\n    <span class=\"hljs-attribute\">margin<\/span>: <span class=\"hljs-number\">1rem<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Las secciones ser\u00e1n nuestras pantallas, y solo se podr\u00e1 mover de una secci\u00f3n a otra a trav\u00e9s del men\u00fa de navegaci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"801\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/hub-1024x801.png\" alt=\"Pip-Boy 3000 con CSS\" class=\"wp-image-28109\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/hub-1024x801.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/hub-300x235.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/hub-768x601.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/hub-1536x1201.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/hub-2048x1601.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Tambi\u00e9n podemos a\u00f1adir un script al final de la p\u00e1gina para siempre desplazarse al inicio del contenido de cada secci\u00f3n al hacer clic en los enlaces del men\u00fa:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-built_in\">document<\/span>.querySelectorAll(<span class=\"hljs-string\">'a&#91;href^=\"#\"]'<\/span>).forEach(<span class=\"hljs-function\"><span class=\"hljs-params\">anchor<\/span> =&gt;<\/span> {\n    anchor.addEventListener(<span class=\"hljs-string\">'click'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> (<span class=\"hljs-params\">e<\/span>) <\/span>{\n        e.preventDefault();\n        <span class=\"hljs-keyword\">const<\/span> targetId = <span class=\"hljs-keyword\">this<\/span>.getAttribute(<span class=\"hljs-string\">'href'<\/span>);\n        <span class=\"hljs-keyword\">const<\/span> targetElement = <span class=\"hljs-built_in\">document<\/span>.querySelector(targetId);\n        <span class=\"hljs-keyword\">const<\/span> main = <span class=\"hljs-built_in\">document<\/span>.querySelector(<span class=\"hljs-string\">'main'<\/span>);\n\n        <span class=\"hljs-keyword\">if<\/span> (targetElement) {\n            main.scrollTo({\n                <span class=\"hljs-attr\">top<\/span>: targetElement.offsetTop - main.offsetTop,\n                <span class=\"hljs-attr\">behavior<\/span>: <span class=\"hljs-string\">'smooth'<\/span>\n            });\n        }\n    });\n});\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-efectos-visuales-y-animaciones\">Efectos visuales y animaciones<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Efecto de Monitor CRT Antiguo<\/h4>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"369\" height=\"364\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/crt.gif\" alt=\"old monitor effect pipboy\" class=\"wp-image-28112 size-full\"\/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Creamos un efecto CRT con una animaci\u00f3n para simular esa &#8220;banda horizontal&#8221; t\u00edpica de los tubos cat\u00f3dicos (debida a la baja frecuencia de actualizaci\u00f3n) utilizando un gradiente lineal animado con la propiedad <code>background-position<\/code>: podemos jugar con la velocidad, el \u00e1ngulo e incluso con el gradiente para obtener nuestro efecto de parpadeo preferido.<\/p>\n<\/div><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>A\u00f1adimos un sombreado similar a una retroiluminaci\u00f3n en los bordes utilizando un <code>box-shadow<\/code> con el valor <code>inset<\/code>: cabe destacar que, al no especificar los colores en instrucciones como esta, se tomar\u00e1 la propiedad <code>color<\/code> del elemento que lo contiene (o del primer elemento ancestro que lo especifica).<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-keyword\">@keyframes<\/span> crtAnimation {\n    0% {\n        <span class=\"hljs-attribute\">background-position<\/span>: <span class=\"hljs-number\">0<\/span> <span class=\"hljs-number\">0<\/span>;\n    }\n\n    100% {\n        <span class=\"hljs-attribute\">background-position<\/span>: <span class=\"hljs-number\">0<\/span> <span class=\"hljs-number\">10000%<\/span>;\n    }\n}\n\n<span class=\"hljs-selector-class\">.old-crt-monitor<\/span> {\n    <span class=\"hljs-attribute\">box-shadow<\/span>: inset <span class=\"hljs-number\">0px<\/span> <span class=\"hljs-number\">0px<\/span> <span class=\"hljs-number\">2rem<\/span>;\n    <span class=\"hljs-attribute\">background-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(<span class=\"hljs-number\">0deg<\/span>, #<span class=\"hljs-number\">0000<\/span> <span class=\"hljs-number\">10%<\/span>, #fff1 <span class=\"hljs-number\">90%<\/span>, #<span class=\"hljs-number\">0000<\/span> <span class=\"hljs-number\">100%<\/span>);\n    <span class=\"hljs-attribute\">animation<\/span>: crtAnimation <span class=\"hljs-number\">100s<\/span> linear infinite;\n    <span class=\"hljs-attribute\">background-size<\/span>: <span class=\"hljs-number\">100%<\/span> <span class=\"hljs-number\">80%<\/span>;\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><a href=\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/tendencias-frontend-para-2024-el-retorno-de-css-bff-principales-lenguajes-y-mas\/\" class=\"ek-link\"><em><strong>Art\u00edculo recomendado: Tendencias frontend para el 2024, el retorno de CSS<\/strong><\/em><\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-efecto-de-lineas-de-escaneo\">Efecto de l\u00edneas de escaneo<\/h4>\n\n\n\n<p>Para reproducir las l\u00edneas de terminal de baja fidelidad, creamos un efecto de scanline en el contenedor principal usando <code>mask-image<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">div<\/span><span class=\"hljs-selector-class\">.retro-container<\/span> {\n    <span class=\"hljs-attribute\">mask-image<\/span>: <span class=\"hljs-built_in\">linear-gradient<\/span>(to bottom, #<span class=\"hljs-number\">0005<\/span> <span class=\"hljs-number\">50%<\/span>, #<span class=\"hljs-number\">000<\/span> <span class=\"hljs-number\">50%<\/span>);\n    <span class=\"hljs-attribute\">mask-size<\/span>: <span class=\"hljs-number\">100%<\/span> <span class=\"hljs-number\">2px<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>El gradiente que genera <code>mask-image<\/code> se repite cada 2px, creando una l\u00ednea de un p\u00edxel ligeramente transparente y otra l\u00ednea completamente sin alterar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"952\" height=\"460\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_result.png\" alt=\"\" class=\"wp-image-28111\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_result.png 952w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_result-300x145.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_result-768x371.png 768w\" sizes=\"auto, (max-width: 952px) 100vw, 952px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Alerta Roja<\/h4>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"331\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/preview_table.gif\" alt=\"red alert pip-boy 3000 with css\" class=\"wp-image-28110 size-full\"\/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Ninguna pantalla de ciencia ficci\u00f3n est\u00e1 completa sin un elemento parpadeante que llame nuestra atenci\u00f3n sobre un giro catastr\u00f3fico inminente en la trama. Creamos una animaci\u00f3n para los elementos de alerta:<\/p>\n<\/div><\/div>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">alert<\/span> {\n    <span class=\"hljs-attribute\">animation<\/span>: blink-bg <span class=\"hljs-number\">1s<\/span> ease-out infinite;\n}\n\n<span class=\"hljs-keyword\">@keyframes<\/span> blink-bg {\n    0%, 60% {\n        <span class=\"hljs-attribute\">text-shadow<\/span>: <span class=\"hljs-number\">0<\/span> <span class=\"hljs-number\">0<\/span> <span class=\"hljs-number\">10.5rem<\/span>;\n        <span class=\"hljs-attribute\">color<\/span>: <span class=\"hljs-built_in\">var<\/span>(--primary-color);\n    }\n    70%, 100% {\n        <span class=\"hljs-attribute\">text-shadow<\/span>: <span class=\"hljs-number\">0<\/span> <span class=\"hljs-number\">0<\/span> <span class=\"hljs-number\">20.5rem<\/span>;\n        <span class=\"hljs-attribute\">color<\/span>: <span class=\"hljs-built_in\">var<\/span>(--tertiary-color);\n    }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-usando-ia-generativa-para-crear-contenido-de-ciencia-ficcion\">Usando IA Generativa para crear contenido de Ciencia Ficci\u00f3n<\/h3>\n\n\n\n<div class=\"wp-block-media-text is-stacked-on-mobile\"><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/ikea_alien.jpeg\" alt=\"AI generated. Create your own Pip-Boy 3000 with CSS\" class=\"wp-image-28138 size-full\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/ikea_alien.jpeg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/ikea_alien-300x300.jpeg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/ikea_alien-150x150.jpeg 150w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/ikea_alien-768x768.jpeg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/ikea_alien-100x100.jpeg 100w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/ikea_alien-600x600.jpeg 600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><div class=\"wp-block-media-text__content\">\n<p>Claro, aqu\u00ed est\u00e1 la traducci\u00f3n:<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Utilizar modelos de inteligencia artificial para generar contenidos ficticios directamente en HTML (como hice en la versi\u00f3n final) puede ayudarnos a salir de nuestra zona de confort, explorar nuevas ideas de dise\u00f1o y proporcionar un resultado mucho mejor que el cl\u00e1sico lorem ipsum.<\/p>\n\n\n\n<p>Los fant\u00e1sticos dise\u00f1os t\u00e9cnicos fueron generados con el divertido modelo de <a href=\"https:\/\/huggingface.co\/ostris\/ikea-instructions-lora-sdxl\" class=\"ek-link\">generador de instrucciones de IKEA<\/a> (LORA SDXL) entrenado por <a href=\"https:\/\/x.com\/ostrisai\" class=\"ek-link\">Ostris<\/a>.<\/p>\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusiones<\/h3>\n\n\n\n<p>Experimentar con CSS para crear dise\u00f1os retro-futuristas al estilo de Fallout es divertido y \u00fatil. No debemos subestimar el potencial de la creatividad, pero es importante seguir siempre las mejores pr\u00e1cticas y las reglas de accesibilidad. Indirectamente, estas directrices tambi\u00e9n facilitar\u00e1n el trabajo art\u00edstico.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-9 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"28115\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_station_screenshot-1024x576.png\" alt=\"Esempio con marker di allerta\" class=\"wp-image-28115\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_station_screenshot-1024x576.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_station_screenshot-300x169.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_station_screenshot-768x432.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_station_screenshot-1536x864.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_station_screenshot-896x504.png 896w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_station_screenshot-400x225.png 400w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_station_screenshot.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Risultato finale sezione &#8220;station&#8221;<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"28116\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-1024x576.png\" alt=\"Esempio finale con illustrazione tecnica. UI Fallout. Come creare il tuo pip-boy 3000 con CSS. Create your own Pip-Boy 3000 with CSS\" class=\"wp-image-28116\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-1024x576.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-300x169.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-768x432.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-1536x864.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-896x504.png 896w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-400x225.png 400w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Risultato finale sezione &#8220;crew&#8221;<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"28114\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_data_screenshot-1024x576.png\" alt=\"Esempio finale con scrollbar\" class=\"wp-image-28114\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_data_screenshot-1024x576.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_data_screenshot-300x169.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_data_screenshot-768x432.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_data_screenshot-1536x864.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_data_screenshot-896x504.png 896w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_data_screenshot-400x225.png 400w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_data_screenshot.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Risultato finale sezione &#8220;data&#8221;<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfTambi\u00e9n eres de prestar m\u00e1s atenci\u00f3n a las terminales y pantallas futuristas en pel\u00edculas y series de ciencia ficci\u00f3n que a sus tramas? Personalmente, tengo una verdadera pasi\u00f3n por este antiguo arte de imaginar y dise\u00f1ar la UX\/UI del futuro. Y no creo ser el \u00fanico \ud83e\udd13 En este tutorial, nos inspiraremos en la UI&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/\">Read more<\/a><\/p>\n","protected":false},"author":255,"featured_media":28116,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10632],"tags":[11742],"collections":[],"class_list":{"0":"post-28181","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-frontend-es","8":"tag-css-es","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Fallout: crea tu propio Pip-Boy 3000 con CSS - Codemotion<\/title>\n<meta name=\"description\" content=\"Descubre c\u00f3mo crear una interfaz de usuario inspirada en el Pip-Boy 3000 de Fallout con CSS moderno. \u00a1No te pierdas esta gu\u00eda at\u00f3mica!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creamos una UI tipo Fallout usando CSS moderno\" \/>\n<meta property=\"og:description\" content=\"Descubre c\u00f3mo crear una interfaz de usuario inspirada en el Pip-Boy 3000 de Fallout con CSS moderno. \u00a1No te pierdas esta gu\u00eda at\u00f3mica!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-11T10:45:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-11T10:45:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Massimo Avvisati\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MassimoAvvisati\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Massimo Avvisati\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/\"},\"author\":{\"name\":\"Massimo Avvisati\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7d033c17576f9bdfec9dab783e58976a\"},\"headline\":\"Creamos una UI tipo Fallout usando CSS moderno\",\"datePublished\":\"2024-06-11T10:45:18+00:00\",\"dateModified\":\"2024-06-11T10:45:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/\"},\"wordCount\":870,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png\",\"keywords\":[\"CSS\"],\"articleSection\":[\"Frontend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/\",\"name\":\"Fallout: crea tu propio Pip-Boy 3000 con CSS - Codemotion\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png\",\"datePublished\":\"2024-06-11T10:45:18+00:00\",\"dateModified\":\"2024-06-11T10:45:19+00:00\",\"description\":\"Descubre c\u00f3mo crear una interfaz de usuario inspirada en el Pip-Boy 3000 de Fallout con CSS moderno. \u00a1No te pierdas esta gu\u00eda at\u00f3mica!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png\",\"width\":1920,\"height\":1080,\"caption\":\"Risultato finale sezione \\\"crew\\\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Creamos una UI tipo Fallout usando CSS moderno\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7d033c17576f9bdfec9dab783e58976a\",\"name\":\"Massimo Avvisati\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/massimo-100x100.jpeg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/massimo-100x100.jpeg\",\"caption\":\"Massimo Avvisati\"},\"description\":\"I am a full-stack developer, digital artist, maker, and educator with a passion for Artificial Intelligence. I create immersive installations and develop educational software, pushing the boundaries of technology. I believe in Free Software and Creative Commons licensing as a foundation for knowledge sharing. My goal is to craft unique and engaging educational experiences using cutting-edge technology, showcasing the potential of AI in education. Currently, my focus is on Educational Technology, where I strive to create innovative software and hardware tools that engage and inspire learners. I firmly believe in the power of Free Software and Creative Commons, utilizing these open platforms to ensure my work is accessible and reusable by others. I actively reject restrictive platforms that limit creativity and collaboration. By combining my artistic vision with cutting-edge technology, I aim to develop unique educational experiences that spark curiosity and foster a love of learning. Through my work, I strive to demonstrate the incredible potential of AI in education and the arts.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/massimo-avvisati-7220312\/\",\"https:\/\/x.com\/MassimoAvvisati\"],\"knowsAbout\":[\"Javascript\",\"Node.js\",\"PHP\",\"AI\",\"Machine Learning\",\"Web Development\",\"Free Software\"],\"knowsLanguage\":[\"English\",\"Spanish\",\"Italian\"],\"jobTitle\":\"Head of EdTech R&D\",\"worksFor\":\"Codemotion spa\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/massimo-avvisati\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Fallout: crea tu propio Pip-Boy 3000 con CSS - Codemotion","description":"Descubre c\u00f3mo crear una interfaz de usuario inspirada en el Pip-Boy 3000 de Fallout con CSS moderno. \u00a1No te pierdas esta gu\u00eda at\u00f3mica!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/","og_locale":"en_US","og_type":"article","og_title":"Creamos una UI tipo Fallout usando CSS moderno","og_description":"Descubre c\u00f3mo crear una interfaz de usuario inspirada en el Pip-Boy 3000 de Fallout con CSS moderno. \u00a1No te pierdas esta gu\u00eda at\u00f3mica!","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2024-06-11T10:45:18+00:00","article_modified_time":"2024-06-11T10:45:19+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png","type":"image\/png"}],"author":"Massimo Avvisati","twitter_card":"summary_large_image","twitter_creator":"@MassimoAvvisati","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Massimo Avvisati","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/"},"author":{"name":"Massimo Avvisati","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7d033c17576f9bdfec9dab783e58976a"},"headline":"Creamos una UI tipo Fallout usando CSS moderno","datePublished":"2024-06-11T10:45:18+00:00","dateModified":"2024-06-11T10:45:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/"},"wordCount":870,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png","keywords":["CSS"],"articleSection":["Frontend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/","name":"Fallout: crea tu propio Pip-Boy 3000 con CSS - Codemotion","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png","datePublished":"2024-06-11T10:45:18+00:00","dateModified":"2024-06-11T10:45:19+00:00","description":"Descubre c\u00f3mo crear una interfaz de usuario inspirada en el Pip-Boy 3000 de Fallout con CSS moderno. \u00a1No te pierdas esta gu\u00eda at\u00f3mica!","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png","width":1920,"height":1080,"caption":"Risultato finale sezione \"crew\""},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/creamos-una-ui-tipo-fallout-usando-css-moderno\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Frontend","item":"https:\/\/www.codemotion.com\/magazine\/es\/frontend-es\/"},{"@type":"ListItem","position":3,"name":"Creamos una UI tipo Fallout usando CSS moderno"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/7d033c17576f9bdfec9dab783e58976a","name":"Massimo Avvisati","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/massimo-100x100.jpeg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/04\/massimo-100x100.jpeg","caption":"Massimo Avvisati"},"description":"I am a full-stack developer, digital artist, maker, and educator with a passion for Artificial Intelligence. I create immersive installations and develop educational software, pushing the boundaries of technology. I believe in Free Software and Creative Commons licensing as a foundation for knowledge sharing. My goal is to craft unique and engaging educational experiences using cutting-edge technology, showcasing the potential of AI in education. Currently, my focus is on Educational Technology, where I strive to create innovative software and hardware tools that engage and inspire learners. I firmly believe in the power of Free Software and Creative Commons, utilizing these open platforms to ensure my work is accessible and reusable by others. I actively reject restrictive platforms that limit creativity and collaboration. By combining my artistic vision with cutting-edge technology, I aim to develop unique educational experiences that spark curiosity and foster a love of learning. Through my work, I strive to demonstrate the incredible potential of AI in education and the arts.","sameAs":["https:\/\/www.linkedin.com\/in\/massimo-avvisati-7220312\/","https:\/\/x.com\/MassimoAvvisati"],"knowsAbout":["Javascript","Node.js","PHP","AI","Machine Learning","Web Development","Free Software"],"knowsLanguage":["English","Spanish","Italian"],"jobTitle":"Head of EdTech R&D","worksFor":"Codemotion spa","url":"https:\/\/www.codemotion.com\/magazine\/author\/massimo-avvisati\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-600x400.png","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-600x600.png","author_info":{"display_name":"Massimo Avvisati","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/massimo-avvisati\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png",1920,1080,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-150x150.png",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-300x169.png",300,169,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-768x432.png",768,432,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-1024x576.png",1024,576,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-1536x864.png",1536,864,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot.png",1920,1080,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-100x100.png",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-180x128.png",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-896x504.png",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-400x225.png",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-600x400.png",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/06\/final_version_crew_screenshot-600x600.png",600,600,true]},"uagb_author_info":{"display_name":"Massimo Avvisati","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/massimo-avvisati\/"},"uagb_comment_info":0,"uagb_excerpt":"\u00bfTambi\u00e9n eres de prestar m\u00e1s atenci\u00f3n a las terminales y pantallas futuristas en pel\u00edculas y series de ciencia ficci\u00f3n que a sus tramas? Personalmente, tengo una verdadera pasi\u00f3n por este antiguo arte de imaginar y dise\u00f1ar la UX\/UI del futuro. Y no creo ser el \u00fanico \ud83e\udd13 En este tutorial, nos inspiraremos en la UI&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/28181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/255"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=28181"}],"version-history":[{"count":2,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/28181\/revisions"}],"predecessor-version":[{"id":28205,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/28181\/revisions\/28205"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/28116"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=28181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=28181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=28181"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=28181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}