Overview

Sliceria template home pages

A loud, street, pop-art HTML template for New York slice shops, pizzerias and pizza bars with events. Sliceria ships three home pages, a light and a dark theme, right-to-left support, and slice-shop logic that is worked out rather than typed in: what is out of the oven right now at every shop, deals that run by the hour, whole pies to order for pickup or delivery, an events calendar with seats left and tickets, back-room parties priced live, and six locations with open now and a borough filter.

What’s included

  • 3 home pages, each with its own scroll moment: the split-flap slice board flips to the next pie out of the oven, a slice pulls away from the pie with its cheese stretching, the comic strip of a pizza class lays itself out panel by panel
  • Comic Panels preloader: three halftone panels slam in, the last one fills the screen and lifts away
  • Bar Wipe reveals (a tomato-red bar sweeps across each photo), burst badges that pop, a comic burst behind every price on hover
  • Light and dark mode on one switch in every header, remembered between visits and applied before the page paints
  • Right-to-left stylesheets and a flag language picker in every header: a right-to-left language turns any page around
  • WebGL layers — Spray Paint over brick in the night bands and a pizza slice spinning in flat comic shading in the footer — tinted by the theme colours
  • Out Of The Oven: a live split-flap board per shop; the menu with dietary chips and search; whole pies with extra toppings and pickup slots
  • The bag: codes that work only inside their hours, pickup at any shop or delivery by ZIP and borough, tip, NYC tax, order number
  • Events calendar with seats left, a four-step ticket wizard, private parties with a live estimate
  • Locations with a borough filter and open now, gallery, crew, history timeline, FAQ with search, blog with six post formats, account, coming soon, 404
  • Fully responsive; clean, commented HTML5, CSS and JavaScript
📄 31 HTML files

Getting Started

Thank you for choosing Sliceria. Follow the steps below to get your site live.

1. Open locally

Unzip the downloaded package and open sliceria/index.html in any modern browser (Chrome, Firefox, Edge, Safari). No build tools or server are required — the slice board, the bag, checkout, the calendar, tickets and the party estimate all work straight from the files.

2. Deploy to a server

Upload the contents of the sliceria/ folder to your hosting provider using an FTP client (such as FileZilla) or your hosting control panel. Once uploaded, navigate to your domain and the template will load immediately.

3. Customise

All custom styling lives in assets/css/style.css (with a numbered Table of CSS at the top) and assets/css/responsive.css. Colours and fonts are controlled by CSS variables — see Colors & Fonts. The slices, ovens, shops, hours, deals, events and prices live in one place — see Slice Shop Logic.

Tip: Replace the neutral placeholder images in assets/img/ with your own photography at the same dimensions for the best result. The pies in img/pies/ sit on a transparent ground (PNG): keep yours transparent too, so they float on the cards and the night hero.

File Structure

Below is an overview of the key files and folders included in this template.

