Giter VIP home page Giter VIP logo

buffer-components's People

Contributors

albennett avatar amooabeebadesina avatar anafilipadealmeida avatar cmunozgar avatar coxyboris avatar djfarrelly avatar draom avatar emplums avatar hamstu avatar hharnisc avatar josem avatar karelm avatar mayauribe avatar mdlockhart avatar msanroman avatar philippemiguet avatar tomredman avatar twanlass avatar

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

buffer-components's Issues

Migrating to TypeScript

Hello maintainers,

I have been working with the codebase and noticed that the API documentation for the components is currently generated using PropTypes. While PropTypes has served us well, I believe we can enhance the developer experience and potentially catch type errors more efficiently by migrating to TypeScript.

Here are a few benefits that we can obtain from this migration:

  1. Stronger Type Checking - TypeScript offers a robust type-checking system which can help catch type errors during development rather than runtime, promoting code reliability.
  2. Improved Developer Experience - Leveraging TypeScript can enhance auto-completion, and type checking features in various IDEs, which can be a boon for developers.
  3. Better Documentation - With TypeScript, we can utilize tools like TypeDoc to generate detailed API documentation automatically, improving the ease of use for end developers.

I understand that this migration can be a significant change. However, I am more than willing to allocate some of my weekends to initiate this process and perhaps carry out the migration incrementally to lessen the burden on the team. Before proceeding, I'd like to hear your thoughts on this and whether you see potential value in transitioning to TypeScript.

Thank you for considering this enhancement, and I look forward to hearing from you.

[InputTime] Change range of hour selection

Heya team,

Colin noticed something odd with 12 hour time with the hour range. It goes from 12 -> 11. This feels a bit odd.

screen shot 2017-06-13 at 1 52 54 pm

If you look at other parts of the app, we use 1->12 regardless of AM or PM.
screen shot 2017-06-13 at 12 40 42 pm
I'm curious if we could make this change? It feels a bit more intuitive and makes things consistent too.

I looked into getting this fix in there, but got a bit stumped on the genArray function in InputTime to get this to work. Any ideas on how how to get this working and not create any breaking changes for the DateTimeForm (in buffer-web-components)?

cc @hharnisc & @stevemdixon

Default prop for alt in Image should be ""

Hey there!

Wondering if we could change the default prop for the alt property in the Image component to be an empty string instead of "Image"? The best practice here would to leave an empty alt text as alt="image" would create a bit of redundancy in the screen reader! :) It would read: "image image" in this case!

More about funky alt text edge cases here: http://webaim.org/techniques/alttext/

Happy to make a PR for this one, but wanted to make an issue first!

[InputTime] Remove margin-right on minutes using 24-hour setting

marginRight is applied to each select element within InputTime. This feels smooth for the 12-hour state as the AM/PM select doesn't have marginRight. I'm curious if we can apply this same behavior to the 24-hour state as we're seeing a slight misalignment when centering InputTime.

With marginRight on minutes:

screen shot 2017-06-15 at 12 19 38 pm

Without marginRight on minutes:

screen shot 2017-06-15 at 12 19 47 pm

[Button noStyle] Vertical alignment not center

When setting the noStyle prop on a Button component that contains no text, the child is no longer vertically centered. This is apparent when setting an Icon component as the child.

Screenshot:
screen shot 2017-06-15 at 11 02 17 am

How to replicate
See the ScheduleTable component in buffer-web-components.

Switch input labels to use <label> element

Heya @hharnisc @alvarezmelissa87 @stevemdixon!

Just a heads up on an axe-core error I'm seeing while adding the tests - it looks like we're using a div element for the input labels instead of a <label>

const renderLabel = ({ label }) => (
  label ? (
    <div style={labelStyle}>
      <Text>{label}</Text>
    </div>
  ) : null
);

I wonder if instead of using a <Text> component for this we could use the native <label> component? That way screen readers have an easier time knowing which label is associated to which input.

Here's an example of how we might do that:

const renderLabel = ({ label }) => (
  label ? (
    <label for={id}>{label}</label>
  ) : null
);

The only thing tricky about this is that I believe we'll need a unique id for each instance of the input in order to associate the label with a particular <input>

Update Button component to use new UI styling

