Inspired by PSDDude's 80s font collection this text effect is part of the SVG filters 80s font text effects list on http://www.coding-dude.com/wp/css/svg-filters/
A Pen by Ion Emil Negoita on CodePen.
Inspired by PSDDude's 80s font collection this text effect is part of the SVG filters 80s font text effects list on http://www.coding-dude.com/wp/css/svg-filters/
A Pen by Ion Emil Negoita on CodePen.
| <div class="centered"><div class="hauser" data-text="HAUSER">HAUSER</div></div> | |
| <svg> | |
| <defs> | |
| <linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="backGradientFill"> | |
| <stop offset="0%" style="stop-color: #191c2b; stop-opacity: 100%;" /> | |
| <stop offset="25%" style="stop-color: #191c2b; stop-opacity: 100%;" /> | |
| <stop offset="48%" style="stop-color: #191c2b; stop-opacity: 100%;" /> | |
| <stop offset="75%" style="stop-color: #949ec0; stop-opacity: 100%;" /> | |
| <stop offset="80%" style="stop-color: #b0cefd; stop-opacity: 100%;" /> | |
| <stop offset="100%" style="stop-color: white; stop-opacity: 0%;" /> | |
| </linearGradient> | |
| <linearGradient x1="50%" y1="100%" x2="50%" y2="-10%" id="frontGradientFill"> | |
| <stop offset="0%" style="stop-color: white; stop-opacity: 100%;" /> | |
| <stop offset="5%" style="stop-color: white; stop-opacity: 100%;" /> | |
| <stop offset="17%" style="stop-color: #cfe1fd; stop-opacity: 100%;" /> | |
| <stop offset="22%" style="stop-color: #949ec0; stop-opacity: 100%;" /> | |
| <stop offset="26%" style="stop-color: #191c2b; stop-opacity: 100%;" /> | |
| <stop offset="28%" style="stop-color: #191c2b; stop-opacity: 100%;" /> | |
| <stop offset="30%" style="stop-color: white; stop-opacity: 100%;" /> | |
| <stop offset="40%" style="stop-color: white; stop-opacity: 100%;" /> | |
| <stop offset="50%" style="stop-color: #191c2b; stop-opacity: 100%;" /> | |
| </linearGradient> | |
| <linearGradient x1="50%" y1="25%" x2="50%" y2="90%" id="strokeGradientFill"> | |
| <stop offset="0%" style="stop-color: white; stop-opacity: 100%;" /> | |
| <stop offset="25%" style="stop-color: white; stop-opacity: 100%;" /> | |
| <stop offset="35%" style="stop-color: #8ae7ee; stop-opacity: 100%;" /> | |
| <stop offset="59%" style="stop-color: #485790; stop-opacity: 100%;" /> | |
| <stop offset="80%" style="stop-color: #8ae7ee; stop-opacity: 100%;" /> | |
| <stop offset="100%" style="stop-color: white; stop-opacity: 0%;" /> | |
| </linearGradient> | |
| <rect id="gradient1" x="0%" y="10%" width="100%" height="55%" style="fill: url(#backGradientFill);" /> | |
| <rect id="gradient2" x="0%" y="0" width="100%" height="100%" style="fill: url(#frontGradientFill);" /> | |
| <rect id="gradient3" x="0%" y="0" width="100%" height="100%" style="fill: url(#strokeGradientFill);" /> | |
| <filter id="backGradient"> | |
| <feImage xlink:href="#gradient1" result="grad"/> | |
| <feComposite operator="atop" in2="SourceGraphic" in="thickened" result="stroke"/> | |
| <feMerge> | |
| <feMergeNode in="sourceGraphic"></feMergeNode> | |
| <feMergeNode in="stroke"></feMergeNode> | |
| </feMerge> | |
| </filter> | |
| <filter id="frontGradient"> | |
| <feImage xlink:href="#gradient2" result="grad"/> | |
| <feTurbulence type="fractalNoise" baseFrequency="0.07" | |
| numOctaves="1" result="turbulence"/> | |
| <feDisplacementMap in2="turbulence" in="grad" | |
| scale="10" /> | |
| <feComposite operator="in" in2="SourceGraphic" in="thickened" result="stroke"/> | |
| </filter> | |
| <filter id="stroke"> | |
| <!-- <feFlood flood-color="#dadde5" result="strokeColor" /> --> <feImage xlink:href="#gradient3" result="strokeColor"/> | |
| <feMorphology operator="dilate" radius="1" | |
| in="SourceGraphic" result="outside" /> | |
| <feMorphology operator="dilate" radius="2" | |
| in="outside" result="thickened" /> | |
| <feComposite operator="out" in2="SourceGraphic" in="thickened" result="stroke"/> | |
| <feComposite operator="in" in="strokeColor" in2="stroke" result="stroke"/> | |
| <feMerge> | |
| <feMergeNode in="SourceGraphic"></feMergeNode> | |
| <feMergeNode in="stroke"></feMergeNode> | |
| </feMerge> | |
| </filter> | |
| <filter id="innerGlow" > | |
| <feFlood flood-color="#c45cff"/> | |
| <feComposite in2="SourceGraphic" operator="out"/> | |
| <feGaussianBlur stdDeviation="5" result="blur"/> | |
| <feComposite operator="atop" in2="SourceGraphic" result="glow"/> | |
| <feBlend in="SourceGraphic" in2="glow" mode="screen"></feBlend> | |
| </filter> | |
| <filter id="outerGlow" > | |
| <!-- Thicken out the original shape --> | |
| <feMorphology operator="dilate" radius="10" in="SourceAlpha" result="thicken" /> | |
| <!-- Use a gaussian blur to create the soft blurriness of the glow --> | |
| <feGaussianBlur in="thicken" stdDeviation="20" result="blurred" /> | |
| <!-- Change the colour --> | |
| <feFlood flood-color="#395086" result="glowColor" /> | |
| <!-- Color in the glows --> | |
| <feComposite in="glowColor" in2="blurred" operator="in" result="softGlow_colored" /> | |
| <!-- Layer the effects together --> | |
| <feMerge> | |
| <feMergeNode in="softGlow_colored"/> | |
| <feMergeNode in="SourceGraphic"/> | |
| </feMerge> | |
| </filter> | |
| <filter id="noise" x="0vw" y="0vh" width="100vw" height="100vh"> | |
| <feFlood flood-color="#808080" result="neutral-gray" /> | |
| <feTurbulence in="neutral-gray" type="fractalNoise" baseFrequency="0.8" numOctaves="10" stitchTiles="stitch" result="noise"/> | |
| <feColorMatrix in="noise" type="saturate" values="0" result="destaturatedNoise"></feColorMatrix> | |
| <feComponentTransfer in="desaturatedNoise" result="theNoise"> | |
| <feFuncA type="table" tableValues="0 0 0.2 0"></feFuncA> | |
| </feComponentTransfer> | |
| <feBlend in="SourceGraphic" in2="theNoise" mode="soft-light" result="noisy-image"/> | |
| </filter> | |
| </defs> | |
| </svg> |
| :root{ | |
| background:black; | |
| filter:url(#noise) contrast(110%); | |
| } | |
| .centered{ | |
| position:absolute; | |
| left:50vw; | |
| top:50vh; | |
| transform:translateX(-50%) translateY(-50%); | |
| text-align:center; | |
| } | |
| .hauser{ | |
| color:white; | |
| font-family:'Hauser'; | |
| font-size:40vh; | |
| padding:0 1em; | |
| filter:url(#outerGlow); | |
| } | |
| .hauser:after{ | |
| content:attr(data-text); | |
| position:absolute; | |
| left:0; | |
| padding:0 1em; | |
| filter: url(#frontGradient) url(#backGradient) url(#innerGlow) url(#stroke); | |
| } | |
| <link href="https://www.coding-dude.com/fonts/hauser-styles.css" rel="stylesheet" /> |
please note that depending on browser support some effects work more or less accurate. the effects should work find on chrome latest version
I made a modification to the codepen (frontGradientFill) and it should look good now
don't work first gradient