Same headline for 2 TV stations / L’idée juste ou juste la même idée?

Post pobrano z: Same headline for 2 TV stations / L’idée juste ou juste la même idée?

THE ORIGINAL?
France Télévisions – France2 – 2011
“Des infos justes et pas juste l’info”
Click image to enlarge
Agency : Royalties, Publicis Group (France)
LESS ORIGINAL
France Info Canal 27 – 2022
“Pas juste l’info. L’info juste”
Click image to enlarge
Agency : Movement (France)

Scroll Shadows? Pure CSS Parallax? Game Back On.

Post pobrano z: Scroll Shadows? Pure CSS Parallax? Game Back On.

Chris calls scroll shadows one his favorite CSS-Tricks of all time. Lea Verou popularized the pure CSS approach using four layered background gradients with some clever background-attachment magic. The result is a slick scrolling interaction that gives users a hint that additional content is available in a scrollable container.

CodePen Embed Fallback

Just one problem: it broke in Safari iOS 13. One day it was all good. The next, not so much. And that wasn’t the only thing affected. Keith Clark’s CSS-only parallax effect also stopped working right about then.

Well, reader Ronald wrote in to say that all is working once again! In fact, I’m writing this on my iPad (Safari 15.5) right now and Chris’s demo is looking sharp as ever. So is Keith’s original demo.

So, what broke it? We still don’t know. But the Safari 13 release notes offer clues:

  • Added support for one-finger accelerated scrolling to all frames and overflow:scroll elements eliminating the need to set-webkit-overflow-scrolling: touch.
  • Changed the default behavior on iPad for wide web pages with responsive meta-tags that require horizontal scrolling. Pages are scaled to prevent horizontal scrolling and any text is resized to preserve legibility.

When was it fixed and what fixed it? Well, on the scroll shadow side, the Safari 15.4 included some work on background-attachment: local that may have done the trick. On the parallax side, Safari 14.1 added support for individual transform properties… so maybe that?


Scroll Shadows? Pure CSS Parallax? Game Back On. originally published on CSS-Tricks. You should get the newsletter.

Recreating MDN’s Truncated Text Effect

Post pobrano z: Recreating MDN’s Truncated Text Effect

It’s no secret that MDN rolled out a new design back in March. It’s gorgeous! And there are some sweet CSS-y gems in it that are fun to look at. One of those gems is how card components handle truncated text.

Pretty cool, yeah? I wanna tear that apart in just a bit, but a couple of things really draw me into this approach:

  • It’s an example of intentionally cutting off content. We’ve referred to that as CSS data loss in other places. And while data loss is generally a bad thing, I like how it’s being used here since excerpts are meant to be a teaser for the full content.
  • This is different than truncating text with text-overflow: ellipsis, a topic that came up rather recently when Eric Eggert shared his concerns with it. The main argument against it is that there is no way to recover the text that gets cut off in the truncation — assistive tech will announce it, but sighted users have no way to recover it. MDNs approach provides a bit more control in that department since the truncation is merely visual.

So, how did MDN do it? Nothing too fancy here as far the HTML goes, just a container with a paragraph.

<div class="card">
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore consectetur temporibus quae aliquam nobis nam accusantium, minima quam iste magnam autem neque laborum nulla esse cupiditate modi impedit sapiente vero?</p>
</div>

We can drop in a few baseline styles to shore things up.

CodePen Embed Fallback

Again, nothing too fancy. Our goal is cut the content off after, say, the third line. We can set a max-height on the paragraph and hide the overflow for that:

.card p {
  max-height: calc(4rem * var(--base)); /* Set a cut-off point for the content */
  overflow: hidden; /* Cut off the content */
}
CodePen Embed Fallback

Whoa whoa, what’s up with that calc() stuff? Notice that I set up a --base variable up front that can be used as a common multiplier. I’m using it to compute the font-size, line-height, padding for the card, and now the max-height of the paragraph. I find it easier to work with a constant values especially when the sizing I need is really based on scale like this. I noticed MDN uses a similar --base-line-height variable, probably for the same purpose.

Getting that third line of text to fade out? It’s a classic linear-gradient() on the pargraph’s :after pseudo-element, which is pinned to the bottom-right corner of the card. So, we can set that up:

.card p:after {
  content: ""; /* Needed to render the pseudo */
  background-image: linear-gradient(to right, transparent, var(--background) 80%);
  position: absolute;
  inset-inline-end: 0; /* Logical property equivalent to `right: 0` */
}

