This guide shows you how to add a new product (like Start, Connect, Frame) or add-on (like ePayments, Library, Staff Absences) to the site. This includes adding colors, button styles, tabs (for products), and cards (for add-ons).
ui/website/css/foundations/colors.cssui/website/css/foundations/buttons.cssui/website/components/home/packages.html and styles to ui/website/css/pages/home/packages.cssui/website/components/home/add-ons.html and styles to ui/website/css/pages/home/add-ons.csscolors.cssOpen ui/website/css/foundations/colors.css and add your product/add-on color variables.
Products typically need:
--color-[name])--color-[name]-light)--color-[name]-gradient-two-tone)--color-[name]-gradient-four-tone)/* Product: Analyze */
--color-analyze: var(--color-purple); /* or a specific hex value */
--color-analyze-light: #E8D5FF;
--color-analyze-gradient-two-tone: linear-gradient(93.69deg, var(--color-purple) -6.48%, #A855F7 100%);
--color-analyze-gradient-four-tone: linear-gradient(235.42deg, var(--color-purple) 12.64%, #9333EA 47.09%, #7E22CE 47.09%, #6B21A8 58.58%);
Add-ons typically need:
--color-[name])--color-[name]-gradient-two-tone)/* Add-on: Reports */
--color-reports: var(--color-orange);
--color-reports-gradient-two-tone: var(--color-gradient-orange-yellow);
Note: Use existing base colors or gradients when possible for consistency. See colors.css for available base colors and gradients.
buttons.cssOpen ui/website/css/foundations/buttons.css and add button styles for your new product/add-on.
Products use dark variant buttons (with border effect). Add these styles:
.cta--analyze-dark {
background: var(--color-packages-gradient-two-tone);
}
.cta--analyze-dark .cta__inner {
background: var(--color-packages-gradient-two-tone);
}
.cta--analyze-dark .cta__inner::before {
content: "";
position: absolute;
inset: var(--spacing-border-thick);
border-radius: inherit;
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
padding: calc(var(--spacing-border-thick) + 0.5px);
}
.cta--analyze-dark .cta__inner {
color: var(--color-analyze);
}
.cta--analyze-dark .cta__inner::before {
background: var(--color-analyze-gradient-two-tone);
}
.cta--analyze-dark:hover .cta__inner {
background: var(--color-analyze-gradient-two-tone);
color: var(--color-font-secondary);
}
Add-ons use regular variant buttons (solid gradient backgrounds). Add these styles:
.cta--reports,
.cta--reports .cta__inner {
background: var(--color-reports-gradient-two-tone);
}
.cta--reports:hover .cta__inner {
color: var(--color-reports);
}
Open ui/website/components/home/packages.html and add your new tab button and panel:
Add button to the tab list:
<div class="tabs__list tabs__list--packages" role="tablist">
<button class="tabs__tab tabs__tab--start" id="button-start" tabindex="0" role="tab" aria-selected="true" aria-controls="start">Start</button>
<button class="tabs__tab tabs__tab--connect" id="button-connect" tabindex="-1" role="tab" aria-selected="false" aria-controls="connect">Connect</button>
<button class="tabs__tab tabs__tab--frame" id="button-frame" tabindex="-1" role="tab" aria-selected="false" aria-controls="frame">Frame</button>
<!-- Add your new tab button -->
<button class="tabs__tab tabs__tab--analyze" id="button-analyze" tabindex="-1" role="tab" aria-selected="false" aria-controls="analyze">Analyze</button>
</div>
Add panel to the panels container:
<div class="tabs__panels">
<!-- Existing panels -->
<!-- Add your new panel -->
<div class="tabs__panel tabs__panel--analyze" id="analyze" aria-hidden="true" role="tabpanel" aria-labelledby="button-analyze">
{% include "website/components/home/packages-tab-content.html" with
title="Your product title"
cta_theme="analyze-dark"
description="Product description here"
feature1="Feature 1"
feature2="Feature 2"
feature3="Feature 3"
feature4="Feature 4"
feature5="Feature 5"
cta_link="#contact"
image_alt="Product image alt text"
image="https://example.com/product-image.webp" %}
</div>
</div>
Important:
analyze, not Analyze)button-[name]aria-controls (just [name])aria-selected="false" and aria-hidden="true" for inactive tabstabindex="-1" for inactive tab buttonspackages.cssOpen ui/website/css/pages/home/packages.css and add styles for your new tab:
.tabs__tab--analyze[aria-selected="true"] {
background: var(--color-analyze-gradient-two-tone);
}
.tabs__panel--analyze {
--color-accent: var(--color-analyze-light);
background: var(--color-analyze-gradient-four-tone);
}
Open ui/website/components/home/add-ons.html and add your new card:
<div class="card__wrapper">
<!-- Existing cards -->
<!-- Add your new card -->
{% include "website/components/shared/card.html" with
image="https://example.com/reports-logo.webp"
title="Reports"
description="Generate comprehensive reports and analytics for your school."
cta_text="Learn more"
theme="reports"
cta_theme="reports"
cta_link="#contact" %}
</div>
Parameters:
image - URL to product/add-on logotitle - Product/add-on namedescription - Brief descriptioncta_text - Button texttheme - Should match the add-on name (used for title color)cta_theme - Should match the add-on name (used for button styling)cta_link - Link destination (usually #contact)add-ons.cssOpen ui/website/css/pages/home/add-ons.css and add styles for your new card:
.add-ons {
.card--reports .card__title {
color: var(--color-reports);
}
}
ui/website/css/foundations/colors.cssui/website/css/foundations/buttons.cssui/website/components/home/packages.htmlui/website/css/pages/home/packages.cssui/website/components/home/add-ons.htmlui/website/css/pages/home/add-ons.cssAfter adding your product/add-on:
/#analyze), and keyboard navigation