Overview

Glossa template home pages

An HTML template for a monthly fashion magazine: runway, street style, beauty and culture, in print and on screen. Glossa ships three home pages, a light and a dark theme, right-to-left support, a pound / dollar / euro switch, and logic that is worked out rather than typed in: issues that go on sale on the first Thursday of the month and number themselves from the date; covers drawn in CSS; subscriptions priced by format, term and region with the first issue from the cut-off; a gift wizard; shoppable stories with the look’s total; a most-read chart counted from the stories; newsletters with their next send; and a shop with a bag, coupon, delivery zones and VAT.

What’s included

  • 3 home pages, each with its own scroll moment: The Contents Page (the page numbers fly to their stories), The Mood Board (the street photographs snap into the board) and The Pull Quote (an essay’s quote grows to fill the band)
  • A white theme by default and a dark theme on one switch, remembered between visits and applied before the page paints
  • Right-to-left stylesheets and a flag language picker: a right-to-left language turns any page around
  • A WebGL glyph drift of soft letters in the bands and the page titles, and the footer’s masthead breathing on the typeface’s weight and width
  • The issues archive: 12 covers drawn in CSS from the date, print or digital, print copies left, year and stock filters, search
  • Subscriptions: 3 formats, 3 terms, 4 delivery regions, a student rate, a five-step wizard; the gift wizard with a card, a message and the start issue
  • Shoppable stories: 4 looks of 16 pieces with sizes and the look’s total; the most-read chart by window and section; newsletter preferences
  • 24 stories in four sections and six formats (standard, gallery, video, audio, quote, link), 8 contributors with profiles
  • The shop: issues and pieces, filters, sort and search, the product page with sizes, bag, coupon, delivery zones, VAT included, checkout with an order number, wishlist
  • About, newsletter, FAQ with search, contact with the reader desk’s hours, the form and the map, account pages, coming soon, 404
31 HTML pages

Getting Started

  • Unzip the package and open glossa/index.html in a browser — no build step is needed.
  • Edit the pages in any code editor. Each section is wrapped in <!-- name-area start here --> / <!-- name-area end here --> comments, so it is easy to find, move or remove.
  • Change the magazine’s figures (issues, prices, stories, looks, sends) in one place: the data block in assets/js/main.js (see Magazine Logic).
  • Upload the contents of glossa/ to your web host. The contact form needs PHP (see Contact Form).
Fonts: the pages load Playfair and Mulish from Google Fonts; everything else (Font Awesome, the theme icons, the plugins) is loaded locally.

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: The Magazine (the contents page), Street Style (the mood board), The Long Read (the pull quote)
issues.html / issue-details.htmlThe archive of covers with year, stock and search; the issue on sale with its contents, print and digital and the countdown
subscribe.html / gift-subscription.htmlPlans, the price table by region and the five-step subscription wizard; the gift wizard with the card and the start issue
sections.html / section-details.html / runway-report.html / most-read.htmlThe four sections; one section front (Runway); the runway report’s twelve looks; the most-read chart
stories.html / story-details.html / shop-the-look.htmlEvery story in its format with filters, search and a sidebar; a story with its pull quote, author, comments; a shoppable story
contributors.html / contributor-details.htmlThe masthead with section filters and a pitch form; one contributor with her stories
shop.html / product-details.html / cart.html / checkout.html / wishlist.htmlThe shop: issues and pieces, filters, sort and search, the product page with sizes, bag, checkout, wishlist
about.html / newsletter.html / faq.html / contact.htmlThe magazine’s story; the newsletter preferences; questions with search; contact with the reader desk’s hours, the form and the map
account.html / login.html / register.html / forgot-password.htmlThe account (subscription, issues, orders, details) and the login pages
coming-soon.html / 404.htmlThe countdown to the next issue’s on-sale morning, the 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 (17 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 (37 blocks)
assets/js/plugins/jQuery, Bootstrap, Swiper, Fancybox, GSAP, ScrollTrigger
assets/img/Images, one folder per subject (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 glossa/, the template.

glossa/
├── *.html                              the 31 pages, all in the root
├── sendmail.php                        the AJAX mail handler for the forms
└── assets/
    ├── css/                            style.css, style.rtl.css, responsive.css, responsive.rtl.css, plugins/
    ├── js/                             main.js (37 blocks), plugins/
    ├── fonts/theme-icons/              the sun and moon of the theme switch
    ├── webfonts/                       Font Awesome Free font files
    └── img/                            images, one folder per subject
        ├── bands/                       8 files
        ├── beauty/                      11 files
        ├── culture/                     6 files
        ├── faces/                       4 files
        ├── flags/                       6 files
        ├── hero/                        3 files
        ├── icons/                       20 files
        ├── logo/                        4 files
        ├── menu/                        3 files
        ├── pieces/                      16 files
        ├── runway/                      14 files
        ├── street/                      12 files
        └── team/                        8 files

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 — change both together.

Nude--gl-nude
Powder--gl-powder
Ink--gl-ink
Rose-Taupe--gl-rose
Rose Ink--gl-rose-ink
Ground--gl-bg
Soft Band--gl-soft
Hairline--gl-line
Heading--gl-heading
Body--gl-text

White is the ground; nude and powder are the panels, the quote cards and the hero; ink sets the type, the buttons and the closing band. Rose-taupe is the accent of the marks — the three dots under every title, the layout guides of the reveals, the glyphs — and rose ink its darker twin for small text and links. --gl-bg, --gl-surface, --gl-panel, --gl-heading and --gl-text are the semantic names the components use; the dark theme swaps those.

Fonts

Playfair (a variable font: weight, width and optical size) sets the headlines, the italic eyebrows, the dates, prices and quotes, and the footer’s masthead; Mulish sets the section titles and the menu in tracked capitals, and the body. Swap them by editing the Google Fonts link and --gl-ff-serif / --gl-ff-sans.

Logo

  • logo.png — the italic g on its nude square beside GLOSSA in ink, for white headers
  • logo-light.png — the same with pale lettering, for photographs and the dark theme
  • mark.png — the square and its g alone (the footer rule); favicon.png — the browser tab icon

Light & Dark Mode

Glossa opens white. Every header (and the mobile menu) has a theme switch; the choice is saved under the key glossa-theme and applied by a one-line script in the <head> before the page paints. The switch sets data-theme="dark" on the <html> tag.

Dark Ground--gl-bg
Dark Surface--gl-surface
Dark Nude--gl-panel
Dark Powder--gl-panel-2
Dark Heading--gl-heading
Dark Body--gl-text
Rose On Dark--gl-accent-text

The dark values sit in one block, [data-theme="dark"] { … }, right after :root. To open the site dark for first-time visitors, add data-theme="dark" to the <html> tag of each page.

Magazine Logic

The figures on every page come from one data block, JS block 10 Glossa Data (var GLOSSA). Pages are printed for the build day and repainted by block 04 Magazine Clock from the visitor’s date, so the magazine never looks out of date.

Issues and covers

Each issue goes on sale on the first Thursday of its month. Its number counts the months since No. 1 (first: { y: 2010, m: 2 }, months from 0). months holds the twelve monthly themes with the cover star, the cover lines, the pages and the cover photograph; stock the print copies left by age.

Worked example: on Saturday 24 October 2026 the issue on sale is No. 200, The Craft Issue (October 2026); the next, No. 201, goes on sale on Thursday 5 November 2026.

Subscriptions

Per issue: the format’s cover price (Print £8, Digital £4.99, Print & Digital £9) less the term’s discount (10% for 3 issues, 20% for 6 issues, 35% for 12 issues), 25% off digital for students, plus postage on each print issue (United Kingdom £0.00, Europe £1.50, USA & Canada £2.50, Rest Of The World £3.20). The total is the per-issue price times the issues; the saving is against buying every issue at the cover price. A print subscription taken by the 20th (23:59) starts with next month’s issue, later with the one after; digital starts at once.

Worked examples: print + digital, 12 issues, UK: £5.85 an issue, £70.20 (you save £85.68). Print, 6 issues, Europe: £7.90, £47.40. A student on digital, 12 issues: £2.43, £29.16. Subscribing on Saturday 24 October 2026, the first print issue is December 2026.

Shoppable stories

looks lists each story’s pieces; pieces holds their prices and sizes (a fragrance’s larger bottles cost more by sizeFactor).

Worked example: The Pink Bag Look — Rose Wrap Coat (M) £295, Raspberry Top-Handle Bag (One Size) £185, Gingham Bow Slingbacks (38) £165, Round Wire Frames (One Size) £95, Powder Cashmere Scarf (One Size) £120 — £860.

Most read and newsletters

Each story has its reads (views) and its age in days; a window keeps the stories published inside it and ranks them by reads. This week’s top three: The Pink Bag Diaries (61,200 reads), The Long Coat Returns (52,600 reads), The Graphic Liner Edit (49,800 reads). The newsletters send at the times in sends: The Daily Edit (Mon, Tue, Wed, Thu, Fri); The Weekly (Sun); Shop The Look (Wed); The Issue (the on-sale morning).

The shop

Prices include VAT: the bag shows the VAT inside the total. Delivery applies to what is posted (pieces and print issues), free in the UK over £50; subscriptions carry their own postage.

Worked example: two print issues and one digital: £20.99 + delivery £3.95 = £24.94; with GLOSSA10: £20.99 − £2.10 + £3.95 = £22.84.

The bag, the wishlist, the coupon, the subscriptions and the orders are kept in the browser (localStorage). The first visit starts with a small demo bag; to start empty, set the demo lists in doShop() (block 31) to []. Checkout and the wizards confirm on screen with a reference — connect them to your own systems to take real orders.

WebGL & The Masthead

One small WebGL shader draws the glyph drift: soft Playfair letters drifting slowly through the plain bands, the page titles and the footer. Each layer is one canvas:

<canvas class="gl-gl" data-gl="glyphs" data-gl-count="16" aria-hidden="true"></canvas>
  • Count — data-gl-count sets how many letters drift.
  • Colours — rose, powder and a faint ink: --gl-1, --gl-2, --gl-3 and the strength --gl-alpha. The theme switch repaints them.
  • Performance — a layer only runs while on screen; reduced motion gets one still frame.

The footer’s masthead (block 11) breathes on Playfair’s weight and width axes and leans heavier and wider toward the pointer. It is plain text with font-variation-settings; reduced motion keeps it at rest.

RTL (Right To Left)

Right to left comes from the stylesheets, not from separate pages: the language picker lists languages that read left to right and right to left. Choosing Arabic or Hebrew stores the language and the direction (glossa-lang, glossa-dir) and reloads; the head script sets dir="rtl" and swaps the three stylesheets for the files named in their data-rtl attribute. Nothing is translated. To make a page right to left for good, add dir="rtl" to <html> and swap:

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
Editing the styles: the RTL files are mirrored twins made with RTLCSS. If you change style.css, regenerate the twin with npx rtlcss style.css style.rtl.css and copy the RTL fixes block at its end back.

JavaScript Guide

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

  • Core — blocks 01, 02, 03, 04, 05, 06, 07, 08, 09: the Cover Set preloader, the header, the magazine clock (issues, covers and dates from the visitor’s day), the Paste-Up Guides and word-rise reveals, the theme and direction switch and the WebGL glyph drift.
  • Data & money — blocks 10, 11, 12, 13: Glossa Data holds every figure; the footer’s masthead breathes on the font’s axes; the pound / dollar / euro switch repaints every price.
  • Components — blocks 14, 15, 16, 17, 18, 19, 20: sliders, accordions, filters, search, the newsletter fields, the choice cards of the wizards.
  • Scroll moments — blocks 21, 22, 23: the page numbers flying to their stories (Home 1), the street photographs snapping into the board (Home 2), the pull quote growing to fill the band (Home 3).
  • The magazine — blocks 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37: the archive, the most-read chart, the subscription engine and its wizards, shoppable looks, newsletter preferences, the reading player, contact, the shop, accounts, articles, the countdown to the next issue, the FAQ.

Each block is a self-contained doSomething() function that skips pages where its section is not present. Every animation respects prefers-reduced-motion: content appears in its final state.

Reveals: add gl-paste to a block so it sets in from its gutter while a rose layout guide flashes along its edge (Paste-Up Guides; data-from="left|right|up" picks the side), and gl-words to a title so its words rise one by one. data-delay="0.2" staggers a block. The pull quote shows over a story’s photograph on hover from the st-quote span inside the card.
Scroll moments: each is scrubbed against its own section’s travel and none pins the page: the contents (data-contents), the mood board (data-moodboard) and the pull quote (data-pullquote). Each page is authored in the finished state.

Images

The download package ships with neutral placeholder images at the correct sizes. Replace them with your own photos using the same file names. Images are grouped inside assets/img/:

img/bands/Page-title banners and photo bands — 8 files: 2809×1317, 2809×2339, 2809×1756, 2809×976
img/beauty/Beauty stories and the beauty covers — 11 files: 1300×900, 1382×1629, 1300×882, 957×954, 600×850, …
img/culture/Culture stories — 6 files: 1300×900, 1200×766, 1126×1129, 2106×994
img/faces/Round portraits for letters, comments and avatar groups — 4 files: 200×200
img/flags/The language picker’s flags (SVG, included) — 6 files: SVG
img/hero/Home 01’s slider portraits — 3 files: 1464×1311, 1200×1200, 1464×1267
img/icons/Drawn hairline icons, each in an ink and a light version (included) — 20 files: 120×120
img/logo/Logo, light logo, the mark and the favicon (included) — 4 files: 361×92, 64×64, 77×96
img/menu/Home previews in the mega menu — 3 files: 560×350
img/pieces/The pieces sold through the shoppable stories — 16 files: 800×545, 900×900, 1100×793, 1000×1000, 1309×1309, …
img/runway/Runway stories, the report’s looks and covers — 14 files: 600×1356, 800×1289, 800×951, 1000×1220, 800×808, …
img/street/Street style stories, the mood board and the looks — 12 files: 900×900, 1130×1130, 2016×1351, 1024×686, 1300×900, …
img/team/The editors and writers, portraits — 8 files: 1024×843

The logo files, the drawn icons and the language flags are included. The covers are built in CSS round a photograph from the data block (months[].cover). 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 message appears under the button without a reload. The newsletter, subscription, checkout, account and pitch forms are demo forms: they confirm on screen and are ready to connect to your own systems.

1. Set your email address

$email = 'example@example.com';

2. Upload to a PHP host

The form needs a server with PHP mail() support. Locally it shows an “upload to a PHP-enabled host” notice instead.

3. Optional: enable Google reCAPTCHA v3

  • Create v3 keys 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 script with your site key:
<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response">

<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>

Credits

  • Bootstrap 5.3.3
  • jQuery 3.7.1
  • Swiper 11
  • GSAP 3 + ScrollTrigger
  • Fancybox 3.5
  • Font Awesome Free
  • RTLCSS
  • Google Fonts: Playfair, Mulish

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

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.