La règle CSS @scope offre une solution native pour isoler finement les styles en limitant l’application des règles à un sous-arbre spécifique du DOM, ce qui évite que les styles d’un composant se propagent ailleurs tout en gardant une spécificité faible et une meilleure maintenabilité du code ; l’article montre comment cibler uniquement certains éléments comme des <h2> dans des .card, explique l’usage des pseudo-classes :scope et de l’esperluette & pour référencer la racine de portée, et souligne des avantages comme la robustesse face aux modifications du DOM par rapport à des sélecteurs classiques.
L'auteur décrit avec humour et frustration l'incroyable complexité des boutons radio dans un projet utilisant Shadcn, un framework UI basé sur Radix. Initialement simple avec une balise HTML native, le bouton radio devient un composant React complexe de 45 lignes, intégrant des dépendances externes pour un simple cercle. L'article explore les couches de complexité ajoutées par Shadcn et Radix, questionnant la nécessité de cette sur-ingénierie pour un élément basique. Il se termine avec ce bout de code qui permet de faire la même chose... en plus simple
input[type="radio"] {
/* Disable the browser's default radio button styles */
appearance: none;
margin: 0;
/* Recreate the circle container */
border: 1px solid black;
background: white;
border-radius: 50%;
/* Center our dot in the container */
display: inline-grid;
place-content: center;
/* Use a pseudo-element to display our "dot" */
&::before {
content: "";
width: 0.75rem;
height: 0.75rem;
border-radius: 50%;
}
/* And display it when the radio button is checked */
&:checked::before {
background: black;
}
}Les Twig Components permettent de créer des composants réutilisables et typés en PHP/Twig, inspirés de React/Vue, mais sans JavaScript.
Points clés :
#[AsTwigComponent]: Déclare un composant (ex:Hero) avec son template Twig.#[ExposeInTemplate]: Expose des méthodes/propriétés dans le template (ex:{{ punchline }}).- Architecture claire : Séparation logique (classe PHP) et affichage (template), avec typage strict.
- Avantages : Réutilisabilité, encapsulation, cache intégré, et fin du mélange logique/affichage.
Exemple :
#[AsTwigComponent(name: 'Hero', template: 'components/Layout/Hero.html.twig')]
class Hero {
#[ExposeInTemplate('punchline')]
public function getPunchline(): ?PunchlineEntity { ... }
}
→ Des composants modernes, mais 100% Symfony.
L'article explique comment implémenter le modèle de conception d'Injection de Dépendances dans Vue 3, en utilisant le conteneur IoC (Inversion de Contrôle) et l'API Provide/Inject de Vue. Il montre comment créer un plugin pour lier des dépendances à l'instance Vue, les rendant accessibles dans toute l'application. L'article illustre également l'utilisation de ces dépendances dans des composables et des composants, favorisant ainsi la maintenabilité et la testabilité du code.
Tout est dans le titre
Un ensemble de conseils pour l'accessibilité des composants d'UI pour le web (via https://stephaniewalter.design/fr/blog/semaine-pixels-29-juillet-2016/ )
Tout est dans le titre
Tout est dans le titre
Un nouveau framework pour bâtir des sites web, avec la particularité de pouvoir utiliser des composants (React, Vue, Svelte, etc.), mais de générer un site statique sans JavaScript.
Tout est dans le titre
Il s'agit d'une approche pour gérer le CSS en ReactJS permettant de créer et distribuer des composants UI
Tout est dans le titre
Un ensemble de composants d'interfaces accessibles (via https://blog.stephaniewalter.fr/la-semaine-en-pixels-27-mai-2016/ )
Une série d'articles sur les composants de Symfony2 permettant la création d'un framework... extrêmement intéressant
Un article à propos du composant "Templating" de Symfony2, comment il fonctionne et surtout comment s'en servir pour proposer différents moteurs de template (Smarty, Twig, Plates, ...)
Un bon article
Intégrer de façon "responsive" des composants tiers (youtube, video, etc.) - via CreativeJuiz
Tout est dans le titre... et c'est très bien expliqué !
Tout est dans le titre... Le composant Config n'est pas forcément le plus connu de Symfony2, mais il est très bien fait et utile
Des composants HTML5 / jQuery / CSS3 - à explorer