cascadiajs / 2015.cascadiajs.com

The official repo for the CascadiaJS 2015 conference
MIT License
54 stars 29 forks source link

UI components with a pre-processor based supporting architecture #35

Closed blackfalcon closed 9 years ago

blackfalcon commented 9 years ago

UI components with a pre-processor based supporting architecture

Building a UI is hard, building a UI that is scaleable is harder and building a UI that is scaleable and easy to maintain is almost impossible. That is, unless you really begin to think about things from the perspective of a component architecture.

Let us not forget that all the amazing things being talked about these days, that new functional and custom components in the DOM require a presentation layer. How we attach presentation to the UI is not as simple as applying functionality in most cases. There is a lot of code and there are a lot of really confusing archetypes out there, and I have seen countless examples where CSS has gone horribly wrong.

OOCSS, SMACSS and BEM are all good ideas, but all have major flaws. You can't simply follow one theoretical process and expect it to always work. Frameworks like Bootstrap and Foundation make attempts to make this 'easier' but all they created was a huge abstraction from what needs to be done and made solutions harder to learn and application code bases harder to maintain.

Have you seen classes like:

.primaryPanel__customerSearch__toggle__filter--outer-width

This is when your CSS is BEEEM'ing with overly excited naming conventions.

Then there is the use of constructed classes, SMACSS style .is-disabled, to apply presentation of state where common attributes are more appropriate or the use of ARIA rules will add real accessibility semantics. And then do we even need to talk about .mr20, .margin_left_22px, btn-small and .btn-red, a means of strictly adhering presentation to the DOM unnecessarily.

Quick audience poll: Do you use Bootstrap? Do you write inline CSS? o_O

In my talk I will speak to the new trends in building a component type architecture that is supported by a scaleable and extendable CSS architecture that leverages better organization techniques offered to us via pre-processors. In addition I will give examples of how to use real semantics versus just adding more classes and extraneous javascript for the sake of adding presentation and experience. .is-active != aria-selected, just saying.

Speaker Bio

avatar

Hi, I am Dale. I split my time between San Francisco where I am Senior UI Architect for AppDirect, and Seattle where I am a Lead Instructor for Code Fellows' Web Development Accelerator. When I am not up all night coding, I am very involved in the Sass community, locally and nationally. A core contributor to SassMeister, co-authoring the book 'Sass in the Real World' and write for various blogs.

In those rare moments when I can actually put the computer down, I enjoy spending time with my wife and two daughters riding bikes and enjoying the outdoors.

misscs commented 9 years ago

In my talk I will speak to the new trends in building a component type architecture that is supported by a scaleable and extendable CSS architecture that leverages better organization techniques offered to us via pre-processors

Can you elaborate as to what new trends an attendee can expect to learn about in your talk?

blackfalcon commented 9 years ago

Basically I am speaking to experiences working with Marionette and Backbone components.