Vertical Justification

V-Justify: Take Control of Text Frame Vertical Justification in InDesign

V-Justify is the InDesign add-on that lets you reclaim control over InDesign’s vertical justification

Often, a layout requires that the text in a text frame reach the bottom of the text frame it’s in. The way to achieve this is called “vertical justification.” Like horizontal justification, this is done by adding space between paragraphs, and possibly between lines, on a page, until the last line of text is flush with the bottom margin.

(If you’re already cringing, you’re probably a book typesetter. Traditional book typesetting frowns upon the idea of adding space between paragraphs, and, worse, between lines, to achieve vertical justification. The practice is known as “carding” or “feathering” (see here). The proper way of achieving a balanced page in traditional typography is to make sure that all typographic elements on a page are a multiple of the basic baseline grid and to run spreads long or short as needed. However, even in books this is not always possible (think block quotes with tighter leading than the body text, for example). And in newspapers and journals, labels, and many other items of print, it is neither possible nor desirable. V-Justify is intended for such cases!)

InDesign has a “vertical justification” feature. But the problem you’ll run into quickly is that it is so basic as to be basically useless! InDesign’s vertical justification fails for a few reasons:

  • It gives the designer no way to specify how much space to allow before or after a particular paragraph style. Instead, equal space is added between all paragraphs on the page.
  • It only adds space. It never decreases the space between paragraphs. So even if all you need to balance the frame is to reduce a little space to allow an extra line onto the page, InDesign does not know how to do that.
  • If you apply InDesign’s vertical justification to an object style (so that all pages become balanced), even the last page of chapters will be vertically justified. Usually, though, there is no need to apply vertical justification to the last page of a chapter.

Because of these shortcomings, if you use vertical justification to balance your pages, you are probably spending loads of time tweaking the space-before and space-after settings of individual paragraphs on the page to achieve vertical justification.

Wouldn’t it be nice if InDesign could do all this for you? Now it can!

V-Justify: The Solution

V-Justify is the new Id-Extras add-on for Adobe InDesign that will give you full control of text-frame vertical justification. It will let you balance the text in frames vertically with all the options you need to ensure the best results.

With V-Justify you can specify maximum and minimum values of space before and space after for each paragraph style in your document.

For instance, you can allow InDesign to add space before a subhead, but not after a subhead, so that the vertical distance between the subhead and the text that follows is fixed. Or you can allow a very small extra space after body-text paragraphs, while giving more flexibility to the space around subheadings, block quotes or displayed equations.

Basically, you are given complete control!

V-Justify works with multi-column text frames, as well as non-rectangular text frames and frames with objects that have text-wrap applied to them. It also works with frames that have footnotes. It may not work properly with frames that have long tables that continue onto subsequent pages.

If there is not enough leeway on a given page to achieve proper vertical justification, you can tell V-Justify that only then should it use InDesign’s built-in vertical justification, which can then add extra space between lines, or unlimited space between paragraphs. Or you can disable InDesign’s vertical justification feature altogether, allowing you to fix the page yourself.

Finally, V-Justify is able to detect chapter endings, so you can tell it not to justify the last pages of chapters.

Before Vertical Justification


After Vertical Justification



V-Justify InDesign Script Screenshot


V-Justify is easy to use. Run it, and you’ll see the screen above. Go through the relevant paragraph styles, and assign your desired minimum and maximum values for the space-before and space-after settings for each paragraph style in turn. Select whether to run the script on the selected frame only, or any of the other scope options, and click the Justify button. V-Justify will go through each text frame in the selected scope, and increase or decrease the space as needed and as allowed in order to justify the text in the frame vertically in the best possible way.

If you have already justified some frames, and instead you would like to set the values back to their default, click the Reset button instead.

Note: Clicking the Reset button will reset to the “desired value” only those paragraphs that have been modified by V-Jusitfy.

V-Justify supports working in millimeters or points. Set InDesign to your preferred measurement unit before running the script.

There are two option checkboxes which I will explain below:

“Do not justify the last frame of a chapter” – V-Justify uses some basic heuristics to figure out if a given frame is the last frame of a chapter (it mainly checks to see whether the last character in the frame is a frame break or page break character or similar, or if the first paragraph in the next frame has been set to start on the next page, etc.). If you want V-Justify to ignore the last frames of chapters or sections in your document and not attempt to vertically justify them, check this box.

“Enable text frame vertical justification” – V-Justify does not use InDesign’s built-in vertical justification feature at all. However, for a few reasons, V-Justify may not be able to successfully justify your page. This is usually because the maximum values defined by the user are not sufficient to allow the last line of text to reach to the bottom of the text frame. Sometimes, though, with non-rectangular frames, or frames with objects that have text-wrap applied to them, V-Jusitfy may not be able to entirely justify the page (although it will normally always be pretty close; and usually, no matter how complicated the page, it succeeds). In these cases you may want to allow V-Jusitfy to resort to InDesign’s built-in vertical justification. If so, check this box.

TIP 1:  Before running V-Justify, if you have selected some text, when you run V-Justify the paragraph style applied to the selected text will be automatically selected in V-Justify‘s window.

TIP 2: If you place the text cursor in some text (without selecting any text) and then run V-Justify, the UI window will not be displayed. Instead, V-Justify will balance the frame in which the text cursor sits using the min and max values entered earlier. This is useful if you want to use V-Justify on a frame-by-frame basis and don’t want to have to click OK in the UI each time. Simply place your flashing text cursor in some text, run V-Justify, and the frame will be balanced.


Many thanks to Marc Autret of for his help in developing the main algorithm powering this script.


To purchase the full version of V-Justify for only $99, click the “Buy Now” button. Your product and serial numbers will be available for instant download when you complete the purchase.

Money-back Guarantee

If you are not satisfied with V-Justify for any reason, simply let us know within 30 days of purchase for a full refund.

“V-Justify gives me total control of vertical justification, but I especially love the way it reduces space if that's what's needed to balance the page!”

Buy Now

V-Justify: $99.00


System Requirements

  • InDesign CS5 or higher (including CC2021)
  • Windows or Mac computer

Article Comments
  1. Raphael FreemanFebruary 11, 2021 10:05 am

    This is a very interesting script. It would be nice if it supported the option of also increasing or decreasing the leading of a column to make it fit. So let’s say you have a box of two columns, would be cool if it could also say decrease the leading (or increase) to help with fitting. I tend to use the term carding for interparagraph spacing and feathering for adjusting the leading.

    • ArielFebruary 11, 2021 12:40 pm

      Hi Raphael,
      V-Justify allows you to combine its functionality with InDesign’s vertical justification. So if you want variable leading (feathering), check the “Enable text-frame vertical justification”. This will make V-Justify do what it can first, according to the parameters you set for each paragraph style. It will then also enable InDesign’s vertical justification, so if some columns or pages don’t have enough built-in flexibility to reach the bottom of the frame (based on your allowed max numbers) InDesign will do the rest by feathering the lines. With the advantage that this will be disabled for chapter endings.

Leave a Comment