Giter VIP home page Giter VIP logo

yamui's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yamui's Issues

Provide <Fabric /> component's functionality as a utility

Fabric expects us to wrap our app in a component. This component adds font styles for the rest of the app, and will eventually handle language-specific fonts for us. We cannot wrap Yammer.com in a component since most of Yammer is not React.

Fabric engineers recognize this issue and recommend we contribute to office-ui-fabric-react by extracting the component's functionality into a utility module. This utility module would allow us to provide an HTML element and would keep its list of CSS classes (and associated glamor styles) up to date as they change.

This does not block development as our Storybook app will wrap its stories in a component, but this does block us from integrating with YamJS.

Links generating visual glitch on cursor

I'm attaching a video with the problem using a FakeLink component, I'm not sure if this is also happening on regular links.

Basically, the whenever you hover a link it's switching the cursor between: 'regular - text selector - pointer' generating a visual glitch that doesn't feel right.

That's not how the cursor behaves normally against interactive elements or links.

preview

Module: Rightrail

Ready to go to start implementation.

Make sure to ping me or Manuel to make a review before starting to implement anything so we can tackle issues, questions, and doubts in advance.

zpl.io/anokGGJ

Remove autoprefixer

BackstopJS uses a version of PhantomJS which doesn't support flexbox and some other CSS3 styles. We should keep an eye on this issue and see if we can remove autoprefixer when it's resolved:
garris/BackstopJS#358

In the meantime we're using the same version and config as our client application

Add color to Block

We have cases where Text is nested in Block just for color. If Block has color then these would not be necessary. It would also help people get correct line-heights easier since Block will always have the correct line-height. It will also let us remove some override CSS in MediaObject.

Persona shows flash of color/initials even when passing image to Avatar

For example, if it's a deleted group, you might see a color flash before it displays the no_photo icon. I only mention this example because it's bright and then dull and so it stands out. Someone might think it's a peek at a deleted group image -- they see content that is quickly replaced

Restrict SuggestionsList to vertical alignment

Need to add a new directionalHint option to Fabric's Callout. Ideas:

  1. Add prop directionalHintFixedAxis = 'horizontal' | 'vertical' to restrict placement to only top/bottom or only left/right
  2. Add directionalHintAllowedPlacements = DirectionalHint[] to provide a list of allowed positions the Callout can be aligned to

Component: Tooltip

Ready to go to start implementation.

Make sure to ping me or Manuel to make a review before starting to implement anything so we can tackle issues, questions, and doubts in advance.

http://zpl.io/VKEe8d7

Extract Examples

From #127:
"As a solution, I was thinking of using the updateExample property, extracting all examples to their own separate files, and compiling them with tsc. That'd also solve the issue you cited of not being able to use your IDE to write examples."

Add screenreaderText prop to Text component

This will use aria-hidden to hide the Text component's content from screenreaders while rendering a ScreenreaderText component with the given string. Note that Text's render() method will need to return 2 elements (one visible, one available for screenreaders), so either needs additional markup to expose the screenreaderText, or wait until clients upgrade to React 16.2 and return a Fragment

Button aria attributes

Button's aria-labelledby attribute has a number value, should be removed entirely? Maybe aria-disabled isn't necessary if disabled is already present?

Tooltips do not work when placed in an overflow:hidden parent

Yammer message byline uses <Text maxWidth="100%"> to ellipsis extra text, which uses overflow:hidden. User names and "reply to" text use Tooltips, which will be hidden by the wrapping ellipsis.

Should probably change Tooltip to use the default layer behavior

Module: PreviewCard

Ready to go to start implementation.

Make sure to ping me or Manuel to make a review before starting to implement anything so we can tackle issues, questions, and doubts in advance.

http://zpl.io/Vq1Ne3Z

Visual diffs depend on CDN Segoe font, which is not always reachable

Last week I ran the visual snapshot tool on master viay run test:visual and most of the tests failed for font-related reasons. Further investigation with @unindented revealed that the Segoe font was not loading properly.

We should save a copy of the Segoe font in YamUI and reference it locally to prevent network flakiness from failing our test suite.

Missing border-radius

Hello, team!

