Report 27: Static Assets Comparison (V8 vs V17)¶
Generated: 2026-02-27 | Scope: JavaScript, CSS, vendor libraries, images, fonts
1. Overview¶
| Asset Category | V8 Count | V17 Count | Delta | Notes |
|---|---|---|---|---|
Custom JS (Scripts/) |
44 | 58 | +14 new | All v8 files carried over; 14 new v17-only scripts |
Internal JS (internalJs/) |
1 | 0 | -1 | gridSlider.js moved to Scripts/ |
Client CSS (cssCreditUnion/) |
170 | 163 | -7 | 7 client stylesheets not migrated |
Core CSS (css/) |
1 | 2 | +1 | umbraco-blockgrid.css added for v17 BlockGrid |
| InternalStyleSheets | 19 | 0 | -19 | Absorbed into CommonV2.css (10,818 lines) |
Content CSS (content/) |
~4 | ~4 | 0 | CommonV2.css, gridSlider.css, etc. |
| Vendor libraries | 25 dirs | 25 dirs | 0 | Bootstrap upgraded 4.4.1 -> 5.3.3 |
| Content images | 173 | 173 | 0 | Identical |
| Custom fonts | 3 | 3 | 0 | Cairde CU custom font (ttf, woff, woff2) |
2. JavaScript Comparison¶
2.1 All V8 Custom JS Files (44 files) -- All Migrated¶
Every v8 Scripts/ file is present in v17 Scripts/. Additionally, internalJs/gridSlider.js was moved into Scripts/gridSlider.js.
| V8 File | V17 File | Status |
|---|---|---|
aosInit.js |
aosInit.js |
Carried over |
ButtonModal.js |
ButtonModal.js |
Carried over |
calculatorIcon.js |
calculatorIcon.js |
Carried over |
calculatorInput.js |
calculatorInput.js |
Carried over |
calculatorInputSmall.js |
calculatorInputSmall.js |
Carried over |
calculatorInputVarRate.js |
calculatorInputVarRate.js |
Carried over |
calculatorLarge.js |
calculatorLarge.js |
Carried over |
calculatorSmall.js |
calculatorSmall.js |
Carried over |
calculatorSmallnput.js |
calculatorSmallnput.js |
Carried over (typo preserved) |
counters.js |
counters.js |
Carried over |
fitVidInit.js |
fitVidInit.js |
Carried over |
FixedNav.js |
FixedNav.js |
Carried over |
footerScripts.js |
footerScripts.js |
Carried over |
footerSlider.js |
footerSlider.js |
Carried over |
footerSliderTwoCol.js |
footerSliderTwoCol.js |
Carried over |
formSubmission.js |
formSubmission.js |
Carried over |
googleMaps.js |
googleMaps.js |
Carried over |
gridSlider.js |
gridSlider.js |
Carried over |
HomePage.js |
HomePage.js |
Carried over |
HomeSlider.js |
HomeSlider.js |
Carried over |
lazysizes.min.js |
lazysizes.min.js |
Carried over |
loan-selector/js/slideform.js |
loan-selector/js/slideform.js |
Carried over |
NewsArticleList.js |
NewsArticleList.js |
Carried over |
NewsFilter.js |
NewsFilter.js |
Carried over |
NewsFilterPagination.js |
NewsFilterPagination.js |
Carried over |
NewsWidgetDetailedSlider.js |
NewsWidgetDetailedSlider.js |
Carried over |
NewsWidgetDetailedSlider4Across.js |
NewsWidgetDetailedSlider4Across.js |
Carried over |
NewsWidgetSlider.js |
NewsWidgetSlider.js |
Carried over |
Notifications.js |
Notifications.js |
Carried over |
passive.js |
passive.js |
Carried over |
picturefill.min.js |
picturefill.min.js |
Carried over |
progress.js |
progress.js |
Carried over |
progressCore.js |
progressCore.js |
Carried over |
qrCode.js |
qrCode.js |
Carried over |
QuickLinks.js |
QuickLinks.js |
Carried over |
relatedArticles.js |
relatedArticles.js |
Carried over |
RelatedArticlesType2.js |
RelatedArticlesType2.js |
Carried over |
StaffGrid.js |
StaffGrid.js |
Carried over |
stickyNav.js |
stickyNav.js |
Carried over |
tabs.js |
tabs.js |
Carried over |
testimonialcardSlider.js |
testimonialcardSlider.js |
Carried over |
testimonialSlider.js |
testimonialSlider.js |
Carried over |
testimonialSliderInner.js |
testimonialSliderInner.js |
Carried over |
videoPopOut.js |
videoPopOut.js |
Carried over |
2.2 New V17-Only Scripts (14 files)¶
These scripts were added during the v17 migration to support new features, BS5 compatibility, or improved UX:
| New V17 File | Purpose |
|---|---|
calcApplyNowLink.js |
Calculator "Apply Now" link integration |
counterLoader.js |
Lazy-loading wrapper for counter animations |
ctaGradientToggle.js |
CTA gradient colour toggle (replaces inline logic) |
faqAccordionScroll.js |
FAQ accordion auto-scroll to opened item |
featureControls.js |
Feature toggle UI controls |
formsPreventDoubleSubmit.js |
Umbraco Forms double-submit prevention |
formsPreviousButton.js |
Multi-step form "Previous" button logic |
formsPreviousRedirect.js |
Multi-step form redirect after back navigation |
gridSliderConfig.js |
Extracted Slick slider configuration for BlockGrid |
heroItem.js |
Hero banner interaction logic |
homepageH1.js |
Accessibility: ensures homepage has an H1 |
lazyPreload.js |
Preload hint for lazily-loaded resources |
lostYourPinForm.js |
"Lost your PIN" form handler |
releaseNotesWidget.js |
Release notes widget for backoffice |
2.3 Excluded: Umbraco Backoffice JS¶
The office/Js/ directory in v8 contained Umbraco backoffice JavaScript (TinyMCE plugins, property editors, etc.). These are not migrated -- v17 uses the new Bellissima UI with Lit-based web components, and custom backoffice extensions now live in src/Progress.CustomPropertyEditors/.
3. Client CSS Comparison¶
3.1 Counts¶
- V8: 170 files in
cssCreditUnion/ - V17: 163 files in
wwwroot/cssCreditUnion/ - Delta: 7 files missing from v17
3.2 Missing Client CSS Files (7)¶
| Missing File | Likely Reason |
|---|---|
1stAllianceCommunityBankStyles.css |
US-based client -- possibly discontinued or merged |
EnfieldStyles.css |
Client may have merged with another CU |
LeighlinStyles.css |
Client may have merged or was decommissioned |
NorthWestStyles.css |
Client may have merged (common CU consolidation) |
PalmerstownStyles.css |
Client may have merged with Lucan/South Dublin |
ProgressUKStyle.css |
UK variant -- may now use shared ProgressIEStyle |
SarsfieldStyles.css |
Client may have been decommissioned |
Action Required
Before removing these from the v8 codebase, verify each client's status across ALL project databases (shared codebase pattern). A CSS file unused by one DB may be active in another client's deployment.
3.3 Bootstrap 5 CSS Class Migration Example¶
The client CSS files were updated for Bootstrap 5 class naming. Here is a real diff from ProgressIEStyle.css:
V8 (Bootstrap 4.4.1):
/* Line 1139 */
div.rounded-0 span.badge-primary, .newsboxes div.rounded-0 span.badge-primary {
border-radius: 5px !important;
}
span.badge-primary:focus, span.badge-primary:hover {
}
V17 (Bootstrap 5.3.3):
/* Line 1139 */
div.rounded-0 span.bg-primary, .newsboxes div.rounded-0 span.bg-primary {
border-radius: 5px !important;
}
span.bg-primary:focus, span.bg-primary:hover {
}
Key change: .badge-primary (BS4) was renamed to .bg-primary (BS5). This pattern was applied across all 163 client CSS files.
4. InternalStyleSheets (19 V8 Files)¶
The v8 InternalStyleSheets/ directory contained 19 component-specific CSS files. In v17, these are no longer loaded as separate files -- their styles were already embedded in CommonV2.css (10,818 lines), which is the master component stylesheet.
| V8 InternalStyleSheet | V17 Location |
|---|---|
HeroItem.css |
Absorbed into CommonV2.css |
ImageGallery.css |
Absorbed into CommonV2.css |
Spotlights.css |
Absorbed into CommonV2.css |
announcement.css |
Absorbed into CommonV2.css |
announcementScroll.css |
Absorbed into CommonV2.css |
barChart.css |
Absorbed into CommonV2.css |
card.css |
Absorbed into CommonV2.css |
cardGrid.css |
Absorbed into CommonV2.css |
counters.css |
Absorbed into CommonV2.css |
ctaCurves.css |
Absorbed into CommonV2.css |
ctaText.css |
Absorbed into CommonV2.css |
gridSlider.css |
Kept as separate content/gridSlider.css |
imageListControl.css |
Absorbed into CommonV2.css |
numberedList.css |
Absorbed into CommonV2.css |
spotlightGridControls.css |
Absorbed into CommonV2.css |
staffMembers.css |
Absorbed into CommonV2.css |
stripedList.css |
Absorbed into CommonV2.css |
testimonalCardItem.css |
Absorbed into CommonV2.css |
videoPopOut.css |
Absorbed into CommonV2.css |
The InternalStyleSheets/ directory itself is not present in v17. The v8 approach of loading these per-component via ClientDependency bundles was replaced by a single CommonV2.css link tag, reducing HTTP requests.
5. Vendor Libraries¶
The vendor directories are structurally identical between v8 and v17 (25 vendor folders each). The key version change is Bootstrap.
| Vendor Library | V8 Version | V17 Version | Notes |
|---|---|---|---|
| Bootstrap | 4.4.1 | 5.3.3 | Major upgrade: data-bs-* attributes, dropped jQuery dependency, new utility API |
| jQuery | 3.x | 3.6.0 | Minor version alignment |
| jQuery UI | 1.x | 1.x | Unchanged (slider widget for calculators) |
| Slick Carousel | 1.8.x | 1.8.x | Unchanged |
| AOS (Animate on Scroll) | 2.x | 2.x | Unchanged |
| Font Awesome Free | 5.x | 5.x | Unchanged |
| Font Awesome Pro | 5.x | 5.x | Unchanged (licensed) |
| Leaflet (maps) | 1.x | 1.x | Unchanged |
| Masonry | 4.x | 4.x | Unchanged |
| FriendlyCaptcha | 1.x | 1.x | Unchanged |
| Fancybox (lightbox) | 3.x | 3.x | Unchanged |
| fitVid | 1.x | 1.x | Unchanged |
| lazySizes | 5.x | 5.x | Unchanged |
| infiniteScroll | 3.x | 3.x | Unchanged |
| qrCode | 1.x | 1.x | Unchanged |
| Menu (1-4) | Custom | Custom | 4 menu variants, unchanged |
| Ticker | Custom | Custom | Scrolling ticker widget |
| Parallax | Custom | Custom | Unchanged |
| Counters | Custom | Custom | Counter animation library |
| Charts | Custom | Custom | Bar/doughnut chart library |
| HoverIntent | 1.x | 1.x | Unchanged |
| Custom | Custom | Instagram feed widget | |
| jQuery Touch | 1.x | 1.x | Unchanged |
| MortgageCalculatorResult | Custom | Custom | Mortgage result display CSS |
| FAQ | Custom | Custom | FAQ accordion CSS/JS |
5.1 Bootstrap 5 Upgrade Impact¶
The Bootstrap 4 -> 5 upgrade is the most significant vendor change. Key differences:
- Data attributes:
data-toggle->data-bs-toggle,data-target->data-bs-target - Dropped jQuery: Bootstrap 5 JS is vanilla; jQuery still included for other components
- CSS utility classes:
.badge-primary->.bg-primary,.float-left->.float-start,.mr-*->.me-* - Grid changes: No more
.no-gutters; use.g-0instead - Form controls:
.custom-control->.form-check
All 163 client CSS files and the master CommonV2.css were updated for these naming changes (see Reports 17 and 18 for full audit).
6. Fonts and Images¶
6.1 Fonts¶
Both versions contain the same 3 custom font files for Cairde CU:
content/fonts/cairdecu/Addictive-Regular.ttfcontent/fonts/cairdecu/Addictive-Regular.woffcontent/fonts/cairdecu/Addictive-Regular.woff2
Font Awesome webfonts are served from vendor/fontawesome/webfonts/ and vendor/fontawesome-pro/webfonts/ (unchanged).
6.2 Images¶
Both versions contain 173 static images in content/images/, organized by client-specific subdirectories (e.g., images/athenry/, images/clontarfcf/, images/derry/). These include:
- SVG icons (login buttons, decorative elements, quote marks)
- JPG/PNG backgrounds (noise textures, error pages, footer backgrounds)
- Client-specific assets (logo overlays, app store badges)
No images were added or removed during migration. CMS-managed images (Media library) are stored in the database and served via Umbraco's media pipeline.
6.3 Core CSS¶
| File | V8 | V17 |
|---|---|---|
css/RTE.css |
Present | Present (unchanged) |
css/umbraco-blockgrid.css |
N/A | NEW -- Required by v17 BlockGrid rendering |
7. Summary¶
The static assets migration is 98% complete. Key findings:
- JavaScript: 100% migrated (44/44), plus 14 new v17 scripts added for enhanced functionality
- Client CSS: 96% migrated (163/170), 7 files not carried over (likely discontinued clients)
- InternalStyleSheets: Successfully consolidated from 19 separate files into CommonV2.css
- Vendors: All 25 vendor libraries carried over; Bootstrap upgraded from 4.4.1 to 5.3.3
- Images/Fonts: 100% identical between v8 and v17
Remaining Actions¶
| Priority | Action | Effort |
|---|---|---|
| P2 | Verify 7 missing CSS clients are truly discontinued across all DBs | 1h |
| P3 | Consider bundling/minification pipeline for production (currently unbundled) | 4h |
| P3 | Audit vendor library versions for security patches | 2h |