Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds TikTok Icon to Social Links Block #21900

Closed
wants to merge 5 commits into from
Closed

Adds TikTok Icon to Social Links Block #21900

wants to merge 5 commits into from

Conversation

mattxwang
Copy link

Hi there,

This is a small PR that adds a TikTok Icon to the Social Links Block, requested in #21701. I added a SVG icon to packages/block-library/src/social-link/icons and in packages/block-library/src/social-link/index.php, added a class .wp-social-link-tiktok, and added fixtures for block save tests.

As a small note, from a quick Google it doesn't seem like TikTok has official branding resources or guidelines (strange for such a popular service). So, I sourced a free-use logo from Flaticon (cited in the comments), and picked a simple black and white for the icon colour. If anybody has suggestions on what I should do instead, I'd be glad to edit the PR.

This closes #21701.

How has this been tested?

To test the changes, I created a fresh install of the latest stable Wordpress, a copy of Gutenberg, and tested it locally in my browser (Chrome & Firefox). In addition, this does not introduce any new warnings/errors with npm run lint or npm run test.

Screenshots

Here is a screenshot of the new icon, both in the block editor lookup panel and on a page:

Screenshot of Gutenberg install

And this is what the icon looks like when it's hovered:

Tik Tok Icon hovered

Types of changes

New feature: adds TikTok Icon.

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.

added to index.php, created a JS file in social-link/icons and referenced it in variations.js

todo: add e2e tests? attribtuion correct?
Copy link
Contributor

@carolinan carolinan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The content license of Flaticon and freepik is not compatible with GPL; and not even with the "four freedoms". This icon can not be included in WordPress or Gutenberg.

You can read the limitations on usage and distribution here:
https://www.freepikcompany.com/legal#nav-flaticon

@mattxwang
Copy link
Author

mattxwang commented Apr 26, 2020

The content license of Flaticon and freepik is not compatible with GPL; and not even with the "four freedoms". This icon can not be included in WordPress or Gutenberg.

Ah, that's 100% my fault - I must've missed this when I originally looked up the icon. Thank you for catching this @carolinan!

Hm, after a bit of searching it looks like even Wikipedia can't find a free-use version of the logo, so they have instead used the U.S. fair use for non-free media. Any thoughts/advice on what we should do (for example, contact TikTok? I don't have much experience in the matter!

@talldan talldan added [Type] Enhancement A suggestion for improvement. [Block] Social Affects the Social Block - used to display Social Media accounts labels Apr 28, 2020
@talldan
Copy link
Contributor

talldan commented Apr 28, 2020

@jasmussen I know you worked on the social block. Any ideas on how to proceed with finding a compliant version of the TiKTok logo?

I also noticed the embed block for TikTok doesn't have a logo, so that'd be another good place to add the logo.

@jasmussen
Copy link
Contributor

jasmussen commented Apr 28, 2020

Thank you for the PR, and thank you for the ping!

This conversation touches on a fundamental issue with showing social logos in the first place, not just the Social Links block, but indeed with Dashicons and other projects:

Every single logo is not only copyright their respecive companies, but subject to the brand guidelines for each of these. None of them are GPL.

Most of these provide usage guidelines that suggest using these logos for things like social logos is permitted. This is from Facebook's brand guidelines, for example:

Only use the "f" Logo to promote your presence on Facebook. Don't use the Facebook wordmark, which is the corporate identity that refers to Facebook Inc.

That seems to suggest it's okay to use the logo for social links and embeds and such. But even then, although the Social Links block does try to adhere to brand guidelines, it does come with presets that allow users to break them. This brand guideline is very clear, for example:

Screenshot 2020-04-28 at 10 36 21

Here's our default usage:

Screenshot 2020-04-28 at 10 39 18

That seems within the boundaries, good! But even then, often WordPress themes choose to desaturate these, show them without color. This isn't enforced in theme guidelines, but is technically against Facebook's brand guidelines.

Now expand that to all the logos used, and you end up with a set of unique usage guidelines, one for each logo, and often they conflict.

Again, none of the logos are GPL. Technically, flaticon does not have the right to include the TikTok logo in their icon set and then relicense it under their own terms. That doesn't give us the right to use the logo either — it's just to say that using logos in WordPress software is not as clear cut as it seems. These aren't icons.

