This document provides a detailed analysis of all 124 LESS files in the LogicAppsUX repository that require migration to Fluent UI v9's makeStyles system. The analysis includes complexity assessment, usage patterns, and migration task prioritization.
Progress Update: 12 components have been successfully migrated (9.7% complete)
- ✅ peek.less (6 lines)
- ✅ error.less (29 lines)
- ✅ tip.less (33 lines)
- ✅ texteditor.less (48 lines)
- ✅ nodeCollapseToggle.less (20 lines)
- ✅ overview.less (30 lines) - apps/vs-code-react
- ✅ export.less (120 lines) - apps/vs-code-react → exportStyles.ts
- ✅ reviewList styles.less (32 lines) - REMOVED ENTIRELY - apps/vs-code-react → reviewListStyles.ts (PR #7907)
- ✅ VS Code styles.less (5 lines) - REMOVED ENTIRELY - apps/vs-code-react → inline HTML styles
- ✅ SVG icon migration (3 files removed) - apps/vs-code-react
- ✅ nodeSearchPanel - NEW makeStyles implementation with Tabster focus management (branch: ccastrotrejo/panelSearchMigration)
- ✅ Fluent UI v8 to v9 Component Migrations:
- SearchableDropdown: Complete migration with proper key handling and Fluent UI v9 patterns
- ShimmeredDetailsList → Table: Native Fluent UI v9 table with column resizing
- List component: Migrated to native React implementation
- Export workflows: Enhanced table functionality and filtering
- Total LESS files: 124 files
- Total lines of CSS: ~10,210 lines
- Distribution across packages: 6 packages
- Main aggregator:
/libs/designer-ui/src/lib/styles.less(imports 71 files) - Largest files: card.less (512 lines), chatbot.less (459 lines), htmleditor.less (374 lines)
Core Infrastructure Files
-
variables.less(151 lines) - CRITICAL - Variable definitions used throughout -
mixins.less(9 lines) - CRITICAL - LESS mixins for reusable patterns -
common.less(39 lines) - HIGH - Common utility classes -
themes.less(42 lines) - HIGH - Theme-specific overrides -
fabric.less(15 lines) - HIGH - Fluent UI integration -
styles.less(253 lines) - CRITICAL - Main aggregator file
Card Components (High Complexity)
-
card/card.less(512 lines) - COMPLEX - Main card component with extensive panel mode styles -
card/cardv2.less(64 lines) - MEDIUM - V2 card variant -
card/parameters/parameters.less(103 lines) - MEDIUM - Parameter editor styles -
card/subgraphCard/subgraphCard.less(81 lines) - MEDIUM - Subgraph card variant -
card/config/config.less(125 lines) - MEDIUM - Card configuration styles -
card/function/function.less(55 lines) - MEDIUM - Function card styles -
card/scopeCard/scopeCard.less(139 lines) - MEDIUM - Scope card styles -
card/collapsedCard/collapsedCard.less(53 lines) - MEDIUM - Collapsed card state -
card/graphContainer/graphContainer.less(22 lines) - SIMPLE - Graph container -
card/connectiontypeselector/connectiontypeselector.less(10 lines) - SIMPLE - Connection selector -
card/batch.less(12 lines) - SIMPLE - Batch processing styles
Panel Components (Medium Complexity)
-
panel/panel.less(301 lines) - COMPLEX - Main panel component -
panel/recommendationpanel/recommendation.less(186 lines) - MEDIUM - Recommendation panel -
panel/recommendationpanel/operationGroupDetails/operationGroupDetails.less(62 lines) - MEDIUM -
panel/recommendationpanel/operationGroupDetails/operationGroupHeader/operationGroupHeader.less(60 lines) - MEDIUM -
panel/recommendationpanel/operationSearchCard/operationSearchCard.less(107 lines) - MEDIUM -
panel/recommendationpanel/operationSearchGroup/operationSearchGroup.less(41 lines) - SIMPLE -
panel/recommendationpanel/operationSearchHeader/operationSearchHeader.less(57 lines) - SIMPLE
Editor Components (High Complexity)
-
html/htmleditor.less(374 lines) - COMPLEX - HTML editor with extensive formatting -
editor/base/editor.less(144 lines) - MEDIUM - Base editor styles -
editor/base/themes/editorTheme.less(259 lines) - COMPLEX - Editor theme definitions -
editor/base/tokenpickerbutton.less(100 lines) - MEDIUM - Token picker button -
editor/initializevariable/variableEditor.less(37 lines) - SIMPLE - Variable editor -
editor/monaco/monaco.less(6 lines) - SIMPLE - Monaco editor integration -
editor/shared/editorCollapseToggle.less(30 lines) - SIMPLE - Editor collapse toggle -
expressioneditor/expressioneditor.less(67 lines) - MEDIUM - Expression editor -
code/codeeditor.less(35 lines) - SIMPLE - Code editor base
Token & Picker Components
-
tokenpicker/tokenpicker.less(357 lines) - COMPLEX - Token picker with search and filtering -
token/token.less(65 lines) - MEDIUM - Token display styles -
picker/picker.less(99 lines) - MEDIUM - Generic picker component
Form Components
-
arrayeditor/arrayeditor.less(211 lines) - COMPLEX - Array editor with dynamic rows -
dictionary/dictionaryeditor.less(141 lines) - MEDIUM - Dictionary editor -
querybuilder/querybuilder.less(218 lines) - COMPLEX - Query builder interface -
schemaeditor/schemaeditor.less(29 lines) - SIMPLE - Schema editor -
combobox/combobox.less(97 lines) - MEDIUM - Custom combobox -
searchabledropdown/searchabledropdown.less(7 lines) - SIMPLE - Searchable dropdown -
searchabledropdownWithAddAll/searchabledropdownWithAddAll.less(7 lines) - SIMPLE - Enhanced dropdown -
recurrence/recurrence.less(46 lines) - SIMPLE - Recurrence pattern editor -
datetimeeditor/datetimeeditor.less(18 lines) - SIMPLE - Date/time editor -
workflowparameters/workflowparameters.less(94 lines) - MEDIUM - Workflow parameters
UI Components
-
apicards.less(268 lines) - COMPLEX - API cards with connector display -
chatbot/chatbot.less(459 lines) - COMPLEX - Chatbot interface -
authentication/authentication.less(111 lines) - MEDIUM - Authentication forms -
azureResourcePicker/azureResourcePicker.less(102 lines) - MEDIUM - Azure resource picker -
connectorsummarycard/connectorsummarycard.less(115 lines) - MEDIUM - Connector summary -
monitoring/monitoring.less(166 lines) - MEDIUM - Monitoring interface -
monitoring/statuspill/statuspill.less(55 lines) - SIMPLE - Status indicators -
monitoring/statuspill/statuspill.story.less(3 lines) - SIMPLE - Storybook styles -
settings/settings.less(208 lines) - COMPLEX - Settings panel -
templates/templates.less(173 lines) - MEDIUM - Template gallery -
errorsPanel/errorsPanel.less(172 lines) - MEDIUM - Error display panel
Small/Utility Components
-
actionbuttonv2/actionbuttonv2.less(63 lines) - SIMPLE - Action button V2 -
about/about.less(40 lines) - SIMPLE - About dialog -
colorizer/colorizer.less(60 lines) - SIMPLE - Color picker -
connectioncontainer.less(11 lines) - SIMPLE - Connection container -
configItem/connectiongatewaypicker.less(14 lines) - SIMPLE - Gateway picker -
copilotGetStarted/copilot.less(142 lines) - MEDIUM - Copilot onboarding -
copyinputcontrol/copyinputcontrol.less(70 lines) - SIMPLE - Copy input control -
dynamicallyaddedparameter/dynamicallyaddedparameter.less(77 lines) - MEDIUM - Dynamic parameters -
dynamicallyaddedparameter/plugins/stringstack.less(48 lines) - SIMPLE - String stack plugin -
error.less(29 lines) - SIMPLE - Error display - ✅ COMPLETED -
floatingactionmenu/_floatingactionmenu.less(119 lines) - MEDIUM - Floating action menu -
flyout/flyout.less(50 lines) - SIMPLE - Flyout panel -
modaldialog/modaldialog.less(30 lines) - SIMPLE - Modal dialog -
modals/styles.less(3 lines) - SIMPLE - Modal styles -
nodeCollapseToggle/nodeCollapseToggle.less(20 lines) - SIMPLE - Node collapse toggle - ✅ COMPLETED -
overview/overview.less(30 lines) - SIMPLE - Overview component - ✅ COMPLETED -
pager/pager.less(83 lines) - MEDIUM - Pagination component -
peek/peek.less(6 lines) - SIMPLE - Peek preview - ✅ COMPLETED -
selector/listitem.less(60 lines) - SIMPLE - List item selector -
staticResult/staticResult.less(145 lines) - MEDIUM - Static result display -
texteditor.less(48 lines) - SIMPLE - Text editor base - ✅ COMPLETED -
tip/tip.less(33 lines) - SIMPLE - Tooltip/tip component - ✅ COMPLETED -
agentinstruction/agentinstruction.less(21 lines) - SIMPLE - Agent instruction editor
Unit Testing Components
-
unitTesting/assertionsPanel/assertions.less(72 lines) - MEDIUM - Assertions panel -
unitTesting/conditionExpression/conditionExpression.less(18 lines) - SIMPLE - Condition expression -
unitTesting/mockStatusIcon/mockStatusIcon.less(6 lines) - SIMPLE - Mock status icon -
unitTesting/outputMocks/outputMocks.less(5 lines) - SIMPLE - Output mocks
Main Aggregator
-
ui/styles.less(242 lines) - COMPLEX - Main designer styles aggregator -
ui/logicapps.less(2 lines) - SIMPLE - Designer-specific imports
Panel Components
-
ui/panel/connectionsPanel/connectionsPanel.less(34 lines) - SIMPLE - Connections panel -
ui/panel/connectionsPanel/allConnections/allConnections.less(81 lines) - MEDIUM - All connections view -
ui/panel/connectionsPanel/selectConnection/selectConnection.less(36 lines) - SIMPLE - Connection selector -
ui/panel/connectionsPanel/createConnection/createConnection.less(53 lines) - SIMPLE - Connection creation -
ui/panel/runHistoryPanel/runHistoryPanel.less(27 lines) - SIMPLE - Run history panel -
ui/panel/templatePanel/panel.less(293 lines) - COMPLEX - Template panel
Settings & UI Components
-
ui/settings/sections/runafterconfiguration/runafterconfiguration.less(90 lines) - MEDIUM - Run after configuration -
ui/connections/runAfterIndicator/styles.less(75 lines) - MEDIUM - Run after indicator -
ui/templates/styles.less(203 lines) - COMPLEX - Template styles -
ui/templates/cards/templateCard.less(159 lines) - MEDIUM - Template card
Variables
-
ui/less/logicapps/variables.less(22 lines) - SIMPLE - Designer variables -
ui/less/processsimple/variables.less(19 lines) - SIMPLE - Process simple variables
Legacy Data Mapper V1
-
lib/styles.less(3 lines) - SIMPLE - Main styles aggregator -
lib/components/style.less(9 lines) - SIMPLE - Component styles -
lib/components/configPanel/style.less(27 lines) - SIMPLE - Config panel -
../../data-mapper-v2/src/components/schema/style.less(27 lines) - SIMPLE - Schema component (Note: V2 is already migrated)
Main Application Styles
-
styles.less(5 lines) - SIMPLE - Root styles - ✅ COMPLETED → REMOVED (inline HTML styles) -
app/dataMapper/app.less(14 lines) - SIMPLE - Data mapper app -
app/designer/app.less(11 lines) - SIMPLE - Designer app -
app/export/export.less(120 lines) - COMPLEX - Export functionality - ✅ COMPLETED → exportStyles.ts -
app/overview/overview.less(4 lines) - SIMPLE - Overview app - ✅ COMPLETED → overviewStyles.ts -
app/unitTest/unitTest.less(25 lines) - SIMPLE - Unit test app
Component Styles
-
app/components/reviewList/styles.less(32 lines) - SIMPLE - Review list component - ✅ COMPLETED → reviewListStyles.ts (PR #7907)- COMPLEX MIGRATION: Complete component architecture change
- GroupedList/DetailsRow → Tree component (Fluent UI v8 → v9)
- Shimmer → Skeleton components
- File completely removed, not just migrated
-
app/components/searchableDropdown/styles.less(11 lines) - SIMPLE - Searchable dropdown
Development Environment
-
designer/app/LocalDesigner/pseudoCommandBar.less(27 lines) - SIMPLE - Pseudo command bar -
designer/components/settings_box.module.less(83 lines) - MEDIUM - Settings box (CSS modules)
Must migrate first - other components depend on these
libs/designer-ui/src/lib/variables.less(151 lines) - All variableslibs/designer-ui/src/lib/mixins.less(9 lines) - LESS mixinslibs/designer-ui/src/lib/common.less(39 lines) - Utility classeslibs/designer-ui/src/lib/themes.less(42 lines) - Theme definitionslibs/designer-ui/src/lib/fabric.less(15 lines) - Fluent UI integrationlibs/designer-ui/src/lib/styles.less(253 lines) - Main aggregator
Most frequently used components
libs/designer-ui/src/lib/card/card.less(512 lines) - COMPLEXlibs/designer-ui/src/lib/panel/panel.less(301 lines) - COMPLEXlibs/designer-ui/src/lib/tokenpicker/tokenpicker.less(357 lines) - COMPLEXlibs/designer-ui/src/lib/html/htmleditor.less(374 lines) - COMPLEXlibs/designer-ui/src/lib/chatbot/chatbot.less(459 lines) - COMPLEXlibs/designer-ui/src/lib/apicards.less(268 lines) - COMPLEX
libs/designer-ui/src/lib/editor/base/themes/editorTheme.less(259 lines) - COMPLEXlibs/designer-ui/src/lib/arrayeditor/arrayeditor.less(211 lines) - COMPLEXlibs/designer-ui/src/lib/querybuilder/querybuilder.less(218 lines) - COMPLEXlibs/designer-ui/src/lib/settings/settings.less(208 lines) - COMPLEX- All remaining editor components (8 files)
- All remaining card variants (9 files)
- Panel subcomponents (7 files)
- Form components (remaining 12 files)
- Monitoring components (3 files)
- Unit testing components (4 files)
- Small utility components (20 files)
- VS Code React app (9 files) - REDUCED: styles.less file completely removed
- Standalone app (2 files)
- Designer library (14 files)
- Data mapper legacy (4 files)
- Few CSS properties
- No complex nesting
- No media queries
- Minimal theme overrides
- Examples: connectiontypeselector.less, peek.less, modals/styles.less
- Some nesting and pseudo-selectors
- Basic responsive behavior
- Theme-aware styles
- Moderate variable usage
- Examples: cardv2.less, combobox.less, monitoring.less
- Deep nesting structures
- Extensive theme overrides
- Complex responsive behavior
- Heavy use of variables and mixins
- Animation/transition logic
- Examples: card.less, chatbot.less, htmleditor.less, tokenpicker.less
- Direct imports: 21 files import LESS directly
- Component-level imports: Each component imports its own styles
- Aggregator imports: Main style files import multiple LESS files
- Module imports: Some files use CSS modules (.module.less)
libs/designer/src/index.ts→ui/styles.less(main designer export)libs/data-mapper/src/index.ts→lib/styles.less(data mapper export)libs/designer-ui/src/lib/fabric.ts→fabric.less(Fluent UI integration)- Component files → component-specific LESS files
- 70+ files reference
variables.less - 15+ files reference
themes.less - 8+ files reference
mixins.less
card.lessimports 10 other LESS filesstyles.lessimports 71 LESS filesrecommendation.lessimports 4 sub-panel files
- Create design tokens from variables.less
- Convert mixins to TypeScript utility functions
- Establish makeStyles patterns and conventions
- Set up shared utilities and helpers
- Start with components that have no LESS dependencies
- Migrate infrastructure files (variables, mixins, common)
- Update main aggregator files
- Migrate high-usage components
- Migrate by complexity level (simple → complex)
- Update component imports as you go
- Remove LESS imports from aggregator files
- Test thoroughly at each step
- Migrate app-specific LESS files
- Remove LESS build infrastructure
- Clean up unused files
- Update documentation
- 20%+ reduction in CSS bundle size
- Improved tree-shaking efficiency
- Faster development build times
- Better runtime performance
- 100% visual fidelity maintained
- All theme variations working
- No broken responsive behavior
- Type-safe styling throughout
- card.less (512 lines) - Core component, extensive panel mode logic
- chatbot.less (459 lines) - Complex conversational UI
- htmleditor.less (374 lines) - Rich text editor with formatting
- tokenpicker.less (357 lines) - Complex search and filter logic
- editor/themes/editorTheme.less (259 lines) - Editor theme definitions
- Components with deep nesting (10+ files)
- Files with extensive theme overrides (15+ files)
- Components with animations/transitions (5+ files)
- Simple utility components (30+ files)
- Single-purpose components with minimal styling
- Already well-structured components
This analysis provides a comprehensive roadmap for migrating all 124 LESS files to makeStyles, with clear prioritization based on complexity, dependencies, and business impact.