diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index 329f1c5..fdac301 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -22,12 +22,21 @@ font-display: swap; } +@font-face { + font-family: "DS-Digital"; + src: url("/fonts/DS-DIGIB.ttf") format("truetype"); + font-weight: bold; + font-style: normal; + font-display: swap; +} + @import "https://uchu.style/color.css"; @import "settings.css"; body, html { font-family: "Phantom Sans", "Segoe UI", sans-serif; + overflow-x: hidden; } *, @@ -105,3 +114,83 @@ select { background-color: transparent; } } + +.ds-digital { + font-family: "DS-Digital", monospace; +} + +.monospace { + font-family: monospace; +} + +.clock-display { + display: grid; + grid-template-columns: 1fr 1fr 1fr 0.05fr 1fr 1fr 0.05fr 1fr 1fr 1fr 1fr; + text-align: center; + width: 100%; + padding-left: 8vw; + padding-right: 8vw; +} + +.blink { + animation: blink-anim 1s infinite; +} + +@keyframes blink-anim { + 0%, 50% { + opacity: 1; + } + 51%, 100% { + opacity: 0; + } +} + +.why-item:hover { + transform: translateY(-2px); + box-shadow: 0 10px 15px -3px rgba(59, 130, 246, 0.2); +} + +.no-scrollbar::-webkit-scrollbar { + display: none; +} + +.no-scrollbar { + -ms-overflow-style: none; + scrollbar-width: none; +} + +.som-box { + position: relative; + background: linear-gradient(145deg, #f6dbba 0%, #e6d4be 100%); + border-radius: clamp(6px, 1.5vw, 10px); + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 3px 0 5px rgba(0, 0, 0, 0.05); + transition: all 0.3s ease; + border: 2px solid rgba(89, 47, 49, 0.3); + overflow: hidden; + color: black; + height: 100%; + cursor: 'pointer'; + display: flex; + flex-direction: column; + z-index: 2; + margin-left: 20px; + margin-right: 20px; +} + +.bounce { + animation: bounce 1s infinite; +} + +#scroll-arrow { + transition: transform 1s ease-in-out; +} + +@keyframes bounce { + 0%, + 100% { + transform: translateY(0); + } + 50% { + transform: translateY(-10px); + } +} diff --git a/app/javascript/application.js b/app/javascript/application.js index a875796..8b66f6f 100644 --- a/app/javascript/application.js +++ b/app/javascript/application.js @@ -18,7 +18,7 @@ function outta() { // we should figure out a better way of doing this rather than this shit ass way, but it works for now const modal = document.getElementById('logout-modal'); const can = document.getElementById('cancel-logout'); - + if (!modal || !can) return; modal.classList.remove('hidden'); @@ -55,16 +55,71 @@ function outta() { }); } +function weirdclockthing() { + const clock = document.getElementById('clock'); + const display = clock.querySelector('.clock-display'); + + if (!clock || !display) return; + + function write(something) { + display.innerHTML = ''; + Array.from(something).forEach((char) => { + const span = document.createElement('span'); + span.textContent = char === ' ' ? '\u00A0' : char; + if (char === ':') { + span.classList.add('blink'); + } + display.appendChild(span); + }); + } + + write("HAC:KA:TIME"); + + function updateClock() { + const date = new Date(); + const time = `${String(date.getHours()).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}:${String(date.getSeconds()).padStart(2, '0')}`; + write(` ${time} `); + } + + let intervalId = null; + clock.onmouseenter = function () { + updateClock(); + if (!intervalId) { + intervalId = setInterval(updateClock, 1000); + } + } + + clock.onmouseleave = function () { + clearInterval(intervalId); + intervalId = null; + write("HAC:KA:TIME"); + } +} + +function scrollarrow() { + window.addEventListener('scroll', function () { + const arrow = document.getElementById('scroll-arrow'); + arrow.classList.remove('bounce'); + this.setInterval(() => { + arrow.style.transform = 'translateY(200px)'; + }, 100); + }); +} + // Handle both initial page load and subsequent Turbo navigations document.addEventListener('turbo:load', function() { setupCurrentlyHacking(); outta(); + weirdclockthing(); }); document.addEventListener('turbo:render', function() { setupCurrentlyHacking(); outta(); + weirdclockthing(); }); document.addEventListener('DOMContentLoaded', function() { setupCurrentlyHacking(); outta(); + weirdclockthing(); + scrollarrow(); }); diff --git a/app/views/static_pages/index.html.erb b/app/views/static_pages/index.html.erb index f846667..ca82de6 100644 --- a/app/views/static_pages/index.html.erb +++ b/app/views/static_pages/index.html.erb @@ -1,3 +1,6 @@ +
- <%= @usage_social_proof&.downcase %> -
- <% unless current_user %> -- See which programming languages you use most and how productive you are. Free and works with over <%= link_to "75 code editors", docs_path + "#supported-editors" %>! -
+
+ Sign in with Hack Club Slack
+ <% end %>
- <% if @home_stats&.[](:seconds_tracked) && @home_stats&.[](:users_tracked) %>
- + ==============================================/ h a c k /============================================= +
+Hackatime works with these code editors and more!
++ ----------------------------------------------------------------------------------------------- +
++ We've tracked over <%= number_with_delimiter(@home_stats[:seconds_tracked] / 3600) %> <%= 'hour'.pluralize(@home_stats[:seconds_tracked] / 3600) %> of coding time across <%= number_with_delimiter(@home_stats[:users_tracked]) %> <%= 'high schooler'.pluralize(@home_stats[:users_tracked]) %> since 2025! +
+ <% end %> + ++ --------------------------------| #hackclub | #hackclub | #hackclub |-------------------------------- +
+ +Don't commit fraud lol ;)
+
+ <%= link_to "Start building", "https://summer.hackclub.com/", class: "inline-block bg-[#592F31] font-primary font-bold text-[#f6dbba] px-4 py-2 rounded-[100px] text-[22px] hover:scale-105 transition-transform duration-200", target: "_blank" %>
+ Build websites, games, apps, or any other personal open-source coding projects to showcase your skills.
+Get awesome prizes like Raspberry Pis, Server hosting credits, 3D printers, and more to fuel your next creation.
+
+ Earn an industry recognized technical certificate for coding 30 hours and building 3 personal projects. Win prizes as you code, and a chance to travel to NYC for 2025's largest high school hackathon for girls.
+ <%= link_to "Join Athena", "https://athena.hackclub.com/", class: "inline-block bg-white font-primary font-bold text-[#D35648] px-4 py-2 m-4 rounded-[100px] text-[22px] hover:scale-105 transition-transform duration-200", target: "_blank" %> ++ ==============================================/ h a c k /============================================= +
+Superrrrrr easy to setup :)