Skip to content
By using Twitter’s services you agree to our Cookies Use. We and our partners operate globally and use cookies, including for analytics, personalisation, and ads.
  • Home Home Home, current page.
  • About

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @
  • Language: English
    • Bahasa Indonesia
    • Bahasa Melayu
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • English UK
    • Español
    • Filipino
    • Français
    • Hrvatski
    • Italiano
    • Magyar
    • Nederlands
    • Norsk
    • Polski
    • Português
    • Română
    • Slovenčina
    • Suomi
    • Svenska
    • Tiếng Việt
    • Türkçe
    • Ελληνικά
    • Български език
    • Русский
    • Српски
    • Українська мова
    • עִבְרִית
    • العربية
    • فارسی
    • मराठी
    • हिन्दी
    • বাংলা
    • ગુજરાતી
    • தமிழ்
    • ಕನ್ನಡ
    • ภาษาไทย
    • 한국어
    • 日本語
    • 简体中文
    • 繁體中文
  • Have an account? Log in
    Have an account?
    · Forgot password?

    New to Twitter?
    Sign up
mwichary's profile
Marcin Wichary
Marcin Wichary
Marcin Wichary
@mwichary

Tweets

Marcin Wichary

@mwichary

Writing a book about the history of keyboards: http://aresluna.org/shift-happens  · Design manager @figmadesign · Typographer · Occasional speaker · He/him

San Francisco, Calif.
Joined October 2009

Tweets

  • © 2021 Twitter
  • About
  • Help Center
  • Terms
  • Privacy policy
  • Imprint
  • Cookies
  • Ads info
Dismiss
Previous
Next

Go to a person's profile

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @

Promote this Tweet

