Le site Web le plus haut du monde – une expérience CSS

Une page web qui mesure 18,94 kilomètres de haut :D
Il n’est pas allé plus loin car Gecko, le moteur de rendu de Firefox, a un problème avec les pages plus hautes que ça.

Pour le côté technique, il a utilise ça :

font-size: 100cm;
height: 2840em;

J’ai scrollé tout ça en 2 min 17,40 secondes sur mon PC. Ce qui nous fait une vitesse de défilement de 496,24 km/h. Pas mal.

Via : https://lesjoiesducode.fr/ivre-il-cree-la-page-web-la-plus-longue-a-scroller-au-monde-css

#21283  

https://worlds-highest-website.com/fr/

TeamViewer installs suspicious font only useful for web fingerprinting | Ctrl blog

Tiens, je ne savais pas cette magouille pour détecter si un logiciel est installé depuis une page web.

Il suffit que le logiciel vienne avec sa propre police d’écriture totalement inédite (et inutile), et que dans la page web, on utilise cette police sur un élément donné.
À savoir, dans les pages web, quand on déclare un police d’écriture on met « font-familly: "police1", "police2", "police générique"; ». On peut en mettre plusieurs dans l’ordre d’importance. Ici, si la première n’est pas installée, le navigateur cherchera la seconde. Si elle n’est pas utilisée non plus, il prendra une police générique par défaut du système.

Du coup si un programme installe une police1 et qu’on utilise le code ci dessus, il chargera et utilisera la police1. Et s’il n’est pas installé, il utilisera la police2.
En détectant (en JS) quelle police est effectivement utilisée, on sait si le logiciel est installé ou non.

Beaucoup de logiciels utilisent des polices à eux, à commencer par LibreOffice, LaTeX, qui sont libres, mais aussi Adobe, Microsoft Office… qui utilisent des polices pour leurs applications.
Dans le cas de TeamViewer, en revanche, la police n’est même pas utilisée et en prime elle ne contient que 8 lettres et 2 chiffres, ce qui la rend inutilisable pour à peu près tout. Hormis vous traquer, qui semble ici être sa seule utilité :

A quick query on GitHub reveals that many font fingerprinting libraries include references to the font names TeamViewer15, TeamViewer14, and TeamViewer13.

#21165  

https://www.ctrl.blog/entry/teamviewer-font-privacy.html

My Dumbest CSS Mistakes | CSS-Tricks - CSS-Tricks