Notice I’m calling a --background variable that’s set to the same background color value that’s used on the .card itself. That way, the text appears to fade into the background. And I found that I needed to tweak the second color stop in the gradient because the text isn’t completely hidden when the gradient blends all the way to 100%. I found 80% to be a sweet spot for my eyes.

And, yes, :after needs a height and width. The height is where that --base variables comes back into play because we want that scaled to the paragraph’s line-height in order to cover the text with the height of :after.

.card p:after {
  /* same as before */
  height: calc(1rem * var(--base) + 1px);
  width: 100%; /* relative to the .card container */
}

Adding one extra pixel of height seemed to do the trick, but MDN was able to pull it off without it when I peeked at DevTools. Then again, I’m not using top (or inset-block-start) to offset the gradient in that direction either. 🤷‍♂️

Now that p:after is absolutely positioned, we need to explicitly declare relative positioning on the paragraph to keep :after in its flow. Otherwise, :after would be completely yanked from the document flow and wind up outside of the card. This becomes the full CSS for the .card paragraph:

.card p {
  max-height: calc(4rem * var(--base)); /* Set a cut-off point for the content */
  overflow: hidden; /* Cut off the content */
  position: relative; /* needed for :after */
}

We’re done, right? Nope! The dang gradient just doesn’t seem to be in the right position.

CodePen Embed Fallback

I’ll admit I brain-farted on this one and fired up DevTools on MDN to see what the heck I was missing. Oh yeah, :after needs to be displayed as a block element. It’s clear as day when adding a red border to it.🤦‍♂️

CodePen Embed Fallback
.card p:after {
  content: "";
  background: linear-gradient(to right, transparent, var(--background) 80%);
  display: block;
  height: calc(1rem * var(--base) + 1px);
  inset-block-end: 0;
  position: absolute;
  width: 100%;
}

All together now!

CodePen Embed Fallback

And, yep, looks sounds like VoiceOver respects the full text. I haven’t tested any other screen readers though.

I also noticed that MDN’s implementation removes pointer-events from p:after. Probably a good defensive tactic to prevent odd behaviors when selecting text. I added it in and selecting text does feel a little smoother, at least in Safari, Firefox, and Chrome.


Recreating MDN’s Truncated Text Effect originally published on CSS-Tricks. You should get the newsletter.

Why I Chose Angular to Build a URL Shortener

Post pobrano z: Why I Chose Angular to Build a URL Shortener

URL Shorteners are tools we use to make links shorter than they actually are. With a URL Shortener, you can transform a long link (maybe for a registration form or article) into a shorter version.

Behind the scenes, the long and short versions of a given link have been stored in some database. Then when a user visits the short link in a browser, the URL Shortener will redirect the user to the long version of the link (where the actual content is found).

Shortened links from URL shorteners are commonly used when the long version of those links would be too long to use. Sharing links on social media or when designing flyers and adverts is a popular use of URL shorteners.

For one of my projects, I created a personal URL shortener. My intention was to use it for links to articles I write or videos I make. I used Firebase to build the backend of the URL shortener. Specifically, I used the Firestore database to store short and long versions of any given link.

To create links, I had to use the Firebase console. This wasn’t a problem but it was cumbersome for the high frequency of editing links. The user experience (UX) was not ideal. Now I was faced with a problem. How do I create, edit, and delete links? I needed to build a frontend for the URL shortener. I needed a website for this.

In this article, we’ll review the available tools used for building this frontend, decision choices, and factors that influenced why they were made.

Problem statement

The project requirements were:

  • Platform/Architecture. The engineering and structure of the coding process.
  • UI Toolkit. Components to use for the various parts of the UI.
  • Convenience. Building the backend was not tough, so this frontend should not be either. I wanted clean code and fast development.

The First Decision Choice: Angular

Many ideas come to mind when starting out to build a frontend. In a broad sense, we could categorize frontend building options into 3 platforms:

  1. Website Builders – like WordPress, Wix, Squarespace, etc.
  2. Vanilla Building – using plain HTML, CSS, and JavaScript.
  3. JavaScript Framework – like React, Vue, Angular, etc.

In my experience, website builders provide a very restricted collection of widgets, components, and templates. Most website builders don’t provide an easy way to integrate an entire custom backend like Firebase. While it is possible to build impressive sites by connecting these pieces together, the degree of complexity of my project was likely beyond what these services typically provide.

Using the no-framework style or vanilla would have been a possibility. However, the deciding factor that made me not choose the pure vanilla route was that the latest non-CDN version of the Firebase JavaScript SDK (Version 9) is designed with installation via npm or yarn and module bundling in mind.

JavaScript frameworks handle frontend core parts (like routing, backend-linking, etc.) to reduce developer efforts. There are many of them and choosing which to use seemed to be a harder choice to make.

There are many JavaScript frameworks for frontend development. Examples include Angular, React, Vue, etc.

Of the available frameworks, I have the most familiarity with Angular. This is because I have used it on previous projects like:

  • Choir Carol Quiz: Portal where Quiz participants competed in two online rounds of timed multiple choice questions on select Bible chapters.
  • Genesys AE-FUNAI Community: Custom Form where members of Genesys Campus Club AE-FUNAI (my community) report their progress and share their achievements.
  • Tutorial Management System: Simple session management dashboard between students and tutors.

This familiarity allows me to build quickly with Angular. Being able to build quickly should not be underestimated.

I chose Angular because of its Object-Oriented Programming (OOP) ability. OOP is a programming paradigm that focuses more on classes, data, or state being managed, rather than on the logic controlling the data, as is the case with functional programming. Separation of concerns is one advantage of using OOP. In other words, OOP permits encapsulation. It permits you to scope aspects of the program to peculiar domains or classes.

In Angular, components (and their lifecycle methods) are scoped to TypeScript classes. This makes you think the OOP way. The OOP advantage reflects in how Angular components serve as reusable UI units in the Angular framework. That way you see an Angular component as some self-sufficient entity that is yet part of a whole. This makes frontend development easy as various parts of the frontend app can be scoped to components and hence can be used where needed.

I also chose Angular because it uses TypeScript. TypeScript is JavaScript with features of a typed programming language. Typing in this context means a variable can’t change the kind of value it holds all through its life. For example, a variable holding a string will not all of a sudden hold a number while it is used in that program. Typing increases code quality and reduces bugs.

As a result of its type system, TypeScript reduces the time spent debugging Angular apps. It gives developer experience as the developer will have more time to build the frontend app. Debugging also becomes easy for the developer.

Note: Here is more on Object-Oriented Programming with TypeScript

Still, on Angular’s advantages, Angular apps come as a complete setup. They handle important features like bundling CSS preprocessors or Angular services by themselves. That said, when using Angular, you don’t need to configure each library independently, Angular takes care of this.

An Angular service is what Angular uses to configure dependency injection. In simple terms, dependency injection is providing an application with what it needs to function (dependencies) without the application having to take care of how the dependencies were gotten. I also chose Angular because of its out-of-the-box handling of services. So Firebase, for example, will be auto-provided to all Angular components that need without any extra configuration.

The benefits of Object-Oriented Programming, TypeScript, and dependency injection make Angular a go-to for frontend development. Coupled with the fact I was already familiar with Angular, Angular was more convenient for this URL shortener project.

Angular articles on CSS-Tricks are also part of the story. They gave me more confidence with using Angular.

The Second Decision Choice: Material Design

After choosing Angular, my next task was to consider how I would handle the user interface (UI).

I could ignore and do vanilla CSS instead but why reinvent the wheel? After all, this would defeat the reason for using a JavaScript framework – convenience.

With choosing a UI toolkit, there seems to be an ocean of options. To name a few, one can use Bootstrap, Bulma, Semantic UI, Tailwind, etc. Each toolkit has its own specifications and motivations.

For the use case of my project, Material Design led the pack.

One of the most important factors was the support for Angular and Material Design. There is an entire Angular-only specification for Material on material.angular.io (that is as a subdomain to the Angular docs itself).

I settled for Material Design because it focuses on components. Unlike other CSS frameworks, it doesn’t have CSS utility classes. This was okay because I only wanted some component kit (buttons, icons, inputs, sidebars, snack bars, etc.) Material also adds animations, ripple, and shadow effects by itself; making it more convenient than other libraries.

Furthermore, Angular Material has out-of-the-box theming support, when initializing Angular Material, you have the option of choosing a pre-defined theme for the entire Angular app or creating a custom one.

Screenshot of installing Angular Material and selecting a theme.

For the sake of convenience, I chose a dark theme while setting up Angular Material.

The Third Decision Choice: Reactive Forms

With a framework and toolkit decided, I turned my attention to one of the most important features of the URL shortener. The core of the URL shortener’s frontend is the form for creating and updating links.

Let’s call this form the links editor. The links editor form has only two inputs, one for the short version of a link and the other for the full URL the short version will redirect to.