index.html / homepage-2.html / homepage-3.htmlThree home pages: Slice Shop (the split-flap slice board), Pizzeria & Pies (the slice pull with its cheese stretch), Events & Nights (the comic strip)
slices.htmlOut Of The Oven: the full slice board for any shop, from the clock
menu.htmlThe whole menu: category tabs, dietary chips (all must match), search, slice and pie prices, the deals by the hour
pies.html / pie-details.html / cart.html / checkout.html / wishlist.htmlWhole pies: filters, sort and search; a pie with extra toppings and its next pickup; the bag with codes by the hour; checkout with pickup slots or delivery by ZIP, tip and tax; wishlist
events.html / event-details.htmlThe events calendar (month grid, kind and shop filters, seats left) and the four-step ticket wizard
private-parties.htmlThe back rooms: packages, the live estimate and the four-step request
locations.html / location-details.htmlSix shops with a borough filter and open now; one shop’s page with its own live board, hours and map
about.html / history.htmlThe shop’s story (a comic page of panels) and the history timeline
team.html / team-details.htmlThe crew and a crew profile
gallery.htmlGallery with filters and a lightbox, Instagram grid
faq.htmlQuestions by topic with search
account.html / login.html / register.html / forgot-password.htmlMy account (orders and event tickets) and the sign-in pages
blog.html / blog-grid.html / blog-details.htmlBlog list with six post formats and a sidebar, blog grid, an article with comments
contact.htmlContact cards, a map, the contact form and the six counters
coming-soon.html / 404.htmlCountdown to the next shop, error page
sendmail.phpAJAX mail handler for the contact and comment forms (see Contact Form)
assets/css/style.cssAll custom styles, numbered Table of CSS (21 sections)
assets/css/responsive.cssDesktop-first breakpoints 1399 / 1199 / 991 / 767 / 575, plus wide screens from 1600 and 1960
assets/css/style.rtl.css / responsive.rtl.cssThe right-to-left twins (see RTL)
assets/css/plugins/Bootstrap (LTR and RTL), Swiper, Fancybox (vendor CSS)
assets/js/main.jsAll custom scripts, numbered JS INDEX (35 blocks)
assets/js/plugins/jQuery, Bootstrap, Swiper, Fancybox, GSAP, ScrollTrigger
assets/img/Images, one folder per kind (see Images)
assets/fonts/theme-icons/The sun and moon of the theme switch, loaded locally
assets/webfonts/ + assets/css/fontawesome-all.cssFont Awesome Free, loaded locally

Folder Structure

The package unzips to two folders: Documentation/ (this guide) and sliceria/, the template. Every page sits in the template’s root; everything the pages load sits under assets/:

sliceria/
├── *.html                              the 31 pages, all in the root (see File Structure)
├── sendmail.php                        the AJAX mail handler for the forms
└── assets/
    ├── css/
    │   ├── style.css                   all custom styles, numbered Table of CSS
    │   ├── style.rtl.css               the right-to-left twin of style.css
    │   ├── responsive.css              breakpoints 1399 / 1199 / 991 / 767 / 575
    │   ├── responsive.rtl.css          the right-to-left twin of responsive.css
    │   ├── fontawesome-all.css         Font Awesome Free, loaded locally
    │   └── plugins/                    vendor stylesheets
    │       ├── bootstrap.min.css
    │       ├── bootstrap.rtl.min.css   Bootstrap for right-to-left pages
    │       ├── jquery.fancybox.min.css
    │       └── swiper-bundle.min.css
    ├── js/
    │   ├── main.js                     all custom scripts, numbered JS INDEX (35 blocks)
    │   └── plugins/                    vendor scripts
    │       ├── bootstrap.bundle.min.js
    │       ├── gsap.min.js
    │       ├── jquery-3.7.1.min.js
    │       ├── jquery.fancybox.min.js
    │       ├── ScrollTrigger.min.js
    │       └── swiper-bundle.min.js
    ├── fonts/
    │   └── theme-icons/                the sun and moon of the theme switch
    ├── webfonts/                       Font Awesome Free font files
    └── img/                            images, one folder per kind
        ├── art/                         8 files
        ├── banner/                      6 files
        ├── flags/                       6 files
        ├── food/                        24 files
        ├── icons/                       30 files
        ├── logo/                        3 files
        ├── menu/                        3 files
        ├── people/                      7 files
        ├── pies/                        16 files
        └── place/                       16 files

To publish the site, upload the contents of sliceria/ to your web root. Photos keep their folder, file name and size when you replace them, so no page needs editing.

Colors & Fonts

The whole design is driven by CSS variables declared at the top of style.css. Change a token once and every section, button and card updates. Colours used with transparency have an -rgb twin (for example --sl-red-rgb) — change both together.

Tomato Red--sl-red
Red Text--sl-red-text
Mustard--sl-gold
Mustard Text--sl-gold-text
Basil (logo)--sl-basil
Ink--sl-ink
Night--sl-night
Cream Ground--sl-bg
Paper Ground--sl-soft
Card White--sl-surface
Heading--sl-heading
Body--sl-text