Oh la la, les facepalm. Le genre d’erreurs qu’on fait tous souvent, mais qui nous font parfois chercher longtemps avant de trouver, et pas qu’en CSS d’ailleurs :(

#21102  

https://css-tricks.com/my-dumbest-css-mistakes/

CSS: Absolutely positioning things relatively | by Canva Engineering | May, 2022 | Canva Engineering Blog

Oh gosh… ça me donne la nausée.

J’ai déjà adapté au mobile des sites web dont tous les éléments, y compris chaque mot, était positionné de façon absolu. Une horreur absolue réalisée avec Word pour un vieux site de prod.
Après mon passage, le site était plus léger et responsive sur tous les écrans.

Ici, ils prennent le design et placent chaque élément dans une cellule d’un grid, et c’est ce grid qui est modifié. Un peu comme si on faisait un site web dans Excel en autorisant le dimensionnement fluide des cellules. Non vraiment, c’est horrible.

#21030  

https://canvatechblog.com/css-absolutely-positioning-things-relatively-964898de886b

Note : thème sombre

J’ai refait (rapidement) le thème de mon site.
J’ai ajouté un thème sombre, qui s’affiche si votre navigateur est configuré pour afficher un thème sombre.

#21015  

https://lehollandaisvolant.net/

4 Cool Hover Effects That Use CSS Text Shadow | CSS-Tricks - CSS-Tricks

Tout est dans le titre.

J’ajouterais juste que certaines sont très simples à utiliser : quelques lignes de CSS simples et un :hover.

Ça change des effets qui ont besoin de 5 éléments HTML invisibles, 5 ko de CSS expérimental supportées uniquement dans Chrome et une plâtrée de JS.

#21001  

https://css-tricks.com/cool-hover-effects-that-use-css-text-shadow/

Note : CSS pour Twitter

div[data-testid="placementTracking"] { display: none!important; }

Ce CSS appliqué sur Twitter masquera les tweets sponsorisés et suggérés.

Il peut être utilisé avec uBlock Origin, ou avec StopTheMadness (sous iOS).

(Merci à David, pour la suggestion de StopTheMadness, d’ailleurs : l’app est payante, mais permet d’appliquer sur CSS/JS à tous les sites, en plus de virer les "utm" des URL, de virer les bandeaux de cookies et autres « essayez notre app ! », de réactiver le zoom sur les sites qui l’empêchent, désactiver les playback vidéo automatique…)

#20826  

https://lehollandaisvolant.net/?mode=links&id=20220220155023

Should CSS Override Default Browser Styles?

CSS is a language for changing the design of websites. Every ruleset you write likely changes the defaults of something.

+1.

Les styles navigateur sont un fallback, pas une sacro-sainte relique à laquelle on ne peut pas toucher.
D’ailleurs, j’aimerais bien connaître les scores d’accessibilités d’un site sans styles (juste les styles navigateur).

Qu’il y ait des règles tacites auxquelles on s’est habitué (les liens en bleu, par exemple), c’est une chose, mais n’interdit pas de changer la couleur.

#20677  

https://css-tricks.com/should-css-override-default-styles/

Gadgets/jouets scientifiques et éducatifs (6) - Couleur-Science

Je rappelle que mon site dispose d’une feuille CSS dédiée à l’impression.

Le but ? Permettre une impression « propre » :

– pas d’image ou de couleur de fond
– police sérif
– entête, footer, navbar… non imprimés
– images ou paragraphes non scindés sur deux pages (oui y existe du CSS pour ça)
– les liens (non clicables sur papier) sont affichés en entier, avec a[href]::after { content: attr(href); }

Le CSS est très concis par ailleurs : https://couleur-science.eu/themes/2021/style-print.css !

#20549  

https://couleur-science.eu/?d=070861--gadgetsjouets-scientifiques-et-educatifs-6

Does CSS Support Single-line Comments?

En CSS, on ne peut pas utiliser les commentaires avec « // commentaire ».
Il n’y a que les « /* commentaire */ »

… à moins que… Si ?

En fait si, mais c’est un peu un hack et le « // » ne suffit pas.
Vous lirez l’article pour voir pourquoi, mais il faut faire ça, avec « // » au début et « {} » à la fin, sur la même ligne :

selecteur {
// ceci est un commentaire {}
width: 100%;
color: red;
}

(du coup, c’est pas du tout plus rapide que de faire /* commentaire */)

#20503  

https://medium.com/geekculture/does-css-support-single-line-comments-1d7acbdd22d8

color contrast CSS vars

Un bout de code CSS qui donne à la couleur du texte ("color") une valeur de telle sorte que ça soit toujours correctement contrasté par rapport à la couleur de fond ("background-color").

Ainsi, sans rien toucher d’autre que la couleur de fond, le texte sera blanc sur les couleurs sombres et noir sur les couleurs claires. Le tout fait usage d’un calcul bien précis sur le R, G, B pour donner soit du blanc soit du noir.

Tout ça c’est uniquement en CSS, avec le calc() et les variables. Pas de JS.

Note :
- sur chaque div, on donne trois variables, correspondant au R, G et B. La couleur de fond est alors directement « background-color :(rgb(R,G,B)) ».

La couleur du texte, lui, passe dans la moulinette du calc() et ressort sous forme de blanc ou de noir.

Comment ça marche ? Tout simplement en saturant la luminosité : après le calcul sur R, G, B avec des facteurs empiriques, on a une valeur comprise entre −0.5 et +0.5. On fait alors un ×1000% histoire de saturer l’échelle 0-1 sur laquelle on va mettre cette valeur.

Cette valeur, enfin, est placée dans le color, où la couleur est donnée en HSL(0,0,L) ou le L correspond à notre valeur. Vu qu’on a saturé la valeur, CSS, ou le navigateur, va automatiquement prendre soit 0, soit 1, selon que c’est négatif ou positif.

J’utilise un truc similaire ici : https://lehollandaisvolant.net/tout/tools/color-second/ (où la couleur de fond évolue chaque seconde).

Je le fais en JS :

// I use YIQ color scheme to determine is a color is dark or light
var yiq = ((r*299)+(g*587)+(b*114))/1000;

if (yiq >= 128) {
    // set dark-fond
} else {
    // set light-font
}

#20476  

https://codepen.io/vincent-valentin/pen/ZEJGwWY?editors=1100

The Options for Password Revealing Inputs

Une astuce CSS (en draft pour l’instant) pour afficher temporairement le contenu d’un champ password, sans JS.

#20449  

https://css-tricks.com/the-options-for-password-revealing-inputs/

CSS in TypeScript with vanilla-extract

Je crois que cette techno résume tout le bullshit ambiant pour faire des sites-web.

Au lieu d’écrire le CSS directement, ils utilisent Typescript pour le faire. Typescript, qui est déjà lui-même un framework JS ?

À quand un truc qui utilise Typescript pour produire du SCSS ? Comme ça on utilisera un langage A pour produire un langage B, où ni A, ni B ne sont des technos supportés où que ce soit sans avoir besoin d’une traduction intermédiaire ?

Bref, moi ça me fait rien. Comme le jQuery me faisait rire y a 10 ans (et étrangement on n’en entend plus beaucoup parler). Et les sites qui en recommandent l’apprentissage le font non pas par sa valeur ajoutée, mais plutôt parce qu’un énorme paquet de sites sont coincés avec et que si on a un jour à bosser dessus, faut mieux connaître un minimum…

Ce n’est que mon avis personnel, mais je préfère rester sur du JS et CSS de base. Au moins y a pas plus rapide et léger et ça marche très bien. Et ça marchera encore dans 25 ans quand tous les framework seront obsolètes.

(Par contre, utiliser JS pour faire ses styles, c’est NON. C’est juste pour ceux qui ne maîtrisent pas le principe de la cascade et la hiérarchie des sélecteurs.)

#20448  

https://css-tricks.com/css-in-typescript-with-vanilla-extract/

Twitter's div Soup and Uglyfied CSS, Explained — Giuseppe

Pourquoi les sites web à très large audience, et donc qui ont besoin d’un support d’une très large variété de plateformes préfèrent utiliser une soupe de DIV améliorés en CSS plutôt que les éléments natifs ?

Réponse courte : parce que les nav et les plateformes dérivent d’une utilisation à la souris sur un ordinateur et un grand écran. Ce n’est ni adapté au tactile, ni aux lecteurs d’écran, ni aux dispositifs destinés à l’accessibilité.
L’usage de DIV permet sa souplesse en CSS (pas besoin de "CSS-reset" dans tous les sens), et les différents attributs comme "role" sont là pour sémantiser tout ça artificiellement.

Bref, ça revient à utiliser des briques simples pour construire des compliqués, plutôt que des pièces compliquées pour construire des trucs simples. Ça se tient, même si je ne pense pas que c’est comme ça que le HTML va progresser sémantiquement parlant.

#20424  

https://giuseppegurgone.com/twitter-html/