For managing forms, Angular comes with two mechanisms. So instead of creating a form and handling its validation and submission as is done in vanilla HTML and JavaScript, you have to use either of the two ways Angular provides. The two methods are:

  1. Template-driven forms
  2. Reactive forms

Template-driven forms as the name imply, involve the HTML (template) code controlling the greater part of the Angular form. This approach is preferable when your form does not do much or is for one-time usage.

Reactive forms, on the other hand, provide a model-driven approach to handling form inputs whose values change over time. I needed reactive forms because it is the same form that I will use to edit different links at any point in time.

Note: Here is more material on using Reactive Forms.

At this point, the benefits of previous choices began playing out. Angular Material has form-field components. The form-field wraps the input as a component and provides animations, ripple effects, and error messages if necessary.

Animated gif of short and long URLs entered into a form.

So I used it for the two inputs of the editor form.

The Fourth Decision Choice: Angular Material Bottom Sheet and Drawer

The final decision involved how to improve the user experience. The URL shortener would need other features like viewing all created links and their analytics. These features would require space on the screen that required me to rethink if there were better solutions to display the links editor form to the user.

If the user has no current need for the links editor form, it makes sense for the links editor form to not always be in view. This would free up space on the UI for other elements.

However, splitting this user experience into two separate pages felt disruptive. Instead, to open the links editor when needed, I added a floating action button on the page for creating links. When clicked, the button will cause the editor form to be opened in any fitting UI component.

bottom sheet, as the name implies, is a UI component that opens from the bottom of the screen. It has interactive content the user can work it. It overlays the current view of a mobile screen (but doesn’t fully block it).

Animated gif of interacting with a form displayed in a Bottom Sheet.

Bottom sheets are usually used in place of pop-ups if the user will spend a long time interacting with their content. So, bottom sheets are a good fit to open the editor on mobile screens. However, interacting with a bottom sheet is hard when the screen is wide. I needed a different UI component for the links editor form on wide screens.

Drawers open by the side. Using a drawer to open the links editor form on a wide screen was the go-to option. Drawers won’t be good for the editor on mobile screens. The screen’s width would be relatively small and the drawer might completely block the screen (which is not a desirable UX).

Animated gif of interacting with a form displayed in a Drawer.

I selected these two UI components from Material Design for the form to have some responsive effect. So whether on my phone or laptop creating links would be done in a fitting UI component.

In the code, Angular checks if the device is of small screen width. If so, it opens a bottom sheet containing the links editor form. On the other hand, if the screen is wide, Angular opens a drawer containing the same form.

Using these two components brought about a minor complication. If my phone is rotated or my laptop’s browser window’s width is reduced, the form opens on the contrary UI component. That is instead of opening in a drawer in a laptop, it will open in a bottom sheet (because the browser’s width was reduced).

Maintenance, Future-proofing, Future Releases

When I thought of opportunities to iterate on this project, I ran into limitations with the current use case designed to support a single administrator. But with authentication and user accounts, it can support additional users managing links and accessing analytics.

In that case, the above choices of components will still be appropriate. The links editor is responsive so on any device, users will have a good user experience.

If I had to do it all over again, I think I would have tried out the vanilla method. Building entirely without any helpers like Angular, Material, or UI components. I would try building from scratch in HTML, CSS, and JavaScript and see if I didn’t lose out on convenience as I thought I would.

Conclusion

You can access the final Angular code here on GitHub.

This was a review of some of the main choices I made when developing my project. Of course, there is more to building the frontend of a URL shortener. But for a start, these UI components made the building process convenient. They made the links editor form responsive and could be of similar use to you in your projects (not necessarily a URL shortener).

There are many other UI components from various libraries you can use for any such project. But as with my case, if convenience is a deciding factor, you would make the right decision choice that would be fitting for the UI.

Ultimately, what shaped my decisions was understanding what my project required, knowledge of tools I had used from previous projects, and expectations with time constraints. My past experience — successes and mistakes — helped guide me too.

Cheers!


Why I Chose Angular to Build a URL Shortener originally published on CSS-Tricks. You should get the newsletter.

Roundup of Recent Document Outline Chatter

Post pobrano z: Roundup of Recent Document Outline Chatter

It’s not everyday that HTML headings are the topic de jour, but my folder of saved links is accumulating articles about the recently merged removal of the document outline algorithm in the WHATWG Living Standard.

First off, you should know that the algorithm never really existed. Sure, it was in the spec. And sure, there was a warning about using it in the spec. But no browser ever implemented it, as Bruce Lawson reminded us. We have been living in a flat document structure the whole time.

