Compare commits

...

13 Commits

Author SHA1 Message Date
e2571880ce Deps (no more beta)
All checks were successful
Docker Deploy / build-and-push (push) Successful in 5m26s
2026-03-03 13:31:12 -07:00
0eafcb9a67 Update bun.lock 2026-03-03 13:23:32 -07:00
9a2e7f65cb Deps
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m28s
2026-03-01 01:17:06 -07:00
e5110ddd75 Update site.ts
All checks were successful
Docker Deploy / build-and-push (push) Successful in 2m52s
2026-02-25 18:06:59 -07:00
3b2abe7a99 Attempt #3
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m31s
2026-02-25 16:49:34 -07:00
4cbe911b0c Attempt to fix FOUC
All checks were successful
Docker Deploy / build-and-push (push) Successful in 2m50s
2026-02-25 16:29:29 -07:00
75321034aa The fuckin lock file is pissing me off
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m30s
2026-02-25 13:02:48 -07:00
174afb6a10 Pls
Some checks failed
Docker Deploy / build-and-push (push) Failing after 1m49s
2026-02-25 10:40:48 -07:00
483e80db79 Small fix to the CSS animation nonsense
All checks were successful
Docker Deploy / build-and-push (push) Successful in 2m41s
2026-02-25 08:22:55 -07:00
a303b8be00 Update ContactSection.vue
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m47s
2026-02-24 23:48:25 -07:00
bb0b348069 Update bun.lock 2026-02-24 23:24:39 -07:00
cf2195b4f3 Update package.json
All checks were successful
Docker Deploy / build-and-push (push) Successful in 3m28s
2026-02-24 23:14:57 -07:00
6de9c9c83b Update package.json 2026-02-24 23:14:41 -07:00
10 changed files with 673 additions and 573 deletions

1142
bun.lock

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{ {
"name": "atashdotdev", "name": "atashdotdev",
"type": "module", "type": "module",
"version": "1.3.0", "version": "2.0.0",
"scripts": { "scripts": {
"dev": "astro dev", "dev": "astro dev",
"build": "astro build", "build": "astro build",
@@ -9,20 +9,17 @@
"astro": "astro" "astro": "astro"
}, },
"dependencies": { "dependencies": {
"@astrojs/node": "10.0.0-beta.5", "@astrojs/node": "9.5.4",
"@astrojs/vue": "6.0.0-beta.1", "@astrojs/vue": "5.1.4",
"@fontsource-variable/roboto-slab": "^5.2.8",
"@tailwindcss/vite": "^4.2.1", "@tailwindcss/vite": "^4.2.1",
"astro": "6.0.0-beta.15", "astro": "5.18.0",
"motion-v": "2.0.0",
"nodemailer": "^8.0.1", "nodemailer": "^8.0.1",
"tailwindcss": "^4.2.1", "tailwindcss": "^4.2.1",
"vue": "^3.5.29" "vue": "^3.5.29"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^25.3.0", "@types/node": "^25.3.3",
"@types/nodemailer": "^7.0.11", "@types/nodemailer": "^7.0.11",
"daisyui": "^5.5.19" "daisyui": "^5.5.19"
}, }
"packageManager": "bun@1.3.9"
} }

BIN
public/fonts/roboto.woff2 Normal file

Binary file not shown.

View File

@@ -1,22 +0,0 @@
---
interface Props {
items: Array<{
text: string;
className: string;
}>;
}
const { items } = Astro.props;
---
<span class="text-rotate duration-9000">
<span>
{
items.map((item) => (
<span class:list={["mx-auto text-center", item.className]}>
{item.text}
</span>
))
}
</span>
</span>

View File

@@ -0,0 +1,33 @@
<template>
<span class="block w-full my-2">
<span class="text-rotate">
<span class="justify-items-center">
<span
v-for="(item, index) in items"
:key="index"
:class="item.className"
>
{{ item.text }}
</span>
</span>
</span>
</span>
</template>
<script setup lang="ts">
interface RotatingTextItem {
text: string;
className: string;
}
defineProps<{
items: RotatingTextItem[];
}>();
</script>
<style scoped>
.text-rotate:hover,
.text-rotate:hover * {
animation-play-state: running !important;
}
</style>

