This commit is contained in:
@ -61,16 +61,18 @@ ${message()}`,
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<form class="space-y-6" onSubmit={handleSubmit}>
|
<form class="space-y-4 lg:space-y-6" onSubmit={handleSubmit}>
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-3 lg:gap-4">
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text font-semibold">First Name *</span>
|
<span class="label-text font-semibold text-sm lg:text-base">
|
||||||
|
First Name *
|
||||||
|
</span>
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
name="firstName"
|
name="firstName"
|
||||||
class="input input-bordered w-full"
|
class="input input-bordered input-sm lg:input-md w-full"
|
||||||
required
|
required
|
||||||
value={firstName()}
|
value={firstName()}
|
||||||
onInput={(e) => setFirstName(e.currentTarget.value)}
|
onInput={(e) => setFirstName(e.currentTarget.value)}
|
||||||
@ -79,12 +81,14 @@ ${message()}`,
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text font-semibold">Last Name *</span>
|
<span class="label-text font-semibold text-sm lg:text-base">
|
||||||
|
Last Name *
|
||||||
|
</span>
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
name="lastName"
|
name="lastName"
|
||||||
class="input input-bordered w-full"
|
class="input input-bordered input-sm lg:input-md w-full"
|
||||||
required
|
required
|
||||||
value={lastName()}
|
value={lastName()}
|
||||||
onInput={(e) => setLastName(e.currentTarget.value)}
|
onInput={(e) => setLastName(e.currentTarget.value)}
|
||||||
@ -95,12 +99,14 @@ ${message()}`,
|
|||||||
|
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text font-semibold">Email Address *</span>
|
<span class="label-text font-semibold text-sm lg:text-base">
|
||||||
|
Email Address *
|
||||||
|
</span>
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
type="email"
|
type="email"
|
||||||
name="email"
|
name="email"
|
||||||
class="input input-bordered w-full"
|
class="input input-bordered input-sm lg:input-md w-full"
|
||||||
required
|
required
|
||||||
value={email()}
|
value={email()}
|
||||||
onInput={(e) => setEmail(e.currentTarget.value)}
|
onInput={(e) => setEmail(e.currentTarget.value)}
|
||||||
@ -110,12 +116,14 @@ ${message()}`,
|
|||||||
|
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text font-semibold">Company</span>
|
<span class="label-text font-semibold text-sm lg:text-base">
|
||||||
|
Company
|
||||||
|
</span>
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
name="company"
|
name="company"
|
||||||
class="input input-bordered w-full"
|
class="input input-bordered input-sm lg:input-md w-full"
|
||||||
value={company()}
|
value={company()}
|
||||||
onInput={(e) => setCompany(e.currentTarget.value)}
|
onInput={(e) => setCompany(e.currentTarget.value)}
|
||||||
disabled={status() === "sending"}
|
disabled={status() === "sending"}
|
||||||
@ -124,11 +132,13 @@ ${message()}`,
|
|||||||
|
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text font-semibold">Service Needed</span>
|
<span class="label-text font-semibold text-sm lg:text-base">
|
||||||
|
Service Needed
|
||||||
|
</span>
|
||||||
</label>
|
</label>
|
||||||
<select
|
<select
|
||||||
name="service"
|
name="service"
|
||||||
class="select select-bordered w-full"
|
class="select select-bordered select-sm lg:select-md w-full"
|
||||||
value={service()}
|
value={service()}
|
||||||
onChange={(e) => setService(e.currentTarget.value)}
|
onChange={(e) => setService(e.currentTarget.value)}
|
||||||
disabled={status() === "sending"}
|
disabled={status() === "sending"}
|
||||||
@ -144,11 +154,13 @@ ${message()}`,
|
|||||||
|
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label">
|
<label class="label">
|
||||||
<span class="label-text font-semibold">Project Budget</span>
|
<span class="label-text font-semibold text-sm lg:text-base">
|
||||||
|
Project Budget
|
||||||
|
</span>
|
||||||
</label>
|
</label>
|
||||||
<select
|
<select
|
||||||
name="budget"
|
name="budget"
|
||||||
class="select select-bordered w-full"
|
class="select select-bordered select-sm lg:select-md w-full"
|
||||||
value={budget()}
|
value={budget()}
|
||||||
onChange={(e) => setBudget(e.currentTarget.value)}
|
onChange={(e) => setBudget(e.currentTarget.value)}
|
||||||
disabled={status() === "sending"}
|
disabled={status() === "sending"}
|
||||||
@ -163,12 +175,14 @@ ${message()}`,
|
|||||||
|
|
||||||
<div class="form-control">
|
<div class="form-control">
|
||||||
<label class="label" for="project-details">
|
<label class="label" for="project-details">
|
||||||
<span class="label-text font-semibold">Project Details *</span>
|
<span class="label-text font-semibold text-sm lg:text-base">
|
||||||
|
Project Details *
|
||||||
|
</span>
|
||||||
</label>
|
</label>
|
||||||
<textarea
|
<textarea
|
||||||
id="project-details"
|
id="project-details"
|
||||||
name="message"
|
name="message"
|
||||||
class="textarea textarea-bordered h-32 w-full resize-none"
|
class="textarea textarea-bordered textarea-sm lg:textarea-md h-24 lg:h-32 w-full resize-none"
|
||||||
placeholder="Tell us about your project requirements, timeline, and any specific needs..."
|
placeholder="Tell us about your project requirements, timeline, and any specific needs..."
|
||||||
required
|
required
|
||||||
value={message()}
|
value={message()}
|
||||||
@ -217,10 +231,10 @@ ${message()}`,
|
|||||||
</div>
|
</div>
|
||||||
</Show>
|
</Show>
|
||||||
|
|
||||||
<div class="form-control pt-4">
|
<div class="form-control pt-2 lg:pt-4">
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
class="btn btn-primary btn-lg w-full"
|
class="btn btn-primary btn-md lg:btn-lg w-full"
|
||||||
disabled={status() === "sending"}
|
disabled={status() === "sending"}
|
||||||
>
|
>
|
||||||
{status() === "sending" ? (
|
{status() === "sending" ? (
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
import Footer from "../components/Footer.astro";
|
import Footer from "../components/Footer.astro";
|
||||||
import { siteConfig } from "../config/site";
|
import { siteConfig } from "../config/site";
|
||||||
import "./src/styles/global.css";
|
import "../styles/global.css";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
title?: string;
|
title?: string;
|
||||||
@ -16,7 +16,7 @@ const metaTitle =
|
|||||||
---
|
---
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html lang="en" data-theme="sunset">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width" />
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
@ -11,47 +11,66 @@ const pageMetaInfo = {
|
|||||||
|
|
||||||
<Layout title={pageMetaInfo.title} description={pageMetaInfo.description}>
|
<Layout title={pageMetaInfo.title} description={pageMetaInfo.description}>
|
||||||
<!-- Hero Section -->
|
<!-- Hero Section -->
|
||||||
<section
|
<section class="py-8 lg:py-16">
|
||||||
class="hero min-h-[60vh] bg-gradient-to-br from-primary to-primary-focus"
|
<div class="max-w-6xl mx-auto px-4">
|
||||||
>
|
<div
|
||||||
<div class="hero-content text-center text-primary-content">
|
class="hero bg-gradient-to-br from-primary to-secondary rounded-xl lg:rounded-2xl"
|
||||||
<div class="max-w-4xl">
|
>
|
||||||
<h1 class="text-5xl font-bold mb-6 leading-tight">
|
<div
|
||||||
{siteConfig.name}
|
class="hero-content text-center text-primary-content py-8 lg:py-16 px-4"
|
||||||
</h1>
|
|
||||||
<p
|
|
||||||
class="text-xl mb-8 opacity-90 max-w-2xl mx-auto leading-relaxed"
|
|
||||||
>
|
>
|
||||||
{siteConfig.hero.description} — Delivering reliable, scalable
|
<div class="max-w-4xl w-full">
|
||||||
solutions tailored to your business needs.
|
<h1
|
||||||
</p>
|
class="text-3xl sm:text-4xl lg:text-5xl font-bold mb-4 lg:mb-6 leading-tight"
|
||||||
<div class="flex flex-col sm:flex-row gap-4 justify-center">
|
>
|
||||||
<a href="#contact" class="btn btn-secondary btn-lg">
|
Professional Software Solutions
|
||||||
Start Your Project
|
</h1>
|
||||||
</a>
|
<p
|
||||||
<a
|
class="text-base sm:text-lg lg:text-xl mb-6 lg:mb-8 opacity-90 max-w-2xl mx-auto leading-relaxed"
|
||||||
href="#services"
|
>
|
||||||
class="btn btn-outline btn-lg text-white border-white hover:bg-white hover:text-primary"
|
{siteConfig.hero.description} — Delivering reliable,
|
||||||
>
|
scalable solutions tailored to your business needs.
|
||||||
View Services
|
</p>
|
||||||
</a>
|
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<div class="max-w-6xl mx-auto px-4 py-16">
|
<div class="max-w-6xl mx-auto px-4">
|
||||||
<!-- Services Grid -->
|
<!-- Services Grid -->
|
||||||
<section id="services" class="mb-20">
|
<section id="services" class="mb-16 lg:mb-20">
|
||||||
<div class="text-center mb-12">
|
<div class="text-center mb-8 lg:mb-12">
|
||||||
<h2 class="text-4xl font-bold mb-4">Our Services</h2>
|
<h2
|
||||||
<p class="text-lg text-base-content/70 max-w-2xl mx-auto">
|
class="text-2xl sm:text-3xl lg:text-4xl font-bold mb-3 lg:mb-4"
|
||||||
Comprehensive solutions designed to drive your business
|
>
|
||||||
forward
|
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>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 lg:gap-6">
|
||||||
{
|
{
|
||||||
siteConfig.featureCards.cards.map((card, index) => (
|
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 bg-base-100 shadow-lg hover:shadow-xl transition-all duration-300 border border-base-200">
|
||||||
@ -153,21 +172,25 @@ const pageMetaInfo = {
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- About Section -->
|
<!-- About Section -->
|
||||||
<section class="mb-20">
|
<section class="mb-16 lg:mb-20">
|
||||||
<div class="hero bg-base-200 rounded-2xl">
|
<div class="hero bg-base-200 rounded-xl lg:rounded-2xl">
|
||||||
<div class="hero-content text-center py-16">
|
<div class="hero-content text-center py-12 lg:py-16 px-4">
|
||||||
<div class="max-w-3xl">
|
<div class="max-w-3xl w-full">
|
||||||
<h2 class="text-3xl font-bold mb-6">
|
<h2 class="text-2xl sm:text-3xl font-bold mb-4 lg:mb-6">
|
||||||
Why Choose Atash Consulting?
|
Why Choose Atash Consulting?
|
||||||
</h2>
|
</h2>
|
||||||
<p
|
<p
|
||||||
class="text-lg mb-8 text-base-content/80 leading-relaxed"
|
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
|
With over a decade of experience in the software
|
||||||
industry, we bring deep technical expertise and a
|
industry, we bring deep technical expertise and a
|
||||||
commitment to excellence to every project.
|
commitment to excellence to every project. From
|
||||||
|
initial consultation to final deployment, we're your
|
||||||
|
trusted partner in digital transformation.
|
||||||
</p>
|
</p>
|
||||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mt-8">
|
<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="text-center">
|
||||||
<div
|
<div
|
||||||
class="w-16 h-16 bg-primary rounded-full flex items-center justify-center mx-auto mb-4"
|
class="w-16 h-16 bg-primary rounded-full flex items-center justify-center mx-auto mb-4"
|
||||||
@ -222,7 +245,7 @@ const pageMetaInfo = {
|
|||||||
</div>
|
</div>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<div
|
<div
|
||||||
class="w-16 h-16 bg-accent rounded-full flex items-center justify-center mx-auto mb-4"
|
class="w-16 h-16 bg-primary rounded-full flex items-center justify-center mx-auto mb-4"
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
class="w-8 h-8 text-accent-content"
|
class="w-8 h-8 text-accent-content"
|
||||||
@ -252,10 +275,16 @@ const pageMetaInfo = {
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Contact Section -->
|
<!-- Contact Section -->
|
||||||
<section id="contact" class="mb-20">
|
<section id="contact" class="mb-16 lg:mb-20">
|
||||||
<div class="text-center mb-12">
|
<div class="text-center mb-8 lg:mb-12">
|
||||||
<h2 class="text-4xl font-bold mb-4">Get In Touch</h2>
|
<h2
|
||||||
<p class="text-lg text-base-content/70 max-w-2xl mx-auto">
|
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
|
Ready to start your project? Let's discuss how we can help
|
||||||
transform your ideas into robust, scalable software
|
transform your ideas into robust, scalable software
|
||||||
solutions.
|
solutions.
|
||||||
|
@ -2,36 +2,36 @@
|
|||||||
@plugin "daisyui";
|
@plugin "daisyui";
|
||||||
|
|
||||||
@plugin "daisyui/theme" {
|
@plugin "daisyui/theme" {
|
||||||
name: "sunset";
|
name: "nope";
|
||||||
default: false;
|
default: true;
|
||||||
prefersdark: false;
|
prefersdark: false;
|
||||||
color-scheme: "dark";
|
color-scheme: "light";
|
||||||
--color-base-100: oklch(22% 0.019 237.69);
|
--color-base-100: oklch(98% 0 0);
|
||||||
--color-base-200: oklch(20% 0.019 237.69);
|
--color-base-200: oklch(95% 0 0);
|
||||||
--color-base-300: oklch(18% 0.019 237.69);
|
--color-base-300: oklch(91% 0 0);
|
||||||
--color-base-content: oklch(77.383% 0.043 245.096);
|
--color-base-content: oklch(0% 0 0);
|
||||||
--color-primary: oklch(74.703% 0.158 39.947);
|
--color-primary: oklch(74% 0.16 232.661);
|
||||||
--color-primary-content: oklch(14.94% 0.031 39.947);
|
--color-primary-content: oklch(0% 0 0);
|
||||||
--color-secondary: oklch(72.537% 0.177 2.72);
|
--color-secondary: oklch(50% 0.134 242.749);
|
||||||
--color-secondary-content: oklch(14.507% 0.035 2.72);
|
--color-secondary-content: oklch(98% 0.003 247.858);
|
||||||
--color-accent: oklch(71.294% 0.166 299.844);
|
--color-accent: oklch(90% 0.058 230.902);
|
||||||
--color-accent-content: oklch(14.258% 0.033 299.844);
|
--color-accent-content: oklch(18.556% 0.052 122.962);
|
||||||
--color-neutral: oklch(26% 0.019 237.69);
|
--color-neutral: oklch(42% 0.199 265.638);
|
||||||
--color-neutral-content: oklch(70% 0.019 237.69);
|
--color-neutral-content: oklch(84.262% 0.025 278.68);
|
||||||
--color-info: oklch(85.559% 0.085 206.015);
|
--color-info: oklch(60.72% 0.227 252.05);
|
||||||
--color-info-content: oklch(17.111% 0.017 206.015);
|
--color-info-content: oklch(12.144% 0.045 252.05);
|
||||||
--color-success: oklch(85.56% 0.085 144.778);
|
--color-success: oklch(85.72% 0.266 158.53);
|
||||||
--color-success-content: oklch(17.112% 0.017 144.778);
|
--color-success-content: oklch(17.144% 0.053 158.53);
|
||||||
--color-warning: oklch(85.569% 0.084 74.427);
|
--color-warning: oklch(91.01% 0.212 100.5);
|
||||||
--color-warning-content: oklch(17.113% 0.016 74.427);
|
--color-warning-content: oklch(18.202% 0.042 100.5);
|
||||||
--color-error: oklch(85.511% 0.078 16.886);
|
--color-error: oklch(64.84% 0.293 29.349);
|
||||||
--color-error-content: oklch(17.102% 0.015 16.886);
|
--color-error-content: oklch(12.968% 0.058 29.349);
|
||||||
--radius-selector: 1rem;
|
--radius-selector: 1rem;
|
||||||
--radius-field: 0.5rem;
|
--radius-field: 1rem;
|
||||||
--radius-box: 1rem;
|
--radius-box: 1rem;
|
||||||
--size-selector: 0.25rem;
|
--size-selector: 0.25rem;
|
||||||
--size-field: 0.25rem;
|
--size-field: 0.25rem;
|
||||||
--border: 1px;
|
--border: 1px;
|
||||||
--depth: 0;
|
--depth: 1;
|
||||||
--noise: 0;
|
--noise: 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user