This is a static CA Electric landing page built with React 18 and Vite.
index.htmlcontains the root document, SEO metadata, and Open Graph tags.src/main.jsxmounts the React app.src/App.jsxcomposes the page sections and page-level browser behavior.src/components.jsxcontains the landing page sections, header, footer, form, and shared UI blocks.src/icons.jsxdefines inline SVG icons.src/constants.jsstores contact values such as phone, WhatsApp, email, web URL, and message limits.src/styles.csscontains the full stylesheet.public/assets/stores images and logo files served as static assets.public/fonts/stores local Montserrat font files.
Use pnpm because this repository includes pnpm-lock.yaml.
pnpm install
pnpm dev
pnpm run build
pnpm run previewpnpm installinstalls dependencies.pnpm devstarts the Vite development server athttp://localhost:5173.pnpm run buildcreates the production-ready static output indist/.pnpm run previewserves the built output locally for final checks.
Use ES modules and React function components. Keep component names in PascalCase, constants in uppercase snake case when they are shared configuration values, and CSS classes aligned with the existing l-*, hero__*, and section-specific naming patterns.
Prefer two-space indentation in JSX and JavaScript. Keep copy and contact details centralized in src/constants.js when reused across the page. Static image references should use root-relative paths such as /assets/logo.png.
No automated test runner is configured in package.json. Before submitting changes, run:
pnpm run build
pnpm run previewManually verify the landing page, responsive layout, contact links, and WhatsApp form behavior. For visual edits, check desktop and mobile widths.
This checkout does not expose Git history, so no repository-specific commit convention can be inferred. Use short, imperative commits such as Update contact form copy or Fix mobile hero spacing.
Pull requests should include a concise description, affected sections, manual verification notes, and screenshots for visual changes. Mention any updates to contact data, SEO metadata, or deployment output expectations.
Do not hard-code private credentials. This app is static; deployment should upload the contents of dist/ only. Keep public business contact settings in src/constants.js, and avoid adding server-only secrets to the frontend bundle.