This is very old news. Adrian Roselli has been writing about the document outline myth since 2013. But it’s his 2016 post titled “There Is No Document Outline Algorithm” that comprehensively spells it out and has been updated regularly with extra nuggets of context about the conversations and struggles that got us here. This is really the best timeline of the saga. Amelia Bellamy-Royds has also delved into the roots of the dilemma in the past here on CSS-Tricks.

My mind instantly goes to all the work that’s gone into the making of a document outline algorithm that supports sectioning. Removing it from the spec is the right call for sure, but it doesn’t take away from the herculean efforts that went into it even if it is now buried in some version history. I also think about all the well-intentioned folks who have written about the algorithm erroneously over time (including on this very site!) with the expectation that it was just around the corner. There’s nearly seven years of mental and technical debt that we’ve accrued from what appear to be a lack of action.

Looking past the “news” that the algorithm is officially no more, Bruce laments that there is no generic <h> element or the like that can be sectioned to produce the correct heading level. I agree. Having an <h1> element essentially exist as an exposed <title> is constraining, particularly since pages are so rarely structured around a single article with a single top-level heading. I often find myself wincing every time I’m making some sort of card component where using <h3> might be technically correct, but feels out of order. And that’s before we even talk about the styling considerations where a lower heading level now needs to look like a distinct higher heading level.

Speaking of heading level management, Steve Faulkner (who authored the PR that plucked the algorithm from the spec) has a super practical overview of using the <hgroup> element to handle heading patterns that involve subheadings, subtitles, alternative titles, snd taglines. I’m sure you’ve seen markup like this in the wild:

<h1>Disappointingly Average</h1>
<h2>The Autobiography of Geoff Graham</h2>
<h3>by Geoff Graham</h3>

That doesn’t jive with a flat document outline that’s driven by heading levels. Each one of those headings represents a section that forms a hierarchy of information:

Disappointingly Average
└── The Autobiography of Geoff Graham
    └── by Geoff Graham

What we want instead is a group of headings. Cue the <hgroup> element:

When nested within a <hgroup> element, the <p> element’s content represents a subheading, alternative title, or tagline which are not included in the document outline.

So, we get this structure:

<hgroup>
  <h1>Disappointingly Average</h1>
  <p>The Autobiography of Geoff Graham</p>
  <p>by Geoff Graham</p>
</hgroup>

<hgroup> is role=generic at the moment, but Steve points to a proposal that could map it to role=group. If that happens, the accessibility tree will allow assistive tech to assign more semantic meaning to those paragraphs as the subtitle and tagline pieces that they are. Sounds easy but Steve notes challenges that are in the way. He also demos how this sort of pattern could be implemented today with ARIA attributes.

As long as we’re rounding things up, Matthias Ott published a few tips on creating a structured outline with headings. Check out the end for a great list of tools to check your heading outlines.


Roundup of Recent Document Outline Chatter originally published on CSS-Tricks. You should get the newsletter.

How to Create a Book Jacket Template in InDesign

Post pobrano z: How to Create a Book Jacket Template in InDesign

Final product imageFinal product imageFinal product image
What You’ll Be Creating

In this tutorial, I’ll show you how to make a dust jacket for a book. Designing book jacket covers can be intimidating. Today, I’ll show you how to set up a dust jacket template that you can reuse over and over again. Using the Page Tool, we will set up every section of the jacket as its own page. This will make the jacket design template easy to alter.

I’ve also included a handy diagram to show you the dimensions and the structure of the book jacket design. Use this as a guide for your future custom book covers and book jackets! 

In a hurry? We’ve got amazing InDesign book templates and dust jacket templates over at Envato Elements, just like this one:

Book Mockup Dust Jacket Template EditionBook Mockup Dust Jacket Template EditionBook Mockup Dust Jacket Template Edition
Book Mockup Dust Jacket Template Edition from Envato Elements

And if you prefer to watch video tutorials, we’ve got it covered as well. The Envato Tuts+ YouTube channel has hundreds of amazing design tutorials, like this new video about how to make a dust jacket for a book:

What You’ll Learn in This Book Jacket Design Tutorial

  • How to set up the structure of a book jacket template in InDesign
  • How to set up Master Pages, Swatches, and Styles
  • How to design a book jacket template in InDesign
  • How to export a book jacket template for printing

What You’ll Need

You’ll need access to Adobe InDesign. If you don’t have the software, you can download a trial from the Adobe website. You’ll also need:

