fix: Updated style rules to fix issues with component placement on landing page

This commit is contained in:
2025-09-07 20:25:14 -05:00
parent 601ff81c62
commit 20e2569ad9
8 changed files with 589 additions and 542 deletions

View File

@@ -1,391 +1,391 @@
/**
* @fileoverview This file contains the product data for
* all items in the store demo. The data is structured
* to be the single source of truth for all
* product-related information, including IDs, pricing,
* and descriptions.
*/
 * @fileoverview This file contains the product data for
 * all items in the store demo. The data is structured
 * to be the single source of truth for all
 * product-related information, including IDs, pricing,
 * and descriptions.
 */
/* **Unit Template**
{
productNumber: "",
imageFile: "",
skuID: "",
catNumber: "",
productName: "",
category: "",
price: ,
altText: "",
shortDescription: "",
longDescription: "",
ratings: {
count: ,
score:
},
isFeatured: ,
    productNumber: "",
    imageFile: "",
    skuID: "",
    catNumber: "",
    productName: "",
    category: "",
    price: ,
    altText: "",
    shortDescription: "",
    longDescription: "",
    ratings: {
        count: ,
        score:
    },
    isFeatured: ,
}
*/
const INVENTORY = [
{
"productNumber": "001",
"imageFile": "bird-house.jpg",
"skuID": "ACC",
"catNumber": "01",
"productName": "Bird House - Pink",
"category": "accessories",
"price": 12.99,
"altText": "A pink handcrafted wooden bird house",
"shortDescription": "A handcrafted wooden bird house in pink.",
"longDescription": "A beautifully handcrafted wooden bird house in a gentle pink finish, built by a local carpenter from the Bloom Valley community. Designed with a classic aesthetic and durable, weather-resistant materials, this bird house provides a cozy and safe home for small songbirds. It's a charming accent for any garden or tree and a perfect way to invite nature into your outdoor space.",
"ratings": {
"count": 38,
"score": 4.7
},
"isFeatured": true
},
{
"productNumber": "002",
"imageFile": "garden-pots.jpg",
"skuID": "ACC",
"catNumber": "01",
"productName": "Gardening Pots - Terra-cotta",
"category": "accessories",
"price": 9.99,
"altText": "A set of three traditional terra-cotta gardening pots of varying sizes.",
"shortDescription": "A classic set of three terra-cotta gardening pots.",
"longDescription": "Crafted from porous, natural clay, this set of terra-cotta pots is a timeless choice for any gardener. The material's ability to absorb excess water helps prevent root rot, making it an ideal home for a wide variety of plants. The set includes three different sizes, perfect for potting new seedlings or housing larger plants.",
"ratings": {
"count": 150,
"score": 4.5
},
"isFeatured": false
},
{
"productNumber": "003",
"imageFile": "watering-can.jpg",
"skuID": "ACC",
"catNumber": "01",
"productName": "Watering Can",
"category": "accessories",
"price": 19.99,
"altText": "A modern, metal watering can with a long spout.",
"shortDescription": "A stylish and functional metal watering can.",
"longDescription": "This sleek and durable metal watering can features a long, narrow spout for precise watering, perfect for both indoor and outdoor plants. Its comfortable handle provides a balanced grip, and the sturdy construction ensures it will be a reliable tool for years to come.",
"ratings": {
"count": 85,
"score": 4.8
},
"isFeatured": false
},
{
"productNumber": "001",
"imageFile": "spider-plant.jpg",
"skuID": "IND",
"catNumber": "02",
"productName": "Spider Plant",
"category": "indoor",
"price": 14.99,
"altText": "A lush spider plant with long, variegated green and white leaves.",
"shortDescription": "An easy-to-care-for spider plant, perfect for beginners.",
"longDescription": "The spider plant (Chlorophytum comosum) is one of the most popular and easiest houseplants to grow. Known for its distinctive arching, variegated leaves, it thrives in a variety of conditions and is a great choice for hanging baskets. It's also a highly effective air purifier.",
"ratings": {
"count": 210,
"score": 4.9
},
"isFeatured": true
},
{
"productNumber": "002",
"imageFile": "string-of-pearls.jpg",
"skuID": "IND",
"catNumber": "02",
"productName": "String-of-Pearls Plant",
"category": "indoor",
"price": 16.99,
"altText": "A cascading string-of-pearls plant with small, spherical green leaves.",
"shortDescription": "A unique succulent with cascading, pearl-like foliage.",
"longDescription": "The string-of-pearls (Senecio rowleyanus) is a striking succulent known for its long, trailing stems dotted with small, bead-like leaves. It's a fantastic plant for a sunny spot on a shelf or in a hanging planter, creating a beautiful, flowing green display. Like most succulents, it requires minimal watering.",
"ratings": {
"count": 95,
"score": 4.6
},
"isFeatured": false
},
{
"productNumber": "003",
"imageFile": "zebra-plant.jpg",
"skuID": "IND",
"catNumber": "02",
"productName": "Zebra Plant",
"category": "indoor",
"price": 18.99,
"altText": "A vibrant zebra plant with deep green leaves and prominent white veins.",
"shortDescription": "A striking houseplant with bold, striped leaves.",
"longDescription": "The zebra plant (Aphelandra squarrosa) is named for its eye-catching foliage—deep green leaves with stark, contrasting white or yellow veins. This plant adds a tropical feel to any room and, with the right care, can also produce brilliant yellow flower bracts. It prefers bright, indirect light and high humidity.",
"ratings": {
"count": 72,
"score": 4.4
},
"isFeatured": false
},
{
"productNumber": "001",
"imageFile": "bark-mulch.jpg",
"skuID": "LND",
"catNumber": "03",
"productName": "Pine Bark Mulch (25lb bag)",
"category": "landscaping",
"price": 8.99,
"altText": "A 25lb bag of natural pine bark mulch.",
"shortDescription": "A 25lb bag of premium pine bark mulch for landscaping.",
"longDescription": "Pine bark mulch is a top choice for gardeners and landscapers. It helps suppress weeds, retain soil moisture, and moderate soil temperature, which is essential for healthy plant growth. As it decomposes, it adds valuable organic matter to the soil. The rich, dark color also provides an attractive finish to garden beds and pathways.",
"ratings": {
"count": 305,
"score": 4.8
},
"isFeatured": false
},
{
"productNumber": "002",
"imageFile": "pea-gravel.jpg",
"skuID": "LND",
"catNumber": "03",
"productName": "Pea Gravel (25lb bag)",
"category": "landscaping",
"price": 11.99,
"altText": "A 25lb bag of smooth, rounded pea gravel.",
"shortDescription": "A 25lb bag of decorative pea gravel for landscaping.",
"longDescription": "Pea gravel consists of small, smooth, rounded stones, typically in a mix of neutral colors. It's an excellent choice for creating walkways, patios, and decorative ground cover. The smooth texture is comfortable to walk on, and it provides effective drainage and a clean, finished look to any landscape design.",
"ratings": {
"count": 185,
"score": 4.7
},
"isFeatured": true
},
{
"productNumber": "003",
"imageFile": "stone-pavers.jpg",
"skuID": "LND",
"catNumber": "03",
"productName": "Stone Pavers (single count)",
"category": "landscaping",
"price": 4.50,
"altText": "A single rectangular gray stone paver.",
"shortDescription": "A durable, single stone paver for creating paths and patios.",
"longDescription": "Our stone pavers are made from high-quality concrete and are perfect for building durable, long-lasting patios, walkways, and driveways. The classic rectangular shape and neutral gray color make them versatile for a wide range of landscape designs. Sold individually, allowing you to purchase the exact quantity you need for your project.",
"ratings": {
"count": 255,
"score": 4.6
},
"isFeatured": false
},
{
"productNumber": "001",
"imageFile": "firepit.jpg",
"skuID": "PAT",
"catNumber": "04",
"productName": "Metal Fire-pit",
"category": "patio",
"price": 129.99,
"altText": "A round, black metal fire-pit with a mesh lid.",
"shortDescription": "A sturdy and stylish metal fire-pit for outdoor gatherings.",
"longDescription": "Create a warm and inviting atmosphere on your patio with this durable metal fire-pit. Constructed from heat-resistant steel, it features a classic bowl design and includes a mesh lid for safety. Perfect for cool evenings, it's a great centerpiece for entertaining and enjoying the outdoors with friends and family.",
"ratings": {
"count": 55,
"score": 4.9
},
"isFeatured": false
},
{
"productNumber": "002",
"imageFile": "string-lights.jpg",
"skuID": "PAT",
"catNumber": "04",
"productName": "LED String Lights",
"category": "patio",
"price": 24.99,
"altText": "A string of warm white LED lights hanging outdoors.",
"shortDescription": "A set of energy-efficient LED string lights for ambient lighting.",
"longDescription": "Add a touch of magic to your outdoor space with these energy-efficient LED string lights. The warm white glow creates a soft, inviting ambiance, perfect for backyard dinners, parties, or simply relaxing on your patio. The bulbs are shatterproof and weather-resistant, making them ideal for year-round outdoor use.",
"ratings": {
"count": 175,
"score": 4.7
},
"isFeatured": true
},
{
"productNumber": "003",
"imageFile": "parlor-palm.jpg",
"skuID": "PAT",
"catNumber": "04",
"productName": "Parlor Palm",
"category": "patio",
"price": 22.99,
"altText": "A small, potted parlor palm with feathery green fronds.",
"shortDescription": "An elegant and low-maintenance palm for patios and decks.",
"longDescription": "The parlor palm (Chamaedorea elegans) is a classic choice for adding a tropical flair to a covered patio, deck, or indoor space. Known for its graceful, feathery fronds, it's a resilient and slow-growing plant that thrives in low light conditions. It's a great way to bring a lush, green aesthetic to your outdoor living area.",
"ratings": {
"count": 88,
"score": 4.6
},
"isFeatured": false
},
{
"productNumber": "001",
"imageFile": "hydrangea.jpg",
"skuID": "SHR",
"catNumber": "05",
"productName": "Hydrangeas",
"category": "shrubs",
"price": 25.99,
"altText": "A vibrant cluster of pink and purple hydrangea flowers.",
"shortDescription": "A beautiful hydrangea bush (Hydrangea macrophylla), known for its large, colorful blooms.",
"longDescription": "Hydrangeas are a quintessential garden shrub, celebrated for their large, showy flower heads. Depending on the soil's pH, the blooms can change color, ranging from deep blues and purples to bright pinks. They are perfect for adding a splash of color to borders, foundations, or as a standalone focal point in the garden.",
"ratings": {
"count": 190,
"score": 4.9
},
"isFeatured": false
},
{
"productNumber": "002",
"imageFile": "crepe-myrtle.jpg",
"skuID": "SHR",
"catNumber": "05",
"productName": "Crepe Myrtle",
"category": "shrubs",
"price": 28.99,
"altText": "A crepe myrtle bush with clusters of bright pink flowers.",
"shortDescription": "A small crepe myrtle tree, prized for its long-lasting summer blooms.",
"longDescription": "The crepe myrtle (Lagerstroemia) is a beloved small tree or shrub, famous for its crepe-paper-like blossoms that last all summer long. Its smooth, multi-hued bark and vibrant fall foliage also add year-round interest to the landscape. This fast-growing plant thrives in sunny locations and requires minimal care.",
"ratings": {
"count": 115,
"score": 4.7
},
"isFeatured": false
},
{
"productNumber": "003",
"imageFile": "holly.jpg",
"skuID": "SHR",
"catNumber": "05",
"productName": "Holly",
"category": "shrubs",
"price": 21.99,
"altText": "A holly bush with deep green leaves and bright red berries.",
"shortDescription": "A classic evergreen holly bush with traditional red berries.",
"longDescription": "Holly (Ilex) is a traditional favorite for its glossy, evergreen leaves and bright red berries that provide winter interest. It's an excellent choice for creating hedges, screens, or as a structural plant in the garden. This hardy shrub is a staple for year-round beauty and can attract birds with its berries.",
"ratings": {
"count": 130,
"score": 4.8
},
"isFeatured": true
},
{
"productNumber": "001",
"imageFile": "gardening-tool.jpg",
"skuID": "TLS",
"catNumber": "06",
"productName": "Gardening Tool Set",
"category": "tools",
"price": 34.99,
"altText": "A set of three gardening tools: a trowel, a cultivator, and a transplanter.",
"shortDescription": "A three-piece set of essential gardening tools.",
"longDescription": "This durable gardening tool set includes a trowel for planting, a cultivator for aerating soil, and a transplanter for moving seedlings. Each tool features a comfortable handle and a sturdy, rust-resistant head. It's the perfect starter set for anyone looking to get their hands dirty in the garden.",
"ratings": {
"count": 200,
"score": 4.7
},
"isFeatured": false
},
{
"productNumber": "002",
"imageFile": "gardening-hose.jpg",
"skuID": "TLS",
"catNumber": "06",
"productName": "Gardening Hose",
"category": "tools",
"price": 49.99,
"altText": "A coiled green gardening hose.",
"shortDescription": "A kink-resistant and durable gardening hose.",
"longDescription": "Our premium gardening hose is made from a high-quality, flexible material that resists kinking and tangling. It's lightweight yet incredibly durable, making watering your garden a breeze. The hose comes with solid brass couplings for a secure, leak-free connection to your spigot.",
"ratings": {
"count": 110,
"score": 4.5
},
"isFeatured": false
},
{
"productNumber": "003",
"imageFile": "wheelbarrow.jpg",
"skuID": "TLS",
"catNumber": "06",
"productName": "Wheelbarrow",
"category": "tools",
"price": 99.99,
"altText": "A sturdy single-wheeled wheelbarrow with a metal basin.",
"shortDescription": "A heavy-duty wheelbarrow for all your hauling needs.",
"longDescription": "This robust wheelbarrow is an essential tool for any serious gardener or landscaper. It features a deep, heavy-duty steel basin and a strong single wheel for easy maneuverability, even on uneven terrain. Perfect for transporting soil, mulch, stones, and other heavy materials around your yard.",
"ratings": {
"count": 65,
"score": 4.9
},
"isFeatured": false
},
{
"productNumber": "001",
"imageFile": "apple-tree.jpg",
"skuID": "TRS",
"catNumber": "07",
"productName": "Apple Tree (Honeycrisp)",
"category": "trees",
"price": 45.99,
"altText": "A young Honeycrisp apple tree in a pot.",
"shortDescription": "A young Honeycrisp apple tree (Malus domestica), known for its crisp and sweet fruit.",
"longDescription": "The Honeycrisp apple tree is a popular choice for home orchards, celebrated for its exceptionally crisp texture and deliciously sweet flavor. This semi-dwarf tree is relatively easy to care for and produces a bountiful harvest of apples in the late summer and early fall. Plant it in a sunny spot to ensure a great yield.",
"ratings": {
"count": 140,
"score": 4.8
},
"isFeatured": false
},
{
"productNumber": "002",
"imageFile": "silver-birch.jpg",
"skuID": "TRS",
"catNumber": "07",
"productName": "Silver Birch",
"category": "trees",
"price": 39.99,
"altText": "A young silver birch tree with smooth, white bark.",
"shortDescription": "A graceful silver birch tree, known for its iconic white bark.",
"longDescription": "The silver birch (Betula pendula) is a stunning ornamental tree prized for its peeling, silvery-white bark and elegant, pendulous branches. It provides year-round visual interest and is an excellent choice for a focal point in your yard. This hardy tree is fast-growing and adds a touch of classic beauty to any landscape.",
"ratings": {
"count": 95,
"score": 4.6
},
"isFeatured": false
},
{
"productNumber": "003",
"imageFile": "japanese-maple-tree.jpg",
"skuID": "TRS",
"catNumber": "07",
"productName": "Japanese Maple",
"category": "trees",
"price": 55.99,
"altText": "A young Japanese Maple tree with lobed red and orange leaves.",
"shortDescription": "A Japanese Maple tree, famous for its vibrant fall colors.",
"longDescription": "Japanese Maple trees (Acer palmatum) are a native of landscapes in northeastern Asia, cherished for their beautiful, lobed leaves and spectacular fall foliage. This young tree will grow into a stunning accent to your garden, providing a vibrant backdrop and a brilliant display of reds, oranges, and yellows in the autumn. It's a robust and long-living addition to any property.",
"ratings": {
"count": 220,
"score": 4.9
},
"isFeatured": true
}
    {
        "productNumber": "001",
        "imageFile": "bird-house.jpg",
        "skuID": "ACC",
        "catNumber": "01",
        "productName": "Bird House - Pink",
        "category": "accessories",
        "price": 12.99,
        "altText": "A pink handcrafted wooden bird house",
        "shortDescription": "Handcrafted wooden bird house in pink.",
        "longDescription": "A beautifully handcrafted wooden bird house in a gentle pink finish, built by a local carpenter from the Bloom Valley community. Designed with a classic aesthetic and durable, weather-resistant materials, this bird house provides a cozy and safe home for small songbirds. It's a charming accent for any garden or tree and a perfect way to invite nature into your outdoor space.",
        "ratings": {
            "count": 38,
            "score": 4.7
        },
        "isFeatured": true
    },
    {
        "productNumber": "002",
        "imageFile": "garden-pots.jpg",
        "skuID": "ACC",
        "catNumber": "01",
        "productName": "Gardening Pots - Terra-cotta",
        "category": "accessories",
        "price": 9.99,
        "altText": "A set of three traditional terra-cotta gardening pots of varying sizes.",
        "shortDescription": "Set of three classic terra-cotta garden pots.",
        "longDescription": "Crafted from porous, natural clay, this set of terra-cotta pots is a timeless choice for any gardener. The material's ability to absorb excess water helps prevent root rot, making it an ideal home for a wide variety of plants. The set includes three different sizes, perfect for potting new seedlings or housing larger plants.",
        "ratings": {
            "count": 150,
            "score": 4.5
        },
        "isFeatured": false
    },
    {
        "productNumber": "003",
        "imageFile": "watering-can.jpg",
        "skuID": "ACC",
        "catNumber": "01",
        "productName": "Watering Can",
        "category": "accessories",
        "price": 19.99,
        "altText": "A modern, metal watering can with a long spout.",
        "shortDescription": "Stylish and functional metal watering can.",
        "longDescription": "This sleek and durable metal watering can features a long, narrow spout for precise watering, perfect for both indoor and outdoor plants. Its comfortable handle provides a balanced grip, and the sturdy construction ensures it will be a reliable tool for years to come.",
        "ratings": {
            "count": 85,
            "score": 4.8
        },
        "isFeatured": false
    },
    {
        "productNumber": "001",
        "imageFile": "spider-plant.jpg",
        "skuID": "IND",
        "catNumber": "02",
        "productName": "Spider Plant",
        "category": "indoor",
        "price": 14.99,
        "altText": "A lush spider plant with long, variegated green and white leaves.",
        "shortDescription": "Easy-care spider plant, great for beginners.",
        "longDescription": "The spider plant (Chlorophytum comosum) is one of the most popular and easiest houseplants to grow. Known for its distinctive arching, variegated leaves, it thrives in a variety of conditions and is a great choice for hanging baskets. It's also a highly effective air purifier.",
        "ratings": {
            "count": 210,
            "score": 4.9
        },
        "isFeatured": true
    },
    {
        "productNumber": "002",
        "imageFile": "string-of-pearls.jpg",
        "skuID": "IND",
        "catNumber": "02",
        "productName": "String-of-Pearls Plant",
        "category": "indoor",
        "price": 16.99,
        "altText": "A cascading string-of-pearls plant with small, spherical green leaves.",
        "shortDescription": "Succulent with cascading, pearl-like foliage.",
        "longDescription": "The string-of-pearls (Senecio rowleyanus) is a striking succulent known for its long, trailing stems dotted with small, bead-like leaves. It's a fantastic plant for a sunny spot on a shelf or in a hanging planter, creating a beautiful, flowing green display. Like most succulents, it requires minimal watering.",
        "ratings": {
            "count": 95,
            "score": 4.6
        },
        "isFeatured": false
    },
    {
        "productNumber": "003",
        "imageFile": "zebra-plant.jpg",
        "skuID": "IND",
        "catNumber": "02",
        "productName": "Zebra Plant",
        "category": "indoor",
        "price": 18.99,
        "altText": "A vibrant zebra plant with deep green leaves and prominent white veins.",
        "shortDescription": "Striking houseplant with bold, striped leaves.",
        "longDescription": "The zebra plant (Aphelandra squarrosa) is named for its eye-catching foliage—deep green leaves with stark, contrasting white or yellow veins. This plant adds a tropical feel to any room and, with the right care, can also produce brilliant yellow flower bracts. It prefers bright, indirect light and high humidity.",
        "ratings": {
            "count": 72,
            "score": 4.4
        },
        "isFeatured": false
    },
    {
        "productNumber": "001",
        "imageFile": "bark-mulch.jpg",
        "skuID": "LND",
        "catNumber": "03",
        "productName": "Pine Bark Mulch (25lb bag)",
        "category": "landscaping",
        "price": 8.99,
        "altText": "A 25lb bag of natural pine bark mulch.",
        "shortDescription": "25lb bag of premium pine bark mulch.",
        "longDescription": "Pine bark mulch is a top choice for gardeners and landscapers. It helps suppress weeds, retain soil moisture, and moderate soil temperature, which is essential for healthy plant growth. As it decomposes, it adds valuable organic matter to the soil. The rich, dark color also provides an attractive finish to garden beds and pathways.",
        "ratings": {
            "count": 305,
            "score": 4.8
        },
        "isFeatured": false
    },
    {
        "productNumber": "002",
        "imageFile": "pea-gravel.jpg",
        "skuID": "LND",
        "catNumber": "03",
        "productName": "Pea Gravel (25lb bag)",
        "category": "landscaping",
        "price": 11.99,
        "altText": "A 25lb bag of smooth, rounded pea gravel.",
        "shortDescription": "25lb bag of decorative pea gravel.",
        "longDescription": "Pea gravel consists of small, smooth, rounded stones, typically in a mix of neutral colors. It's an excellent choice for creating walkways, patios, and decorative ground cover. The smooth texture is comfortable to walk on, and it provides effective drainage and a clean, finished look to any landscape design.",
        "ratings": {
            "count": 185,
            "score": 4.7
        },
        "isFeatured": true
    },
    {
        "productNumber": "003",
        "imageFile": "stone-pavers.jpg",
        "skuID": "LND",
        "catNumber": "03",
        "productName": "Stone Pavers (single count)",
        "category": "landscaping",
        "price": 4.50,
        "altText": "A single rectangular gray stone paver.",
        "shortDescription": "Durable stone paver for patios and paths.",
        "longDescription": "Our stone pavers are made from high-quality concrete and are perfect for building durable, long-lasting patios, walkways, and driveways. The classic rectangular shape and neutral gray color make them versatile for a wide range of landscape designs. Sold individually, allowing you to purchase the exact quantity you need for your project.",
        "ratings": {
            "count": 255,
            "score": 4.6
        },
        "isFeatured": false
    },
    {
        "productNumber": "001",
        "imageFile": "firepit.jpg",
        "skuID": "PAT",
        "catNumber": "04",
        "productName": "Metal Fire-pit",
        "category": "patio",
        "price": 129.99,
        "altText": "A round, black metal fire-pit with a mesh lid.",
        "shortDescription": "Stylish metal fire-pit for outdoor gatherings.",
        "longDescription": "Create a warm and inviting atmosphere on your patio with this durable metal fire-pit. Constructed from heat-resistant steel, it features a classic bowl design and includes a mesh lid for safety. Perfect for cool evenings, it's a great centerpiece for entertaining and enjoying the outdoors with friends and family.",
        "ratings": {
            "count": 55,
            "score": 4.9
        },
        "isFeatured": false
    },
    {
        "productNumber": "002",
        "imageFile": "string-lights.jpg",
        "skuID": "PAT",
        "catNumber": "04",
        "productName": "LED String Lights",
        "category": "patio",
        "price": 24.99,
        "altText": "A string of warm white LED lights hanging outdoors.",
        "shortDescription": "Energy-efficient LED string lights for outdoors.",
        "longDescription": "Add a touch of magic to your outdoor space with these energy-efficient LED string lights. The warm white glow creates a soft, inviting ambiance, perfect for backyard dinners, parties, or simply relaxing on your patio. The bulbs are shatterproof and weather-resistant, making them ideal for year-round outdoor use.",
        "ratings": {
            "count": 175,
            "score": 4.7
        },
        "isFeatured": true
    },
    {
        "productNumber": "003",
        "imageFile": "parlor-palm.jpg",
        "skuID": "PAT",
        "catNumber": "04",
        "productName": "Parlor Palm",
        "category": "patio",
        "price": 22.99,
        "altText": "A small, potted parlor palm with feathery green fronds.",
        "shortDescription": "Elegant, low-maintenance palm for patios.",
        "longDescription": "The parlor palm (Chamaedorea elegans) is a classic choice for adding a tropical flair to a covered patio, deck, or indoor space. Known for its graceful, feathery fronds, it's a resilient and slow-growing plant that thrives in low light conditions. It's a great way to bring a lush, green aesthetic to your outdoor living area.",
        "ratings": {
            "count": 88,
            "score": 4.6
        },
        "isFeatured": false
    },
    {
        "productNumber": "001",
        "imageFile": "hydrangea.jpg",
        "skuID": "SHR",
        "catNumber": "05",
        "productName": "Hydrangeas",
        "category": "shrubs",
        "price": 25.99,
        "altText": "A vibrant cluster of pink and purple hydrangea flowers.",
        "shortDescription": "Hydrangea bush with large, colorful blooms.",
        "longDescription": "Hydrangeas are a quintessential garden shrub, celebrated for their large, showy flower heads. Depending on the soil's pH, the blooms can change color, ranging from deep blues and purples to bright pinks. They are perfect for adding a splash of color to borders, foundations, or as a standalone focal point in the garden.",
        "ratings": {
            "count": 190,
            "score": 4.9
        },
        "isFeatured": false
    },
    {
        "productNumber": "002",
        "imageFile": "crepe-myrtle.jpg",
        "skuID": "SHR",
        "catNumber": "05",
        "productName": "Crepe Myrtle",
        "category": "shrubs",
        "price": 28.99,
        "altText": "A crepe myrtle bush with clusters of bright pink flowers.",
        "shortDescription": "Crepe myrtle with long-lasting summer blooms.",
        "longDescription": "The crepe myrtle (Lagerstroemia) is a beloved small tree or shrub, famous for its crepe-paper-like blossoms that last all summer long. Its smooth, multi-hued bark and vibrant fall foliage also add year-round interest to the landscape. This fast-growing plant thrives in sunny locations and requires minimal care.",
        "ratings": {
            "count": 115,
            "score": 4.7
        },
        "isFeatured": false
    },
    {
        "productNumber": "003",
        "imageFile": "holly.jpg",
        "skuID": "SHR",
        "catNumber": "05",
        "productName": "Holly",
        "category": "shrubs",
        "price": 21.99,
        "altText": "A holly bush with deep green leaves and bright red berries.",
        "shortDescription": "Evergreen holly bush with bright red berries.",
        "longDescription": "Holly (Ilex) is a traditional favorite for its glossy, evergreen leaves and bright red berries that provide winter interest. It's an excellent choice for creating hedges, screens, or as a structural plant in the garden. This hardy shrub is a staple for year-round beauty and can attract birds with its berries.",
        "ratings": {
            "count": 130,
            "score": 4.8
        },
        "isFeatured": true
    },
    {
        "productNumber": "001",
        "imageFile": "gardening-tool.jpg",
        "skuID": "TLS",
        "catNumber": "06",
        "productName": "Gardening Tool Set",
        "category": "tools",
        "price": 34.99,
        "altText": "A set of three gardening tools: a trowel, a cultivator, and a transplanter.",
        "shortDescription": "Three-piece set of essential gardening tools.",
        "longDescription": "This durable gardening tool set includes a trowel for planting, a cultivator for aerating soil, and a transplanter for moving seedlings. Each tool features a comfortable handle and a sturdy, rust-resistant head. It's the perfect starter set for anyone looking to get their hands dirty in the garden.",
        "ratings": {
            "count": 200,
            "score": 4.7
        },
        "isFeatured": false
    },
    {
        "productNumber": "002",
        "imageFile": "gardening-hose.jpg",
        "skuID": "TLS",
        "catNumber": "06",
        "productName": "Gardening Hose",
        "category": "tools",
        "price": 49.99,
        "altText": "A coiled green gardening hose.",
        "shortDescription": "Durable, kink-resistant gardening hose.",
        "longDescription": "Our premium gardening hose is made from a high-quality, flexible material that resists kinking and tangling. It's lightweight yet incredibly durable, making watering your garden a breeze. The hose comes with solid brass couplings for a secure, leak-free connection to your spigot.",
        "ratings": {
            "count": 110,
            "score": 4.5
        },
        "isFeatured": false
    },
    {
        "productNumber": "003",
        "imageFile": "wheelbarrow.jpg",
        "skuID": "TLS",
        "catNumber": "06",
        "productName": "Wheelbarrow",
        "category": "tools",
        "price": 99.99,
        "altText": "A sturdy single-wheeled wheelbarrow with a metal basin.",
        "shortDescription": "Heavy-duty wheelbarrow for hauling tasks.",
        "longDescription": "This robust wheelbarrow is an essential tool for any serious gardener or landscaper. It features a deep, heavy-duty steel basin and a strong single wheel for easy maneuverability, even on uneven terrain. Perfect for transporting soil, mulch, stones, and other heavy materials around your yard.",
        "ratings": {
            "count": 65,
            "score": 4.9
        },
        "isFeatured": false
    },
    {
        "productNumber": "001",
        "imageFile": "apple-tree.jpg",
        "skuID": "TRS",
        "catNumber": "07",
        "productName": "Apple Tree (Honeycrisp)",
        "category": "trees",
        "price": 45.99,
        "altText": "A young Honeycrisp apple tree in a pot.",
        "shortDescription": "Honeycrisp apple tree with crisp, sweet fruit.",
        "longDescription": "The Honeycrisp apple tree is a popular choice for home orchards, celebrated for its exceptionally crisp texture and deliciously sweet flavor. This semi-dwarf tree is relatively easy to care for and produces a bountiful harvest of apples in the late summer and early fall. Plant it in a sunny spot to ensure a great yield.",
        "ratings": {
            "count": 140,
            "score": 4.8
        },
        "isFeatured": false
    },
    {
        "productNumber": "002",
        "imageFile": "silver-birch.jpg",
        "skuID": "TRS",
        "catNumber": "07",
        "productName": "Silver Birch",
        "category": "trees",
        "price": 39.99,
        "altText": "A young silver birch tree with smooth, white bark.",
        "shortDescription": "Graceful silver birch with iconic white bark.",
        "longDescription": "The silver birch (Betula pendula) is a stunning ornamental tree prized for its peeling, silvery-white bark and elegant, pendulous branches. It provides year-round visual interest and is an excellent choice for a focal point in your yard. This hardy tree is fast-growing and adds a touch of classic beauty to any landscape.",
        "ratings": {
            "count": 95,
            "score": 4.6
        },
        "isFeatured": false
    },
    {
        "productNumber": "003",
        "imageFile": "japanese-maple-tree.jpg",
        "skuID": "TRS",
        "catNumber": "07",
        "productName": "Japanese Maple",
        "category": "trees",
        "price": 55.99,
        "altText": "A young Japanese Maple tree with lobed red and orange leaves.",
        "shortDescription": "Japanese Maple tree with vibrant fall colors.",
        "longDescription": "Japanese Maple trees (Acer palmatum) are a native of landscapes in northeastern Asia, cherished for their beautiful, lobed leaves and spectacular fall foliage. This young tree will grow into a stunning accent to your garden, providing a vibrant backdrop and a brilliant display of reds, oranges, and yellows in the autumn. It's a robust and long-living addition to any property.",
        "ratings": {
            "count": 220,
            "score": 4.9
        },
        "isFeatured": true
    }
];
module.exports = {
INVENTORY
    INVENTORY
};

