feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
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:
89
modules/system/assets/less/updates/details.less
Normal file
89
modules/system/assets/less/updates/details.less
Normal file
@@ -0,0 +1,89 @@
|
||||
@import "../../../../backend/assets/less/core/boot.less";
|
||||
|
||||
@padding-container: 0;
|
||||
|
||||
.plugin-details-content {
|
||||
padding: 0 @padding-container;
|
||||
|
||||
> *:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h1 { font-size: @font-size-h1 - 8; }
|
||||
h2 { font-size: @font-size-h2 - 6; }
|
||||
h3 { font-size: @font-size-h3 - 4; }
|
||||
h4 { font-size: @font-size-h4 - 1; }
|
||||
|
||||
h1, h2 { padding-bottom: 10px; border-bottom: 1px solid #ccc; }
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
padding-left: @padding-standard;
|
||||
}
|
||||
|
||||
pre {
|
||||
display: block;
|
||||
border: none;
|
||||
margin: 10px -(@padding-standard + @padding-container) 20px;
|
||||
padding: 10px 10px 10px (@padding-standard + @padding-container);
|
||||
font-size: 13px;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
color: #fff;
|
||||
background-color: #333;
|
||||
code {
|
||||
padding: 0;
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
white-space: pre-wrap;
|
||||
background-color: transparent;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
ul pre,
|
||||
ol pre {
|
||||
margin-left: -((@padding-standard * 2) + @padding-container);
|
||||
padding-left: ((@padding-standard * 2) + @padding-container);
|
||||
}
|
||||
|
||||
table {
|
||||
th {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
th, td {
|
||||
padding: 6px 13px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
|
||||
tr {
|
||||
background-color: #fff;
|
||||
border-top: 1px solid #ccc;
|
||||
|
||||
&:nth-child(2n) {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dl {
|
||||
dt, dd {
|
||||
margin-bottom: (@padding-standard / 2);
|
||||
}
|
||||
dt {
|
||||
width: 75px;
|
||||
float: left;
|
||||
text-align: right;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
dd {
|
||||
margin-left: 85px;
|
||||
}
|
||||
}
|
||||
}
|
||||
311
modules/system/assets/less/updates/install.less
Normal file
311
modules/system/assets/less/updates/install.less
Normal file
@@ -0,0 +1,311 @@
|
||||
@import "../../../../backend/assets/less/core/boot.less";
|
||||
|
||||
.product-list-empty {
|
||||
padding: 5px 0;
|
||||
font-size: 16px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.product-list {
|
||||
margin: 0;
|
||||
padding: 10px 0;
|
||||
overflow: hidden; /* clearfix */
|
||||
li {
|
||||
button {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
opacity: 0;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
button, .image, .details {
|
||||
.transition(opacity .2s linear);
|
||||
}
|
||||
}
|
||||
li:hover {
|
||||
button {
|
||||
opacity: .3;
|
||||
}
|
||||
button:hover {
|
||||
opacity: .8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.plugin-list {
|
||||
li {
|
||||
list-style: none;
|
||||
position: relative;
|
||||
border-bottom: 1px solid #E6E9E9;
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 10px;
|
||||
overflow: hidden;
|
||||
.image {
|
||||
float: left;
|
||||
margin-right: 15px;
|
||||
margin-left: 5px;
|
||||
img {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
}
|
||||
}
|
||||
.details {
|
||||
p {
|
||||
padding: 0;
|
||||
margin: 3px 0 0 0;
|
||||
color: #808C8D;
|
||||
}
|
||||
}
|
||||
h4 {
|
||||
padding: 5px 0 0;
|
||||
margin: 0;
|
||||
color: #C03F31;
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
.theme-list {
|
||||
li {
|
||||
float: left;
|
||||
padding: 0;
|
||||
margin: 0 10px 10px 0;
|
||||
list-style: none;
|
||||
border: 1px solid #E6E9E9;
|
||||
background: #fff;
|
||||
position: relative;
|
||||
.border-radius(3px);
|
||||
.transition(border .2s linear);
|
||||
.image {
|
||||
padding: 5px;
|
||||
img {
|
||||
width: 210px;
|
||||
height: 140px;
|
||||
}
|
||||
}
|
||||
.details {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
opacity: 0;
|
||||
padding: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
h4 {
|
||||
padding: 15px 0 0;
|
||||
margin: 0;
|
||||
}
|
||||
p {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
color: #999;
|
||||
text-transform: uppercase;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
li:hover {
|
||||
border-color: transparent;
|
||||
.image {
|
||||
opacity: 0;
|
||||
}
|
||||
.details {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.suggested-products {
|
||||
padding: 0;
|
||||
.product {
|
||||
padding: 0;
|
||||
}
|
||||
.image {
|
||||
float: left;
|
||||
position: relative;
|
||||
img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
.details {
|
||||
margin-left: 50px;
|
||||
padding: 10px 0;
|
||||
h5 {
|
||||
margin: 0 0 3px;
|
||||
font-size: 14px;
|
||||
color: #C03F31;
|
||||
font-weight: 400;
|
||||
}
|
||||
p {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
a {
|
||||
color: #777;
|
||||
background: #fff;
|
||||
padding: 5px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid #E6E9E9;
|
||||
}
|
||||
a:hover {
|
||||
color: #333;
|
||||
background: #f9f9f9;
|
||||
.image:after {
|
||||
content: "+";
|
||||
color: #999;
|
||||
font-size: 32px;
|
||||
display: block;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
position: absolute;
|
||||
top: 7px;
|
||||
left: 0;
|
||||
}
|
||||
.image {
|
||||
img {
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.suggested-themes {
|
||||
.image {
|
||||
img {
|
||||
width: 60px;
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
.details {
|
||||
margin-left: 70px;
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
* Typeahead
|
||||
*/
|
||||
|
||||
.product-search {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0 auto 0 auto;
|
||||
text-align: left;
|
||||
padding-bottom: 15px;
|
||||
|
||||
> i.icon {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 15px;
|
||||
font-size: 24px;
|
||||
margin-top: -20px;
|
||||
color: rgba(0,0,0,.35);
|
||||
}
|
||||
|
||||
> i.icon.loading {
|
||||
display: block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: url('../../../../system/assets/ui/images/loader-transparent.svg') 50% 50%;
|
||||
background-size: 24px 24px;
|
||||
.animation(spin 1s linear infinite);
|
||||
}
|
||||
}
|
||||
.twitter-typeahead {
|
||||
width: 100%;
|
||||
}
|
||||
.typeahead, .tt-hint {
|
||||
width: 100%;
|
||||
height: 46px;
|
||||
padding: 8px 12px;
|
||||
font-size: 24px;
|
||||
line-height: 30px;
|
||||
border: 1px solid #024e6a;
|
||||
.border-radius(3px);
|
||||
outline: none;
|
||||
}
|
||||
.typeahead {
|
||||
background-color: #fff;
|
||||
border-color: #e0e0e0;
|
||||
}
|
||||
.tt-input {
|
||||
font-weight: 200;
|
||||
}
|
||||
.tt-input:focus {
|
||||
border-color: #E6E9E9;
|
||||
}
|
||||
.tt-hint {
|
||||
color: #999;
|
||||
font-weight: 200;
|
||||
}
|
||||
.tt-dropdown-menu {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||
.border-radius(3px);
|
||||
.box-shadow(0 5px 10px rgba(0,0,0,.2));
|
||||
}
|
||||
.tt-suggestion {
|
||||
font-size: 14px;
|
||||
line-height: 18px;
|
||||
+ .tt-suggestion {
|
||||
font-size: 14px;
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
}
|
||||
.tt-suggestions {
|
||||
.product-details {
|
||||
padding: 5px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
.product-image {
|
||||
float: left;
|
||||
margin-right: 10px;
|
||||
img {
|
||||
height: 45px;
|
||||
width: 45px;
|
||||
}
|
||||
}
|
||||
.product-name {
|
||||
font-size: 20px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
}
|
||||
.tt-suggestion.tt-cursor {
|
||||
cursor: pointer;
|
||||
.product-details {
|
||||
color: #333;
|
||||
background: #f9f9f9;
|
||||
border-color: #f0f0f0;
|
||||
.product-image:after {
|
||||
content: "+";
|
||||
color: #999;
|
||||
font-size: 38px;
|
||||
display: block;
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
text-align: center;
|
||||
line-height: 45px;
|
||||
position: absolute;
|
||||
top: 5px;
|
||||
left: 5px;
|
||||
}
|
||||
.product-image {
|
||||
img {
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
121
modules/system/assets/less/updates/updates.less
Normal file
121
modules/system/assets/less/updates/updates.less
Normal file
@@ -0,0 +1,121 @@
|
||||
@import "../../../../backend/assets/less/core/boot.less";
|
||||
|
||||
.important-update-label {
|
||||
margin: 7px 0;
|
||||
}
|
||||
|
||||
.control-updatelist {
|
||||
|
||||
border: 1px solid #ccc;
|
||||
margin-bottom: @line-height-computed;
|
||||
|
||||
.update-item {
|
||||
|
||||
border-bottom: 1px solid #ccc;
|
||||
|
||||
.item-header {
|
||||
background-color: #f5f5f5;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 0 10px;
|
||||
|
||||
h5 {
|
||||
margin: 0;
|
||||
padding: 15px 0;
|
||||
text-transform: uppercase;
|
||||
font-size: 13px;
|
||||
|
||||
i {
|
||||
margin-right: 7px;
|
||||
color: @color-text-title;
|
||||
}
|
||||
|
||||
small {
|
||||
text-transform: none;
|
||||
float: right;
|
||||
line-height: 13px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.important-update {
|
||||
padding: 7px 0 0 0;
|
||||
float: right;
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
dl {
|
||||
padding: 10px;
|
||||
margin-bottom: 0;
|
||||
.clearfix;
|
||||
|
||||
dt, dd {
|
||||
float: left;
|
||||
padding: 5px 0;
|
||||
line-height: 20px;
|
||||
&.text-muted {
|
||||
color: #999 !important;
|
||||
}
|
||||
}
|
||||
|
||||
dt {
|
||||
width: 15%;
|
||||
clear: left;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #2b3e50;
|
||||
}
|
||||
dd {
|
||||
width: 85%;
|
||||
font-size: 12px;
|
||||
color: #455152;
|
||||
}
|
||||
|
||||
.important-update-label {
|
||||
position: relative;
|
||||
top: -1px;
|
||||
background-color: #e01346;
|
||||
color: #fff;
|
||||
display: inline-block;
|
||||
padding: .2em .6em .3em;
|
||||
font-size: 75%;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: baseline;
|
||||
.border-radius(.25em);
|
||||
}
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&.item-danger {
|
||||
.item-header {
|
||||
background-color: @state-danger-bg;
|
||||
h5, i, & { color: @state-danger-text; }
|
||||
}
|
||||
}
|
||||
|
||||
&.item-success {
|
||||
.item-header {
|
||||
background-color: @state-success-bg;
|
||||
h5, i, & { color: @state-success-text; }
|
||||
}
|
||||
}
|
||||
|
||||
&.item-muted {
|
||||
border-bottom: none;
|
||||
|
||||
.item-header {
|
||||
h5, i, & { color: rgba(0,0,0,.35); }
|
||||
}
|
||||
dl {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user