Make expertise approachable
Use plain language, visible structure, and familiar controls. Technical does not have to mean intimidating.
LearnGlazing brand & interface guide
The shared source of truth for the LearnGlazing brand, digital experiences, content patterns, and front-end implementation.
Start typing for instant suggestions. Use ↑ ↓ and Enter to navigate.
Start here
Every LearnGlazing experience should help people understand technical information, take the next step, and feel capable while doing it.
Use plain language, visible structure, and familiar controls. Technical does not have to mean intimidating.
Labels, examples, helper text, and feedback should remove uncertainty before it becomes friction.
Brand green identifies action, progress, and positive emphasis. Avoid turning every surface into a competing accent.
Support keyboards, small screens, slow connections, zoom, long names, errors, and interrupted tasks.
Identity
Use the complete LearnGlazing logo wherever space allows. The symbol is reserved for compact or clearly branded contexts. SVG is preferred for interfaces and print; PNG is available for software that cannot use vector artwork.
Do
Keep clear space around the mark, preserve its proportions, and choose the version with strongest contrast.
Don’t
Stretch, rotate, outline, recolor, add effects, or place the logo over visually busy photography.
Light backgrounds · PDF, SVG & EPS
Dark backgrounds · PDF, SVG & EPS
Compact use · SVG & EPS
Dark backgrounds · PDF, SVG & EPS
Light backgrounds · PDF, SVG & EPS
Dark backgrounds · PDF, SVG & EPS
Course pages & materials · PDF, SVG & EPS
Use the transparent PNG favicon for modern browsers and the 180×180 touch icon for Apple home-screen and progressive-web-app contexts.
Foundations
The greens create recognition and momentum; charcoal and neutral tones carry most content and interface structure.
Brand assets
Download the original SVG assets used throughout the WordPress and Thinkific experiences. Keep their proportions and internal colors intact; resize the SVG rather than editing its paths.
Foundations
Montserrat establishes hierarchy and brand character. Open Sans carries instructional and interface content. The same base hierarchy is shared by WordPress and Thinkific, with contextual variants for banners, articles, cards, and learning surfaces.
Google Font · Headlines, labels, controls, and navigation.
Google Font · Body copy, descriptions, form help, and data.
Use headings semantically and in order. Their visual size may change by context, but an H3 must not replace an H2 merely because it looks smaller.
Build better glazing teams
Training that meets the field
Course collections
What you’ll learn
Course requirements
Additional resources
LearnGlazing makes technical education easier to discover, understand, and apply.
Keep paragraphs focused, front-load useful information, and use descriptive headings so readers can scan before committing to detail.
Use for metadata, helper text, course duration, file details, and secondary supporting information.
Course progress · 8 of 12 complete
Read the training implementation guide for rollout recommendations.
Bold identifies important facts. Italic is reserved for titles, terms, and occasional conversational emphasis.
LearnGlazing gives our team a shared technical language. Training manager, glazing contractor
These variants intentionally override the base heading scale. Use the named production selector rather than recreating the treatment locally.
Homepage section-title treatment.
Card titles are denser and more assertive than long-form headings.
| Context | Selector | Treatment | Guidance |
|---|---|---|---|
| Default page title | h1 | 3rem, weight 300 | One H1 per page; describe the page’s unique purpose. |
| Interior banner | .banner h1 | Centered, weight 400; 2rem below 800px | Keep concise enough to remain readable over imagery. |
| LG Files article | article.single h1 | clamp(2.25rem, 5vw, 2.5rem) | Balanced title; article H2 uses weight 600 and body uses 1.75 line-height. |
| Homepage section | h2.main-heading | 2rem, weight 500, uppercase | Use only for major homepage or campaign sections. |
| FAQ tile | .lg-faq-item h3 | 1.125rem, weight 600, uppercase | Keep the question short; answer copy remains sentence case. |
| WordPress article card | .lg-files-item h3 | 1.25rem, weight 600 | Use natural title case and avoid truncating critical meaning. |
| Thinkific collection title | .lg-collection-title | 1.5rem, weight 500, uppercase | Names the active catalog category. |
| Thinkific course card | .lg-course-card h3 a | 1.25rem, weight 600, uppercase | Course title remains a real link with visible hover/focus treatment. |
| Thinkific banner | .lg-banner h2 | 2.5rem, weight 500; 1.75rem mobile | Use for catalog and course-overview context. |
| Buttons | .button | 0.875rem, weight 600, uppercase | Use short verb-led labels; do not use button typography for headings. |
:root {
--font-heading: "Montserrat", sans-serif;
--font-body: "Open Sans", sans-serif;
--type-h1: 3rem;
--type-h2: 2rem;
--type-h3: 1.75rem;
--type-h4: 1.5rem;
--type-h5: 1.25rem;
--type-h6: 1.125rem;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--font-heading);
font-weight: 300;
line-height: 1.15;
}
body {
font-family: var(--font-body);
font-size: 1rem;
line-height: 1.5;
}
h1 { font-size: var(--type-h1); }
h2 { font-size: var(--type-h2); }
h3 { font-size: var(--type-h3); }
h4 { font-size: var(--type-h4); }
h5 { font-size: var(--type-h5); }
h6 { font-size: var(--type-h6); }
article.single p {
line-height: 1.75;
}
Foundations
Use a 4px base and favor the established 8, 16, 24, 32, 48, 64, and 96px rhythm. Consistent spacing should do more work than decorative borders.
2xs
8px
xs
16px
sm
24px
md
32px
lg
48px
xl
64px
2xl
96px
Keep long-form reading near 65–75 characters per line. Full-width containers may reach 1500px.
Use the theme’s 12-column flex grid and collapse deliberately rather than simply shrinking desktop layouts.
Use 48–96px between major topics and 16–32px between related elements.
Use 8px for controls, 15px for cards, and full pills for buttons, tags, and compact filters.
Foundations
Choose images that feel specific to the glazing industry: real systems, materials, professionals, and finished environments.
The default green images are shared production assets, not generic placeholders. They create continuity across WordPress and Thinkific components and should be paired with an overlay whenever text sits above them.
default-green.jpg · 1280×800
default-green-blur.jpg · 1280×800
Show the work, the people doing it, or the buildings that make the outcome tangible.
The theme includes 54 architectural hero images. Select imagery for relevance and composition, then use a dark overlay to protect text contrast. Select any image to open the original.
hero-1.jpg
hero-2.jpg
hero-3.jpg
hero-4.jpg
hero-5.jpg
hero-6.jpg
hero-7.jpg
hero-8.jpg
hero-9.jpg
hero-10.jpg
hero-11.jpg
hero-12.jpg
hero-13.jpg
hero-14.jpg
hero-15.jpg
hero-16.jpg
hero-17.jpg
hero-18.jpg
hero-19.jpg
hero-20.jpg
hero-21.jpg
hero-22.jpg
hero-23.jpg
hero-24.jpg
hero-25.jpg
hero-26.jpg
hero-27.jpg
hero-28.jpg
hero-29.jpg
hero-30.jpg
hero-31.jpg
hero-32.jpg
hero-33.jpg
hero-34.jpg
hero-35.jpg
hero-36.jpg
hero-37.jpg
hero-38.jpg
hero-39.jpg
hero-40.jpg
hero-41.jpg
hero-42.jpg
hero-43.jpg
hero-44.jpg
hero-45.jpg
hero-46.jpg
hero-47.jpg
hero-48.jpg
hero-49.jpg
hero-50.jpg
hero-51.jpg
hero-52.jpg
hero-53.jpg
hero-54.jpg
Live course catalog
A live visual reference pulled from Thinkific. Use this gallery to review current course names, destination URLs, and thumbnail consistency without opening the Thinkific administrator.
Loading course thumbnails…
Source images should be 1440×840 pixels with a 12:7 aspect ratio. Keep course names and status labels in HTML rather than embedding new text in the artwork.
Components
Ask only for information that is necessary. Keep labels visible, explain formatting before submission, and place errors beside the field that needs attention.
Form example
<div class="form-field">
<label for="email">Work email</label>
<input
id="email"
name="email"
type="email"
autocomplete="email"
aria-describedby="email-hint"
>
<p id="email-hint" class="form-field__hint">
We’ll use this only for account and course updates.
</p>
</div>
Components
The flexible WordPress card is .lg-card. It provides the production white surface, padding, radius, shadow, and transition; add only journey-specific inner structure when the content requires it.
Build fluency in storefront, curtain wall, entrances, and architectural glass.
View collectionA practical framework for launching and maintaining a learning program with your team.
Download guide<article class="lg-card">
<h3>Training implementation guide</h3>
<p>A practical framework for launching a learning program.</p>
<a class="button button-primary-grey-very-dark" href="/training-guide/">
View training guide
</a>
</article>
Components
Feedback should be timely, specific, and paired with the next useful action. Icons and labels must support—not replace—the message.
Message examples
You can safely return to this lesson later.
Complete the renewal course by August 30.
Review the highlighted fields and try again.
Components
LearnGlazing’s production accordion is the .exp expander: a black rounded trigger with a green chevron and a sliding content panel. Use .multi-toggle when several panels may remain open and .single-toggle when opening one closes the others.
Production expander example
<div class="exp multi-toggle">
<div class="exp-item">
<button class="exp-btn" type="button" aria-expanded="false">
Do courses include certificates?
</button>
<div class="exp-content">
<p>Eligible courses provide a completion certificate.</p>
</div>
</div>
</div>
Production library
These are the established patterns currently used by LearnGlazing templates and partials. Reuse them before introducing a new component, and preserve their production class names when extending existing pages.
Uppercase Montserrat with a centered yellow-green rule. Use once at the start of major home-page sections.
The general white surface used for training benefits, evaluations, support panels, and Mailchimp signup content.
Card actionUse the tile pattern for short, featured FAQ answers. Alternate light-green and green overlays across the grid.
Horizontal tabs organize equivalent views within one subject. Keep labels short and retain a meaningful reading order without JavaScript.
Use a strong, contained callout near the end of a journey.
Request informationPair a document preview, concise description, file type, and descriptive download action.
View training guideThese larger production patterns establish rhythm and proof across the homepage. Preserve their existing selectors and partial boundaries when updating content or layout.
Audience-focused tools pair a recognizable icon, concise benefit, and collection action.
Learn moreUse a short value statement before progressively revealing the full subscription form.
The status describes how each pattern should be treated in new work. “Core” components are preferred, “specialized” patterns belong to a specific journey, and “legacy” patterns should be maintained but not duplicated without review.
| Component | Production selector | Source | Purpose and usage | Status |
|---|---|---|---|---|
| Site header | header[role="banner"] |
header.php |
Persistent brand, primary navigation, and mobile-menu trigger. | Core |
| Mobile navigation | .slide-menu |
partials/slide-menu.php |
Off-canvas small-screen navigation and social links. | Core |
| Page banner | .banner |
components/banner.php |
Interior page title, featured/random imagery, overlay, and optional site search. | Core |
| Hero | section.hero |
partials/home-hero.php |
Campaign-level opening message with image, overlay, and primary actions. | Core |
| Breadcrumbs | .lg-breadcrumbs |
functions/theme-setup.php |
Location context for interior pages and articles. | Core |
| Section heading | h2.main-heading |
_home.scss |
Primary heading treatment for full-width homepage sections. | Core |
| Buttons | .button with .button-primary-* or .button-secondary-* |
library/scss/base/_button.scss |
Shared action and navigation treatment used by WordPress and the compiled Thinkific theme. | Core |
| General content card | .lg-card |
_home.scss |
Flexible white panel for benefits, pricing links, support, and embedded forms. | Core |
| FAQ tile grid | .lg-faq-grid / .lg-faq-item |
partials/lg-faq-item.php |
Featured, fully visible FAQ summaries in responsive cards. | Core |
| Expander | .exp / .exp-item |
components/lg-faqs.php |
Disclosure pattern for FAQ, Emerge, sponsorship, and USGlass content. | Legacy |
| Article card | .lg-files-item |
components/lg-files.php |
Responsive article preview with image, excerpt, and full-card keyboard interaction. | Core |
| Pagination | .lg-files-pagination |
page-lg-files.php |
Rounded result pagination for LG Files archives. | Core |
| Horizontal tabs | .tab / .tab-nav |
partials/home-training.php |
Switches between new-hire, team, and evaluation training views. | Specialized |
| Vertical tabs | .lg-vert-tab |
page-lg-services.php |
Service navigation with paired detail panels. | Specialized |
| Pricing toggle | .lg-pricing-toggle-switch |
page-pricing-training.php |
Monthly and annual price-state control. | Specialized |
| Pricing card | .lg-pricing-card |
components/lg-pricing-card.php |
Plan, features, regular/Tubelite pricing, and signup action. | Specialized |
| Client logo bar | .lg-client-scroller |
partials/client-logo-bar.php |
Scrollable client, category-expert, or sponsor logo proof. | Core |
| Homepage sponsor bar | .sponsorship / .sponsorship-grid-logos |
partials/home-sponsorship.php |
Primary sponsor-recognition band with linked production logos. | Core |
| Audience tools | section.tools |
partials/home-tools.php |
Three audience entry points for project managers, contractors, and additional training. | Core |
| Homepage articles | .the-lg-files / .lg-files-item |
partials/home-lg-files.php |
Latest LG Files article previews and archive action. | Core |
| Email signup | .lg-email-signup |
partials/home-email-signup.php |
Progressively disclosed Mailchimp signup surface. | Specialized |
| Testimonials | .lg-testimonials |
components/lg-testimonials.php |
Client identity and quotation carousel/list. | Core |
| Sponsorship tiers | .lg-sponsorship-chart |
partials/lg-sponsorship-chart.php |
Three-tier benefit and pricing comparison. | Specialized |
| Course highlight media | .lg-course-highlights / .yt-wrap |
partials/home-course-highlights.php |
Responsive video paired with learning outcomes and signup action. | Specialized |
| Training guide callout | .lg-training-guide |
partials/home-training-guide.php |
High-emphasis downloadable resource panel. | Core |
| Search field | .lg-search-box-form |
components/banner.php |
Pill search used for main-site and FAQ discovery. | Core |
| Modal dialog | dialog.modal |
partials/modal.php |
Focused notification or enrollment content requiring dismissal. | Core |
| Reserve CTA | .lg-reserve |
partials/lg-sponsorship-reserve.php |
Closing action band reused by sponsorship and Communities. | Core |
| Community feature tiles | .lg-communities-squares |
page-communities.php |
Icon-led benefits unique to the Communities landing page. | Specialized |
| Step flow | .step-grid |
page-usgm-test.php |
Numbered instructional journey for external signup/enrollment. | Legacy |
row and column for the established 12-column page grid..overlay only with a positioned parent and readable foreground contrast..main-heading with one section topic, not every nested heading..lg-card as a neutral container; use named cards for domain-specific data.Patterns
Pages should establish context quickly, present one primary path, and keep supporting material in a predictable reading order.
Outcome-led hero → proof or benefits → core offerings → supporting detail → single closing action.
Clear title and summary → optional contents → scannable sections → related resources and next step.
Purpose and count → search/filter → consistent result cards → empty and loading states → pagination.
Expectation setting → grouped fields → review where needed → confirmation with a clear next action.
Platform patterns
LearnGlazing should feel like one product across WordPress and Thinkific. The platforms share the same foundations, while Thinkific adds learning-specific states for discovery, enrollment, progress, curriculum, and account management.
Keep the exported directory structure and filenames intact. Import the ZIP through Thinkific’s theme library, then verify catalog, dashboard, course, sign-in, account, and checkout states.
Start with these files when changing LearnGlazing-specific Thinkific markup. The .lg-* classes are the stable bridge between the Liquid templates and the compiled Thinkific stylesheet.
| Template file | Purpose | Primary .lg- hooks |
|---|---|---|
pages/collections_landing_page.liquid |
Course catalog hero and search | .lg-banner, .lg-banner-content, .lg-search-box, .lg-search-input |
snippets/products_search.liquid |
Sticky catalog category filters | .lg-collection-sticky, .lg-collection-nav, .lg-collection-list-item |
snippets/course_card.liquid |
Public catalog course cards | .lg-course-card, .lg-course-card-img, .lg-course-card-body, .lg-course-card-details |
sections/student_dashboard.liquid |
Student welcome, filters, and enrolled-course grid | .lg-banner, .lg-collection-title, .lg-course-card-container |
sections/course_curriculum.liquid |
Curriculum and optional course sidebar resources | .lg-course-overview, .lg-resource-library, .lg-aia-ceu, .lg-ss-grid |
sections/lg_resource_library.liquid |
Reusable resource-library panel | .lg-resource-library, .lg-resource-library-content |
sections/lg_footer.liquid |
LearnGlazing footer shell | .lg-footer |
snippets/lg_header_links.liquid |
Custom utility and account navigation links | .lg-files, .lg-team, .lg-demo |
<div class="lg-course-card {{ course.status }}">
<div class="lg-course-card-inner">
<a href="{{ course.links.landing_page_url }}" class="lg-course-card-img">
<img src="{{ product_image }}" alt="" class="lg-course-img" loading="lazy">
</a>
<div class="lg-course-card-body">
<ul class="lg-course-card-cat-container">
{% for collection in course.collections %}
<li class="lg-course-card-cat" data-id="{{ collection.slug }}">
{{ collection.name }}
</li>
{% endfor %}
</ul>
<h3><a href="{{ course.links.landing_page_url }}">{{ course.name }}</a></h3>
</div>
</div>
</div>
Use the charcoal LearnGlazing header, white logo, Montserrat/Open Sans typography, shared footer, and green action hierarchy on both platforms.
Style Thinkific’s native sections and snippets without breaking enrollment, authentication, progress, checkout, or platform-generated accessibility attributes.
Keep labels such as “Browse the training,” “My dashboard,” “Start course,” and “Continue course” consistent between marketing and learning surfaces.
Course availability, enrollment, completion, certificates, and account status must always have a text label in addition to visual treatment.
The Thinkific collection navigation is sticky below the 80px platform header. Filters use compact green-outlined pills on charcoal, with a filled gradient for the active category.
Thinkific collection navigation
<div class="lg-collection-sticky">
<nav class="lg-collection-nav" aria-label="Course categories">
<ul class="lg-collection-list">
<li class="lg-collection-list-item active" data-id="courses">
<span>All courses</span>
</li>
{% for collection in site.collections %}
<li class="lg-collection-list-item" data-id="{{ collection.slug }}">
<span>{{ collection.name }}</span>
</li>
{% endfor %}
</ul>
</nav>
</div>
Learn the terminology, components, and installation sequence used in common curtain wall systems.
View courseApproved for 1 LU/HSW through AIA CES.
Continue from Unit 4: Perimeter conditions.
68% complete
Continue course<article class="lg-course-card student-card">
<div class="course-card__body">
<h3 class="course-card__header-title">{{ card.name }}</h3>
<div
class="course-card__progress--bar"
role="progressbar"
aria-label="Course progress"
aria-valuenow="{{ card.progress_percentage }}"
aria-valuemin="0"
aria-valuemax="100"
>
<span
class="progress__bar"
style="width: {{ card.progress_percentage }}%"
></span>
</div>
<p>{{ card.progress_percentage }}% complete</p>
</div>
{% if card.collection_slugs contains "aia-credit-for-architects" %}
<div class="lg-course-card-aia">
<div>
<span class="icon-aia-cont-education" aria-hidden="true"></span>
<p>Approved for 1 LU/HSW through AIA CES.</p>
</div>
</div>
{% endif %}
</article>
Lead with the course title, short value statement, enrollment state, and one primary action. Keep background imagery subordinate to the content.
Group lessons by chapter, show lesson type and duration, and clearly distinguish previews, completed lessons, and locked content.
Explain prerequisites, access duration, price, and what happens after enrollment before asking the learner to commit.
Confirm completion, surface the certificate when available, and recommend a relevant next course without obscuring the achievement.
| Surface | Required pattern | Avoid |
|---|---|---|
| Student dashboard | Course title, explicit progress, next action, and useful filtering | Image-only cards or progress shown only through color |
| Sign in / sign up | Persistent labels, password guidance, recovery path, and clear error summary | Placeholder-only labels or vague authentication errors |
| My account | Stable side navigation, readable billing tables, and explicit destructive actions | Hiding account state inside unlabeled icons |
| Checkout | Order summary, total, secure payment context, and one primary purchase action | Competing promotional actions during payment |
lg- classes.thinkific.scss independently from the WordPress stylesheet..lg-course-card {
.course-card__progress--bar {
width: 100%;
overflow: hidden;
border-radius: 15px;
background: $grey-light;
}
.progress__bar {
display: block;
height: 15px;
background: linear-gradient(
144deg,
$light-green 0%,
$green 100%
);
}
}
Standards
LearnGlazing sounds experienced, direct, encouraging, and specific. We explain the work without talking down to the people doing it.
| Principle | Use | Avoid |
|---|---|---|
| Plain language | “Start the course” | “Initiate learning experience” |
| Specific actions | “Download certificate” | “Click here” |
| Sentence case | “Course progress” | “Course Progress” |
| Helpful errors | “Enter a valid email address.” | “Invalid input.” |
| Respectful confidence | “Here’s how to fix it.” | “You did this incorrectly.” |
Standards
LearnGlazing is a registered provider in the AIA Continuing Education Services (CES) program. These rules govern how every approved course and LearnGlazing itself may be described, marketed, and badged. Follow them precisely — the AIA can revoke provider status for non-compliance.
Use
Never use
AIA CES credits must always be written in one of these two formats. Do not substitute "CEU," "PDH," or any other designation. If a course also carries GBCI, RIBA, or other credit, list those separately rather than combining them with LU notation.
| Credit type | Correct notation | Incorrect |
|---|---|---|
| Health, safety, and welfare | LU|HSW | CEU, PDH, CE, HSW credit |
| Elective (non-HSW) | LU|Elective | CEU, PDH, CE, LU only |
Every AIA CES-approved course must prominently display all of the following.
For any course sold or offered externally, also disclose in advance:
Use this statement verbatim on every approved course page. Fill in LearnGlazing's assigned AIA CES Provider number where indicated.
LearnGlazing is a registered provider of AIA-approved continuing
education under Provider Number [AIA CES PROVIDER NUMBER]. All
registered AIA CES Providers must comply with the AIA Standards for
Continuing Education Programs. Any questions or concerns about this
provider or this learning program may be sent to AIA CES
(cessupport@aia.org or (800) AIA 3837, Option 3).
This learning program is registered with AIA CES for continuing
professional education. As such, it does not include content that
may be deemed or construed to be an approval or endorsement by the
AIA of any material of construction or any method or manner of
handling, using, distributing, or dealing in any material or product.
AIA continuing education credit has been reviewed and approved by
AIA CES. Learners must complete the entire learning program to
receive continuing education credit.
Download logo files exclusively from the AIA CES Brandfolder. That is the only sanctioned source — do not recreate, recolor, or export the mark from another file.
The AIA grants providers a limited, revocable, non-exclusive license. Use the mark only in connection with AIA CES-approved courses and strictly per the AIA brand guidelines.
Do
Display the AIA CES logo alongside the Provider number, approved LUs, and contact information on every approved course page.
Don't
Use the AIA Member logo, alter the AIA CES mark in any way, or display it on courses that are not yet approved.
Course pages & materials · PDF, SVG & EPS
Learn the components and installation sequence used in common curtain wall systems.
View courseApproved for 1 LU|HSW through AIA CES.
Standards
Accessibility is a design and engineering requirement, not a final review step. Target WCAG 2.2 Level AA.
<a class="skip-link" href="#main-content">Skip to content</a>
<header>...</header>
<nav aria-label="Primary">...</nav>
<main id="main-content">
<h1>One page-level heading</h1>
<section aria-labelledby="courses-heading">
<h2 id="courses-heading">Featured courses</h2>
</section>
</main>
<footer>...</footer>
Standards
Prefer durable, progressive HTML and small, focused enhancements. Match existing theme conventions unless a deliberate migration is underway.
| Token | Value | Purpose |
|---|---|---|
--light-green | #8CC63F | Primary interaction and positive emphasis |
--charcoal | #2C2E3D | Dark surfaces and strong structure |
$border-radius | 15px | Default card and panel radius |
$page-max-width | 1500px | Maximum full-page content width |
$font-heading | Montserrat | Headings, labels, and controls |
$font-body | Open Sans | Long-form and interface copy |
<?php
$title = get_the_title();
$url = get_permalink();
?>
<article class="course-card">
<h3 class="course-card__title">
<a href="<?php echo esc_url( $url ); ?>">
<?php echo esc_html( $title ); ?>
</a>
</h3>
</article>
.course-card {
padding: size(medium);
border: 1px solid color(grey-light);
border-radius: $border-radius;
background: color(white);
&__title {
margin-bottom: size(small);
font-family: $font-heading;
}
}
const disclosure = document.querySelector("[data-disclosure]");
if (disclosure) {
disclosure.addEventListener("click", () => {
const expanded = disclosure.getAttribute("aria-expanded") === "true";
disclosure.setAttribute("aria-expanded", String(!expanded));
});
}
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptates, nihil doloremque placeat ut. Aliquam corporis incidunt fugiat error tempora quis facilis, labore provident ipsa laborum eveniet odit! Nihil unde, blanditiis.