View File

@@ -1,58 +1,61 @@
<!-- Footer Section -->
<footer role="contentinfo">
<div id="newsletter-container">
<div class="footer-container">
<div id="newsletter-container">
<form id="newsletter-form">
<label for="email-input" class="hidden">Enter your email to subscribe to our newsletter</label>
<input
type="email"
id="email-input"
placeholder="Subscribe@BloomValleyNursery.com"
/>
<button id="submit-btn" type="submit" aria-label="Submit the subscribe form">
Subscribe Now!
</button>
</form>
</div>
<div class="footer-nav-links">
<nav id="footer-nav">
<ul>
<li><a href="/" {% if currentPage == 'index' %}class="current-page" aria-current="page"{% endif %}>Home</a></li>
<li><a href="/gallery/" {% if currentPage == 'gallery' %}class="current-page" aria-current="page"{% endif %}>Gallery</a></li>
<li><a href="/about/" {% if currentPage == 'about' %}class="current-page" aria-current="page"{% endif %}>About Us</a></li>
<li><a href="/community/" {% if currentPage == 'community' %}class="current-page" aria-current="page"{% endif %}>Community Events</a></li>
</ul>
</nav>
</div>
<form id="newsletter-form">
<label for="email-input" class="hidden">Enter your email to subscribe to our newsletter</label>
<input
type="email"
id="email-input"
placeholder="Subscribe@BloomValleyNursery.com"
/>
<button id="submit-btn" type="submit" aria-label="Submit the subscribe form">
Subscribe Now!
</button>
</form>
<div id="social-media">
<h3>Check us out on social media!</h3>
<ul class="social-icons">
<li id="pinterest">
<a href="#" aria-label="Follow us on Pinterest"
><i class="fa-brands fa-square-pinterest fa-lg"></i></a></li>
<li id="facebook">
<a href="#" aria-label="Follow us on Facebook"
><i class="fa-brands fa-facebook fa-lg"></i
></a>
</li>
<li id="instagram">
<a href="#" aria-label="Follow us on Instagram"
><i class="fa-brands fa-instagram fa-lg"></i
></a>
</li>
<li id="twitter">
<a href="#" aria-label="Follow us on X (Twitter)"
><i class="fa-brands fa-square-x-twitter fa-lg"></i
></a>
</li>
<li id="youtube">
<a href="#" aria-label="View our Youtube channel"
><i class="fa-brands fa-youtube fa-lg"></i
></a>
</li>
</ul>
</div>
<div id="copyright">&copy; 2025, Derek L. Seitz, <a href="https://dlseitz.dev">dlseitz.dev</a>. Images used with permissions from <a href="/credits/" target="_blank" rel="noopener noreferrer">these contributors</a>.</div>
</div>
<nav id="footer-nav">
<ul>
<li><a href="/" {% if currentPage == 'index' %}class="current-page" aria-current="page"{% endif %}>Home</a></li>
<li><a href="/gallery/" {% if currentPage == 'gallery' %}class="current-page" aria-current="page"{% endif %}>Gallery</a></li>
<li><a href="/about/" {% if currentPage == 'about' %}class="current-page" aria-current="page"{% endif %}>About Us</a></li>
<li><a href="/community/" {% if currentPage == 'community' %}class="current-page" aria-current="page"{% endif %}>Community Events</a></li>
</ul>
</nav>
<div id="social-media">
<h3>Check us out on social media!</h3>
<ul class="social-icons">
<li id="pinterest">
<a href="#" aria-label="Follow us on Pinterest"
><i class="fa-brands fa-square-pinterest fa-lg"></i></a></li>
<li id="facebook">
<a href="#" aria-label="Follow us on Facebook"
><i class="fa-brands fa-facebook fa-lg"></i
></a>
</li>
<li id="instagram">
<a href="#" aria-label="Follow us on Instagram"
><i class="fa-brands fa-instagram fa-lg"></i
></a>
</li>
<li id="twitter">
<a href="#" aria-label="Follow us on X (Twitter)"
><i class="fa-brands fa-square-x-twitter fa-lg"></i
></a>
</li>
<li id="youtube">
<a href="#" aria-label="View our Youtube channel"
><i class="fa-brands fa-youtube fa-lg"></i
></a>
</li>
</ul>
</div>
<div id="copyright">&copy; 2025, Derek L. Seitz, <a href="https://dlseitz.dev">dlseitz.dev</a>. Images used with permissions from <a href="/credits/" target="_blank" rel="noopener noreferrer">these contributors</a>.</div>
</footer>