View File

@@ -239,12 +239,12 @@ ${message.value}`,
class="btn btn-lg w-full shadow-lg transition-all duration-300" class="btn btn-lg w-full shadow-lg transition-all duration-300"
:class="[ :class="[
status === 'success' status === 'success'
? 'btn-success text-white' ? 'btn-success text-white pointer-events-none'
: status === 'error' : status === 'error'
? 'btn-error text-white' ? 'btn-error text-white pointer-events-none'
: 'btn-primary', : 'btn-primary',
]" ]"
:disabled="status === 'sending' || status === 'success'" :disabled="status === 'sending'"
> >
<template v-if="status === 'sending'"> <template v-if="status === 'sending'">
<span <span

View File

@@ -2,7 +2,7 @@
import { siteConfig } from "../../config/site"; import { siteConfig } from "../../config/site";
import Icon from "../Icon.astro"; import Icon from "../Icon.astro";
import Section from "../Section.astro"; import Section from "../Section.astro";
import RotatingText from "../RotatingText.astro"; import RotatingText from "../RotatingText.vue";
import StatusIndicator from "../StatusIndicator.vue"; import StatusIndicator from "../StatusIndicator.vue";
const rotatingText = (siteConfig.hero as any).rotatingText as const rotatingText = (siteConfig.hero as any).rotatingText as
@@ -30,7 +30,7 @@ const rotatingText = (siteConfig.hero as any).rotatingText as
{ {
rotatingText ? ( rotatingText ? (
<> <>
<RotatingText items={rotatingText} /> <RotatingText items={rotatingText} client:idle />
<span class="block"> <span class="block">
{siteConfig.hero.mainTitle {siteConfig.hero.mainTitle
.replace("{rotating}", "") .replace("{rotating}", "")

View File

@@ -108,7 +108,7 @@ export const siteConfig = {
variant: "primary", variant: "primary",
}, },
{ {
title: "Slop-free", title: "Slop-free Guarantee",
content: "Hand-crafted code built with care", content: "Hand-crafted code built with care",
variant: "secondary", variant: "secondary",
}, },

View File

@@ -2,7 +2,6 @@
import Header from "../components/Header.astro"; import Header from "../components/Header.astro";
import Footer from "../components/Footer.astro"; import Footer from "../components/Footer.astro";
import { siteConfig } from "../config/site"; import { siteConfig } from "../config/site";
import "@fontsource-variable/roboto-slab";
import "../styles/global.css"; import "../styles/global.css";
interface Props { interface Props {
@@ -65,6 +64,13 @@ const isProd = import.meta.env.PROD;
<meta property="og:image:alt" content={resolvedOgImage.alt} /> <meta property="og:image:alt" content={resolvedOgImage.alt} />
<meta name="theme-color" content="#ffffff" /> <meta name="theme-color" content="#ffffff" />
<link rel="canonical" href={siteUrl} /> <link rel="canonical" href={siteUrl} />
<link
rel="preload"
href="/fonts/roboto.woff2"
as="font"
type="font/woff2"
crossorigin="anonymous"
/>
<title>{metaTitle}</title> <title>{metaTitle}</title>
{ {
isProd && ( isProd && (
@@ -87,7 +93,7 @@ const isProd = import.meta.env.PROD;
) )
} }
</head> </head>
<body class="min-h-screen flex flex-col bg-base-100 font-sans antialiased"> <body class="min-h-screen flex flex-col bg-base-100 antialiased">
<Header /> <Header />
<main class="grow flex flex-col"> <main class="grow flex flex-col">
<slot /> <slot />

View File

@@ -40,6 +40,14 @@ html {
scroll-behavior: smooth; scroll-behavior: smooth;
} }
body { @font-face {
font-family: "Roboto Slab Variable", serif; font-family: "Roboto Slab";
src: url("/fonts/roboto.woff2") format("woff2");
font-weight: 100 900;
font-style: normal;
font-display: block;
}
body {
font-family: "Roboto Slab", serif;
} }