Page MenuHomePhabricator

metadata for Wikicon icon set
Closed, ResolvedPublic

Description

We need an authoritative description of the Wikicon set to drive T77940: Iconography specification page layout. Similar to OOjs UI's themes/mediawiki/images.json, with info:

  • the icon name ("Eyelid_icon")
  • the intended semantics ("hide action, or hidden state")
  • the CSS short code ("hide")
  • a visual description ("closed eyelid")
  • Unicode code point in WikiFont
  • if the icon is a badge/emblem
  • if the icon incorporates a badge/emblem
  • if icon is under a different license as the rest (as I understand it these icons should not be rendered in a style guide)
  • its group in M19 (Contribution-related, Utility, Moderation, etc.)

This could

  • determine the content of T77940
  • generate OOjs UI's icon set
  • provide the descriptions on commons of the SVG files
  • produce the wikifont

I created https://commons.wikimedia.org/wiki/Template:Wikicon so this information could live on Commons along with each icon's SVG file but it's probably easier to manage as a JSON or yaml file in a git repo. Jon Robson in the Wiki icons design thread commented:

I think we need a single repository with all the icons in it. .. I would recommend we should be working from the same place and using a git submodule to pull these icons in.

Event Timeline

Spage raised the priority of this task from to Needs Triage.
Spage updated the task description. (Show Details)
Spage added a project: UI-Standardization.
Spage set Security to None.

I created https://www.mediawiki.org/wiki/Data:Json:Wikicon, I took the icon filenames from Design/Wikifont gallery and surrounded them with details from themes/mediawiki/images.json in gerrit:188289.

@TrevorParscal thought perhaps @KMenger could talk to designers to fill in the semantics.

I realise this is a work in progress, but I guess it's useful to have a list of the outstanding issues:

  • There is no field for the "description" as shown at the top in the 'detailed' view of M19.
  • Numerous icons cannot be displayed by my code. This is likely because they are misnamed, missing from OOjs-UI, or have their 'oojs-ui-pack' property set incorrectly: listNumbered, listBullet, outdent, indent, checkXXTickmark, paperclipNeedsName, randomize?, envelope, gear, stripeFIXME, tocFIXME, expandedFIXME
  • "Ellipsis" is the correct word for a single set of three dots "…", there is no spelling error.
  • lsg-group is missing on the majority of items.
  • Unicode codepoint is not specified for any of them. In fact, I'm not even sure that OOjs-UI currently supports rendering with unicode.
  • I have no idea what an "emblem" is.
  • semantics is missing for almost all icons.
  • I have no idea what the file refers to. Does it refer to the file in some DropBox I don't have access to?
  • We are missing a field for which intentions are valid for this icon type.

May's spreadsheet has more info than Wikicon JSON file which I based on what OOjs UI actually has. (I found out about the spreadsheet after I worked on Wikicon, sorry!.) I dunno which should be authoritative right now but eventually a single JSON file in git should be the master.

  • There is no field for the "description" as shown at the top in the 'detailed' view of M19.
  • Numerous icons cannot be displayed by my code. This is likely because they are misnamed, missing from OOjs-UI, or have their 'oojs-ui-pack' property set incorrectly: listNumbered, listBullet, outdent, indent, checkXXTickmark, paperclipNeedsName, randomize?, envelope, gear, stripeFIXME, tocFIXME, expandedFIXME

For many of these OOjsUI has separate -ltr and -rtl images. I guess the icon needs that info. Sometimes English uses the rtl file, e.g

"previous": { "file": "move-rtl.svg" }

Maybe JamesF or matmarex can suggest how you can reproduce oojs-ui's logic.

  • ["Ellipsis" is the correct word for a single set of three dots

Yes, but the file on commons is Elipses icon.svg. The commons icons don't matter for LSG.

  • Unicode codepoint is not specified for any of them. In fact, I'm not even sure that OOjs-UI currently supports rendering with unicode.

The codepoints are in May's spreadsheet. The Wikifont build process (on github?) uses them.

  • I have no idea what an "emblem" is.

The badge on e.g. editUndo-ltr.svg. WikiFont supports composing different elements by superimposing the emblem, see Reuse for consistency. I don't think the OOjs UI icons do, they use pre-built .svgs combining the icon and emblem.

  • semantics is missing for almost all icons.

Use the "Usage" column from May's spreadsheet.

  • I have no idea what the file refers to. Does it refer to the file in some DropBox I don't have access to?

The name on commons (with https://commons.wikimedia.org/wiki/File: prepended ). Not relevant for LSG; I think the name plus whether or not -ltr or -rtl

  • We are missing a field for which intentions are valid for this icon type.

oojs-ui's theme/mediawiki/images.json has this information, e.g.

"check": { "file": "check.svg", "variants": [ "constructive", "progressive" ] },

May's spreadsheet also has this information in the colored columns for a larger set of colors

"Progressive (blue) #347bff Constructive (green) #00af89 Destructive - Mild (yellow) #FFB50D Destructive - Medium (orange) #FF5D00 Destructive - Severe (red) #d11d13"

One or the other should be in the metadata.

I knew multiple sources of info about the icons would be a problem, I'm sorry I didn't engineer a solution.

I wrote a script today that merges those two data sets (you have to download the excel spreadsheet as a TSV and give the "Icon name" column that name, and copy the OOjs UI file over).

Nonetheless, it gives me a somewhat sane merged data set: https://gist.github.com/513e85f94754362a655f

Volker_E claimed this task.
Volker_E subscribed.

That has been resolved a long time ago with some technical amendments, is documented in our OOUI docs while WikiFont got sunset about 1.5 years ago.