close
Page MenuHomePhabricator

[EPIC] Refine Codex icon library
Open, MediumPublic

Description

For follow up amendments, please visit T427868: Icon refinement follow ups

Background

The Codex icon library is in need of a refinement. Over the years, the icon library has been created from an inconsistent set of visual design standards, drawing from various libraries, without the uniformity an icon library benefits from. This is a very natural progression of an icon library, and could therefore use an overhaul.

Goals

  • Refine entire icon library with more uniformity and visual balance
  • Maintain visual balance for all icons at the base size (icons should not have to be resized to "feel right" next to other icons at the same "size".

Some icons may be added or updated before others, as needs arise.

This update will not include any changes to the Wikimedia logo icons. (cf T403134)

Audit

iconbeforeafterrtl?notes
Add
Add.jpg (20×20 px, 928 B)
add.png (20×20 px, 210 B)
no
Alert
Alert.jpg (20×20 px, 1 KB)
alert.png (20×20 px, 392 B)
no
AlignCenter
AlignCenter.jpg (20×20 px, 1 KB)
image.png (20×20 px, 231 B)
no
AlignLeft
AlignLeft.jpg (20×20 px, 1 KB)
alignLeft.png (20×20 px, 214 B)
no
AlignRight
AlignRight.jpg (20×20 px, 1 KB)
alignRight.png (20×20 px, 211 B)
no
Appearance
Appearance.jpg (20×20 px, 1 KB)
appearance.png (20×20 px, 463 B)
noThere is a task requesting a revision to the use of this icon, for the Appearance settings. Some ideas are a 'Tt', use of the Configure icon, or just different glasses.
ArrowDown
ArrowDown.jpg (20×20 px, 1 KB)
arrowDown.png (20×20 px, 302 B)
no
ArrowNext
ArrowNext.jpg (20×20 px, 1 KB)
arrowNext.png (20×20 px, 319 B)
yes
ArrowPrevious
ArrowPrevious.jpg (20×20 px, 1 KB)
arrowPrevious.png (20×20 px, 322 B)
yes
ArrowUp
ArrowUp.jpg (20×20 px, 1 KB)
arrowUp.png (20×20 px, 327 B)
no
Article
Article.jpg (20×20 px, 1 KB)
article.png (20×20 px, 230 B)
yes
ArticleAdd
ArticleAdd.jpg (20×20 px, 1 KB)
articleAdd.png (20×20 px, 236 B)
no
ArticleCheck
ArticleCheck.jpg (20×20 px, 1 KB)
articleCheck.png (20×20 px, 396 B)
no
ArticleDisambiguation
ArticleDisambiguation.jpg (20×20 px, 1 KB)
articleDisambiguation.png (20×20 px, 427 B)
yes
ArticleNotFound
ArticleNotFound.jpg (20×20 px, 1 KB)
articleNotFound.png (20×20 px, 389 B)
yes
ArticleRedirect
ArticleRedirect.jpg (20×20 px, 1 KB)
articleRedirect.png (20×20 px, 424 B)
yes
ArticleSearch
ArticleSearch.jpg (20×20 px, 1 KB)
articleSearch.png (20×20 px, 401 B)
no
Articles
Articles.jpg (20×20 px, 1 KB)
articles.png (20×20 px, 238 B)
yes
ArticlesSearch
ArticlesSearch.jpg (20×20 px, 1 KB)
articlesSearch-ltr.png (20×20 px, 357 B)
yes
Attachment
Attachment.jpg (20×20 px, 1 KB)
attachment.png (20×20 px, 422 B)
no
Bell
Bell.jpg (20×20 px, 1 KB)
bell.png (20×20 px, 409 B)
no
BellOutline
BellOutline.jpg (20×20 px, 1 KB)
bellOutline.png (20×20 px, 474 B)
no
Bigger
Bigger.jpg (20×20 px, 1 KB)
bigger.png (20×20 px, 442 B)
no
Block
Block.jpg (20×20 px, 1 KB)
block.png (20×20 px, 443 B)
no
BlockOutline-
blockOutline.png (20×20 px, 541 B)
no
Bold
Bold.jpg (20×20 px, 1 KB)
bold-b.png (20×20 px, 360 B)
no
Book
Book.jpg (20×20 px, 1 KB)
book.png (20×20 px, 348 B)
no
Bookmark
Bookmark.jpg (20×20 px, 1 KB)
bookmark.png (20×20 px, 269 B)
no
BookmarkList
Screenshot 2026-03-27 at 11.57.18.png (84×74 px, 4 KB)
bookmarkList.png (20×20 px, 262 B)
yes
BookmarkOutline
BookmarkOutline.jpg (20×20 px, 1 KB)
bookmarkOutline.png (20×20 px, 307 B)
no
Bright
Bright.jpg (20×20 px, 1 KB)
bright.png (20×20 px, 545 B)
no
Browser
Browser.jpg (20×20 px, 1 KB)
browser.png (20×20 px, 226 B)
yes
Calendar
Calendar.jpg (20×20 px, 1 KB)
calendar.png (20×20 px, 227 B)
no
Camera
Camera.jpg (20×20 px, 1 KB)
camera.png (20×20 px, 324 B)
no
Cancel
Cancel.jpg (20×20 px, 1 KB)
cancel.png (20×20 px, 541 B)
no
Chart
Chart-graph.jpg (20×20 px, 1 KB)
chart-area.png (20×20 px, 335 B)
no
Check
Check.jpg (20×20 px, 1 KB)
check.png (20×20 px, 395 B)
no
CheckAll
Checkall.jpg (20×20 px, 1 KB)
checkAll.png (20×20 px, 442 B)
no
Clear
Clear.jpg (20×20 px, 1 KB)
clear.png (20×20 px, 576 B)
no
Clock
Clock.jpg (20×20 px, 1 KB)
clock.png (20×20 px, 544 B)
no
Close
Close.jpg (20×20 px, 1 KB)
close.png (20×20 px, 303 B)
no
Code
Code.jpg (20×20 px, 1 KB)
code.png (20×20 px, 444 B)
no
Collapse
Collapse.jpg (20×20 px, 1 KB)
collapse.png (20×20 px, 300 B)
no
Configure
Configure.jpg (20×20 px, 1 KB)
configure.png (20×20 px, 300 B)
no
Copy
Copy.jpg (20×20 px, 1 KB)
copy.png (20×20 px, 232 B)
yes
Cut
Cut.jpg (20×20 px, 1 KB)
cut.png (20×20 px, 349 B)
no
Database
Screenshot 2026-03-27 at 11.20.12.png (78×72 px, 4 KB)
database.png (20×20 px, 218 B)
no
Die
Die.jpg (20×20 px, 1 KB)
die.png (20×20 px, 406 B)
no
DoubleChevronEnd
DoubleChevronEnd.jpg (20×20 px, 1 KB)
doubleChevronEnd.png (20×20 px, 282 B)
yes
DoubleChevronStart
DoubleChevronStart.jpg (20×20 px, 1 KB)
doubleChevronStart.png (20×20 px, 257 B)
yes
DownTriangle
DownTriangle-downArrow.jpg (20×20 px, 1 KB)
downTriangle.png (20×20 px, 255 B)
no
Download
Download.jpg (20×20 px, 1 KB)
download.png (20×20 px, 309 B)
no
Draggable
Draggable.jpg (20×20 px, 1 KB)
draggable.png (20×20 px, 335 B)
no
Edit
Edit.jpg (20×20 px, 1 KB)
edit.png (20×20 px, 391 B)
no
EditLock
EditLock.jpg (20×20 px, 1 KB)
editLock.png (20×20 px, 401 B)
no
EditUndo
EditUndo.jpg (20×20 px, 1 KB)
editUndo-ltr.png (20×20 px, 488 B)
yes
Ellipsis
Ellipsis.jpg (20×20 px, 905 B)
ellipsis.png (20×20 px, 239 B)
no
Error
Error.jpg (20×20 px, 1 KB)
error.png (20×20 px, 283 B)
no
ExitFullScreen
ExitFullScreen.jpg (20×20 px, 1 KB)
exitFullscreen.png (20×20 px, 224 B)
no
Expand
Expand.jpg (20×20 px, 1 KB)
expand.png (20×20 px, 266 B)
no
Eye
Eye-VE.jpg (20×20 px, 1 KB)
eye.png (20×20 px, 416 B)
no
EyeClosed
EyeClosed.jpg (20×20 px, 1 KB)
eyeClosed.png (20×20 px, 444 B)
no
Feedback
Feedback.jpg (20×20 px, 1 KB)
feedback.png (20×20 px, 381 B)
yes
Flag
Flag.jpg (20×20 px, 1 KB)
image.png (20×20 px, 245 B)
yesShould this really have a RTL version?
FolderPlaceholder
FolderPlaceholder.jpg (20×20 px, 1 KB)
folderPlaceholder.png (20×20 px, 253 B)
yes
Fullscreen
FullScreen.jpg (20×20 px, 1 KB)
fullscreen.png (20×20 px, 225 B)
no
Function
Function.jpg (20×20 px, 1 KB)
function.png (20×20 px, 502 B)
no
FunctionArgument
FunctionArgument.jpg (20×20 px, 1 KB)
functionArgument.png (20×20 px, 537 B)
yes
Funnel
Funnel.jpg (20×20 px, 1 KB)
funnel.png (20×20 px, 343 B)
yesThis could probably be redesigned in a way that doesn't require a RTL version.
Globe
Globe.jpg (20×20 px, 1 KB)
globe.png (20×20 px, 656 B)
no
HalfBright
HalfBright.jpg (20×20 px, 1 KB)
halfBright.png (20×20 px, 546 B)
yesShould this really have a RTL version?
HalfStar
HalfStar.jpg (20×20 px, 1 KB)
halfStar.png (20×20 px, 561 B)
yesShould this really have a RTL version?
Hand
Hand.jpg (20×20 px, 1 KB)
hand.png (20×20 px, 311 B)
no
Heart
Heart.jpg (20×20 px, 1 KB)
heart.png (20×20 px, 459 B)
no
Help
Help.jpg (20×20 px, 1 KB)
help.png (20×20 px, 378 B)
yes
HelpNotice
HelpNotice.jpg (20×20 px, 1 KB)
helpNotice.png (20×20 px, 585 B)
yes
Hieroglyph
Hieroglyph.jpg (20×20 px, 1 KB)
hieroglyph.png (20×20 px, 399 B)
no
Highlight
Highlight.jpg (20×20 px, 1 KB)
highlight.png (20×20 px, 349 B)
no
History
History.jpg (20×20 px, 1 KB)
history.png (20×20 px, 554 B)
no
Home
home.jpg (20×20 px, 1 KB)
home.png (20×20 px, 335 B)
no
Image
Image.jpg (20×20 px, 1 KB)
image.png (20×20 px, 360 B)
no
ImageAdd
ImageAdd.jpg (20×20 px, 1 KB)
imageAdd-ltr.png (20×20 px, 366 B)
yes
ImageBroken
ImageBroken.jpg (20×20 px, 1 KB)
imageBroken.png (20×20 px, 342 B)
no
ImageGallery
ImageGallery.jpg (20×20 px, 1 KB)
imageGallery.png (20×20 px, 320 B)
no
ImageLayoutBasic
Image-basic.jpg (20×20 px, 1 KB)
imageLayoutBasic.png (20×20 px, 421 B)
no
ImageLayoutFrame
Image-frame.jpg (20×20 px, 1 KB)
imageLayoutFrame.png (20×20 px, 253 B)
no
ImageLayoutFrameless
Image-frameless.jpg (20×20 px, 1 KB)
imageLayoutFrameless.png (20×20 px, 343 B)
no
ImageLayoutThumbnail
Image-thumbnail.jpg (20×20 px, 1 KB)
imageLayoutThumbnail.png (20×20 px, 306 B)
no
ImageLock
ImageLock.jpg (20×20 px, 1 KB)
imageLock-ltr.png (20×20 px, 391 B)
yes
Indent
Indent.jpg (20×20 px, 1 KB)
indent.png (20×20 px, 243 B)
yes
Info (ar)
Lightbulb.jpg (20×20 px, 1 KB)
image.png (20×20 px, 543 B)
no
Info
Info.jpg (20×20 px, 1 KB)
info.png (20×20 px, 569 B)
no
InfoFilled (ar)
Lightbulb.jpg (20×20 px, 1 KB)
image.png (20×20 px, 464 B)
no
InfoFilled
Info-Filled.jpg (20×20 px, 1 KB)
infoFilled.png (20×20 px, 440 B)
no
Instance
Instance.jpg (20×20 px, 1 KB)
instance.png (20×20 px, 498 B)
yes
Italic
Italic.jpg (20×20 px, 1 KB)
italic-i.png (20×20 px, 314 B)
no
Journal
Journal.jpg (20×20 px, 1 KB)
journal.png (20×20 px, 223 B)
yes
Key
Key.jpg (20×20 px, 1 KB)
key.png (20×20 px, 581 B)
no
Keyboard
Keyboard.jpg (20×20 px, 1 KB)
image.png (20×20 px, 263 B)
no
LabFlask
LabFlask.jpg (20×20 px, 1 KB)
labFlask.png (20×20 px, 385 B)
no
Language
Language.jpg (20×20 px, 1 KB)
language.png (20×20 px, 502 B)
no
LargerText
LargerText.jpg (20×20 px, 1 KB)
largerText.png (20×20 px, 438 B)
no
Layout
Component.jpg (20×20 px, 1 KB)
layout.png (20×20 px, 223 B)
yes
Lightbulb
Lightbulb.jpg (20×20 px, 1 KB)
image.png (20×20 px, 464 B)
no
Link
Link.jpg (20×20 px, 1 KB)
link.png (20×20 px, 579 B)
no
LinkExternal
LinkExternal.jpg (20×20 px, 1 KB)
linkExternal.png (20×20 px, 318 B)
yes
LinkSecure
LinkSecure.jpg (20×20 px, 1 KB)
linkSecure.png (20×20 px, 339 B)
no
ListBullet
ListBullet.jpg (20×20 px, 1 KB)
listBullet.png (20×20 px, 200 B)
yes
ListNumbered
ListNumbered.jpg (20×20 px, 1 KB)
listNumbered-ltr.png (20×20 px, 234 B)
yes
Literal
Literal.jpg (20×20 px, 1 KB)
literal.png (20×20 px, 239 B)
yes
Lock
Lock.jpg (20×20 px, 1 KB)
lock.png (20×20 px, 339 B)
no
LogIn
LogIn.jpg (20×20 px, 1 KB)
logIn.png (20×20 px, 338 B)
yes
LogOut
LogOut.jpg (20×20 px, 1 KB)
logOut.png (20×20 px, 320 B)
yes
Map
Map.jpg (20×20 px, 1 KB)
map.png (20×20 px, 475 B)
yesThis could probably be redesigned in a way that doesn't require a RTL version.
MapPin
MapPin.jpg (20×20 px, 1 KB)
mapPin.png (20×20 px, 532 B)
no
MapPinAdd
MapPinAdd.jpg (20×20 px, 1 KB)
mapPinAdd.png (20×20 px, 539 B)
no
MapTrail
MapTrail.jpg (20×20 px, 1 KB)
image.png (20×20 px, 409 B)
no
Markup
Markup.jpg (20×20 px, 1 KB)
markup.png (20×20 px, 402 B)
no
Mathematics
Mathematics.jpg (20×20 px, 1 KB)
mathematics.png (20×20 px, 349 B)
no
MathematicsDisplayBlock
MathematicsDisplayBlock.jpg (20×20 px, 1 KB)
mathematicsDisplayBlock.png (20×20 px, 340 B)
no
MathematicsDisplayDefault
MathematicsDisplayDefault.jpg (20×20 px, 1 KB)
mathematicsDisplayDefault.png (20×20 px, 435 B)
no
MathematicsDisplayInline
MathematicsDisplayInline.jpg (20×20 px, 1 KB)
mathematicsDisplayInline.png (20×20 px, 440 B)
no
Menu
Menu.jpg (20×20 px, 1 KB)
menu.png (20×20 px, 196 B)
no
Merge
Screenshot 2025-08-21 at 13.31.04.png (52×52 px, 5 KB)
merge.png (20×20 px, 414 B)
yes
Message
Message.jpg (20×20 px, 1 KB)
message.png (20×20 px, 395 B)
no
Moon
Moon-night.jpg (20×20 px, 1 KB)
moon.png (20×20 px, 593 B)
no
Move
Move.jpg (20×20 px, 1 KB)
move.png (20×20 px, 369 B)
noThere is a task suggesting a revision to the move icon.
MoveFirst
MoveFirst.jpg (20×20 px, 1 KB)
moveFirst.png (20×20 px, 302 B)
yes
MoveLast
MoveLast.jpg (20×20 px, 1 KB)
moveLast.png (20×20 px, 307 B)
yes
MusicalScore
MusicalScore.jpg (20×20 px, 1 KB)
musicalScore.png (20×20 px, 330 B)
no
Network
Screenshot 2025-07-29 at 14.12.44.png (52×52 px, 4 KB)
network.png (20×20 px, 445 B)
no
NetworkOff
Screenshot 2025-07-29 at 14.13.03.png (52×52 px, 4 KB)
networkOff.png (20×20 px, 454 B)
no
NewWindow
NewWindow.jpg (20×20 px, 1 KB)
newWindow.png (20×20 px, 309 B)
yes
Newline
NewLine.jpg (20×20 px, 1 KB)
newline.png (20×20 px, 296 B)
yesThere is a task suggesting a revision to the NewLine and Redirect icons, but there is not a redirect icon in Codex.
Newspaper
Newspaper.jpg (20×20 px, 1 KB)
newspaper.png (20×20 px, 238 B)
yes
Next
Next.jpg (20×20 px, 1 KB)
next.png (20×20 px, 284 B)
yes
NoWikitext
NoWikiText.jpg (20×20 px, 1 KB)
noWikitext.png (20×20 px, 373 B)
no
NotBright
NotBright.jpg (20×20 px, 1 KB)
notBright.png (20×20 px, 452 B)
no
Notice
Notice.jpg (20×20 px, 1 KB)
notice.png (20×20 px, 546 B)
no
OngoingConversation
OngoingConversation.jpg (20×20 px, 1 KB)
ongoingConversation.png (20×20 px, 318 B)
yes
Outdent
Outdent.jpg (20×20 px, 1 KB)
outdent.png (20×20 px, 244 B)
yes
Outline
Outline.jpg (20×20 px, 1 KB)
outline.png (20×20 px, 225 B)
yes
PageSettings
PageSettings.jpg (20×20 px, 1 KB)
pageSettings.png (20×20 px, 403 B)
no
Palette
Palette.jpg (20×20 px, 1 KB)
palette.png (20×20 px, 624 B)
yesThis could probably be redesigned in a way that doesn't require a RTL version, or potentially doesn't need one.
Paste
Paste.jpg (20×20 px, 1 KB)
paste.png (20×20 px, 298 B)
yes
Pause
Pause.jpg (20×20 px, 1 KB)
pause.png (20×20 px, 198 B)
no
Play
Play.jpg (20×20 px, 1 KB)
play.png (20×20 px, 340 B)
no
Power
Power.jpg (20×20 px, 1 KB)
power.png (20×20 px, 516 B)
no
Previous
Previous.jpg (20×20 px, 1 KB)
previous.png (20×20 px, 258 B)
yes
Printer
Printer.jpg (20×20 px, 1 KB)
image.png (20×20 px, 328 B)
no
PushPin
PushPin.jpg (20×20 px, 1 KB)
pushPin.png (20×20 px, 303 B)
no
Puzzle
Puzzle.jpg (20×20 px, 1 KB)
image.png (20×20 px, 631 B)
yesThis could probably be redesigned in a way that doesn't require a RTL version, or potentially doesn't need one.
QRCode
QR-code.jpg (20×20 px, 1 KB)
image.png (20×20 px, 281 B)
no
Quotes
Quotes.jpg (20×20 px, 1 KB)
quotes.png (20×20 px, 286 B)
yes
RecentChanges
RecentChanges.jpg (20×20 px, 1 KB)
recentChanges-ltr.png (20×20 px, 341 B)
yes
Redo
Redo.jpg (20×20 px, 1 KB)
redo.png (20×20 px, 366 B)
yes
Reference
Reference.jpg (20×20 px, 1 KB)
reference.png (20×20 px, 246 B)
no
ReferenceExisting
ReferenceExisting.jpg (20×20 px, 1 KB)
referenceExisting-ltr.png (20×20 px, 259 B)
yes
References
References.jpg (20×20 px, 1 KB)
references.png (20×20 px, 491 B)
yes
Reload
Reload.jpg (20×20 px, 1 KB)
reload.png (20×20 px, 522 B)
yes
Restore
Restore.jpg (20×20 px, 1 KB)
restore.png (20×20 px, 460 B)
no
Robot
Robot-experiment-machine.jpg (20×20 px, 1 KB)
image.png (20×20 px, 389 B)
no
Sandbox
Sandbox.jpg (20×20 px, 1 KB)
sandbox.png (20×20 px, 349 B)
no
Search
Search.jpg (20×20 px, 1 KB)
search.png (20×20 px, 501 B)
no
SearchCaseSensitive
SearchCaseSensitive.jpg (20×20 px, 1 KB)
searchCaseSensitive.png (20×20 px, 500 B)
no
SearchDiacritics
SearchDiacritics.jpg (20×20 px, 1 KB)
searchDiacritics.png (20×20 px, 382 B)
no
SearchRegularExpression
SearchRegularExpression.jpg (20×20 px, 1 KB)
searchRegularExpression.png (20×20 px, 609 B)
no
Settings
Settings.jpg (20×20 px, 1 KB)
settings.png (20×20 px, 570 B)
no
Share
Share.jpg (20×20 px, 1 KB)
share.png (20×20 px, 493 B)
no
Signature
Signature.jpg (20×20 px, 1 KB)
signature.png (20×20 px, 561 B)
yes
Smaller
Smaller.jpg (20×20 px, 1 KB)
smaller.png (20×20 px, 436 B)
no
SmallerText
SmallerText.jpg (20×20 px, 975 B)
smallerText.png (20×20 px, 430 B)
no
SortVertical
SortVertical.jpg (20×20 px, 1 KB)
sortVertical.png (20×20 px, 349 B)
no
SpecialCharacter
SpecialCharacter.jpg (20×20 px, 1 KB)
specialCharacter.png (20×20 px, 519 B)
no
SpecialPages
SpecialPages.jpg (20×20 px, 1 KB)
specialPages.png (20×20 px, 351 B)
yes
SpeechBubble
SpeechBubble.jpg (20×20 px, 929 B)
speechBubble.png (20×20 px, 301 B)
yes
SpeechBubbleAdd
SpeechBubbleAdd.jpg (20×20 px, 1 KB)
speechBubbleAdd.png (20×20 px, 321 B)
yes
SpeechBubbles
SpeechBubbles.jpg (20×20 px, 1 KB)
speechBubbles.png (20×20 px, 315 B)
yes
Star
Star.jpg (20×20 px, 1 KB)
star.png (20×20 px, 579 B)
no
Stop
Stop.jpg (20×20 px, 1 KB)
stop.png (20×20 px, 194 B)
no
Strikethrough
Strikethrough.jpg (20×20 px, 1 KB)
strikethrough-s.png (20×20 px, 461 B)
no
Subscript
Subscript.jpg (20×20 px, 1 KB)
subscript.png (20×20 px, 389 B)
yes
Subtract
Subtract.jpg (20×20 px, 760 B)
subtract.png (20×20 px, 193 B)
no
Success
Success.jpg (20×20 px, 1 KB)
success.png (20×20 px, 545 B)
no
Superscript
Superscript.jpg (20×20 px, 1 KB)
superscript.png (20×20 px, 383 B)
yes
Table
Table.jpg (20×20 px, 1 KB)
table.png (20×20 px, 217 B)
no
TableAddColumnAfter
TableAddColumnAfter.jpg (20×20 px, 1 KB)
tableAddColumnAfter.png (20×20 px, 243 B)
yes
TableAddColumnBefore
TableAddColumnBefore.jpg (20×20 px, 1 KB)
tableAddColumnBefore.png (20×20 px, 243 B)
yes
TableAddRowAfter
TableAddRowAfter.jpg (20×20 px, 1 KB)
tableAddRowAfter.png (20×20 px, 242 B)
no
TableAddRowBefore
TableAddRowBefore.jpg (20×20 px, 1 KB)
tableAddRowBefore.png (20×20 px, 243 B)
no
TableCaption
TableCaption.jpg (20×20 px, 1 KB)
tableCaption.png (20×20 px, 227 B)
no
TableMergeCells
TableMergeCells.jpg (20×20 px, 1 KB)
tableMergeCells.png (20×20 px, 404 B)
no
TableMoveColumnAfter
TableMoveColumnAfter.jpg (20×20 px, 1 KB)
tableMoveColumnAfter.png (20×20 px, 332 B)
yes
TableMoveColumnBefore
TableMoveColumnBefore.jpg (20×20 px, 1 KB)
tableMoveColumnBefore.png (20×20 px, 346 B)
yes
TableMoveRowAfter
TableMoveRowAfter.jpg (20×20 px, 1 KB)
tableMoveRowAfter.png (20×20 px, 312 B)
no
TableMoveRowBefore
TableMoveRowBefore.jpg (20×20 px, 1 KB)
tableMoveRowBefore.png (20×20 px, 320 B)
no
Tag
Tag.jpg (20×20 px, 1 KB)
tag.png (20×20 px, 336 B)
yesShould this really have a RTL version?
TemplateAdd
TemplateAdd.jpg (20×20 px, 970 B)
templateAdd.png (20×20 px, 229 B)
yes
TextDirLTR
TextDir.jpg (20×20 px, 1 KB)
textDirLTR.png (20×20 px, 310 B)
no
TextDirRTL
TextDirRTL.jpg (20×20 px, 1 KB)
textDirRTL.png (20×20 px, 308 B)
no
TextFlow
TextFlow.jpg (20×20 px, 1 KB)
textFlow.png (20×20 px, 202 B)
yes
TextStyle
TextStyle.jpg (20×20 px, 1 KB)
textStyle.png (20×20 px, 360 B)
no
TextSummary
TextSummary.jpg (20×20 px, 1 KB)
textSummary.png (20×20 px, 199 B)
yes
Trash
Trash.jpg (20×20 px, 1 KB)
trash.png (20×20 px, 331 B)
no
Tray
Tray.jpg (20×20 px, 1 KB)
tray.png (20×20 px, 285 B)
no
UnBlock
UnBlock.jpg (20×20 px, 1 KB)
unBlock.png (20×20 px, 559 B)
no
UnFlag
UnFlag.jpg (20×20 px, 1 KB)
unFlag-ltr.png (20×20 px, 361 B)
yesShould this really have a RTL version?
UnLink
Screenshot 2025-08-01 at 15.20.45.png (52×52 px, 4 KB)
unLink.png (20×20 px, 560 B)
no
UnLock
UnLock.jpg (20×20 px, 1 KB)
unLock.png (20×20 px, 352 B)
no
UnStar
UnStar.jpg (20×20 px, 1 KB)
unStar.png (20×20 px, 476 B)
no
Underline
Underline.jpg (20×20 px, 1 KB)
underline-u.png (20×20 px, 305 B)
no
Undo
Undo.jpg (20×20 px, 1 KB)
undo.png (20×20 px, 355 B)
yes
Update
Screenshot 2025-08-21 at 13.31.25.png (52×52 px, 5 KB)
update.png (20×20 px, 414 B)
yes
UpTriangle
UpTriangle-upArrow.jpg (20×20 px, 1023 B)
upTriangle.png (20×20 px, 264 B)
no
Upload
Upload.jpg (20×20 px, 1 KB)
upload.png (20×20 px, 330 B)
no
UserActive
UserAvatar.jpg (20×20 px, 1 KB)
userActive.png (20×20 px, 394 B)
no
UserAdd
UserAdd.jpg (20×20 px, 1 KB)
userAdd.png (20×20 px, 382 B)
yes
UserAnonymous
UserAnonymous.jpg (20×20 px, 1 KB)
userAnonymous.png (20×20 px, 362 B)
no
UserAvatar
UserAvatar.jpg (20×20 px, 1 KB)
userAvatar.png (20×20 px, 394 B)
no
UserAvatarOutline
UserAvatarOutline.jpg (20×20 px, 1 KB)
userAvatarOutline.png (20×20 px, 466 B)
no
UserBlocked
Screenshot 2026-04-02 at 11.59.44.png (70×66 px, 4 KB)
image.png (20×20 px, 640 B)
no
UserContributions
UserContributions.jpg (20×20 px, 1 KB)
userContributions.png (20×20 px, 328 B)
yes
UserGroup
UserGroup.jpg (20×20 px, 1 KB)
userGroup.png (20×20 px, 494 B)
yes
UserRights
Screenshot 2025-08-01 at 15.26.48.png (52×52 px, 4 KB)
userRights.png (20×20 px, 479 B)
yes
UserTalk
UserTalk.jpg (20×20 px, 1 KB)
userTalk.png (20×20 px, 420 B)
yes
UserTemporary
UserTemporary.jpg (20×20 px, 1 KB)
image.png (20×20 px, 518 B)
yes
UserTemporaryLocation
UserTemporaryLocation.jpg (20×20 px, 1 KB)
image.png (20×20 px, 607 B)
yes
ViewCompact
ViewCompact.jpg (20×20 px, 1 KB)
viewCompact.png (20×20 px, 220 B)
no
ViewDetails
ViewDetails.jpg (20×20 px, 1 KB)
viewDetails.png (20×20 px, 219 B)
yes
VisionSimulator
VisionSimulator.jpg (20×20 px, 987 B)
visionSimulator.png (20×20 px, 283 B)
no
VolumeDown
VolumeDown.jpg (20×20 px, 1 KB)
volumeDown.png (20×20 px, 401 B)
yes
VolumeOff
VolumeOff.jpg (20×20 px, 1 KB)
volumeOff-ltr.png (20×20 px, 540 B)
yes
VolumeUp
VolumeUp.jpg (20×20 px, 1 KB)
volumeUp.png (20×20 px, 527 B)
yes
Watchlist
Watchlist.jpg (20×20 px, 1 KB)
watchlist.png (20×20 px, 375 B)
yes
Wikitext
Wikitext.jpg (20×20 px, 1 KB)
wikitext.png (20×20 px, 227 B)
no
Window
Window.jpg (20×20 px, 1 KB)
window.png (20×20 px, 255 B)
no
ZoomIn
ZoomIn.jpg (20×20 px, 1 KB)
zoomIn.png (20×20 px, 516 B)
no
ZoomOut
Screenshot 2025-08-01 at 15.30.32.png (52×52 px, 4 KB)
zoomOut.png (20×20 px, 519 B)
no

New icons

iconbeforeafterrtl?tasknotes
3d-
3d.png (20×20 px, 609 B)
no
Asterisk-
required.png (20×20 px, 459 B)
no
ChartBar-
chart-bar.png (20×20 px, 225 B)
noadding for new charts work
ChartLine-
chart.png (20×20 px, 405 B)
noadding for new charts work
ChartPie-
chartPie.png (20×20 px, 540 B)
noadding for new charts work
ChartScatter-
chartScatter.png (20×20 px, 355 B)
noadding for new charts work
Diffs
preview-Echo_changes_icon.svg.png (220×220 px, 6 KB)
image.png (40×40 px, 569 B)
noT422387: Add missing Codex icons
Donation---T376483: icons: Add a set of "Donation" icons to Codex and OOUIgoing to keep using the heart for now
EllipsesVertical-
ellipsisVertical.png (20×20 px, 237 B)
no-commonly used on Android
FilterMatch
Screenshot 2026-04-17 at 12.00.35.png (102×108 px, 6 KB)
image.png (40×40 px, 597 B)
yesT322792
HeartOutline-
heartOutline.png (20×20 px, 514 B)
no-
LanguageConversionHani---T386555: icons: Request language conversion icon of Han script writing systemsnot doing this for now
LevelNone
Screenshot 2026-04-17 at 12.00.21.png (114×106 px, 4 KB)
image.png (40×40 px, 344 B)
yesT322792
LevelOne
Screenshot 2026-04-17 at 12.00.04.png (120×110 px, 4 KB)
image.png (40×40 px, 340 B)
yesT322792
LevelTwo
Screenshot 2026-04-17 at 12.00.09.png (122×108 px, 4 KB)
image.png (40×40 px, 328 B)
yesT322792
LevelThree
Screenshot 2026-04-17 at 12.00.15.png (122×112 px, 4 KB)
image.png (40×40 px, 287 B)
yesT322792
LightbulbOutline-
image.png (20×20 px, 543 B)
no-
Live
Screenshot 2026-04-17 at 12.00.30.png (128×116 px, 5 KB)
image.png (40×40 px, 1 KB)
noT322792
Mentor
Screenshot 2026-04-17 at 12.00.26.png (124×116 px, 5 KB)
image.png (40×40 px, 862 B)
yesT322792
PictureInPicture-
pictureInPicture.png (20×20 px, 215 B)
yesT302150: Add 'Subtitle', 'Picture-in-Picture' and 'Restart' icons in Design Style Guide, Codex & OOUI
Restart-
restart.png (20×20 px, 548 B)
yesT302150: Add 'Subtitle', 'Picture-in-Picture' and 'Restart' icons in Design Style Guide, Codex & OOUI
Rotate-
rotate.png (20×20 px, 484 B)
yesT417733: icons: Add Rotate icon to Codex and OOUI
ShareAndroid-
share-android.png (20×20 px, 487 B)
no-
ShareIOS-
share-ios.png (20×20 px, 323 B)
no-
SpeechBubbleAlert-
speech-bubble-alert.png (20×20 px, 323 B)
yesT422387: Add missing Codex icons
Sticker-
sticker.png (20×20 px, 262 B)
noT418642: icons: Creative new 'sticker' icon in Codex
Subtitle-
subtitle.png (20×20 px, 377 B)
no{T302150using an abstract representation so to not use "CC" and be limited to English
Tabs-
tabs.png (20×20 px, 282 B)
yes
UniversalDesign-
universalDesign.png (20×20 px, 278 B)
noT285757: Add 'universal design' icon
UserChat
preview-Echo_user-speech-bubble.png (220×220 px, 6 KB)
image.png (40×40 px, 705 B)
yesT422387: Add missing Codex icons
UserPages
preview-Screenshot_2026-04-06_at_16.57.49.png (179×220 px, 32 KB)
image.png (40×40 px, 580 B)
yesT422387: Add missing Codex icons
MagicWand-
magicWand.png (20×20 px, 411 B)
noT411359: icons: Add Magic Wand icon to Codex and OOUI

Acceptance criteria

  • Entire icon library is refined
  • New icons needed are added
  • Refined icons are uploaded to this task
  • Project page is created to document this work
  • Icons are updated in Codex
  • Icons are updated in OOUI
  • Icons are added to SF Symbols for use in iOS
  • Documentation for designing and contributing icons is updated

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

As a feedback: I actually like the overall changes. They are now much less "bulky". My only note would be that now most of them are less bulky except the bell which is producing a contrast:

grafik.png (462×253 px, 17 KB)

Comparing with the old that is a mix of bulky and non-bulky:

grafik.png (415×344 px, 28 KB)

I'm kinda the person that would totally design something like this so feel free to ignore this feedback!

I was curious what the old set's speech bubble series would look like with the new set's 2px outlines. Here's my take on it!

speech bubble.png (20×20 px, 228 B)
Codex_icon_plus.png (20×20 px, 260 B)
Codex_icon_ongoingConversation_color-base.png (20×20 px, 321 B)
user talk.png (20×20 px, 352 B)
Codex_icon_speechBubbles_color-base.png (20×20 px, 288 B)

I slightly adjusted the proportions of the "add" and "ongoing" ones to not clash with the outline. I do prefer these to the fully redesigned ones, and having the outlined versions and the filled versions as complementary parts of a coherent set is an interesting idea!

Who will change the icon on the different Wikipedias? The volunteers want other things like writing articles.

I appreciate SpecialPages not looking like AI pages now (knowing it was designed before the AI trend, of course)

image.png (385×33 px, 3 KB)

Who will change the icon on the different Wikipedias? The volunteers want other things like writing articles.

It will be handled automatically using train deployment in a few hours from now.

Before further deployment, it is probably wise to recognize the community's displeasure with these new icons.

Who will change the icon on the different Wikipedias? The volunteers want other things like writing articles.

It will be handled automatically using train deployment in a few hours from now.

please someone stop and reverse the train. the community's feedback is clear.

I want to first thank you all for your patience in a response, as well as your attention and feedback on this work. There's a lot here, and I will do my best to respond as thoughtfully and inclusively as possible.

First of all, I want to apologize for those who wanted to be involved earlier in the process of this work but weren't. Moving forward, we will work on better ways of communicating this type of work out to seek more involvement from the community during the process. Regardless, I'm thankful you all are here now.

Secondly, I want to emphasize that the design process is iterative. The dialog that has been opened here offers us an opportunity to collaborate on the next round of amendments to the icons. This work being released does not mean it's complete. We will continue to learn as we go and iterate accordingly, as collaboratively as we can.

On that note, I encourage those who would like to be involved in the continuing design process to head over to T427868: Icon refinement follow ups where we will conduct the next round of amendments. In that task, I would also like to encourage sharing of constructive feedback that is actionable. While we will start sharing some of the in process updates and demos in the follow up task, I want to address here what I am hearing from you all so far, as well as provide some context.

This task, which has been opened for nearly a year and worked on during that time, most notably the past 8 months, documents design ideas that were explored along the way. Many of the decisions of where we landed can be found on the project page for this work, including details regarding the styles as well accessibility. This project page can and will be updated with more details as we learn and continue to evolve. Additionally, the most up to date collection of the icons lives on Codex which can be seen not as a screenshot but as their native SVG format. This is a better rendering than what is included in this task, and contains icons which have already been amended but not updated in this task.

Some constructive and actionable things I am hearing from you all so far:

From @Chaotic_Enby

I can see the advantages for readability at small scales, but not every icon needs to be a pure outline, and not everything needs to keep this same thickness, which leads to many of the awkwardness pointed above.

The outlined style should be flexible, and allow for more filled elements, helping to increase legibility and meaning of the icons, as well as bring back some "soul" that @stjn and @Icepinner mentioned. We should be okay redefining [edit] the rules we are defining, such as equidistant spacing and sizing of lines, so to not "break" lines where unnecessary and again, better communicate the meaning of the icon.

@stjn @Qcne mention the new icon set feels "generic". It's worth noting that the previous library included many icons that were used directly or modified from various open source icon sets such as Material (by Google). The new set in its entirety is completely hand drawn and custom, using unique styles like the miter join which helps improve accessibility (also mentioned on the project page) by helping more of the shapes to fall on whole pixels, which is especially relevant to low-DPI screens. The overall, more squared style, comes from the rather brutalist but simple and not overly designed nature of Wikipedia, a concept being harnessed by the recent visual design language efforts.

@stjn @Qcne @Finnfrog99 @Snaevar @Icepinner have expressed how special the userTalk icon is. We should really make sure this one, and those related to it, feel right.

I want to offer a special thanks to those who have started providing ideas for how to improve certain icons. The next round of amendments is already in progress thanks to all of your feedback and will be tracked in the follow up task.

Please do not release it!!! A majority of feedback here has been negative, 21 negative tokens, 2 positive

Also for a new set of icons that bases itself off fixing the current icons' "inconsistency", you just said you're willing to make them partially inconsistent!
"We should be okay breaking the rules we are defining a little, such as equidistant spacing and sizing of lines, "

We have expressed we do not want these released yet, and they have issues that need fixing, so please do not release these yet!

The current icons are fine, do not replace them with icons many have pointed out issues with

I am the second person to say do not release them yet after lettherebedarklight

Seconded (or thirded?), at least give people an option to revert back to the old icons in the preferences. Could even track this as a measure of approval (though, I think the above messages are enough of an indicator).

maybe put the option to use these in preferences, with current being the default

The current ones need to be the default, maybe add a banner to the main page saying something along the lines of "new icons have been made! if you want to try them out, change them in preferences and leave your thoughts on [link to this page]!"

So they arent forced on people, as most dont like these icons

They just released them WHYYYYYYY

How do I change back to the old ones

We get your point. Please stop spamming.

Sorry, that was not my intention

Screenshot_20260618-204844~2.png (1,224×1,292 px, 151 KB)

On de-wiki, mobile browser, the new icons seem to cause some text overflow on the watchlist controls, leading to some awkward layouting. Any chance this could be fixed?

I don’t think it’s at all related to the rollout of new icons, so you’ll have to file a different task under MediaWiki-Recent-changes / MediaWiki-Watchlist tags (since it’s probably the same in both).

Nemoralis subscribed.

ArticleSearch (and ArticlesSearch) is very bad. Why is the magnifying glass so small?

ArticleSearch (and ArticlesSearch) is very bad. Why is the magnifying glass so small?

So you get a second magnifying glass to see the first magnifying glass, of course. How else are they going to stay in business?

Screenshot_20260618-204844~2.png (1,224×1,292 px, 151 KB)

On de-wiki, mobile browser, the new icons seem to cause some text overflow on the watchlist controls, leading to some awkward layouting. Any chance this could be fixed?

Reported in T429646: Watchlist options are displayed incorrectly on Minerva

If you're here because you don't like the new icons and want a way to revert them, I've made a css module for that at User:Pattersonuwu/OldIcons.css.

I don't have an issue with most of the icons, except for the Down and Up Triangles. For one thing, it's not a triangle anymore, and for a more important thing, depending on screen resolution, it's almost impossible to see properly.

I don't really enjoy the new icons in comparison with the former. They appear more complex / less legible at a glance, which I think is a detriment to the user experience. Some of the thin lines may also prove to decrease accessibility of the websites.

I can't say I liked the three most noticable new icons on desktop (eyeglasses, black bell, notices), but I'm very pleased with the icons in my menus on mobiles. I find things much easier to find. Not all of them are perfect, but overall it's a nice improvement.
New designs take time to get used to, but after a few months we'll be hating the old one.

I mean, look how neat these menus are:

Screenshot_20260618-195754.png (551×1,887 px, 117 KB)

(can we get a lighter replacement for the black squares?)

Screenshot_20260618-195908.png (511×908 px, 69 KB)

Screenshot_20260618-195741.png (749×1,055 px, 56 KB)

Good thing you changed triangles to pentagons. I think circles would be much better by the way.

图片.png (60×827 px, 2 KB)

No offence to the artist who made the new icons, but they are not a good fit for MediaWiki, the old icons were perfectly fine at getting the job done, they looked great and they scaled with device widths and heights, and they were still legible and discernible at lower resolutions, this is just a step in the wrong direction imo.

Zrzut ekranu 2026-06-19 130037.png (522×112 px, 9 KB)

The change to the 'DownTriangle' icon is a real usability issue. The previous icon was small but still legible. The new one is so tiny that I can barely tell whether it's a dot or just a speck on my screen. For me, it's almost invisible.

Are we still calling them "Codex icons" by the way? How about a new name or Codex 2026? That's a really big redesign and we might have to refer to them with different names.

Not a fan. They are bland and lack contrast. The "old" icons are better.

Zrzut ekranu 2026-06-19 130037.png (522×112 px, 9 KB)

The change to the 'DownTriangle' icon is a real usability issue. The previous icon was small but still legible. The new one is so tiny that I can barely tell whether it's a dot or just a speck on my screen. For me, it's almost invisible.

see T429642: Enhanced watchlist arrows shrank almost beyond clickability/visibility in June 18 2026 deploy

This project's meant to be consensus-driven, why were these released given the feedback here (FWIW I'm personally indifferent about all of them other than the usertalk one)? If the answer's that the team working on it were effectively forced to by strong incentives to meet deadlines etc., that's an abject management/systemic failure.

Cross link for those looking for it: I think work on refining these icons moved to the ticket T427868: Icon refinement follow ups.

Change #1307062 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/TwoColConflict@master] Replace rotated markup icon with sortVertical icon

https://gerrit.wikimedia.org/r/1307062

Change #1307062 merged by jenkins-bot:

[mediawiki/extensions/TwoColConflict@master] Replace rotated markup icon with sortVertical icon

https://gerrit.wikimedia.org/r/1307062

Change #1301335 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[oojs/ui@master] Minor code optimizations to the new SVG icon set

https://gerrit.wikimedia.org/r/1301335

Test wiki on Patch demo by ESanders (WMF) using patch(es) linked to this task was deleted:

https://717968d63e.catalyst.wmcloud.org/w/