Visual and code overhaul, including Nix support
All checks were successful
Docker Deploy / build-and-push (push) Successful in 2m55s

This commit is contained in:
2025-07-25 21:45:28 -06:00
parent 10926a00a8
commit 8cf1d5c2e1
15 changed files with 1316 additions and 1106 deletions

View File

@@ -1,7 +1,10 @@
---
import Layout from "../layouts/Layout.astro";
import { siteConfig } from "../config/site";
import ContactForm from "../components/ContactForm.tsx";
import HeroSection from "../components/sections/HeroSection.astro";
import ServicesSection from "../components/sections/ServicesSection.astro";
import AboutSection from "../components/sections/AboutSection.astro";
import ContactSection from "../components/sections/ContactSection.tsx";
const pageMetaInfo = {
title: siteConfig.name,
@@ -10,290 +13,8 @@ const pageMetaInfo = {
---
<Layout title={pageMetaInfo.title} description={pageMetaInfo.description}>
<!-- Hero Section -->
<section class="py-8 lg:py-16">
<div class="max-w-6xl mx-auto px-4">
<div
class="hero bg-gradient-to-br from-primary to-secondary rounded-xl lg:rounded-2xl"
>
<div
class="hero-content text-center text-primary-content py-8 lg:py-16 px-4"
>
<div class="max-w-4xl w-full">
<h1
class="text-4xl sm:text-6xl lg:text-8xl font-bold mb-4 lg:mb-6 leading-tight"
>
{siteConfig.name}
</h1>
<p
class="text-base sm:text-lg lg:text-xl mb-6 lg:mb-8 opacity-90 max-w-2xl mx-auto leading-relaxed"
>
{siteConfig.hero.description} — Delivering reliable,
scalable solutions tailored to your business needs.
</p>
<div
class="flex flex-col sm:flex-row gap-3 lg:gap-4 justify-center"
>
<a
href="#contact"
class="btn btn-secondary btn-md lg:btn-lg text-white border-white"
>
Start Your Project
</a>
<a
href="#services"
class="btn btn-secondary btn-md lg:btn-lg text-white border-white"
>
View Services
</a>
</div>
</div>
</div>
</div>
</div>
</section>
<div class="max-w-6xl mx-auto px-4">
<!-- Services Grid -->
<section id="services" class="mb-16 lg:mb-20">
<div class="text-center mb-8 lg:mb-12">
<h2
class="text-2xl sm:text-3xl lg:text-4xl font-bold mb-3 lg:mb-4"
>
Our Services
</h2>
<p
class="text-base lg:text-lg text-base-content/70 max-w-2xl mx-auto px-4"
>
Comprehensive software solutions designed to drive your
business forward
</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 lg:gap-6">
{
siteConfig.featureCards.cards.map((card, index) => (
<div class="card bg-base-100 shadow-lg hover:shadow-xl transition-all duration-300 border border-base-200">
<div class="card-body">
<div class="flex items-start gap-4">
<div
class={`
w-12 h-12 rounded-lg flex items-center justify-center flex-shrink-0
${
card.variant === "primary"
? "bg-primary text-primary-content"
: card.variant === "secondary"
? "bg-secondary text-secondary-content"
: "bg-accent text-accent-content"
}
`}
>
{index === 0 && (
<svg
class="w-6 h-6"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
/>
</svg>
)}
{index === 1 && (
<svg
class="w-6 h-6"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z"
/>
</svg>
)}
{index === 2 && (
<svg
class="w-6 h-6"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
/>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"
/>
</svg>
)}
{index === 3 && (
<svg
class="w-6 h-6"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M18.364 5.636l-3.536 3.536m0 5.656l3.536 3.536M9.172 9.172L5.636 5.636m3.536 9.192L5.636 18.364M12 2.25a9.75 9.75 0 109.75 9.75A9.75 9.75 0 0012 2.25z"
/>
</svg>
)}
</div>
<div class="flex-1">
<h3 class="card-title text-xl mb-3">
{card.title}
</h3>
<p class="text-base-content/70 leading-relaxed">
{card.content}
</p>
</div>
</div>
</div>
</div>
))
}
</div>
</section>
<!-- About Section -->
<section class="mb-16 lg:mb-20">
<div class="hero bg-base-200 rounded-xl lg:rounded-2xl">
<div class="hero-content text-center py-12 lg:py-16 px-4">
<div class="max-w-3xl w-full">
<h2 class="text-2xl sm:text-3xl font-bold mb-4 lg:mb-6">
Why Choose Atash Consulting?
</h2>
<p
class="text-base lg:text-lg mb-6 lg:mb-8 text-base-content/80 leading-relaxed"
>
With over a decade of experience in the software
industry, we bring deep technical expertise and a
commitment to excellence to every project.
</p>
<div
class="grid grid-cols-1 md:grid-cols-3 gap-4 lg:gap-6 mt-6 lg:mt-8"
>
<div class="text-center">
<div
class="w-16 h-16 bg-primary rounded-full flex items-center justify-center mx-auto mb-4"
>
<svg
class="w-8 h-8 text-primary-content"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M13 10V3L4 14h7v7l9-11h-7z"
></path>
</svg>
</div>
<h3 class="font-semibold mb-2">
Fast Delivery
</h3>
<p class="text-sm text-base-content/70">
Quick turnaround without compromising
quality
</p>
</div>
<div class="text-center">
<div
class="w-16 h-16 bg-secondary rounded-full flex items-center justify-center mx-auto mb-4"
>
<svg
class="w-8 h-8 text-secondary-content"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"
></path>
</svg>
</div>
<h3 class="font-semibold mb-2">
Quality Assured
</h3>
<p class="text-sm text-base-content/70">
Rigorous testing and quality control
processes
</p>
</div>
<div class="text-center">
<div
class="w-16 h-16 bg-primary rounded-full flex items-center justify-center mx-auto mb-4"
>
<svg
class="w-8 h-8 text-accent-content"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0zm6 3a2 2 0 11-4 0 2 2 0 014 0zM7 10a2 2 0 11-4 0 2 2 0 014 0z"
></path>
</svg>
</div>
<h3 class="font-semibold mb-2">
Expert Support
</h3>
<p class="text-sm text-base-content/70">
Ongoing support and maintenance services
</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Contact Section -->
<section id="contact" class="mb-16 lg:mb-20">
<div class="text-center mb-8 lg:mb-12">
<h2
class="text-2xl sm:text-3xl lg:text-4xl font-bold mb-3 lg:mb-4"
>
Get In Touch
</h2>
<p
class="text-base lg:text-lg text-base-content/70 max-w-2xl mx-auto px-4"
>
Ready to start your project? Let's discuss how we can help.
</p>
</div>
<div class="max-w-2xl mx-auto">
<div class="card bg-base-100 shadow-xl border border-base-200">
<div class="card-body">
<ContactForm client:load />
</div>
</div>
</div>
</section>
</div>
<HeroSection />
<ServicesSection />
<AboutSection />
<ContactSection client:load />
</Layout>