Hills Road Sixth Form College
Top Available Courses
CARD SYSTEM: Production card component with elevation hierarchy
FEATURES: 3 Elevation Levels | Semantic Variants | Interactive States | Selection Patterns | Media Support
Cards are flexible containers for grouping related content. The production system emphasizes elevation hierarchy (shadow depth) over colored backgrounds. Use elevation to express content priority, semantic colors for feedback, and interactive states for user engagement.
3-Tier System: Cards use shadow depth to express visual hierarchy. Base cards for inline content, elevated for featured content, prominent for primary actions.
Flat card with no shadow.
Default card with subtle shadow. Use for inline content, standard layouts, and default containers.
Medium shadow for featured content. Use to highlight important sections or secondary emphasis.
Strong shadow for primary actions. Use for wizard cards, critical decisions, and high-priority content.
<div class="card">...</div><div class="card card-elevated">...</div><div class="card card-prominent">...</div>
Left Accent Border: 3px primary-colored accent for urgent or high-priority content. Combines with any elevation level.
No shadow with priority accent. Subtle emphasis for important items in dense layouts.
Standard elevation with priority accent for important notices.
Featured content with priority indicator. Common for actionable items.
Maximum emphasis for critical decisions requiring immediate attention.
<div class="card card-flat card-high-priority">...</div><div class="card card-high-priority">...</div><div class="card card-elevated card-high-priority">...</div>
Left Accent Gradient: 3px gradient accent (blue → primary) marking a pinned or special card in a list. Use to differentiate one card from the rest of a grid (e.g. a built-in form pinned at the top). Mutually exclusive with .card-high-priority — both occupy the same ::before accent slot.
No shadow with pinned accent. Use in dense grids where the pinned card sits alongside flat campaign cards.
Standard elevation with the pinned indicator. Matches the chrome of surrounding base cards while signalling specialness.
Featured pinned content. Less commonly used since the pin already differentiates the card.
<div class="card card-flat card-pinned">...</div><div class="card card-pinned">...</div><div class="card card-elevated card-pinned">...</div>
Feedback Colors: Subtle tinted backgrounds for semantic meaning. Positive (success), Negative (error), Caution (warning), Highlight (info). Combine with any elevation level. Box-shadow borders automatically match the semantic color.
Success feedback with no shadow. Use in dense layouts or nested cards where elevation would be excessive.
Error feedback with no shadow. Subtle error indication for inline validation or list items.
Warning feedback with no shadow. Low-emphasis warnings that don't require strong visual separation.
Informational highlight with no shadow. Use for selected items or featured content in dense layouts.
Success messages, confirmations, completed tasks. Green tint with matching border.
Error messages, destructive warnings, failed validations. Red tint with matching border.
Warnings, pending states, attention required. Orange tint with matching border.
Informational highlights, selected items, featured content. Blue tint with matching border.
Featured success content with medium shadow depth.
Featured error content with medium shadow depth.
Featured warning content with medium shadow depth.
Featured informational content with medium shadow depth.
High-priority success message with strong shadow.
Critical error requiring immediate attention.
High-priority warning with strong emphasis.
High-priority informational highlight with strong emphasis.
<div class="card card-positive card-flat">...</div><div class="card card-positive">...</div><div class="card card-negative card-elevated">...</div><div class="card card-caution card-prominent">...</div><div class="card card-highlight">...</div>
Flexible Sections: Cards can contain header, body, and footer sections. Use header for titles/actions, body for main content, footer for metadata.
Simplest card structure. Just content, no header or footer. Use for standalone content blocks.
Header provides context or section label. Body contains the main content.
Complete card with all sections. Footer shows metadata or secondary actions.
<div class="card"> <div class="card-header">...</div> <div class="card-body">...</div> <div class="card-footer">...</div></div>
Title Sizes: Three title size variants using heading tokens. Small (h4), Default (h3), Large (h2). Choose based on card prominence and hierarchy.
Optional subtitle text
Uses h4 typography tokens. Best for compact cards or secondary information.
Optional subtitle text
Uses h3 typography tokens. Standard title size for most card use cases.
Optional subtitle text
Uses h2 typography tokens. Best for hero cards, wizards, or prominent actions.
<h3 class="card-title-sm">Small Title</h3><h3 class="card-title">Default Title</h3><h2 class="card-title-lg">Large Title</h2><p class="card-subtitle">Subtitle</p>
Compact Padding: Use .card-sm for tighter spacing. Reduces padding in all sections while maintaining proportions.
Header/footer: px-4 py-3. Body: p-4. Default comfortable spacing for most use cases.
Header/footer: px-3 py-2.5. Body: p-3. Tighter spacing for dense layouts or sidebar cards.
<div class="card card-sm">...</div>
Hover & Focus States: Add .card-interactive for clickable cards. Base cards elevate on hover, elevated/prominent cards increase shadow strength. Focus ring uses neutral color (not primary).
Hover to add subtle shadow. Click or tab to focus. Flat cards elevate to base level on hover.
Hover to elevate. Click or tab to focus. Base cards lift to elevated shadow level on hover.
Already elevated. Hover increases shadow strength (opacity). Focus adds neutral ring.
Highest elevation. Hover strengthens shadow. Use for primary action cards in wizards.
<div class="card card-flat card-interactive" tabindex="0">...</div><div class="card card-interactive" tabindex="0">...</div>Selection Patterns: Cards with integrated checkboxes or radio buttons. Control positioned top-left when no header, or prepended to header content. Selection is indicated by control state only (no background change).
Checkbox floats in top-left corner when no header is present. Click anywhere to select.
Checkbox prepends to header content using flexbox. Label and control aligned horizontally.
Radio button floats in top-left corner. Use for mutually exclusive options.
Radio button prepended to header. Common pattern for plan selection or configuration choices.
Checkbox floats in top-left corner when no header is present. Click anywhere to select.
Checkbox prepends to header content using flexbox. Label and control aligned horizontally.
<div class="card card-selectable-checkbox"> <input type="checkbox" id="..."> <label for="..." class="card-selectable-hitbox-full"></label> <div class="card-body">...</div></div>
Media Component: Full-width cover images using .card-cover. Natural image dimensions (no enforced aspect ratio). Border-radius automatically inherited based on position (first child, last child, or only child).
Beautiful waterfront location with modern facilities and easy transport access.
Historic building in the heart of the city. Close to parks, libraries, and cultural venues.
<img src="..." class="card-cover" alt="...">
Flush Content: Use .card-body.tight for zero-padding body. Perfect for tables or lists that extend to card edges. Automatically adds minimal top/bottom padding when header/footer are absent.
| Name | Status | Date |
|---|---|---|
| Sarah Johnson | Submitted | 2026-01-15 |
| Michael Chen | Under Review | 2026-01-14 |
| Emma Wilson | Approved | 2026-01-13 |
<div class="card-body tight"> <table>...</table></div>
Real-World Pattern: Combines prominent elevation, high-priority accent, and large title. Common for multi-step processes, important decisions, or primary action cards.
Complete your enrollment in three simple steps. We'll guide you through each stage of the process.
<div class="card card-prominent card-high-priority"> <div class="card-body"> <h2 class="card-title-lg">...</h2> ...content... </div></div>
Quick Reference
Base & Elevation: .card-flat | .card | .card-elevated | .card-prominent | .card-high-priority
Sections: .card-header | .card-body | .card-body.tight | .card-footer
Size: .card-sm
Semantic: .card-positive | .card-negative | .card-caution
Typography: .card-title-sm | .card-title | .card-title-lg | .card-subtitle
Interactive: .card-interactive | .card-selectable-checkbox | .card-selectable-radio
Media: .card-cover
COMPONENT: School Card (consumer-only)
COMPOSES: internal metrics grid (.school-card-metric*) + badge course chips + verified check + ApplicaaOne wordmark + optional school-photo
Provider listing card. Identity (initials + name + wordmark + address) sits beside a divided 3-up metrics grid (Rating / Recommended / Status), above a "Top Available Courses" chip row. Omit .school-photo for initials-only contexts; add .school-card-header-stack in tight columns where the metrics should wrap.
Photo thumbnail + initials chip, name with verified check, ApplicaaOne wordmark, divided 3-up metrics (Rating / Recommended / Status), and a "Top Available Courses" chip row.
Top Available Courses
Omit .school-photo when no cover image is available (e.g. the map results column). The initials chip carries the identity; an optional status badge can ride alongside the wordmark.
Top Available Courses
Add .school-card-header-stack in tight columns (e.g. map + filter-rail + results): the metrics wrap below the identity and the row top-aligns.
Top Available Courses
The most common use: multiple cards listed under the results toolbar, separated by a 12px gap.
Top Available Courses
Top Available Courses
COMPONENT: Course Card (consumer-only)
COMPOSES: ofsted-tag (footer) + badge-eligibility (top-right) + card-divider
Provider course listing card. Default horizontal layout (910×108) for results lists; .course-card-compact (343×185) for narrow grids. Eligibility pill floats top-right (horizontal) or top-left (compact).
Stacked layout. Eligibility pill at top-left, logo + title row, meta line, footer row at bottom.
COMPONENT: Event Listing Card (consumer-only)
COMPOSES: ofsted-tag (footer) + card-divider
Consumer event listing card. Default horizontal (910×198) has a 166×166 image on the right; compact (343×358) uses an 80px cover band at the top
Hills Road Sixth Form College · Hills Road, Cambridge CB2 8PE
Stacked layout. 80px cover band at top; content below.
Hills Road, Cambridge CB2 8PE
Hills Road Sixth Form College · Cambridge CB2 8PE
Greenford Sixth Form · Zoom
COMPONENT: Career Card (consumer-only)
COMPOSES: industry-tag (title row) + badge-status (bottom row) + caller's avatar/icon
Career listing card. Default horizontal layout (910×108) for results lists; .career-card-compact (343×185) for narrow grids. Career signals (salary, demand, tariff) ride on .badge-status from R3j.
Stacked layout. Avatar 48×48; smaller title and meta; pills limited to 2.
One card per sector — STEM / Healthcare / Arts / Finance / Trades.
COMPONENT: Review Card (consumer-only)
VARIANTS: Default (with initials avatar) + with image avatar
Community review card used in the Search page "Recent Reviews" section and the
Detail page school reviews tab. Displays reviewer identity, a recommendation
indicator, review body text, and a 2-column stat grid with star ratings.
Composes .stars for rating display.
Layout: Use a 2-column grid (tw:grid tw:grid-cols-2 tw:gap-4)
to present pairs of reviews. Avatar can be initials fallback (no <img>)
or a real photo.
Absolutely love this school! The teachers genuinely care about your success and go above and beyond to help. The science department is incredible — we have amazing lab facilities and teachers who encourage independent thinking and research.
An exceptional sixth form with outstanding A-level results. The breadth of subjects on offer is remarkable and the pastoral support system is second to none. Uni guidance here is truly world-class — most of my friends got into their first-choice universities.
<article class="review-card"> ... </article>
COMPONENT: Shortlist Slot (consumer-only)
VARIANTS: shortlist-slot-filled | shortlist-slot-empty
Fixed slot in the "Compare Your Top Choices" sidebar. Filled state shows a school logo, name, and address with a circular × remove button overlapping the top-right corner. Empty state shows a 72px dashed placeholder.
Filled: White card, 1px line-card border, 8px radius. Logo (48×48) + name (14px bold) + address (12px neutral-500). Circular × button (22×22) overlaps top-right.
<div class="shortlist-slot"><div class="shortlist-slot-filled"> … </div><button class="shortlist-slot-remove"> × </button></div>
Empty: 72px height, 8px radius, 2px dashed line-card border, surface-muted bg, neutral-300 medium text label.
<div class="shortlist-slot"><div class="shortlist-slot-empty">Provider 3</div></div>
Composed view: 5-slot column matching the ShortlistSidebar design. Caller wraps slots in a flex-col gap-3.5 layout and adds the heading + CTA button.
Ready to decide? Choose up to 5 favourite schools to compare them all in one place.
COMPONENT: AI Result Card (consumer-only)
COMPOSES: card / card-interactive / card-body / card-footer + badge-eligibility + form-check + btn
STATES: Likely eligible · Within reach · Eligible—enquire · Saved · Selected to compare · Culture tags · Compact
The ranked-match card for AI Search results. Built on the generic card (shell + interactive hover + body/footer), it adds the eligibility-led meta row, the ✦ "why it matches" recap, and a footer action bar (Add to compare · Quick Apply). Every card is treated identically — the system explains why each result matches, it does not rank a "best" for the user, so there is no top-match treatment. Save sits as a corner icon. The whole card links to the provider profile.
<article class="card card-interactive ai-result-card"> … <div class="card-body ai-result-card-body"> … <div class="card-footer ai-result-card-footer">
Footer wraps full-width; meta tightens. Add .ai-result-card-compact.