Skip to content

Conversation

@levithomason
Copy link
Member

@levithomason levithomason commented Jun 26, 2023

Introduction

This PR introduces an automatic anatomy highlighter for stories. It is a prototype to demonstrate the usefulness only.

Features:

  1. Automatically highlight components and slots, similar to Fluent 2 design specs
  2. Highlight anatomy in the story on hover of the items in the named list
  3. Handle moving anatomy and state updates

Usefulness:

  1. Quickly show user what components and slots are in use
  2. Show the placement and nesting of components and slots instantly
  3. Help contributors maintain consistent patterns by revealing anatomy

Authors: @levithomason @miroslavstastny

💬 Discussions

Integration

What is the best way to integrate this capability?

  • In our development flow?
  • In our public docs?

Consistency

The audit revealed mostly inconsistencies in:

  • DOM Structure
  • Component naming conventions
  • Class name conventions
  • Composition patterns

We should answer:

  1. Do we care about consistency?
  2. Is inconsistency a problem worth solving?
  3. Should we we automate conformance?

We propose yes to all of the above as it is necessary to enable 2nd layer tooling and assistance, such as the anatomy viewer. Consistency is also required for any future design tools, token explorers, etc. which would sit on top of our patterns.

Composition Patterns

We should reach a conclusion on how to properly compose custom components.

  1. What is the pattern for using hooks?
  2. What is the pattern for reusing component A in component B?

📖 Collection Component Docs

There are several inconsistencies and unresolved patterns with collection components.

RadioGroup, Radio has separate top level documentation pages when Radio is meant to be used inside of a RadioGroup. This conflicts with other components like Combobox, Dropdown, TabList, MenuList, etc. which do not have documentation pages for their subcomponents (Option, MenuItem, etc).

Card is an example of a component which uses folders to nest separate documentation for subcomponents, even though those subcomponents are not usable outside of a Card.

The Breadcrumb collection has a similar issue to Card in that it documents subcomponents that are unusable outside the Breadcrumb. However, it also does so using a separate top level story for each sub component vs a folder.

Virtualizer has 3 separate top level components, which are functional on their own, and are documented as 3 separate top level stories. However, this conflicts (in part) with Tree which uses a folder to group similar top level stories.

Tree itself combines several of the above issues as it uses a folder to organize its group of stories but also includes a top level story for TreeItem which is not usable on its own.

📸 Anatomy Screenshots

We've included only one screenshot for each component, however, the prototype on this branch applied the highlighting to all stories. We also included any extra stories for a given component if it had issues with the anatomy.

Components

Accordion

image

When you click the Accordion Header, it opens and the anatomy selectors automatically update. They are currently prototyped on a RAF. Notice 4 the AccordionPanel is now highlighted.

image

Avatar

Badge story shown. Notice the selection boxes only grab the first instance in a list.

image

On hover of the list of anatomy, all instances are highlighted. Here we highlight b badge and all Avatar badges get the same highlight as the anatomy list being hovered:

image

AvatarGroup

Notice since the AvatarGroup is a component itself, the Avatar anatomy is not listed, only the AvatarGroup anatomy. This is by design so each story focuses only on the anatomy relevant to the story itself, not every component used inside the story.

image

Badge

image image

Counter Badge

💬 Discuss CounterBadge composes Badge and the current prototype only shows components which explicitly match the component page being shown. So, Badge is excluded since this is the CounterBadge page.

<div class="fui-Badge r1l7mb74 fui-CounterBadge ___g1d9dq0_1moluvk ffp7eso f1phragk">5</div>
image

PresenceBadge

The final implementation may want to consider drawing lines from the indicator dot to the anatomy box to prevent obscuring the component like this example does.

image

Button

image

CompoundButton

image

MenuButton

image

SplitButton

image

ToggleButton

image

Card

image

CardFooter

image

CardHeader

This is a dense story with many examples of a single component implemented in various ways. The usefulness of the highlighting feature is shown in the video.

CardHeader.mov

CardPreview

image

Checkbox

image

Combobox

👁️ See Collection Component Docs.

💬 Discuss This raises the topic of collection components (Combobox, Dropdown, RadioGroup, TabList). Our conventions for these vary in terms of structure, naming, and composition.

