# Πρότζεκτ Επέκτασης Περιηγητή Μέρος 1: Όλα για τους Περιηγητές ```mermaid journey title Το Ταξίδι σας στην Ανάπτυξη Επέκτασης Περιηγητή section Θεμέλιο Κατανοήστε τους περιηγητές: 3: Student Μάθετε τους τύπους επεκτάσεων: 4: Student Ρύθμιση ανάπτυξης: 4: Student section Ανάπτυξη Δημιουργία διεπαφής: 4: Student Προσθήκη λειτουργικότητας: 5: Student Διαχείριση δεδομένων: 5: Student section Ενσωμάτωση Δοκιμή στον περιηγητή: 5: Student Εντοπισμός σφαλμάτων: 4: Student Βελτίωση εμπειρίας: 5: Student ```  > Σημειώσεις σκίτσου από τον [Wassim Chegham](https://dev.to/wassimchegham/ever-wondered-what-happens-when-you-type-in-a-url-in-an-address-bar-in-a-browser-3dob) ## Προ-Διάλεξη Κουίζ [Προ-διάλεξη κουίζ](https://ff-quizzes.netlify.app/web/quiz/23) ### Εισαγωγή Οι επεκτάσεις περιηγητών είναι μικρές εφαρμογές που βελτιώνουν την εμπειρία περιήγησής σας στο διαδίκτυο. Όπως το αρχικό όραμα του Tim Berners-Lee για έναν διαδραστικό ιστό, οι επεκτάσεις επεκτείνουν τις δυνατότητες του περιηγητή πέρα από την απλή προβολή εγγράφων. Από διαχειριστές κωδικών που κρατούν τους λογαριασμούς σας ασφαλείς έως επιλογείς χρωμάτων που βοηθούν τους σχεδιαστές να πάρουν τέλειες αποχρώσεις, οι επεκτάσεις επιλύουν καθημερινές προκλήσεις περιήγησης. Πριν κατασκευάσουμε την πρώτη σας επέκταση, ας καταλάβουμε πώς λειτουργούν οι περιηγητές. Όπως ο Alexander Graham Bell έπρεπε να κατανοήσει τη μετάδοση του ήχου πριν εφεύρει το τηλέφωνο, η γνώση των βασικών του περιηγητή θα σας βοηθήσει να δημιουργήσετε επεκτάσεις που ενσωματώνονται απρόσκοπτα στα υπάρχοντα συστήματα περιηγητών. Μέχρι το τέλος αυτού του μαθήματος, θα κατανοήσετε την αρχιτεκτονική των περιηγητών και θα έχετε ξεκινήσει την κατασκευή της πρώτης σας επέκτασης. ```mermaid mindmap root((Αρχιτεκτονική Προγράμματος Περιήγησης)) Core Components Rendering Engine JavaScript Engine Network Stack Storage APIs User Interface Address Bar Tab Management Bookmarks Extension Icons Extension System Manifest Files Content Scripts Background Pages Popup Windows Security Model Same-Origin Policy Permissions API Content Security Isolated Worlds Development Tools DevTools Integration Debug Console Performance Monitor Extension Inspector ``` ## Κατανόηση των Περιηγητών Ιστού Ένας περιηγητής ιστού είναι ουσιαστικά ένας εξελιγμένος ερμηνευτής εγγράφων. Όταν πληκτρολογείτε "google.com" στη γραμμή διευθύνσεων, ο περιηγητής εκτελεί μια σύνθετη σειρά ενεργειών - ζητά περιεχόμενο από διακομιστές παγκοσμίως, στη συνέχεια αναλύει και αποδίδει αυτόν τον κώδικα στις διαδραστικές ιστοσελίδες που βλέπετε. Αυτή η διαδικασία αντικατοπτρίζει πώς ο πρώτος περιηγητής ιστού, WorldWideWeb, σχεδιάστηκε από τον Tim Berners-Lee το 1990 για να κάνει τα υπερσυνδεδεμένα έγγραφα προσβάσιμα σε όλους. ✅ **Λίγη ιστορία**: Ο πρώτος περιηγητής ονομαζόταν 'WorldWideWeb' και δημιουργήθηκε από τον Sir Timothy Berners-Lee το 1990.  > Μερικοί πρώιμοι περιηγητές, μέσω της [Karen McGrane](https://www.slideshare.net/KMcGrane/week-4-ixd-history-personal-computing) ### Πώς οι Περιηγητές Επεξεργάζονται Περιεχόμενο Ιστού Η διαδικασία μεταξύ της εισαγωγής μιας διεύθυνσης URL και της εμφάνισης μιας ιστοσελίδας περιλαμβάνει αρκετά συντονισμένα βήματα που συμβαίνουν μέσα σε δευτερόλεπτα: ```mermaid sequenceDiagram participant User participant Browser participant Extension participant DNS participant Server User->>Browser: Πληκτρολογεί URL και πατά Enter Browser->>Extension: Ενεργοποιεί το γεγονός beforeRequest Extension->>Extension: Ελέγχει αν χρειάζεται τροποποίηση το URL Browser->>DNS: Αναζητά τη διεύθυνση IP του διακομιστή DNS->>Browser: Επιστρέφει διεύθυνση IP Browser->>Server: Ζητά το περιεχόμενο της ιστοσελίδας Server->>Browser: Στέλνει HTML, CSS, και JavaScript Browser->>Extension: Ενεργοποιεί το γεγονός beforeResponse Extension->>Extension: Τροποποιεί το περιεχόμενο αν χρειάζεται Browser->>User: Αποδίδει την ολοκληρωμένη ιστοσελίδα Extension->>User: Εμφανίζει ενημερώσεις UI επέκτασης ``` **Αυτό που επιτυγχάνει αυτή η διαδικασία είναι:** - **Μεταφράζει** τη διεύθυνση URL που είναι κατανοητή από τον άνθρωπο σε διεύθυνση IP διακομιστή μέσω της αναζήτησης DNS - **Καθιερώνει** μια ασφαλή σύνδεση με τον διακομιστή ιστού χρησιμοποιώντας πρωτόκολλα HTTP ή HTTPS - **Ζητά** το συγκεκριμένο περιεχόμενο της ιστοσελίδας από τον διακομιστή - **Λαμβάνει** HTML markup, CSS styling και κώδικα JavaScript από τον διακομιστή - **Αποδίδει** όλο το περιεχόμενο στην διαδραστική ιστοσελίδα που βλέπετε ### Κύρια Χαρακτηριστικά του Περιηγητή Οι σύγχρονοι περιηγητές προσφέρουν πολυάριθμα χαρακτηριστικά που οι προγραμματιστές επεκτάσεων μπορούν να αξιοποιήσουν: | Χαρακτηριστικό | Σκοπός | Ευκαιρίες Επέκτασης | |---------|---------|------------------------| | **Μηχανή Απόδοσης** | Εμφανίζει HTML, CSS, και JavaScript | Τροποποίηση περιεχομένου, εισαγωγή στυλ | | **JavaScript Engine** | Εκτελεί κώδικα JavaScript | Προσαρμοσμένα scripts, αλληλεπιδράσεις API | | **Τοπική Αποθήκευση** | Αποθηκεύει δεδομένα τοπικά | Προτιμήσεις χρήστη, αποθηκευμένα δεδομένα | | **Δικτυακός Στοίβας** | Χειρίζεται αιτήσεις ιστού | Παρακολούθηση αιτήσεων, ανάλυση δεδομένων | | **Μοντέλο Ασφαλείας** | Προστατεύει τους χρήστες από κακόβουλο περιεχόμενο | Φιλτράρισμα περιεχομένου, βελτιώσεις ασφαλείας | **Η κατανόηση αυτών των χαρακτηριστικών σας βοηθά:** - **Να αναγνωρίζετε** πού η επέκτασή σας μπορεί να προσθέσει τη μεγαλύτερη αξία - **Να επιλέγετε** τα κατάλληλα API του περιηγητή για τη λειτουργικότητα της επέκτασής σας - **Να σχεδιάζετε** επεκτάσεις που λειτουργούν αποδοτικά με τα συστήματα περιηγητών - **Να διασφαλίζετε** ότι η επέκταση ακολουθεί τις βέλτιστες πρακτικές ασφαλείας του περιηγητή ### Προβληματισμοί Ανάπτυξης Διασταυρούμενων Περιηγητών Διαφορετικοί περιηγητές υλοποιούν τα πρότυπα με μικρές διαφοροποιήσεις, παρόμοια με το πώς διαφορετικές γλώσσες προγραμματισμού μπορεί να χειρίζονται τον ίδιο αλγόριθμο διαφορετικά. Το Chrome, Firefox, και Safari έχουν μοναδικά χαρακτηριστικά που οι προγραμματιστές πρέπει να λάβουν υπόψη κατά την ανάπτυξη επεκτάσεων. > 💡 **Χρήσιμη Συμβουλή**: Χρησιμοποιήστε το [caniuse.com](https://www.caniuse.com) για να ελέγξετε ποιες τεχνολογίες ιστού υποστηρίζονται από διαφορετικούς περιηγητές. Αυτό είναι ανεκτίμητο όταν σχεδιάζετε τα χαρακτηριστικά της επέκτασής σας! **Βασικοί προβληματισμοί στην ανάπτυξη επεκτάσεων:** - **Δοκιμάστε** την επέκταση σας σε Chrome, Firefox και Edge - **Προσαρμοστείτε** σε διαφορετικά API επεκτάσεων και μορφές manifets των περιηγητών - **Διαχειριστείτε** διαφορετικές επιδόσεις και περιορισμούς - **Παρέχετε** εναλλακτικές για χαρακτηριστικά ειδικά για κάποιο περιηγητή που μπορεί να μην είναι διαθέσιμα ✅ **Στοιχεία Ανάλυσης**: Μπορείτε να προσδιορίσετε ποιοι περιηγητές προτιμώνται από τους χρήστες σας εγκαθιστώντας πακέτα ανάλυσης στα έργα ανάπτυξης ιστού σας. Αυτά τα δεδομένα βοηθούν να δώσετε προτεραιότητα στους περιηγητές που πρέπει να υποστηρίζονται πρώτα. ## Κατανόηση των Επεκτάσεων Περιηγητών Οι επεκτάσεις περιηγητών λύνουν κοινά προβλήματα περιήγησης προσθέτοντας λειτουργίες απευθείας στη διεπαφή του περιηγητή. Αντί να απαιτούν ξεχωριστές εφαρμογές ή σύνθετες ροές εργασίας, οι επεκτάσεις παρέχουν άμεση πρόσβαση σε εργαλεία και χαρακτηριστικά. Αυτή η ιδέα αντανακλά πώς οι πρώιμοι πρωτοπόροι του υπολογιστή, όπως ο Douglas Engelbart, οραμάτιζαν την αύξηση των ικανοτήτων του ανθρώπου μέσω της τεχνολογίας - οι επεκτάσεις αυξάνουν τη βασική λειτουργικότητα του περιηγητή σας. ```mermaid quadrantChart title Κατηγορίες Επεκτάσεων Περιηγητή x-axis Απλό --> Πολύπλοκο y-axis Προσωπική Χρήση --> Επαγγελματικά Εργαλεία quadrant-1 Εργαλεία Προγραμματιστή quadrant-2 Επιχειρησιακές Λύσεις quadrant-3 Προσωπικές Χρήσιμες Εφαρμογές quadrant-4 Εφαρμογές Παραγωγικότητας Ad Blockers: [0.3, 0.2] Password Managers: [0.7, 0.3] Color Pickers: [0.4, 0.8] Code Formatters: [0.8, 0.9] Note Taking: [0.6, 0.5] Video Downloaders: [0.5, 0.2] Time Trackers: [0.7, 0.6] Screenshot Tools: [0.4, 0.4] ``` **Δημοφιλείς κατηγορίες επεκτάσεων και τα οφέλη τους:** - **Εργαλεία Παραγωγικότητας**: Διαχειριστές εργασιών, εφαρμογές σημειώσεων και χρονόμετρα που σας βοηθούν να παραμένετε οργανωμένοι - **Βελτιώσεις Ασφαλείας**: Διαχειριστές κωδικών, μπλοκαριστές διαφημίσεων και εργαλεία ιδιωτικότητας που προστατεύουν τα δεδομένα σας - **Εργαλεία Προγραμματιστών**: Μορφοποιητές κώδικα, επιλογείς χρωμάτων και εργαλεία αποσφαλμάτωσης που επιταχύνουν την ανάπτυξη - **Βελτίωση Περιεχομένου**: Λειτουργίες ανάγνωσης, λήψη βίντεο και εργαλεία στιγμιοτύπων που βελτιώνουν την εμπειρία σας στον ιστό ✅ **Ερώτηση Σκέψης**: Ποιες είναι οι αγαπημένες σας επεκτάσεις περιηγητών; Ποιες συγκεκριμένες εργασίες εκτελούν και πώς βελτιώνουν την εμπειρία περιήγησής σας; ### 🔄 **Παιδαγωγικός Έλεγχος** **Κατανόηση Αρχιτεκτονικής Περιηγητή**: Πριν προχωρήσετε στην ανάπτυξη επεκτάσεων, βεβαιωθείτε ότι μπορείτε: - ✅ Να εξηγείτε πώς οι περιηγητές επεξεργάζονται αιτήσεις ιστού και αποδίδουν περιεχόμενο - ✅ Να αναγνωρίζετε τα βασικά συστατικά της αρχιτεκτονικής του περιηγητή - ✅ Να κατανοείτε πώς οι επεκτάσεις ενσωματώνονται στη λειτουργικότητα του περιηγητή - ✅ Να αναγνωρίζετε το μοντέλο ασφαλείας που προστατεύει τους χρήστες **Γρήγορο Τεστ Αυτοαξιολόγησης**: Μπορείτε να ακολουθήσετε την πορεία από την πληκτρολόγηση μιας URL μέχρι την εμφάνιση μιας ιστοσελίδας; 1. **Αναζήτηση DNS** μετατρέπει το URL σε διεύθυνση IP 2. **Αίτηση HTTP** ζητά περιεχόμενο από τον διακομιστή 3. **Ανάλυση** επεξεργάζεται HTML, CSS, και JavaScript 4. **Απόδοση** εμφανίζει την τελική ιστοσελίδα 5. **Επεκτάσεις** μπορούν να τροποποιήσουν το περιεχόμενο σε πολλά βήματα ## Εγκατάσταση και Διαχείριση Επεκτάσεων Η κατανόηση της διαδικασίας εγκατάστασης επέκτασης σας βοηθά να προβλέψετε την εμπειρία του χρήστη όταν κάποιος εγκαθιστά την επέκτασή σας. Η διαδικασία εγκατάστασης είναι στάνταρ για τους σύγχρονους περιηγητές, με μικρές διαφοροποιήσεις στο σχεδιασμό διεπαφής.  > **Σημαντικό**: Φροντίστε να ενεργοποιήσετε τη λειτουργία προγραμματιστή και να επιτρέψετε επεκτάσεις από άλλα καταστήματα όταν δοκιμάζετε τις δικές σας επεκτάσεις. ### Διαδικασία Εγκατάστασης Επεκτάσεων Ανάπτυξης Όταν αναπτύσσετε και δοκιμάζετε τις δικές σας επεκτάσεις, ακολουθήστε αυτήν τη ροή εργασίας: ```mermaid flowchart TD A[Γράψε Κώδικα] --> B[Κατασκευή Επέκτασης] B --> C{Πρώτη Εγκατάσταση;} C -->|Ναι| D[Φόρτωση Αποσυμπιεσμένου] C -->|Όχι| E[Επαναφόρτωση Επέκτασης] D --> F[Δοκιμή Λειτουργικότητας] E --> F F --> G{Λειτουργεί Σωστά;} G -->|Όχι| H[Εντοπισμός Σφαλμάτων] G -->|Ναι| I[Έτοιμο για Χρήστες] H --> A I --> J[Δημοσίευση στο Κατάστημα] style A fill:#e1f5fe style F fill:#e8f5e8 style I fill:#f3e5f5 style J fill:#fff3e0 ``` ```bash # Βήμα 1: Δημιουργήστε την επέκτασή σας npm run build ``` **Αυτό που επιτυγχάνει αυτή η εντολή:** - **Μεταγλωττίζει** τον πηγαίο κώδικά σας σε αρχεία έτοιμα για τον περιηγητή - **Δένεται** οι μονάδες JavaScript σε βελτιστοποιημένα πακέτα - **Παράγει** τα τελικά αρχεία επέκτασης στον φάκελο `/dist` - **Προετοιμάζει** την επέκταση για εγκατάσταση και δοκιμή **Βήμα 2: Πλοηγηθείτε στις Επεκτάσεις Περιηγητή** 1. **Ανοίξτε** τη σελίδα διαχείρισης επεκτάσεων του περιηγητή σας 2. **Κάντε κλικ** στο κουμπί "Ρυθμίσεις και άλλα" (εικονίδιο `...`) επάνω δεξιά 3. **Επιλέξτε** "Επεκτάσεις" από το αναδυόμενο μενού **Βήμα 3: Φορτώστε την Επέκτασή σας** - **Για νέες εγκαταστάσεις**: Επιλέξτε `load unpacked` και διαλέξτε τον φάκελο `/dist` - **Για ενημερώσεις**: Κάντε κλικ στο `reload` δίπλα στην ήδη εγκατεστημένη επέκτασή σας - **Για δοκιμές**: Ενεργοποιήστε τη "Λειτουργία προγραμματιστή" για πρόσβαση σε επιπλέον εργαλεία αποσφαλμάτωσης ### Εγκατάσταση Επέκτασης Παραγωγής > ✅ **Σημείωση**: Οι οδηγίες ανάπτυξης αφορούν αποκλειστικά τις επεκτάσεις που δημιουργείτε εσείς οι ίδιοι. Για εγκατάσταση δημοσιευμένων επεκτάσεων, επισκεφτείτε τα επίσημα καταστήματα επεκτάσεων περιηγητή όπως το [Microsoft Edge Add-ons store](https://microsoftedge.microsoft.com/addons/Microsoft-Edge-Extensions-Home). **Κατανόηση της διαφοράς:** - **Εγκαταστάσεις ανάπτυξης** σας επιτρέπουν να δοκιμάζετε μη δημοσιευμένες επεκτάσεις κατά την ανάπτυξη - **Εγκαταστάσεις καταστήματος** προσφέρουν ελεγμένες, δημοσιευμένες επεκτάσεις με αυτόματες ενημερώσεις - **Sideloading** επιτρέπει την εγκατάσταση επεκτάσεων από εκτός των επίσημων καταστημάτων (απαιτεί λειτουργία προγραμματιστή) ## Κατασκευή της Επέκτασης Carbon Footprint Θα δημιουργήσουμε μια επέκταση περιηγητή που εμφανίζει το ανθρακικό αποτύπωμα της ενεργειακής χρήσης της περιοχής σας. Αυτό το πρότζεκτ δείχνει βασικές έννοιες ανάπτυξης επεκτάσεων ενώ δημιουργεί ένα πρακτικό εργαλείο για περιβαλλοντική ευαισθητοποίηση. Αυτή η προσέγγιση ακολουθεί την αρχή του "μαθαίνω κάνοντας" που έχει αποδειχθεί αποτελεσματική από τις παιδαγωγικές θεωρίες του John Dewey - συνδυάζοντας τεχνικές δεξιότητες με ουσιαστικές εφαρμογές στην πραγματική ζωή. ### Απαιτήσεις Πρότζεκτ Πριν ξεκινήσουμε την ανάπτυξη, ας συγκεντρώσουμε τους απαραίτητους πόρους και εξαρτήματα: **Απαραίτητη Πρόσβαση API:** - **[Κλειδί API CO2 Signal](https://www.co2signal.com/)**: Εισάγετε τη διεύθυνση email σας για να λάβετε το δωρεάν κλειδί API - **[Κωδικός περιοχής](http://api.electricitymap.org/v3/zones)**: Βρείτε τον κωδικό της περιοχής σας χρησιμοποιώντας το [Electricity Map](https://www.electricitymap.org/map) (για παράδειγμα, η Βοστόνη χρησιμοποιεί 'US-NEISO') **Εργαλεία Ανάπτυξης:** - **[Node.js και NPM](https://www.npmjs.com)**: Εργαλείο διαχείρισης πακέτων για εγκατάσταση εξαρτημάτων πρότζεκτ - **[Αρχικός κώδικας](../../../../5-browser-extension/start)**: Κατεβάστε τον φάκελο `start` για να ξεκινήσετε την ανάπτυξη ✅ **Μάθετε Περισσότερα**: Ενισχύστε τις δεξιότητες διαχείρισης πακέτων σας με αυτό το [εκτενές μάθημα Learn](https://docs.microsoft.com/learn/modules/create-nodejs-project-dependencies/?WT.mc_id=academic-77807-sagibbon) ### Κατανόηση της Δομής του Πρότζεκτ Η κατανόηση της δομής του πρότζεκτ βοηθά στην αποδοτική οργάνωση της ανάπτυξης. Όπως η Βιβλιοθήκη της Αλεξάνδρειας οργανωνόταν για εύκολη ανάκτηση γνώσης, μια καλά οργανωμένη βάση κώδικα κάνει την ανάπτυξη πιο αποτελεσματική: ``` project-root/ ├── dist/ # Built extension files │ ├── manifest.json # Extension configuration │ ├── index.html # User interface markup │ ├── background.js # Background script functionality │ └── main.js # Compiled JavaScript bundle ├── src/ # Source development files │ └── index.js # Your main JavaScript code ├── package.json # Project dependencies and scripts └── webpack.config.js # Build configuration ``` **Ανάλυση αυτού που επιτυγχάνει κάθε αρχείο:** - **`manifest.json`**: **Ορίζει** τα μεταδεδομένα της επέκτασης, δικαιώματα, και σημεία εισόδου - **`index.html`**: **Δημιουργεί** τη διεπαφή χρήστη που εμφανίζεται όταν οι χρήστες κάνουν κλικ στην επέκτασή σας - **`background.js`**: **Διαχειρίζεται** εργασίες παρασκηνίου και ακροατές συμβάντων περιηγητή - **`main.js`**: **Περιέχει** τον τελικό δέσμη κώδικα JavaScript μετά τη διαδικασία build - **`src/index.js`**: **Φιλοξενεί** τον βασικό κώδικα ανάπτυξής σας που μεταγλωττίζεται σε `main.js` > 💡 **Συμβουλή Οργάνωσης**: Αποθηκεύστε το κλειδί API και τον κωδικό περιοχής σε ένα ασφαλές σημείωμα για εύκολη αναφορά κατά την ανάπτυξη. Θα χρειαστείτε αυτές τις τιμές για να δοκιμάσετε τη λειτουργικότητα της επέκτασής σας. ✅ **Σημείωση Ασφαλείας**: Μην δεσμεύετε ποτέ κλειδιά API ή ευαίσθητα διαπιστευτήρια στο αποθετήριο κώδικά σας. Θα σας δείξουμε πώς να τα διαχειρίζεστε με ασφάλεια στα επόμενα βήματα. ## Δημιουργία της Διεπαφής Επέκτασης Τώρα θα κατασκευάσουμε τα στοιχειά της διεπαφής χρήστη. Η επέκταση χρησιμοποιεί μια προσέγγιση με δύο οθόνες: μια οθόνη ρυθμίσεων για την αρχική διαμόρφωση και μια οθόνη αποτελεσμάτων για την εμφάνιση δεδομένων. Αυτό ακολουθεί την αρχή της προοδευτικής αποκάλυψης που χρησιμοποιείται στο σχεδιασμό διεπαφής από τις πρώιμες ημέρες της πληροφορικής - αποκαλύπτοντας πληροφορίες και επιλογές με λογική σειρά για να αποφεύγεται η υπερφόρτωση των χρηστών. ### Επισκόπηση Προβολών Επέκτασης **Προβολή Ρυθμίσεων** - Ρύθμιση χρήστη για πρώτη φορά:  **Προβολή Αποτελεσμάτων** - Εμφάνιση δεδομένων ανθρακικού αποτυπώματος:  ### Κατασκευή της Φόρμας Ρυθμίσεων Η φόρμα ρυθμίσεων συλλέγει τα δεδομένα διαμόρφωσης χρήστη κατά την αρχική χρήση. Μόλις ρυθμιστεί, αυτή η πληροφορία παραμένει στην αποθήκευση του περιηγητή για μελλοντικές συνεδρίες. Στο αρχείο `/dist/index.html`, προσθέστε αυτή τη δομή φόρμας: ```html
``` **Αυτό που επιτυγχάνει αυτή η φόρμα:** - **Δημιουργεί** μια σημασιολογική δομή φόρμας με σωστές ετικέτες και συσχετισμούς πεδίων - **Ενεργοποιεί** τη λειτουργία συμπλήρωσης από τον περιηγητή για βελτιωμένη εμπειρία χρήστη - **Απαιτεί** να συμπληρωθούν και τα δύο πεδία πριν την υποβολή με τη χρήση του χαρακτηριστικού `required` - **Οργανώνει** τα πεδία εισαγωγής με περιγραφικά ονόματα κλάσεων για εύκολο στυλ και στόχευση JavaScript - **Παρέχει** σαφείς οδηγίες για τους χρήστες που ρυθμίζουν την επέκταση για πρώτη φορά ### Κατασκευή της Εμφάνισης Αποτελεσμάτων Στη συνέχεια, δημιουργήστε την περιοχή αποτελεσμάτων που θα δείχνει τα δεδομένα ανθρακικού αποτυπώματος. Προσθέστε αυτό το HTML κάτω από τη φόρμα: ```htmlRegion:
Carbon Usage:
Fossil Fuel Percentage: