Неоновая 404 страница для сайта

Неоновая 404 страница для сайта

Очень интересной решение для 404 страницы, выполненное в виде неоновой вывески.
Сначала рассмотрим структуру и стили, посмотрим результат, а потом попробуем прикрутить к сайту, например на wordpress.

Так, давайте для начала посмотрим на структуру. На самом деле всё содержимое, это пара одинаковых svg изображений в виде надписи 404 и одна надпись:

<div></div> <svg id="svgWrap_2" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 700 250"> <g> <path id="id3_2" d="M195.7 232.67h-37.1V149.7H27.76c-2.64 0-5.1-.5-7.36-1.49-2.27-.99-4.23-2.31-5.88-3.96-1.65-1.65-2.95-3.61-3.89-5.88s-1.42-4.67-1.42-7.22V29.62h36.82v82.98H158.6V29.62h37.1v203.05z"/> <path id="id2_2" d="M470.69 147.71c0 8.31-1.06 16.17-3.19 23.58-2.12 7.41-5.12 14.28-8.99 20.6-3.87 6.33-8.45 11.99-13.74 16.99-5.29 5-11.07 9.28-17.35 12.81a85.146 85.146 0 0 1-20.04 8.14 83.637 83.637 0 0 1-21.67 2.83H319.3c-7.46 0-14.73-.94-21.81-2.83-7.08-1.89-13.76-4.6-20.04-8.14a88.292 88.292 0 0 1-17.35-12.81c-5.29-5-9.84-10.67-13.66-16.99-3.82-6.32-6.8-13.19-8.92-20.6-2.12-7.41-3.19-15.27-3.19-23.58v-33.13c0-12.46 2.34-23.88 7.01-34.27 4.67-10.38 10.92-19.33 18.76-26.83 7.83-7.5 16.87-13.36 27.12-17.56 10.24-4.2 20.93-6.3 32.07-6.3h66.41c7.36 0 14.58.94 21.67 2.83 7.08 1.89 13.76 4.6 20.04 8.14a88.292 88.292 0 0 1 17.35 12.81c5.29 5 9.86 10.67 13.74 16.99 3.87 6.33 6.87 13.19 8.99 20.6 2.13 7.41 3.19 15.27 3.19 23.58v33.14zm-37.1-33.13c0-7.27-1.32-13.88-3.96-19.82-2.64-5.95-6.16-11.04-10.55-15.29-4.39-4.25-9.46-7.5-15.22-9.77-5.76-2.27-11.8-3.35-18.13-3.26h-66.41c-6.14-.09-12.11.97-17.91 3.19-5.81 2.22-10.95 5.43-15.44 9.63-4.48 4.2-8.07 9.3-10.76 15.29-2.69 6-4.04 12.67-4.04 20.04v33.13c0 7.36 1.32 14.02 3.96 19.97 2.64 5.95 6.18 11.02 10.62 15.22 4.44 4.2 9.56 7.43 15.36 9.7 5.8 2.27 11.87 3.35 18.2 3.26h66.41c7.27 0 13.85-1.2 19.75-3.61s10.93-5.73 15.08-9.98 7.36-9.32 9.63-15.22c2.27-5.9 3.4-12.34 3.4-19.33v-33.15zm-16-26.91a17.89 17.89 0 0 1 2.83 6.73c.47 2.41.47 4.77 0 7.08-.47 2.31-1.39 4.48-2.76 6.51-1.37 2.03-3.14 3.75-5.31 5.17l-99.4 66.41c-1.61 1.23-3.26 2.08-4.96 2.55-1.7.47-3.45.71-5.24.71-3.02 0-5.9-.71-8.64-2.12-2.74-1.42-4.96-3.44-6.66-6.09a17.89 17.89 0 0 1-2.83-6.73c-.47-2.41-.5-4.77-.07-7.08.43-2.31 1.3-4.48 2.62-6.51 1.32-2.03 3.07-3.75 5.24-5.17l99.69-66.41a17.89 17.89 0 0 1 6.73-2.83c2.41-.47 4.77-.47 7.08 0 2.31.47 4.48 1.37 6.51 2.69 2.03 1.32 3.75 3.02 5.17 5.09z"/> <path id="id1_2" d="M688.33 232.67h-37.1V149.7H520.39c-2.64 0-5.1-.5-7.36-1.49-2.27-.99-4.23-2.31-5.88-3.96-1.65-1.65-2.95-3.61-3.89-5.88s-1.42-4.67-1.42-7.22V29.62h36.82v82.98h112.57V29.62h37.1v203.05z"/> </g> </svg> <svg id="svgWrap_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 700 250"> <g> <path id="id3_1" d="M195.7 232.67h-37.1V149.7H27.76c-2.64 0-5.1-.5-7.36-1.49-2.27-.99-4.23-2.31-5.88-3.96-1.65-1.65-2.95-3.61-3.89-5.88s-1.42-4.67-1.42-7.22V29.62h36.82v82.98H158.6V29.62h37.1v203.05z"/> <path id="id2_1" d="M470.69 147.71c0 8.31-1.06 16.17-3.19 23.58-2.12 7.41-5.12 14.28-8.99 20.6-3.87 6.33-8.45 11.99-13.74 16.99-5.29 5-11.07 9.28-17.35 12.81a85.146 85.146 0 0 1-20.04 8.14 83.637 83.637 0 0 1-21.67 2.83H319.3c-7.46 0-14.73-.94-21.81-2.83-7.08-1.89-13.76-4.6-20.04-8.14a88.292 88.292 0 0 1-17.35-12.81c-5.29-5-9.84-10.67-13.66-16.99-3.82-6.32-6.8-13.19-8.92-20.6-2.12-7.41-3.19-15.27-3.19-23.58v-33.13c0-12.46 2.34-23.88 7.01-34.27 4.67-10.38 10.92-19.33 18.76-26.83 7.83-7.5 16.87-13.36 27.12-17.56 10.24-4.2 20.93-6.3 32.07-6.3h66.41c7.36 0 14.58.94 21.67 2.83 7.08 1.89 13.76 4.6 20.04 8.14a88.292 88.292 0 0 1 17.35 12.81c5.29 5 9.86 10.67 13.74 16.99 3.87 6.33 6.87 13.19 8.99 20.6 2.13 7.41 3.19 15.27 3.19 23.58v33.14zm-37.1-33.13c0-7.27-1.32-13.88-3.96-19.82-2.64-5.95-6.16-11.04-10.55-15.29-4.39-4.25-9.46-7.5-15.22-9.77-5.76-2.27-11.8-3.35-18.13-3.26h-66.41c-6.14-.09-12.11.97-17.91 3.19-5.81 2.22-10.95 5.43-15.44 9.63-4.48 4.2-8.07 9.3-10.76 15.29-2.69 6-4.04 12.67-4.04 20.04v33.13c0 7.36 1.32 14.02 3.96 19.97 2.64 5.95 6.18 11.02 10.62 15.22 4.44 4.2 9.56 7.43 15.36 9.7 5.8 2.27 11.87 3.35 18.2 3.26h66.41c7.27 0 13.85-1.2 19.75-3.61s10.93-5.73 15.08-9.98 7.36-9.32 9.63-15.22c2.27-5.9 3.4-12.34 3.4-19.33v-33.15zm-16-26.91a17.89 17.89 0 0 1 2.83 6.73c.47 2.41.47 4.77 0 7.08-.47 2.31-1.39 4.48-2.76 6.51-1.37 2.03-3.14 3.75-5.31 5.17l-99.4 66.41c-1.61 1.23-3.26 2.08-4.96 2.55-1.7.47-3.45.71-5.24.71-3.02 0-5.9-.71-8.64-2.12-2.74-1.42-4.96-3.44-6.66-6.09a17.89 17.89 0 0 1-2.83-6.73c-.47-2.41-.5-4.77-.07-7.08.43-2.31 1.3-4.48 2.62-6.51 1.32-2.03 3.07-3.75 5.24-5.17l99.69-66.41a17.89 17.89 0 0 1 6.73-2.83c2.41-.47 4.77-.47 7.08 0 2.31.47 4.48 1.37 6.51 2.69 2.03 1.32 3.75 3.02 5.17 5.09z"/> <path id="id1_1" d="M688.33 232.67h-37.1V149.7H520.39c-2.64 0-5.1-.5-7.36-1.49-2.27-.99-4.23-2.31-5.88-3.96-1.65-1.65-2.95-3.61-3.89-5.88s-1.42-4.67-1.42-7.22V29.62h36.82v82.98h112.57V29.62h37.1v203.05z"/> </g> </svg> <svg> <defs> <filter id="glow"> <fegaussianblur class="blur" result="coloredBlur" stddeviation="4"></fegaussianblur> <femerge> <femergenode in="coloredBlur"></femergenode> <femergenode in="SourceGraphic"></femergenode> </femerge> </filter> </defs> </svg> <h2>Страница не найдена</h2>


Зачем в структуре две одинаковых svg? Всё очень просто. Первое изображение используется в качестве фона для обводки тёмных букв светящимися линиями при открытии страницы. Второе используется как основной фон букв. В общем ладно, чего тут расписываться, нужен ведь код, верно? :)
Поехали дальше — css:

@import url('https://fonts.googleapis.com/css?family=Jura:700&display=swap&subset=cyrillic'); html, body { margin: 0; overflow: hidden; } div { position: absolute; top: 0; left: 0; height: 100%; width: 100%; margin: 0; background: radial-gradient(circle, #240015 0%, #12000b 100%); overflow: hidden; } .wrap { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } h2 { position: absolute; top: 50%; left: 50%; margin-top: 150px; font-size: 32px; text-transform: uppercase; transform: translate(-50%, -50%); display: block; color: #12000a; font-weight: 700; font-family: 'Jura'; text-shadow: 0 0 4px #12000a; animation: fadeInText 3s ease-in 3.5s forwards, flicker4 5s linear 7.5s infinite, hueRotate 6s ease-in-out 3s infinite; } #svgWrap_1, #svgWrap_2 { position: absolute; height: auto; width: 600px; max-width: 100%; top: 50%; left: 50%; transform: translate(-50%, -50%); } #svgWrap_1, #svgWrap_2, div { animation: hueRotate 6s ease-in-out 3s infinite; } #id1_1, #id2_1, #id3_1 { stroke: #ff005d; stroke-width: 3px; fill: transparent; filter: url(#glow); } #id1_2, #id2_2, #id3_2 { stroke: #12000a; stroke-width: 3px; fill: transparent; filter: url(#glow); } #id3_1 { stroke-dasharray: 940px; stroke-dashoffset: -940px; animation: drawLine3 2.5s ease-in-out 0s forwards, flicker3 4s linear 4s infinite; } #id2_1 { stroke-dasharray: 735px; stroke-dashoffset: -735px; animation: drawLine2 2.5s ease-in-out 0.5s forwards, flicker2 4s linear 4.5s infinite; } #id1_1 { stroke-dasharray: 940px; stroke-dashoffset: -940px; animation: drawLine1 2.5s ease-in-out 1s forwards, flicker1 4s linear 5s infinite; } @keyframes drawLine1 { 0% {stroke-dashoffset: -940px;} 100%{stroke-dashoffset: 0px;} } @keyframes drawLine2 { 0% {stroke-dashoffset: -735px;} 100%{stroke-dashoffset: 0px;} } @keyframes drawLine3 { 0% {stroke-dashoffset: -940px;} 100%{stroke-dashoffset: 0px;} } @keyframes flicker1 { 0% {stroke: #ff005d;} 1% {stroke: transparent;} 3% {stroke: transparent;} 4% {stroke: #ff005d;} 6% {stroke: #ff005d;} 7% {stroke: transparent;} 13% {stroke: transparent;} 14% {stroke: #ff005d;} 100%{stroke: #ff005d;} } @keyframes flicker2 { 0% {stroke: #ff005d;} 50% {stroke: #ff005d;} 51% {stroke: transparent;} 61% {stroke: transparent;} 62% {stroke: #ff005d;} 100%{stroke: #ff005d;} } @keyframes flicker3 { 0% {stroke: #ff005d;} 1% {stroke: transparent;} 10% {stroke: transparent;} 11% {stroke: #ff005d;} 40% {stroke: #ff005d;} 41% {stroke: transparent;} 45% {stroke: transparent;} 46% {stroke: #ff005d;} 100%{stroke: #ff005d;} } @keyframes flicker4 { 0% {color: #ff005d;text-shadow:0px 0px 4px #ff005d;} 30% {color: #ff005d;text-shadow:0px 0px 4px #ff005d;} 31% {color: #12000a;text-shadow:0px 0px 4px #12000a;} 32% {color: #ff005d;text-shadow:0px 0px 4px #ff005d;} 36% {color: #ff005d;text-shadow:0px 0px 4px #ff005d;} 37% {color: #12000a;text-shadow:0px 0px 4px #12000a;} 41% {color: #12000a;text-shadow:0px 0px 4px #12000a;} 42% {color: #ff005d;text-shadow:0px 0px 4px #ff005d;} 85% {color: #ff005d;text-shadow:0px 0px 4px #ff005d;} 86% {color: #12000a;text-shadow:0px 0px 4px #12000a;} 95% {color: #12000a;text-shadow:0px 0px 4px #12000a;} 96% {color: #ff005d;text-shadow:0px 0px 4px #ff005d;} 100%{color: #ff005d;text-shadow:0px 0px 4px #ff005d;} } @keyframes fadeInText { 1% {color: #12000a;text-shadow:0px 0px 4px #12000a;} 70% {color: #ff005d;text-shadow:0px 0px 14px #ff005d;} 100%{color: #ff005d;text-shadow:0px 0px 4px #ff005d;} } @keyframes hueRotate { 0% { filter: hue-rotate(0deg); } 50% { filter: hue-rotate(-120deg); } 100% { filter: hue-rotate(0deg); } }


По стилям я расписывать не буду, кто разбирается и так всё поймёт, а остальным смысла объяснять всё равно нет смысла. Единственное на что можно обратить внимание — гугл-шрифт, вы можете заменить его на любой другой (свой или тоже гугловский) или же удалить его, но надо будет заменить font-family: 'Jura'; на свой или любой безопасный шрифт.

Давайте лучше посмотрим результат того, что в итоге должно получиться



Ну что? Посмотрели? Понравилось? Будем прикручивать к вордпрессу? Если это ваша cms и вы такое хотите, то читаем дальше, если нет, то прикручивайте по инструкциям для своего движка.

Допустим у вас пока что не было своей страницы 404, значит сначала мы её добавим.
Для того чтобы добавить такую страницу, надо зайти в свою тему (ту которая используется у вас по умолчанию), скопировать тут же какой нибудь файл, например header.php, переименовать в 404.php и открыть его с помощью редактора.
По сути нам не нужно всё то, что находится ниже:

<html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <meta name="viewport" content="width=device-width, initial-scale=1">

Можно всё смело удалить, нам ведь не нужны все наши стили, скрипты и тд, всё нужное для именно для этой страницы мы сейчас добавить по новой.
Итак, сначала добавляем:

<title>Страница не найдена</title> <style> </style> </head> <body>

Между <style> </style> добавляем наши стили (те что выше :)). Далее после <body> добавляем html структуру (её мы рассматривали первой). После того как добавили структуру надо закрыть теги, добавляем:

</body> </html>

Для тех кто хорошо разбирается в редактировании и устройстве сайтов, при необходимости можете добавить в head фавикон, счётчики и тд.

А у нас по сути всё! Теперь люди случайно попавшие на несуществующую страницу будут залипать в неоновую надпись :)

Комментариев пока нет
Чтобы оставить комментарий нужно войти на сайт под своим именем.