Combox does not follow Fluent UI React v9 naming patterns for its anatomy. It consists of:

Combobox
  Listbox
    OptionGroup
      OptionGroup__label
      Option
      Option
        Option__checkIcon
      ...

The anatomy view does not capture many configurable slots due to the naming and structure differences of this component.

image

The prototype does follow portals, such as the listbox.

If the naming were to follow the ComboBox* pattern for components and ComboBox*__* pattern for slots, we might see something like this where each component/slot is a type of "Combobox":

image

DataGrid

This is a dense view that is difficult to read on first glance, however, it is indicative of the component anatomy which is truly complex.

image

When hovering on various parts the anatomy is much more useful for understanding the structure than clicking through tsx files or looking at the source code.

data-grid.mov

The anatomy tool does not highlight anything in the "Virtualization" story, however, upon inspecting this example is just using an iframe. So, the tool in this case is again useful as it is catching an issue in our docs. We likely should not be shipping stories that are iframe'd to other repos:

image

Dialog

Note, the prototype doesn't provide and good experience for hovering over anatomy pieces when there is a backdrop.

image

Divider

image

Dropdown

👁️ See Collection Component Docs.

image

Field

image

In this example it is immediately clear that the cat icon and input are custom elements as they have no anatomy annotation. The icon would be an easy element to assume to come from Fluent UI or at least have a slot for input icons. Without this tool, it is unclear what is custom and what is provided by Fluent UI.

image

FluentProvider

image

Image

image

Input

image

Label

image

Link

image

Menu

👁️ See Collection Component Docs.

image

The Menu is not visible as it is only in the React Tree, not the DOM. The prototype requires the component or one of its slots to render a class to the DOM (.fui-Component or .fui-Component__slot) in order to show the anatomy on the left. This could be resolved by using the React Tree instead of the DOM as a source of truth for traversals.

image

MenuList

👁️ See Collection Component Docs.

image

If we captured all Menu* named components, not just MenuList*, then the anatomy would look like this:

image

Overflow

Overflow is a utility with no DOM, so anatomy annotations do not apply here.

image

Persona

image

Popover

image

Portal

Nothing to see here, utility component only, no DOM.

image

ProgressBar

image

Radio

image

RadioGroup

👁️ See Collection Component Docs.

image

Select

👁️ See Collection Component Docs.

image image

Skeleton

image

Slider

image

SpinButton

image

Spinner

image

Switch

image

Table

👁️ See DataGrid comments which also apply to Table.

image

TabList

👁️ See Collection Component Docs.

image

Text

image

Textarea

image

Toast

Even though it is useful, Toaster is included in the anatomy by a bug in the component name matcher. Toaster starts with Toast. This should technically be fixed in a final version as component anatomies that start with the currently viewed component name should not be included in the view, only actual subcomponents and slots.

image

Toolbar

👁️ See Collection Component Docs.

The Toolbar story uses Toolbar, ToolbarButton and ToolbarDivider but only shows Toolbar in the anatomy as the other components do not follow the class name convention for composing components. They are missing fui-Toolbar* classes.

image

Tooltip

image

Compat Components

These components are v8 made to work with v9 styling and tokens, but do not follow v9 architecture.

DatePicker

All v9 components are properly shown.

image

Preview Components

Alert

image image

Breadcrumb

👁️ See BreadcrumbButton comment.

image

BreadcrumbButton

💬 Discuss This should probably be combined into the Breadcrumb stories page. BreadcrumbButton is not usable on its own. There is one story, which shows the use of Breadcrumb, BreadcrumbItem, and BreadcrumbButton together.

As a separate issue, the story should be simplified to not include boilerplate for the "playground" type code around the story. There is no need to show the appearance and size in a single story, but it should be separate concise stories for each capability of the BreadcrumbButton.

Note, this type of finding and review is not a direct result of anatomy work, but it is due to the audit work that is required by the anatomy work. We should have a process for doing this type of audit regularly. At the least, it should be a step required for promoting preview components to proper components.

image

BreadcrumbDivider

👁️ See BreadcrumbButton comment.

image

BreadcrumbItem

👁️ See BreadcrumbButton comment.

