<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.nicolesharp.net/w/index.php?action=history&amp;feed=atom&amp;title=Universal_file_icons</id>
	<title>Universal file icons - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.nicolesharp.net/w/index.php?action=history&amp;feed=atom&amp;title=Universal_file_icons"/>
	<link rel="alternate" type="text/html" href="https://www.nicolesharp.net/w/index.php?title=Universal_file_icons&amp;action=history"/>
	<updated>2026-04-13T19:38:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://www.nicolesharp.net/w/index.php?title=Universal_file_icons&amp;diff=720&amp;oldid=prev</id>
		<title>Nicole Sharp: /* assigning 3-character file extensions */</title>
		<link rel="alternate" type="text/html" href="https://www.nicolesharp.net/w/index.php?title=Universal_file_icons&amp;diff=720&amp;oldid=prev"/>
		<updated>2026-04-13T12:31:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;assigning 3-character file extensions&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 2026-04-13T08:31:40&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== assigning 3-character file extensions ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== assigning 3-character file extensions ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Begin by &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;truncating &lt;/del&gt;every file extension to the first three characters.&amp;amp;ensp; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This &lt;/del&gt;will &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;create some conflicts such as not being able &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;distinguish between DOCX and DOCM but since the purpose of the file icons is &lt;/del&gt;to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;indicate what application you might need to open the &lt;/del&gt;file, as &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;opposed to the specific filetype&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;this should not significantly detract from the visual semantics of the assigned file icons&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Begin by &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;assigning &lt;/ins&gt;every file extension &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a three-character name.&amp;amp;ensp; For most file extensions with more than three characters, the extension can simply be truncated &lt;/ins&gt;to the first three characters.&amp;amp;ensp; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Otherwise, new three-character names &lt;/ins&gt;will &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;need &lt;/ins&gt;to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;be assigned &lt;/ins&gt;to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;conflating &lt;/ins&gt;file &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;extensions.&amp;amp;ensp; For example: XLS&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;XLSX, and XLSM can be assigned &lt;/ins&gt;as &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;XLS, XLX&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and XLM&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One-letter and two-letter file extensions are represented here as three-letter file extensions by adding trailing zeros: M files are represented as &amp;quot;M00&amp;quot; and 7Z files are represented as &amp;quot;7Z0&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;One-letter and two-letter file extensions are represented here as three-letter file extensions by adding trailing zeros: M files are represented as &amp;quot;M00&amp;quot; and 7Z files are represented as &amp;quot;7Z0&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nicole Sharp</name></author>
	</entry>
	<entry>
		<id>https://www.nicolesharp.net/w/index.php?title=Universal_file_icons&amp;diff=719&amp;oldid=prev</id>
		<title>Nicole Sharp: Created page with &quot;Computer file icon sets are typically for only a limited number of filetypes which often exclude rare or unusual filetypes.&amp;ensp; Whereas here a universal file icon set that will work with any and all filetypes can be defined as follows.  == assigning 3-character file extensions ==  Begin by truncating every file extension to the first three characters.&amp;ensp; This will create some conflicts such as not being able to distinguish between DOCX and DOCM but since the purpose...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.nicolesharp.net/w/index.php?title=Universal_file_icons&amp;diff=719&amp;oldid=prev"/>
		<updated>2026-04-13T12:02:55Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Computer file icon sets are typically for only a limited number of filetypes which often exclude rare or unusual filetypes.  Whereas here a universal file icon set that will work with any and all filetypes can be defined as follows.  == assigning 3-character file extensions ==  Begin by truncating every file extension to the first three characters.  This will create some conflicts such as not being able to distinguish between DOCX and DOCM but since the purpose...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Computer file icon sets are typically for only a limited number of filetypes which often exclude rare or unusual filetypes.&amp;amp;ensp; Whereas here a universal file icon set that will work with any and all filetypes can be defined as follows.&lt;br /&gt;
