Marketing Περιεχόμενο

Πώς μπορείτε να αλλάξετε μέσω προγραμματισμού το χρώμα της γραμματοσειράς με βάση το φόντο; (Λειτουργία Φωτεινής/Σκοτεινής)

Εάν έχετε επισκεφθεί Martech Zone Πρόσφατα, μπορεί να έχετε παρατηρήσει ότι τώρα προσφέρουμε τη δυνατότητα προβολής του ιστότοπου είτε σε φωτεινή είτε σε σκοτεινή λειτουργία. Απλώς αναζητήστε το φεγγάρι ή ήλιος εικονίδιο δίπλα στην ημερομηνία στην επάνω αριστερή γραμμή πλοήγησης στον ιστότοπο.

Είναι ένα πολύ ωραίο χαρακτηριστικό και λειτουργεί πολύ καλά. Όταν ξεκίνησα ένα νέο εργαλείο μετατροπής σε αλλάξτε το HEX σε RGB, ήθελα να εμφανίσω πραγματικά το χρώμα που προσπαθούσε να υπολογίσει ο χρήστης. Δεν εμφανίζω μόνο το χρώμα, αλλά πρόσθεσα επίσης ένα ωραίο χαρακτηριστικό που εμφανίζει το όνομα του χρώματος. Αυτό όμως δημιούργησε ένα θέμα…

Εάν το δείγμα που εμφάνιζε το χρώμα είχε ανοιχτό φόντο, δεν θα μπορούσατε να διαβάσετε το κείμενο που δημιουργώ δυναμικά για το δείγμα. Έτσι… Έπρεπε να δημιουργήσω μια συνάρτηση που να ορίζει το χρώμα της γραμματοσειράς με βάση το χρώμα του φόντου και το αν υπήρχε αρκετή αντίθεση για να προβάλω τη γραμματοσειρά.

Λειτουργία JavaScript για φωτεινή ή σκοτεινή λειτουργία

Χρειαζόταν να δημιουργήσω μια συνάρτηση όπου θα μπορούσα να δώσω τον εξαγωνικό κώδικα για το χρώμα και μετά να επιστρέψω εάν η γραμματοσειρά θα έπρεπε να είναι λευκή ή μαύρη με βάση την αντίθεση. Αυτή η συνάρτηση Javascript έκανε το κόλπο…

function contrast(hex) {
  var threshold = 149;
  let r = 0, g = 0, b = 0;

  // 3 digits
  if (hex.length == 4) {
    r = "0x" + hex[1] + hex[1];
    g = "0x" + hex[2] + hex[2];
    b = "0x" + hex[3] + hex[3];
  // 6 digits
  } else if (hex.length == 7) {
    r = "0x" + hex[1] + hex[2];
    g = "0x" + hex[3] + hex[4];
    b = "0x" + hex[5] + hex[6];
  }
  return ((r*0.299 + g*0.587 + b*0.114) > threshold) ? '#000000' : '#ffffff';
}

Το όριο σε αυτή τη συνάρτηση χρησιμοποιείται για να προσδιοριστεί εάν ένα συγκεκριμένο χρώμα είναι ανοιχτό ή σκούρο. Η συνάρτηση μετατρέπει τον δεδομένο δεκαεξαδικό χρωματικό κώδικα σε κόκκινο, πράσινο και μπλε (RGB) συστατικά και στη συνέχεια χρησιμοποιεί έναν τύπο για να υπολογίσει την αντιληπτή φωτεινότητα του χρώματος. Εάν η φωτεινότητα είναι πάνω από το όριο, η συνάρτηση επιστρέφει #000000, που είναι ο εξαγωνικός κώδικας για το μαύρο. Εάν η φωτεινότητα είναι κάτω από το όριο, η συνάρτηση επιστρέφει #ffffff, που είναι ο εξαγωνικός κώδικας για το λευκό.

Ο σκοπός αυτού του ορίου είναι να διασφαλίσει ότι το χρώμα κειμένου που έχει επιλεγεί για το δεδομένο χρώμα φόντου έχει αρκετή αντίθεση ώστε να είναι ευανάγνωστο. Ένας κοινός εμπειρικός κανόνας είναι ότι το ανοιχτό κείμενο (π.χ. λευκό ή κίτρινο) πρέπει να χρησιμοποιείται σε σκούρο φόντο και το σκούρο κείμενο (π.χ. μαύρο ή μπλε) πρέπει να χρησιμοποιείται σε ανοιχτό φόντο. Χρησιμοποιώντας ένα όριο για να προσδιορίσετε εάν ένα χρώμα είναι ανοιχτό ή σκούρο, η συνάρτηση μπορεί να επιλέξει αυτόματα το κατάλληλο χρώμα κειμένου για ένα δεδομένο χρώμα φόντου.

Χρησιμοποιώντας την παραπάνω συνάρτηση, μπορώ να εφαρμόσω μέσω προγραμματισμού το χρώμα γραμματοσειράς CSS με βάση το χρώμα του φόντου. Δοκιμάστε τον μετατροπέα και θα δείτε πόσο καλά λειτουργεί!

Douglas Karr

Douglas Karr είναι ο ιδρυτής του Martech Zone και αναγνωρισμένος ειδικός στον ψηφιακό μετασχηματισμό. Ο Ντάγκλας βοήθησε στην έναρξη πολλών επιτυχημένων νεοσύστατων επιχειρήσεων της MarTech, βοήθησε στη δέουσα επιμέλεια άνω των 5 δισεκατομμυρίων δολαρίων σε εξαγορές και επενδύσεις της Martech και συνεχίζει να λανσάρει τις δικές του πλατφόρμες και υπηρεσίες. Είναι συνιδρυτής του Highbridge, μια συμβουλευτική εταιρεία ψηφιακού μετασχηματισμού. Ο Ντάγκλας είναι επίσης δημοσιευμένος συγγραφέας ενός οδηγού Dummie και ενός βιβλίου επιχειρηματικής ηγεσίας.

Σχετικά άρθρα

Ποια είναι η γνώμη σας;

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει το spam. Μάθετε πώς επεξεργάζονται τα δεδομένα των σχολίων σας.