image

BreadcrumbLink

👁️ See BreadcrumbButton comment.

image

Drawer

image

The prototype does not handle anatomy annotation labels well when a component is full-bleed (to the edge of the iframe area). This could be fixed by a smarter label placement algorithm which we did not do.

image

InfoButton

image

InfoLabel

image

SearchBox

💬 Discuss The contentBefore slot is "missing" from the anatomy view. Why?

The SearchBox internally uses the Input component as its root. The contentBefore slot is passed through the SearchBox state on to Input's props. However, since SearchBox does no special handling of the contentBefore, there is no SearchBox className added to this slot. Notice contentAfter which does appear in the anatomy, because SearchBox has special handling of this Input prop and adds a SearchBox__contentAfter className here.

Summary of findings:

  • SearchBox uses Input as its root component
  • SearchBox allows passing Input props through
  • SearchBox state does not include all Input state keys
  • SearchBox props do include all input props
  • This means SearchBox render anatomy only has classes for its own slots and "customized" slots of Input, not all Input slots.

This raises a few questions about composition:

  1. Do we allow root components to be extended vs. composing individual hooks together (useSearchBoxStyles composing useInputStyles)?
  2. Should all slots carry the component's class name? Example, SearchBox contentBefore does not have fui-SearchBox__contentBefore because it is using this slot from Input and does not make any modifications to it.

Original PR comment: #28090 (comment)

image

Tree/flatTree

image

Tree/Layouts

image

Tree/Tree

👁️ See Collection Component Docs.

image

Tree/TreeItem

💬 Discuss TreeItem has a duplicate className of fui-TreeItemLayout__expandIcon fui-TreeItemLayout__expandIcon on the expandIcon slot. We could not find why. This is relatively low consequence but still probably a bug we should fix.

  1. Do we have other components with this issue?
  2. Do we have a way of catching this?
image

Virtualizer

On first glance, the anatomy view is not useful. On reconsideration, it does reveal how the virtualizer works.

image

You can see how the before, after, and afterContainer are used to generate the list on scroll. This would be useful for debugging and for developing features such as loading indicators or placeholders:

image image

You can also see that the Virtualizer does not render anything to the DOM, as indicated by the grayed out (?) Virtualizer label in the list of anatomy.

image

VirtualizerScrollView

💬 Discuss Nothing shows in the view for multiple reasons:

  1. The className for VirtualizerScrollView breaks our pattern of fui-VirtualizerScrollView and uses fui-Virtualizer-Scroll-View.
  2. When composing Virtualizer we don't currently follow a predictable pattern or convention, so the anatomy viewer fails to show all the composed components/slots.
image

1 - Class Name

// useVirtualizerScrollViewStyles.styles.ts line 7
const virtualizerScrollViewClassName = 'fui-Virtualizer-Scroll-View';

Fixing the className to use fui-VirtualizerScrollView, we get a container slot visible. However, VirtualizerScrollView also composes Virtualizer but we don't see any of those components or slots.

image

2 - Composition

Hacking the story and anatomy view to show all, we see this:

image

VirtualizerScrollViewDynamic

👁️ See Preview Components VirtualizerScrollView discussion. This VirtualizerScrollViewDynamic component has identical patterns and issues.

image

@fabricteam
Copy link
Collaborator

fabricteam commented Jun 26, 2023

Perf Analysis (@fluentui/react-components)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 584 605 5000
Button mount 291 293 5000
Field mount 1084 1044 5000
FluentProvider mount 672 682 5000
FluentProviderWithTheme mount 79 85 10
FluentProviderWithTheme virtual-rerender 66 72 10
FluentProviderWithTheme virtual-rerender-with-unmount 75 71 10
InfoButton mount 17 10 5000
MakeStyles mount 868 879 50000
Persona mount 1645 1627 5000
SpinButton mount 1306 1281 5000

@codesandbox-ci
Copy link

codesandbox-ci bot commented Jun 26, 2023

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 7719ab1:

Sandbox Source
@fluentui/react 8 starter Configuration
@fluentui/react-components 9 starter Configuration

@fabricteam
Copy link
Collaborator

fabricteam commented Jun 26, 2023

