|Maintained by National Park Service|
|Length||105.5 mi (169.8 km)|
|North end||US 340 near Front Royal|
|South end||US 250 in Rockfish Gap|
|Counties||Warren, Rappahannock, Page, Madison, Greene, Rockingham, Albemarle, Augusta|
Skyline Drive Historic District
|Nearest city||Front Royal, Virginia|
|MPS||Historic Park Landscapes in National and State Parks MPS|
|NRHP reference No.||97000375|
|Added to NRHP||April 28, 1997|
|Designated NHLD||October 6, 2008|
|Designated VLR||December 4, 2006; July 2, 1997; June 18, 2003|
Skyline Drive is a 105-mile (169 km) road that runs the entire length of the National Park Service's Shenandoah National Park in the Blue Ridge Mountains of Virginia, generally along the ridge of the mountains. The drive's northern terminus is at an intersection with U.S. Route 340 (US 340) near Front Royal, and the southern terminus is at an interchange with US 250 near Interstate 64 (I-64) in Rockfish Gap, where the road continues south as the Blue Ridge Parkway. The road has intermediate interchanges with US 211 in Thornton Gap and US 33 in Swift Run Gap. Skyline Drive is part of Virginia State Route 48, which also includes the Virginia portion of the Blue Ridge Parkway, but this designation is not signed.
A park entrance fee is charged at the four access points to the drive. Skyline Drive is a two-lane road that has 75 overlooks providing views of the Shenandoah Valley to the west and the Piedmont to the east. The drive provides access to numerous trails, including the Appalachian Trail, and it is also used for biking and horseback riding. Skyline Drive is the main road through Shenandoah National Park and has access to campgrounds, visitor centers, and resorts such as Skyland Resort and Big Meadows. The scenic drive is particularly popular in the fall for leaf peeping when the leaves are changing colors.
Plans for the road date back to 1924 when a national park was planned in the Blue Ridge Mountains of Virginia and the main feature was to be a "sky-line drive" providing views of the surrounding land. President Herbert Hoover, who had a summer home at Rapidan Camp, called for the construction of the road. Groundbreaking for Skyline Drive took place in 1931. The first section, which originally was to run from Rapidan Camp to Skyland, was extended between Swift Run Gap and Thornton Gap and opened in 1934. Skyline Drive was extended north to Front Royal in 1936 and south to Jarman Gap in 1939. The road between Jarman Gap and Rockfish Gap was built as part of the Blue Ridge Parkway in 1939 and was incorporated into Skyline Drive in 1961. The Civilian Conservation Corps played a large part in constructing Skyline Drive. Improvements have been made to the roadway since it was built. Skyline Drive was added to the National Register of Historic Places in 1997, became a National Scenic Byway in 2005, and was designated a National Historic Landmark in 2008.
Skyline Drive takes a winding north–south path along the mountaintops of the Blue Ridge Mountains east of the Shenandoah River from Front Royal to Rockfish Gap, serving as the only public road through Shenandoah National Park. There are four entrance points to Skyline Drive located at US 340 near I-66 in Front Royal, US 211 in Thornton Gap, US 33 in Swift Run Gap and US 250 near I-64 in Rockfish Gap. At the south end in Rockfish Gap it connects to the northern terminus of the Blue Ridge Parkway, a free-access road that continues southward along the Blue Ridge Mountains. On the west side of the drive, mileposts are present. They are numbered from 0 to 105 (north to south) and serve as reference points to directions in the drive. There are 75 overlooks throughout the drive, providing views of the Shenandoah Valley to the west and the Piedmont to the east.
The speed limit is 35 miles per hour (56 km/h) and is strictly enforced by park rangers. Bicycles, motor vehicles, and pedestrians share the road. There are also deer, black bears, turkey, and other wildlife, which may appear and cross the road without warning. Numerous trails can be accessed along the drive, including a portion of the Appalachian Trail, which follows the road's path.
Biking and horseback riding are other recreational activities that are allowed on the road. The drive is popular in the fall months for leaf peeping to view fall foliage. Skyline Drive is closed from dusk to dawn from November to early January to ensure rangers can control illegal hunting. The drive can also close for a short time following snow or ice storms. Skyline Drive is designated a National Scenic Byway.
Front Royal to Thornton Gap
Skyline Drive begins at an intersection with US 340 south of Front Royal in Warren County, heading east into dense forests in Shenandoah National Park as a two-lane undivided road. The road curves south and passes through the Front Royal Entrance Station, where a ranger station is located. At this point, the drive winds south and ascends the Blue Ridge Mountains. The roadway heads southwest and comes to the Shenandoah Valley Overlook on the west side of the road.
Skyline Drive winds south and reaches the Dickey Ridge Visitor Center, which has a ranger station, picnic grounds, and restrooms. Farther south, the roadway reaches Dickey Hill. The road continues southerly to the Gooney Knob Overlook facing southwest, at which point it turns to the east and winds through Low Gap. The drive heads east to an overlook at Compton Gap, where it bends south along a winding path, straddling the border of Warren and Rappahannock counties, and runs parallel to the Appalachian Trail, which closely follows Skyline Drive for the remainder of its route. The road curves southwest and reaches the summit of North Marshall. Upon reaching the south-facing Range View Overlook, the roadway turns to the west along a winding path, bending southwest. The drive passes the Mount Marshall Overlook on the east side, at which point it heads west.
Skyline Drive reaches the Hogback Overlook on Hogback Mountain that faces northwest and turns southerly. The roadway heads west and straddles the boundary between Page and Rappahannock counties, coming to Mathews Arm, where a campground and ranger station are located. The drive turns to the south and comes to Elkwallow, which hosts restrooms, picnic grounds, a camp store, and food service. Skyline Drive continues along and comes to the Jeremys Run Overlook on the west side of the road before it winds to the east. The roadway comes to the east-facing Thornton Hollow Overlook and heads back to the south, coming to the Beahms Gap Parking on the west side of the road. The drive traverses Pass Mountain as it continues to the south. Skyline Drive comes to an interchange with US 211 at the Thornton Gap Entrance Station, which is located in Thornton Gap to the east of Luray and the west of Sperryville. A ranger station is present at the entrance station.
Thornton Gap to Swift Run Gap
Past the US 211 interchange, Skyline Drive continues to the southeast past Panorama, which is site of restrooms. The road passes through the Marys Rock Tunnel under Mary's Rock and winds to the south. The roadway passes west of the Meadow Spring Parking before coming to the south-facing Pinnacles Overlook, where it winds to the west. Skyline Drive reaches the Jewell Hollow Overlook that faces to the west and heads southwest straddling the border of Page and Madison counties. The road passes Pinnacles, where restrooms and picnic grounds are located, and runs through the Hughes River Gap. The drive continues to the south and passes the Stony Man Overlook and the Little Stony Man Parking on the west side of the road, where a trail leads to Stony Man Mountain. Farther along, the roadway bends to the west along a winding stretch. Skyline Drive reaches its highest point at an elevation of 3,680 feet (1,120 m) and continues southwesterly. The road reaches Skyland, where the Skyland Resort is located offering food, lodging, and restrooms. Also located at this point is Whiteoak Canyon Parking on the east side of the road. The drive continues to the south and passes Limberlost Parking on the east side and the west-facing Timber Hollow Overlook. The roadway then winds south past Bettys Rock. Farther to the south, Skyline Drive reaches Hawksbill Gap Parking, where a trail leads to Hawksbill Mountain, the highest peak in Shenandoah National Park at 4,051 feet (1,235 m). The road continues along and comes to the east-facing Old Rag View Overlook, where it turns to the west and passes south of Upper Hawksbill Parking. The drive comes to the west-facing Spitler Knoll Overlook and curves south. The roadway bends to the southwest and passes northwest of Dark Hollow Falls Parking, where a trail leads to the 70-foot (21 m) high Dark Hollow Falls, the closest waterfall to Skyline Drive. Past here, the road reaches Big Meadows, where there is a ranger station, restrooms, a campground, picnic grounds, food, and lodging. Big Meadows is also site of the Byrd Visitor Center and a wayside with a restaurant, gas station, gift shop, and camp store.
Past here, Skyline Drive continues along a southerly track. At the Milam Gap Parking, a trail leads east to the Rapidan Camp, where President Herbert Hoover had a summer residence from 1929 to 1932. The road passes Hazeltop before it passes through Bootens Gap, where it straddles the boundary of Page and Greene counties. The roadway traverses Bush Mountain before coming to Bearface Mountain Parking at Bearface Mountain. Skyline Drive continues to the south to Lewis Mountain, where a campground, picnic grounds, lodging, and restrooms are located. The road heads along the border between Rockingham and Greene counties as it runs southerly. The drive continues to the south-southwest and reaches South River, which is home to restrooms and picnic grounds. The roadway heads southwest and comes to an interchange with US 33 at the Swift Run Gap Entrance Station, which is situated in Swift Run Gap east of Elkton and west of Stanardsville.
Swift Run Gap to Rockfish Gap
Following the US 33 interchange, Skyline Drive heads southwest. The roadway passes through Smith Roach Gap and comes to the Bacon Hollow Overlook to the south, where it curves to the west. The drive heads through Powell Gap and reaches the west-facing Eaton Hollow Overlook, where it turns to the southwest and winds along. The road bends south and comes to a ranger station at Simmonds Gap. Skyline Drive continues southerly to the Loft Mountain Overlook on the east side, where it turns westerly before heading northwest. The roadway then makes a hairpin turn to the southwest. The road straddles the border of Rockingham and Albemarle counties and continues to the south to the Loft Mountain Wayside, which is site of restrooms and food service. Skyline Drive heads southwest and comes to Loft Mountain, where a ranger station, restrooms, campground, and camp store are located. The drive heads past Browns Gap Parking before it comes to Dundo, where an overlook to the northwest, restrooms, picnic grounds, and Dundo Group Camp are located.
From here, the road continues southwesterly and passes to the west of Jones Run Parking, where a trail leads to Jones Run Falls, before heading east of Blackrock Summit Parking. Skyline Drive winds south past Blackrock and turns to the west. The roadway heads north before a hairpin turn to the south at Blackrock Gap, where it closely follows the border between Augusta and Albemarle counties. Further south, Skyline Drive passes the Wildcat Ridge Parking Area before coming to the Crimora Lake Overlook that faces to the west. The roadway continues along past the Turk Mountain Overlook on the west side of the road prior to reaching the Turk Gap Parking to the east. The drive winding south through Jarman Gap before it curves southwest and continues to the west-facing Calf Mountain Overlook, where it turns to the southeast. Skyline Drive passes through Beagle Gap, winding to the south. The roadway heads to the southwest and west to the north-facing McCormick Gap Overlook, where it curves back to the southwest. The drive continues along and passes through the Rockfish Gap Entrance Station, where a ranger station is located. Past here, the road heads south and comes to a bridge over I-64 before it reaches an interchange with US 250 that provides access to I-64 in Rockfish Gap in Augusta County, which is located east of Waynesboro and west of Charlottesville. At this interchange, Skyline Drive ends and the road continues to the south as the Blue Ridge Parkway.
Major entry points to Skyline Drive are located in Front Royal, Thornton Gap, Swift Run Gap, and Rockfish Gap. Fees are collected at these four access points. The fee is not a toll charged to drive on the road, but rather an entry fee for the park itself. Various passes allow for admission to the park. A $30.00 pass is valid for unlimited entrances within a seven-day period for a private non-commercial vehicle. A seven-day pass costs $25.00 for motorcycles and $15.00 for individuals 16 years of age or older entering by means other than a private non-commercial vehicle. Commercial tours pay between $25.00 and $200.00 for a seven-day pass, depending on the number of passengers. An annual park pass costs $55.00 for a private non-commercial vehicle. Entrance can also be gained through the America the Beautiful Pass series. In this series, the Annual Pass costs $80.00, the Annual Senior Pass costs $20.00, the lifetime Senior Pass costs $80.00, the lifetime Access Pass allows free admission for persons with disabilities, and the Volunteer Pass allows free admission for volunteers who work 250 service hours for the following year. A free Annual Pass is also available for members of the United States Armed Forces and fourth graders can get free admission for their whole family through the Every Kid in a Park Pass.
In 1924, the Southern Appalachian National Park Committee was searching for a site for a national park in the Blue Ridge Mountains of Virginia that would be easily accessible from major cities on the East Coast of the United States such as Washington, D.C. and settled on the current site of Shenandoah National Park. As part of the recommendation for the park was the "greatest single feature" to be a "sky-line drive" that would provide views of the Shenandoah Valley to the west and the Piedmont to the east. The idea for the roadway was suggested by committee member William C. Gregg to Board of Shenandoah Valley, Inc. member L. Ferdinand Zerkel during a visit to Skyland. In 1929, President Herbert Hoover, who established a summer home in the area, called for the roadway to be built along the Blue Ridge Mountains. The road was proposed to be named Hoover Highway, but would instead become known as Skyline Drive.
Field survey for the roadway began in January 1931. On July 18 of that year, an official groundbreaking for Skyline Drive took place. The first section of the road was to be built from the Rapidan Camp to the Skyland Resort, but would be extended from Swift Run Gap to Thornton Gap. The funds for the first stretch of the drive came from the Federal Drought Relief Administration and employed local farmers and apple pickers who suffered from a severe drought in 1930. In the later part of 1932, Congress approved $1 million (equivalent to $15.6 million in 2019,) in funds to construct Skyline Drive, which would extend from Front Royal to Swift Run Gap. The Civilian Conservation Corps (CCC) was formed in 1933 and would have a hand in the construction of Skyline Drive. President Franklin D. Roosevelt was impressed with the scenery of the mountains and established the first CCC camps along Skyline Drive. These camps were the first to be placed in a national park. The CCC graded the slopes on both sides of the roadway, built guardrails and stone walls, constructed overlooks, and planted thousands of trees and shrubs along the parkway. Three different companies were awarded contracts for bituminous surfacing of the road. The section of Skyline Drive between Thornton Gap and Swift Run Gap opened in the middle part of 1934 and cost $1,570,479 (equivalent to $23.9 million in 2019,). This section of the roadway included the Marys Rock Tunnel, a tunnel that was bored through Marys Rock. A tunnel was constructed at this location as opposed to a cut. The tunnel was justified as a money-saving measure but was also suggested to challenge Bureau of Public Roads and National Park Service landscape architects. With the official establishment of Shenandoah National Park in 1935, the CCC hired 300 men, most of whom were not local to the area, to continue to build Skyline Drive. On October 1, 1936, the drive was completed between Front Royal and Thornton Gap at a cost of $1,235,177 (equivalent to $18.2 million in 2019,). The portion of Skyline Drive from Swift Run Gap to Jarman Gap was opened to traffic on August 29, 1939, costing $1,666,528 (equivalent to $24.5 million in 2019,). The road between Jarman Gap and Rockfish Gap was built as part of the Blue Ridge Parkway and was completed on August 11, 1939, at a cost of $358,636 (equivalent to $5.27 million in 2019,). This section of the Blue Ridge Parkway was given to Shenandoah National Park in 1961 and became the southernmost portion of Skyline Drive. The creation of the park and the construction of Skyline Drive resulted in many people losing their homes either voluntarily or forcibly; several homes within the present-day park were razed.
Skyline Drive was originally lined with miles of chestnut log guardrails. However, the guardrails rotted and were removed in the 1950s and not replaced. The Marys Rock Tunnel was partially lined with concrete in 1958 to prevent icicles in the winter and water seepage in the summer. In 1983, the Federal Highway Administration began work to replace several of the original stone walls on the drive with concrete walls that used the original stone as a veneer. The road was added to the National Register of Historic Places on April 28, 1997. On September 22, 2005, Skyline Drive was designated a National Scenic Byway. Skyline Drive was designated a National Historic Landmark in October 2008 for its pioneering place in the development of national parks in the eastern United States.
Points of interest
US 340 to I-66 – Skyline Caverns, Luray, Front Royal
|||0.5||0.80||Front Royal Entrance Station|
|||2.8||4.5||Shenandoah Valley Overlook|
|||4.6||7.4||Dickey Ridge Visitor Center|
|||5.4||8.7||No Name Overlook|
|||5.7||9.2||Signal Knob Overlook|
|||6.8||10.9||Gooney Run Overlook|
|||7.3||11.7||Gooney Manor Overlook|
|||10.8||17.4||Indian Run Overlook|
|||12.4||20.0||Jenkins Gap Overlook|
|||13.9||22.4||Hogwallow Flats Overlook|
|Warren||||14.9||24.0||Browntown Valley Overlook|
|Rappahannock||||17.1||27.5||Range View Overlook|
|Warren||||18.4||29.6||Gimlet Ridge Overlook|
|Rappahannock||||19.0||30.6||Mount Marshall Overlook|
|Warren||||19.7||31.7||Little Hogback Overlook|
|Rappahannock||||20.1||32.3||Little Devil Stairs Overlook|
|Rappahannock||||21.9||35.2||Rattlesnake Point Overlook|
|||22.1||35.6||Piney River Ranger Station|
|Page||||22.2||35.7||Mathews Arm Campground|
|||24.2||38.9||Elkwallow Picnic Grounds|
|||26.4||42.5||Jeremys Run Overlook|
|Rappahannock||||27.6||44.4||Thornton Hollow Overlook|
|Page||||28.5||45.9||Beahms Gap Parking|
|||30.1||48.4||Pass Mountain Overlook|
|Thornton Gap||31.5||50.7||US 211 – Washington, DC, Luray||Thornton Gap Entrance Station, interchange|
|Rappahannock||||32.2||51.8||Marys Rock Tunnel|
|||32.4||52.1||Marys Rock Tunnel Overlook|
|||32.9||52.9||Buck Hollow Overlook|
|||33.0||53.1||Hazel Mountain Overlook|
|Page||||36.4||58.6||Jewell Hollow Overlook|
|Madison||||36.7||59.1||Pinnacles Picnic Grounds|
|Page||||38.6||62.1||Stony Man Overlook|
|Madison||||39.7||63.9||Hemlock Springs Overlook|
|||40.5||65.2||Thorofare Mountain Overlook|
|||41.7||67.1||Skyland||Highest point along Skyline Drive|
|Page||||43.3||69.7||Timber Hollow Overlook|
|||44.4||71.5||Crescent Rock Overlook|
|Madison||||46.5||74.8||Old Rag View Overlook|
|Page||||48.1||77.4||Spitler Knoll Overlook|
|||49.0||78.9||Franklin Cliffs Overlook|
|Madison||||49.3||79.3||Fishers Gap Overlook|
|||51.2||82.4||Big Meadows / Byrd Visitor Center|
|Page||||51.5||82.9||Tanners Ridge Overlook|
|||53.2||85.6||Naked Creek Overlook|
|||54.4||87.5||Hazeltop Ridge Overlook|
|||55.6||89.5||The Point Overlook|
|||57.5||92.5||Lewis Mountain Campground|
|Rockingham||||59.0||95.0||The Oaks Overlook|
|||61.2||98.5||Baldface Mountain Overlook|
|Greene||||62.7||100.9||South River Overlook|
|||62.8||101.1||South River Picnic Grounds|
|Rockingham||||64.4||103.6||Hensely Hollow Overlook|
|||64.9||104.4||Hensely Ridge Overlook|
|Swift Run Gap||65.5||105.4||US 33 – Richmond, Harrisonburg||Swift Run Gap Entrance Station, interchange|
|||67.2||108.1||Swift Run Overlook|
|||67.8||109.1||Sandy Bottom Overlook|
|Greene||||69.3||111.5||Bacon Hollow Overlook|
|Rockingham||||70.3||113.1||Eaton Hollow Overlook|
|||71.2||114.6||Rocky Mount Overlook|
|||72.2||116.2||Beldore Hollow Overlook|
|Greene||||73.2||117.8||Simmonds Gap Ranger Station|
|||74.4||119.7||Loft Mountain Overlook|
|Rockingham||||76.2||122.6||Two Mile Run Overlook|
|||76.9||123.8||Brown Mountain Overlook|
|Greene||||77.5||124.7||Ivy Creek Overlook|
|||79.5||127.9||Loft Mountain Wayside|
|||81.2||130.7||Big Run Overlook|
|||81.9||131.8||Doyles River Overlook|
|||83.7||134.7||Dundo Group Campground|
|Albemarle||||86.8||139.7||Trayfoot Mountain Overlook|
|||90.0||144.8||Calvary Rocks Overlook|
|Albemarle||||92.0||148.1||Moormans River Overlook|
|Augusta||||92.6||149.0||Crimora Lake Overlook|
|||93.7||150.8||Turk Mountain Overlook|
|||95.3||153.4||Sawmill Run Overlook|
|||95.9||154.3||Sawmill Ridge Overlook|
|Augusta||||98.9||159.2||Calf Mountain Overlook|
|Albemarle||||99.8||160.6||Beagle Gap Overlook|
|Augusta||||102.4||164.8||McCormick Gap Overlook|
|||104.7||168.5||Rockfish Gap Entrance Station|
US 250 to I-64 – Charlottesville, Waynesboro
Blue Ridge Parkway south
|Interchange; I-64 exit 99|
|1.000 mi = 1.609 km; 1.000 km = 0.621 mi|
- Groe, Harlen D.; Lanning, Michael P. (1996). "Skyline Drive: North District" (Map). Historic American Engineering Record. 1:63,360. National Park Service. Retrieved September 7, 2016 – via Wikimedia Commons.
Groe, Harlen D.; Lanning, Michael P. (1996). "Skyline Drive: Central District" (Map). Historic American Engineering Record. 1:63,360. National Park Service. Retrieved September 7, 2016 – via Wikimedia Commons.
Groe, Harlen D.; Lanning, Michael P. (1996). "Skyline Drive: South District" (Map). Historic American Engineering Record. 1:63,360. National Park Service. Retrieved September 7, 2016 – via Wikimedia Commons.
- "National Register Information System". National Register of Historic Places. National Park Service. July 9, 2010. Retrieved September 20, 2016.
- Virginia Department of Historic Resources (n.d.). "Virginia Landmarks Register". Virginia Department of Historic Resources. Retrieved June 5, 2013.
- National Park Service (n.d.). "Skyline Drive Historic District". National Park Service. Retrieved May 31, 2012.
- Google (September 6, 2016). "Skyline Drive" (Map). Google Maps. Google. Retrieved September 6, 2016.
- National Park Service. "Shenandoah National Park: Driving Skyline Drive". National Park Service. Retrieved September 11, 2016.
- White, Mel (2009). Complete National Parks of the United States: Featuring 400+ Parks. Washington, D.C.: National Geographic. pp. 97–101. ISBN 9781426205279. Retrieved September 20, 2016 – via Google Books.
- Federal Highway Administration (n.d.). "Skyline Drive: Visitor Services". America's Byways. Federal Highway Administration. Archived from the original on April 28, 2012. Retrieved September 12, 2016.
- Federal Highway Administration (n.d.). "Skyline Drive". Federal Highway Administration. Retrieved September 11, 2016.
- National Park Service (n.d.). Shenandoah National Park (PDF) (Map). National Park Service. Retrieved September 6, 2016.
- National Park Service (n.d.). "Shenandoah National Park: Entrance Fees". National Park Service. Retrieved September 22, 2019.
- National Park Service (n.d.). "Shenandoah National Park: The Greatest Single Feature". National Park Service. Retrieved September 12, 2016.
- Engle, Reed (n.d.). "Shenandoah National Park: Skyline Drive History". National Park Service. Retrieved September 12, 2016.
- National Park Service (July 1995). Shenandoah National Park, Facility Development Plan: Environmental Impact Statement. Denver, CO: National Park Service. pp. 54–55. Retrieved September 20, 2016 – via Google Books.
- Lambert, Darwin (1989). The Undying Past of Shenandoah National Park. Lanham, MD: Roberts Rinehart Inc. Publishers. pp. 220–222. ISBN 9781461663980. Retrieved September 20, 2016 – via Google Books.
- Thomas, Ryland; Williamson, Samuel H. (2020). "What Was the U.S. GDP Then?". MeasuringWorth. Retrieved September 22, 2020. United States Gross Domestic Product deflator figures follow the Measuring Worth series.
- Powell, Katrina M. (2009). 'Answer at Once': Letters of Mountain Families in Shenandoah National Park, 1934–1938. Charlottesville: University of Virginia Press. p. 6. ISBN 9780813928531. Retrieved September 20, 2016 – via Google Books.
- Federal Highway Administration (n.d.). "Skyline Drive: Official Designations". Federal Highway Administration. Archived from the original on April 28, 2012. Retrieved September 12, 2016.
- "NHL nomination for Skyline Drive Historic District" (PDF). National Park Service. Retrieved 2017-03-13.
|Wikimedia Commons has media related to Skyline Drive (Shenandoah National Park).|
- Shenandoah National Park official website
- Historic American Engineering Record (HAER) No. VA-119, "Skyline Drive, From Front Royal, VA to Rockfish Gap, VA, Luray, Page County, VA", 117 photos, 18 measured drawings, 11 photo caption pages