View File

@@ -37,7 +37,7 @@
<i class="fa-solid fa-bars fa-2xl"></i>
</button>
<button id="shopping-cart" aria-label="Shopping Cart">
<i class="fa-solid fa-cart-shopping"></i>
<i class="fa-solid fa-cart-shopping fa-2xl"></i>
</button>
</div>
</div>

View File

@@ -19,71 +19,73 @@ pageScripts:
---
<!-- Main Content Section -->
<div id="left-side">
<!-- Promo Feature -->
<section id="promos-container">
<h2 id="promos-heading">Shopper Promos</h2>
{% for promo in promotions.PROMOS %}
<div id="{{ promo.id }}" class="promo-item">
<h3 class="promo-title">{{ promo.title }}</h3>
<p class="promo-description">{{ promo.description }}</p>
<button type="button" class="ctaButton">{{ promo.ctaText }}</button>
</div>
{% endfor %}
</section>
<!-- Testimonials Feature -->
<section id="testimonials-container">
<h2 id="testimonials-heading">What Others Say</h2>
{% for item in testimonials.TESTIMONIALS %}
<div id="{{ id }}" class="testimonial-item">
<h3 class="client-name">{{ item.clientName }} said<h3>
<p class="client-quote">"{{ item.testimonial }}"</p>
</div>
{% endfor %}
</section>
</div>
<div id="center">
<section id="featured-container">
<h2 class="featured-heading">Featured Items</h2>
<ul id="featured-list">
{% for item in inventory.INVENTORY %}
{% if item.isFeatured %}
<li>
<div id="{{ item.skuID }}-{{ item.catNumber }}-{{ item.productNumber }}" class="featured-card">
<a href="/gallery/">
<h3 class="product-name">{{ item.productName }}</h3>
<figure>
<img src="images/_m-thumbs/{{ item.category }}/{{ item.imageFile }}" alt="{{ item.altText }}" class="featured-item">
<figcaption class="short-description">{{ item.shortDescription }}</figcaption>
</figure>
<p class="price">${{ item.price }}</p>
</a>
</div>
</li>
{% endif %}
<div class="main-content-container">
<div id="left-side">
<!-- Promo Feature -->
<section id="promos-container">
<h2 id="promos-heading">Shopper Promos</h2>
{% for promo in promotions.PROMOS %}
<div id="{{ promo.id }}" class="promo-item">
<h3 class="promo-title">{{ promo.title }}</h3>
<p class="promo-description">{{ promo.description }}</p>
<button type="button" class="ctaButton">{{ promo.ctaText }}</button>
</div>
{% endfor %}
</ul>
</section>
</div>
</section>
<div id="right-side">
<nav id="category-nav">
<div id="category-nav-container">
<h2>Shop by Category</h2>
<div class="categories">
<ul>
<li><a href="/gallery/?category=trees#" class="cat-btn">Trees</a></li>
<li><a href="/gallery/?category=shrubs#" class="cat-btn">Shrubs</a></li>
<li><a href="/gallery/?category=indoor#" class="cat-btn">Indoor</a></li>
<li><a href="/gallery/?category=patio#" class="cat-btn">Patio</a></li>
<li><a href="/gallery/?category=tools#" class="cat-btn">Tools</a></li>
<li><a href="/gallery/?category=accessories#" class="cat-btn">Accessories</a></li>
<li><a href="/gallery/?category=landscaping#" class="cat-btn">Landscaping</a></li>
</ul>
</div>
</div>
</nav>
<!-- Testimonials Feature -->
<section id="testimonials-container">
<h2 id="testimonials-heading">What Others Say</h2>
{% for item in testimonials.TESTIMONIALS %}
<div id="{{ id }}" class="testimonial-item">
<h3 class="client-name">{{ item.clientName }} said<h3>
<p class="client-quote">"{{ item.testimonial }}"</p>
</div>
{% endfor %}
</section>
</div>
<div id="center">
<section id="featured-container">
<h2 class="featured-heading">Featured Items</h2>
<ul id="featured-list">
{% for item in inventory.INVENTORY %}
{% if item.isFeatured %}
<li>
<div id="{{ item.skuID }}-{{ item.catNumber }}-{{ item.productNumber }}" class="featured-card">
<a href="/gallery/">
<h3 class="product-name">{{ item.productName }}</h3>
<figure>
<img src="images/_m-thumbs/{{ item.category }}/{{ item.imageFile }}" alt="{{ item.altText }}" class="featured-item">
<figcaption class="short-description">{{ item.shortDescription }}</figcaption>
</figure>
<p class="price">${{ item.price }}</p>
</a>
</div>
</li>
{% endif %}
{% endfor %}
</ul>
</section>
</div>
<div id="right-side">
<nav id="category-nav">
<div id="category-nav-container">
<h2>Shop by Category</h2>
<div class="categories">
<ul>
<li><a href="/gallery/?category=trees#" class="cat-btn">Trees</a></li>
<li><a href="/gallery/?category=shrubs#" class="cat-btn">Shrubs</a></li>
<li><a href="/gallery/?category=indoor#" class="cat-btn">Indoor</a></li>
<li><a href="/gallery/?category=patio#" class="cat-btn">Patio</a></li>
<li><a href="/gallery/?category=tools#" class="cat-btn">Tools</a></li>
<li><a href="/gallery/?category=accessories#" class="cat-btn">Accessories</a></li>
<li><a href="/gallery/?category=landscaping#" class="cat-btn">Landscaping</a></li>
</ul>
</div>
</div>
</nav>
</div>
</div>