📊 Bundle size report

🤖 This report was generated against 1d1aa7cc05cf1bee98e2dbebdd9a5040544379f1

@size-auditor
Copy link

size-auditor bot commented Jun 26, 2023

Asset size changes

Project Bundle Baseline Size New Size Difference
office-ui-fabric-react fluentui-react-SelectableOption 724 bytes  Deleted       BelowBaseline     -724 bytes
office-ui-fabric-react fluentui-react-WindowProvider 1.059 kB  Deleted       BelowBaseline     -1.059 kB
office-ui-fabric-react keyboard-key 4.59 kB  Deleted       BelowBaseline     -4.59 kB
office-ui-fabric-react fluentui-react-DateTimeUtilities 5.244 kB  Deleted       BelowBaseline     -5.244 kB
office-ui-fabric-react fluentui-react-Color 7.498 kB  Deleted       BelowBaseline     -7.498 kB
office-ui-fabric-react fluentui-react-ResponsiveMode 7.967 kB  Deleted       BelowBaseline     -7.967 kB
office-ui-fabric-react fluentui-react-DragDrop 8.393 kB  Deleted       BelowBaseline     -8.393 kB
office-ui-fabric-react fluentui-react-northstar-Debug 10.621 kB  Deleted       BelowBaseline     -10.621 kB
office-ui-fabric-react fluentui-react-Popup 12.012 kB  Deleted       BelowBaseline     -12.012 kB
office-ui-fabric-react fluentui-react-ThemeGenerator 12.106 kB  Deleted       BelowBaseline     -12.106 kB
office-ui-fabric-react fluentui-react-ResizeGroup 13.266 kB  Deleted       BelowBaseline     -13.266 kB
office-ui-fabric-react fluentui-react-KeytipData 13.522 kB  Deleted       BelowBaseline     -13.522 kB
office-ui-fabric-react fluentui-react-Autofill 14.994 kB  Deleted       BelowBaseline     -14.994 kB
office-ui-fabric-react fluentui-react-FocusTrapZone 15.627 kB  Deleted       BelowBaseline     -15.627 kB
office-ui-fabric-react fluentui-react-Divider 17.63 kB  Deleted       BelowBaseline     -17.63 kB
office-ui-fabric-react fluentui-react-Positioning 21.148 kB  Deleted       BelowBaseline     -21.148 kB
office-ui-fabric-react fluentui-react-Viewport 22.933 kB  Deleted       BelowBaseline     -22.933 kB
office-ui-fabric-react fluentui-react-OverflowSet 30.777 kB  Deleted       BelowBaseline     -30.777 kB
office-ui-fabric-react fluentui-react-Sticky 31.572 kB  Deleted       BelowBaseline     -31.572 kB
office-ui-fabric-react fluentui-react-DraggableZone 33.04 kB  Deleted       BelowBaseline     -33.04 kB
office-ui-fabric-react fluentui-react-Separator 33.397 kB  Deleted       BelowBaseline     -33.397 kB
office-ui-fabric-react fluentui-react-Text 35.931 kB  Deleted       BelowBaseline     -35.931 kB
office-ui-fabric-react fluentui-react-Label 36.347 kB  Deleted       BelowBaseline     -36.347 kB
office-ui-fabric-react fluentui-react-Announced 36.473 kB  Deleted       BelowBaseline     -36.473 kB
office-ui-fabric-react fluentui-react-northstar-Design 36.723 kB  Deleted       BelowBaseline     -36.723 kB
office-ui-fabric-react fluentui-react-ProgressIndicator 37.498 kB  Deleted       BelowBaseline     -37.498 kB
office-ui-fabric-react fluentui-react-Link 37.673 kB  Deleted       BelowBaseline     -37.673 kB
office-ui-fabric-react fluentui-react-northstar-SvgIcon 37.687 kB  Deleted       BelowBaseline     -37.687 kB
office-ui-fabric-react fluentui-react-List 37.733 kB  Deleted       BelowBaseline     -37.733 kB
office-ui-fabric-react fluentui-react-Overlay 38.784 kB  Deleted       BelowBaseline     -38.784 kB
office-ui-fabric-react fluentui-react-Spinner 39.691 kB  Deleted       BelowBaseline     -39.691 kB
office-ui-fabric-react fluentui-react-Fabric 39.75 kB  Deleted       BelowBaseline     -39.75 kB
office-ui-fabric-react fluentui-react-Stack 40.598 kB  Deleted       BelowBaseline     -40.598 kB
office-ui-fabric-react fluentui-react-Selection 41.107 kB  Deleted       BelowBaseline     -41.107 kB
office-ui-fabric-react fluentui-react-Theme 42.456 kB  Deleted       BelowBaseline     -42.456 kB
office-ui-fabric-react fluentui-react-Toggle 44.17 kB  Deleted       BelowBaseline     -44.17 kB
office-ui-fabric-react fluentui-react-Image 44.79 kB  Deleted       BelowBaseline     -44.79 kB
office-ui-fabric-react fluentui-react-Styling 44.812 kB  Deleted       BelowBaseline     -44.812 kB
office-ui-fabric-react fluentui-react-Layer 45.664 kB  Deleted       BelowBaseline     -45.664 kB
office-ui-fabric-react fluentui-react-Shimmer 47.265 kB  Deleted       BelowBaseline     -47.265 kB
office-ui-fabric-react fluentui-react-northstar-Flex 48.871 kB  Deleted       BelowBaseline     -48.871 kB
office-ui-fabric-react fluentui-react-Icon 49.74 kB  Deleted       BelowBaseline     -49.74 kB
office-ui-fabric-react fluentui-react-Check 51.062 kB  Deleted       BelowBaseline     -51.062 kB
office-ui-fabric-react fluentui-react-FocusZone 53.163 kB  Deleted       BelowBaseline     -53.163 kB
office-ui-fabric-react fluentui-react-ScrollablePane 53.331 kB  Deleted       BelowBaseline     -53.331 kB
office-ui-fabric-react fluentui-react-Slider 55.4 kB  Deleted       BelowBaseline     -55.4 kB
office-ui-fabric-react fluentui-react-PersonaPresence 55.928 kB  Deleted       BelowBaseline     -55.928 kB
office-ui-fabric-react fluentui-react-ChoiceGroupOption 56.601 kB  Deleted       BelowBaseline     -56.601 kB
office-ui-fabric-react fluentui-react-northstar-Animation 56.773 kB  Deleted       BelowBaseline     -56.773 kB
office-ui-fabric-react fluentui-react-Checkbox 57.791 kB  Deleted       BelowBaseline     -57.791 kB
office-ui-fabric-react fluentui-react-northstar-Portal 59.811 kB  Deleted       BelowBaseline     -59.811 kB
office-ui-fabric-react fluentui-react-ChoiceGroup 63.054 kB  Deleted       BelowBaseline     -63.054 kB
office-ui-fabric-react fluentui-react-Icons 65.829 kB  Deleted       BelowBaseline     -65.829 kB
office-ui-fabric-react fluentui-react-ActivityItem 68.833 kB  Deleted       BelowBaseline     -68.833 kB
office-ui-fabric-react fluentui-react-PositioningContainer 69.875 kB  Deleted       BelowBaseline     -69.875 kB
office-ui-fabric-react fluentui-react-MarqueeSelection 71.512 kB  Deleted       BelowBaseline     -71.512 kB
office-ui-fabric-react fluentui-react-Utilities 71.563 kB  Deleted       BelowBaseline     -71.563 kB
office-ui-fabric-react fluentui-react-northstar-Grid 72.891 kB  Deleted       BelowBaseline     -72.891 kB
office-ui-fabric-react fluentui-react-northstar-Image 76.159 kB  Deleted       BelowBaseline     -76.159 kB
office-ui-fabric-react fluentui-react-northstar-Text 76.755 kB  Deleted       BelowBaseline     -76.755 kB
office-ui-fabric-react fluentui-react-northstar-TextArea 76.883 kB  Deleted       BelowBaseline     -76.883 kB
office-ui-fabric-react fluentui-react-Keytip 76.941 kB  Deleted       BelowBaseline     -76.941 kB
office-ui-fabric-react fluentui-react-northstar-Header 77.448 kB  Deleted       BelowBaseline     -77.448 kB
office-ui-fabric-react fluentui-react-northstar-Box 77.974 kB  Deleted       BelowBaseline     -77.974 kB
office-ui-fabric-react fluentui-react-northstar-Layout 78.055 kB  Deleted       BelowBaseline     -78.055 kB
office-ui-fabric-react fluentui-react-northstar-Video 78.187 kB  Deleted       BelowBaseline     -78.187 kB
office-ui-fabric-react fluentui-react-TextField 78.41 kB  Deleted       BelowBaseline     -78.41 kB
office-ui-fabric-react fluentui-react-Rating 78.892 kB  Deleted       BelowBaseline     -78.892 kB
office-ui-fabric-react fluentui-react-northstar-Segment 78.983 kB  Deleted       BelowBaseline     -78.983 kB
office-ui-fabric-react fluentui-react-northstar-Status 79.184 kB  Deleted       BelowBaseline     -79.184 kB
office-ui-fabric-react fluentui-react-Callout 79.192 kB  Deleted       BelowBaseline     -79.192 kB
office-ui-fabric-react fluentui-react-northstar-Divider 79.414 kB  Deleted       BelowBaseline     -79.414 kB
office-ui-fabric-react fluentui-react-northstar-Reaction 80.16 kB  Deleted       BelowBaseline     -80.16 kB
office-ui-fabric-react fluentui-react-northstar-Skeleton 80.46 kB  Deleted       BelowBaseline     -80.46 kB
office-ui-fabric-react fluentui-react-northstar-Label 80.804 kB  Deleted       BelowBaseline     -80.804 kB
office-ui-fabric-react fluentui-react-northstar-ItemLayout 80.989 kB  Deleted       BelowBaseline     -80.989 kB
office-ui-fabric-react fluentui-react-northstar-Loader 81.579 kB  Deleted       BelowBaseline     -81.579 kB
office-ui-fabric-react fluentui-react-Tooltip 82.446 kB  Deleted       BelowBaseline     -82.446 kB
office-ui-fabric-react fluentui-react-northstar-Breadcrumb 82.964 kB  Deleted       BelowBaseline     -82.964 kB
office-ui-fabric-react fluentui-react-northstar-Checkbox 83.063 kB  Deleted       BelowBaseline     -83.063 kB
office-ui-fabric-react fluentui-react-northstar-Avatar 83.329 kB  Deleted       BelowBaseline     -83.329 kB
office-ui-fabric-react fluentui-react-northstar-Table 84.172 kB  Deleted       BelowBaseline     -84.172 kB
office-ui-fabric-react fluentui-react-northstar-Embed 84.77 kB  Deleted       BelowBaseline     -84.77 kB
office-ui-fabric-react fluentui-react-northstar-Card 85.931 kB  Deleted       BelowBaseline     -85.931 kB
office-ui-fabric-react fluentui-react-northstar-Button 86.433 kB  Deleted       BelowBaseline     -86.433 kB
office-ui-fabric-react fluentui-react-northstar-RadioGroup 86.755 kB  Deleted       BelowBaseline     -86.755 kB
office-ui-fabric-react fluentui-react-northstar-Pill 86.879 kB  Deleted       BelowBaseline     -86.879 kB
office-ui-fabric-react fluentui-react-northstar-Slider 87.909 kB  Deleted       BelowBaseline     -87.909 kB
office-ui-fabric-react fluentui-react-Coachmark 88.666 kB  Deleted       BelowBaseline     -88.666 kB
office-ui-fabric-react fluentui-react-northstar-Accordion 89.075 kB  Deleted       BelowBaseline     -89.075 kB
office-ui-fabric-react fluentui-react-Modal 89.871 kB  Deleted       BelowBaseline     -89.871 kB
office-ui-fabric-react fluentui-react-northstar-Attachment 90.341 kB  Deleted       BelowBaseline     -90.341 kB
office-ui-fabric-react fluentui-react-northstar-Alert 91.103 kB  Deleted       BelowBaseline     -91.103 kB
office-ui-fabric-react fluentui-react-northstar-Tree 91.442 kB  Deleted       BelowBaseline     -91.442 kB
office-ui-fabric-react fluentui-react-northstar-Input 91.733 kB  Deleted       BelowBaseline     -91.733 kB
office-ui-fabric-react fluentui-react-HoverCard 92.164 kB  Deleted       BelowBaseline     -92.164 kB
office-ui-fabric-react fluentui-react-northstar-List 92.24 kB  Deleted       BelowBaseline     -92.24 kB
office-ui-fabric-react fluentui-react-ExtendedPicker 94.558 kB  Deleted       BelowBaseline     -94.558 kB
office-ui-fabric-react fluentui-react-northstar-Provider 94.914 kB  Deleted       BelowBaseline     -94.914 kB
office-ui-fabric-react fluentui-react-northstar-Form 96.154 kB  Deleted       BelowBaseline     -96.154 kB
office-ui-fabric-react fluentui-react-KeytipLayer 98.227 kB  Deleted       BelowBaseline     -98.227 kB
office-ui-fabric-react fluentui-react-WeeklyDayPicker 98.664 kB  Deleted       BelowBaseline     -98.664 kB
office-ui-fabric-react fluentui-react-Keytips 100.981 kB  Deleted       BelowBaseline     -100.981 kB
office-ui-fabric-react fluentui-react-northstar-Carousel 109.432 kB  Deleted       BelowBaseline     -109.432 kB
office-ui-fabric-react fluentui-react-Persona 109.926 kB  Deleted       BelowBaseline     -109.926 kB
office-ui-fabric-react fluentui-react-PersonaCoin 109.926 kB  Deleted       BelowBaseline     -109.926 kB
office-ui-fabric-react fluentui-react-northstar-Tooltip 112.1 kB  Deleted       BelowBaseline     -112.1 kB
office-ui-fabric-react fluentui-react-northstar-Dialog 117.057 kB  Deleted       BelowBaseline     -117.057 kB
office-ui-fabric-react fluentui-react-GroupedListV2 118.234 kB  Deleted       BelowBaseline     -118.234 kB
office-ui-fabric-react fluentui-react-Calendar 118.64 kB  Deleted       BelowBaseline     -118.64 kB
office-ui-fabric-react fluentui-react-ColorPicker 127.834 kB  Deleted       BelowBaseline     -127.834 kB
office-ui-fabric-react fluentui-react-GroupedList 130.546 kB  Deleted       BelowBaseline     -130.546 kB
office-ui-fabric-react fluentui-react-northstar-Menu 132.497 kB  Deleted       BelowBaseline     -132.497 kB
office-ui-fabric-react fluentui-react-northstar-Popup 138.468 kB  Deleted       BelowBaseline     -138.468 kB
office-ui-fabric-react fluentui-react-ContextualMenu 148.26 kB  Deleted       BelowBaseline     -148.26 kB
office-ui-fabric-react fluentui-react-northstar-Chat 159.446 kB  Deleted       BelowBaseline     -159.446 kB
office-ui-fabric-react fluentui-react-northstar-MenuButton 168.377 kB  Deleted       BelowBaseline     -168.377 kB
office-ui-fabric-react fluentui-react-Grid 173.555 kB  Deleted       BelowBaseline     -173.555 kB
office-ui-fabric-react fluentui-react-ButtonGrid 173.555 kB  Deleted       BelowBaseline     -173.555 kB
office-ui-fabric-react fluentui-react-DatePicker 178.302 kB  Deleted       BelowBaseline     -178.302 kB
office-ui-fabric-react fluentui-react-SearchBox 180.619 kB  Deleted       BelowBaseline     -180.619 kB
office-ui-fabric-react fluentui-react-northstar-Toolbar 180.854 kB  Deleted       BelowBaseline     -180.854 kB
office-ui-fabric-react fluentui-react-Nav 180.903 kB  Deleted       BelowBaseline     -180.903 kB
office-ui-fabric-react fluentui-react-Pivot 181.879 kB  Deleted       BelowBaseline     -181.879 kB
office-ui-fabric-react fluentui-react-MessageBar 182.244 kB  Deleted       BelowBaseline     -182.244 kB
office-ui-fabric-react fluentui-react-SwatchColorPicker 183.524 kB  Deleted       BelowBaseline     -183.524 kB
office-ui-fabric-react fluentui-react-SpinButton 184.298 kB  Deleted       BelowBaseline     -184.298 kB
office-ui-fabric-react fluentui-react-northstar-SplitButton 184.697 kB  Deleted       BelowBaseline     -184.697 kB
office-ui-fabric-react fluentui-react-Button 187.81 kB  Deleted       BelowBaseline     -187.81 kB
office-ui-fabric-react fluentui-react-Panel 191.993 kB  Deleted       BelowBaseline     -191.993 kB
office-ui-fabric-react fluentui-react-Breadcrumb 193.517 kB  Deleted       BelowBaseline     -193.517 kB
office-ui-fabric-react fluentui-react-northstar-Datepicker 193.768 kB  Deleted       BelowBaseline     -193.768 kB
office-ui-fabric-react fluentui-react-CommandBar 194.629 kB  Deleted       BelowBaseline     -194.629 kB
office-ui-fabric-react fluentui-react-TeachingBubble 197.417 kB  Deleted       BelowBaseline     -197.417 kB
office-ui-fabric-react fluentui-react-Dialog 202.412 kB  Deleted       BelowBaseline     -202.412 kB
office-ui-fabric-react fluentui-react-Facepile 203.429 kB  Deleted       BelowBaseline     -203.429 kB
office-ui-fabric-react fluentui-react-northstar-Dropdown 203.774 kB  Deleted       BelowBaseline     -203.774 kB
office-ui-fabric-react fluentui-react-DocumentCard 208.519 kB  Deleted       BelowBaseline     -208.519 kB
office-ui-fabric-react fluentui-react-SelectedItemsList 224.073 kB  Deleted       BelowBaseline     -224.073 kB
office-ui-fabric-react fluentui-react-DetailsList 224.651 kB  Deleted       BelowBaseline     -224.651 kB
office-ui-fabric-react fluentui-react-Dropdown 224.727 kB  Deleted       BelowBaseline     -224.727 kB
office-ui-fabric-react fluentui-react-TimePicker 231.801 kB  Deleted       BelowBaseline     -231.801 kB
office-ui-fabric-react fluentui-react-FloatingPicker 233.667 kB  Deleted       BelowBaseline     -233.667 kB
office-ui-fabric-react fluentui-react-ShimmeredDetailsList 235.403 kB  Deleted       BelowBaseline     -235.403 kB
office-ui-fabric-react fluentui-react-ComboBox 241.649 kB  Deleted       BelowBaseline     -241.649 kB
office-ui-fabric-react fluentui-react-Pickers 284.117 kB  Deleted       BelowBaseline     -284.117 kB

