Guia prático de design editorial - Livro - Editora Senac São Paulo
Guia prático de design editorial:
criando livros completos
A autora vai além do projeto gráfico e aborda arquivo digital, acabamentos e recursos gráficos como vernizes, relevos, facas especiais e papéis mais utilizados. Também há um capítulo dedicado especialmente à capa, elemento fundamental para atrair o interesse do público, com exemplos do que não pode faltar: imagem, ilustração, orelhas, quarta capa e lombada.
Guia prático de design editorial:
criando livros completos
A autora vai além do projeto gráfico e aborda arquivo digital, acabamentos e recursos gráficos como vernizes, relevos, facas especiais e papéis mais utilizados. Também há um capítulo dedicado especialmente à capa, elemento fundamental para atrair o interesse do público, com exemplos do que não pode faltar: imagem, ilustração, orelhas, quarta capa e lombada.
Quantidade em
estoque:
6
-
Boleto Bancário
Parcela única, à vista
-
Cartão de Crédito
Parcelado em até
com cartão Mastercard ou Visa.
Guia prático de design editorial:
criando livros completosNão sabe seu CEP? Consulte aqui
-
Cartão de Crédito
'
Parcelamento em até 3 vezes sem juros com Mastercard ou Visa
-
Cartão de Crédito
Parcelado em até
com cartão Mastercard ou Visa.
Ficha Técnica:
ISBN: 9788577564439
Edição: 2.a EDIÇÃO
Área: Educação
Número de páginas: 104
Idioma: Português
Data de lançamento: 31/12/2018
Tamanho: 18 X 23
Editora(s): SENAC RIO DE JANEIRO
Ler os originais é o ponto de partida para definir formatos, margens, estrutura e tipologia em um texto. Em "Guia prático de design editorial: criando livros completos", Aline Haluch faz um breve relato do panorama histórico e das oportunidades de trabalho hoje no design. A autora vai além do projeto gráfico e aborda arquivo digital, acabamentos e recursos gráficos como vernizes, relevos, facas especiais e papéis mais utilizados. Também há um capítulo dedicado especialmente à capa, elemento fundamental para atrair o interesse do público, com exemplos do que não pode faltar: imagem, ilustração, orelhas, quarta capa e lombada. Aproveite bem
24531-sku
-
Ler os originais é o ponto de partida para definir formatos, margens, estrutura e tipologia em um texto. Em "Guia prático de design editorial: criando livros completos", Aline Haluch faz um breve relato do panorama histórico e das oportunidades de trabalho hoje no design. A autora vai além do projeto gráfico e aborda arquivo digital, acabamentos e recursos gráficos como vernizes, relevos, facas especiais e papéis mais utilizados. Também há um capítulo dedicado especialmente à capa, elemento fundamental para atrair o interesse do público, com exemplos do que não pode faltar: imagem, ilustração, orelhas, quarta capa e lombada. Aproveite bem
Ficha Técnica:
ISBN: 9788577564439
Edição: 2.a EDIÇÃO
Área: Educação
Número de páginas: 104
Idioma: Português
Data de lançamento: 31/12/2018
Tamanho: 18 X 23
Editora(s): SENAC RIO DE JANEIRO
Em breve entraremos em contato!
|
The following has evaluated to null or missing: ==> relateds[1] [in template "20102#20129#43698964" at line 85, column 80] ---- Tip: It's the final [] step that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign category = assetCategory.getA... [in template "20102#20129#43698964" at line 85, column 29] ----
1<#setting locale="pt_BR">
2
3<#assign assetentry = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
4<#assign assetCategoryRel = serviceLocator.findService("com.liferay.asset.entry.rel.service.AssetEntryAssetCategoryRelLocalService") />
5<#assign assetCategory = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") />
6<#assign contentHelper = serviceLocator.findService("com.liferay.commerce.product.content.util.CPContentHelper") />
7<#assign CPDefinitionHelper = serviceLocator.findService("com.liferay.commerce.product.util.CPDefinitionHelper") />
8<#assign friendlyURLEntryLocalService = serviceLocator.findService("com.liferay.friendly.url.service.FriendlyURLEntryLocalService")>
9
10<#assign userLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")>
11<#assign warehouseService = serviceLocator.findService("com.liferay.commerce.inventory.service.CommerceInventoryWarehouseItemLocalService") />
12<#assign companyId = userLocalService.getUser(themeDisplay.getUserId()).getCompanyId() />
13<#assign productService = serviceLocator.findService("br.senac.sp.editora.services.service.ProductService") />
14
15<div class="slider4">
16 <#if entries?has_content>
17 <#list entries as curCPCatalogEntry>
18 <#if curCPCatalogEntry?counter < 12>
19 <#assign friendlyURL = CPDefinitionHelper.getFriendlyURL(curCPCatalogEntry.getCPDefinitionId(),themeDisplay)>
20 <div class="imgContainerEspecialCarrossel4">
21 <a href="${friendlyURL}">
22 <#assign cpMedia = contentHelper.getImages(curCPCatalogEntry.getCPDefinitionId(), themeDisplay) />
23 <#list cpMedia as media>
24 <#if media.getURL()?has_content && media.getTitle()?contains("small")>
25 <img src="${media.getURL()}"/>
26 <#break>
27 </#if>
28 </#list>
29 </a>
30 <div class="informacoesProdutoCarrossel4">
31 <a href="${friendlyURL}">
32 <div class="infoSuperiores">
33 <div class="tituloEspecialCarrossel4">
34 ${curCPCatalogEntry.name?truncate(60, '...')}
35 </div>
36 <div class="autorEspecialCarrossel4">
37 <#list contentHelper.getCategorizedCPDefinitionSpecificationOptionValues(curCPCatalogEntry.getCPDefinitionId(),43620166) as specs>
38 <#if specs.CPSpecificationOptionId == 43594743>
39 <#assign autor = specs.getValueCurrentValue() />
40 ${autor?truncate(45, '...')}
41 <#break>
42 </#if>
43 </#list>
44 </div>
45 </div>
46 </a>
47 <div class="valorCarrossel4">
48 <@liferay_commerce_ui["price"]
49 CPCatalogEntry=curCPCatalogEntry
50 />
51 </div>
52 <div class="espiarCarrossel4">
53 <#if productService.isAvailable( curCPCatalogEntry.getCPDefinitionId() ) >
54 <span class="comprarCarrossel4" data-sku="${curCPCatalogEntry.CPSkus[0].getSku()}">
55 <#assign PortalUtil = staticUtil["com.liferay.portal.kernel.util.PortalUtil"] />
56 <#assign id = "add-to-cart" + PortalUtil.generateRandomKey(request, "add-to-cart") + "" + curCPCatalogEntry.CPSkus[0].getSku() />
57
58 <#list curCPCatalogEntry.getCPSkus() as skus>
59 <@liferay_commerce_ui["add-to-cart"]
60 CPInstanceId=skus.getCPInstanceId()
61 id=id
62 />
63 </#list>
64
65
66
67 </span>
68 <#else>
69 <span class="comprarCarrossel4">
70 <button class="btnIndisponivelEspecialCarrossel4" disabled>Livro Indisponível</button>
71 </span>
72 </#if>
73 </div>
74 </div>
75 </div>
76 <#elseif curCPCatalogEntry?counter == 12>
77 <!-- Ver Mais -->
78 <div class="customCart">
79 <#assign asset = assetentry.getEntry('com.liferay.commerce.product.model.CPDefinition',entries[0].getCPDefinitionId())/>
80 <#assign relateds = assetCategoryRel.getAssetEntryAssetCategoryRelsByAssetEntryId(asset.getEntryId())/>
81 <#if (currentURL?contains("catalogo?"))>
82 <#assign category = assetCategory.getAssetCategory(relateds[0].assetCategoryId)/>
83 <#else>
84 <#if relateds?has_content>
85 <#assign category = assetCategory.getAssetCategory(relateds[1].assetCategoryId)/>
86 </#if>
87 </#if>
88
89 <#if category?has_content>
90 <!-- classId de Category -->
91 <#assign friendlyURL = friendlyURLEntryLocalService.getMainFriendlyURLEntry(20013, category.categoryId)>
92 <#else>
93 <#assign friendlyURL = "">
94 </#if>
95 <div class="verMaisCard">
96 <div class="verMaisCardContent">
97 <i class="fas fa-books fa-2x"></i>
98 <div>
99 <div class="background-left2"><i class="fas fa-circle circulo auxCirc" aria-hidden="true"></i> </div>
100 </div>
101 <span class="text">Quer mais livros dessa área?</span>
102 <span class="ancora">
103 <#if friendlyURL?has_content>
104 <#assign categoryUrl = themeDisplay.getURLPortal() + '/categoria/' + friendlyURL.getUrlTitle(locale)/>
105 <a class="ancora-aux" href="${categoryUrl}">Confira todos</a></a>
106 </#if>
107 <!-- -->
108 <#assign entryName = entry.name?lower_case>
109 <#assign entryNameFormatted = entryName?replace(' ', '-')>
110 </span>
111 <div>
112 <div class="background-right2"> <i class="fas fa-circle circulo auxCirc" aria-hidden="true"></i></div>
113 </div>
114 </div>
115 </div>
116 </div>
117 <#break>
118 </#if>
119 </#list>
120 </#if>
121</div>
122
123<style>
124
125.comprarCarrossel4 {
126 margin-top: 0px;
127}
128
129.comprarCarrossel4 div.form-group {
130 display: none;
131}
132 .slider4 {
133 display: none;
134 }
135 .informacoesProdutoCarrossel4 span.commerce-discount {
136 display: none;
137 }
138
139 .comprarCarrossel4 .add-to-cart-quantity-marker.active {
140 opacity: 0;
141 display: none;
142 }
143
144 .comprarCarrossel4 form.quantity-selector {
145 display: none;
146 }
147
148 .comprarCarrossel4 .add-to-cart button.btn-add-to-cart{
149 background-color: #5ACC75;
150 border-radius: 4px;
151 width: 206px;
152 padding: 1px;
153 justify-content: center;
154 padding-left: 13%;
155 }
156
157 .comprarCarrossel4 span.price-value-final {
158 color: #D2691E !important;
159 }
160
161 .comprarCarrossel4 .btnIndisponivelEspecialCarrossel4 {
162 margin-top: 0.75rem !important;
163 }
164
165 .comprarCarrossel4 .add-to-cart button.btn-add-to-cart{
166 background-color: #5ACC75 !important;
167 }
168
169 .informacoesProdutoCarrossel4 .product-price {
170 font: normal normal bold 16px/17px Montserrat;
171 }
172
173 .slick-dots {
174 z-index: 2;
175 }
176
177 @media (max-width: 1200px) {
178 .slick-dots {
179 width: 100vw !important;
180 }
181 }
182
183 @media (min-width: 1023px) {
184 .slick-dotted.slick-slider {
185
186 }
187 .slider4 {
188 width: 1093px !important;
189 }
190 }
191
192 @media (max-width: 813px) {
193 .divEspiarCarrossel4 {
194 margin-top: 30px !important;
195 }
196
197
198 .divValorCarrossel4 {
199 margin-top: 15px !important;
200 }
201 }
202
203 @media (max-width: 768px) {
204 .slider2 .next-arrow {
205 right: 18px;
206 }
207
208 .slider2 .prev-arrow {
209 left: 18px;
210 }
211
212 .slider2 .slide-arrow .fa {
213 font-size: 22px;
214 font-weight: 400;
215 }
216
217 .slider4 .valorCarrossel4 {
218 margin-top: 5px;
219 }
220
221 .slider4 .espiarCarrossel4 {
222 position: relative;
223 top: -10px;
224 }
225
226 .valorCarrossel4 .price:not(.compact) .price-value {
227 font: normal 600 18px/17px Montserrat !important;
228 }
229 .valorCarrossel4 {
230 position: relative;
231 z-index: 9999;
232 display: flex;
233 padding-top: 25px;
234 align-items: flex-end;
235 }
236 .valorCarrossel4 .price-value {
237 margin-left: 0!important;
238 }
239 .comprarCarrossel4 .btn-add-to-cart {
240 margin: 0 !important;
241 padding-top: 2px !important;
242 }
243 .comprarCarrossel4 .btn-add-to-cart::before {
244 font-size: 16px;
245 }
246
247 .valorCarrossel4:not(.slider4semextracard .valorCarrossel4) {
248 margin-top: 0!important;
249 padding-top: 0!important;
250 }
251 .slider4 .informacoesProdutoCarrossel4:not(.slider4semextracard) {
252 top: unset;
253 bottom: 4%;
254 }
255
256 }
257
258 @media (max-width: 600px) {
259 .comprarCarrossel4 button.btn.btn-primary {
260 padding-left: 1px;
261 height: 30px;
262 }
263
264 .btn-add-to-cart-inline::before {
265 font-size: 14px;
266 width: 100%;
267 text-align: center;
268 display: block;
269 }
270 }
271
272 .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 {
273 display: flex;
274 align-items: flex-end;
275 }
276
277 .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 .price {
278 order: 1;
279 margin-top: 0!important;
280 margin-right: 2px;
281 }
282
283 .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 .parceladoCarrossel4 {
284 order: 2;
285 }
286
287 .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 .parceladoCarrossel4 + .price {
288 margin-right: 5px;
289 }
290
291 .slider4:not(.slider4semextracard) .informacoesProdutoCarrossel4 > a .divValorCarrossel4 .product-price {
292 order: 3;
293 margin-top: 0;
294 }
295
296 @media (max-width: 414px){
297 .slider4 {
298 width: 100vw !important;
299 /* margin-right: 0; */
300 margin-right: 20px;
301 margin-left: 20px;
302 }
303 }
304</style>
305
306<script>
307 setTimeout(function(){
308 $(document).ready(function() {
309 $('.slider4').slick({
310 arrows: true,
311 slidesToShow: 4,
312 slidesToScroll: 4,
313 dots:true,
314 infinite: false,
315 prevArrow: '<a href="#" class="slide-arrow prev-arrow"><i class="fa fa-chevron-left gray"></i></a>',
316 nextArrow: '<a href="#" class="slide-arrow next-arrow"><i class="fa fa-chevron-right gray"></i></a>',
317 speed: 1000,
318 index: 2,
319 lazyLoad: 'ondemand',
320 focusOnSelect:false,
321 accessibility:false,
322 adaptiveHeight:false,
323 autoplay:false,
324 responsive: [{
325 breakpoint: 1200,
326 settings: {
327 slidesToShow: 4,
328 slidesToScroll: 4,
329 variableWidth: true,
330 infinite: false,
331 centerMode: false,
332 dots:true,
333 arrows: true
334 }
335 }, {
336 breakpoint: 768,
337 settings: {
338 slidesToShow: 1,
339 slidesToScroll: 1,
340 variableWidth: true,
341 infinite: false,
342 centerPadding: 0,
343 centerMode: false,
344 dots:false,
345 arrows: true
346 }
347 }]
348 });
349
350 sendViewItemList([<#list entries as curCPCatalogEntry>${curCPCatalogEntry.getCPDefinitionId()},</#list>])
351 });
352
353 const slider4 = document.getElementsByClassName("slider4");
354 for (let i = 0; i < slider4.length; i++) {
355 slider4[i].style.display ='block';
356 }
357
358 if (typeof promoPrice !== 'undefined') {
359 promoPrice = document.getElementsByClassName("price");
360 }
361 else {
362 promoPrice = document.getElementsByClassName("price");
363 }
364
365 for (let i = 0; i < document.getElementsByClassName("price").length; i++) {
366 let carrossel = document.getElementsByClassName("price");
367 if(carrossel[i].children.length < 5) {
368 if(carrossel[i].children[0])
369 carrossel[i].children[0].innerText = "Por:"
370
371 if(carrossel[i].children[1]) {
372 carrossel[i].children[1].style.color = "#F6921E"
373 carrossel[i].children[1].style.marginLeft = ".5rem"
374 }
375 carrossel[i].style.marginTop = "24px"
376 }
377 else if (carrossel[i].children.length > 7){
378 carrossel[i].children[0].innerHTML = "<del>De:</del>"
379 carrossel[i].children[0].style.color = "#78849e"
380 carrossel[i].children[1].classList.remove("price-value-inactive")
381 let priceBefore = carrossel[i].children[1].innerText
382 carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>'
383 carrossel[i].children[1].style.color = "#78849e"
384
385 carrossel[i].children[2].style.display = "none"
386 carrossel[i].children[3].style.display = "none"
387 carrossel[i].children[4].innerText = "Por:"
388 carrossel[i].children[5].style.display = "none"
389 carrossel[i].children[6].style.display = "none"
390 carrossel[i].children[7].style.color = "#F6921E"
391 carrossel[i].children[7].style.marginLeft = ".5rem"
392 carrossel[i].style.marginTop = "10px"
393 }
394 else {
395 carrossel[i].children[0].innerHTML = "<del>De:</del>"
396 carrossel[i].children[0].style.color = "#78849e"
397 carrossel[i].children[1].classList.remove("price-value-inactive")
398 let priceBefore = carrossel[i].children[1].innerText
399 carrossel[i].children[1].innerHTML = '<del>'+priceBefore+'</del>'
400 carrossel[i].children[1].style.color = "#78849e"
401 carrossel[i].children[2].style.display = "none"
402 carrossel[i].children[3].style.display = "none"
403 carrossel[i].children[4].innerText = "Por:"
404 carrossel[i].children[5].style.color = "#F6921E"
405 carrossel[i].children[5].style.marginLeft = ".5rem"
406 carrossel[i].style.marginTop = "10px"
407 }
408 }
409 }, 1500);
410
411
412
413</script>