VOLTWORKS ELECTRIC / TEMPLATE DOCUMENTATION

Make it yours.
Put it to work.

Your practical guide to customizing, uploading, and launching the VoltWorks Electric landing page.

Bootstrap 5.3.3Local assetsNo build step
View Template
01 / BUYER GUIDE

Welcome & template overview

VoltWorks Electric is a premium landing page for local electricians serving homes and small businesses. It introduces your services, explains your coverage, and gives visitors clear ways to call or start a quote inquiry.

The template uses HTML5, CSS3, Bootstrap 5.3.3, and lightweight vanilla JavaScript. Bootstrap, the Manrope variable font, SVG icons, and all photographs are included locally. There is no build process, database, or content-management system.

Start with the contact details and form.

The business information and testimonials are samples. The form prepares an email draft; it does not send or store submissions. Replace the demonstration phone number and email address before using the site for a real business.

This guide explains how to customize the supplied files. On small screens, swipe wide tables sideways or focus a table and use the arrow keys. The guide itself uses embedded CSS and system fonts, so you can read it offline.

02 / BUYER GUIDE

What’s included

Page areaWhat visitors can do
Header & heroUse section navigation, call the business, or jump to the quote form. A large local photograph accompanies the headline.
Electrical servicesRead six service cards and choose “Request This Service” to select a matching form option.
Home & business panelsView dedicated photographs and use buttons that select Residential or Commercial.
Why VoltWorks & service areasRead four service principles and select one of six communities to fill the location field.
Customer experiencesRead three sample testimonials. These are not verified reviews.
Electrical upgradesExplore lighting, EV charging, and panel/circuit planning. The EV button selects its service.
How it works & aboutRead the three-step inquiry process and business introduction.
Quote form & contactValidate project details, prepare an email request, find phone/email links, and review business hours.
FAQs & footerExpand eight FAQ answers, use navigation links, and open Privacy Policy and Terms dialogs.
Mobile controlsOpen a collapsible menu and use a fixed bottom bar for Call and Request a Quote.

Service, property-type, and location buttons update only their associated fields. Other entries stay intact. Policy dialogs support keyboard navigation, Escape to close, and return focus to their trigger.

Not included: a lead-delivery backend, booking system, instant pricing, payments, live availability, automatic address checks, analytics, or an embedded map.

03 / BUYER GUIDE

Folder & file guide

File or folderPurpose
index.htmlAll page copy, service cards, coverage areas, form fields, FAQs, and policy dialogs.
assets/css/style.cssCustom colors, typography, layout, image crops, responsive rules, and focus styling.
assets/js/main.jsQuote prefills, validation, email-draft preparation, mobile-menu behavior, and extra modal keyboard handling.
assets/images/Five optimized WebP photographs.
assets/fonts/manrope-latin-variable.woff2Local Manrope variable font, declared for weights 200–800.
assets/icons/13 local SVG icons: bolt, business, chat, check, ev, home, light, outlet, panel, phone, pin, plan, and repair.
assets/vendor/bootstrap.min.cssBundled Bootstrap 5.3.3 stylesheet.
assets/vendor/bootstrap.bundle.min.jsBundled Bootstrap 5.3.3 JavaScript, including Popper. No jQuery is needed.
favicon.svgBrowser-tab icon, separate from the text-based page wordmark.
LICENSES.txtBootstrap MIT and Manrope SIL Open Font License notices.
README.htmlThis self-contained buyer guide; optional on the public website.

The project root is voltworks-electric/. Inside it, index.html, favicon.svg, LICENSES.txt, this guide, and the assets/ folder sit together. The vendor files are directly inside assets/vendor/, not in another Bootstrap subfolder.

Services and coverage content are written directly in index.html. There is no separate service-data file or configuration panel.

04 / BUYER GUIDE

Quick start

  1. Extract the downloaded archive into a folder on your computer.
  2. Open the voltworks-electric project folder. Keep a backup before editing.
  3. Double-click index.html to preview it in a modern browser. Keep the assets/ folder beside it.
  4. Edit files with a plain-text or code editor, save, then refresh the browser. No npm installation or build command is required.
  5. After uploading, repeat your checks at the actual website address. Verify desktop and mobile behavior before launch.

The site assets work locally. Calling and opening an email draft depend on the device’s phone or email configuration. To use this guide’s View Template link, keep README.html alongside index.html; a standalone copy can be read anywhere, but its template link needs that sibling file.

05 / BUYER GUIDE