Block

  • Tweet with a location

    You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more

    Your lists

    Create a new list


    Under 100 characters, optional

    Privacy

    Copy link to Tweet

    Embed this Tweet

    Embed this Video

    Add this Tweet to your website by copying the code below. Learn more

    Add this video to your website by copying the code below. Learn more

    Hmm, there was a problem reaching the server.

    By embedding Twitter content in your website or app, you are agreeing to the Twitter Developer Agreement and Developer Policy.

    Preview

    Why you're seeing this ad

    Log in to Twitter

    · Forgot password?
    Don't have an account? Sign up »

    Sign up for Twitter

    Not on Twitter? Sign up, tune into the things you care about, and get updates as they happen.

    Sign up
    Have an account? Log in »

    Two-way (sending and receiving) short codes:

    Country Code For customers of
    United States 40404 (any)
    Canada 21212 (any)
    United Kingdom 86444 Vodafone, Orange, 3, O2
    Brazil 40404 Nextel, TIM
    Haiti 40404 Digicel, Voila
    Ireland 51210 Vodafone, O2
    India 53000 Bharti Airtel, Videocon, Reliance
    Indonesia 89887 AXIS, 3, Telkomsel, Indosat, XL Axiata
    Italy 4880804 Wind
    3424486444 Vodafone
    » See SMS short codes for other countries

    Confirmation

     

    Welcome home!

    This timeline is where you’ll spend most of your time, getting instant updates about what matters to you.

    Tweets not working for you?

    Hover over the profile pic and click the Following button to unfollow any account.

    Say a lot with a little

    When you see a Tweet you love, tap the heart — it lets the person who wrote it know you shared the love.

    Spread the word

    The fastest way to share someone else’s Tweet with your followers is with a Retweet. Tap the icon to send it instantly.

    Join the conversation

    Add your thoughts about any Tweet with a Reply. Find a topic you’re passionate about, and jump right in.

    Learn the latest

    Get instant insight into what people are talking about now.

    Get more of what you love

    Follow more accounts to get instant updates about topics you care about.

    Find what's happening

    See the latest conversations about any topic instantly.

    Never miss a Moment

    Catch up instantly on the best stories happening as they unfold.

    1. Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      Wanted to share a bit of the process of building Selection Colors, a little @figmadesign feature I feel rather (maybe strangely) proud of. (This was originally meant to be a blog post, but the Covid-19 situation is sapping my energy…)pic.twitter.com/qD7Us8dq2V

      15 replies 50 retweets 357 likes
      Show this thread
    2. Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      Selection Colors allows you to see all the colors and styles in your selection, no matter how far deep they reach. It’s meant to help with quickly changing palettes, promoting colors to styles, cleaning up your design system, and dealing with multiple colors in text.pic.twitter.com/hNVILlckRm

      1 reply 0 retweets 17 likes
      Show this thread
    3. Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      This is my original (simple) pitch for Selection Colors. I talked to the design team, received some encouragement, and filed it away in a stash of ideas whose time is possibly to come.pic.twitter.com/EIhVYTht01

      1 reply 0 retweets 12 likes
      Show this thread
    4. Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      (I also got immediate feedback that the last part – “removing” a colour and presumably replacing it with a closest surviving one, to clean up the list – was just confusing.)

      1 reply 0 retweets 4 likes
      Show this thread
    5. Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      I honestly didn’t think a lot more about it at that point. It was one of the many explorations that designers throw around. But in the weeks and months after, I kept thinking about how nice it’d be to have something like it.

      1 reply 0 retweets 4 likes
      Show this thread
    6. Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      Some months later, @SickingJ (an engineer on the editor team) approached me, proposing working on something together during Figma’s maker week. We both realized we wanted to build something more real rather than exploratory, and chose SC from a bunch of ideas.pic.twitter.com/Sthi8dqvWW

      1 reply 0 retweets 6 likes
      Show this thread
    7. Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      For a few days, we plopped both of our computers and monitors at the same desk, and worked on this together. Jonas did more back-end work, and me front-end UI wiring, with a big overlap in the middle – and a lot of conversations.

      2 replies 0 retweets 5 likes
      Show this thread
    8. Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      We didn’t have all of it figured out; we approached this by trying to build a prototype and answer all the design questions as we went along. SC felt like the kind of project where you don’t learn that much by thinking ahead, but you can get very far by thinking *while making*.

      1 reply 0 retweets 21 likes
      Show this thread
    9. Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      Jumping to coding at this moment can be unnerving, as you can learn hard things that might make you revisit the whole idea. But we hoped the velocity of building would force us to come up with answers quicker.

      1 reply 0 retweets 2 likes
      Show this thread
      Marcin Wichary‏ @mwichary 14 Apr 2020
      • Report Tweet
      • Report NetzDG Violation

      There was another hope: Figma is complicated on the inside, and thinking of every edge case and contingency ahead of time can be suffocating.

      11:28 AM - 14 Apr 2020
      • 4 Likes
      • Radhika Parashar Dan Rubin Matt Sephton🎴
      1 reply 0 retweets 4 likes
        1. New conversation
        2. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          But as you start building, the system itself can help you out, and make design decisions *for you* – the engineering wiring and the way UI was originally put together can offer solutions, too. (Some of the scary edge and corner cases will Just Work.)

          1 reply 1 retweet 5 likes
          Show this thread
        3. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          As Jonas was teaching the front-end and back-end to talk to each other, I explored the design in more details.pic.twitter.com/8lLEfrtldF

          2 replies 0 retweets 9 likes
          Show this thread
        4. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          The initial attempts to wire things together didn’t go well 🤪, but eventually we got it running.pic.twitter.com/hUWLUlkhXt

          1 reply 0 retweets 5 likes
          Show this thread
        5. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          (You might also notice the code name Spartacus, which is my stupid inside joke – I try to have a project codenamed Spartacus at every place I work. I think this is the fourth one?)pic.twitter.com/Po5mC7EQWU

          2 replies 0 retweets 12 likes
          Show this thread
        6. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          Anyway! As we dove deeper, we started peeling off more interesting challenges. Here are some decisions we discovered we needed to make.

          1 reply 0 retweets 1 like
          Show this thread
        7. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          Should we fuse or keep separate the same colour with different transparencies? (We went with keeping them separate.)pic.twitter.com/vdNPMInk3K

          1 reply 0 retweets 10 likes
          Show this thread
        8. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          What do we do with gradients? (We decided to grab the individual colours from gradients and treat them as if they were independent.)pic.twitter.com/cXuGlp9SKd

          3 replies 0 retweets 10 likes
          Show this thread
        9. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          How do we sort styles and colours? I knew sorting colours in one axis is its own area of science (there is a different story here how I learned it the hard way) – but fortunately, we already had that solved in Document Colors.

          1 reply 0 retweets 1 like
          Show this thread
        10. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          We also decided to hide colours from hidden layers, masks (but not masked objects), layout grids, and effects like shadows. They all seemed to exist in unrelated – or inconsequential – universes and would just pollute this space.pic.twitter.com/LJqNg4rnI5

          1 reply 0 retweets 5 likes
          Show this thread
        11. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          Of course, we also had to decide on where to put SC itself, how often it should trigger (too often = overwhelming, not often enough = undiscoverable), and what was our overflow strategy.pic.twitter.com/KgCIXJyrfF

          2 replies 0 retweets 1 like
          Show this thread
        12. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          But those were the easier questions. Here’s one that was hard. Let’s say you change this colour to an already existing colour, #FFC700. What should happen?pic.twitter.com/b0kLFmfqbM

          1 reply 0 retweets 3 likes
          Show this thread
        13. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          How about now?pic.twitter.com/ijKIRazD0Y

          1 reply 1 retweet 2 likes
          Show this thread
        14. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          In other words: Should a duplicate colour be immediately fused with an existing colour, or should it stay separate (but identical)? You can make arguments for both: first when you’re cleaning up, but second when you want for two colours to trade positions.

          1 reply 1 retweet 8 likes
          Show this thread
        15. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          This wasn’t just a hard design decision. The engineering consequences of this were even more daunting; just like Auto Layout, this pushed on the very fabric of Figma, which by its nature wants to reflect things immediately, and to everyone via multiplayer.

          1 reply 1 retweet 5 likes
          Show this thread
        16. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          We really wanted to make it possible to trade two colours directly, because otherwise you would have to go through this unnatural and error-prone sequence: c = a a = b b = c

          1 reply 1 retweet 4 likes
          Show this thread
        17. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          The solution was to “freeze” the list when the colour picker was open. Only the moment you closed it, the list would get cleaned up again. (We hoped that people would figure it out.)pic.twitter.com/xndqZWMni2

          2 replies 1 retweet 17 likes
          Show this thread
        18. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          I’m vastly oversimplifying what “freezing” was (and honestly, not sure I fully understand it myself). But @SickingJ got it to work, and this enabled trading/swapping colours.pic.twitter.com/mKXdhiYXzI

          1 reply 0 retweets 9 likes
          Show this thread
        19. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          It required quite a bit of thinking and experimenting, though – see a bit of a doc that I wrote out just for the two of us to process this.pic.twitter.com/42r7SfjEa8

          1 reply 0 retweets 4 likes
          Show this thread
        20. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          We also had to solve a problem of stopping aggressive sorting. Left to its own devices, it was unnerving when your color moved up and down as you were changing it. (This is an earlier exploration where this exact thing happened.)pic.twitter.com/IJz283unJp

          1 reply 0 retweets 3 likes
          Show this thread
        21. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          We also had to solve a problem of you dragging a colour through existing colours – by default, they would automatically get fused together *as you were dragging*, which was logical… but confusing and destructive!pic.twitter.com/0ON4SOGWwW

          1 reply 1 retweet 12 likes
          Show this thread
        22. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          At the same time, we had to think about multiplayer. What if someone else changed the colour during any of the above – even in the middle of your drag? Or deleted the objects? Or edited the text you were changing?

          1 reply 1 retweet 5 likes
          Show this thread
        23. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          We continued cobbling together the prototype with code we were increasingly sure wouldn’t ever make it to production. If you‘re curious, here are all our commits. (I actually became a better engineer thanks to this process – thanks, @SickingJ!)pic.twitter.com/rezIbdjGpB

          1 reply 0 retweets 3 likes
          Show this thread
        24. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          Then we brought the prototype back to crit, and we learned a lot once again.

          1 reply 0 retweets 1 like
          Show this thread
        25. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          Mostly, our decision to decouple gradient colours was wrong – that’s just not how others thought about gradients.pic.twitter.com/JZ2hRp9XIq

          1 reply 0 retweets 5 likes
          Show this thread
        26. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          Second of all, it was annoying that you could select and go deeper into a stack of colours, but not have a way to easily get back.pic.twitter.com/u8VJHehono

          2 replies 0 retweets 2 likes
          Show this thread
        27. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          There were also smaller things. My overflow icons were confusing (one looked like a checkbox), and our triggering was off. (That was a tricky one, too. Imagine you have just one object with the same Fill and Stroke – should SC show up, or would it be too much?)pic.twitter.com/mRMRF4O87l

          1 reply 0 retweets 2 likes
          Show this thread
        28. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          We decided to build Selection Colors for real a few months later, motivated partly by… Auto Layout. We were planning to change the frames to have fills, and that ruined an existing feature where you could easily colorize an icon just by selecting a parent frame.

          2 replies 0 retweets 3 likes
          Show this thread
        29. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          I had nothing to do with code any more, save for an occasional UI fix or an icon swap. The real work was done by engineers on our team – @jessieteaa, @thejoannachen, @kenrickrilee.

          1 reply 0 retweets 4 likes
          Show this thread
        30. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          Immediately, they found some more real-life problems, one of them being performance. (Long story short: If you make a really large selection, we don’t show SC by default, because the list can get overwhelming, and the interactions quite slow.)pic.twitter.com/gV3GR4vz4K

          1 reply 0 retweets 2 likes
          Show this thread
        31. Marcin Wichary‏ @mwichary 14 Apr 2020
          • Report Tweet
          • Report NetzDG Violation

          BTW here is a random fun screenshot from one of the few bug bashes. (I have tons of temporary Figma files like this. The style names here are particularly hilarious.)pic.twitter.com/zsYp8uNGfh

          1 reply 0 retweets 2 likes
          Show this thread
        32. Show replies

      Loading seems to be taking a while.

      Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.

        Promoted Tweet

        false

        • © 2021 Twitter
        • About
        • Help Center
        • Terms
        • Privacy policy
        • Imprint
        • Cookies
        • Ads info