/* eslint-disable */ const { useState, useEffect, useRef } = React; // ============================================================================ // TWEAKABLE DEFAULTS // ============================================================================ const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accentColor": "#F26522", "navy": "#1B2A5B", "heroVariant": "editorial", "showTicker": true, "ctaPhone": "+62 812 5259 4443", "ctaLabel": "Konsultasi via WhatsApp", "heroEyebrow": "JASA PEMBUATAN LAPANGAN MINI SOCCER", "heroHeadline": "Lapangan mini soccer berstandar FIFA, dibangun untuk iklim tropis." }/*EDITMODE-END*/; // ============================================================================ // MOBILE HOOK // ============================================================================ function useIsMobile() { const [isMobile, setIsMobile] = useState(window.innerWidth < 768); useEffect(() => { const handler = () => setIsMobile(window.innerWidth < 768); window.addEventListener("resize", handler); return () => window.removeEventListener("resize", handler); }, []); return isMobile; } // ============================================================================ // SMALL ATOMS // ============================================================================ const Pill = ({ children, tone = "navy" }) => { const styles = { navy: { bg: "rgba(27,42,91,0.08)", fg: "#1B2A5B", bd: "rgba(27,42,91,0.18)" }, orange: { bg: "rgba(242,101,34,0.10)", fg: "#C24E12", bd: "rgba(242,101,34,0.28)" }, green: { bg: "rgba(43,168,74,0.10)", fg: "#1F7A36", bd: "rgba(43,168,74,0.28)" }, dark: { bg: "rgba(255,255,255,0.06)", fg: "#fff", bd: "rgba(255,255,255,0.18)" }, }[tone]; return ( {children} ); }; const Arrow = ({ size = 16 }) => ( ); const LogoMark = ({ size = 36, color = "#F26522" }) => ( ); const LogoFull = ({ light = false }) => (
RagaSport HEALTHIER, HAPPIER
); const WA_LINK = "https://api.whatsapp.com/send?phone=6281252594443&text=Saya%20memerlukan%20informasi%20tentang%20Lapangan%2C%20apakah%20bisa%20dibantu%3F"; // ============================================================================ // TICKER // ============================================================================ function Ticker() { const items = [ "FIFA QUALITY PRO TURF", "★", "GARANSI INSTALASI", "★", "DESAIN 3D & VALUE ENGINEERING", "★", "200+ PROYEK TERSELESAIKAN", "★", "TROPICAL CLIMATE SPECIALIST", "★", "RAB TRANSPARAN", "★", ]; return (
{[...items, ...items, ...items].map((t, i) => ( {t} ))}
); } // ============================================================================ // HERO // ============================================================================ function Hero({ tweaks }) { const isMobile = useIsMobile(); return (
{tweaks.heroEyebrow} {!isMobile && (
KEDIRI ↔ JAKARTA ↔ NUSANTARA ↔ SELURUH INDONESIA
)}
{/* LEFT */}

Bangun lapangan
mini soccer berstandar FIFA
tahan iklim tropis.

Dari survei lahan, konsep 3D, hingga grooming pasca-instalasi — RagaSport mendesain ekosistem bermain yang awet, efisien, dan diminati komunitas. Kontraktor lapangan olahraga sejak 2011.

