feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run

- Base: wintercms/winter branch 1.2 (full framework)
- Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS
- Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication
- Partials: hero (offline-first), features, modes (offline/nube toggle),
  screenshots, pricing (3 planes), comparison, FAQ, CTA
- Plugin VivesPOS.Site with ContactForm
- Dockerfile: PHP 8.2 Apache, port 80, healthcheck
- Added winter/wn-pages, blog, sitemap, seo plugins
- Active theme set to vivespos
This commit is contained in:
2026-08-21 19:29:00 -06:00
commit 1f72193a64
3266 changed files with 531480 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
//
// Side panel
// --------------------------------------------------
#layout-side-panel {
.fix-button {
position: absolute;
right: -25px;
top: 0;
display: none;
width: 25px;
height: 25px;
font-size: 13px;
background: #ecf0f1;
z-index: 120;
.opacity(0.5);
.border-radius(~'0 4px 4px 0');
i {
display: block;
text-align: center;
margin-top: 5px;
color: @color-scrollpanel-fix-button;
}
&:hover {
text-decoration: none;
display: block;
.opacity(1)!important;
}
}
&:hover {
.fix-button {
display: block;
}
}
.fix-button-content-header .fix-button {
top: 46px;
}
.sidepanel-content-header {
background: @brand-secondary-darker;
color: white;
font-size: 15px;
padding: 12px 20px 13px;
position: relative;
&:after {
.triangle(down, 15px, 8px, @brand-secondary-darker);
position: absolute;
left: 14px;
bottom: -8px;
}
}
}
body.side-panel-not-fixed {
#layout-side-panel {
display: none;
.fix-button {
.opacity(0.5);
}
}
}
body.display-side-panel {
#layout-side-panel {
display: block;
position: absolute;
// This needs to be higher than the dropdown overlay, otherwise the
// mouseout event fires and sidebar hides when opening a dropdown.
z-index: @zindex-dropdown;
width: 350px;
.box-shadow(3px 0px 3px 0 rgba(0, 0, 0, 0.1));
}
}
@media (min-width: @screen-md-min) {
body.side-panel-fix-shadow {
#layout-side-panel {
.box-shadow(none);
}
}
}
.touch #layout-side-panel .fix-button {
display: none;
}
@media (max-width: @screen-sm) {
#layout-side-panel .fix-button {
display: none;
}
}