Πώς να προσθέσεις διακόπτη Dark Mode σε κάθε ιστοσελίδα με ένα Bookmarklet
Μετατρέψτε κάθε site σε Dark Mode με ένα κλικ, χωρίς επεκτάσεις. Έτοιμος κώδικας Bookmarklet, οδηγίες για PC
Βήμα ΒήμαΕίναι έντεκα το βράδυ, τα φώτα στο δωμάτιο χαμηλωμένα και ανοίγεις ένα άρθρο για να χαλαρώσεις πριν κοιμηθείς. Η σελίδα όμως φορτώνει κατάλευκη, τα μάτια σου τσούζουν και μέσα σε λίγα λεπτά έχεις ήδη κλείσει την καρτέλα. Αν το σκηνικό σου φαίνεται γνώριμο, δεν φταις εσύ: ένα μεγάλο κομμάτι του διαδικτύου εξακολουθεί να μην προσφέρει σκούρο θέμα.
Η προφανής λύση είναι μια επέκταση. Μόνο που οι επεκτάσεις σκούρου θέματος τρέχουν συνεχώς στο παρασκήνιο, ζητούν άδεια ανάγνωσης σε όλες τις σελίδες που επισκέπτεσαι και συχνά αλλοιώνουν τα χρώματα σε φωτογραφίες και λογότυπα. Υπάρχει όμως και ο πιο ελαφρύς δρόμος: ένα Bookmarklet. Ένας μικρός κώδικας JavaScript αποθηκευμένος σαν σελιδοδείκτης, που λειτουργεί ως διακόπτης On/Off και δεν καταναλώνει τίποτα όσο δεν τον χρησιμοποιείς.
Σε αυτόν τον οδηγό θα βρεις τον έτοιμο κώδικα, μια πιο προχωρημένη εκδοχή του, αναλυτικές οδηγίες για χρήση σε υπολογιστή και κινητό, καθώς και λύσεις για τα πιο συνηθισμένα προβλήματα που μπορεί να συναντήσεις στην πράξη.
❓ Τι είναι το Bookmarklet και γιατί υπερέχει
Ένα Bookmarklet μοιάζει με έναν απλό σελιδοδείκτη, αλλά αντί για διεύθυνση ιστοσελίδας περιέχει μια μικρή εντολή JavaScript. Όταν το πατάς, ο περιηγητής δεν σε μεταφέρει κάπου αλλού — εκτελεί την εντολή πάνω στη σελίδα που ήδη βλέπεις.
Η τεχνική υπάρχει από τα τέλη της δεκαετίας του ’90 και υποστηρίζεται από κάθε σύγχρονο browser χωρίς καμία εγκατάσταση. Γι’ αυτό παραμένει τόσο χρήσιμη:
- 🪶 Μηδενική κατανάλωση πόρων: δεν τρέχει στο παρασκήνιο, δεν κρατά μνήμη και δεν επιβραδύνει το άνοιγμα των καρτελών.
- ⚡ Άμεση απόκριση: ενεργοποιείται και απενεργοποιείται ακαριαία, χωρίς μενού, ρυθμίσεις ή περίπλοκες επιλογές.
- 🎨 Έξυπνη αναστροφή χρωμάτων: δεν κάνει απλό «αρνητικό» — επαναφέρει φωτογραφίες, βίντεο και λογότυπα στα φυσικά τους χρώματα.
- 🔍 Πλήρης διαφάνεια: βλέπεις ολόκληρο τον κώδικα που εκτελείς. Καμία επέκταση δεν σου προσφέρει αυτό.
- 🔄 Μεταφέρεται παντού: ο ίδιος κώδικας δουλεύει σε Chrome, Edge, Firefox, Brave, Opera και Safari.
💻 Ο βασικός κώδικας του διακόπτη
Το script ελέγχει πρώτα αν το σκούρο θέμα είναι ήδη ενεργό. Αν είναι, το αφαιρεί· αν όχι, το εφαρμόζει, φροντίζοντας παράλληλα να μην παραμορφωθούν τα πολυμέσα:
Βασική έκδοση — αντιγραφή ολόκληρης της γραμμήςinvert) και στη συνέχεια περιστρέφει τη χρωματική παλέτα κατά 180 μοίρες (hue-rotate), ώστε τα χρώματα να παραμένουν φυσικά. Έπειτα εφαρμόζει την αντίστροφη αναστροφή σε εικόνες και βίντεο, ώστε να επανέρχονται στα κανονικά τους χρώματα. Το 90% αντί για 100% μειώνει την ένταση και κάνει το αποτέλεσμα πιο ξεκούραστο για τα μάτια.
🚀 Η βελτιωμένη έκδοση για δύσκολα sites
Η βασική έκδοση καλύπτει τη συντριπτική πλειονότητα των σελίδων. Σε πιο σύνθετα sites όμως θα εμφανιστούν ιδιομορφίες: ενσωματωμένα βίντεο μέσα σε iframe, χάρτες, ή εικόνες φόντου που αλλάζουν λάθος χρώματα. Η παρακάτω έκδοση αντιμετωπίζει αυτές τις περιπτώσεις:
Οι διαφορές είναι μικρές αλλά ουσιαστικές:
- Προστίθενται
iframe,embed,objectκαιpictureστις εξαιρέσεις, ώστε ενσωματωμένα βίντεο και χάρτες να εμφανίζονται σωστά. - Ο επιλογέας
[style*="background-image"]εντοπίζει στοιχεία με inline εικόνες φόντου — κάτι πολύ συνηθισμένο σε σύγχρονα sites. - Χρησιμοποιείται
textContentαντί γιαinnerHTML, που είναι η ασφαλέστερη πρακτική για εισαγωγή CSS. - Το στυλ προσαρτάται στο
documentElementαντί για τοhead, ώστε να λειτουργεί ακόμη και σε σελίδες με ασυνήθιστη δομή.
🌙 Dark και 🌚 Dark+. Αν κάποιο site δεν αποδώσει καλά με τη μία έκδοση, δοκιμάζεις την άλλη με ένα κλικ.
🛠️ Εγκατάσταση σε υπολογιστή
Ctrl + Shift + B (σε Mac: Cmd + Shift + B). Η μπάρα εμφανίζεται ακριβώς κάτω από τη γραμμή διευθύνσεων.- Όνομα:
🌙 Dark Mode - URL / Διεύθυνση: επικόλλησε ολόκληρο τον κώδικα, μαζί με το
javascript:στην αρχή.
javascript: ως μέτρο ασφαλείας. Ο κώδικας πρέπει να μπει στο πεδίο URL του σελιδοδείκτη.
📱 Εγκατάσταση σε Android και iPhone
Στα κινητά δεν υπάρχει μπάρα σελιδοδεικτών, οπότε η διαδικασία αλλάζει: αποθηκεύεις έναν σελιδοδείκτη και τον καλείς γράφοντας το όνομά του στη γραμμή διευθύνσεων.
Chrome σε Android
- Αποθήκευσε οποιαδήποτε σελίδα ως σελιδοδείκτη (εικονίδιο αστεριού).
- Άνοιξε Σελιδοδείκτες, βρες τον σελιδοδείκτη και πάτησε Επεξεργασία.
- Άλλαξε το όνομα σε
darkmodeκαι αντικατάστησε το URL με τον κώδικα. - Σε οποιαδήποτε σελίδα, γράψε
darkmodeστη γραμμή διευθύνσεων και επίλεξε το αποτέλεσμα.
Safari σε iPhone
- Πρόσθεσε μια σελίδα στα Αγαπημένα.
- Από τους σελιδοδείκτες, πάτησε Επεξεργασία και άνοιξε τον νέο σελιδοδείκτη.
- Ονόμασέ τον
darkmodeκαι επικόλλησε τον κώδικα στη διεύθυνση. - Κάλεσέ τον γράφοντας το όνομα στη γραμμή διευθύνσεων.
🎚️ Προσαρμογή: ένταση, τόνοι και εξαιρέσεις
Δεν χρειάζεται να ξέρεις JavaScript για να προσαρμόσεις το αποτέλεσμα στα γούστα σου. Αρκεί να αλλάξεις μερικούς αριθμούς μέσα στον κώδικα:
| Τι θέλεις να αλλάξεις | Ποιο σημείο πειράζεις | Τι να δοκιμάσεις |
|---|---|---|
| Πιο απαλό σκούρο | invert(90%) |
Κατέβασέ το στο 82% ή 85% |
| Πιο έντονη αντίθεση | invert(90%) |
Ανέβασέ το στο 96% |
| Απόχρωση φόντου | background:#121212 |
#0f0f1a για μπλε τόνο, #1a1614 για ζεστό |
| Λιγότερο έντονα χρώματα | Πρόσθεσε φίλτρο | saturate(85%) μετά το hue-rotate |
| Εξαίρεση συγκεκριμένου στοιχείου | Λίστα επιλογέων | Πρόσθεσε την κλάση του, π.χ. .logo |
Αν θέλεις πιο ήπιο αποτέλεσμα με ελαφρώς ξεθωριασμένα χρώματα, το φίλτρο γίνεται:
📊 Bookmarklet vs επεκτάσεις vs ενσωματωμένο Dark Mode
Υπάρχουν τρεις δρόμοι για σκούρο θέμα στον browser — και καθένας εξυπηρετεί διαφορετική ανάγκη:
| Χαρακτηριστικό | Bookmarklet | Επέκταση | Ενσωματωμένο |
|---|---|---|---|
| Κατανάλωση RAM / CPU | 🟢 Μηδενική | 🔴 Συνεχής στο παρασκήνιο | 🟢 Μηδενική |
| Εγκατάσταση | 🟢 Απλή επικόλληση | 🟠 Λήψη από το Store | 🟢 Ήδη υπάρχει |
| Ιδιωτικότητα | 🟢 Βλέπεις τον κώδικα | ⚠️ Πρόσβαση σε όλα τα sites | 🟢 Πλήρης |
| Αυτόματη ενεργοποίηση | ❌ Χειροκίνητο κλικ | ✅ Σε κάθε σελίδα | ✅ Όπου υποστηρίζεται |
| Κάλυψη ιστοσελίδων | 🟢 Σχεδόν όλες | 🟢 Σχεδόν όλες | 🔴 Μόνο όσες το υποστηρίζουν |
| Ποιότητα αποτελέσματος | 🟠 Καλή, αυτόματη | 🟢 Ρυθμιζόμενη ανά site | 🟢 Σχεδιασμένο από τον δημιουργό |
Ο κανόνας που ακολουθώ: αν το site έχει δικό του σκούρο θέμα, χρησιμοποιώ αυτό. Αν δεν έχει και το επισκέπτομαι σπάνια, πατάω το bookmarklet. Επέκταση εγκαθιστώ μόνο αν περνάω ώρες κάθε μέρα σε συγκεκριμένα sites χωρίς dark mode.
🔧 Συνηθισμένα προβλήματα και λύσεις
Καμία λύση αναστροφής χρωμάτων δεν είναι τέλεια. Αυτά είναι τα πιο συνηθισμένα προβλήματα — και οι πρακτικές λύσεις τους:
html, τα στοιχεία με position: fixed αλλάζουν σημείο αναφοράς. Είναι γνωστός περιορισμός του CSS. Λύση: κάνε κύλιση στην κορυφή πριν πατήσεις τον διακόπτη ή απενεργοποίησέ τον προσωρινά όταν χρειάζεσαι το μενού.
javascript: από την αρχή του κώδικα, επειδή το αφαίρεσε ο browser κατά την επικόλληση. Άνοιξε ξανά τον σελιδοδείκτη για επεξεργασία και πρόσθεσέ το χειροκίνητα.
chrome://, edge://, about:) και οι σελίδες των επίσημων store είναι κλειδωμένες για λόγους ασφαλείας. Είναι αναμενόμενο.
🔒 Ασφάλεια: τι πρέπει να προσέχεις
Ένα bookmarklet εκτελεί κώδικα μέσα στη σελίδα που βλέπεις, με τα ίδια δικαιώματα που έχει και η σελίδα. Στη δική μας περίπτωση αυτό σημαίνει απλώς την προσθήκη ενός στυλ — καμία επικοινωνία με το διαδίκτυο, καμία πρόσβαση σε δεδομένα. Η ίδια όμως δυνατότητα, σε κακόβουλα χέρια, μπορεί να χρησιμοποιηθεί για κλοπή στοιχείων.
Δύο απλοί κανόνες σε καλύπτουν πλήρως:
- 🚫 Ποτέ σε τραπεζικά ή κρίσιμα sites: μην χρησιμοποιείς bookmarklets σε e-banking, φόρμες πληρωμών ή σελίδες όπου εισάγεις ευαίσθητα δεδομένα.
- 👀 Διάβασε πάντα τι εκτελείς: αν ο κώδικας περιέχει διευθύνσεις,
fetch,evalή είναι σκόπιμα δυσανάγνωστος, μην τον αποθηκεύσεις. Ο κώδικας αυτού του οδηγού είναι σύντομος και ευανάγνωστος ακριβώς για να μπορείς να τον ελέγξεις.
🙋 Η δική μου εμπειρία
Χρησιμοποιώ αυτό το bookmarklet καθημερινά εδώ και περίπου έναν χρόνο, αφού απεγκατέστησα δύο δημοφιλείς επεκτάσεις σκούρου θέματος. Ο λόγος δεν ήταν ιδεολογικός: παρατήρησα ότι ο Chrome με δεκαπέντε ανοιχτές καρτέλες κρατούσε αισθητά περισσότερη μνήμη με την επέκταση ενεργή, και ότι κάθε νέα καρτέλα άργησε λίγο περισσότερο να αποδοθεί.
Στην πράξη, το κλικ που πρέπει να κάνω σε κάθε σελίδα αποδείχθηκε πολύ μικρότερο πρόβλημα απ’ όσο φοβόμουν. Τα περισσότερα sites που επισκέπτομαι συχνά έχουν πλέον δικό τους dark mode, οπότε το bookmarklet το χρειάζομαι κυρίως σε παλιότερες σελίδες τεκμηρίωσης, φόρουμ και ελληνικά blogs που δεν έχουν ενημερωθεί εδώ και χρόνια. Εκεί κάνει ακριβώς τη δουλειά του.
Το μόνο σημείο που με ενόχλησε ήταν τα σταθερά μενού που μετακινούνται. Το έλυσα με μια συνήθεια αντί για κώδικα: πατάω τον διακόπτη μόλις ανοίξω τη σελίδα, πριν αρχίσω να κάνω κύλιση. Επίσης κρατάω δύο εκδόσεις — μία απαλή στο 85% για βραδινό διάβασμα και μία πιο έντονη στο 95% για τεχνικά κείμενα με πολύ κώδικα.
✅ Συμπέρασμα
Το Bookmarklet δεν αντικαθιστά μια καλοφτιαγμένη επέκταση αν χρειάζεσαι αυτόματο σκούρο θέμα παντού. Αντικαθιστά όμως εξαιρετικά καλά τη λογική «εγκαθιστώ κάτι μόνιμο για μια ανάγκη που έχω περιστασιακά».
Αντίγραψε τον κώδικα, φτιάξε τον σελιδοδείκτη και δοκίμασέ τον απόψε σε μία σελίδα. Αν σου κάνει τη δουλειά, θα δεις ότι είναι από εκείνα τα μικρά εργαλεία που τα ξεχνάς — μέχρι τη στιγμή που τα χρειάζεσαι.
💬 Σχόλια