RESPON CEPAT
{tweaks.ctaPhone}
EMAIL
contact@ragasport.co.id
{/* RIGHT */}
Lapangan mini soccer
PROJECT 087 — KEDIRI HIGHLAND 40 × 20 m · synthetic turf · FIFA Quality
{/* Mobile: inline stats */} {isMobile && (
SEJAK 2011
200+
fasilitas terselesaikan
ONLINE
Tim survei siap kunjungan ke lokasi Anda.
)} {/* Desktop: floating cards */} {!isMobile && ( <>
SEJAK 2011
200+
fasilitas terselesaikan
SEDANG ONLINE
Tim survei siap kunjungan ke lokasi lahan Anda di seluruh Indonesia.
)}
); } // ============================================================================ // TRUST BAR // ============================================================================ function TrustBar() { const isMobile = useIsMobile(); const clients = ["Sekolah Internasional", "Resort & Hotel", "Perumahan Cluster", "Sport Center", "Kampus & Universitas", "Kementerian"]; return (
Dipercaya oleh klien lintas sektor
{clients.map((c, i) => (
{c}
))}
); } // ============================================================================ // OPPORTUNITY // ============================================================================ function Opportunity() { const isMobile = useIsMobile(); const cards = [ { num: "01", title: "Pusat Aktivitas Komunitas", body: "Komunitas amatir, tim kantor, hingga liga antar-RT terus tumbuh di kota-kota Indonesia. Lapangan mini soccer jadi magnet sosial yang mengisi kebutuhan ini setiap hari.", tone: "#F26522" }, { num: "02", title: "Fasilitas Sekolah & Akademi", body: "Sekolah dan akademi sepak bola lokal aktif mencari tempat latihan rutin. Lapangan yang layak dan terjangkau selalu jadi prioritas — dan daftarnya panjang.", tone: "#1B2A5B" }, { num: "03", title: "Arena Turnamen & Event", body: "Liga komunitas, turnamen antar-kantor, hingga event sponsor lokal — semua butuh venue. Lapangan yang terkelola baik bisa jadi arena favorit di kotamu.", tone: "#2BA84A" }, { num: "04", title: "Mesin Passive Income", body: "Omzet sewa lapangan bisa tembus Rp 80–130 juta/bulan. Dengan ROI rata-rata 1–2 tahun, ini bukan sekadar fasilitas — ini aset produktif jangka panjang.", tone: "#F26522" }, ]; return (
PELUANG · SELURUH INDONESIA

Lebih dari fasilitas — aset bisnis yang menghasilkan.

Sepak bola adalah olahraga paling populer di Indonesia — tapi lapangan mini soccer yang layak masih jauh dari cukup. Permintaan tinggi, supply terbatas, dan potensi omzet yang nyata.

{cards.map((c, i) => (
{c.num} / 04

{c.title}

{c.body}

))}
); } // ============================================================================ // SPECS // ============================================================================ function Specs() { const isMobile = useIsMobile(); const [activeTab, setActiveTab] = useState(0); const tabs = [{ label: "Ukuran Lapangan", code: "01" }, { label: "Material Flooring", code: "02" }, { label: "Drainase & Iklim", code: "03" }]; const content = [ { title: "Standar FIFA, fleksibel sesuai lahan", body: "Standar FIFA untuk mini soccer ada di kisaran panjang 38–42 m dan lebar 18–25 m. Untuk lahan terbatas, kami menyesuaikan dimensi tanpa mengorbankan keamanan dan ritme permainan.", bullets: [["38–42 m","Panjang ideal"],["18–25 m","Lebar ideal"],["3 m","Run-off perimeter"],["7v7 / 5v5","Format permainan"]] }, { title: "Synthetic turf atau interlock modular", body: "Pemilihan permukaan menentukan kenyamanan, keselamatan, dan daya tahan. Kami merekomendasikan rumput sintetis FIFA Quality untuk pengalaman premium, atau interlock modular untuk multi-fungsi.", bullets: [["FIFA Quality Pro","Sertifikasi turf"],["50–60 mm","Pile height standar"],["8.500 dtex","Densitas serat"],["10+ tahun","Estimasi umur pakai"]] }, { title: "Drainase yang siap hujan deras tropis", body: "Iklim tropis dan curah hujan tinggi mengharuskan drainase didesain sejak hari pertama. Subbase berlapis, kemiringan presisi, dan subdrain perimeter memastikan lapangan tetap bermain pasca-hujan.", bullets: [["1–2 %","Kemiringan permukaan"],["30–40 cm","Lapisan batu pecah"],["5–10 cm","Lapisan pasir kasar"],["Subdrain","Pipa perforated"]] }, ][activeTab]; return (
JASA PEMBUATAN LAPANGAN MINI SOCCER

Detail kecil yang bikin lapangan tahan lama.

{!isMobile &&

Membangun mini soccer bukan sekadar pasang gawang. Tiga aspek ini membedakan lapangan yang awet 10+ tahun dari yang harus direnovasi tahunan.

}
{tabs.map((t, i) => ( ))}

{content.title}

{content.body}

