parent
8b06c84646
commit
c0a8af44c0
After Width: | Height: | Size: 83 KiB |
File diff suppressed because one or more lines are too long
@ -0,0 +1,42 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="cs">
|
||||||
|
<head>
|
||||||
|
<title>N.E.B.E.</title>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="stylesheet" href="style.scss" type="text/css" media="screen">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<!-- Tags <aside> will not get rendered -->
|
||||||
|
<!-- For development, toggle preview by pressing "d" -->
|
||||||
|
<aside class="background">
|
||||||
|
<img src="background.jpg" alt="">
|
||||||
|
<img src="preview.jpg" class="development" alt="">
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
<!-- Bleed marks wrapper -->
|
||||||
|
<div class="marks">
|
||||||
|
<!-- Slots -->
|
||||||
|
<article data-slot="headline" contenteditable="true">Kitty financial services</article>
|
||||||
|
<article data-slot="discount" contenteditable="true">20</article>
|
||||||
|
<article data-image-slot="image"><img src="../assets/product.svg" alt=""></article>
|
||||||
|
<article data-slot="name">Maneki-neko cat</article>
|
||||||
|
<article data-slot="description">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fuga, ipsum!</article>
|
||||||
|
|
||||||
|
<div class="price-old-wrapper">
|
||||||
|
<img src="../assets/flag-blue.svg" class="ribbon" alt="">
|
||||||
|
<article data-slot="price_old" contenteditable="true">89</article>
|
||||||
|
<img src="../assets/line-blue.svg" class="line" alt="">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="price-wrapper">
|
||||||
|
<img src="../assets/flag-orange.svg" class="ribbon" alt="">
|
||||||
|
<article data-slot="price" contenteditable="true">79</article>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
<script src="https://cdn.nebe.app/store/utils/dist/fit.min.js"></script>
|
||||||
|
<script src="../assets/scripts.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
After Width: | Height: | Size: 247 KiB |
File diff suppressed because one or more lines are too long
@ -0,0 +1,152 @@
|
|||||||
|
$leftMarks: 0mm;
|
||||||
|
$rightMarks: 0mm;
|
||||||
|
$topMarks: 0mm;
|
||||||
|
$bottomMarks: 0mm;
|
||||||
|
|
||||||
|
// Rozměry tiskoviny bez ořezek (stejné jako název složky)
|
||||||
|
$width: 210mm;
|
||||||
|
$height: 297mm;
|
||||||
|
|
||||||
|
@import '../assets/main';
|
||||||
|
@import '../assets/fonts';
|
||||||
|
|
||||||
|
article[data-slot="headline"] {
|
||||||
|
position: absolute;
|
||||||
|
width: 170mm;
|
||||||
|
height: 2.6em;
|
||||||
|
top: 23mm;
|
||||||
|
left: 20mm;
|
||||||
|
color: #22a875;
|
||||||
|
font-family: CallingCodeBold, sans-serif;
|
||||||
|
font-size: 54pt;
|
||||||
|
line-height: 52pt;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
article[data-slot="name"] {
|
||||||
|
position: absolute;
|
||||||
|
width: 107mm;
|
||||||
|
top: 223mm;
|
||||||
|
left: 14mm;
|
||||||
|
font-family: CallingCodeBold, sans-serif;
|
||||||
|
font-size: 21pt;
|
||||||
|
color: #4f46de;
|
||||||
|
}
|
||||||
|
|
||||||
|
article[data-slot="description"] {
|
||||||
|
position: absolute;
|
||||||
|
width: 107mm;
|
||||||
|
top: 235mm;
|
||||||
|
left: 14mm;
|
||||||
|
font-family: DINProRegular, sans-serif;
|
||||||
|
font-size: 11.4pt;
|
||||||
|
line-height: 19pt;
|
||||||
|
color: #1c0c3e;
|
||||||
|
overflow: hidden;
|
||||||
|
height: 6.7em;
|
||||||
|
}
|
||||||
|
|
||||||
|
article[data-slot="price_old"] {
|
||||||
|
position: relative;
|
||||||
|
color: #ffffff;
|
||||||
|
padding-left: 12mm;
|
||||||
|
font-family: DINProBold, sans-serif;
|
||||||
|
font-size: 20pt;
|
||||||
|
line-height: 1;
|
||||||
|
text-align: right;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
strong {
|
||||||
|
font-size: 37pt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-old-wrapper {
|
||||||
|
position: absolute;
|
||||||
|
top: 208mm;
|
||||||
|
right: 2mm;
|
||||||
|
height: 16mm;
|
||||||
|
padding: 1.2mm 4mm 0 0;
|
||||||
|
|
||||||
|
img {
|
||||||
|
pointer-events: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
object-position: left center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.price-wrapper {
|
||||||
|
position: absolute;
|
||||||
|
top: 224mm;
|
||||||
|
right: 2mm;
|
||||||
|
padding: 2.5mm 5mm;
|
||||||
|
height: 31mm;
|
||||||
|
|
||||||
|
img {
|
||||||
|
pointer-events: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
object-fit: cover;
|
||||||
|
object-position: left center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
article[data-slot="price"] {
|
||||||
|
position: relative;
|
||||||
|
padding-left: 8mm;
|
||||||
|
color: #ffffff;
|
||||||
|
font-family: DINProBold, sans-serif;
|
||||||
|
font-size: 38pt;
|
||||||
|
line-height: 1;
|
||||||
|
text-align: right;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
|
||||||
|
strong {
|
||||||
|
font-size: 72pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 20pt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
article[data-slot="discount"] {
|
||||||
|
position: absolute;
|
||||||
|
top: 80mm;
|
||||||
|
left: 150mm;
|
||||||
|
height: 39mm;
|
||||||
|
width: 45mm;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-family: DINProBold, sans-serif;
|
||||||
|
font-size: 59pt;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
letter-spacing: -1mm;
|
||||||
|
}
|
||||||
|
|
||||||
|
article[data-image-slot="image"] {
|
||||||
|
position: absolute;
|
||||||
|
top: 70mm;
|
||||||
|
left: 30mm;
|
||||||
|
width: 145mm;
|
||||||
|
height: 145mm;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: center;
|
||||||
|
|
||||||
|
img {
|
||||||
|
object-fit: contain;
|
||||||
|
object-position: center center;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
@ -1,2 +1,6 @@
|
|||||||
# print
|
# Ukázková šablona pro tiskové kreativy
|
||||||
|
|
||||||
|
Při vyměně souborů `preview.pdf` a `background.pdf` je vždy potřeba přegenerovat
|
||||||
|
PNG náhledy příkazem `nebe convert-pdf`
|
||||||
|
|
||||||
|
Před prvním použitím je ale potřeba zadat tyto příkazy: `brew install graphicsmagick` a `brew install ghostscript`
|
||||||
|
After Width: | Height: | Size: 508 B |
After Width: | Height: | Size: 745 B |
@ -0,0 +1,14 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: DINProRegular;
|
||||||
|
src: url(https://cdn.nebe.app/demo/fonts/DINPro-Regular.ttf) format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: DINProBold;
|
||||||
|
src: url(https://cdn.nebe.app/demo/fonts/DINPro-Bold.ttf) format("truetype");
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: CallingCodeBold;
|
||||||
|
src: url(https://cdn.nebe.app/demo/fonts/callingcode-bold.otf) format("opentype");
|
||||||
|
}
|
After Width: | Height: | Size: 485 B |
@ -0,0 +1,109 @@
|
|||||||
|
/**
|
||||||
|
* Tento soubor není potřeba upravovat
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Základní tiskové styly
|
||||||
|
*/
|
||||||
|
$totalWidth: $width + $leftMarks + $rightMarks;
|
||||||
|
$totalHeight: $height + $topMarks + $bottomMarks;
|
||||||
|
|
||||||
|
@page {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
size: $totalWidth $totalHeight;
|
||||||
|
marks: none;
|
||||||
|
bleed: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
-webkit-print-color-adjust: exact;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
text-rendering: geometricprecision !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
body, html {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hlavní oblast obsahující sloty
|
||||||
|
*/
|
||||||
|
main {
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
width: $totalWidth;
|
||||||
|
height: $totalHeight;
|
||||||
|
|
||||||
|
html.is-development & {
|
||||||
|
outline: 1px solid blue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Netisknutelné elementy (pozadí/náhled)
|
||||||
|
*/
|
||||||
|
aside {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: $totalWidth;
|
||||||
|
height: $totalHeight;
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
img.development {
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
html.is-development & {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dynamický slot
|
||||||
|
*/
|
||||||
|
article {
|
||||||
|
&.is-highlighted {
|
||||||
|
background-color: rgba(75, 168, 46, .8);
|
||||||
|
}
|
||||||
|
|
||||||
|
html.is-development & {
|
||||||
|
outline: 1px solid red;
|
||||||
|
background-color: rgba(255, 0, 0, .2);
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ořezová oblast
|
||||||
|
*/
|
||||||
|
.marks {
|
||||||
|
position: absolute;
|
||||||
|
top: $topMarks;
|
||||||
|
left: $leftMarks;
|
||||||
|
width: $width;
|
||||||
|
height: $height;
|
||||||
|
|
||||||
|
html.is-development & {
|
||||||
|
outline: 1px solid green;
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 9.1 KiB |
@ -0,0 +1,60 @@
|
|||||||
|
document.addEventListener('keydown', (event) => {
|
||||||
|
if (event.key.toLowerCase() === 'd') {
|
||||||
|
document.querySelector('html').classList.toggle('is-development');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
window.LOAD_IMAGE = src => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let img = new Image();
|
||||||
|
img.onload = () => resolve(img);
|
||||||
|
img.onerror = (error) => reject(error);
|
||||||
|
img.src = src;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
window.FILL = async (inputs) => {
|
||||||
|
window.clickTag = inputs.url;
|
||||||
|
|
||||||
|
const textSlots = ['headline', 'price', 'price_old', 'discount', 'name', 'description'];
|
||||||
|
|
||||||
|
textSlots.forEach((slotName) => {
|
||||||
|
const slotElement = document.querySelector(`article[data-slot="${slotName}"]`);
|
||||||
|
|
||||||
|
if (slotElement) {
|
||||||
|
slotElement.innerHTML = inputs[slotName];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const imageEl = document.querySelector(`article[data-image-slot="image"]`);
|
||||||
|
const hasImage = inputs.image && inputs.image.indexOf('http') === 0;
|
||||||
|
|
||||||
|
if (hasImage) {
|
||||||
|
await window.LOAD_IMAGE(inputs.image);
|
||||||
|
imageEl.innerHTML = `<img src="${inputs.image}" alt="">`;
|
||||||
|
imageEl.style.display = 'block';
|
||||||
|
} else {
|
||||||
|
console.warn(`Nebylo definován obrázek`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reformat old price
|
||||||
|
const priceOldEl = document.querySelector(`article[data-slot="price_old"]`);
|
||||||
|
const priceOld = priceOldEl.textContent.replace(/\D/g, '');
|
||||||
|
priceOldEl.innerHTML= `<strong>${parseInt(priceOld).toLocaleString('cs')}</strong> €`;
|
||||||
|
|
||||||
|
// Reformat price
|
||||||
|
const priceEl = document.querySelector(`article[data-slot="price"]`);
|
||||||
|
const price = priceEl.textContent.replace(/\D/g, '');
|
||||||
|
priceEl.innerHTML = `<small>only</small> <strong>${parseInt(price).toLocaleString('cs')}</strong> €`;
|
||||||
|
|
||||||
|
// Reformat discount
|
||||||
|
const discountEl = document.querySelector(`article[data-slot="discount"]`);
|
||||||
|
const discount = discountEl.textContent.replace(/\D/g, '');
|
||||||
|
discountEl.textContent = `-${parseInt(discount).toLocaleString('cs')}`;
|
||||||
|
|
||||||
|
// Headline
|
||||||
|
await window.FIT(document.querySelector('article[data-slot="headline"]'));
|
||||||
|
|
||||||
|
// Name
|
||||||
|
await window.FIT(document.querySelector('article[data-slot="name"]'));
|
||||||
|
};
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"name": "Demo Print",
|
||||||
|
"format": "print",
|
||||||
|
"description": "Template for creating print campaigns",
|
||||||
|
"tags": [
|
||||||
|
"Demo"
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"price_old": {
|
||||||
|
"label": "Old price",
|
||||||
|
"value": "89",
|
||||||
|
"prefill": true
|
||||||
|
},
|
||||||
|
"price": {
|
||||||
|
"label": "Price",
|
||||||
|
"value": "79",
|
||||||
|
"prefill": true
|
||||||
|
},
|
||||||
|
"discount": {
|
||||||
|
"label": "Discount",
|
||||||
|
"value": "20",
|
||||||
|
"prefill": true
|
||||||
|
},
|
||||||
|
"headline": {
|
||||||
|
"label": "Headline",
|
||||||
|
"value": "Kitty financial services"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"label": "Name",
|
||||||
|
"value": "Maneki-neko cat"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"label": "Description",
|
||||||
|
"value": "Dolor at venenatis convallis lorem curae id curae inceptos interdum sociosqu lobortis maecenas lobortis cras consectetur dictum mi nascetur nulla torquent integer fusce."
|
||||||
|
},
|
||||||
|
"image": {
|
||||||
|
"label": "Product image",
|
||||||
|
"value": "https://cdn.nebe.app/demo/products/cat.svg",
|
||||||
|
"type": "image"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue