June 1, 2012

Borders, Rounded Corners, and Box Shadows for eBook Design


Thank you for visiting this eBook design tutorial. We now have an eBook design startup—BB eBooks—dedicated to helping independent authors and small presses get their eBooks formatted, converted, and ready for sale at all the major online retailers (e.g. Amazon's Kindle Store, Barnes & Noble's Nook, iBookstore, Smashwords, etc.) Please contact us for a no-obligation quote. For those writers, editors, and publishers looking to go the DIY route for eBook production (you probably are if you visited this page), we offer free online tutorials and apps to help you professionally design your eBook. Please visit our Developers page and let’s work together to improve the overall standards of eBooks. Also, please sign up for the mailing list for promotions, design & marketing tips, plus eBook industry news.



Looking for a complete guide on eBook design and development? Please consider The eBook Design and Development Guide, which contains everything you need to know about HTML, CSS, EPUB, and MOBI/KF8 to make an eBook like a pro. Pick it up at Amazon for $6.99 today.

Previous Post: Adding Images

Now that you have a solid understanding of HTML and CSS, it is time to get into some of the bells and whistles. The CSS3 specification allows for a wide variety of ways to manipulate content presentation in an aesthetically pleasing manner. Unfortunately, many of these CSS properties are not supported for e-ink Kindles and Kindle for iOS; however, many modern eReading devices will hopefully begin to support them soon. All advanced CSS properties will be tested on the Kindle Fire for the purposes of this guide.

Borders


While placing a border around an image or paragraph of text is nothing new, it was not fully-supported on the Kindle until the KF8 format came around in 2011. Recall from the CSS Box Model discussion that the border encloses the content and padding area, but not the margin area.

There are three main CSS properties when working with borders to define the thickness, style, and color of the border. The CSS properties are border-width, border-style, and border-color. This will define the style for all four sides of the rectangle that form the border. If you would like to define different styles for the top, right, bottom, or left part of the border, you can utilize properties such as border-left-width, border-top-style, border-bottom-color, etc.

The values of the border properties are fairly straightforward. border-width is defined in pixels, border-style can be solid, dashed, dotted, and a few others, and border-color is simply one of the hexadecimal color codes or predefined names.

Hypothetically, let's say we want to enclose an image with a red border and a paragraph of text with a dashed-black border. Some example CSS would be as follows:
img#redborder
{
border-width: 2px;
border-style: solid;
border-color: red;
}

p#dashedborder
{
border-width: 1px;
border-style: dashed;
border-color: black;
padding: 5px;
margin: 1em;
}
Borders on the Kindle Fire
When working with borders that enclose text, make sure that you add a bit of padding in your CSS. Otherwise, the inner edge of the border will butt up right against the text, creating less-than-pleasing results.

Tip: There is a shorthand way to define borders in your CSS. You can simply write three values in one declaration with the following syntax: border: width style color;. As an example for the image above, the CSS would become border: 2px solid red;. You can also use this short-hand if you only want to style one leg of your border (e.g. border-right: width style color;).

Rounded Corners


Ever since Apple became a mainstay in everyone's life, rounded corners have become ubiquitous. In the bad old days of design, it was a bit of challenge to create rounded corners, because it involved aligning a grid of images on the outside of the content. Fortunately, rounded corners require just one line of CSS for eReading devices and web browsers that support CSS3. To make the CSS box have rounded corners, you simply use the following declaration: border-radius: #px;, where the # value is the radius of the rounded portion of each corner. Additionally, you can specify different values for each corner with the properties border-top-left, border-top-right, border-bottom-right, and border-bottom-left.

As an example, say you wanted rounded corners on the previously-mentioned paragraph that had a dashed and black border. You simply need to add one line of CSS to achieve this effect:
p#dashedborder
{
border-width: 1px;
border-style: dashed;
border-color: black;
padding: 5px;
margin: 1em;
border-radius: 10px;
}
Rounded Corners on Kindle Fire
The 10px value may not be rounded enough for your liking, so please feel free to experiment by adjusting the radius value of the corner.

You can use the border-radius property even if there is no border. Perhaps you wanted a gray background that had no border, but was rounded off on the edges. This is a very common technique in web design, and it looks great on eBooks for things like pull quotes, tip boxes, and other content you would like to stand out from the regular content. Some example CSS is as follows:
p#graycallout
{
background-color: #999999;
padding: 5px;
margin: 1em;
border-radius: 15px;
}

Paragraph with Rounded Corners on the Background

On many CSS3 properties that are discussed online, you may see what are known as "vendor prefixes." Instead of the property border-radius, the property is written as -webkit-border-radius (for Webkit-based browsers like Safari and Chrome) or -moz-border-radius (for Gecko-based like Firefox). These prefixes permit designers to specify different values for different web browsers while all the titans of the tech industry agree on a unified standard. For the purpose of eBook design, you may consider adding the -webkit- prefix for your Kindle Fire and iBooks CSS3 properties along with the normal CSS3 property. In the case of rounded corners, you would simply write two lines of code instead of one:
border-radius: 10px;
-webkit-border-radius: 10px;
Although, the Kindle Fire supports the border-radius property without the -webkit- prefix at the time of this writing.

Box Shadows


Another design nicety that used to be a difficult task is box shadows—the blurred shadow offset that creates a 3-dimensional look. These are common in text books, and they have only recently been made possible with eReading devices recognizing CSS3 properties. The basic CSS syntax for box shadows is as follows:
-webkit-box-shadow: [horizontal offset] [vertical offset] [blur distance (optional)] [color];
The four values specified must be separated by spaces, not commas. Additionally, the offsets can be negative. A negative horizontal offset will make the shadow go to the left, while a positive value will make the shadow go right. Additionally, a negative vertical offset will make the shadow go up, while a positive offset will make the shadow go down. Please note that the -webkit- prefix is required for the CSS to be recognized on the Kindle Fire. As with the border-radius property, it is permissible and recommended to include a CSS declaration without the -webkit- prefix in order to support eReading devices not utilizing the Webkit engine.

An example of a red box shadow that is dropped down and to the left of a box would be as follows:
p#redboxshadow
{
background-color: red;
padding: 5px;
margin: 1em;
border-radius: 15px;
-webkit-border-radius: 15px;
box-shadow: -10px 10px 10px #999;
-webkit-box-shadow: -10px 10px 10px #999;
}
Box Shadow Example on Kindle Fire

This guide provides the most basic way to implement a box shadow, but there are many more options such as creating inner shadows, fine-tuning the "spread" of the shadow, and other tricks.

While the effects that these CSS3 statements produce may seem simple, they have only recently become supported for eBooks. Hopefully other eReading devices besides the Kindle Fire will become more CSS3-friendly, so that eBook developers can have more creativity and design freedom when they are crafting eBooks.

Next Post: Changing Fonts
Share/Bookmark

7 comments:

Gail said...

This is perfect for my books - thank you for sharing.

themewsdentalstudio said...
This comment has been removed by the author.
Unknown said...

Development is always an great thing to work with.
Web Designing Company In Chennai

Unknown said...

Interesting to know about it! I have never thought web development is so easy as you say.
school websites design

Unknown said...

This is useful and thanks for sharing this nice one.
school web design

Unknown said...

Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.
Regards,
Web design training institute in Chennai

Unknown said...
This comment has been removed by a blog administrator.