View File

@@ -1,8 +1,17 @@
.footer-container {
display: flex;
flex-direction: column;
align-items: center;
}
#footer-nav {
padding: 0;
}
nav ul, #footer-nav ul {
display: flex;
justify-content: center;
list-style: none;
padding: 0;
padding: 10px 0;
margin: 0;
}

View File

@@ -94,7 +94,7 @@ header .logo img {
color: var(--color-dark-green); /* Dark green for the title */
margin: 10px 0;
text-align: center;
text-shadow: var(--text-outline-heading);
text-shadow: var(--text-outline-business);
}
header p.tagline {

View File

@@ -1,3 +1,10 @@
/* Stylesheet for index.html */
.main-content-container {
display: flex;
flex-direction: row;
align-items: center;
gap: 50px;
}
.promo-item,
.testimonial-item,
@@ -15,6 +22,7 @@
#category-nav {
flex: 1;
box-shadow: var(--shadow-strong);
max-width: 325px;
}
#left-side {
@@ -24,6 +32,7 @@
border: solid var(--color-destin-sand);
padding: 5px 10px;
margin-top: 10px;
margin-left: 0;
border-radius: 10px;
}
@@ -51,9 +60,9 @@
border-radius: 10px;
padding: 5px 10px;
white-space: normal;
max-height: 175px;
min-height: 175px;
max-width: 400px;
max-height: 200px;
min-height: 200px;
max-width: 350px;
box-shadow: var(--shadow-strong);
text-align: center;
}
@@ -65,6 +74,39 @@
box-shadow: var(--shadow-strong);
}
/* --- TESTIMONIALS --- */
#testimonials-container{
background-color: var(--color-mid-green);
color: var(--color-dark-green);
border: solid var(--color-dark-green);
border-radius: 10px;
padding: 5px 10px;
margin-top: 10px;
white-space: normal;
box-shadow: var(--shadow-strong);
}
#testimonials-container h2 {
font-size: 1.675rem;
text-align: center;
}
.testimonial-item {
background-color: var(--color-destin-sand);
color: var(--color-dark-green);
border: solid var(--color-dark-green);
border-radius: 5px;
padding: 5px 10px;
white-space: normal;
max-height: 200px;
max-width: 350px;
min-height: 200px;
box-shadow: var(--shadow-strong);
text-align: center;
}
/* FEATURED ITEMS */
#featured-container {
display: flex;
flex: 2;
@@ -77,16 +119,16 @@
}
#featured-container h2 {
font-size: 1.875rem;
font-size: 2.675rem;
text-align: center;
text-shadow: var(--text-shadow-layered);
color: var(--color-destin-sand);
background-color: var(--color-mid-green);
border: solid var(--color-destin-sand);
border-radius: 10px;
margin-left: 30px;
width: fit-content;
padding: 0 20px;
padding: 0 50px;
margin: 0px;
box-shadow: var(--shadow-medium);
}
@@ -96,11 +138,14 @@
flex-direction: column;
align-items: center;
padding: 0;
box-shadow: var(--shadow-strong);
}
#featured-list {
border: solid var(--color-mid-green);
border-radius: 10px;
box-shadow: var(--shadow-strong);
}
@@ -108,7 +153,7 @@
color: var(--color-dark-green);
background-color: var(--color-destin-sand);
border-radius: 10px;
padding: 5px 10px;
padding: 0px 10px;
display: block;
text-align: center;
font-size: 1.4rem;
@@ -134,6 +179,22 @@
height: auto; /* Let the height adapt to content */
}
.featured-card h3,
.featured-card p,
.feature-card figure,
.featured-card figcaption {
margin: 0;
padding: 0;
}
.featured-card h3.product-name {
margin-top: 5px;
}
.featured-card p.price {
margin-top: 5px;
}
figcaption {
font-size: 1.2rem;
}
@@ -161,46 +222,12 @@ p.short-description {
text-decoration: none;
}
/* --- TESTIMONIALS --- */
#testimonials-container{
background-color: var(--color-mid-green);
color: var(--color-dark-green);
border: solid var(--color-dark-green);
border-radius: 10px;
padding: 5px 10px;
margin-top: 10px;
white-space: normal;
box-shadow: var(--shadow-strong);
}
#testimonials-container h2 {
font-size: 1.675rem;
text-align: center;
}
.testimonial-item {
background-color: var(--color-destin-sand);
color: var(--color-dark-green);
border: solid var(--color-dark-green);
border-radius: 5px;
padding: 5px 10px;
white-space: normal;
max-height: 175px;
max-width: 400px;
min-height: 175px;
box-shadow: var(--shadow-strong);
text-align: center;
}
/* --- CATEGORY NAVIGATION --- */
#category-nav {
display: flex;
flex-direction: column;
align-items: center;
background-color: var(--color-soft-gold);
background-color: var(--color-soft-golden);
padding: 5px 10px;
margin-top: 10px;
border: solid var(--color-destin-sand);

View File

@@ -19,6 +19,12 @@
-0.5px 0.5px 1px var(--color-dark-green),
0.5px -0.5px 1px var(--color-dark-green);
--text-outline-business:
0.5px 0.5px 1px var(--color-destin-sand),
-0.5px -0.5px 1px var(--color-destin-sand),
-0.5px 0.5px 1px var(--color-destin-sand),
0.5px -0.5px 1px var(--color-destin-sand);
/* Layered Text Shadow */
--text-shadow-layered:
0.5px 0.5px 1px var(--color-dark-green),