So, where do we go from here? We obviously already have some logos in both Social Links, embeds and other things. I tend to think WordPress can proceed according to two principles:

  1. Go to the original source, read the guidelines, and follow them as best possible. If they aren't available, at least try and find the logo from an official source. Here's a TikTok SVG.
  2. Follow the general advice from this classic post: Themes are GPL, too. It roughly states that things such as image assets aren't required to be GPL (though for the eloquent reasons @carolinan mentions ideally they should be).

Those two principles are what helped make the Social Links block what it is today.

But as you can see, it's not simple, and one of the things I would personally like to see is WordPress doing less curation of logos overall, and leaving more of this to plugin territory. Keeping up with brand guidelines as they change, updating logos as they are redesigned, and generally trying to keep track of licenses across a plethora of icons, feels like a burden the brands themselves should lift, at the very least not WordPress. Most of all, I dislike the idea that we should be arbiters of which logos get added, and which don't.

That's one of the reasons I would hope that we can get #19041 going soon. That ticket enables any plugin to extend the Social Links block with their own icons, relieving WordPress of the burden of all but a core few. This will enable a theme or a plugin to add any number of custom icons. We might even want to create a user-facing option, so a user can paste in an SVG and choose a color.

For all the reasons outlined above, I'm skeptical of us adding and maintaining any additional icons to the Social Links block. This is a personal opinion.

I'm going to add a "needs decision" label to this one, for that reason.

@jasmussen jasmussen added the Needs Decision Needs a decision to be actionable or relevant label Apr 28, 2020
@carolinan
Copy link
Contributor

Great write up, even if I choke every time someone says images are not normally covered by GPL.
They are not, but Matt has decided and repeatedly expressed that all assets must be GPL too.
(Now if we did not have that 100% rule in the WordPress project, my role as a volunteer reviewer would not have to consist of license complaints.... )

The long process would be to have a legal team contact their legal team. But that did not seem to work out for the material icons in Twenty Nineteen. If that has been resolved, we have not been told.

@mattxwang
Copy link
Author

Thank you all for the writeups, I've definitely learned a lot from this conversation!

In the meantime, is there anything I can do to help? I recognize that this is my first PR to gutenberg, so I'm not sure what's in scope for me to do. For example, would it be helpful to have me email TikTok's support team? Or would that be something that a maintainer or Automattic would do?

In addition, if this seems unresolvable, I don't mind closing this PR and trying to tackle another issue instead. Thank you again for all the help!

@jasmussen
Copy link
Contributor

Thank you Matt for your desire to help, it's much appreciated!

We haven't traditionally reached out to social networks in cases like these. I think the gist of my notes on GPL, copyright and brand guidelines is that while adding a single icon for a social network seems trivial, in fact it's quite complex.

I would also note that my opinion that WordPress as a project should be careful in how many logos we carry, is a personal opinion. I'm happy to defer to some of the project leads, if they say "it's fine" — after all, adding logos is something that's gone on with WordPress and the Dashicons project for years. So I added the "needs decision" label to encourage processing.

In the mean time, #19041 may be technically difficult to solve, but it is a 100% surefire way forward. It would, as noted, enable anyone to add any icon they like, regardless of what WordPress chooses to carry, making it trivial to scale. If you feel able to tackle that one, it would be amazing.

@nerrad
Copy link
Contributor

nerrad commented May 1, 2020

@jasmussen I think you encapsulated the trickiness of adding logos in your comment really well.

