Itching in skin during summer which medicine give
summer skin itching treatment medicines antihistamine topical 2025
| Medicine | Type | Notes |
|---|---|---|
| Cetirizine (Zyrtec) 10 mg once daily | 2nd generation H1 blocker | Low sedation, preferred first choice |
| Loratadine (Claritin) 10 mg once daily | 2nd generation H1 blocker | Non-sedating, safe for daytime use |
| Fexofenadine (Allegra) 120-180 mg once daily | 2nd generation H1 blocker | Non-sedating, very well tolerated |
| Diphenhydramine (Benadryl) 25-50 mg every 6-8 hrs | 1st generation H1 blocker | Sedating - causes drowsiness; use at night if needed |
| Hydroxyzine 25 mg | 1st generation H1 blocker | Sedating, useful for severe itch at night |
| Chlorpheniramine 4 mg every 4-6 hrs | 1st generation H1 blocker | Common, inexpensive, but causes drowsiness |
According to Harrison's Principles of Internal Medicine (2025): "H1 antihistamines effectively attenuate both urtication and pruritus; long-acting, nonsedating agents such as loratadine and fexofenadine, or low-sedating agents such as cetirizine, are generally used first."
| Medicine | Use |
|---|---|
| Calamine lotion | Best for heat rash, insect bites, mild sunburn - soothes and cools |
| Hydrocortisone cream 1% (OTC) | For mild redness and itch from insect bites, contact reactions |
| Betamethasone/Mometasone cream (Rx) | Stronger steroid cream for more severe itching - short-term use only |
| Diphenhydramine (Benadryl) cream/gel | Topical antihistamine for insect bites, localized itch |
| Pramoxine lotion | Local anesthetic effect, relieves surface itch |
| Menthol or camphor lotion (e.g., Lacticare, Gold Bond) | Cooling sensation, good for heat-related itch |
Sources: Harrison's Principles of Internal Medicine 22E, 2025; Fitzpatrick's Dermatology; Rosen's Emergency Medicine; Goldman-Cecil Medicine
Create a quick reference guide for summer skin care products
summer skin care products guide sunscreen moisturizer SPF 2025 dermatologist recommendations
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or missing"
mkdir -p /home/daytona/workspace/summer-skincare-guide
~/summer-skincare-guide/create_guide.py
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import mm, cm
from reportlab.platypus import (
SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_JUSTIFY
from reportlab.platypus import Flowable
OUTPUT = "/home/daytona/workspace/summer-skincare-guide/Summer_Skincare_Quick_Reference.pdf"
# ── Colour palette ──────────────────────────────────────────────────────────
SUN_ORANGE = colors.HexColor("#FF6B35")
SKY_BLUE = colors.HexColor("#0077B6")
LIGHT_BLUE = colors.HexColor("#ADE8F4")
SOFT_YELLOW = colors.HexColor("#FFF3B0")
MINT_GREEN = colors.HexColor("#D8F3DC")
CORAL = colors.HexColor("#FFB4A2")
LAVENDER = colors.HexColor("#E2D9F3")
DARK_GREY = colors.HexColor("#2D2D2D")
MID_GREY = colors.HexColor("#555555")
WHITE = colors.white
HEADER_BG = colors.HexColor("#023E8A")
SUBHEAD_BG = colors.HexColor("#0096C7")
TABLE_HDR = colors.HexColor("#0077B6")
TABLE_ALT = colors.HexColor("#E0F4FF")
# ── Styles ───────────────────────────────────────────────────────────────────
styles = getSampleStyleSheet()
def make_style(name, **kw):
return ParagraphStyle(name, **kw)
TITLE_STYLE = make_style("Title",
fontName="Helvetica-Bold", fontSize=26, textColor=WHITE,
alignment=TA_CENTER, spaceAfter=4, leading=30)
SUBTITLE_STYLE = make_style("Subtitle",
fontName="Helvetica", fontSize=12, textColor=LIGHT_BLUE,
alignment=TA_CENTER, spaceAfter=2)
DATE_STYLE = make_style("Date",
fontName="Helvetica-Oblique", fontSize=9, textColor=LIGHT_BLUE,
alignment=TA_CENTER, spaceAfter=0)
SECTION_STYLE = make_style("Section",
fontName="Helvetica-Bold", fontSize=13, textColor=WHITE,
alignment=TA_LEFT, spaceAfter=4, spaceBefore=6, leading=16)
BODY_STYLE = make_style("Body",
fontName="Helvetica", fontSize=9.5, textColor=DARK_GREY,
alignment=TA_LEFT, leading=13, spaceAfter=2)
BODY_BOLD = make_style("BodyBold",
fontName="Helvetica-Bold", fontSize=9.5, textColor=DARK_GREY,
leading=13, spaceAfter=2)
SMALL_STYLE = make_style("Small",
fontName="Helvetica", fontSize=8.5, textColor=MID_GREY,
leading=11, spaceAfter=2, alignment=TA_JUSTIFY)
NOTE_STYLE = make_style("Note",
fontName="Helvetica-Oblique", fontSize=8, textColor=MID_GREY,
leading=11, spaceAfter=2)
TH_STYLE = make_style("TH",
fontName="Helvetica-Bold", fontSize=9, textColor=WHITE,
alignment=TA_CENTER, leading=12)
TD_STYLE = make_style("TD",
fontName="Helvetica", fontSize=8.5, textColor=DARK_GREY,
alignment=TA_LEFT, leading=11)
TD_C_STYLE = make_style("TDC",
fontName="Helvetica", fontSize=8.5, textColor=DARK_GREY,
alignment=TA_CENTER, leading=11)
TD_BOLD = make_style("TDB",
fontName="Helvetica-Bold", fontSize=8.5, textColor=DARK_GREY,
alignment=TA_LEFT, leading=11)
# ── Helper: coloured section header bar ─────────────────────────────────────
class ColorBar(Flowable):
def __init__(self, text, bg=SUBHEAD_BG, width=None, height=20):
super().__init__()
self.text = text
self.bg = bg
self.bwidth = width or (A4[0] - 2*cm)
self.height = height
def draw(self):
c = self.canv
c.setFillColor(self.bg)
c.roundRect(0, 0, self.bwidth, self.height, 5, fill=1, stroke=0)
c.setFillColor(WHITE)
c.setFont("Helvetica-Bold", 11)
c.drawString(8, 5, self.text)
def wrap(self, *args):
return self.bwidth, self.height
def section_header(text, icon="", bg=SUBHEAD_BG):
return ColorBar(f" {icon} {text}" if icon else f" {text}", bg=bg, height=22)
def tip_box(text, bg=SOFT_YELLOW):
data = [[Paragraph(text, SMALL_STYLE)]]
t = Table(data, colWidths=[A4[0] - 2*cm])
t.setStyle(TableStyle([
("BACKGROUND", (0,0), (-1,-1), bg),
("BOX", (0,0), (-1,-1), 0.5, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0), (-1,-1), 6),
("BOTTOMPADDING", (0,0), (-1,-1), 6),
("LEFTPADDING", (0,0), (-1,-1), 8),
("RIGHTPADDING", (0,0), (-1,-1), 8),
("ROUNDEDCORNERS",(0,0), (-1,-1), [4,4,4,4]),
]))
return t
def build_table(headers, rows, col_widths, alt_color=TABLE_ALT):
header_cells = [Paragraph(h, TH_STYLE) for h in headers]
table_data = [header_cells]
for i, row in enumerate(rows):
cells = []
for j, cell in enumerate(row):
if isinstance(cell, str):
style = TD_BOLD if cell.startswith("**") else TD_STYLE
cell = cell.replace("**", "")
cells.append(Paragraph(cell, style))
else:
cells.append(cell)
table_data.append(cells)
t = Table(table_data, colWidths=col_widths)
style = [
("BACKGROUND", (0,0), (-1,0), TABLE_HDR),
("TEXTCOLOR", (0,0), (-1,0), WHITE),
("FONTNAME", (0,0), (-1,0), "Helvetica-Bold"),
("FONTSIZE", (0,0), (-1,0), 9),
("ALIGN", (0,0), (-1,0), "CENTER"),
("TOPPADDING", (0,0), (-1,-1), 4),
("BOTTOMPADDING", (0,0), (-1,-1), 4),
("LEFTPADDING", (0,0), (-1,-1), 6),
("RIGHTPADDING", (0,0), (-1,-1), 6),
("GRID", (0,0), (-1,-1), 0.3, colors.HexColor("#BBBBBB")),
("VALIGN", (0,0), (-1,-1), "MIDDLE"),
]
for i in range(1, len(table_data)):
if i % 2 == 0:
style.append(("BACKGROUND", (0,i), (-1,i), alt_color))
else:
style.append(("BACKGROUND", (0,i), (-1,i), WHITE))
t.setStyle(TableStyle(style))
return t
# ── Document setup ───────────────────────────────────────────────────────────
doc = SimpleDocTemplate(
OUTPUT,
pagesize=A4,
leftMargin=1*cm, rightMargin=1*cm,
topMargin=1.2*cm, bottomMargin=1.2*cm,
title="Summer Skincare Quick Reference Guide",
author="Orris Health",
)
W = A4[0] - 2*cm # usable width
story = []
# ════════════════════════════════════════════════════════════════
# HEADER BANNER
# ════════════════════════════════════════════════════════════════
banner_data = [[
Paragraph("☀️ SUMMER SKIN CARE", TITLE_STYLE),
]]
banner_inner = [[
Paragraph("Quick Reference Guide", SUBTITLE_STYLE),
]]
banner_date = [[
Paragraph("June 2026 | For General Use | Dermatology-Based Recommendations", DATE_STYLE),
]]
for dat, bg in [(banner_data, HEADER_BG), (banner_inner, HEADER_BG), (banner_date, HEADER_BG)]:
t = Table(dat, colWidths=[W])
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), bg),
("TOPPADDING", (0,0),(-1,-1), 8 if dat is banner_data else 2),
("BOTTOMPADDING", (0,0),(-1,-1), 6 if dat is banner_date else 2),
("LEFTPADDING", (0,0),(-1,-1), 10),
("RIGHTPADDING", (0,0),(-1,-1), 10),
]))
story.append(t)
story.append(Spacer(1, 6))
# ════════════════════════════════════════════════════════════════
# SECTION 1 - SUNSCREEN
# ════════════════════════════════════════════════════════════════
story.append(section_header("1. SUNSCREEN - Your #1 Summer Essential", "🛡️", bg=SUN_ORANGE))
story.append(Spacer(1, 5))
sun_headers = ["Product Type", "SPF / Protection", "Best For", "Key Ingredients", "Frequency"]
sun_rows = [
["**Mineral / Physical\nSunscreen", "SPF 30-50+\nBroad-spectrum UVA+UVB", "Sensitive skin, children,\nrosacea, acne-prone", "Zinc oxide, Titanium dioxide", "Every 2 hrs outdoors"],
["**Chemical Sunscreen", "SPF 30-50+\nBroad-spectrum", "Daily use, under makeup,\nwaterproof versions", "Avobenzone, Octinoxate,\nOxybenzone, Octisalate", "Every 2 hrs outdoors"],
["**Tinted Sunscreen", "SPF 30-50+", "All skin types, hides\nblemishes, everyday", "Iron oxides +\nmineral filters", "Morning + reapply"],
["**SPF Moisturizer", "SPF 15-30", "Minimal sun exposure,\nindoor/office days", "Combination filters\n+ humectants", "Once daily morning"],
["**Lip Balm with SPF", "SPF 30+", "Lips (often forgotten)", "Zinc oxide or\nchemical filters", "Reapply every 2 hrs"],
]
story.append(build_table(sun_headers, sun_rows,
[3.2*cm, 3.5*cm, 4.0*cm, 4.2*cm, 2.8*cm]))
story.append(Spacer(1, 4))
story.append(tip_box(
"<b>Key Rule:</b> Use SPF 30 or higher with 'Broad-Spectrum' label. Apply 15-30 minutes before sun exposure. "
"Use at least 1/4 teaspoon (about 1.5 ml) for the face alone. Reapply every 2 hours when outdoors or after swimming/sweating.",
bg=SOFT_YELLOW))
story.append(Spacer(1, 8))
# ════════════════════════════════════════════════════════════════
# SECTION 2 - CLEANSERS
# ════════════════════════════════════════════════════════════════
story.append(section_header("2. CLEANSERS - Keep Pores Clear", "🧴", bg=SKY_BLUE))
story.append(Spacer(1, 5))
cl_headers = ["Cleanser Type", "Best For", "Key Ingredients", "Avoid If", "Usage"]
cl_rows = [
["**Gentle Foaming\nCleanser", "Oily / combination\nskin", "Salicylic acid 0.5-2%,\nNiacinamide", "Very dry or\nsensitive skin", "Twice daily"],
["**Micellar Water", "Sensitive / dry skin,\nremoving sunscreen", "Micelles, glycerin,\nno-rinse formula", "Heavy makeup\nalone", "Morning or PM"],
["**Gel Cleanser", "Oily, acne-prone skin", "Benzoyl peroxide 2.5-5%,\nglycerol", "Dry or\ndehydrated skin", "Once-twice daily"],
["**Cream / Milk\nCleanser", "Dry, mature skin", "Ceramides, hyaluronic\nacid, aloe vera", "Acne-prone or\nvery oily skin", "Twice daily"],
["**Salicylic Acid\nCleanser", "Acne, blackheads,\nclogged pores", "BHA 0.5-2%", "Active eczema\nor wounds", "Once daily, start"],
]
story.append(build_table(cl_headers, cl_rows,
[3.5*cm, 3.5*cm, 4.0*cm, 3.0*cm, 3.7*cm], alt_color=colors.HexColor("#E8F7FF")))
story.append(Spacer(1, 8))
# ════════════════════════════════════════════════════════════════
# SECTION 3 - MOISTURIZERS
# ════════════════════════════════════════════════════════════════
story.append(section_header("3. MOISTURIZERS - Hydration Without Grease", "💧", bg=colors.HexColor("#00897B")))
story.append(Spacer(1, 5))
mo_headers = ["Moisturizer Type", "Texture", "Best For", "Key Actives", "When to Apply"]
mo_rows = [
["**Oil-Free Gel\nMoisturizer", "Lightweight gel", "Oily, acne-prone,\ncombination skin", "Hyaluronic acid,\nNiacinamide, Aloe", "Morning + night"],
["**Gel-Cream\nHybrid", "Light cream", "Normal / combination\nskin", "Glycerin, HA,\nCeramides", "Morning + night"],
["**Water-Based\nLotion", "Thin lotion", "All skin types;\nminimal feel", "HA, Panthenol,\nAloe vera", "After shower,\nmorning"],
["**After-Sun\nMoisturizer", "Cooling lotion/gel", "Sunburn, heat\nirritation, redness", "Aloe vera, Panthenol,\nChamomile", "After sun exposure"],
["**Body Butter\n(light version)", "Medium cream", "Dry patches, elbows,\nknees in summer", "Shea butter, Vitamin E,\nJojoba", "Nightly on\ndry areas"],
]
story.append(build_table(mo_headers, mo_rows,
[3.5*cm, 2.8*cm, 3.5*cm, 3.8*cm, 3.1*cm], alt_color=MINT_GREEN))
story.append(Spacer(1, 4))
story.append(tip_box(
"<b>Summer Tip:</b> Store your gel moisturizer or aloe vera gel in the refrigerator for an instant cooling effect on hot days or after sun exposure.",
bg=MINT_GREEN))
story.append(Spacer(1, 8))
# ════════════════════════════════════════════════════════════════
# SECTION 4 - ANTI-ITCH & SOOTHING PRODUCTS
# ════════════════════════════════════════════════════════════════
story.append(section_header("4. ANTI-ITCH & SOOTHING PRODUCTS - Summer Itch Relief", "❄️", bg=colors.HexColor("#7B2D8B")))
story.append(Spacer(1, 5))
itch_headers = ["Product", "Active Ingredient", "Use For", "How to Use", "OTC / Rx"]
itch_rows = [
["**Calamine Lotion", "Zinc oxide +\nIron oxide", "Heat rash, insect bites,\nchickenpox, mild sunburn", "Apply thin layer\n3-4x daily", "OTC"],
["**Hydrocortisone\nCream 1%", "Hydrocortisone\n10 mg/g", "Insect bites, contact\ndermatitis, mild eczema", "Thin layer 2x daily\n(max 7 days)", "OTC"],
["**Clobetasone /\nBetamethasone Cream", "Moderate-potent\nsteroid", "Severe itching, allergic\nrash, dermatitis", "Thin layer 1-2x\ndaily - short course", "Rx only"],
["**Aloe Vera Gel", "Pure aloe vera\n(Aloe barbadensis)", "Sunburn, heat rash,\ncooling irritated skin", "Apply generously,\nrepeat as needed", "OTC"],
["**Menthol Lotion\n(e.g., Gold Bond)", "Menthol 0.1-1%", "Generalised itch,\nheat-related itching", "Apply to affected\nareas 2-3x daily", "OTC"],
["**Pramoxine Lotion", "Pramoxine HCl 1%", "Post-sunburn itch,\ndry skin itch", "Apply 3-4x daily\nto affected skin", "OTC"],
]
story.append(build_table(itch_headers, itch_rows,
[3.5*cm, 3.2*cm, 4.0*cm, 3.3*cm, 1.7*cm], alt_color=LAVENDER))
story.append(Spacer(1, 8))
# ════════════════════════════════════════════════════════════════
# SECTION 5 - ORAL MEDICINES FOR SKIN ITCH
# ════════════════════════════════════════════════════════════════
story.append(section_header("5. ORAL ANTIHISTAMINES - For Moderate to Severe Itching", "💊", bg=colors.HexColor("#B5451B")))
story.append(Spacer(1, 5))
ah_headers = ["Medicine", "Class", "Dose (Adult)", "Sedation", "Best Use"]
ah_rows = [
["**Cetirizine\n(Zyrtec)", "2nd gen H1", "10 mg once daily", "Low", "Daytime; heat urticaria,\ninsect bite rash"],
["**Loratadine\n(Claritin)", "2nd gen H1", "10 mg once daily", "None", "Daytime; allergic skin\nrash, hives"],
["**Fexofenadine\n(Allegra)", "2nd gen H1", "120-180 mg once daily", "None", "Non-sedating; urticaria,\nallergic reactions"],
["**Diphenhydramine\n(Benadryl)", "1st gen H1", "25-50 mg every 6-8 hrs", "High", "Nighttime use only;\ninsect bites, hives"],
["**Chlorpheniramine", "1st gen H1", "4 mg every 4-6 hrs", "Moderate", "Low-cost option;\nnight-time itch"],
["**Hydroxyzine", "1st gen H1", "25 mg once-twice daily", "High", "Severe itch, anxiety-\nrelated skin flares"],
]
story.append(build_table(ah_headers, ah_rows,
[3.5*cm, 2.5*cm, 3.5*cm, 2.3*cm, 4.9*cm], alt_color=CORAL))
story.append(Spacer(1, 4))
story.append(tip_box(
"<b>First choice:</b> Cetirizine, Loratadine, or Fexofenadine (2nd generation) - non-drowsy, safe for daytime. "
"For severe urticaria, dose can be increased to 2-4x standard under medical supervision. "
"<b>Avoid 1st generation antihistamines</b> when driving or operating machinery.",
bg=CORAL))
story.append(Spacer(1, 8))
# ════════════════════════════════════════════════════════════════
# SECTION 6 - SKIN CONDITION QUICK GUIDE
# ════════════════════════════════════════════════════════════════
story.append(section_header("6. CONDITION-BASED QUICK GUIDE", "📋", bg=colors.HexColor("#1A6B3C")))
story.append(Spacer(1, 5))
cond_headers = ["Condition", "1st Line Product", "2nd Line", "When to See Doctor"]
cond_rows = [
["**Heat Rash\n(Prickly Heat)", "Calamine lotion + cool bath\nlight clothing", "Hydrocortisone 1% cream +\noral cetirizine", "Rash spreads, fever,\nor infected"],
["**Sunburn", "Aloe vera gel + cool water\nIbuprofen for pain", "After-sun moisturizer +\nPramoxine lotion", "Blistering, large area,\nfever"],
["**Insect Bites", "Ice pack + hydrocortisone\n1% cream", "Oral cetirizine +\ncalamine lotion", "Anaphylaxis signs:\nswelling throat/face"],
["**Sweat-induced\nHives (Urticaria)", "Oral cetirizine or\nloratadine", "Add famotidine (H2 blocker)\n+ montelukast", "Throat/lip swelling,\nwheezing, >6 weeks"],
["**Dry / Dehydrated\nSkin", "Oil-free gel moisturizer\nwith hyaluronic acid", "Ceramide-based cream\ntwice daily", "Cracking, bleeding,\nor infection"],
["**Fungal Rash\n(Tinea versicolor)", "Antifungal shampoo\n(Selenium sulfide 2.5%)", "Clotrimazole 1% cream\n2x daily x 4 weeks", "No improvement in\n4 weeks"],
]
story.append(build_table(cond_headers, cond_rows,
[3.5*cm, 4.5*cm, 4.5*cm, 3.2*cm], alt_color=MINT_GREEN))
story.append(Spacer(1, 8))
# ════════════════════════════════════════════════════════════════
# SECTION 7 - DAILY SUMMER ROUTINE
# ════════════════════════════════════════════════════════════════
story.append(section_header("7. RECOMMENDED DAILY SUMMER SKINCARE ROUTINE", "🌅", bg=SKY_BLUE))
story.append(Spacer(1, 5))
routine_data = [
[Paragraph("<b>Step</b>", TH_STYLE), Paragraph("<b>Morning</b>", TH_STYLE), Paragraph("<b>Evening</b>", TH_STYLE)],
[Paragraph("1", TD_C_STYLE), Paragraph("Gentle cleanser (lukewarm water)", TD_STYLE), Paragraph("Double cleanse: micellar water then gentle cleanser", TD_STYLE)],
[Paragraph("2", TD_C_STYLE), Paragraph("Light toner / hydrating mist (optional)", TD_STYLE), Paragraph("Toner / hydrating mist (optional)", TD_STYLE)],
[Paragraph("3", TD_C_STYLE), Paragraph("Oil-free gel moisturizer", TD_STYLE), Paragraph("Serum: Niacinamide or Vitamin C (not both)", TD_STYLE)],
[Paragraph("4", TD_C_STYLE), Paragraph("<b>Broad-spectrum SPF 30+ sunscreen</b> (last step)", TD_STYLE), Paragraph("Ceramide or HA-based night moisturizer", TD_STYLE)],
[Paragraph("5", TD_C_STYLE), Paragraph("Tinted sunscreen or mineral makeup over SPF", TD_STYLE), Paragraph("Spot treatment for active breakouts if needed", TD_STYLE)],
[Paragraph("Reapply", TD_C_STYLE), Paragraph("Sunscreen every 2 hours outdoors", TD_STYLE), Paragraph("Aloe gel / after-sun lotion if sun-exposed that day", TD_STYLE)],
]
rt = Table(routine_data, colWidths=[2*cm, 8.2*cm, 7.5*cm])
rt.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,0), TABLE_HDR),
("TEXTCOLOR", (0,0),(-1,0), WHITE),
("BACKGROUND", (0,6),(-1,6), SOFT_YELLOW),
("FONTNAME", (0,6),(0,6), "Helvetica-Bold"),
("GRID", (0,0),(-1,-1), 0.3, colors.HexColor("#BBBBBB")),
("TOPPADDING", (0,0),(-1,-1), 5),
("BOTTOMPADDING", (0,0),(-1,-1), 5),
("LEFTPADDING", (0,0),(-1,-1), 7),
("VALIGN", (0,0),(-1,-1), "MIDDLE"),
("ALIGN", (0,0),(0,-1), "CENTER"),
*[("BACKGROUND", (0,i),(-1,i), TABLE_ALT) for i in range(2, 6, 2)],
]))
story.append(rt)
story.append(Spacer(1, 8))
# ════════════════════════════════════════════════════════════════
# SECTION 8 - DO'S AND DON'TS
# ════════════════════════════════════════════════════════════════
story.append(section_header("8. SUMMER SKIN DO'S & DON'TS", "✅", bg=colors.HexColor("#7B2D8B")))
story.append(Spacer(1, 5))
dos = [
"✅ Apply SPF 30+ sunscreen every morning, even on cloudy days",
"✅ Reapply sunscreen every 2 hours when outdoors",
"✅ Wear loose, light, breathable cotton clothing",
"✅ Drink 8-10 glasses of water daily - hydration shows on skin",
"✅ Shower after sweating to prevent sweat-related rashes",
"✅ Use gel-based, oil-free products in humid weather",
"✅ Keep aloe vera gel in the fridge for instant cool relief",
"✅ Wear a wide-brimmed hat and UV-protection sunglasses",
]
donts = [
"❌ Don't use thick, greasy creams in peak summer heat",
"❌ Don't skip sunscreen on overcast / indoor days",
"❌ Don't pop or scratch heat rash or insect bite blisters",
"❌ Don't use hot water for face washing - use lukewarm",
"❌ Don't overuse exfoliants (max 1-2x/week in summer)",
"❌ Don't layer multiple active ingredients without guidance",
"❌ Don't apply steroid creams for more than 7 days OTC",
"❌ Don't ignore signs of anaphylaxis (throat swelling, hives)",
]
dos_paras = [[Paragraph(d, SMALL_STYLE)] for d in dos]
donts_paras = [[Paragraph(d, SMALL_STYLE)] for d in donts]
left_t = Table(dos_paras, colWidths=[8.8*cm])
right_t = Table(donts_paras, colWidths=[8.8*cm])
for t, bg in [(left_t, MINT_GREEN), (right_t, CORAL)]:
t.setStyle(TableStyle([
("BACKGROUND", (0,0),(-1,-1), bg),
("BOX", (0,0),(-1,-1), 0.5, colors.HexColor("#CCCCCC")),
("TOPPADDING", (0,0),(-1,-1), 3),
("BOTTOMPADDING", (0,0),(-1,-1), 3),
("LEFTPADDING", (0,0),(-1,-1), 7),
("RIGHTPADDING", (0,0),(-1,-1), 7),
]))
combined = Table([[left_t, Spacer(0.2*cm,1), right_t]], colWidths=[8.8*cm, 0.2*cm, 8.8*cm])
combined.setStyle(TableStyle([
("VALIGN", (0,0), (-1,-1), "TOP"),
("LEFTPADDING", (0,0),(-1,-1), 0),
("RIGHTPADDING", (0,0),(-1,-1), 0),
("TOPPADDING", (0,0),(-1,-1), 0),
("BOTTOMPADDING", (0,0),(-1,-1), 0),
]))
story.append(combined)
story.append(Spacer(1, 8))
# ════════════════════════════════════════════════════════════════
# FOOTER / DISCLAIMER
# ════════════════════════════════════════════════════════════════
story.append(HRFlowable(width=W, thickness=0.5, color=MID_GREY))
story.append(Spacer(1, 4))
story.append(Paragraph(
"<b>Disclaimer:</b> This quick reference guide is for general educational purposes only. "
"Product recommendations are not endorsements of specific brands. Always consult a licensed pharmacist or "
"dermatologist for personalised medical advice, especially for children, pregnant women, or those with chronic skin conditions. "
"Prescription (Rx) products require a valid prescription from a healthcare provider.",
NOTE_STYLE))
story.append(Spacer(1, 2))
story.append(Paragraph(
"Sources: Harrison's Principles of Internal Medicine 22E (2025) | Fitzpatrick's Dermatology | "
"Rosen's Emergency Medicine | Goldman-Cecil Medicine | Dermatologist-reviewed recommendations 2025-2026",
NOTE_STYLE))
story.append(Spacer(1, 2))
story.append(Paragraph(
"Prepared by: Orris Health AI | June 2026 | For educational use only",
NOTE_STYLE))
# ── Build ────────────────────────────────────────────────────────────────────
doc.build(story)
print(f"PDF created: {OUTPUT}")
cd /home/daytona/workspace/summer-skincare-guide && python create_guide.py 2>&1
ls -lh /home/daytona/workspace/summer-skincare-guide/
Summer Skincare Quick Reference
PDF Document · PDF
| Section | Content |
|---|---|
| 1. Sunscreen | 5 types (mineral, chemical, tinted, SPF moisturizer, lip SPF) with SPF levels, ingredients, frequency |
| 2. Cleansers | Foaming, micellar, gel, cream, salicylic acid - matched to skin type |
| 3. Moisturizers | Oil-free gel, gel-cream, water lotion, after-sun, and body options |
| 4. Anti-Itch & Soothing Products | Calamine, hydrocortisone, aloe vera, menthol, pramoxine - topical relief |
| 5. Oral Antihistamines | Cetirizine, Loratadine, Fexofenadine, Diphenhydramine with doses and sedation levels |
| 6. Condition-Based Guide | Heat rash, sunburn, insect bites, hives, dry skin, fungal rash - what to use |
| 7. Daily Routine | Step-by-step morning and evening routine table |
| 8. Do's & Don'ts | Side-by-side green (do) and red (don't) quick tips |
Search for clinical images of summer skin conditions to add visuals






| Image | Condition | Key Feature | First Treatment |
|---|---|---|---|
| 1 | Polymorphic Light Eruption | Scattered red macules on sun-exposed skin | SPF 50+, antihistamine |
| 2 | Papular PMLE | Fine red papules on chest/arms after sun | SPF 50+, hydrocortisone |
| 3 | Urticaria (Hives) | Large raised wheals, polycyclic pattern | Cetirizine/Loratadine |
| 4 | Contact Dermatitis | Red, dry, scaling palms/hands | Avoid trigger, hydrocortisone |
| 5 | Allergic Rash (child) | Widespread coalescing patches | Oral antihistamine |
| 6 | Miliaria / Heat Rash | Tiny vesicles or red papules | Cool env., calamine lotion |
Source: Fitzpatrick's Dermatology (Volumes 1 & 2) - clinical photographs from the textbook library