Evalúa si un valor HEX es oscuro o claro

El usuario de la aplicación web ASP.NET que estoy creando puede seleccionar colores para usar en algunos de los elementos (por ejemplo, botones / títulos) para facilitar cierto grado de personalización.

El problema es que, de manera predeterminada, el texto en esas capas es negro ... lo que estoy tratando de hacer es evaluar el valor HEX elegido por el usuario a través de un selector, y cambiar entre texto en blanco y negro mediante programación, esto puede ser en JavaScript, o en el código detrás.

El quid del problema es que simplemente no estoy seguro de cómo evaluar el HEX para tomar la decisión de si la proximidad del color elegido al negro es demasiado cercana para usar texto negro.

¿Algunas ideas?

Respuestas a la pregunta(4)

Su respuesta a la pregunta