Recent Activities
This page shows what are we working on.
-
head
-
Minicart. Update slideout positioning and add scroll tracking for dropdown dialogs 96fbb9
-
Update header panel styles for pagebuilder slider. 4967ce
-
Refactor header panel: remove EasySlide integration, add header panel info block, and update styles for header panel slider 662724
-
Remove EasySlide configuration and related HTML content ea5c76
-
Add noEscape directive to continue shopping button URL ac4b9c
-
Update listing gap variable to use defined spacing 41f0ca
-
Add CSS class to main title in checkout cart layout dc41f6
-
Shopping cart page is done. c1d6d0
-
Shopping cart page in progress 8ca297
-
Shopping cart page 9fa558
-
Enhance quantity input styling and functionality. Apply border-radius to buttons and ensure step attribute is valid. 1bcebb
-
Add padding variable for navigation link caret. aa8d04
-
Quantity wrapper component. f57c8d
-
Product page. Adjustments for related products layout. aa27ee
-
Product page. Add new layout container. Place BCB marquee content there. a2fe52
-
Product page. Enhance gallery configuration and update layout variables for improved styling and responsiveness. b89117
-
Product page. Add grid area for price information and implement gallery layout for improved product display. 76b0b3
-
Product page. Add focus ring styling for checkboxes in related products block to enhance accessibility. ab2227
-
Product page. Refactor related products layout for improved responsiveness and styling consistency. 5aa789
-
Product page. Update quantity button icons to use mask images for better scalability and styling. 9576ee
-
Product page. Related products block. 7ed6de
-
Product page. Implement review popup for full review text display and enhance accessibility. d38885
-
Product page. Add toggle for "Write Your Own Review" form and adjust styles for review list 9973d8
-
Product page. Revies list is done. Revie form next. 5bf007
-
Theme Editor: added Listing, Animations, and Advanced sections a4451d
-
Theme Editor: added Colors section 390891
-
Product page. Reviews in progress... e13b99
-
Theme Editor: added Layout, Typography, Overlay Header, Border Radius, Color and Font Palettes ff5e62
-
Productpage. Review in progress... 7059e9
-
Productpage. Review in progress. 669824
-
BCB featured product component. 0651cf
-
Add styles for featured product details, SKU, and price row in BCB d65f2d
-
BCB accordion styles at product info main. 1a262b
-
Installer. Add accordion for products. 466a5b
-
Add padding to swatch options in product add form for improved layout f10f77
-
Product main info ... in progress bf5c3f
-
Enhance product quantity input with increment/decrement buttons and update styles for better usability 72192e
-
Update product page medium image dimensions to 590x590 012c72
-
Fix minicart styles: set empty counter opacity to 0 79fcd1
-
Increased h2 bottom margin dff6ea
-
Product page action buttons. d008f0
-
Updated footer content links and section titles for improved clarity and user experience 241039
-
BCB homepage: fixed wrong image name b1a4f4
-
Rating stars styles in product listing f17a0f
-
BCB homepage: updated full width banner and sections spacings 2076c7
-
Fixed sort order of product details inside grid listing 9ad360
-
BCB homepage: updated Videos and full width banner sections 072733
-
Product page title font-size. d0987c
-
Footer. Minor fix for ring reval animation. Restore missing divider in footer. (#3) 54cdc4
-
Footer ring reveal animation added (#3) 4a8be8
-
BCB homepage: added animated badges to top banners grid 197e37
-
BCB homepage: added rotation animation for Full Width Banner 1420f9
-
BCB homepage: top banner updated a53bd5
-
Update favicon color 5ea666
-
Update favicon 18d8dc
-
Slightly update footer background. 5fcbfc
-
Footer content update. Add contact block (#3) dea42e
-
Fixed missing minicart overlay on first open (#2) 54feaa
-
BCB homepage: updated Browse categories block dbfa89
-
Breadcrumbs 196469
-
Done with search (#2) d8e0f3
-
Enhance minisearch functionality with slideout behavior and styling adjustments without Ajaxsearch (#2) 8c4a9d
-
Minisearch styles when ajaxsearch disabled... in progress (#2) 259fac
-
Remove unused styles from viewcart action and update empty subtitle styles in minicart (#2) dba7a5
-
Minicart complete (#2) 56efd2
-
Search on desktop (#2) 9c587e
-
BCB homepage: added videos section 7ee864
-
Minicart inprogress (only buttons to adjust)... (#2) c1be91
-
Minicart update in progress.... c3d18b
-
Minicart update in progress... (#2) 55e7b9
-
INstaller. Create dummy CMS block header_panel_info to allow user add custom content (#2) f70d58
-
Adjust minicart counter (#2) 03e843
-
BCB homepage: Added brand logos section b905f1
-
BCB homepage: Added testimonials section 2ab2cf
-
Update newsletter styles: adjust input border and add consent positioning (#2) 02d37d
-
Header. Update search behaviou and look of the result dropown. 993432
-
BCB homepage: Added FAQ a0bfde
-
Add focused search styles. d80f88
-
BCB homepage: added new sections 875068
-
BCB homepage: added ECI and full-width banner d40cfa
-
Top navigation added. 8fa9a3
-
Remove color from menu links dec081
-
Clone currency and store switchers in header slideout menu for improved functionality de36e3
-
Enhance header and newsletter styles for improved layout and responsiveness in header slideout menu. b63dd0
-
Installer. Update header slideout menu styles. 825795
-
Update footer top content HTML to enhance newsletter section styling.
Don't set font familiy for header in Page Builder ba0b81 -
BCB homepage WIP b228af
-
Basic navpro slideout styles 75ac0e
-
Refactor header slideout menu and newsletter styles for improved layout and consistency 3b42ff
-
Header slideout menu... d4f174
-
Listing styles for the list mode and old price update. cbff61
-
Update README.md to clarify usage of `with-bottom-divider` CSS class and provide detailed instructions 1b9ea5
-
Pagination and make with-bottom-divider general. 37ea17
-
Added list banner 5 config; updated installer, moved it to json a43985
-
Add new layout configuration and remove easybanner references; update footer content and styles 87165b
-
Refactor easybanner configuration and installer for product listing banners 8b1d0d
-
Installer. Listing grid banner added. 914c01
-
Add swatches variables and layout styles d59581
-
Update positioning for filter title and content in layered navigation 8cbd21
-
Add image dimensions for product listings and related widgets in view.xml 6985cd
-
-
head
-
Disable on cart and checkout page including most third-party checkouts 2aff69
-
WIP af4e19
-
WIP 6a3f41
-
Fixed not working media detection with encoded attributes 6e0dfd
-
WIP a5f138
-
Apply all deferred styles at once ce1cfb
-
WIP 239e6c
-
Scan deferred css too because it can have interactive styles b57895
-
WIP 56759d
-
Readme f00dde
-
WIP 654242
-
WIP 512e22
-
Drop unused selectors from css blocks c5361a
-
WIP: Cache normalization d4a557
-
Improve debug 00e28c
-
Do not process css if not all files are readable 213908
-
Cache 03eb16
-
Imporove html tokenizer 7cee1b
-
WIP 6f72d8
-
Remove preload to get max performance 899c71
-
Better stability 2fa572
-
Better code shape 5d5421
-
Drop CSS processing from 17ms to 2ms 965ec3
-
WIP c294b5
-
Disable critical dfc1ee
-
Fixed missing tokens coming after extralong text 77c814
-
WIP 9b86ac
-
WIP a5af7f
-
Initial commit 9fbf02
-
-
head
-
feat(content-builder): the opening gate and the closing turn in the editor chat panel (#180)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> c715e5 -
fix(content-builder): require jQuery in chat-core so the panel's first reply renders (#182)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> d2af7c -
fix(content-builder): send the editor chat panel's requests past Content Builder's form-key prefilter (#182)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> 3683d8
-
-
1.8.14
-
chore(release): 1.8.14 0c3714
-
feat(content-builder): plan the sections before the build (#178) (#181)
* feat(content-builder): plan the sections before the build (#178)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* refactor(content-builder): extract plan skeleton into a testable module
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* docs(content-builder): note PlanNotice's cross-model accuracy limit
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* fix(content-builder): disable both panel buttons while a request is in flight
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* fix(content-builder): resolve plan_model_id from the page's own store (#178)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* fix(content-builder): guard the plan panel against stale screenshots and plans (#178)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* refactor(content-builder): stop publishing the unused planModelId to the client (#178)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> b1616d -
refactor(content-builder): stop publishing the unused planModelId to the client (#178)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> d59488 -
fix(content-builder): guard the plan panel against stale screenshots and plans (#178)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> 8b485d -
fix(content-builder): resolve plan_model_id from the page's own store (#178)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> 5c4ebc -
fix(content-builder): disable both panel buttons while a request is in flight
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> 9c7643 -
docs(content-builder): note PlanNotice's cross-model accuracy limit
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> 182cb1 -
refactor(content-builder): extract plan skeleton into a testable module
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> 2c10a6 -
feat(content-builder): plan the sections before the build (#178)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> 3c2cb8
-
-
1.1.0
-
Version 1.1.0 74f9d6
-
feat(webp): make cwebp method/pass configurable (#3) (#4)
* feat(webp): make cwebp method/pass configurable (#3)
cwebp was hardcoded to -m 6 -pass 10, the slowest settings, for both
Cwebp and ConvertToWebp. On-the-fly conversion after an image cache
flush overloaded servers. Expose method (0-6) and pass (1-10) in admin
config, defaulting to -m 4 -pass 1.
Fixes #3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(webp): limit cwebp method/pass to default scope (#3)
Optimized images are shared media, generated mostly from CLI/cron in
default store context, so website/store overrides would be ignored or
applied depending on which store requested the image first.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> 4ffa09 -
fix(webp): limit cwebp method/pass to default scope (#3)
Optimized images are shared media, generated mostly from CLI/cron in
default store context, so website/store overrides would be ignored or
applied depending on which store requested the image first.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> 53e994 -
feat(webp): make cwebp method/pass configurable (#3)
cwebp was hardcoded to -m 6 -pass 10, the slowest settings, for both
Cwebp and ConvertToWebp. On-the-fly conversion after an image cache
flush overloaded servers. Expose method (0-6) and pass (1-10) in admin
config, defaulting to -m 4 -pass 1.
Fixes #3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> 8ab35d
-
-
1.20.0
-
Version 1.20.0 04d9f8
-
feat(webp): debug report for CSS background images with a WebP sibling (#128) (#132)
* feat(webp): debug report for CSS background images with a WebP sibling (#128)
In debug mode (PAGESPEED_DEBUG) log to the browser console every
jpg/jpeg/png url() in inline style attributes and <style> blocks that
has a WebP file next to it, with the resolved WebP URL and a
ready-to-paste image-set() snippet. Report only, nothing is rewritten.
Fixes #128
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(webp): CSS background report review fixes (#128)
- Resolve WebP without the query string: UrlResolver takes the
extension from the full URL, so "bg.jpg?v=2" never resolved. The
suffix is put back on the reported WebP URL.
- Match image-set() quote-aware, so a parenthesis inside a quoted URL
no longer breaks the "already in image-set()" skip.
- Strip CSS comments before extracting url().
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> 951b11 -
fix(webp): CSS background report review fixes (#128)
- Resolve WebP without the query string: UrlResolver takes the
extension from the full URL, so "bg.jpg?v=2" never resolved. The
suffix is put back on the reported WebP URL.
- Match image-set() quote-aware, so a parenthesis inside a quoted URL
no longer breaks the "already in image-set()" skip.
- Strip CSS comments before extracting url().
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> e2ade8 -
feat(webp): debug report for CSS background images with a WebP sibling (#128)
In debug mode (PAGESPEED_DEBUG) log to the browser console every
jpg/jpeg/png url() in inline style attributes and <style> blocks that
has a WebP file next to it, with the resolved WebP URL and a
ready-to-paste image-set() snippet. Report only, nothing is rewritten.
Fixes #128
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> 66ee62 -
fix(webp): keep srcset descriptors and sizes on <source> (#130) (#131)
* fix(webp): keep srcset descriptors and sizes on <source> (#130)
The picture tag got one <source> per src/srcset, built from bare URLs:
w/x descriptors and sizes were lost, and the src-based <source> came
first, so browsers always loaded the smallest WebP.
Emit a single <source>, from srcset when present (URLs replaced in
place with strtr, descriptors kept), from src otherwise, and copy sizes
from the <img>. Skip the <source> when any srcset candidate has no WebP
variant instead of dropping the candidate.
Fixes #130
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(webp): skip <source> when srcset parser misses a candidate (#130)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> 6f288d -
fix(webp): skip <source> when srcset parser misses a candidate (#130)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> 16991b -
fix(webp): keep srcset descriptors and sizes on <source> (#130)
The picture tag got one <source> per src/srcset, built from bare URLs:
w/x descriptors and sizes were lost, and the src-based <source> came
first, so browsers always loaded the smallest WebP.
Emit a single <source>, from srcset when present (URLs replaced in
place with strtr, descriptors kept), from src otherwise, and copy sizes
from the <img>. Skip the <source> when any srcset candidate has no WebP
variant instead of dropping the candidate.
Fixes #130
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> 5005e9 -
feat(webp): separate "Replace WebP in inline JS" option (#126) (#129)
* feat(webp): separate "Replace WebP in inline JS" option (#126)
New config pagespeed/image/optimize_webp_js_replace (default 1) lets the
inline JS WebP rewrite be turned off on its own; isReplaceWebPInJs() now
reads it.
With "Add picture tag" on and the JS rewrite off, <img> inside <picture>
keeps the original jpg/png src/srcset and WebP goes only into
<source type="image/webp">, giving browsers without WebP (Safari/iOS < 14)
a real fallback. Defaults keep the current markup: <img> still carries the
WebP URL that Breeze gallery matches against the rewritten gallery JSON.
Fixes #126
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* refactor(webp): resolve WebP variants once per img in keep-original mode (#126)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* fix(webp): keep inline JS replace on without picture tag (#126)
Without the picture tag <img> always gets the WebP URL, so turning off
the inline JS rewrite left the Breeze gallery JSON on jpg/png and the
gallery lost the image. The option now only takes effect together with
"Add picture tag" and is hidden in admin otherwise.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> 65e702 -
fix(webp): keep inline JS replace on without picture tag (#126)
Without the picture tag <img> always gets the WebP URL, so turning off
the inline JS rewrite left the Breeze gallery JSON on jpg/png and the
gallery lost the image. The option now only takes effect together with
"Add picture tag" and is hidden in admin otherwise.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> e20abd -
fix(lazyload): stop choosing offset by User-Agent (#125) (#127)
getOffset() picked lazyload_mobile_offset or lazyload_offset from the
request User-Agent, but the optimizer runs before FPC/Varnish store the
page. The first visitor after a purge chose the offset for every device:
a phone warming the cache lazy-loaded desktop above-the-fold images,
while desktop cache warmers made the mobile offset dead.
The offset now always comes from lazyload_offset. The mobile offset
config path, constant and getter stay for BC and are marked deprecated;
the admin field says it has no effect.
Fixes #125
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> 1a6b60 -
refactor(webp): resolve WebP variants once per img in keep-original mode (#126)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> a5c8db -
feat(webp): separate "Replace WebP in inline JS" option (#126)
New config pagespeed/image/optimize_webp_js_replace (default 1) lets the
inline JS WebP rewrite be turned off on its own; isReplaceWebPInJs() now
reads it.
With "Add picture tag" on and the JS rewrite off, <img> inside <picture>
keeps the original jpg/png src/srcset and WebP goes only into
<source type="image/webp">, giving browsers without WebP (Safari/iOS < 14)
a real fallback. Defaults keep the current markup: <img> still carries the
WebP URL that Breeze gallery matches against the rewritten gallery JSON.
Fixes #126
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> 5fb521 -
fix(lazyload): stop choosing offset by User-Agent (#125)
getOffset() picked lazyload_mobile_offset or lazyload_offset from the
request User-Agent, but the optimizer runs before FPC/Varnish store the
page. The first visitor after a purge chose the offset for every device:
a phone warming the cache lazy-loaded desktop above-the-fold images,
while desktop cache warmers made the mobile offset dead.
The offset now always comes from lazyload_offset. The mobile offset
config path, constant and getter stay for BC and are marked deprecated;
the admin field says it has no effect.
Fixes #125
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> f96d9b
-
-
1.19.3
-
Version 1.19.3 6cb7ea
-
fix(webp): stop gating WebP markup by User-Agent (#123) (#124)
* fix(webp): stop gating WebP markup by User-Agent (#123)
isWebPSupport() decided per request from the User-Agent whether to emit
WebP markup, but FPC/Varnish store one copy of the page. The first
visitor after a purge chose the variant for everyone: a bot, curl or
Safari left all visitors on JPEG, Chrome served .webp to every browser.
WebP markup now depends only on the config flag. <img> inside <picture>
keeps the .webp src on purpose (9a0d35b, Breeze gallery matches img src
against the WebP-replaced gallery JSON), so browsers without WebP
(Safari/iOS < 14, IE) are no longer served a JPEG variant.
Fixes #123
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* docs(webp): note missing fallback for browsers without WebP (#123)
WebP markup no longer depends on the User-Agent, so the WebP and picture
tag options now state that browsers without WebP (Safari/iOS < 14) get no
fallback: the <img> inside <picture> keeps the WebP URL for Breeze.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> bde5e8 -
docs(webp): note missing fallback for browsers without WebP (#123)
WebP markup no longer depends on the User-Agent, so the WebP and picture
tag options now state that browsers without WebP (Safari/iOS < 14) get no
fallback: the <img> inside <picture> keeps the WebP URL for Breeze.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> 4d0e4d -
fix(webp): stop gating WebP markup by User-Agent (#123)
isWebPSupport() decided per request from the User-Agent whether to emit
WebP markup, but FPC/Varnish store one copy of the page. The first
visitor after a purge chose the variant for everyone: a bot, curl or
Safari left all visitors on JPEG, Chrome served .webp to every browser.
WebP markup now depends only on the config flag. <img> inside <picture>
keeps the .webp src on purpose (9a0d35b, Breeze gallery matches img src
against the WebP-replaced gallery JSON), so browsers without WebP
(Safari/iOS < 14, IE) are no longer served a JPEG variant.
Fixes #123
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> bcb62f
-
-
1.48.6
-
1.48.5
-
Version 1.48.5 f917cb
-
-
1.48.3
-
1.48.2
-
Version 1.48.2 fdc6ed
-
-
1.48.5
-
1.48.4
-
Version 1.48.4 8a8a4d
-
-
1.46.7
-
1.46.6
-
Version 1.46.6 666a1e
-
-
1.2.5
-
1.2.4