3636
3737 a { color : inherit; text-decoration : none; }
3838
39- /* NAVBAR - SZEROKI I PROFESJONALNY */
39+ /* NAVBAR */
4040 .navbar {
4141 background : var (--bg-nav );
4242 border-bottom : 1px solid var (--border );
6767 }
6868 .nav-brand svg { width : 22px ; height : 22px ; stroke : var (--accent-contrast ); }
6969
70- /* EFEKT MIGAJĄCEGO KURSORA TERMINALA */
7170 .terminal-cursor {
7271 display : inline-block;
7372 width : 9px ;
8281 50.1%, 100% { opacity : 0 ; }
8382 }
8483
85- /* PŁYWAJĄCY CONTAINER NAWIGACJI */
8684 .nav-center {
8785 display : flex;
8886 justify-content : flex-end;
113111 color : var (--accent-blue );
114112 }
115113
116- /* DYNAMICZNY PŁYWAJĄCY SLIDER (PILL) */
114+ /* PŁYWAJĄCY WSKAŹNIK (PILL) */
117115 .nav-indicator {
118116 position : absolute;
119117 bottom : 0 ;
126124 box-shadow : 0 0 10px rgba (0 , 210 , 255 , 0.5 );
127125 }
128126
129- /* NAPRAWIONE DROPDOWN APPS - ROZSUWANIE */
127+ /* DROPDOWN APPS */
130128 .dropdown {
131129 position : relative;
132130 display : inline-block;
145143 z-index : 1001 ;
146144 }
147145
148- /* ROZSUWANIE PO NAJECHANIU NA DROPDOWN */
149146 .dropdown : hover .dropdown-content {
150147 opacity : 1 ;
151148 visibility : visible;
175172 .badge-work { font-size : 0.65rem ; background : rgba (255 , 94 , 0 , 0.15 ); color : var (--accent-contrast ); padding : 2px 6px ; border-radius : 4px ; border : 1px solid rgba (255 , 94 , 0 , 0.3 ); font-family : 'JetBrains Mono' , monospace; text-transform : uppercase; }
176173 .badge-new { font-size : 0.65rem ; background : rgba (0 , 210 , 255 , 0.15 ); color : var (--accent-blue ); padding : 2px 6px ; border-radius : 4px ; border : 1px solid rgba (0 , 210 , 255 , 0.3 ); font-family : 'JetBrains Mono' , monospace; text-transform : uppercase; }
177174
178- /* NIEKLIKALNY ELEMENT GARMIN Z HOVEREM */
179175 .disabled-link {
180176 color : var (--text-muted );
181177 cursor : default;
201197 .disabled-link : hover .link-text { opacity : 0 ; }
202198 .disabled-link : hover .beta-hover-text { opacity : 1 ; }
203199
204- /* DASHBOARD / TREŚĆ */
200+ /* DASHBOARD */
205201 .dashboard { width : 100% ; max-width : 1550px ; padding : 50px 60px ; margin : 0 auto; box-sizing : border-box; flex : 1 ; }
206202
207- .section-tag {
208- font-family : 'JetBrains Mono' , monospace;
209- color : var (--accent-contrast );
210- font-size : 0.75rem ;
211- font-weight : 800 ;
212- text-transform : uppercase;
213- letter-spacing : 2px ;
214- margin-bottom : 25px ;
215- display : flex;
216- align-items : center;
217- gap : 10px ;
218- }
219- .section-tag ::before { content : '///' ; color : var (--accent-blue ); }
220-
221- /* STOPKA W STYLU NASA (PRZYWRÓCONA) */
222- <footer>
203+ /* STOPKA – POZIOMA (GRID) */
204+ footer {
223205 background : # 010204 ;
224206 border-top : 1px solid var (--border );
225207 padding : 70px 60px 40px 60px ;
358340 </ div >
359341 < div class ="nav-center " id ="navCenter ">
360342 < div class ="nav-indicator " id ="navIndicator "> </ div >
361- < a href ="/ " class ="nav-link {% if page.url == '/' %}active-page{% endif %} "> Hub</ a >
362- < a href ="/newsy " class ="nav-link {% if page.url contains 'newsy' %}active-page{% endif %} "> Newsy</ a >
363- < a href ="/blog " class ="nav-link {% if page.url contains 'blog' %}active-page{% endif %} "> Blog</ a >
364- < a href ="/homelab " class ="nav-link {% if page.url contains 'homelab' %}active-page{% endif %} "> HomeLab</ a >
365- < a href ="/sponsors " class ="nav-link {% if page.url contains 'sponsors' %}active-page{% endif %} "> Sponsors</ a >
343+ < a href ="/ " class ="nav-item nav- link {% if page.url == '/' %}active-page{% endif %} "> Hub</ a >
344+ < a href ="/newsy " class ="nav-item nav- link {% if page.url contains 'newsy' %}active-page{% endif %} "> Newsy</ a >
345+ < a href ="/blog " class ="nav-item nav- link {% if page.url contains 'blog' %}active-page{% endif %} "> Blog</ a >
346+ < a href ="/homelab " class ="nav-item nav- link {% if page.url contains 'homelab' %}active-page{% endif %} "> HomeLab</ a >
347+ < a href ="/sponsors " class ="nav-item nav- link {% if page.url contains 'sponsors' %}active-page{% endif %} "> Sponsors</ a >
366348
367- < div class ="dropdown nav-link ">
349+ < div class ="dropdown nav-item nav- link ">
368350 < button class ="dropbtn "> Apps ▾</ button >
369351 < div class ="dropdown-content ">
370352 < div class ="dropdown-links-wrapper ">
380362 </ div >
381363 </ div >
382364
383- < a href ="/benchmarks " class ="nav-link {% if page.url contains 'benchmarks' %}active-page{% endif %} "> Benchmarks</ a >
384- < a href ="/kontakt " class ="nav-link {% if page.url contains 'kontakt' %}active-page{% endif %} "> Kontakt</ a >
365+ < a href ="/benchmarks " class ="nav-item nav- link {% if page.url contains 'benchmarks' %}active-page{% endif %} "> Benchmarks</ a >
366+ < a href ="/kontakt " class ="nav-item nav- link {% if page.url contains 'kontakt' %}active-page{% endif %} "> Kontakt</ a >
385367 </ div >
386368 </ nav >
387369
@@ -423,35 +405,27 @@ <h4>Projekty (Apps)</h4>
423405 < div class ="footer-col ">
424406 < h4 > Follow DevLabStudy</ h4 >
425407 < div class ="social-icons-grid ">
426- <!-- YouTube -->
427408 < a href ="https://www.youtube.com/channel/UCisFPSU_Y8hznpqrcewcJAg " target ="_blank " class ="social-icon-btn " title ="YouTube ">
428409 < svg viewBox ="0 0 24 24 "> < path d ="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z "/> </ svg >
429410 </ a >
430- <!-- GitHub -->
431411 < a href ="https://github.com/DevLabStudy " target ="_blank " class ="social-icon-btn " title ="GitHub ">
432412 < svg viewBox ="0 0 24 24 "> < path d ="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z "/> </ svg >
433413 </ a >
434- <!-- Discord -->
435414 < a href ="https://discord.gg/uwUTgEQcwj " target ="_blank " class ="social-icon-btn " title ="Discord ">
436415 < svg viewBox ="0 0 24 24 "> < path d ="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994.021-.041.001-.09-.041-.106a13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.927 1.793 8.18 1.793 12.061 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.028zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418z "/> </ svg >
437416 </ a >
438- <!-- TikTok -->
439417 < a href ="https://www.tiktok.com/@devlabstudy_official " target ="_blank " class ="social-icon-btn " title ="TikTok ">
440418 < svg viewBox ="0 0 24 24 "> < path d ="M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5 20.1a6.34 6.34 0 0 0 10.86-4.43v-7a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1-.1z "/> </ svg >
441419 </ a >
442- <!-- Instagram -->
443420 < a href ="https://www.instagram.com/devlabstudy " target ="_blank " class ="social-icon-btn " title ="Instagram ">
444421 < svg viewBox ="0 0 24 24 "> < path d ="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z "/> </ svg >
445422 </ a >
446- <!-- X / Twitter -->
447423 < a href ="https://x.com/DevLabStudy " target ="_blank " class ="social-icon-btn " title ="X / Twitter ">
448424 < svg viewBox ="0 0 24 24 "> < path d ="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z "/> </ svg >
449425 </ a >
450- <!-- Facebook -->
451426 < a href ="https://www.facebook.com/devlabstudy " target ="_blank " class ="social-icon-btn " title ="Facebook ">
452427 < svg viewBox ="0 0 24 24 "> < path d ="M9 8H6v4h3v12h5V12h3.642L18 8h-4V6.333C14 5.37 14.5 5 15.5 5H18V0h-3.808C10.5 0 9 1.333 9 4.333V8z "/> </ svg >
453428 </ a >
454- <!-- LinkedIn -->
455429 < a href ="https://www.linkedin.com/in/tobiaszkajzer " target ="_blank " class ="social-icon-btn " title ="LinkedIn ">
456430 < svg viewBox ="0 0 24 24 "> < path d ="M4.98 3.5c0 1.381-1.11 2.5-2.48 2.5s-2.48-1.119-2.48-2.5c0-1.38 1.11-2.5 2.48-2.5s2.48 1.12 2.48 2.5zm.02 4.5h-5v16h5v-16zm7.982 0h-4.968v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0v8.399h4.988v-10.131c0-7.88-8.922-7.593-11.018-3.714v-2.155z "/> </ svg >
457431 </ a >
@@ -478,48 +452,34 @@ <h4>Follow DevLabStudy</h4>
478452 </ div >
479453 </ footer >
480454
481- <!-- SKRYPT OBSŁUGUJĄCY PŁYWAJĄCY WSKAŹNIK W NAVBARZE -->
455+ <!-- SKRYPT WSKAŹNIKA NAWIGACJI -->
482456 < script >
483457 const navCenter = document . getElementById ( 'navCenter' ) ;
484458 const indicator = document . getElementById ( 'navIndicator' ) ;
485- const navLinks = navCenter . querySelectorAll ( '.nav-link ' ) ;
486- const activeLink = navCenter . querySelector ( '.active-page' ) || navLinks [ 0 ] ;
459+ const navItems = navCenter . querySelectorAll ( '.nav-item ' ) ;
460+ const activeItem = navCenter . querySelector ( '.active-page' ) || navItems [ 0 ] ;
487461
488462 function moveIndicator ( el ) {
489463 if ( ! el ) return ;
490464 indicator . style . width = el . offsetWidth + 'px' ;
491465 indicator . style . left = el . offsetLeft + 'px' ;
492466 }
493467
494- const savedLeft = sessionStorage . getItem ( 'nav_indicator_left' ) ;
495- const savedWidth = sessionStorage . getItem ( 'nav_indicator_width' ) ;
496-
497- if ( savedLeft !== null && savedWidth !== null ) {
498- indicator . style . transition = 'none' ;
499- indicator . style . left = savedLeft ;
500- indicator . style . width = savedWidth ;
501-
502- void indicator . offsetHeight ;
503-
504- indicator . style . transition = '' ;
505- moveIndicator ( activeLink ) ;
506- } else {
507- moveIndicator ( activeLink ) ;
508- }
468+ moveIndicator ( activeItem ) ;
509469
510- navLinks . forEach ( link => {
511- link . addEventListener ( 'click' , ( ) => {
512- sessionStorage . setItem ( 'nav_indicator_left' , link . offsetLeft + 'px' ) ;
513- sessionStorage . setItem ( 'nav_indicator_width' , link . offsetWidth + 'px' ) ;
470+ navItems . forEach ( item => {
471+ item . addEventListener ( 'click' , ( ) => {
472+ sessionStorage . setItem ( 'nav_indicator_left' , item . offsetLeft + 'px' ) ;
473+ sessionStorage . setItem ( 'nav_indicator_width' , item . offsetWidth + 'px' ) ;
514474 } ) ;
515475
516- link . addEventListener ( 'mouseenter' , ( ) => {
517- moveIndicator ( link ) ;
476+ item . addEventListener ( 'mouseenter' , ( ) => {
477+ moveIndicator ( item ) ;
518478 } ) ;
519479 } ) ;
520480
521481 navCenter . addEventListener ( 'mouseleave' , ( ) => {
522- moveIndicator ( activeLink ) ;
482+ moveIndicator ( activeItem ) ;
523483 } ) ;
524484 </ script >
525485</ body >
0 commit comments