From my perspective (and to add a "vote" to support a decision) I support taking a stance on not adding any more social icons to the block and instead build in support for plugins (or users) to add their own icons (as proposed by #19041).

@malsf21 thanks very much for picking up this issue to work on and your willingness to contribute. It's much appreciated! If anything you've created space for the team to iron out what approach we should take with this particular block, so it's been very helpful.

@pesieminski
Copy link

I understand the concerns, and also the desire to be as 100% GPL as possible, for anything we include in WordPress.

This is just my two cents on these questions, from the POV of working on the legal aspects of both GPL and trademark (which is what covers the company logos/icons). I hope this is useful for the discussion. A little long, but I got on a roll and care a lot about these topics.

TLDR: I don't think it's possible for a trademarked logo to be "100% GPL", but there are good reasons for this which I think we can all accept and are consistent with our values. Using the logos/icons as we're doing here is low risk legally speaking and should be OK, without needing to negotiate any special rights from the companies. Using a particular library or set of icons is a different question - they might have their own licenses which are not GPL compatible. Those licenses are separate from what I'm talking about here which is more general on the question of using other companies' logos within WordPress.

Here's some background on trademark law, the GPL, and how I think it fits together.

The main point of a trademark is to identify the source of.. something. A can of beer, a golf club, a piece of software. When you see a logo you recognize, you should be confident that it was made by the person or company that you think of when you saw the logo. This is idea is very important to us as consumers in general, and especially so when it comes to open source software. If a piece of code is free and available almost anywhere, it is more important than usual to know who wrote it, and who is standing behind to support it.

So, if the fundamental principle of a trademark is to identify the unique source of something, by its nature, a trademark is "proprietary".

How does this idea intersect with the GPL? It's easy to say that the GPL is a software license (copyright law), and is meant to cover code, and a trademark is separate and covered by another set of rules, completely. The two can coexist and maybe conflict sometimes. While this is true, I think it's a cop out. We are rightfully concerned, for example, about software patents that reduce user freedoms - even though this is not an aspect of the software's license itself.

The four freedoms of the GPL start with Freedom 0 - the freedom to run the program, "for any purpose".

For any purpose.

Including a purpose that is trademark infringement? Well... technically, if you want to be "100% GPL".. yeah.

But. At the same time, I think we can all recognize, accept, and agree with the idea that trademarks, properly used, are a good and useful thing. We use them across our own community to build brands, reputations, and a clear understanding of who made what. WordPress itself has its own guidelines for using the WordPress logo, and enforces those against those who might use it in a confusing way.

Trademark law developed along similar lines - we can't be prevented from saying the name of another company or brand, or from using their logo EVER. The legal rules of trademark use are meant to prevent end user confusion. Don't impersonate someone else's brand, or pretend you are affiliated with them if you aren't.

It's pretty simple in concept, and consistent with our values. Trademarks get a bad rap, though. Mostly because a lot of big companies are overly aggressive about enforcing trademarks. We work really hard at Automattic to make sure people understand the difference between "good" trademark enforcement and "bad".

If done right, there's a lot of room for wide use of trademarks, logos, etc... without breaking any rules.

Practically what does this mean? My opinion is that trademarks can be used in WordPress in a "95% GPL" way, with the 5% exceptions being cases that we can agree are usefully out of bounds. In other words - they're not allowed because they cause confusion with the person who really owns the trademark, and this is a good reason.

In this case: there aren't any legal rules that prevent us from using the logos of other networks to identify them. The icons are simply shorthand for "click here to post this to Facebook". In the context of how we use them within WordPress, no one thinks that we ARE Facebook, or that we're saying we're affiliated with them because the logo is in the WordPress software. We're not doing anything that is against the rights that trademarks are meant to protect. If anything we are helping to promote the brands and make them more accessible to a wider audience. They want this to happen and this is why many of them make their logos available, albeit with guidelines for use.

Because of this, I would agree with @jasmussen 's suggestion to be courteous to our peers across the internet by using approved, up to date versions of their logos wherever possible. If we do this, there's very little legal risk in using the logos the way that we use them, or the way others might use them in slightly modified form (changing colors slightly, etc). No need to get any special permissions from any companies to use their logos this way. The brand guidelines are also helpful to observe, and are a useful shorthand for what is a confusing use and what is not - though these are not hard and fast legal rules.

Whose job is it to curate these logos, or decide whether they go into core or a plugin... That question is beyond the jurisdiction of this court. :)

@jasmussen
Copy link
Contributor

Thank you Paul, your write-up should help form an excellent basis on which to decide on how to proceed!

@ellatrix ellatrix added the Needs Design Feedback Needs general design feedback. label Jun 6, 2020
Base automatically changed from master to trunk March 1, 2021 15:43
@mkaz
Copy link
Member

mkaz commented Mar 31, 2021

TikTok icon added in #26118

@mkaz mkaz closed this Mar 31, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Social Affects the Social Block - used to display Social Media accounts Needs Decision Needs a decision to be actionable or relevant Needs Design Feedback Needs general design feedback. [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

No TikTok icon for Social Icons block
8 participants