Tomato red fills the buttons, the Ben-Day dot bands and the Bar Wipe, always with white text. Mustard fills the burst badges and the display words on night; on the cream page small mustard text uses the deeper mustard text colour. Basil is kept for the logo and the open-now light. --sl-bg, --sl-surface, --sl-soft, --sl-heading and --sl-text are the semantic names the components use — the dark theme swaps those (see Light & Dark Mode). --sl-frame draws the comic panels’ ink frames and their hard shadow; --sl-burst is the burst star’s shape.

Fonts

Two Google Fonts are loaded in the head of each page: Oswald (every heading, the menu, buttons, prices and the split-flap tiles, in capitals) and Open Sans (body text). Swap them by editing the Google Fonts link and the --sl-ff-head / --sl-ff-body variables. The misprint (a hard offset in a second ink behind the display titles) is the class sl-print.

Logo

The logo is “Sliceria” in a green brush script with a small red NYC over the S and a slice for the first i’s dot. It ships as ready-made PNG files in assets/img/logo/:

  • logo.png — for light grounds: the cream header
  • logo-light.png — for dark grounds: the night headers of Home 2 and Home 3, the footer, dark mode, the preloader
  • favicon.png — the browser tab icon

The logo’s lettering appears only inside the images — the pages do not load its font.

Light & Dark Mode

Every header (and the mobile menu) has a theme switch. The choice is saved in the browser under the key sliceria-theme and applied by a one-line script in the <head> before the page paints, so a dark visitor never sees a light flash. The switch sets data-theme="dark" on the <html> tag.

Dark Ground--sl-bg
Dark Surface--sl-surface
Dark Soft--sl-soft
Dark Heading--sl-heading
Dark Red Text--sl-red-text
Dark Mustard Text--sl-gold-text
  • Tokens — the dark values sit in one block, [data-theme="dark"] { … }, right after :root in style.css. Change a dark colour there. The comic frames turn cream in the dark.
  • Bands that stay dark — sections with the class is-night (the slice board band, the back-room nights, the comic strip, the footer) are dark in both themes; the red dot bands is-red keep their red.
  • The slice board — the split-flap board is a dark board in both themes, like the real thing.
  • Start dark — to open the site dark for first-time visitors, add data-theme="dark" to the <html> tag of each page; the switch still works and is still remembered.

Slice Shop Logic

The figures on every page come from one data block, JS block 09 Slice Data near the top of main.js (var SLICE). Edit it once and the board, the cards, the calendar, the prices and the totals follow. Prices are in US dollars; times are minutes after midnight (a late close past midnight runs on, so 1500 is 1:00 am).

shops / boroughs / openingSix shops with their borough, weekly hours, phone, map, seats and back room; the five boroughs (Staten Island is next); the next shop’s opening day (the coming-soon countdown).
slices / pieSlices / rushesEvery slice type once: a slice price, a whole-pie price, its oven cycle (first, every), a daily cap for the specials, how fast it sells (sell, minutes a slice) and the rushes that sell faster (lunch, dinner, late night).
extras / cats / dietsSides, sweets and drinks; the menu’s categories and dietary marks (veg, vegan, spicy).
toppings / pieLead / pieOfDayExtra toppings for a whole pie, the minutes a pie takes from order to pickup (25), and the pie of the day by weekday ($3 off).
dealsEach deal’s weekdays and hours (a late window runs past midnight), its online code and rule: percent off the order, perpie dollars off every whole pie, or off dollars over a minimum.
zonesDelivery by ZIP range: each borough’s fee, minimum and minutes to the door. Anywhere else is pickup.
events / ticketExtras / ticketAheadEach kind of night with its weekly slots, shop, ticket price, what a ticket includes and the seats a night; ticket extras per ticket or per order; how far ahead tickets open (56 days).
partiesThe back rooms with their size and hourly hire, the packages a head, extras a head or a party, the discounts by headcount and the deposit.
crew / shopThe crew; NYC tax (8.875%), the tip choices and where orders and tickets are kept.

The ovens

Plain Cheese$3.50 a slice, $24.00 a pie · first pie 0 min after opening, then every 15 min
Pepperoni$4.25 a slice, $28.00 a pie · first pie 5 min after opening, then every 20 min
Grandma Square$4.50 a slice, $30.00 a pie · first pie 20 min after opening, then every 40 min · 10 pies a day
Sicilian Square$4.50 a slice, $32.00 a pie · first pie 30 min after opening, then every 45 min · 8 pies a day
White Pie$4.75 a slice, $31.00 a pie · first pie 10 min after opening, then every 30 min
Vodka Sauce$4.75 a slice, $31.00 a pie · first pie 15 min after opening, then every 30 min
Margherita$4.25 a slice, $28.00 a pie · first pie 8 min after opening, then every 25 min
Hot Honey Soppressata$5.25 a slice, $34.00 a pie · first pie 25 min after opening, then every 35 min · 12 pies a day
Buffalo Chicken$5.00 a slice, $33.00 a pie · first pie 35 min after opening, then every 40 min
Veggie Supreme$4.75 a slice, $31.00 a pie · first pie 40 min after opening, then every 35 min
Mushroom & Truffle$5.50 a slice, $36.00 a pie · first pie 45 min after opening, then every 50 min · 6 pies a day
Pesto & Ricotta$4.75 a slice, $31.00 a pie · first pie 50 min after opening, then every 45 min
Arugula & Parm$5.00 a slice, $33.00 a pie · first pie 55 min after opening, then every 45 min
Brunch Slice$5.50 a slice, $36.00 a pie · first pie 0 min after opening, then every 30 min · weekends till 2:00 pm

How the board reads the clock

At a shop that is open, every slice’s pies come out on its own cycle from the opening, until an hour before closing. The board shows the last pie out, the slices left of it (eight a pie, sold at the slice’s pace, faster in the rushes), Just Out for the first few minutes, Next when a pie is sold out and another is due, and Sold Out when a capped special is gone for the day.

Worked example: East Village opens at 11:00 am on a Wednesday. Pepperoni’s first pie is out 5 minutes later, then every 20 minutes, so at 1:07 pm the last pie came out at 1:05 pm and 7 slices are left; the next one lands at 1:25 pm.

How an order totals

Worked example: a whole Hot Honey Soppressata with ricotta and olives ($39.00) and two Garlic Knots ($11.00) = $50.00. On a weekday at lunch the code LUNCH15 takes 15% off (−$7.50). Delivery to Brooklyn $3.49, tax 8.875% $3.77, a 15% tip $6.38 — $56.14, at the door in about 35 minutes after the pie is out.

The bag, the wishlist, the code, the orders and the tickets are kept in the browser (localStorage), so they follow the visitor from page to page and the account page lists them. The first visit starts with a small demo bag so every order page has something to show; to start empty, set the demo list in doShop() (block 28 Order Engine) to []. Checkout, tickets, the party request and the account forms confirm on screen with a reference — connect them to your own systems to take real orders.

Events and tickets

Every night comes from its weekly slots. The seats taken on a night are worked out from its date (fuller as the night gets closer) plus the visitor’s own tickets, so the calendar, the cards, the tonight strip and the wizard always agree; to use your own box office, replace seatsOf() (block 23 Events Calendar). Continue never blocks; Confirm checks the details.

Ticket example: two tickets for Open Mic Night ($12.00 each), the front row for both (+$5.00 a ticket) and a soda pitcher (+$8.00) = $42.00.
Party example: 40 guests on the Slice Party ($18.00 a head) for three hours in The Back Room ($120.00 an hour), with a cannoli platter ($3.50 a guest), less 10% for 40+ guests = $1,134.00, a deposit of $283.50.

WebGL Layers

Two small WebGL shaders draw the moving layers: spray — soft spray-can colour clouds drifting over a faint brick wall at the night bands’ edges, breaking into speckle — and the slice — a pizza slice spinning on its long axis in flat comic shading (halftone dots on the shaded side, an ink rim) over a turning burst, in the footer. Both are flat 2D shapes, light to run. Each is one canvas:

<canvas class="sl-gl" data-gl="spray" aria-hidden="true"></canvas>
  • Colours — each layer reads three colours and an opacity from CSS variables on its canvas or section: --gl-1 (the brick), --gl-2 and --gl-3 (the paint), and --gl-alpha.
  • Performance — a layer only runs while its section is on screen and the tab is visible. Visitors who prefer reduced motion get one still frame. Without WebGL, the section’s own background shows.
  • Remove one — delete the canvas; nothing else depends on it.

RTL (Right To Left)

Sliceria is RTL-ready: the layout with its paddings and margins, the sliders and the animations all mirror. Right to left comes from the stylesheets, not from separate pages: the language picker (a flag and a code) in the top bar and the mobile menu lists the languages that read left to right and right to left. Choosing Arabic stores the language and the direction (keys sliceria-lang and sliceria-dir) and reloads; the one-line script in <head> then sets dir="rtl" and swaps the three stylesheets for the files named in their data-rtl attribute before the page paints. Nothing is translated — you bring your own right-to-left copy. To make a page right to left for good:

1. Set The Direction

<html lang="en" class="no-js" dir="rtl">

2. Swap Three Stylesheets

assets/css/plugins/bootstrap.min.css→ assets/css/plugins/bootstrap.rtl.min.css
assets/css/style.css→ assets/css/style.rtl.css
assets/css/responsive.css→ assets/css/responsive.rtl.css

The scripts read the direction from the dir attribute: the sliders, the Bar Wipe and the comic strip run the other way on their own. The split-flap tiles and the month calendar keep reading left to right.

Editing the styles: style.rtl.css and responsive.rtl.css are mirrored twins of the LTR files, made with RTLCSS. A few hand-made rules at the end of style.rtl.css keep what must not mirror. If you change style.css, regenerate the twin with npx rtlcss style.css style.rtl.css and copy the closing block back.

JavaScript Guide

All custom behaviour lives in assets/js/main.js, wrapped in a jQuery IIFE and organised into 35 numbered blocks (see the JS INDEX comment at the top of the file):

  • 01–08 — Preloader, Sticky Header, Offcanvas Menu, Scroll Reveals, Back To Top, Anchor Scroll, Light & Dark Mode, Direction, WebGL Layers. The core every page shares: the Comic Panels preloader, the header, the Bar Wipe reveals, the theme and direction switch and the WebGL layers.
  • 09–10 — Slice Data, Shop Clock. Slice Data holds every price, oven cycle, shop, event and rule; Shop Clock works out open now at every shop, the deals on now and the pie of the day.
  • 11–19 — Custom Select, Rating Meters, Hero Sliders, Card Sliders, Accordion, Filter Tabs, Grid Search, Newsletter, Choice Cards. Shared components: selects, bars, sliders, accordions, filters, search, newsletter, choice cards.
  • 20–35 — Slice Board, Slice Pull, Comic Strip, Events Calendar, Menu Filters, Locations, Party Estimator, Contact Form, Order Engine, Account Forms, Tabs, Article Tools, Demo Forms, Launch Countdown, My Account, FAQ Search. The niche engines and pages: the slice board, the slice pull, the comic strip, the events calendar and tickets, menu filters, locations, the party estimate, contact, the order engine, accounts, tabs, articles, forms, countdown, FAQ.

Each block is a self-contained doSomething() function that safely skips pages where its section is not present — you can delete any block you do not need. Every animation respects prefers-reduced-motion: content appears in its final state and the scroll moments rest in place.

Reveals: add sl-wipe to a photo holder so a tomato-red bar sweeps across it and leaves the photo uncovered, sl-rise to a title, paragraph or card so it rises softly, sl-pop to a burst or badge so it pops once its card has landed, and sl-fade to a long block. data-delay="0.2" staggers any of them.
The board: a board is any element with data-board (its value a shop’s slug, or a shop picker inside it) holding rows made by the slice list; Home 1’s board also carries data-board-scroll so its headline flips through the oven’s queue as the section travels. None of the scroll moments pins the page.
Countdown: the coming-soon page counts down to 5:00 pm on the opening day set in SLICE.opening — the next one each year, so there is no date to keep updating.

Images

The download package ships with neutral placeholder images so you can see every layout at the correct dimensions. Replace them with your own photos using the same file names, or update the src attributes. Images are grouped inside assets/img/:

img/art/Sliceria’s drawn art: the comic slice (preloader, 404), the brush-script words behind titles, and a pop-art drawing — 8 files: 848×824, 1646×785, 1384×571, 1337×637, 1053×579, …
img/banner/Wide page-title banners and photo bands — 6 files: 2560×675, 2822×1179, 2809×1287
img/flags/The language picker’s flags (SVG, included) — 6 files: SVG
img/food/Slice and pie photography: menu thumbnails, cards, bands — 24 files: 800×800, 800×650, 1300×800, 650×508, 1380×1070, …
img/icons/Line icons, each in an ink and a cream version — 30 files: 128×128
img/logo/Logo, light logo and favicon — 3 files: 287×120, 64×64
img/menu/Home previews in the mega menu — 3 files: 560×350
img/people/Crew portraits and reviewer faces — 7 files: 800×800, 300×300, 110×110, 1531×1145, 1038×1038
img/pies/Whole pies from above on a transparent ground, plus the slice-pull pieces — 16 files: 868×868, 388×388, 410×410, 531×531, 405×405, …
img/place/The shops, the city and the nights — 16 files: 1300×800, 2445×946, 1037×804, 1387×1076, 2102×1294, …

The logo files, the comic slice, the brush-script words, the line icons and the language flags are included and ready to use. All demo photography shown on the live preview is for preview purposes only and is not included in the download.

Contact Form

The contact form and the comment form post to sendmail.php, a lightweight AJAX mail handler. The success or error message appears under the button without reloading the page. The newsletter, tickets, party request, checkout, account, login, register and forgot-password forms are demo forms: they confirm on screen and are ready to connect to your own systems. To activate the mail handler on your server:

1. Set your email address

$email = 'example@example.com';

2. Upload to a PHP host

The form needs a server with PHP mail() support (virtually every shared host). It will not send from your local computer or from a static-only host — there the form shows a friendly “upload to a PHP-enabled host” notice instead.

3. Optional: enable Google reCAPTCHA v3

Invisible reCAPTCHA v3 spam protection is already built into the handler. It stays dormant until the form submits a token. To switch it on:

  • Create v3 keys (a site key and a secret key) for your domain in the Google reCAPTCHA admin console
  • In sendmail.php, replace YOUR_RECAPTCHA_V3_SECRET_KEY with your secret key
  • In contact.html, add a hidden token field inside the form and load the reCAPTCHA script with your site key just before </body>:
<!-- inside the form -->
<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response">

<!-- before the closing </body> tag -->
<script src="https://www.google.com/recaptcha/api.js?render=YOUR_SITE_KEY"></script>
<script>
  grecaptcha.ready(function () {
    grecaptcha.execute('YOUR_SITE_KEY', { action: 'contact' }).then(function (token) {
      document.getElementById('g-recaptcha-response').value = token;
    });
  });
</script>

Once the token field is present, sendmail.php verifies every submission with Google and rejects low-score (bot) requests.

Credits

This template is built using the following open-source libraries and resources.

  • Bootstrap 5.3.3
  • jQuery 3.7.1
  • Swiper 11
  • GSAP 3 + ScrollTrigger
  • Fancybox 3.5
  • Font Awesome Free
  • RTLCSS
  • Google Fonts: Oswald, Open Sans
  • Logo lettering: Kaushan Script

All plugin files and icon fonts are loaded locally. The only external requests are the Google Fonts stylesheet, the Google Maps embeds and the video popup.

Support

If you have any questions or need help with the template, please reach out through the marketplace where you purchased the template: open the item there and send us your question from its support page. We aim to respond within 24–48 hours.