{content.bullets.map(([k, v], i) => (
{k}
{v}
))}
); } function SpecDiagram({ tab }) { return (
FIG. {String(tab + 1).padStart(2, "0")} SCALE: NTS
{tab === 0 && } {tab === 1 && } {tab === 2 && }
); } function PitchDiagram() { return ( 40 M ); } function TurfDiagram() { const layers = [ { label: "FIBRILLATED YARN · 60mm", color: "#2BA84A", h: 50 }, { label: "RUBBER INFILL", color: "#0F1424", h: 22 }, { label: "SAND INFILL", color: "#D4C5A8", h: 16 }, { label: "BACKING / GLUE", color: "#1B2A5B", h: 10 }, { label: "SHOCK PAD", color: "#F26522", h: 18 }, { label: "ASPHALT BASE", color: "#3A3A3A", h: 22 }, { label: "AGGREGATE 30–40cm", color: "#7A6B5A", h: 36 }, ]; let y = 30; return ( {layers.map((l, i) => { const rect = ; const text = {l.label}; const line = ; const out = [rect, line, text]; y += l.h; return out; })} CROSS-SECTION ); } function DrainDiagram() { return ( PERMUKAAN · KEMIRINGAN 1–2% BATU PECAH · 30–40 cm SUBDRAIN PERFORATED PIPE ); } // ============================================================================ // WHY RAGASPORT // ============================================================================ function WhyRagasport() { const isMobile = useIsMobile(); const reasons = [ { code: "01", title: "Desain berstandar terukur", body: "Material FIFA Quality / FIFA Quality Pro untuk rumput sintetis. Subbase berlapis, kemiringan 1–2%, subdrain perforated di perimeter." }, { code: "02", title: "3D Concept & Value Engineering", body: "Rancangan 3D yang menampilkan layout lapangan keseluruhan. Survei lokasi & analisa mendalam untuk opsi material paling efisien." }, { code: "03", title: "Spesialis iklim tropis", body: "Desain hemat energi (LED low-watt, kontrol otomatis), opsi solar-ready roof, dan rainwater harvesting untuk maintenance harian." }, { code: "04", title: "Manajemen proyek transparan", body: "RAB/BoQ terperinci, time schedule realistis, PIC lapangan satu pintu. Progress dilaporkan mingguan dengan dokumentasi foto/video." }, { code: "05", title: "Instalasi rapi & presisi", body: "Toleransi joint ketat, adhesive premium, line marking presisi turnamen. Edging, perimeter anchor, dan aksesori ditangani teknisi berpengalaman." }, { code: "06", title: "Garansi & after-sales jelas", body: "Garansi instalasi sesuai MoU, plus SOP perawatan harian–bulanan, jadwal grooming/infill top-up, dan pelatihan caretaker." }, ]; return (
KENAPA RAGASPORT

Bukan sekadar "membangun" — kami mendesain ekosistem bermain.

{!isMobile &&

Kombinasi pengalaman teknis, manajemen proyek yang rapi, dan sentuhan lifestyle khas iklim tropis Indonesia.

}
{reasons.map((r, i) => (
{r.code}

{r.title}

{r.body}

))}
); } // ============================================================================ // PROCESS // ============================================================================ function Process() { const isMobile = useIsMobile(); const steps = [ { day: "HARI 1", title: "Konsultasi & Survei Lahan", body: "Tim datang ke lokasi, ukur kontur, cek kondisi tanah dan akses." }, { day: "MINGGU 1", title: "Konsep 3D & RAB", body: "Rancangan 3D layout lapangan, BoQ terperinci, time schedule." }, { day: "MINGGU 2–6", title: "Konstruksi & Subbase", body: "Galian, drainase, pondasi berlapis, pemasangan asphalt base." }, { day: "MINGGU 7–8", title: "Instalasi Turf & Aksesori", body: "Penggelaran rumput sintetis, line marking, gawang & net." }, { day: "PASCA-INSTALASI", title: "Grooming & Pelatihan", body: "SOP perawatan, pelatihan caretaker, garansi & dukungan." }, ]; return (
PROSES KERJA

Dari survei sampai grooming — satu pintu.

{isMobile ? (
{steps.map((s, i) => (
{s.day}

{s.title}

{s.body}

))}
) : (
{steps.map((s, i) => (
{s.day}

{s.title}

{s.body}

))}
)}
); } // ============================================================================ // PORTFOLIO // ============================================================================ function Portfolio() { const isMobile = useIsMobile(); const projects = [ { city: "Tangerang", year: "2025", img: "assets/portfolio-tangerang-2025.jpg" }, { city: "Pontianak", year: "2025", img: "assets/portfolio-pontianak-2025.jpg" }, { city: "Ponorogo", year: "2025", img: "assets/portfolio-ponorogo-2025.jpg" }, { city: "Pemalang", year: "2025", img: "assets/portfolio-pemalang-2025.jpg" }, ]; return (
PORTOFOLIO TERPILIH

