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:
304
modules/system/models/mailbrandsetting/custom.less
Normal file
304
modules/system/models/mailbrandsetting/custom.less
Normal file
@@ -0,0 +1,304 @@
|
||||
/* Base */
|
||||
|
||||
body, body *:not(html):not(style):not(br):not(tr):not(code) {
|
||||
font-family: Avenir, Helvetica, sans-serif;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: @body-bg;
|
||||
color: @text-color;
|
||||
height: 100%;
|
||||
hyphens: auto;
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
-moz-hyphens: auto;
|
||||
-ms-word-break: break-word;
|
||||
width: 100% !important;
|
||||
-webkit-hyphens: auto;
|
||||
-webkit-text-size-adjust: none;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
p,
|
||||
ul,
|
||||
ol,
|
||||
blockquote {
|
||||
line-height: 1.4;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
a {
|
||||
color: @link-color;
|
||||
}
|
||||
|
||||
a img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* Typography */
|
||||
|
||||
h1 {
|
||||
color: @heading-color;
|
||||
font-size: 19px;
|
||||
font-weight: bold;
|
||||
margin-top: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: @heading-color;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
margin-top: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h3 {
|
||||
color: @heading-color;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin-top: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
p {
|
||||
color: @text-color;
|
||||
font-size: 16px;
|
||||
line-height: 1.5em;
|
||||
margin-top: 0;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
code {
|
||||
color: @text-color;
|
||||
font-size: 16px;
|
||||
line-height: 1.5em;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
p.sub {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.break-all, .break-all * {
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
/* Layout */
|
||||
|
||||
.wrapper {
|
||||
background-color: @body-bg;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
|
||||
.header {
|
||||
padding: 25px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.header a, .header span {
|
||||
color: @header-color;
|
||||
font-size: 19px;
|
||||
font-weight: bold;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Body */
|
||||
|
||||
.body {
|
||||
background-color: @content-bg;
|
||||
border-bottom: 1px solid @body-border-color;
|
||||
border-top: 1px solid @body-border-color;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.inner-body {
|
||||
background-color: @content-inner-bg;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
width: 570px;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 570px;
|
||||
}
|
||||
|
||||
/* Subcopy */
|
||||
|
||||
.subcopy {
|
||||
border-top: 1px solid @subcopy-border-color;
|
||||
margin-top: 25px;
|
||||
padding-top: 25px;
|
||||
}
|
||||
|
||||
.subcopy p {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
|
||||
.footer {
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
width: 570px;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 570px;
|
||||
}
|
||||
|
||||
.footer p {
|
||||
color: @footer-color;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
|
||||
.table table {
|
||||
border-collapse: collapse;
|
||||
margin: 30px auto;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.table th {
|
||||
border-bottom: 1px solid @table-border-color;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.table td {
|
||||
color: @text-color;
|
||||
font-size: 15px;
|
||||
line-height: 18px;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.content-cell {
|
||||
padding: 35px;
|
||||
}
|
||||
|
||||
.wrapper.layout-system .content-cell {
|
||||
padding: 35px 0;
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
|
||||
.action {
|
||||
margin: 30px auto;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.button {
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16);
|
||||
color: @button-text-color;
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
-webkit-text-size-adjust: none;
|
||||
}
|
||||
|
||||
.button-primary {
|
||||
background-color: @button-primary-bg;
|
||||
border-top: 10px solid @button-primary-bg;
|
||||
border-right: 18px solid @button-primary-bg;
|
||||
border-bottom: 10px solid @button-primary-bg;
|
||||
border-left: 18px solid @button-primary-bg;
|
||||
}
|
||||
|
||||
.button-positive {
|
||||
background-color: @button-positive-bg;
|
||||
border-top: 10px solid @button-positive-bg;
|
||||
border-right: 18px solid @button-positive-bg;
|
||||
border-bottom: 10px solid @button-positive-bg;
|
||||
border-left: 18px solid @button-positive-bg;
|
||||
}
|
||||
|
||||
.button-negative {
|
||||
background-color: @button-negative-bg;
|
||||
border-top: 10px solid @button-negative-bg;
|
||||
border-right: 18px solid @button-negative-bg;
|
||||
border-bottom: 10px solid @button-negative-bg;
|
||||
border-left: 18px solid @button-negative-bg;
|
||||
}
|
||||
|
||||
/* Panels */
|
||||
|
||||
.panel {
|
||||
margin: 0 0 21px;
|
||||
}
|
||||
|
||||
.panel-content {
|
||||
background-color: @panel-bg;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.panel-item {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.panel-item p:last-of-type {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
/* Promotions */
|
||||
|
||||
.promotion {
|
||||
background-color: @promotion-bg;
|
||||
border: 2px dashed @promotion-border-color;
|
||||
margin: 0;
|
||||
margin-bottom: 25px;
|
||||
margin-top: 25px;
|
||||
padding: 24px;
|
||||
width: 100%;
|
||||
-premailer-cellpadding: 0;
|
||||
-premailer-cellspacing: 0;
|
||||
-premailer-width: 100%;
|
||||
}
|
||||
|
||||
.promotion h1 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.promotion p {
|
||||
font-size: 15px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.promotion p:last-of-type {
|
||||
margin-bottom: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
122
modules/system/models/mailbrandsetting/fields.yaml
Normal file
122
modules/system/models/mailbrandsetting/fields.yaml
Normal file
@@ -0,0 +1,122 @@
|
||||
# ===================================
|
||||
# Field Definitions
|
||||
# ===================================
|
||||
|
||||
fields:
|
||||
|
||||
_mail_preview:
|
||||
type: partial
|
||||
path: field_mail_preview
|
||||
|
||||
secondaryTabs:
|
||||
fields:
|
||||
|
||||
_section_background:
|
||||
label: system::lang.mail_brand.fields._section_background
|
||||
type: section
|
||||
|
||||
body_bg:
|
||||
label: system::lang.mail_brand.fields.body_bg
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
content_bg:
|
||||
label: system::lang.mail_brand.fields.content_bg
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
content_inner_bg:
|
||||
label: system::lang.mail_brand.fields.content_inner_bg
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
_section_buttons:
|
||||
label: system::lang.mail_brand.fields._section_buttons
|
||||
type: section
|
||||
|
||||
button_text_color:
|
||||
label: system::lang.mail_brand.fields.button_text_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
button_primary_bg:
|
||||
label: system::lang.mail_brand.fields.button_primary_bg
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
button_positive_bg:
|
||||
label: system::lang.mail_brand.fields.button_positive_bg
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
button_negative_bg:
|
||||
label: system::lang.mail_brand.fields.button_negative_bg
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
_section_type:
|
||||
label: system::lang.mail_brand.fields._section_type
|
||||
type: section
|
||||
|
||||
header_color:
|
||||
label: system::lang.mail_brand.fields.header_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
heading_color:
|
||||
label: system::lang.mail_brand.fields.heading_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
text_color:
|
||||
label: system::lang.mail_brand.fields.text_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
link_color:
|
||||
label: system::lang.mail_brand.fields.link_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
footer_color:
|
||||
label: system::lang.mail_brand.fields.footer_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
_section_borders:
|
||||
label: system::lang.mail_brand.fields._section_borders
|
||||
type: section
|
||||
|
||||
body_border_color:
|
||||
label: system::lang.mail_brand.fields.body_border_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
subcopy_border_color:
|
||||
label: system::lang.mail_brand.fields.subcopy_border_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
table_border_color:
|
||||
label: system::lang.mail_brand.fields.table_border_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
_section_components:
|
||||
label: system::lang.mail_brand.fields._section_components
|
||||
type: section
|
||||
|
||||
panel_bg:
|
||||
label: system::lang.mail_brand.fields.panel_bg
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
promotion_bg:
|
||||
label: system::lang.mail_brand.fields.promotion_bg
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
|
||||
promotion_border_color:
|
||||
label: system::lang.mail_brand.fields.promotion_border_color
|
||||
type: colorpicker
|
||||
availableColors: []
|
||||
45
modules/system/models/mailbrandsetting/sample_template.php
Normal file
45
modules/system/models/mailbrandsetting/sample_template.php
Normal file
@@ -0,0 +1,45 @@
|
||||
# {{texts.heading}} 1
|
||||
|
||||
{{texts.paragraph|raw}}
|
||||
|
||||
## {{texts.heading}} 2
|
||||
|
||||
{% partial 'table' body %}
|
||||
| {{texts.table.item}} | {{texts.table.description}} | {{texts.table.price}} |
|
||||
|:------------- |:-------------:| --------:|
|
||||
| {{texts.table.item}} 1 | {{texts.table.centered}} | $10 |
|
||||
| {{texts.table.item}} 2 | {{texts.table.right_aligned}} | $20 |
|
||||
{% endpartial %}
|
||||
|
||||
### {{texts.heading}} 3
|
||||
|
||||
{{texts.paragraph|raw}}
|
||||
|
||||
{% partial 'button' url='javascript:;' body %}
|
||||
{{texts.buttons.primary}}
|
||||
{% endpartial %}
|
||||
|
||||
{% partial 'button' type='positive' url='javascript:;' body %}
|
||||
{{texts.buttons.positive}}
|
||||
{% endpartial %}
|
||||
|
||||
{% partial 'button' type='negative' url='javascript:;' body %}
|
||||
{{texts.buttons.negative}}
|
||||
{% endpartial %}
|
||||
|
||||
{% partial 'panel' body %}
|
||||
{{texts.panel}}
|
||||
{% endpartial %}
|
||||
|
||||
{{texts.more}}
|
||||
|
||||
{% partial 'promotion' body %}
|
||||
{{texts.promotion}}
|
||||
{% endpartial %}
|
||||
|
||||
{{texts.thanks}},
|
||||
{{ appName }}
|
||||
|
||||
{% partial 'subcopy' body %}
|
||||
{{texts.subcopy}}
|
||||
{% endpartial %}
|
||||
Reference in New Issue
Block a user