Download the assets and make sure the font is installed on your system before starting. I’ll show you how to load Paragraph Styles later in the tutorial. When you are ready, we can dive into creating our InDesign book template! 

1. How to Set Up the Structure of a Book Jacket Template in InDesign

For this tutorial, we will start by setting up the InDesign book template with one page. Later, on the Layers panel, we will set up the rest of the structure of the book jacket template, as shown in the diagram below.

Each part of the book cover template will be set up as its own page. Users will then be able to resize the book jacket cover as they need.

Diagram of the book jacket templateDiagram of the book jacket templateDiagram of the book jacket template

Step 1

In InDesign, go to File > New. Name the document Book Jacket Template and set the file to the following dimensions:

  • Width to 6.375 in
  • Height to 9.25 in 
  • Orientation to Portrait
  • Units to Inches
  • Pages to 1
  • Uncheck Facing Pages
  • Margins to 0.5 in
  • Bleed to 0.125 in (it’s best to seek your professional printer’s preference)

Click Create.

setting up the book jacket templatesetting up the book jacket templatesetting up the book jacket template

Step 2

On the Pages panel (Windows > Layers), uncheck Allow Document Pages to Shuffle from the main menu. This option will allow us to move pages on the InDesign book template easily.

on the pages panel select the allow document pages to shuffleon the pages panel select the allow document pages to shuffleon the pages panel select the allow document pages to shuffle

Step 3

On the Pages panel, add four pages to the book jacket template through the Create New Page button. Also on the Pages panel, drag the pages into a five-page spread.

create 4 new pages on the pages panelcreate 4 new pages on the pages panelcreate 4 new pages on the pages panel

Step 4

Select the Page Tool (Shift-P) from the Tools panel. Select the first page on the left and head over to the Control panel. Set the Width to 3.5 in.

Select the last page on the right with the Page Tool (Shift-P) and set the Width to 3.5 in. Use the Page Tool (Shift-P) to move the pages next to each other if necessary. 

select the back and front lap and resizeselect the back and front lap and resizeselect the back and front lap and resize

Step 5

On the Layers panel, select the spine section of the book jacket cover and head over to Layout > Margins and Columns. Set the Margins on all sides to 0.25 in. Click OK. 

alter the margin on the spine alter the margin on the spine alter the margin on the spine

Step 6

Select the Page Tool (Shift-P) from the toolbar. Select the spine page and set the Width to 1 in.

change the size of the spinechange the size of the spinechange the size of the spine

Step 7

Before we start the design of the InDesign book template, we need to alter the margin settings on the front cover and back cover. We need to subtract 0.375 in order to have the design aligned in the center. 

On the Layers panel, select page 2 of the InDesign book template. Head over to Layout > Margins and Columns and set the Left margin to 0.875 in. This is to account for the 0.375-inch back wrap and the 0.5-inch margin on all sides. 

Repeat the same procedure on the front page of the book jacket cover. On the Layers panel, select page 4. Head over to Layout > Margins and Columns and set the Right margin to 0.875 in.

move the margins on the front and back covermove the margins on the front and back covermove the margins on the front and back cover

2. How to Set Up Master Pages, Swatches, and Styles

Step 1

Open the Layers panel by going to Window > Layers. We’ll organize our book cover template into three layers so that users can edit the content.

Bring up the Layers panel by going to Window > Layers. Double-click on Layer 1 and rename it Background. 

In the Layers panel main menu, select New Layer. Name it Text. Click OK. Also create a new layer named Images.

create new layerscreate new layerscreate new layers

Step 2

Head over to Window > Color > Swatches to expand the Swatches panel. Choose New Color Swatch button from the main menu. Set the Swatch Name and values to the following: 

  • Blue: C=100 M=80 Y=20 K=55
  • Orange: C=0 M=75 Y=95 K=10 
  • Sand: C=10 M=13 Y=15 K=0
  • Yellow: C=5 M=25 Y=55 K=0

Click Add and OK after you input each of the color values.

create swatchescreate swatchescreate swatches

Step 3

For this custom book cover tutorial, I created a list of Paragraph Styles that you can use to format the book jacket template. 

Head over to Window > Styles > Paragraph Styles to open the Paragraph Styles panel. In the main menu, select Load Paragraph Styles. 

load paragraph stylesload paragraph stylesload paragraph styles

Navigate to the Book Jacket Paragraph Styles InDesign document and click Open. 

In the Load Styles window, click on Check All and click OK. You’ll have a list of styles on the Paragraph Styles panel ready to be used on your custom book cover template. 

