root = Card([header, currentCard, forecastCard, sunCard], "card", "column", "l")
header = CardHeader("Morning Weather Brief", "Bengaluru · Updated 6:30 AM")
currentCard = Card([currentTemp, currentCond, currentDetails], "sunk", "column", "m")
currentTemp = Heading("24°C", "h1")
currentCond = TextContent("Partly Cloudy", "large-heavy")
currentDetails = TextContent("Feels like 25°C · Humidity 68% · Wind W 12 km/h · UV Index 4 (Moderate)")
forecastCard = Card([forecastHeader, forecastTable], "sunk", "column", "m")
forecastHeader = Heading("3-Day Outlook", "h3")
forecastTable = Table([dayCol, highCol, lowCol, condCol, precipCol])
dayCol = Col("Day", ["Today", "Tomorrow", "Day 3"])
highCol = Col("High", ["28°C", "29°C", "27°C"])
lowCol = Col("Low", ["19°C", "20°C", "18°C"])
condCol = Col("Conditions", ["Partly Cloudy", "Sunny", "Light Rain"])
precipCol = Col("Precip", ["10%", "5%", "60%"])
sunCard = Card([sunHeader, sunRow], "sunk", "column", "m")
sunHeader = Heading("Sunrise & Sunset", "h3")
sunRow = Card([sunrise, sunset], "clear", "row", "l", "center", "between")
sunrise = Card([sunriseLabel, sunriseTime], "clear", "column", "xs", "center")
sunriseLabel = TextContent("Sunrise", "small")
sunriseTime = TextContent("6:12 AM", "large-heavy")
sunset = Card([sunsetLabel, sunsetTime], "clear", "column", "xs", "center")
sunsetLabel = TextContent("Sunset", "small")
sunsetTime = TextContent("6:28 PM", "large-heavy")