profile
viewpoint
Saad Najmi Saadnajmi Microsoft.com United States Software Engineer at Microsoft working on UI for Office on Mac and iOS

MSA-Lone-Star-Council/Showdown 1

The app for MSA Showdown, hosted by Lone Star Council

cburton12/ttH 0

Modified group n-tupler for BPHY9

HeyImChris/MSFT-FX-Playground 0

Playground for ramping up in Github

Saadnajmi/fluentui 0

We've moved! UI Fabric is now Fluent UI - A set of React components for building Microsoft web experiences.

Saadnajmi/fluentui-apple 0

UIKit and AppKit controls for building native Microsoft experiences

Saadnajmi/fluentui-react-native 0

A react-native control library aligned with office-ui-fabric-react

Saadnajmi/react-native-macos 0

A framework for building native macOS apps with React.

push eventmicrosoft/react-native-test-app

Tommy Nguyen

commit sha b5903cc798790c8cd54823abe2f0f2ea22d3339d

fix(Windows): `install-windows-test-app` fails with yarn link (#252)

view details

Tommy Nguyen

commit sha 92a354f923c483f9e2b6e9d826c4f27b5c4b3ef8

fix: Add support for React Native 0.64

view details

push time in a day

push eventmicrosoft/fluentui-apple

rdeassis

commit sha dccf5ee281a9d40896470d422934b78ebbc7db14

[sGen code generator] Adding first version of the FluentUIStyle.yml file. (#324) * Adding first version of the FluentUIStyle.yml file. * Applying multi-line format to YAML file.

view details

push time in 2 days

delete branch microsoft/fluentui-apple

delete branch : rdeassis/Yaml

delete time in 2 days

PR merged microsoft/fluentui-apple

Reviewers
[sGen code generator] Adding first version of the FluentUIStyle.yml file. vnext-prototype

Platforms Impacted

  • [x] iOS
  • [ ] macOS

Description of changes

  1. Changing the schemes in Xcode in order to make it easier to run the generator.

  2. Adding the default StylesheetConfig.yml file for FluentUI

  3. Adding the first version of the FluentUI YAML file with the figma defined tokens defined by the design team. The tokens define basic and some semantic colors, opacity, sizing and the button styling along with other tokens it depends on.

  4. Fixes to sGen were also included to allow a successful build of the generated file.

Verification

Added the FluentUIStyle.generated.swift into the FluentUI project and ensured that it builds successfully after creating the MSFButton class stub:

class MSFButton: NSObject {
    @objc func didChangeAppearanceProxy() {
    }
}

Pull request checklist

This PR has considered:

  • [ ] Light and Dark appearances
  • [ ] VoiceOver and Keyboard Accessibility
  • [ ] Internationalization and Right to Left layouts
  • [ ] Different resolutions (1x, 2x, 3x)
  • [ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
Microsoft Reviewers: Open in CodeFlow
+3166 -27

0 comment

6 changed files

rdeassis

pr closed time in 2 days

push eventmicrosoft/fluentui-apple

Rafael Amaral de Assis

commit sha c8801a965f7d8b5ac820f391dcb9e7202b306387

Applying multi-line format to YAML file.

view details

push time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

+objc: true+generateBaseStyle: true+inputDir: ./+inputs:+  - FluentUIStyle.yml

It is possible to pass more than one style to sGen in order to create different/multiple themes (which won't be the FluentUI case). But it's supported for consumers in case they want to have more than one theme.

rdeassis

comment created time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

             isEnabled = "NO">          </CommandLineArgument>          <CommandLineArgument-            argument = "config run --config $(PROJECT_DIR)/sgenTests/Configs/configWithInputs.yml"+            argument = "config run --config $(PROJECT_DIR)/input/StylesheetsConfig.yml"

This is going to be useful if any consumer of the library wants to make changes to the style YAML and generate the code again. It's also handy for us while creating new appearance proxies for new controls being added.

rdeassis

comment created time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

 enum RhsValue {         }     }     +    static func resolveRedirection(rhs: RhsValue) -> RhsValue? {+        if rhs.isRedirect == false {+            return rhs+        }+        +        var redirection = rhs.redirection!+        if !redirection.hasPrefix("mainProxy()") {

It's hard coded in sGen code. It refers to the snippet below created for each appearance proxy:

public let mainProxy: () -> FluentUIStyle

rdeassis

comment created time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

+/// Autogenerated file

We don't need the output to be there, but I think it'll make it easier for us to spot changes on the output as we make changes in the YAML file. But I agree we shouldn't manually edit this file.

rdeassis

comment created time in 2 days

GollumEvent

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

             isEnabled = "NO">          </CommandLineArgument>          <CommandLineArgument-            argument = "config run --config $(PROJECT_DIR)/sgenTests/Configs/configWithInputs.yml"+            argument = "config run --config $(PROJECT_DIR)/input/StylesheetsConfig.yml"

We should trigger this from library invoking sgen executable that dumps auto generated file in source folder of vNext files?

rdeassis

comment created time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

 enum RhsValue {         }     }     +    static func resolveRedirection(rhs: RhsValue) -> RhsValue? {+        if rhs.isRedirect == false {+            return rhs+        }+        +        var redirection = rhs.redirection!+        if !redirection.hasPrefix("mainProxy()") {

where is the keyword mainProxy coming from?

rdeassis

comment created time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

+/// Autogenerated file

I am mostly concerned about manual edits to this file making it out of sync with original yml file

rdeassis

comment created time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

+/// Autogenerated file

Does the output need to be in git? This would make a duplicate copy if we consume it from library?

rdeassis

comment created time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

+objc: true+generateBaseStyle: true+inputDir: ./+inputs:+  - FluentUIStyle.yml

Can we pass more than one style to sgen? If so, what would be a use case to break it down? Do we need to modularize it?

rdeassis

comment created time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

+Colors:+  Brand: [ primary: "FluentUIColor(light: #0078D4, dark: #0086F0)", shade10: "FluentUIColor(light: #106EBE, dark: #1890F1)", shade20: "FluentUIColor(light: #005A9E, dark: #3AA0F3)", shade30: "FluentUIColor(light: #004578, dark: #6CB8F6)", tint10: "FluentUIColor(light: #2B88D8, dark: #0078D4)", tint20: "FluentUIColor(light: #C7E0F4, dark: #004C87)", tint30: "FluentUIColor(light: #DEECF9, dark: #043862)", tint40: "FluentUIColor(light: #EFF6FC, dark: #092C47)" ]+  Neutral: [ clear: "#00000000", black: "#000000", grey2: "#050505", grey4: "#0A0A0A", grey6: "#0F0F0F", grey8: "#141414", grey10: "#1A1A1A", grey12: "#1F1F1F", grey14: "#242424", grey16: "#292929", grey18: "#2E2E2E", grey20: "#333333", grey22: "#383838", grey24: "#3D3D3D", grey26: "#424242", grey28: "#474747", grey30: "#4D4D4D", grey32: "#525252", grey34: "#575757", grey36: "#5C5C5C", grey38: "#616161", grey40: "#666666", grey42: "#6B6B6B", grey44: "#707070", grey46: "#757575", grey48: "#7A7A7A", grey50: "#808080", grey52: "#858585", grey54: "#8A8A8A", grey56: "#8F8F8F", grey58: "#949494", grey60: "#999999", grey62: "#9E9E9E", grey64: "#A3A3A3", grey66: "#A8A8A8", grey68: "#ADADAD", grey70: "#B2B2B2", grey72: "#B8B8B8", grey74: "#BDBDBD", grey76: "#C2C2C2", grey78: "#C7C7C7", grey80: "#CCCCCC", grey82: "#D1D1D1", grey84: "#D6D6D6", grey86: "#DBDBDB", grey88: "#E0E0E0", grey90: "#E5E5E5", grey92: "#EBEBEB", grey94: "#F0F0F0", grey96: "#F5F5F5", grey98: "#FAFAFA", white: "#FFFFFF" ]+  Background: [ neutral1: "FluentUIColor(light: $Colors.Neutral.white, dark: $Colors.Neutral.black, darkElevated: $Colors.Neutral.grey4)", neutral2: "FluentUIColor(light: $Colors.Neutral.grey98, dark: $Colors.Neutral.grey4, darkElevated: $Colors.Neutral.grey8)", neutral3: "FluentUIColor(light: $Colors.Neutral.grey96, dark: $Colors.Neutral.grey8, darkElevated: $Colors.Neutral.grey16)", neutral4: "FluentUIColor(light: $Colors.Neutral.grey94, dark: $Colors.Neutral.grey16, darkElevated: $Colors.Neutral.grey24)", neutral5: "FluentUIColor(light: $Colors.Neutral.grey92, dark: $Colors.Neutral.grey36)", neutralDisabled: "FluentUIColor(light: $Colors.Neutral.grey88, dark: $Colors.Neutral.grey84)", brandRest: "FluentUIColor(light: $Colors.Brand.primary, dark: $Colors.Brand.primary)", brandHover: "FluentUIColor(light: $Colors.Brand.shade10, dark: $Colors.Brand.shade10)", brandPressed: "FluentUIColor(light: $Colors.Brand.shade30, dark: $Colors.Brand.shade30)", brandSelected: "FluentUIColor(light: $Colors.Brand.shade20, dark: $Colors.Brand.shade20)", brandDisabled: "FluentUIColor(light: $Colors.Neutral.grey88, dark: $Colors.Neutral.grey84)" ]+  Foreground: [ neutral1: "FluentUIColor(light: $Colors.Neutral.grey14, lightHighContrast: $Colors.Neutral.black, dark: $Colors.Neutral.white)", neutral2: "FluentUIColor(light: $Colors.Neutral.grey26, lightHighContrast: $Colors.Neutral.black, dark: $Colors.Neutral.grey84, darkHighContrast: $Colors.Neutral.white)", neutral3: "FluentUIColor(light: $Colors.Neutral.grey38, lightHighContrast: $Colors.Neutral.grey14, dark: $Colors.Neutral.grey68, darkHighContrast: $Colors.Neutral.grey84)", neutral4: "FluentUIColor(light: $Colors.Neutral.grey50, lightHighContrast: $Colors.Neutral.grey26, dark: $Colors.Neutral.grey52, darkHighContrast: $Colors.Neutral.grey84)", neutralDisabled: "FluentUIColor(light: $Colors.Neutral.grey74, lightHighContrast: $Colors.Neutral.grey38, dark: $Colors.Neutral.grey36, darkHighContrast: $Colors.Neutral.grey62)", neutralInverted: "FluentUIColor(light: $Colors.Neutral.white, dark: $Colors.Neutral.black)", brandRest: "FluentUIColor(light: $Colors.Brand.primary, lightHighContrast: $Colors.Brand.shade20, dark: $Colors.Brand.primary, darkHighContrast: $Colors.Brand.tint20)", brandHover: "FluentUIColor(light: $Colors.Brand.shade10, dark: $Colors.Brand.shade10)", brandPressed: "FluentUIColor(light: $Colors.Brand.shade30, dark: $Colors.Brand.shade30)", brandSelected: "FluentUIColor(light: $Colors.Brand.shade20, dark: $Colors.Brand.shade20)", brandDisabled: "FluentUIColor(light: $Colors.Neutral.grey74, dark: $Colors.Neutral.grey36)" ]+  Stroke: [ neutral1: "FluentUIColor(light: $Colors.Neutral.grey94, lightHighContrast: $Colors.Neutral.grey38, dark: $Colors.Neutral.grey24, darkHighContrast: $Colors.Neutral.grey68, darkElevated: $Colors.Neutral.grey32)", neutral2: "FluentUIColor(light: $Colors.Neutral.grey88, lightHighContrast: $Colors.Neutral.grey38, dark: $Colors.Neutral.grey32, darkHighContrast: $Colors.Neutral.grey68, darkElevated: $Colors.Neutral.grey36)", neutral3: "FluentUIColor(light: $Colors.Neutral.grey82, lightHighContrast: $Colors.Neutral.grey38, dark: $Colors.Neutral.grey40, darkHighContrast: $Colors.Neutral.grey68, darkElevated: $Colors.Neutral.grey52)", neutralDisabled: "FluentUIColor(light: $Colors.Neutral.grey88, dark: $Colors.Neutral.grey32)", neutralAccessible: "FluentUIColor(light: $Colors.Neutral.grey38, lightHighContrast: $Colors.Neutral.grey14, dark: $Colors.Neutral.grey68, darkHighContrast: $Colors.Neutral.grey84, darkElevated: $Colors.Neutral.grey68)", brandRest: "FluentUIColor(light: $Colors.Brand.primary, dark: $Colors.Brand.primary)", brandHover: "FluentUIColor(light: $Colors.Brand.shade10, dark: $Colors.Brand.shade10)", brandPressed: "FluentUIColor(light: $Colors.Brand.shade30, dark: $Colors.Brand.shade30)", brandSelected: "FluentUIColor(light: $Colors.Brand.shade20, dark: $Colors.Brand.shade20)", brandDisabled: "FluentUIColor(light: $Colors.Neutral.grey88, dark: $Colors.Neutral.grey84)" ]

+1 there is yaml formatter, so instead of

Colors:
  Brand: [ primary: "FluentUIColor(light: #0078D4, dark: #0086F0)", shade10: "FluentUIColor(light: #106EBE, dark: #1890F1)", shade20: "FluentUIColor(light: #005A9E, dark: #3AA0F3)", shade30: "FluentUIColor(light: #004578, dark: #6CB8F6)", tint10: "FluentUIColor(light: #2B88D8, dark: #0078D4)", tint20: "FluentUIColor(light: #C7E0F4, dark: #004C87)", tint30: "FluentUIColor(light: #DEECF9, dark: #043862)", tint40: "FluentUIColor(light: #EFF6FC, dark: #092C47)" ]

we can view it as

Colors:
  Brand:
    - primary: 'FluentUIColor(light: #0078D4, dark: #0086F0)'
    - shade10: 'FluentUIColor(light: #106EBE, dark: #1890F1)'
    - shade20: 'FluentUIColor(light: #005A9E, dark: #3AA0F3)'
    - shade30: 'FluentUIColor(light: #004578, dark: #6CB8F6)'
    - tint10: 'FluentUIColor(light: #2B88D8, dark: #0078D4)'
    - tint20: 'FluentUIColor(light: #C7E0F4, dark: #004C87)'
    - tint30: 'FluentUIColor(light: #DEECF9, dark: #043862)'
    - tint40: 'FluentUIColor(light: #EFF6FC, dark: #092C47)'

Here is one formatter that I have used for indenting.

rdeassis

comment created time in 2 days

release microsoft/fluentui-apple

0.1.21

released time in 2 days

created tagmicrosoft/fluentui-apple

tag0.1.21

UIKit and AppKit controls for building native Microsoft experiences

created time in 2 days

push eventmicrosoft/fluentui-apple

rdeassis

commit sha 9c5596799f420b5736d988b3fff6c9df6ba6e9e4

Bumping versions for version update (0.1.21). (#326)

view details

push time in 2 days

PR merged microsoft/fluentui-apple

Bumping versions for version update (0.1.21).

Platforms Impacted

  • [x] iOS
  • [x] macOS

Description of changes

What's new:

  • iOS: -- BadgeField: fixed a bug where deleting badges didn't work -- MSFCenterLabelCell: larger text support -- Infra changes and fixes: moved custom project settings to xcconfig files and updated libFluentUI.a name in xcscheme files

  • Mac: -- Target version updated to 10.14

Verification

Built and launched macOS and iOS demo apps.

Pull request checklist

This PR has considered:

  • [ ] Light and Dark appearances
  • [ ] VoiceOver and Keyboard Accessibility
  • [ ] Internationalization and Right to Left layouts
  • [ ] Different resolutions (1x, 2x, 3x)
  • [ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
Microsoft Reviewers: Open in CodeFlow
+9 -9

0 comment

5 changed files

rdeassis

pr closed time in 2 days

push eventmicrosoft/fluentui-apple

Harrie Shin

commit sha 0b5ce243a7fbb21e53d4613b54312b2bcca5db9a

MSFCenterLabelCell larger text support (#322) * Make sure MSFCenterLabelCell adhere to larger text size settings * Make sure CenterLabelCell, ActivityIndicatorCell and ActionsCell default height is 48 pt just like single line TableViewCell

view details

push time in 2 days

PR merged microsoft/fluentui-apple

MSFCenterLabelCell larger text support

Platforms Impacted

  • [x] iOS
  • [ ] macOS

Description of changes

Make sure MSFCenterLabelCell adhere to larger text size settings Make sure CenterLabelCell, ActivityIndicatorCell and ActionsCell default height is 48 pt just like single line TableViewCell

Verification

(how the change was tested, including both manual and automated tests)

Before After
Simulator Screen Shot - iPhone 11 Pro Max - 2020-11-23 at 17 05 01 new_centercell
old_personalist new_peoplepicker

Pull request checklist

This PR has considered:

  • [x] Light and Dark appearances
  • [x] VoiceOver and Keyboard Accessibility
  • [ ] Internationalization and Right to Left layouts
  • [ ] Different resolutions (1x, 2x, 3x)
  • [x] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
Microsoft Reviewers: Open in CodeFlow
+39 -34

0 comment

4 changed files

harrieshin

pr closed time in 2 days

push eventmicrosoft/fluentui-apple

rdeassis

commit sha 4c4da777c308896a0263a76b377a731f8619c20a

Updating iOS target version to 13.0 for SwiftUI. (#325)

view details

push time in 2 days

delete branch microsoft/fluentui-apple

delete branch : rdeassis/ios13

delete time in 2 days

PR merged microsoft/fluentui-apple

Updating iOS target version to 13.0 for SwiftUI. vnext-prototype

Platforms Impacted

  • [x] iOS
  • [ ] macOS

Description of changes

SwiftUI is supported on iOS 13 and later. Let's bump the target version to 13.0 on the v-next branch so it's easier to develop SwiftUI controls without available checks throughout the code.

Verification

Built all targets and ran the Demo app (ensuring it can't be launched on an earlier version of iOS).

Pull request checklist

This PR has considered:

  • [ ] Light and Dark appearances
  • [ ] VoiceOver and Keyboard Accessibility
  • [ ] Internationalization and Right to Left layouts
  • [ ] Different resolutions (1x, 2x, 3x)
  • [ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
Microsoft Reviewers: Open in CodeFlow
+239 -239

0 comment

7 changed files

rdeassis

pr closed time in 2 days

push eventmicrosoft/fluentui-apple

rdeassis

commit sha d38ef9d9cfab1bc6eefa27732104f1009d98cd41

Fix for regression where Badge field does not allow deleting badges. (#323)

view details

push time in 2 days

PR merged microsoft/fluentui-apple

Fix for regression where Badge field does not allow deleting badges.

Platforms Impacted

  • [x] iOS
  • [ ] macOS

Description of changes

The PR #309 merged as 1da82131ddbdcc88d9f092c1de465904ec55e401 introduced a regression which prevents the user from deleting badges by hitting backspace.

The zero width space ("\u{200B}") was used to trigger the delegate textField(_:shouldChangeCharactersIn:replacementString:) method when the user hits backspace.

It was a workaround to force that delegate call when the UITextField is empty.

This fix proposes a change in how that case is handled. A subclass of the UITextView being used in the BadgeField scope will trigger the delegate method when the cursor/caret is in the first position of the text field even though it's not deleting any character.

All the logic needed to account for the zero width space approach was also removed.

Verification

Exercised the following scenarios on the fixed code in the PeoplePicker section of the Demo app:

  1. Navigating with the cursor back and forth while ensuring the position of the caret is correct.
  2. Deleted selections of text that include the first position of the text in the UIText field ensuring the caret remains in the first position.
  3. Deleted selections starting in the middle of the text ensuring the caret remains in the beginning of the selection.
  4. Hit backspace with content on the text field validating the last badge was selected as a result.
  5. Hit backspace with an empty text field validating the last badge was selected as a result.
  6. Hit backspace on a selected badge ensuring it was removed as a result.
  7. Exercised tests 5 and 6 on red badges.
Before After
people_picker_delete_bug people_picker_delete_fix

Pull request checklist

This PR has considered:

  • [ ] Light and Dark appearances
  • [ ] VoiceOver and Keyboard Accessibility
  • [ ] Internationalization and Right to Left layouts
  • [ ] Different resolutions (1x, 2x, 3x)
  • [ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
Microsoft Reviewers: Open in CodeFlow
+24 -29

0 comment

1 changed file

rdeassis

pr closed time in 2 days

Pull request review commentmicrosoft/fluentui-apple

Fix for regression where Badge field does not allow deleting badges.

 private class PasteControlTextField: UITextField {         isPaste = true         super.paste(sender)     }++    override func deleteBackward() {+        // Triggers the delegate method even when the cursor (caret) is in the first postion (regardless of text being empty).+        // Using the zero width space ("\u{200B}") as the emptyTextFieldString instead of this approach will cause Voice Over+        // to read it out loud as "zero width space", which is not desirable.+        if let selectionRange = selectedTextRange,+           selectionRange.isEmpty,+           offset(from: beginningOfDocument, to: selectionRange.start) == 0 {+            _ = self.delegate?.textField?(self,+                                          shouldChangeCharactersIn: NSRange(location: 0, length: 0),+                                          replacementString: "")

It's a private type of BadgeField. Probably not worth exposing it just for that constant.

rdeassis

comment created time in 2 days

PR opened microsoft/fluentui-apple

Bumping versions for version update (0.1.21).

Platforms Impacted

  • [x] iOS
  • [x] macOS

Description of changes

What's new:

  • iOS: -- BadgeField: fixed a bug where deleting badges didn't work -- Infra changes and fixes: moved custom project settings to xcconfig files and updated libFluentUI.a name in xcscheme files

  • Mac: -- Target version updated to 10.14

Verification

Built and launched macOS and iOS demo apps.

Pull request checklist

This PR has considered:

  • [ ] Light and Dark appearances
  • [ ] VoiceOver and Keyboard Accessibility
  • [ ] Internationalization and Right to Left layouts
  • [ ] Different resolutions (1x, 2x, 3x)
  • [ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
+9 -9

0 comment

5 changed files

pr created time in 2 days

Pull request review commentmicrosoft/fluentui-apple

[sGen code generator] Adding first version of the FluentUIStyle.yml file.

+Colors:+  Brand: [ primary: "FluentUIColor(light: #0078D4, dark: #0086F0)", shade10: "FluentUIColor(light: #106EBE, dark: #1890F1)", shade20: "FluentUIColor(light: #005A9E, dark: #3AA0F3)", shade30: "FluentUIColor(light: #004578, dark: #6CB8F6)", tint10: "FluentUIColor(light: #2B88D8, dark: #0078D4)", tint20: "FluentUIColor(light: #C7E0F4, dark: #004C87)", tint30: "FluentUIColor(light: #DEECF9, dark: #043862)", tint40: "FluentUIColor(light: #EFF6FC, dark: #092C47)" ]+  Neutral: [ clear: "#00000000", black: "#000000", grey2: "#050505", grey4: "#0A0A0A", grey6: "#0F0F0F", grey8: "#141414", grey10: "#1A1A1A", grey12: "#1F1F1F", grey14: "#242424", grey16: "#292929", grey18: "#2E2E2E", grey20: "#333333", grey22: "#383838", grey24: "#3D3D3D", grey26: "#424242", grey28: "#474747", grey30: "#4D4D4D", grey32: "#525252", grey34: "#575757", grey36: "#5C5C5C", grey38: "#616161", grey40: "#666666", grey42: "#6B6B6B", grey44: "#707070", grey46: "#757575", grey48: "#7A7A7A", grey50: "#808080", grey52: "#858585", grey54: "#8A8A8A", grey56: "#8F8F8F", grey58: "#949494", grey60: "#999999", grey62: "#9E9E9E", grey64: "#A3A3A3", grey66: "#A8A8A8", grey68: "#ADADAD", grey70: "#B2B2B2", grey72: "#B8B8B8", grey74: "#BDBDBD", grey76: "#C2C2C2", grey78: "#C7C7C7", grey80: "#CCCCCC", grey82: "#D1D1D1", grey84: "#D6D6D6", grey86: "#DBDBDB", grey88: "#E0E0E0", grey90: "#E5E5E5", grey92: "#EBEBEB", grey94: "#F0F0F0", grey96: "#F5F5F5", grey98: "#FAFAFA", white: "#FFFFFF" ]+  Background: [ neutral1: "FluentUIColor(light: $Colors.Neutral.white, dark: $Colors.Neutral.black, darkElevated: $Colors.Neutral.grey4)", neutral2: "FluentUIColor(light: $Colors.Neutral.grey98, dark: $Colors.Neutral.grey4, darkElevated: $Colors.Neutral.grey8)", neutral3: "FluentUIColor(light: $Colors.Neutral.grey96, dark: $Colors.Neutral.grey8, darkElevated: $Colors.Neutral.grey16)", neutral4: "FluentUIColor(light: $Colors.Neutral.grey94, dark: $Colors.Neutral.grey16, darkElevated: $Colors.Neutral.grey24)", neutral5: "FluentUIColor(light: $Colors.Neutral.grey92, dark: $Colors.Neutral.grey36)", neutralDisabled: "FluentUIColor(light: $Colors.Neutral.grey88, dark: $Colors.Neutral.grey84)", brandRest: "FluentUIColor(light: $Colors.Brand.primary, dark: $Colors.Brand.primary)", brandHover: "FluentUIColor(light: $Colors.Brand.shade10, dark: $Colors.Brand.shade10)", brandPressed: "FluentUIColor(light: $Colors.Brand.shade30, dark: $Colors.Brand.shade30)", brandSelected: "FluentUIColor(light: $Colors.Brand.shade20, dark: $Colors.Brand.shade20)", brandDisabled: "FluentUIColor(light: $Colors.Neutral.grey88, dark: $Colors.Neutral.grey84)" ]+  Foreground: [ neutral1: "FluentUIColor(light: $Colors.Neutral.grey14, lightHighContrast: $Colors.Neutral.black, dark: $Colors.Neutral.white)", neutral2: "FluentUIColor(light: $Colors.Neutral.grey26, lightHighContrast: $Colors.Neutral.black, dark: $Colors.Neutral.grey84, darkHighContrast: $Colors.Neutral.white)", neutral3: "FluentUIColor(light: $Colors.Neutral.grey38, lightHighContrast: $Colors.Neutral.grey14, dark: $Colors.Neutral.grey68, darkHighContrast: $Colors.Neutral.grey84)", neutral4: "FluentUIColor(light: $Colors.Neutral.grey50, lightHighContrast: $Colors.Neutral.grey26, dark: $Colors.Neutral.grey52, darkHighContrast: $Colors.Neutral.grey84)", neutralDisabled: "FluentUIColor(light: $Colors.Neutral.grey74, lightHighContrast: $Colors.Neutral.grey38, dark: $Colors.Neutral.grey36, darkHighContrast: $Colors.Neutral.grey62)", neutralInverted: "FluentUIColor(light: $Colors.Neutral.white, dark: $Colors.Neutral.black)", brandRest: "FluentUIColor(light: $Colors.Brand.primary, lightHighContrast: $Colors.Brand.shade20, dark: $Colors.Brand.primary, darkHighContrast: $Colors.Brand.tint20)", brandHover: "FluentUIColor(light: $Colors.Brand.shade10, dark: $Colors.Brand.shade10)", brandPressed: "FluentUIColor(light: $Colors.Brand.shade30, dark: $Colors.Brand.shade30)", brandSelected: "FluentUIColor(light: $Colors.Brand.shade20, dark: $Colors.Brand.shade20)", brandDisabled: "FluentUIColor(light: $Colors.Neutral.grey74, dark: $Colors.Neutral.grey36)" ]+  Stroke: [ neutral1: "FluentUIColor(light: $Colors.Neutral.grey94, lightHighContrast: $Colors.Neutral.grey38, dark: $Colors.Neutral.grey24, darkHighContrast: $Colors.Neutral.grey68, darkElevated: $Colors.Neutral.grey32)", neutral2: "FluentUIColor(light: $Colors.Neutral.grey88, lightHighContrast: $Colors.Neutral.grey38, dark: $Colors.Neutral.grey32, darkHighContrast: $Colors.Neutral.grey68, darkElevated: $Colors.Neutral.grey36)", neutral3: "FluentUIColor(light: $Colors.Neutral.grey82, lightHighContrast: $Colors.Neutral.grey38, dark: $Colors.Neutral.grey40, darkHighContrast: $Colors.Neutral.grey68, darkElevated: $Colors.Neutral.grey52)", neutralDisabled: "FluentUIColor(light: $Colors.Neutral.grey88, dark: $Colors.Neutral.grey32)", neutralAccessible: "FluentUIColor(light: $Colors.Neutral.grey38, lightHighContrast: $Colors.Neutral.grey14, dark: $Colors.Neutral.grey68, darkHighContrast: $Colors.Neutral.grey84, darkElevated: $Colors.Neutral.grey68)", brandRest: "FluentUIColor(light: $Colors.Brand.primary, dark: $Colors.Brand.primary)", brandHover: "FluentUIColor(light: $Colors.Brand.shade10, dark: $Colors.Brand.shade10)", brandPressed: "FluentUIColor(light: $Colors.Brand.shade30, dark: $Colors.Brand.shade30)", brandSelected: "FluentUIColor(light: $Colors.Brand.shade20, dark: $Colors.Brand.shade20)", brandDisabled: "FluentUIColor(light: $Colors.Neutral.grey88, dark: $Colors.Neutral.grey84)" ]

instead this one line can we make it more readable by having separate lines?

rdeassis

comment created time in 2 days

more