Uploading to Hostinger

  1. Back up any existing website files before replacing them.
  2. Open the website’s dashboard in Hostinger and open File Manager. Use hosting that supports uploading custom files; Hostinger Website Builder sites use a different workflow.
  3. For a main website, open public_html. For a demo or subsite, create or open the intended folder beneath it.
  4. Upload the archive, then use Extract. Inspect the result: this package has an outer voltworks-electric folder.
  5. For a main website, move the contents of that extracted folder into public_html. For a subsite, put the contents directly in its chosen folder. Keep index.html, assets/, and favicon.svg together.
  6. Visit your domain or the exact subfolder address. Confirm that the page and images load. Hard-refresh if the browser shows an older version.

For example, a subsite can use public_html/electric/index.html with public_html/electric/assets/. Avoid an unintended extra level such as public_html/electric/voltworks-electric/index.html.

You can omit README.html from the public upload. Retain applicable license notices. Remove the uploaded archive from public hosting after extraction.

Optional online help: Hostinger File Manager and extracting archives. This guide does not need those pages to load.

06 / BUYER GUIDE

Changing business details & page copy

Most changes begin in index.html. Search for the current wording instead of relying on line numbers. Update each relevant occurrence, then review the page from top to bottom.

FindUpdate and check
VoltWorks / VOLTWORKS / ElectricBrand text in the header and footer, about section, page title, policy wording, and accessible link labels. The yellow symbol is the .brand-mark element; changing the favicon does not change this wordmark.
Powering your home.Hero headline, supporting text, service descriptions, process steps, and other page copy.
(512) 555-0146 / +15125550146Visible demonstration phone number and every tel: destination in the header, quote area, contact section, footer, mobile bar, policies, and no-JavaScript fallback.
hello@voltworks.exampleVisible email, all mailto: links, policy contact details, no-JavaScript fallback, and the email destination/status string in assets/js/main.js.
Austin / Texas / community namesHero, service areas, about signature, contact block, footer, FAQs, title, meta description, and relevant testimonials.
Monday–Friday / Mon–Fri / Central Time / CTQuote-side hours, contact section, footer, weekend wording, and the time zone. The sample hours are 8:00 AM–5:00 PM weekdays; weekends are closed.
Maya R. / Daniel W. / Elena S.Replace each sample quote, name, community, and avatar initial with approved, accurate content.
Privacy Policy / Website TermsReview the full text inside both dialogs for the real business and actual data practices.

The phone number is fictional and the .example email is for demonstration; neither should be used to receive real inquiries. No walk-in office address or directions link is supplied. Do not add unsupported licensing, insurance, certification, response-time, or emergency-service claims.

Keep link destinations in the appropriate format. These are the supplied demonstration links:

<a href="tel:+15125550146">(512) 555-0146</a>
<a href="mailto:hello@voltworks.example">hello@voltworks.example</a>

In main.js, update the email address in emailLink.href and both contact details in status.textContent. Updating only the visible contact block will not change the prepared email’s recipient.

07 / BUYER GUIDE

Managing services, property types & areas

Service optionIcon in assets/icons/
Electrical Repairs & Troubleshootingrepair.svg
Panel & Circuit Upgradespanel.svg
Indoor & Outdoor Lightinglight.svg
EV Charger Installationev.svg
Outlets, Switches & Dedicated Circuitsoutlet.svg
Small Business Electrical Servicesbusiness.svg

Edit a service

  1. Find its .service-card inside #services. Update the heading, description, and icon path.
  2. If you rename it, update the button’s data-service and the matching option in select#service.
  3. Update any other related buttons, particularly the EV upgrade button, plus related FAQs and copy.
  4. Click every affected button and verify the selected form option.

This is the supplied EV card, formatted for readability. The comment explains the value match:

<!-- data-service must exactly match the form option value. -->
<article class="service-card h-100">
<div class="card-top">
<img class="icon" src="assets/icons/ev.svg" width="28" height="28" alt="" loading="lazy">
<span>04</span>
</div>
<h3>EV Charger Installation</h3>
<p>Explore a home charging setup that suits your vehicle, electrical capacity, and daily routine.</p>
<a class="text-action" href="#quote" data-service="EV Charger Installation">Request This Service</a>
</article>
<!-- The option text is also its value when no value attribute is supplied. -->
<option>EV Charger Installation</option>

To add a service, duplicate an entire col-md-6 col-lg-4 wrapper in the services row and add its form option. Give the card a suitable local icon and update its displayed sequence number. To remove a service, remove its wrapper and option, and update related buttons or text. Keep Other / Not Sure available for uncertain inquiries.

Property and area buttons