Some components are missing the border-radius 1px that we tend to use resulting in hard edges that we want to avoid in the final implementation.

Examples of this are hovercards, suggestions, and pretty much all the components that are floating on top of things with a shadow applied.

@mamuso was mentioning that was related to a bug and the overflow but I'm not completely sure what that means.

Could we fix it at some point?

Implement an error logging solution

For things like passing the wrong number of initials to Avatar. Do we throw errors and break the UI for customers, just log to the console for devs to see, or maybe provide a logger event emitter and let clients subscribe to error events and report them?

Simplify component examples, separate visual-diff-only examples

It's a little hard to read the docs as many components have several and/or complicated examples. We should move anything that's only for visual diffs to a new section. Proposal:

Sections:

  • Intro. How to consume YamUI in your app
  • Components. Simple, clear docs on what a component does, what it should or shouldn't be used for, and simple examples for relevant props. Maybe in the future break them up into categories (layout, forms, interactive components) but not necessary at the moment.
  • Demos. Examples of common component compositions - hovercards, button action bars, etc.
  • Visual tests. These are really only there for visual tests and shouldn't be clogging up the component docs. Would be nice to keep these near their respective components though, maybe use a naming convention like ComponentName.visual.md?

and continue visual-diffing all examples

Make it easier to create a new component

@rese had trouble creating a new component. Styleguidist only recognizes class components, not function components. Also copying an existing folder and renaming things is complex and error prone.

Maybe we can provide a yeoman generator?

Consider an alternate solution for CSS styling

We take a strong stance against metaprogramming for good reason. In CSS this means avoiding dynamic construction of classnames/selectors so we can easily find those classnames and selectors in our codebase.

This makes a lot of sense in our large application repo. It's not as much of a concern in YamUI where we know exactly where a component's CSS lives.

We currently have several CSS files where selectors for enumerated values like padding/gutters/font-sizes are manually copy+pasted. This is error prone and requires us to own more lines of code. It could be nice to take advantage of PreCSS to make this code more DRY. A few examples:
https://github.com/Microsoft/YamUI/blob/master/src/components/Block/Block.css#L10
https://github.com/Microsoft/YamUI/blob/master/src/components/FixedGrid/FixedGrid.css#L9
https://github.com/Microsoft/YamUI/blob/master/src/components/LayoutList/LayoutList.css#L26
https://github.com/Microsoft/YamUI/blob/master/src/components/Text/Text.css#L43

Another option would be to use a CSS-in-JS solution. We could use Fabric's styling package to avoid additional overhead, and this would allow us to remove CSS classes/logic for gutter sizes, padding, etc.

Component: Lists (ordered & unordered)

Ready to go to start implementation.

Make sure to ping me or Manuel to make a review before starting to implement anything so we can tackle issues, questions, and doubts in advance.

Note: keep in mind that the numbered lists are slightly different than the default ones, the gap between the number and the label is consistent with the discs on the unordered lists (but that's not the default on CSS, we need custom stuff there). This may help: https://www.w3.org/Style/Examples/007/color-bullets.en.html

Zeplin: http://zpl.io/VkKNMXL

TS6059 Error: 'rootDir' is expected to contain all source files

The index.ts file is now copied to public output directory:
https://github.com/Microsoft/YamUI/blob/master/config/icons/generate.js#L30
which seems to be the reason I'm getting this error when running local dev server via npm start:

Failed to compile.
/Users/piotrblazejewicz/git/YamUI/tsconfig.json
[tsl] ERROR
      TS6059: File '/Users/piotrblazejewicz/git/YamUI/dist/components/Icon/icons/index.ts' is not under 'rootDir' '/Users/piotrblazejewicz/git/YamUI/src'. 'rootDir' is expected to contain all source files.

full output: https://gist.github.com/peterblazejewicz/54a0db7fe4f7d540b95ff02c2da11616

I though about changing tsconfig.json excluding dist directory sources (*.ts)

Thanks!

Component: SuggestionsList (Typeahead)

Ready to go to start implementation.

Make sure to ping me or Manuel to make a review before starting to implement anything so we can tackle issues, questions, and doubts in advance.

zpl.io/aXKp7Rj

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.