CascadiaFest: CSS Morning Talks Part 1 Notes

First day of CascadiaFest is CSS day. Here are my notes from the first part of the morning talks.

Alan Mooiman: CSS is dead, long live CSS

There is a trend where we declare something dead much like a monarch.

CSS Preprocessors

clearly useful:

  • code organization
  • customizable
  • DRY-ness

They give you a lot of flexibility, but there are some problems. Not necessarily the language, but how they’re used.

Problems

Nesting

  • can be taken too far
  • need to think about the processing impact

deprecation

  • doesn’t happen a lot, but it does

configuration

  • e.g. different versions

abstraction

  • remember: it compiles down to CSS

CSS Will Save Us

Preprocessors save us from CSS
CSS will save us from preprocessors

Flexbox

  • has finally come into play
  • allows for dynamic layouts
  • will change the size of children
  • content and presentation layers are further separated

CSS Grid Layout Module

  • useful for prescribing layout
  • more layout options

Variables

  • one of the easiest selling points of preprocessors
  • becoming native in CSS
  • implemented in Firefox
  • do have to add scope
  • can do more than preprocessor variables
  • e.g. div colour hot pink, add green, turns white

Extends

  • processes can inherit
  • easier to implement natively?
  • proposal: https://tabatkins.github.io/specs/css-extend-rule/

Mixins

  • e.g. vendor prefixes
  • will start to go away

CSS Extensions

  • super early, theoretical discussion
  • custom-selector
  • variables for selectors

Web Components

  • might solve the global scope problem
  • … eventually

@import

  • HTTP/2
  • better to make separate requests
  • help browsers figure out what to load instead of one massive file
  • will help with caching

Container Queries

  • theoretical query where it’s based on the parent’s container instead of just based on viewport
  • may need to sprinkle in JS magic to get it working as desired
  • http://dev.w3.org/csswg/css-containment/

Preprocessors are a great testing ground

The idea was to show how some programming will greatly simplify things, and that’s happening.

So what do we do?

Both are going to be useful

Should keep using progressive enhancement to bring in new “shinies”.

The king isn’t dead, he’ just planning what’s best for his subjects.

Long Live CSS

Jeff Lembeck: The Design of Developing

Starting working through the book, The Family Meal. It’s about how we communicate, make things more accessible,

A better understanding of how end users’ minds’ worked, it would completely change development.

We use lots of tools that are supposed to help us better interface with the computer, but you will find at least one complaint about each tool.

Wrote Frontacon, which was a tool written over the weekend. Once public, got lots of issues.

If you want to build a project that people trust.

First: Write integration tests, will know that what things work now isn’t broken.

Second: Postel’s Law: Be conversative in what you do, and be liberal in what you accept from others.

  • be consistent
  • be output heavily documented
  • throw clear errors when appropriate

The Patterns

The Filter Pattern

  • takes data, pipes into transformer, pipes into files

The Cantrip Pattern

  • run a command, no standard output, something happened along the way
  • error to go with side effect

The Source Pattern

*

The
* read input, transform, write files
* not standard in / out, because write files
* e.g. grunt tasks

Patterns breed familiarity. Makes intentions more transparent. Establish ease of use. Less cognitive overhead.

Write programs that do one thing and do it well, and work well with others.

The Unix Philosophy

  • users want each function separately anyway
  • maintenance was easier
  • tests were easier
  • small, simple

Community

  • can’t go at it alone, will wear you down
  • let them know you hear them
  • setup contribution guidelines and code of conduct
  • it’s all about people and interacting with people
  • make code style decisions early
  • trust those that offer to help
  • utilize your already existing tools
  • as a user, remember to be kind

What it all comes to is understanding the user and their problem and how the tool can solve it.

empathy in creation

Be aware that you’re a little bit blind due to your domain knowledge.

You’re building this to be used

If you want to build something different, then start with empathizing with your users.

Let’s go out and build some stuff

Amy Lynn Taylor: Remote and better for it

Works remotely from Portland.

Thanks to the internet, many of us can work from anywhere.

Remote work can be challenging, but the payoffs can be huge.

Live wherever you want. Travel wherever you want.

The fun stuff was still happening, but missing out when working remotely. Lacking sense of togetherness.

But more important information in accessible places. More connections, the better things got.

One of the most important choices: You are a leader.

As a leader, choose to make the health, happiness and positivity of your team a priority.

Building and maintaining an awesome team is everyone’s job.

Common Problems

  • Communication is a struggle.
  • it can be hard to find information they need
  • feel out of sync
  • feel and pain of missing out

Solutions

The more we solve the problems for remote workers, the more we solve problems for the entire team.

It doesn’t matter how physically close or far if we don’t actively seek to connect with our team.

Proximity without connections is useless.

  • put people first
  • share your goals – find and focus on things that unite you, Who do you want to be together?
  • connect on a regular basis: be vulnerable, watch your tone – e.g. deeper daily check-ins, talk about tasks, but also go a little deeper. Talk about their lives. The thing that has connected us the most, because it humanizes everyone on the team.
  • communicate well with kindness and respect
  • handle bad news with extreme care
  • have fun together e.g. cheesy ice breakers
  • put everything important in a place where the whole team knows to look for it

When your face can’t be there to express yourself, use emoji as an alternative.

  • express gratitude and often
  • put it on the schedule
  • do 1:1, not just manager, peer to peer, video chats helps to feel connected and see faces
  • show and tell, ongoing team chat
  • find ways for remote people to join in at the office!
  • inside jokes e.g. team chats
  • get together IRL

There is no magic that creates a great team. THre are just people, choosing to work towards great things together.

Anything we can do, you can do better. You’re all leaders, all creative, you’re all completely capapble of bringing magical feeling into your workplace. Be intentional, creative, kind, respectful, vulnerable, listen, and have fun.

Break Time

artic fox