<!-- These attributes are used by the supplied click handler. -->
<a class="btn btn-outline-light" href="#quote" data-property="Residential">
  Discuss a Home Project
</a>
<a class="btn btn-outline-light" href="#quote" data-property="Commercial">
  Discuss a Business Project
</a>
<a href="#quote" data-location="Austin" class="area-link"
   aria-label="Ask About Your Area: Austin">
  <span>Austin</span><span class="area-action">Ask about your area</span>
</a>

The last example shows the functional area-link attributes and text; the full supplied link also contains a decorative pin icon. Property choices are Residential, Commercial, and Other. Keep attribute values equal to the corresponding option values.

The coverage grid contains Austin, Round Rock, Cedar Park, Pflugerville, Leander, and Georgetown. To edit a community, update its displayed name, data-location, and accessible label. Update the coverage references elsewhere, including FAQs and metadata.

The handler in main.js reads attributes only on links with href="#quote". It fills #service, #property, or #location without resetting other fields. “Check My Location” simply goes to the form; it performs no location verification and does not overwrite an existing location.

08 / BUYER GUIDE

Replacing images & icons

Photograph in assets/images/PixelsPlacement
electrician-hero.webp1536 × 1024Hero, beside the main headline
residential-electrical.webp1320 × 880For Homeowners panel
commercial-lighting.webp1320 × 880For Small Businesses panel
ev-charger-installation.webp1320 × 880Electrical upgrade section
electrician-about.webp1320 × 880About VoltWorks section

All five photographs are optimized WebP files with a 3:2 aspect ratio. They are AI-generated illustrations, not evidence of actual staff, customer projects, or completed installations. Use accurate, authorized photographs for a real business launch.

  1. Export an optimized, genuine WebP file. A 3:2 original is a practical match; keep enough resolution for the display size and high-density screens.
  2. For the simplest replacement, keep the existing filename and place the new file in assets/images/.
  3. If you change the filename, update the image’s src in index.html. For the hero, also update the rel="preload" image link in the head.
  4. Update alt to describe the new photograph and set width/height to its actual pixel dimensions.
  5. Check the crops on desktop, tablet, and mobile. A landscape original can be shown in a tall frame.
<img src="assets/images/electrician-hero.webp"
     alt="Electrician inspecting a closed electrical panel in a bright, tidy home utility room"
     width="1536" height="1024" fetchpriority="high">

Keep the hero prioritized rather than lazy-loaded. The four lower photographs use loading="lazy" and decoding="async". Preserve relative paths; a leading slash can break a subfolder installation.

Adjust a crop

In style.css, .hero-media>img and .upgrade-photo img use object-fit: cover. Their object-position rules choose the visible part of the photo. The hero uses 58% horizontally by default, 35% on tablet, and center on mobile. The upgrade photo uses 80% on desktop and center at widths up to 991px. Edit the appropriate rule for the affected screen size and review the subject placement.

The assets/icons/ folder holds local SVG line icons. Their yellow stroke is written inside each SVG; changing CSS color variables alone does not recolor them. Keep decorative icons’ empty alt text when the neighboring text already explains them.

Replace favicon.svg to change the browser-tab icon. If renamed, update the head’s rel="icon" link. Its colors are written inside the SVG. The page wordmark is separate HTML.

09 / BUYER GUIDE

Colors, typography & styling

Edit custom styles in assets/css/style.css, leaving the bundled Bootstrap files intact. The :root block contains these palette variables:

VariableValueUse
--ink#141719Main dark background
--surface#1c2022Alternate sections and cards
--surface-2#24292bAdditional surface token; currently not referenced elsewhere
--yellow#f4d34cPrimary accent, buttons, and focus outlines
--white#f4f4eeMain light text
--muted#b9bdbbSecondary text
--line#373d3fBorders and dividers

Bootstrap’s body background, text, and border variables refer to these tokens. Some component colors are literal values: for example, the yellow hover shade is #ffe57b, and SVG colors are inside the SVG files. Review those when changing the brand palette.

/* Existing palette values in assets/css/style.css */
:root {
  --ink: #141719;
  --surface: #1c2022;
  --yellow: #f4d34c;
  --white: #f4f4ee;
  --muted: #b9bdbb;
  --line: #373d3f;
}

Fonts and spacing

The site loads manrope-latin-variable.woff2 through @font-face, with weights 200–800 and font-display: swap. To replace it, place a properly licensed font in assets/fonts/, update the font-face URL and family, --bs-body-font-family, and the font preload in index.html. Keep license notices in LICENSES.txt. This Latin font may need replacement or additional character coverage for another language.

