Компьютеры используют цветовую модель RGB. В RGB все начинается черным, а затем вы добавляете немного красного / зеленого / синего. Чем больше каждого цвета вы добавляете, тем ярче он становится. Добавление равного количества красного / зеленого / синего создаст оттенки серого (белый, если добавлено максимально возможное из всех трех цветов).
Это близко соответствует тому, как человеческий глаз воспринимает цвета, поэтому он работает хорошо (нет черного света, максимальный свет, который мы видим, ослепляет белый, и свет может быть разной длины волны, чтобы определить его цвет. Если мы видим красный цвет зеленый и синий свет прямо рядом друг с другом, они кажутся нам белыми. Посмотрите на экран вашего компьютера под увеличительным стеклом, и вы увидите, что на нем есть красные зеленые и синие точки, которые все включаются, когда он белый).
Указанные вами цветовые коды представляют собой "шестнадцатеричные" цветовые коды. Это три шестнадцатеричных числа, соединенные вместе. # ff0000 это "ff red", "00 green", "00 blue". ff - максимально возможное двузначное число в шестнадцатеричном формате (оно получается до 255 в стандартном десятичном формате), а 00 - минимально возможное двузначное число (0 как десятичное число).
# 2e2e2e - это 2e каждого красного / зеленого / синего, поэтому создает оттенок серого. 2e является шестнадцатеричным для 47, который намного ближе к 0, чем к 255, поэтому он создает темно-серый цвет.
Шестнадцатеричный формат представляет собой 16-разрядный числовой формат по сравнению с используемым десятичным форматом, который составляет 10 бит. Это означает, что у вас могут быть большие числа с меньшим количеством цифр, и с 16-разрядными проще работать с аппаратными видеокартами. Возможные цифры для шестнадцатеричной системы:
f, which is 15 in decimal
e, which is 14
d, which is 13
c, 12
b, 11
a, 10
9, which is 9 in decimal
8, which is 8
7, 7
6, 6
5, 5
4, 4
3, 3
2, 2
1, 1
0, 0