Donnez un look NES à votre site web
Donner un style NES à un site ou une appli web ? Voilà une feuille de style toute prête...
Donner un style NES à un site ou une appli web ? Voilà une feuille de style toute prête...
Bon, on ne m'enlèvera pas de la tête que c'est pas super intuitif, ni super simple, mais bon, je n'ai trouvé que ça qui fonctionne...
On pourrait croire que c'est simple, hein... ben j'ai pas trouvé, personnellement.
Mais à chaque fois, j'ai pas été foutu de récupérer les données côté PHP (bon, je me doute qu'il doit y avoir un pacson de trucs que j'ignore encore, hein...)
«et si je passais les données au format base64, je devrais pouvoir les récupérer facilement...» car je pratique couramment un optimisme ridicule au sujet duquel il m'arrive encore de sombrer dans la stupéfaction à grand fracas...
Dont acte: je recommence à farfouiller avec des fetch, des posts pis tout mais sans succès: les données décodées font une image invalide.
Je décide de procéder moins élégamment: je copie les données vers un formulaire caché que je poste en target blank pour pas perdre ma page de travail... Oui, je sais, c'est sale, c'est moche, c'est pas secure, j'en ai conscience, c'est pas la peine de m'enfoncer, j'ai déjà assez honte comme ça...
Je teste et... ça marche.
SUPER INTUITIF MERCI
Un excellent article, très simple d'accès. Résumé pour mémoire mais je vous conseille d'aller lire le tout tant c'est clair et bien documenté:
function moncul(string $str)
pour éviter de vérifier les paramètres puisqu'un type erroné provoquera une erreurfunction moncul(string $str): int
car en cas de retour d'un autre type, il y aura erreur. (pour les fonctions ne retournant rien, :void
)private int $mon_cul;
pour qu'une erreur se déclenche en cas d'initialisation d'un type erroné.final class monCul(){
pour éviter tout héritage, même fortuit. ... pour éviter les confusions false/0 etc
En utilisant l'opérateur ternaire condition ? valeur retournée si true : valeur retournée si false;
Pourquoi ? Parce que c'est plus court mais aussi parce qu'on peut placer la condition directement dans une assignation ou à la place d'un paramètre: $count += ($value === CONTROL_VALUE) ? 1 : 0;
Par contre, je trouve qu'on y perd BEAUCOUP en lisibilité et en organisation.
Pour analyser une chaîne selon un format (et à la place d'un explode plus lourd). C'est l'inverse de printf(). ( https://www.php.net/manual/fr/function.sscanf.php )
[$var1, $var2, $var3, $var4] = [$var4, $var3, $var2, $var1];
$intersection = array_intersect(...$bigArray);
au lieu de $intersection = array_intersect($bigArray[0], $bigArray[1], $bigArray[2]); // Etc.
Ça m'a rappelé un épisode de BigBang Theory dans lequel Sheldon est prisonnier d'une boucle dans son algorithme HowToMakeANewFriend... (c'est Howard qui l'en sort en implémentant un compteur comme condition de sortie).
$block++;
if ($block > 1000) {
break;
}
Je plussoie vigoureusement ce point particulier
Avant de se lancer dans un traitement de tableau en créant une fonction ou une méthode exprès, relisez la doc de toutes les fonctions commençant par Array_ ... histoire de ne pas réinventer la roue.
Pour manipuler un tableau, penser à utiliser array_map plutôt que foreach si c'est possible:
array_map('trim',$tableau)
array_map(array($instance, 'methode'), $tableau)
Intéressant et astucieux
.calendar {
display: grid;
grid-template-columns: repeat(7, 1fr);
}
.first-day {
grid-column-start: 3;
}
<div class="calendar-wrapper">
<h1>Decemeber</h1>
<ul class="calendar">
<li class="weekday">Sun</li>
<li class="weekday">Mon</li>
<li class="weekday">Tue</li>
<li class="weekday">Wed</li>
<li class="weekday">Thu</li>
<li class="weekday">Fri</li>
<li class="weekday">Sat</li>
<li class="first-day">1</li>
<li>2</li>
<li>3</li>
<!-- ... -->
<li>29</li>
<li>30</li>
<li>31</li>
</ul>
</div>
Entre les navigateurs «legacy» qui veulent au max du 32x32, les apple qui demandent du 180x180 (c'est quoi ce format perso de merde à la apple), les webapps android qui réclament du 192x192 et du 512x512, les windows Tile, les Safari pinned (sans compter les trucs expérimentaux) et le fait que l'ensemble doit être déclinable en dark-mode ou bright-mode, ça en fait des icônes...
Genre, on se retrouve à charger plus lourd en favicon qu'en contenu pertinent et utile... tout ça pour afficher une icône dans l'onglet du navigateur ! Une trentaine d'icône pour être sûr que l'image elle sera zoulie partout... (on se croirait revenu au temps de la rétrocompatibilité IE6-8). Heureusement que l'auteur nous annonce que les favicons sont chargées en background par le navigateur et n'affectent pas l'expérience utilisateur...
Genre, vous pourriez utiliser globalement le svg pour avoir un rendu joli quelle que soit la taille et c'est marre. Alors je sais, on a - globalement - des connexions de fifous qui s'accommodent de cette surcharge, mais:
...l'auteur propose de limiter à 5 le nombre d'icônes (avec un fichier manifest)... c'est déjà ça.