Sebagian dari 200+ lapangan yang sudah jalan.

Semua portofolio
{projects.map((p, i) => (
{p.year} {p.city}
))}
); } // ============================================================================ // TESTIMONIAL // ============================================================================ function Testimonial() { const isMobile = useIsMobile(); return (
"
TESTIMONI KLIEN

"Hasilnya bagus, kualitasnya tiada tanding, pengerjaan transparan dari awal hingga akhir. Yang paling saya sukai adalah timelinenya disiplin. Sangat profesional!"

Rahmad
KEDIRI, JAWA TIMUR
); } // ============================================================================ // FAQ // ============================================================================ function FAQ() { const isMobile = useIsMobile(); const [open, setOpen] = useState(0); const items = [ { q: "Berapa lama proses pembangunan lapangan mini soccer?", a: "Tergantung kondisi lahan dan ukuran. Standar kami 6–10 minggu dari penandatanganan kontrak hingga lapangan siap dipakai, termasuk drainase berlapis dan instalasi turf." }, { q: "Apakah RagaSport menerima proyek di luar Jawa?", a: "Ya. Kami sudah menyelesaikan proyek di seluruh Indonesia — dari kota besar sampai daerah wisata, termasuk Sumatra, Kalimantan, Sulawesi, Bali, dan NTB." }, { q: "Material rumput apa saja yang tersedia?", a: "Synthetic turf FIFA Quality / FIFA Quality Pro dengan pile height 50–60 mm, dan interlock modular untuk lapangan multi-fungsi. Pilihan disesuaikan tujuan proyek." }, { q: "Apakah ada garansi setelah lapangan selesai?", a: "Ya. Garansi instalasi sesuai MoU, plus SOP perawatan, jadwal grooming, infill top-up, dan pelatihan caretaker untuk operasional jangka panjang." }, { q: "Bisakah RagaSport bantu skema bisnis & monetisasi lapangan?", a: "Tentu. Kami punya pengalaman mendesain ekosistem bermain — termasuk pertimbangan membership, sewa, event hosting, dan tarif komunitas." }, ]; return (
FAQ

Hal-hal yang sering ditanyakan calon mitra.

Tidak ketemu jawabannya? Tanya langsung tim kami via WhatsApp — respon di bawah 30 menit.

{items.map((it, i) => (
{open === i &&
{it.a}
}
))}
); } // ============================================================================ // FINAL CTA // ============================================================================ function FinalCTA({ tweaks }) { const isMobile = useIsMobile(); return (

Lahan sudah ada?
Kami bantu jadikan lapangan kebanggaan.

Survei lokasi seluruh Indonesia. Konsep 3D dan RAB siap secepatnya.

HUBUNGI KAMI LANGSUNG

Chat tim kami — respon di bawah 30 menit.

ONLINE · RESPON CEPAT
Chat Sekarang via WhatsApp
Atau telepon {tweaks.ctaPhone} · contact@ragasport.co.id
); } // ============================================================================ // PANEL & APP // ============================================================================ function Panel() { const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS); useEffect(() => { window.__tweaks = tweaks; window.dispatchEvent(new CustomEvent("tweakschange")); }, [tweaks]); return ( setTweak("accentColor", v)} /> setTweak("navy", v)} /> setTweak("heroEyebrow", v)} /> setTweak("ctaLabel", v)} /> setTweak("ctaPhone", v)} /> setTweak("showTicker", v)} /> ); } function App() { const [tweaks, setTweaks] = useState(TWEAK_DEFAULTS); useEffect(() => { const onChange = () => setTweaks({ ...window.__tweaks }); window.addEventListener("tweakschange", onChange); return () => window.removeEventListener("tweakschange", onChange); }, []); useEffect(() => { document.documentElement.style.setProperty("--accent", tweaks.accentColor); document.documentElement.style.setProperty("--navy", tweaks.navy); }, [tweaks]); return ( <> {tweaks.showTicker && } ); } ReactDOM.createRoot(document.getElementById("root")).render();