root = Card([header, hero, outlook, sunTimes, followUps])
header = CardHeader("Morning Weather Brief", "Bengaluru · Friday, 09:30 IST")
hero = Card([tempLine, conditionLine, extraChips], "sunk")
tempLine = TextContent("24°C", "large-heavy")
conditionLine = TextContent("Partly cloudy · Feels like 24°C · Breeze from the west at 12 km/h")
extraChips = Card([tagHumidity, tagWind, tagUV], "clear", "row", "m")
tagHumidity = Tag("Humidity 62%", null, null, "neutral")
tagWind = Tag("Wind 12 km/h", null, null, "info")
tagUV = Tag("UV Index 6", null, null, "warning")
outlook = Card([outlookHeading, outlookTable], "sunk")
outlookHeading = Heading("3-Day Outlook", "h3")
outlookTable = Table([dayCol, condCol, highCol, lowCol])
dayCol = Col("Day", ["Today", "Sat", "Sun"])
condCol = Col("Condition", ["Partly cloudy", "Scattered showers", "Sunny"])
highCol = Col("High", ["29°", "27°", "31°"])
lowCol = Col("Low", ["19°", "18°", "20°"])
sunTimes = Card([sunHeading, sunTable], "sunk")
sunHeading = Heading("Sunrise & Sunset", "h3")
sunTable = Table([eventCol, timeCol])
eventCol = Col("Event", ["Sunrise", "Sunset"])
timeCol = Col("Time", ["5:58 AM", "6:22 PM"])
followUps = FollowUpBlock([followUp1, followUp2])
followUp1 = FollowUpItem("Show hourly forecast")
followUp2 = FollowUpItem("Will it rain this weekend?")