My local copy of the Buffer Style Guide has the new UI from Dave O.'s style guide Sketch file. Rather than working on pushing that live, it feels great to migrate those changes to the Button component itself here.

Add icon set as configs of Icon/components

We're finding some undesirable effects caused by having our icon set as a font such as undeterminable icon element sizes (due to font properties and values), and so it feels like a signal to explore SVGs instead.

Add [disabled] state for Button

Description

To add a disabled state to the button when the disabled attribute is present. It doesn't seem that we have this on our style-guide. We'd want this for all styles of the button.

We can use the attribute selector to target this:

.Button[disabled] {
  // ...
}

Add text input to InputDate

From Slack:

Wanted to bring up an accessibility thought around our date pickers! I think this is mentioned in Inclusive Design Patterns, but a common a11y pattern for date pickers is to also include a combo box or text input that users can type their date in directly - this lets users on screen readers skip having to keyboard navigate through all the dates in a month! We just got some more feedback about this from a blind user who is having a hard time scheduling posts in Buffer because our current Date Picker doesn’t include a combo box: https://secure.helpscout.net/conversation/359539095/1081589/

Here's an example of how this can be implemented in react-day-picker:
http://react-day-picker.js.org/examples/?input

Here's Dave's mockup of what this might look like! :D
image

Tree Shaking

When we've got multiple (let's say 40) components and we only need to consume 1, how do we pull in 1 component without pulling in all 40 and bloating the code?

[ProfileBadge]

This piece of UI is now in our schedule setting and Org. Admin. Feels like a good spot to perhaps add this as a component to our component library!

Design:
image

Overlay

We need to create a component that will provide an "overlay" piece of UI that will allow modals and other content to sit on top of it while still making the UI underneath the Overlay slightly visible.

Minor update to NavBar component

Purpose

After a quick catch up with @docal56, it feels like we want to make three changes with the appearance of this component:

  • modify the font-weight from 600 to 400
  • introduce a container that sets the inner content to be 61.25em (980px equivalent)

Things to Note

Our external pages use the same UI so any changes we make here will be replicated and made on buffer-web. πŸ‘

Review

Hey, @hharnisc! Feels great to perhaps review how these changes might impact the use of this component in the Buffer video service! πŸ˜„

React Dependency Conflicts When Importing Into Other Projects

What happens when there is a conflict in react dependencies between the component library and the app consuming project? Seems there are a few possibilities:

  • Webpack packages both versions side by side
  • Only the new version is packaged with webpack
  • Breaks entirely
  • ???

Minor update to revisit typography.css

@Alex-ray made a great point that the styles being inherited by components from buffer-components being used in buffer-web seem to be having some interesting effects, which causes us to override them in buffer-web. It feels great to visit this one and see how we can detach this inheritance of typography completely.

CSS Modules v. ReactCSS Questions

Performance

With the performance optimizations browsers make when loading stylesheets and rendering the dom (layout + paint) caching styles between components with the same classname, would ReactCSS not allow us to take advantage of this built in browser help? Does rendering all the styles in the DOM slow down React rendering times for large apps?
https://byjoeybaker.com/react-inline-styles
https://vineetgupta22.wordpress.com/2011/07/09/inline-vs-internal-vs-external-css/

Writing CSS v. writing JS CSS properties

Is it easier for designers and devs to write CSS as CSS modules or are people comfortable writing the js properites? ex. border-radius v. borderRadius

Re-use of base CSS or global CSS for elements

Where does global element/base css exist for things like body, h1? What about normalize.css?

Other questions?

Safari rendering issue on all `<Button noStyle />`

All components that use the noStyle config of the Button component don't render any text in Safari when using lineHeight: 0. Setting lineHeight like this allows instances of Button with an Icon as its only child to have Icon perfectly center. It feels like we might need to explore an alternative solution with perhaps a last resort being a child-type specific config of Button.

Add label to Select component

Since the Select component uses a form element (<select>), it requires a label.

This has got me thinking if it might be useful to have some sort of option or additional component that would allow us to hide a form element label visually but keep it discoverable to screen readers? It seems like there might be a few places where a form element doesn't necessarily need a visual label because the element makes sense contextually to visual users, but would be helpful for users on screen readers?

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.