Glass Sliding Doors
Transform your interiors with elegant glass sliding door systems designed for smooth operation and contemporary style.
Explore ServiceComponents
Every primitive this theme owns. Compare against the Figma frames before any module is built. Legend: ✓ read from Figma · ~ derived or theme-authored · ! placeholder, asset outstanding.
Source: ClYG21FApa9XPMXJAZhor1 (home) and
ijGjrbLrwXmkSHi4Qn4rE4 (sub-pages). The file has no Figma
Variables and no Local Styles, so every value was read from a node fill.
#E4462B
✓ CTA fill, eyebrows, accent words (10911:78/125)
#C93A22
~ NOT in the design — AA alternate, unused
#298B97
✓ announcement bar, form rules (10911:369/285)
#24818D
~ NOT in the design — AA alternate, focus rings
#4DB8C8
✓ photo tint only, at 15–20% (10911:141/202)
#F3F8FA
✓ off-white text + form panel (10911:75)
#C8D6DB
~ DERIVED — muted text on dark
#5E7078
~ DERIVED — muted text on light
#0F1D25
✓ headings + body on light (10911:126)
#B3261E
~ NOT in the design — form errors only
#FFFFFF
✓ page background
Six brand values. Everything else is an opacity modifier —
bg-atg-gray-50/80 (form panel), bg-tertiary/15 and
/20 (photo tints), text-white/85 (review count).
Adding a palette entry is almost always the wrong fix.
Three pairings in the design as drawn fall below the WCAG AA 4.5:1 floor for
normal-size text. They are shipped as designed — these are
brand colours and changing them is the client's call, not ours. The
-700 tokens are defined and ready if that call is made.
| Pairing | Ratio | AA | Where |
|---|---|---|---|
atg-gray-900 on white |
17.2:1 | PASS | body copy |
atg-gray-300 on white |
5.11:1 | PASS | muted copy |
secondary-700 on white |
4.56:1 | PASS | AA alternate |
primary-700 on white |
4.77:1 | PASS | AA alternate |
primary on white — LARGE (36px) |
4.03:1 | PASS | hero accent word — passes 3:1 |
primary on white — NORMAL (16px) |
4.03:1 | FAIL | eyebrows, "Explore Service" links |
atg-gray-50 on primary — 16px |
3.77:1 | FAIL | every .btn label |
secondary on white — 14px / 12px |
4.01:1 | FAIL | form labels, consent copy |
Poppins throughout — the design uses exactly one family, in five weights (300 / 400 / 500 / 600 / 700), no italics. ⚠ H1 and H2 are the same size. There is no larger display step anywhere in the design; both render at 36px/42px. The scale is deliberately flat: 36 / 24 / 16, plus 14 and 12 for forms.
Heading 1 — the quick brown fox
h1
· 36px at 2xl
· ✓ Poppins Medium · lh 42 · uppercase (10911:75)
Heading 2 — the quick brown fox
h2
· 36px at 2xl
· ✓ SAME SIZE AS H1 — the design has no larger step (10911:126)
Heading 3 — the quick brown fox
h3
· 24px at 2xl
· ✓ Poppins Medium · lh 1.5 · uppercase (10911:144)
Heading 4 — the quick brown fox
h4
· 20px at 2xl
· ~ interpolated — does not appear in any frame
Heading 5 — the quick brown fox
h5
· 18px at 2xl
· ~ interpolated — does not appear in any frame
Heading 6 — the quick brown fox
h6
· 16px at 2xl
· ~ interpolated — does not appear in any frame
Uppercase is global on headings — every heading in every
frame is set that way, including blog post titles (12946:3313), so there is
no blog exemption. The .h1–.h6 aliases exist so a
template can take a size without breaking semantic order:
.h2
Poppins Light 300 at 16px/24px with 0.03em tracking — ✓ read from every
paragraph in the design (10911:76, 128). That tracking is tokenised as
tracking-body rather than repeated as an arbitrary value.
Here is an inline link, some bold text,
some emphasis, and inline code.
primary markerA blockquote — ~ theme-authored. No frame in the design contains one.
// preformatted block
.btn { background: #E4462B; }
✓ Eyebrow is Poppins Regular 16px uppercase in primary, 10px
above the heading, no tracking (10911:125). Five uses across
the homepage, all identical. This design has
no decorative rule flanks, so there are no
has-lines-* modifiers.
Accent words are marked by colour only — no weight or style
change (10911:75). Editors produce them by wrapping in
<span>, which is why headings are echoed through
wp_kses_post().
✓ #E4462B fill and border, 10px radius, 19/12 padding, Poppins
Medium 16px, label #F3F8FA, sentence case
(10911:78). Four identical instances across the homepage.
~ Hover is theme-authored — the design shows resting states
only, for every interactive element on the page.
.btn-white is NOT in this design — the homepage pairs the
CTA with a plain phone number, not a second button. Kept because the
shared module layer expects an alternate to exist.
✓ Text link with trailing arrow — Poppins Medium 16px, underlined at rest, −0.1px tracking (10911:147). The underline is why hover shifts the gap and the colour rather than adding one.
Explore Service
✓ Phone pairing — 46px circular glyph + Poppins Bold 20.6px number
(10911:82). Shared partial, reused by the hero, every inner banner and the
cta_band module.
✓ Full-bleed photo under two stacked gradients — a vertical black wash
(16% → 80%, stop at 82%) for legibility, plus a flat
tertiary/15 tint that unifies the six photos (10911:141).
No radius, no border in the design.
Transform your interiors with elegant glass sliding door systems designed for smooth operation and contemporary style.
Explore ServiceTransform your interiors with elegant glass sliding door systems designed for smooth operation and contemporary style.
Explore ServiceTransform your interiors with elegant glass sliding door systems designed for smooth operation and contemporary style.
Explore Service.surface-card expects an
<img> as its first child. The dark fill stands in.
Flex-wrap with negative-margin gutters — house convention, not CSS
Grid, even though the Figma uses auto-layout. Row
-mx-3 xl:-mx-4, cell px-3 xl:px-4.
✓ Used twice in the design — the About page mission/vision/values panel over a photo (12946:99), and the FAQs page as a two-column list with circular +/− buttons (12946:2408). Markup uses the shared JS hook classes; no new JavaScript.
At Atlantic Glass, our mission is to deliver exceptional glass solutions with precision and care.
Wraps WYSIWYG and Gutenberg content in modules and pages. Distinct from
Tailwind Typography's prose — never both on one element. The
blog single (12946:3313) leans on this heavily: colour-coded tables,
nested lists, inline links.
A paragraph with an underlined link and bold copy.
| Category | Wind speed | Damage |
|---|---|---|
| 1 | 74–95 mph | Minimal |
| 2 | 96–110 mph | Moderate |
! Not yet exported — blocking.
Every icon in the design is currently an exported SVG in Figma, not a font glyph. Nine are needed: long right arrow, the rotated arrow on “Explore Service”, phone, envelope, location pin, star, quote mark, chevron, and the announcement-bar glyph.
Export once and commit selection.json.
Re-exporting renumbers codepoints and silently breaks every
content-['\eXXX'] rule in the component layer.
⚠ Phase 8 — geometry not yet rebuilt.
forms.css still carries the cloned scaffold's filled 56px
inputs with an 8px radius. Atlantic Glass wants the opposite: a 34px
unfilled field with a 1px #298B97 bottom
border and no radius at all (10911:285). Colours have been flipped to
light-theme so nothing is invisible in the meantime.
Two form styles exist in the design — Contact (12946:4217) uses boxed inputs with placeholders; the footer panel uses underline-only fields with labels above. Confirm both are intended.
Measured section gaps on the 1440 frame run 120–160px,
roughly 1.5× the canonical house rhythm, which tops out at 80px. Rather
than replace the canonical strings, a 2xl step was added:
my-9 sm:my-12 lg:my-16 xl:my-20 2xl:my-30 /* container section */
py-12 lg:py-16 xl:py-20 2xl:py-30 /* full-bleed section */
-mx-3 xl:-mx-4 /* grid row gutter */
gap-y-6 xl:gap-y-8 /* grid row wrap */
~ in the CSS. One mobile frame removes all of it.