diff --git a/assets/images/root/background.jpg b/assets/images/root/background.jpg new file mode 100644 index 0000000..810983f Binary files /dev/null and b/assets/images/root/background.jpg differ diff --git a/assets/styles/root/root.css b/assets/styles/root/root.css new file mode 100644 index 0000000..5043a72 --- /dev/null +++ b/assets/styles/root/root.css @@ -0,0 +1,154 @@ +body { + height: 100vh; +} + +/* Scanline sweep */ +.scanline { + position: absolute; + bottom: 100%; + width: 100%; + height: 100px; + pointer-events: none; + background: linear-gradient(0deg, transparent 0%, rgba(80, 167, 250, .05) 50%, transparent 100%); + opacity: .1; + animation: scanline 8s linear infinite; +} + +@keyframes scanline { + 0% { + bottom: 100%; + } + 100% { + bottom: -100px; + } +} + +/* Primary hero button shimmer */ +.hero-btn-primary { + position: relative; + overflow: hidden; +} + +.hero-btn-primary::before { + content: ''; + position: absolute; + inset: 0; + background: rgba(255, 255, 255, .2); + transform: translateY(100%); + transition: transform .3s ease; +} + +.hero-btn-primary:hover::before { + transform: translateY(0); +} + +/* Azure glow on hover */ +.glow-hover:hover { + box-shadow: 0 0 25px rgba(80, 167, 250, .4); +} + +.badge { + background: rgba(80, 167, 250, .1); + border: 1px solid rgba(80, 167, 250, .3); +} + +.badge .text-label-sm { + color: var(--color-primary-container); + letter-spacing: .15em; +} + +/* Pulsing availability dot */ +.dot-pulse { + animation: dot-pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; + + display: inline-block; + width: 8px; + height: 8px; + background: #50a7fa; +} + +@keyframes dot-pulse { + 0%, 100% { + opacity: 1; + } + 50% { + opacity: .35; + } +} + +.headline { + text-shadow: 0 2px 4px rgba(0, 0, 0, .8); +} + +.headline span { + color: var(--color-primary-container); +} + +.subheadline { + max-width: 640px; + color: rgba(255, 255, 255, .85); + text-shadow: 0 1px 2px rgba(0, 0, 0, .9); +} + +/* Scroll indicator line */ +.scroll-line { + width: 1px; + height: 48px; + background: linear-gradient(to bottom, #50a7fa, transparent); +} + +.hud-decorator-line { + width: 128px; + height: 1px; + background-color: var(--color-primary-container); +} + +.hud-decorator { + opacity: .4; +} + +.hud-decorator p { + color: var(--color-primary-container); + letter-spacing: .3em; +} + +#bg { + z-index: 0; +} + +#bg-img { + filter: grayscale(.2) brightness(.75); + transform: scale(1.05); +} + +#bg-overlay { + background: linear-gradient(to bottom, rgba(0, 0, 0, .6) 0%, transparent 50%, rgba(0, 0, 0, .8) 100%); +} + +#content-div { + z-index: 10; + min-height: 100vh; +} + +#hud-decorator-top-left { + margin-top: 96px; +} + +#hud-decorator-bottom-right { + margin-bottom: 96px; +} + +#hud-decorator-bottom span { + letter-spacing: .2em; +} + +#hero-content { + max-width: 896px; +} + +#button-about-me { + background: rgba(255, 255, 255, .05); + border: 1px solid rgba(255, 255, 255, .2); + backdrop-filter: blur(4px); +} + diff --git a/assets/ts/root/root.ts b/assets/ts/root/root.ts new file mode 100644 index 0000000..a13a336 --- /dev/null +++ b/assets/ts/root/root.ts @@ -0,0 +1,11 @@ +import "../../styles/root/root.css"; + +document.addEventListener('mousemove', (e) => { + const bg = document.getElementById('bg-img'); + const x = (e.clientX - window.innerWidth / 2) * 0.005; + const y = (e.clientY - window.innerHeight / 2) * 0.005; + + if (bg) { + bg.style.transform = `scale(1.05) translate(${x}px, ${y}px)`; + } +}); diff --git a/templates/root/root.html.twig b/templates/root/root.html.twig index 6d0f48a..5664daa 100644 --- a/templates/root/root.html.twig +++ b/templates/root/root.html.twig @@ -1,20 +1,97 @@ {% extends 'base.html.twig' %} -{% block title %}Hello RootController!{% endblock %} +{% block title %}creative-dragonslayer.de | Deep Space Engineering{% endblock %} + +{% block stylesheets %} + {{ parent() }} + {{ encore_entry_link_tags('root') }} + + +{% endblock %} + +{% block javascripts %} + {{ parent() }} + {{ encore_entry_script_tags('root') }} +{% endblock %} {% block body %} - -
+
+
+ System.Status: Stable
+Lat: 52.5200° N
+V.0.9.0 // CORE
+Syncing Precision...
+ ++ Code, Kommandozeile und Kaffee. Dies ist eine Sammlung meiner Hobbyprojekte, entwickelt mit + Leidenschaft. Hier geht es nicht um Skalierung oder Marktanteile, sondern darum, Probleme zu lösen, + die mich beschäftigen, und Techniken auszuprobieren, die mich neugierig machen. +
+ + {# CTAs #} + +/var/www/html/src/Controller/RootController.php/var/www/html/templates/root/index.html.twig