Ιστότοπος για ωτορινολαρυγγολόγο και πλαστική χειρουργική προσώπου, Αθήνα.
Next.js 16 (App Router, Turbopack) + Tailwind v4 + Motion.
Κάθε στοιχείο της επιχείρησης (υπηρεσίες, ωράριο, τηλέφωνο, διεύθυνση,
βιογραφικό) βρίσκεται στο lib/content.ts. Τα components δεν περιέχουν
hard-coded στοιχεία, οπότε οι αλλαγές γίνονται μόνο εκεί.
Πηγή: tools/logo-source.jpg (ανοιχτό μπεζ line art σε μαύρο). Το
tools/prepare-logo.py ανακτά το κανάλι διαφάνειας από τη φωτεινότητα και
ξαναχρωματίζει το σχέδιο, παράγοντας τα αρχεία στο public/brand/.
Το πρωτότυπο μπεζ (#F5E0CC) έχει λόγο αντίθεσης 1.08:1 σε λευκό, δηλαδή είναι
αόρατο στο θέμα του site. Γι’ αυτό παράγονται δύο εκδοχές στο ίδιο hue: η
σκούρη (#704C29, 7.7:1) για λευκό φόντο και η ανοιχτή (-on-dark) για πάνω σε
σκούρες φωτογραφίες.
Τα αρχεία είναι raster, όχι vector. Για μεγάλα μεγέθη (πινακίδα, έντυπα) χρειάζεται καθαρό ξανασχεδίασμα σε vector.
Απαιτεί Pillow και numpy. Ο python3 του Homebrew (3.14) δεν τα έχει· το
/usr/bin/python3 τα έχει:
/usr/bin/python3 tools/prepare-logo.py
/usr/bin/python3 tools/make-logo-video.py
Το tools/make-logo-video.py παράγει τα αρχεία στο public/video/. Κάθε καρέ
είναι καθαρή συνάρτηση του χρόνου, οπότε το render είναι ντετερμινιστικό.
Το λογότυπο «ζωγραφίζεται» ακολουθώντας γεωδαισιακή απόσταση κατά μήκος των ίδιων των γραμμών, όχι με απλό wipe. Τα hero αρχεία ξεκινούν και τελειώνουν στο μαύρο ώστε να κάνουν loop χωρίς ραφή.
/usr/bin/python3 tools/make-logo-video.py --fast # preview μισής ανάλυσης
/usr/bin/python3 tools/make-logo-video.py # τελικό
Οι εικόνες στο public/img/ είναι παραγόμενες, ατμοσφαιρικές λήψεις. Δεν
απεικονίζουν το πραγματικό ιατρείο, ασθενείς ή αποτελέσματα επεμβάσεων. Η φόρμα
του πελάτη δεν περιείχε χρησιμοποιήσιμο φωτογραφικό υλικό. Όταν παραδοθούν
πραγματικές φωτογραφίες (πορτρέτο ιατρού, χώρος ιατρείου), αντικαθιστούν τα
αρχεία με τα ίδια ονόματα.
npm install
npm run dev
npm run build
npm run start -- -p 4311
CDP_WAIT=8000 node tools/cdp.mjs http://localhost:4311/ 1440 900 out.png