2026-04-05 20:52:35 +00:00
<svg xmlns= "http://www.w3.org/2000/svg" width= "850" height= "350" viewBox= "0 0 850 350" >
2026-04-02 14:43:31 +00:00
<defs >
2026-04-05 20:52:35 +00:00
<linearGradient id= "rl-glow" x1= "0%" y1= "0%" x2= "100%" y2= "0%" >
2026-04-02 14:43:31 +00:00
<stop offset= "0%" stop-color= "#06d6a0" stop-opacity= "0" />
<stop offset= "50%" stop-color= "#06d6a0" stop-opacity= "0.12" />
<stop offset= "100%" stop-color= "#06d6a0" stop-opacity= "0" />
</linearGradient>
</defs>
2026-04-05 20:52:35 +00:00
<rect width= "100%" height= "100%" fill= "#0d1117" rx= "8" />
<!-- Title -->
2026-04-02 14:43:31 +00:00
<text x= "425" y= "30" font-family= "'Segoe UI', Arial, sans-serif" font-size= "20" fill= "#06d6a0" text-anchor= "middle" font-weight= "bold" > Report Layer</text>
<text x= "425" y= "50" font-family= "'Segoe UI', Arial, sans-serif" font-size= "13" fill= "#8b949e" text-anchor= "middle" > Build entire Power BI reports from the command line</text>
<!-- Glow line -->
<rect x= "100" y= "60" width= "650" height= "1" fill= "url(#rl-glow)" />
<!-- ============ 4 visual cards with large icons ============ -->
<!-- Card 1: Visuals -->
<rect x= "30" y= "78" width= "185" height= "200" rx= "10" fill= "#161b22" stroke= "#d97757" stroke-width= "1.5" />
<!-- Large bar chart icon -->
<g transform= "translate(62, 95)" >
<rect x= "0" y= "50" width= "20" height= "35" rx= "3" fill= "#d97757" opacity= "0.4" />
<rect x= "28" y= "30" width= "20" height= "55" rx= "3" fill= "#d97757" opacity= "0.6" />
<rect x= "56" y= "10" width= "20" height= "75" rx= "3" fill= "#d97757" opacity= "0.8" />
<rect x= "84" y= "0" width= "20" height= "85" rx= "3" fill= "#d97757" />
<!-- Axis lines -->
<line x1= "-5" y1= "86" x2= "110" y2= "86" stroke= "#d97757" stroke-width= "1" stroke-opacity= "0.3" />
<line x1= "-5" y1= "0" x2= "-5" y2= "86" stroke= "#d97757" stroke-width= "1" stroke-opacity= "0.3" />
2026-04-02 14:21:05 +00:00
</g>
2026-04-02 14:43:31 +00:00
<text x= "122" y= "210" font-family= "'Segoe UI', Arial, sans-serif" font-size= "16" fill= "#d97757" text-anchor= "middle" font-weight= "bold" > 32 Visual Types</text>
<text x= "122" y= "228" font-family= "'Segoe UI', Arial, sans-serif" font-size= "11" fill= "#8b949e" text-anchor= "middle" > Charts, cards, KPIs,</text>
<text x= "122" y= "243" font-family= "'Segoe UI', Arial, sans-serif" font-size= "11" fill= "#8b949e" text-anchor= "middle" > tables, slicers, maps</text>
<text x= "122" y= "265" font-family= "'Courier New', Courier, monospace" font-size= "11" fill= "#58a6ff" text-anchor= "middle" > pbi visual add</text>
<!-- Card 2: Data Binding -->
<rect x= "232" y= "78" width= "185" height= "200" rx= "10" fill= "#161b22" stroke= "#58a6ff" stroke-width= "1.5" />
<!-- Binding icon: table arrow to chart -->
<g transform= "translate(267, 100)" >
<!-- Table icon -->
<rect x= "0" y= "10" width= "40" height= "50" rx= "4" fill= "none" stroke= "#58a6ff" stroke-width= "1.5" />
<line x1= "0" y1= "24" x2= "40" y2= "24" stroke= "#58a6ff" stroke-width= "1" stroke-opacity= "0.5" />
<line x1= "0" y1= "38" x2= "40" y2= "38" stroke= "#58a6ff" stroke-width= "1" stroke-opacity= "0.5" />
<line x1= "16" y1= "10" x2= "16" y2= "60" stroke= "#58a6ff" stroke-width= "1" stroke-opacity= "0.3" />
<text x= "20" y= "8" font-family= "'Segoe UI', Arial, sans-serif" font-size= "8" fill= "#58a6ff" text-anchor= "middle" > Table[Col]</text>
<!-- Arrow -->
<line x1= "48" y1= "35" x2= "68" y2= "35" stroke= "#F2C811" stroke-width= "2" stroke-dasharray= "3,2" />
<polygon points= "72,35 66,30 66,40" fill= "#F2C811" />
<!-- Chart icon -->
<rect x= "76" y= "10" width= "40" height= "50" rx= "4" fill= "none" stroke= "#d97757" stroke-width= "1.5" />
<rect x= "82" y= "36" width= "8" height= "18" rx= "1" fill= "#d97757" opacity= "0.5" />
<rect x= "92" y= "26" width= "8" height= "28" rx= "1" fill= "#d97757" opacity= "0.7" />
<rect x= "102" y= "18" width= "8" height= "36" rx= "1" fill= "#d97757" />
2026-04-02 14:21:05 +00:00
</g>
2026-04-02 14:43:31 +00:00
<text x= "324" y= "210" font-family= "'Segoe UI', Arial, sans-serif" font-size= "16" fill= "#58a6ff" text-anchor= "middle" font-weight= "bold" > Data Binding</text>
<text x= "324" y= "228" font-family= "'Segoe UI', Arial, sans-serif" font-size= "11" fill= "#8b949e" text-anchor= "middle" > Connect model fields</text>
<text x= "324" y= "243" font-family= "'Segoe UI', Arial, sans-serif" font-size= "11" fill= "#8b949e" text-anchor= "middle" > to visual roles</text>
<text x= "324" y= "265" font-family= "'Courier New', Courier, monospace" font-size= "11" fill= "#58a6ff" text-anchor= "middle" > pbi visual bind</text>
<!-- Card 3: Themes -->
<rect x= "434" y= "78" width= "185" height= "200" rx= "10" fill= "#161b22" stroke= "#F2C811" stroke-width= "1.5" />
<!-- Large colour palette icon -->
<g transform= "translate(472, 100)" >
<!-- Palette shape -->
<ellipse cx= "55" cy= "35" rx= "50" ry= "35" fill= "none" stroke= "#F2C811" stroke-width= "1.2" stroke-opacity= "0.3" />
<!-- Colour dots -->
<circle cx= "25" cy= "20" r= "10" fill= "#0078D4" />
<circle cx= "50" cy= "14" r= "10" fill= "#00BCF2" />
<circle cx= "75" cy= "18" r= "10" fill= "#FFB900" />
<circle cx= "85" cy= "40" r= "10" fill= "#D83B01" />
<circle cx= "68" cy= "52" r= "10" fill= "#8661C5" />
<circle cx= "38" cy= "52" r= "10" fill= "#00B294" />
2026-04-02 14:21:05 +00:00
</g>
2026-04-02 14:43:31 +00:00
<text x= "526" y= "210" font-family= "'Segoe UI', Arial, sans-serif" font-size= "16" fill= "#F2C811" text-anchor= "middle" font-weight= "bold" > Themes</text>
<text x= "526" y= "228" font-family= "'Segoe UI', Arial, sans-serif" font-size= "11" fill= "#8b949e" text-anchor= "middle" > Brand colours, formatting</text>
<text x= "526" y= "243" font-family= "'Segoe UI', Arial, sans-serif" font-size= "11" fill= "#8b949e" text-anchor= "middle" > rules, diff before apply</text>
<text x= "526" y= "265" font-family= "'Courier New', Courier, monospace" font-size= "11" fill= "#58a6ff" text-anchor= "middle" > pbi report set-theme</text>
<!-- Card 4: Filters -->
<rect x= "636" y= "78" width= "185" height= "200" rx= "10" fill= "#161b22" stroke= "#ff6b6b" stroke-width= "1.5" />
<!-- Large funnel icon -->
<g transform= "translate(680, 96)" >
<polygon points= "0,0 90,0 68,28 22,28" fill= "none" stroke= "#ff6b6b" stroke-width= "1.8" opacity= "0.4" />
<polygon points= "22,28 68,28 58,50 32,50" fill= "none" stroke= "#ff6b6b" stroke-width= "1.8" opacity= "0.7" />
<polygon points= "32,50 58,50 52,68 38,68" fill= "none" stroke= "#ff6b6b" stroke-width= "1.8" />
<!-- Data dots being filtered -->
<circle cx= "15" cy= "-8" r= "3" fill= "#ff6b6b" opacity= "0.3" />
<circle cx= "30" cy= "-10" r= "3" fill= "#ff6b6b" opacity= "0.4" />
<circle cx= "45" cy= "-7" r= "3" fill= "#ff6b6b" opacity= "0.5" />
<circle cx= "60" cy= "-9" r= "3" fill= "#ff6b6b" opacity= "0.4" />
<circle cx= "75" cy= "-8" r= "3" fill= "#ff6b6b" opacity= "0.3" />
<!-- Output dot -->
<circle cx= "45" cy= "78" r= "4" fill= "#06d6a0" />
</g>
2026-04-02 14:21:05 +00:00
2026-04-02 14:43:31 +00:00
<text x= "728" y= "210" font-family= "'Segoe UI', Arial, sans-serif" font-size= "16" fill= "#ff6b6b" text-anchor= "middle" font-weight= "bold" > Filters</text>
<text x= "728" y= "228" font-family= "'Segoe UI', Arial, sans-serif" font-size= "11" fill= "#8b949e" text-anchor= "middle" > TopN, date range,</text>
<text x= "728" y= "243" font-family= "'Segoe UI', Arial, sans-serif" font-size= "11" fill= "#8b949e" text-anchor= "middle" > categorical filters</text>
<text x= "728" y= "265" font-family= "'Courier New', Courier, monospace" font-size= "11" fill= "#58a6ff" text-anchor= "middle" > pbi filters add-topn</text>
2026-04-02 14:21:05 +00:00
2026-04-02 14:43:31 +00:00
<!-- ============ Bottom bar: key capabilities ============ -->
<rect x= "30" y= "295" width= "790" height= "40" rx= "8" fill= "#161b22" stroke= "#06d6a0" stroke-width= "1" stroke-opacity= "0.3" />
2026-04-02 14:21:05 +00:00
2026-04-02 14:43:31 +00:00
<circle cx= "70" cy= "315" r= "4" fill= "#06d6a0" />
<text x= "82" y= "319" font-family= "'Segoe UI', Arial, sans-serif" font-size= "12" fill= "#e6edf3" > No connection needed</text>
2026-04-02 14:21:05 +00:00
2026-04-02 14:43:31 +00:00
<circle cx= "260" cy= "315" r= "4" fill= "#06d6a0" />
<text x= "272" y= "319" font-family= "'Segoe UI', Arial, sans-serif" font-size= "12" fill= "#e6edf3" > Auto-syncs with Desktop</text>
2026-04-02 14:21:05 +00:00
2026-04-02 14:43:31 +00:00
<circle cx= "470" cy= "315" r= "4" fill= "#06d6a0" />
<text x= "482" y= "319" font-family= "'Segoe UI', Arial, sans-serif" font-size= "12" fill= "#e6edf3" > Bulk operations</text>
2026-04-02 14:21:05 +00:00
2026-04-02 14:43:31 +00:00
<circle cx= "630" cy= "315" r= "4" fill= "#06d6a0" />
<text x= "642" y= "319" font-family= "'Segoe UI', Arial, sans-serif" font-size= "12" fill= "#e6edf3" > Git-friendly PBIR</text>
2026-04-05 20:52:35 +00:00
</svg>