paragraph styles panelparagraph styles panelparagraph styles panel

3. How to Design a Book Jacket Template in InDesign

Step 1

Bring up the Rules on your custom book cover by pressing Command-R. Using the top ruler, create two guides horizontally. Sit both on the Y axis at 1 in and 2.75 in.

create two horizontal guidescreate two horizontal guidescreate two horizontal guides

Step 2

In the Layers panel, select the Background layer.

Head over to the toolbar and select the Rectangle Tool (M). Draw a rectangle to cover all of the book jacket template, making sure it is touching the bleeds. 

In the Layers panel, lock the Background layer and select the Images layer. 

create a backgroundcreate a backgroundcreate a background

Step 3

Press Command-D to Place an object. Navigate to the Portrait of a young woman file and click Open. In the Control panel, set the Scale Percentage to 12%. 

Drag the bottom center point of the frame towards the top to create a square frame. Place it under the top guide we created. 

place an imageplace an imageplace an image

Step 4

In the Layers panel, select the Text layer.

Select the Text Tool (T) and create a text frame that fits the width of the back flap. Place this text frame under the second guide. 

Using the Paragraph Styles panel, style the text with the Flap – Quote, Copy, and the Flap – Signature style.  

add text to the back flapadd text to the back flapadd text to the back flap

Step 5

Using the Text Tool (T), create three text frames on the back cover. These frames will house a quote, copy, and some information in small text. 

Using the Paragraph Styles panel, set the text to the Back Cover – Quote and Copy styles. 

For the bottom text, set the frame to the Back Cover – Quote. Head over to the Control panel and set the Type Size to 8 pt. In the Swatches panel, set the color to the [Paper] color.

add text to the back coveradd text to the back coveradd text to the back cover

Step 6

Select the Rectangle Tool (M) from the Toolbar. Create a rectangle to include the barcode if necessary. Place this item on the Images layer. 

add a barcode sectionadd a barcode sectionadd a barcode section

Step 7

Using the Text Tool (T), create a text frame outside of the spine. Add the title of the book and format it using the Spine style from the Paragraph Styles. 

Select the second word and head over to the Control panel. Set the Font to Kaydens Script, and set the Size to 38 pt and the Baseline Shift to -5 pt.  

In the Swatches panel, set the color to Yellow. Using the Rotate Tool (R), rotate the text frame -90° and place it along the spine. 

add text to the spineadd text to the spineadd text to the spine

Step 8

Press Command-D to Place an image on the front cover. 

Navigate to the Six faces vector illustration file and click Open. Using the Selection Tool (V), move the frame to crop closely around any one of the portraits. 

Resize the image to fit the front cover of the book cover template. Press Shift-Command to resize the image proportionally and drag from any of the corners. Place the image on the bottom margin. 

place an image for the front coverplace an image for the front coverplace an image for the front cover

Step 9

Create two text frames for the word „the” and „Secret”. Set both frames to the Front Cover – Title Line 1 style on the Paragraph Styles panel. 

Select „the” and head over to the Control panel. Set the Font Size to 55 pt. Place both frames next to each other, creating good harmony between the two words. 

add a title to the front coveradd a title to the front coveradd a title to the front cover

Step 10

Create a text frame under the first line for the rest of the title. Set the style on the Paragraph Styles panel to Front Cover – Title Line 2.

add the second line of the title to the front coveradd the second line of the title to the front coveradd the second line of the title to the front cover

Step 11

Add a final text frame under the title to include the author’s name. Use the Paragraph Styles to format the frame to the Front Cover – Author style. 

add an author to the front coveradd an author to the front coveradd an author to the front cover

Step 12

Select the title and press Command-G to Group the frames. Duplicate them by pressing Option and dragging them to the front flap. 

Head over to the Control panel and set the Scale Percentage to 45%. 

duplicate the title and resize for the front flap sectionduplicate the title and resize for the front flap sectionduplicate the title and resize for the front flap section

Using the Text Tool (T), create a text frame under the title on the inside flap. Using the Paragraph Styles panel, set the text to the Copy style. 

add text to the front flapadd text to the front flapadd text to the front flap

4. How to Export a Book Jacket Template for Printing

Before exporting the book jacket template for printing, it’s useful to take a look around all the edges. This is to make sure all the images and vectors bleeding out are touching the bleeds. I advise you to consult your printer for any specific settings.

Step 1

To export the file, go to File > Export. Name the file Book Jacket Template and choose Adobe PDF (Print) from the Format dropdown menu. Click Save. 