Use .section for section spacing, .container for width and side padding, and .btn, .btn-electric, and .btn-outline-light for buttons. Review headings and line heights after any font change.

Responsive behavior

The stylesheet includes adjustments at 1199, 991, 767, and 359px, plus a large-screen rule and a tablet-specific hero crop. The navigation expands at Bootstrap’s extra-large breakpoint; the fixed mobile action bar appears at widths up to 767px.

The root scroll-padding-top is 110px, reduced to 92px on mobile, to account for the sticky header. Keep an adequate offset if the header height changes. Mobile body padding uses calc(90px + env(safe-area-inset-bottom)); the action bar also accounts for the safe-area inset. Preserve enough clearance below the footer and focused form controls.

After changes, check text contrast, visible focus, 200% zoom, small screens, image crops, and reduced-motion behavior.

10 / BUYER GUIDE

Quote form & lead delivery

The form does not send or store submissions.

It validates entries in the browser and prepares an email link. No backend, database, or browser storage is connected. The visitor must open an email app and choose to send the message.

FieldHTML id/nameRequirement
NamenameRequired; up to 120 characters
EmailemailRequired; email format; up to 200 characters
PhonephoneOptional; up to 40 characters
Service neededserviceRequired; six services plus Other / Not Sure
Property typepropertyRequired; Residential, Commercial, Other
City or ZIP codelocationRequired; up to 100 characters
Preferred timeframetimeframeOptional; four supplied choices
Project detailsdetailsRequired; up to 1,800 characters

Current visitor flow

  1. Service, property-type, and area links fill their corresponding fields while retaining the other entries.
  2. Prepare Quote Request runs validation. Missing required values, whitespace-only required text, or an invalid email produce field messages and a focused error summary.
  3. Valid entries create the Open Email Request link. The status explicitly says the request has not been sent.
  4. The visitor opens their email app, reviews the recipient and body, and sends the message manually. Preparing or opening it never confirms pricing or an appointment.

Changing form entries hides the previously prepared link, so the visitor must prepare the updated request again. The phone and preferred timeframe are optional. Timeframe choices are “As soon as scheduling allows,” “Within the next few weeks,” “Within the next few months,” and “Just exploring options.”

If no email app opens, the visitor can write to the listed email address or call. A mail link depends on device settings and is not a guaranteed delivery mechanism. Very long drafts may also be limited by the email app. The site does not save a draft if the page is closed or reloaded. Replace the demonstration contact details before using either fallback.

Where to edit

In assets/js/main.js, find form.addEventListener('submit', ...). It prevents the default submission, validates fields, reads new FormData(form), then sets emailLink.href and status.textContent. The email subject and body use encodeURIComponent. In HTML, the main IDs are quote-form, form-errors, request-status, and email-request.

The submit button is disabled in the initial HTML and enabled by main.js. If JavaScript is unavailable, the phone/email fallback remains. Do not merely remove the disabled attribute or add a form action and assume delivery is connected: the current handler still prevents default submission.

Connecting real delivery

  1. Choose a server-side endpoint or form service and configure the real recipient and delivery behavior outside the browser.
  2. Replace the email-only submit branch with the provider’s required request format and field mapping. Retain useful client-side validation.
  3. Validate and limit incoming data on the server. Add appropriate spam protection and rate limits. Keep private keys and mail credentials server-side.
  4. Show a pending state during submission. Show success only after the endpoint confirms acceptance, and a useful error with a retry option when it fails. Do not describe acceptance as a booked appointment or guaranteed email delivery.
  5. Test real receipt, invalid inputs, network failures, rejected submissions, and duplicate clicks. Update the form notice, labels, no-JavaScript fallback, FAQs, Privacy Policy, and Terms to match the integration.

No integration is supplied in this package. If retaining email-only delivery, configure genuine contact details and keep its limitations clearly explained.

12 / BUYER GUIDE

SEO & accessibility

  • Update the head’s <title> and <meta name="description"> for the real business, services, and location. Keep location claims consistent with the page.
  • Keep one clear main heading and a logical sequence of section headings. Choose meaningful link and button labels.
  • Update the favicon and all image alt text when changing visuals. Use empty alt text for purely decorative icons.
  • Keep the “Skip to content” link and its #main destination.
  • Preserve input labels, their for/ID matches, and the error message IDs referenced by aria-describedby. Test the error summary and aria-invalid behavior.
  • Navigate the site using only the keyboard. Check visible focus, mobile navigation, form controls, FAQ buttons, and policy dialogs.
  • Check text and button contrast after palette changes. Test at 200% zoom and narrow widths without clipped text or page-wide scrolling.
  • Retain the prefers-reduced-motion: reduce rules that disable smooth scrolling and unnecessary animation. Ensure the mobile bar never covers footer links or controls.

These steps support usability and clear page information; they do not guarantee search rankings or formal accessibility certification.

13 / BUYER GUIDE

Before-launch checklist

  • Replace the business name, demonstration telephone number, email address, hours, time zone, and sample communities everywhere they appear.
  • Replace sample testimonials with genuine, approved statements. Remove any sample that cannot be replaced.
  • Use accurate, authorized business photographs and review their alt text and responsive crops.
  • Verify service descriptions and any credentials, coverage, availability, or other business claims.
  • Review and replace policy wording to reflect actual contact methods, hosting, and data handling.
  • Connect and test lead delivery, or configure the email-only workflow with real contact details and retain its truthful notices.
  • Verify telephone/email destinations, every quote prefill, navigation anchors, menu, FAQ accordion, and both policy dialogs.
  • Test required-field errors, email preparation or real submission, failure states, and preservation of existing form entries.
  • Confirm no action falsely claims an inquiry was delivered, a price agreed, or an appointment booked.
  • Test desktop, tablet, mobile, keyboard navigation, reduced motion, and zoom. Check mobile bottom-bar clearance.
  • Check the public URL after upload and refresh cached assets. Keep relative paths intact.
  • Retain third-party license notices. Omit this guide from the public upload if preferred.
14 / BUYER GUIDE

Troubleshooting

IssueWhat to check
Images are missingConfirm each src matches a file in assets/images/, including capitalization and extension. Keep paths relative and upload the actual WebP bytes.
The whole page looks unstyledConfirm assets/css/style.css and assets/vendor/bootstrap.min.css load. Check their head links and avoid extra folder nesting.
Changes do not appearSave and re-upload the edited file to the active folder. Hard-refresh (Cmd+Shift+R on Mac Chrome; Ctrl+Shift+R on Windows Chrome) or check in a private window. If a cache service is enabled, clear its affected cache. You can version CSS/JS links with a query such as ?v=2 after an update.
The site loads at the wrong addressCheck where index.html actually sits. For the main domain it belongs directly in public_html; for a subsite it belongs directly in that subfolder.
Service or property prefill is blankCheck href="#quote", the correct data attribute, and an exact match to a form option. Without a value attribute, the option’s text is its value.
Area prefill does not workCheck data-location and input#location. Confirm main.js loads. The generic Check My Location button intentionally does not fill a location.
Menu, FAQ, or modal does not openCheck assets/vendor/bootstrap.bundle.min.js, target IDs, and Bootstrap data attributes. Keep the deferred Bootstrap script before the deferred custom script.
Quote button stays disabled or several interactions failOpen the browser’s developer console for errors. Check for missing main.js, unmatched quotes/brackets, changed IDs, or broken script paths. Fix the first reported error and reload.
A photograph crops out the subjectAdjust the relevant object-position rule in style.css. Review the responsive override as well as the base rule; avoid stretching the photo.
Mobile bar covers contentRestore the mobile body bottom padding and safe-area rules. If the bar is taller, increase clearance and check form controls, validation messages, and the footer.
The form does not deliver an inquiryThis is expected without a backend. It prepares a mail link only. Update the demonstration recipient and send through the email app, or connect and test a real endpoint.
No email draft opensConfigure a default email handler or contact the real business email directly. Phone contact remains an alternative. Recheck the mailto: recipient and use a shorter description if the email app has link-length limits.
15 / BUYER GUIDE

Licenses & dependencies

ComponentIncluded filesNotice
Bootstrap 5.3.3assets/vendor/bootstrap.min.css
assets/vendor/bootstrap.bundle.min.js
MIT license in LICENSES.txt and notices in vendor files.
PopperIncluded within Bootstrap’s JavaScript bundle.Distributed within the Bootstrap bundle; preserve the bundled notices. No separate installation is required.
Manrope variable fontassets/fonts/manrope-latin-variable.woff2SIL Open Font License 1.1 in LICENSES.txt.
Photographs & local SVGsassets/images/, assets/icons/, favicon.svgPhotos are generated illustrations. Keep replacement media permissions and any applicable attribution with your project.

Read LICENSES.txt and preserve the applicable third-party notices when modifying or distributing the template. The site has no remote font, image, icon, or CDN dependency. This guide introduces no external dependency.

This documentation does not create template purchase terms, resale rights, support services, update guarantees, or warranties. Refer to any separately supplied purchase agreement for those matters.