В случае, если заголовки, подзаголовки и текст не отличаются сильно по кеглю, нужно смотреть не на значения цветных каналов (суть тот же hex), а на светлость (канал L режима Lab) или на контрастность (я предпочитаю светлость, но контрастность тоже довольно стандартный приём) - объекты высокого уровня (заголовки) должны быть темнее (контрастнее), низкого уровня (текст) - светлее (менее контрастны).
В фотошопе легко создавать и сравнивать цвета по этому параметру (например окно выбора цвета содержит параметры цветового пространства Lab, светлость в нём варьируется от нуля до сотни - очень удобно, как проценты).
Однако нужно учитывать, что жирность текста влияет на оптическую светлость и контрастность (и здесь уже фотошоп не поможет, нужен "глаз"). Поэтому лучше всё-таки выделять заголовки бОльшим кеглем, если нет навыка дизайна.