export the file as an Adobe PDF Printexport the file as an Adobe PDF Printexport the file as an Adobe PDF Print

Step 2

In the Export Adobe PDF window, set the Adobe PDF Preset to Press Quality. Under Pages, set the Export As option to Spreads. 

Set the preset to Press Quality and Export As SpreadsSet the preset to Press Quality and Export As SpreadsSet the preset to Press Quality and Export As Spreads

On the left side of the panel, select Marks and Bleeds. Check All Printer’s Marks and Use Document Bleed Settings. Click Export. You will have a ready-to-print PDF file.

Check All Printers Marks and Use Document Bleed SettingsCheck All Printers Marks and Use Document Bleed SettingsCheck All Printers Marks and Use Document Bleed Settings

Great Job! You’ve Finished This Book Jacket Design Tutorial!

In this tutorial, you learned how to make a book jacket. We covered key tools that will help anyone edit a book jacket design template quickly and easily. Today, you learned to:

  • set up a ready-to-print InDesign book jacket template file
  • load Paragraph Styles to format text
  • add Color Swatches
  • organize multiple Layers
  • create a multiple-page spread in the Pages panel
  • use the Page Tool to resize pages
altaltalt

5 Top Book Jacket Design Mockups and Templates 

Now that you know everything about book jacket making, you might be in search of digital resources that help you save time.

Envato Elements is a fantastic source for book jacket design templates. This subscription-based marketplace offers you unlimited downloads for a flat fee.

Download InDesign book templates, book cover templates, and jacket design templates—and of course, premium fonts, add-ons, and more. Here are just five of our favorite dust jacket template mockups to show off your brand new designs!

1. Book Mockup Dust Jacket Template Edition (PSD, JPG)

Book Mockup Dust Jacket Template Edition (PSD, JPG)Book Mockup Dust Jacket Template Edition (PSD, JPG)Book Mockup Dust Jacket Template Edition (PSD, JPG)

Book jacket making gets so much easier with this template. Once you have your book jacket design ready after this tutorial, you can try this cool mockup to see it in 3D. The download includes eight PSD presentations and a total of 15 different book mockups which are 100% editable.

2. Book Jacket Mockup (PSD)

Book Jacket Mockup (PSD)Book Jacket Mockup (PSD)Book Jacket Mockup (PSD)

Here’s another fantastic dust jacket template. No need to worry about how to make a book jacket with this mockup. This book jacket making kit features:

  • nine photorealistic presentations
  • 114 x 186 mm natural page size
  • Photoshop CS4 or higher compatible
  • 3000×2008 pixel resolution in 300 dpi quality
  • easy and fast editing via smart objects
  • organized layers and folders

3. Dust Jacket Book Mockup (PSD)

Dust Jacket Book Mockup (PSD)Dust Jacket Book Mockup (PSD)Dust Jacket Book Mockup (PSD)

Do you need a premium mockup after learning how to make a dust jacket for a book? This book jacket design template is a great one. It features: 

  • six PSD mockup files (4500×3000 px)
  • Photoshop smart objects
  • size 6 x 9 in
  • 6 different scenes
  • replaceable background texture
  • adjustable shading and lighting

4. Small Hardcover Book With Dust Jacket Mockups (PSD)

Small Hardcover Book With Dust Jacket Mockups (PSD)Small Hardcover Book With Dust Jacket Mockups (PSD)Small Hardcover Book With Dust Jacket Mockups (PSD)

Here’s a beautiful book jacket design mockup if you’ve got a smaller book design. The download includes five PSD book mockups you can easily edit thanks to the smart object layers.

5. Digest Size Book With Dust Cover Mockups (PSD)

Digest Size Book With Dust Cover Mockups (PSD)Digest Size Book With Dust Cover Mockups (PSD)Digest Size Book With Dust Cover Mockups (PSD)

You’ve finished your top book jacket design, and you want to present it in a professional way. This dust jacket template is what you need. It’s specially designed for a digest size book (approximately 14×21 cm) and it features:

  • four PSD mockups
  • different poses in each mockup
  • organized layers
  • realistic effects and shadows
  • changeable background
  • smart objects

Discover More Book Design Tutorials

If you liked this tutorial on how to make a book jacket, you might like these:

Editorial Note: This post has been updated with contributions from Maria Villanueva. Maria is the Associate Editor of the Tuts+ Design channel.

Agregator najlepszych postów o designie, webdesignie, cssie i Internecie