ExceedsTolerance Over Tolerance (1024 B) ExceedsBaseline Over Baseline BelowBaseline Below Baseline New New Deleted  Removed 1 kB = 1000 B

Baseline commit: 915acd693ae5c9ad8995d0cb952e804e9fd3e120 (build)

@fabricteam
Copy link
Collaborator

🕵 fluentuiv9 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Jul 12, 2023

🕵 fluentuiv9 No visual regressions between this PR and main

@levithomason levithomason force-pushed the lethoma/docs-anatomy branch from d01b355 to 57c126f Compare July 12, 2023 23:05
@ValentinaKozlova ValentinaKozlova requested review from tudorpopams and removed request for tudorpopams July 13, 2023 12:27
@levithomason levithomason changed the title RFC: Docs Component Anatomy RFC: Docs Component Anatomy & Audit Jul 14, 2023
@levithomason levithomason force-pushed the lethoma/docs-anatomy branch from 4e6a4d7 to 12e9669 Compare July 24, 2023 21:10
@spmonahan
Copy link
Contributor

  1. Do we care about consistency?
  2. Is inconsistency a problem worth solving?
  3. Should we we automate conformance?

We have conformance tests for component class names which align with component anatomy so I think we do care about consistency and we can automate it, though this analysis shows we have room to improve on this front 🙂

@levithomason levithomason force-pushed the lethoma/docs-anatomy branch from ed69458 to baea991 Compare August 3, 2023 21:21
@layershifter
Copy link
Member

Closing for housekeeping 🏡 Feel free to re-open 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants