Skip to main content

power-bi-design-vault-dashboards

Expert skill for using Power BI Design Vault templates, DAX patterns, dashboard blueprints, and visual design systems for business intelligence projects.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
reason-machines/design-skills
آخر نشاط في المصدر
٣٠ يونيو ٢٠٢٦ في ١٥:٥١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
power-bi-design-vault-dashboards
description
Expert skill for using Power BI Design Vault templates, DAX patterns, dashboard blueprints, and visual design systems for business intelligence projects.
triggers
["help me customize a Power BI dashboard template","how do I apply a theme from the design vault","show me DAX patterns for dashboard measures","import a sample dataset into Power BI","adapt a retail analytics dashboard blueprint","use Power BI responsive layout templates","implement accessibility-first color palettes in dashboards","create a narrative dashboard from design vault"]
# Power BI Design Vault Dashboards > Skill by [ara.so](https://ara.so) — Design Skills collection Expert guidance for leveraging the Power-Narrative Design Studio repository: a curated collection of Power BI dashboard templates, design systems, DAX libraries, and visual intelligence frameworks for modern business analytics. ## What This Project Provides The Power BI Design Vault is a comprehensive library of: - **Pre-built `.pbix` dashboard templates** for retail, HR, finance, and supply chain scenarios - **Reusable JSON theme files** with accessibility-compliant color palettes - **Sample datasets** in Parquet and CSV formats with synthetic business data - **Annotated DAX measure libraries** with inline documentation - **SVG icon sets and visual assets** optimized for Power BI theming - **Responsive layout architectures** following 12-column grid systems - **Design pattern documentation** for visual hierarchy and cognitive accessibility Primary use case: Accelerate Power BI dashboard development by adapting pre-built blueprints rather than building from scratch. ## Installation and Setup ### Prerequisites - Power BI Desktop (October 2025 release or later) - Basic familiarity with Power BI data modeling and DAX - Git or GitHub Desktop for cloning the repository ### Clone the Repository ```bash # Clone the repository to your local machine git clone https://github.com/Lithiumgreentek/power-bi-design-vault.git cd power-bi-design-vault ``` ### Repository Structure ``` power-bi-design-vault/ ├── dashboards/ │ ├── retail-sales-opportunity/ │ │ ├── README.md │ │ ├── retail-sales.pbix │ │ └── assets/ │ ├── hr-attrition-forecast/ │ └── supply-chain-bottleneck/ ├── datasets/ │ ├── sample-retail-clean.parquet │ └── finance-trials.csv ├── themes/ │ ├── dark-enterprise.json │ └── pastel-minimal.json ├── visual-assets/ │ ├── icons/ │ └── background-vectors/ └── documentation/ ├── design-principles.md └── data-modeling-guide.pdf ``` ## Working with Dashboard Templates ### Opening a Dashboard Template 1. Navigate to the specific dashboard folder (e.g., `dashboards/retail-sales-opportunity/`) 2. Open the `.pbix` file in Power BI Desktop 3. Review the model view to understand pre-configured relationships 4. Check the "DAX Dictionary" page for measure explanations ### Connecting Your Own Data **Replace sample dataset with your data source:** ```powerquery // Power Query M code to replace data source let Source = Csv.Document( File.Contents("C:\YourPath\your-data.csv"), [Delimiter=",", Columns=10, Encoding=1252, QuoteStyle=QuoteStyle.None] ), PromotedHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars=true]), ChangedTypes = Table.TransformColumnTypes(PromotedHeaders, { {"Date", type date}, {"Sales", type number}, {"Product", type text} }) in ChangedTypes ``` **Using environment variables for data source paths:** In Power Query, create a parameter: ```powerquery // Create a parameter for flexible data source paths DataSourcePath = Text.From(Excel.CurrentWorkbook(){[Name="DataPath"]}[Content]{0}[Column1]) ``` Then reference `DataSourcePath` in your `File.Contents()` calls. ### Applying Theme Files **Import a JSON theme:** 1. In Power BI Desktop, go to **View** → **Themes** → **Browse for themes** 2. Navigate to `themes/` folder 3. Select `dark-enterprise.json` or `pastel-minimal.json` 4. Click **Open** **Customize theme colors programmatically:** ```json { "name": "Custom Corporate Theme", "dataColors": [ "#1F77B4", "#FF7F0E", "#2CA02C", "#D62728", "#9467BD" ], "background": "#FFFFFF", "foreground": "#333333", "tableAccent": "#1F77B4", "good": "#2CA02C", "neutral": "#FFC107", "bad": "#D62728", "textClasses": { "callout": { "fontSize": 45, "fontFace": "Segoe UI", "color": "#333333" }, "title": { "fontSize": 14, "fontFace": "Segoe UI Semibold", "color": "#666666" } } } ``` Save this as `custom-theme.json` and import via the same process. ## DAX Patterns from the Vault ### Dynamic Measure Titles ```dax // Dynamic title that changes based on slicer selection Dynamic Title = VAR SelectedPeriod = SELECTEDVALUE('Calendar'[Period], "All Periods") VAR SelectedRegion = SELECTEDVALUE('Geography'[Region], "All Regions") RETURN "Sales Performance - " & SelectedPeriod & " | " & SelectedRegion ``` ### Parameter-Driven Measures ```dax // Toggle between different metrics using a parameter table Selected Metric = SWITCH( SELECTEDVALUE('MetricSelector'[Metric]), "Revenue", [Total Revenue], "Profit", [Total Profit], "Units", [Total Units Sold], [Total Revenue] // Default ) ``` ### Time Intelligence with Fiscal Calendar ```dax // Year-to-date calculation respecting fiscal year starting in April Sales YTD (Fiscal) = CALCULATE( [Total Sales], DATESYTD( 'Calendar'[Date], "3/31" // Fiscal year ends March 31 ) ) ``` ### Previous Period Comparison ```dax // Sales vs. previous period with error handling Sales vs Previous Period = VAR CurrentSales = [Total Sales] VAR PreviousSales = CALCULATE( [Total Sales], DATEADD('Calendar'[Date], -1, MONTH) ) VAR PercentChange = IF( ISBLANK(PreviousSales) || PreviousSales = 0, BLANK(), DIVIDE(CurrentSales - PreviousSales, PreviousSales) ) RETURN PercentChange ``` ### Custom Tooltip Measure ```dax // Rich tooltip text with conditional formatting Tooltip Text = VAR ProductName = SELECTEDVALUE('Product'[Name]) VAR Sales = [Total Sales] VAR Target = [Sales Target] VAR Achievement = DIVIDE(Sales, Target, 0) VAR PerformanceLabel = SWITCH( TRUE(), Achievement >= 1.1, "Exceeding", Achievement >= 1.0, "On Target", Achievement >= 0.9, "Near Target", "Below Target" ) RETURN ProductName & UNICHAR(10) & "Sales: " & FORMAT(Sales, "$#,##0") & UNICHAR(10) & "Target: " & FORMAT(Target, "$#,##0") & UNICHAR(10) & "Status: " & PerformanceLabel ``` ### Rank with Tie Handling ```dax // Product rank by sales with ties resolved alphabetically Product Rank = RANKX( ALL('Product'[Name]), [Total Sales] + (DIVIDE(1, UNICODE('Product'[Name]) + 1000000)), , DESC, DENSE ) ``` ## Responsive Layout Best Practices ### Grid System Implementation When adapting templates, maintain the 12-column grid structure: - **Header section**: 12 columns × 2 rows (fixed) - **KPI cards**: 3 columns each × 2 rows (4 cards per row) - **Main chart area**: 8 columns × 6 rows - **Filter panel**: 4 columns × 6 rows (right sidebar) - **Footer/details**: 12 columns × 1 row ### Mobile Layout Conversion For mobile views, the vault templates use this pattern: 1. Stack KPI cards vertically (12 columns × 2 rows each) 2. Collapse filter panel into dropdown slicers 3. Simplify charts (e.g., clustered column → simple bar) 4. Remove decorative visual elements **Bookmark navigation for mobile:** Create bookmarks for: - Overview (KPIs only) - Trend Analysis (time series chart) - Detail View (table with drill-through) ## Dataset Integration Patterns ### Loading Parquet Files ```powerquery // Load Parquet file from datasets folder let Source = Parquet.Document( File.Contents("datasets/sample-retail-clean.parquet") ), Navigation = Source{[Name="data"]}[Data] in Navigation ``` ### CSV Import with Type Inference ```powerquery // Import CSV with automatic type detection let Source = Csv.Document( File.Contents("datasets/finance-trials.csv"), [Delimiter=",", Encoding=65001, QuoteStyle=QuoteStyle.Csv] ), PromotedHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars=true]), DetectedTypes = Table.TransformColumnTypes( PromotedHeaders, List.Zip({ Table.ColumnNames(PromotedHeaders), List.Transform( Table.ColumnNames(PromotedHeaders), each try Table.Schema(PromotedHeaders){[Name=_]}[TypeName] otherwise "text" ) }) ) in DetectedTypes ``` ### Multilingual Field Handling ```dax // Display measure value with locale-specific formatting Localized Sales = VAR Sales = [Total Sales] VAR CurrencySymbol = SELECTEDVALUE('Locale'[currency_symbol], "$") VAR DecimalSeparator = SELECTEDVALUE('Locale'[decimal_separator], ".") RETURN CurrencySymbol & FORMAT(Sales, "#,##0" & DecimalSeparator & "00") ``` ## Visual Asset Integration ### Using SVG Icons **Import SVG as image:** 1. Insert → Image 2. Browse to `visual-assets/icons/` 3. Select appropriate icon (e.g., `trending-up.svg`) 4. Set image fit to "Fit" (not "Fill") 5. Use conditional formatting to swap icons based on measure values **Dynamic icon selection with conditional formatting:** Create a measure that returns image file paths: ```dax Performance Icon URL = VAR Performance = [Sales vs Target %] VAR IconPath = "https://raw.githubusercontent.com/Lithiumgreentek/power-bi-design-vault/main/visual-assets/icons/" RETURN SWITCH( TRUE(), Performance >= 1.1, IconPath & "trending-up.svg", Performance >= 0.9, IconPath & "stable.svg", IconPath & "trending-down.svg" ) ``` Apply this measure to an image visual's **Image URL** field. ### Background Vector Integration For dashboard backgrounds: 1. Canvas Settings → Canvas background → Image 2. Browse to `visual-assets/background-vectors/` 3. Set transparency to 95-98% for subtle effect 4. Use "Fit" sizing to avoid distortion ## Common Customization Workflows ### Adapting Retail Template for Different Industry **Scenario: Convert retail dashboard to healthcare metrics** 1. **Replace dataset:** - Swap `sample-retail-clean.parquet` with patient admission data - Maintain similar schema (Date, Category, Metrics) 2. **Rename measures:** - `Total Sales` → `Total Admissions` - `Average Transaction` → `Average Length of Stay` 3. **Update visuals:** - Product hierarchy → Department/Condition hierarchy - Regional map → Hospital campus map 4. **Adjust color palette:** - Apply `pastel-minimal.json` theme - Change accent colors to healthcare-friendly blues/greens ### Creating a Drill-Through Page ```dax // Measure to enable drill-through only when single item selected Enable Drillthrough = IF( HASONEVALUE('Product'[Name]), 1, BLANK() ) ``` Configure drill-through in Power BI: 1. Create new report page (e.g., "Product Detail") 2. Add `Product[Name]` to drill-through filters 3. Add back button: Insert → Button → Back 4. Use `Enable Drillthrough` measure in visual-level filter ### Implementing Bookmarks for Narrative Flow **Create a guided narrative:** 1. **Bookmark 1: Executive Summary** - Show only KPI cards and trend chart - Hide detail tables and slicers 2. **Bookmark 2: Regional Breakdown** - Show map and regional bar chart - Display region slicer 3. **Bookmark 3: Product Deep Dive** - Show product matrix and decomposition tree - Display product category slicer Add navigation buttons: - Insert → Button → Blank - Action → Type: Bookmark → Select corresponding bookmark - Label buttons "Overview" → "Regions" → "Products" ## Troubleshooting ### Theme Not Applying to All Visuals **Issue:** Custom theme colors don't affect certain chart types **Solution:** - Ensure theme JSON includes all visual types in `visualStyles` section - Manually set colors for custom visuals (they may not support theming) - Check Power BI Desktop version supports theme features used ### DAX Measures Return BLANK() Unexpectedly **Issue:** Measures work in some visuals but return blank in others **Checklist:** 1. Verify filter context isn't removing all rows: Use `COUNTROWS(ALL('Table'))` 2. Check for division by zero: Wrap in `DIVIDE(numerator, denominator, 0)` 3. Ensure relationships are bidirectional if needed (use sparingly) 4. Test measure in table visual with all dimensions to debug ### Dataset Path Broken After Moving Files **Issue:** Data source paths hardcoded to specific machine **Solution:** ```powerquery // Use relative path from .pbix location let CurrentFileFolder = Text.BeforeDelimiter( Text.From(Excel.CurrentWorkbook(){0}[Content]), Text.From(Excel.CurrentWorkbook(){0}[Name]) ), DatasetPath = CurrentFileFolder & "datasets\sample-retail-clean.parquet", Source = Parquet.Document(File.Contents(DatasetPath)) in Source ``` Or use parameter with environment variable: ```bash # Set environment variable (Windows) setx POWERBI_DATA_PATH "C:\Projects\power-bi-design-vault\datasets" ``` Then reference in Power Query via external parameter configuration. ### Performance Issues with Large Datasets **Optimization strategies:** 1. **Use Import mode for small datasets (<1GB)** 2. **Switch to DirectQuery for large SQL sources** 3. **Aggregate data in Power Query:** ```powerquery // Pre-aggregate data before loading let Source = Csv.Document(File.Contents("large-dataset.csv")), GroupedData = Table.Group( Source,
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub