Hi Jeremy,
Following the fixes we put out this afternoon, the Tweet Button (in English) will now commonly render at 56px wide. This is up from 55px that the old image sprite buttons used, but is a consequence of using real browser text rather than images. A second consequence of using real text is that you may find different browsers will render slightly different widths for the same text, since font rendering varies between browsers and operating systems. Importantly: This is the same text variance that affects every text element on your website.
Similarly, if the user has adjusted their base text size or applied some other accessibility-based preference to pages, the calculation of the button width will affected.
After each release we’ve worked hard to coerce the buttons as close as we can to the old dimensions, to fit in with existing site designs whilst still ensuring that the full range of Tweet counts are rendered without cropping text in any language. Inevitably, there’s a point at which the browser variance can’t be counteracted.
For the case you’re describing here: Given that the buttons from different social networks also vary with one another, I would strongly advise not setting explicit pixel widths for containers: Instead set a sane max-width to protect yourself from extreme, or erroneous change by any third-party content, and then let the box size naturally based on content, with the 2px padding you desire.
Thanks, and please let me know (here, or @benward on Twitter) if you need any more info.
Ben