&lt;br /&gt;
== assigning 3-character file extensions ==&lt;br /&gt;
&lt;br /&gt;
Begin by truncating every file extension to the first three characters.&amp;amp;ensp; This will create some conflicts such as not being able to distinguish between DOCX and DOCM but since the purpose of the file icons is to indicate what application you might need to open the file, as opposed to the specific filetype, this should not significantly detract from the visual semantics of the assigned file icons.&lt;br /&gt;
&lt;br /&gt;
One-letter and two-letter file extensions are represented here as three-letter file extensions by adding trailing zeros: M files are represented as &amp;quot;M00&amp;quot; and 7Z files are represented as &amp;quot;7Z0&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== character mapping ==&lt;br /&gt;
&lt;br /&gt;
Each character from 0 to Z now represents a three-digit hexatrigesimal (base-36) number.&amp;amp;ensp; Each hexatrigesimal integer from 0 to A has to then be assigned an integer decimal (base-10) value from 0 to 255.&amp;amp;ensp; These decimal integers are then equal to the values of 0 to FF in hexadecimal (base 16).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! base-36 number&lt;br /&gt;
! base-10 number&lt;br /&gt;
! base-10 color&lt;br /&gt;
! base-16 color&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| 1&lt;br /&gt;
| 7&lt;br /&gt;
| 7&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| 2&lt;br /&gt;
| 15&lt;br /&gt;
| F&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| 3&lt;br /&gt;
| 22&lt;br /&gt;
| 16&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| 4&lt;br /&gt;
| 29&lt;br /&gt;
| 1D&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| 5&lt;br /&gt;
| 36&lt;br /&gt;
| 24&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| 6&lt;br /&gt;
| 44&lt;br /&gt;
| 2C&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| 7&lt;br /&gt;
| 51&lt;br /&gt;
| 33&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| 8&lt;br /&gt;
| 58&lt;br /&gt;
| 3A&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| 9&lt;br /&gt;
| 66&lt;br /&gt;
| 42&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| 10&lt;br /&gt;
| 73&lt;br /&gt;
| 49&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| 11&lt;br /&gt;
| 80&lt;br /&gt;
| 50&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| 12&lt;br /&gt;
| 87&lt;br /&gt;
| 57&lt;br /&gt;
|-&lt;br /&gt;
| D&lt;br /&gt;
| 13&lt;br /&gt;
| 95&lt;br /&gt;
| 5F&lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| 14&lt;br /&gt;
| 102&lt;br /&gt;
| 66&lt;br /&gt;
|-&lt;br /&gt;
| F&lt;br /&gt;
| 15&lt;br /&gt;
| 109&lt;br /&gt;
| 6D&lt;br /&gt;
|-&lt;br /&gt;
| G&lt;br /&gt;
| 16&lt;br /&gt;
| 117&lt;br /&gt;
| 75&lt;br /&gt;
|-&lt;br /&gt;
| H&lt;br /&gt;
| 17&lt;br /&gt;
| 124&lt;br /&gt;
| 7C&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| 18&lt;br /&gt;
| 131&lt;br /&gt;
| 83&lt;br /&gt;
|-&lt;br /&gt;
| J&lt;br /&gt;
| 19&lt;br /&gt;
| 138&lt;br /&gt;
| 8A&lt;br /&gt;
|-&lt;br /&gt;
| K&lt;br /&gt;
| 20&lt;br /&gt;
| 146&lt;br /&gt;
| 92&lt;br /&gt;
|-&lt;br /&gt;
| L&lt;br /&gt;
| 21&lt;br /&gt;
| 153&lt;br /&gt;
| 99&lt;br /&gt;
|-&lt;br /&gt;
| M&lt;br /&gt;
| 22&lt;br /&gt;
| 160&lt;br /&gt;
| A0&lt;br /&gt;
|-&lt;br /&gt;
| N&lt;br /&gt;
| 23&lt;br /&gt;
| 168&lt;br /&gt;
| A8&lt;br /&gt;
|-&lt;br /&gt;
| O&lt;br /&gt;
| 24&lt;br /&gt;
| 175&lt;br /&gt;
| AF&lt;br /&gt;
|-&lt;br /&gt;
| P&lt;br /&gt;
| 25&lt;br /&gt;
| 182&lt;br /&gt;
| B6&lt;br /&gt;
|-&lt;br /&gt;
| Q&lt;br /&gt;
| 26&lt;br /&gt;
| 189&lt;br /&gt;
| Bd&lt;br /&gt;
|-&lt;br /&gt;
| R&lt;br /&gt;
| 27&lt;br /&gt;
| 197&lt;br /&gt;
| C5&lt;br /&gt;
|-&lt;br /&gt;
| S&lt;br /&gt;
| 28&lt;br /&gt;
| 204&lt;br /&gt;
| CC&lt;br /&gt;
|-&lt;br /&gt;
| T&lt;br /&gt;
| 29&lt;br /&gt;
| 211&lt;br /&gt;
| D3&lt;br /&gt;
|-&lt;br /&gt;
| U&lt;br /&gt;
| 30&lt;br /&gt;
| 219&lt;br /&gt;
| DB&lt;br /&gt;
|-&lt;br /&gt;
| V&lt;br /&gt;
| 31&lt;br /&gt;
| 226&lt;br /&gt;
| E2&lt;br /&gt;
|-&lt;br /&gt;
| W&lt;br /&gt;
| 32&lt;br /&gt;
| 233&lt;br /&gt;
| E9&lt;br /&gt;
|-&lt;br /&gt;
| X&lt;br /&gt;
| 33&lt;br /&gt;
| 240&lt;br /&gt;
| F0&lt;br /&gt;
|-&lt;br /&gt;
| Y&lt;br /&gt;
| 34&lt;br /&gt;
| 248&lt;br /&gt;
| F8&lt;br /&gt;
|-&lt;br /&gt;
| Z&lt;br /&gt;
| 35&lt;br /&gt;
| 255&lt;br /&gt;
| FF&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== file icon colors ==&lt;br /&gt;
&lt;br /&gt;
Each three-character file extension from 000 to ZZZ now represents one of 36&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; = 46656 possible colors from &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There are still a few problems here, primarily that most file extensions do not contain decimal number characters so about 10/36 = 28% of available colors are under-utilized.&amp;amp;ensp; The base-36 color space from 0 to Z could be contracted to just base 26 from A to Z but then the characters 0 to 9 will need to be assigned letters.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! filetype&lt;br /&gt;
! hexcolor&lt;br /&gt;
! color&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #000000;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 7Z&lt;br /&gt;
| &amp;lt;code&amp;gt;#33ff00&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #33ff00;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| HTM&lt;br /&gt;
| &amp;lt;code&amp;gt;#7cd3a0&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #7cd3a0;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| PDF&lt;br /&gt;
| &amp;lt;code&amp;gt;#b65f6d&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #b65f6d;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| SVG&lt;br /&gt;
| &amp;lt;code&amp;gt;#cce275&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #cce275;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| TXT&lt;br /&gt;
| &amp;lt;code&amp;gt;#d3f0d3&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #d3f0d3;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| XLS&lt;br /&gt;
| &amp;lt;code&amp;gt;#f099cc&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #f099cc;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| ZZZ&lt;br /&gt;
| &amp;lt;code&amp;gt;#ffffff&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;background: #ffffff;&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[category:webdevelopment]]&lt;/div&gt;</summary>
		<author><name>Nicole Sharp</name></author>
	</entry>
</feed>