Compare commits

...

15 Commits

Author SHA1 Message Date
6896a7582b Updated animation 2026-02-23 21:12:52 +01:00
2adf5a046b Formatting 2026-02-23 21:10:24 +01:00
039f2d522a Removed email on brand name 2026-02-23 21:10:02 +01:00
a126ea8344 Removed testing function 2026-02-23 21:08:01 +01:00
bf72f5aafa Merge remote-tracking branch 'origin/main' 2026-02-23 21:06:47 +01:00
7119736057 Tried updating snowfall 2026-02-23 21:06:37 +01:00
f9b3ae7df8 Fixed build path in dockerfile 2026-02-19 11:57:18 +00:00
01d6ef11cb Updated Dockerfile 2026-02-19 12:52:18 +01:00
216d91c57d Adjustments 2026-02-19 12:45:53 +01:00
3e1a8cc619 Updated lockfile 2026-02-19 12:42:00 +01:00
ad3c513e7d Merge remote-tracking branch 'origin/main' 2026-02-19 12:41:12 +01:00
ae4f412438 Updated to pnpm 2026-02-19 12:41:07 +01:00
d3b5b230b3 Updated to pnpm 2026-02-19 12:40:38 +01:00
194ae7c4a1 Added comment 2026-02-07 13:09:07 +01:00
20d4aa9386 Updated snowfall logic 2026-02-07 13:08:50 +01:00
5 changed files with 1761 additions and 2748 deletions

View File

@@ -1,9 +1,16 @@
FROM node:20-alpine AS builder
FROM node:20-slim AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY pnpm-lock.yaml ./
RUN npm install -g pnpm
RUN pnpm install
COPY . .
RUN npm run build
RUN pnpm run build
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html

2711
package-lock.json generated

File diff suppressed because it is too large Load Diff

1712
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,20 @@ import {Team} from './sections/Team';
import Snowfall from 'react-snowfall'
import { DateTime } from 'luxon';
// Determines if the current date is within the snowfall season (November 15th to January 31st)
function isSnowfallSeason(date = DateTime.now()) {
const year = date.year;
const start = DateTime.local(year, 11, 15);
const end = DateTime.local(year + 1, 1, 31);
// If we're on or after November 15th, check if we're before January 31st of the next year
if (date >= start) {
return date <= end;
}
// If we're before November 15th, check if we're after January 1st of the current year
const prevEnd = DateTime.local(year, 1, 31);
return date <= prevEnd;
}
export default function LiquidDevelopment() {
return (
<div
@@ -20,12 +34,7 @@ export default function LiquidDevelopment() {
pointerEvents: 'none',
zIndex: 9999,
}}>
{(() => {
const now = DateTime.now();
return (now.month === 11 && now.day >= 15) ||
(now.month === 12) ||
(now.month === 1);
})() && <Snowfall snowflakeCount={80} />}
{isSnowfallSeason() && <Snowfall snowflakeCount={80} />}
</div>
<Navbar/>

View File

@@ -1,10 +1,10 @@
import React from 'react';
import { motion } from 'framer-motion';
import { ArrowRight } from 'lucide-react';
import { BrandLogo } from '../components/BrandLogo';
import { Bubbles } from '../components/Bubbles';
import { ObfuscatedMail } from '../components/ObfuscatedMail';
import { SOCIALS } from '../data/content';
import {motion} from 'framer-motion';
import {ArrowRight} from 'lucide-react';
import {BrandLogo} from '../components/BrandLogo';
import {Bubbles} from '../components/Bubbles';
import {ObfuscatedMail} from '../components/ObfuscatedMail';
import {SOCIALS} from '../data/content';
export const Hero = () => {
const emailSocial = SOCIALS.find(s => !s.link.startsWith('http'));
@@ -23,49 +23,45 @@ export const Hero = () => {
}}
/>
<Bubbles />
<Bubbles/>
<div className="relative z-10 text-center px-6 max-w-6xl mx-auto">
<motion.div
initial={{ scale: 0.8, opacity: 0 }}
animate={{ scale: 1, opacity: 1 }}
transition={{ duration: 0.8 }}
initial={{scale: 0.5, opacity: 0}}
animate={{scale: 1, opacity: 1}}
transition={{duration: 0.5}}
className="mx-auto mb-8 w-24 h-24 md:w-32 md:h-32 rounded-full bg-[#00A3FF]/5 flex items-center justify-center border border-[#00A3FF]/30 shadow-[0_0_60px_-10px_rgba(0,163,255,0.4)]"
>
<BrandLogo className="w-14 h-14 md:w-20 md:h-20 text-[#00A3FF]" />
<BrandLogo className="w-14 h-14 md:w-20 md:h-20 text-[#00A3FF]"/>
</motion.div>
<motion.div
initial={{ y: 20, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ delay: 0.2 }}
initial={{y: 20, opacity: 0}}
animate={{y: 0, opacity: 1}}
transition={{delay: 0.2}}
>
<h1 className="text-4xl md:text-7xl font-extrabold tracking-tighter mb-6">
<ObfuscatedMail
email={rawEmail}
className="cursor-pointer hover:opacity-80 transition-opacity duration-300 bg-transparent border-none p-0 font-extrabold tracking-tighter text-4xl md:text-7xl text-white"
>
LIQUID
<span className="ml-3 text-transparent bg-clip-text bg-gradient-to-r from-[#00A3FF] to-cyan-200">
LIQUID
<span
className="ml-3 text-transparent bg-clip-text bg-gradient-to-r from-[#00A3FF] to-cyan-200">
DEVELOPMENT
</span>
</ObfuscatedMail>
</span>
</h1>
</motion.div>
<motion.p
initial={{ y: 20, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ delay: 0.4 }}
initial={{y: 20, opacity: 0}}
animate={{y: 0, opacity: 1}}
transition={{delay: 0.4}}
className="text-lg md:text-2xl text-gray-400 mb-10 max-w-2xl mx-auto font-light"
>
Open-source software development team
</motion.p>
<motion.div
initial={{ y: 20, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ delay: 0.6 }}
initial={{y: 20, opacity: 0}}
animate={{y: 0, opacity: 1}}
transition={{delay: 0.6}}
className="flex flex-col sm:flex-row gap-6 justify-center items-center"
>
<a